function utils() {
	this.checkdateval = function(tval) {
		var tm=new RegExp(/(0?[1-9]|[12][0-9]|3[01])[/](1[0-2]|0?[1-9])[/]((19|20)\d{2})/);
		if(!tm.test(tval)) {
			return false;
		}
		return true;
	}
	
	this.checkemailval = function(tval) {
		if(tval.length==0) {
			return false;
		}
		var tm=new RegExp();
		tm.compile(/^([\w\d-_]+\.)*[\w\d-_]+\@([\w\d-_]+\.)*[\w\d-_]+\.([a-z]|[A-Z]){2,4}$/i);
		if(!tm.test(tval)) {
			return false;
		}
		return true;
	}
	this.checknumericval = function(tval) {
		var tm=/(\d+)/;
		if(!tm.test(tval)) {
			return false;
		}
		return true;
	}
	
	this.checkurlval = function(tval) {
		var tm=/(http:\/\/|https:\/\/)/;
		if(!tm.test(tval)) {
			return false;
		}
		return true;
	}
	
	
	this.checkpwdequal = function(pass,passc) {
		if(pass!==passc) {
			return false;
		}
		return true;
	}
	
} 

function GUI() {
	this.setMozNode = function(nodetype, noderef) {
		noderef.type = nodetype;
		noderef.value = '';
		noderef.name = '';
		return noderef;
	}
	
	this.checkbox = function() {
		if(isIE) {
			var inode = document.createElement('<input type="checkbox" value="" name="">');
		} else {
			var inode = document.createElement('input');
			inode = this.setMozNode('checkbox',inode);
		}
		return inode;
	}
	
	this.button = function() {
		if(isIE) {
			var inode = document.createElement('<input type="button" value="" name="">');
		} else {
			var inode = document.createElement('input');
			inode = this.setMozNode('button',inode);
		}
		return inode;
	}
	
	this.hidden = function() {
		if(isIE) {
			var inode = document.createElement('<input type="hidden" value="" name="">');
		} else {
			var inode = document.createElement('input');
			inode = this.setMozNode('hidden',inode);
		}
		return inode;
	}
	
	this.text = function() {
		if(isIE) {
			var inode = document.createElement('<input type="text" value="" name="">');
		} else {
			var inode = document.createElement('input');
			inode = this.setMozNode('text',inode);
		}
		return inode;
	}
	
	this.select = function() {
		var inode = document.createElement('select');
		return inode;
  }
  
} // end GUI

function helper() {
	this.targetelement = new Object();
	this.flagmouseover = false;
	this.helptimer = 0;
	
	this.showhelper = function(htmldata) {
		var k = getdom('divAData');
		if(this.helptimer) {
			clearTimeout(this.helptimer);
			this.helptimer=0;
		}
		k.style.left = findPosX(this.targetelement) + 30+ (isIE ? 0 : 'px');
		k.style.top = findPosY(this.targetelement) + 18+ (isIE ? 0 : 'px');
		k.innerHTML = htmldata;
		k.style.display = 'block';
		this.helptimer=setTimeout("helper.hidehelper()",3000);
		k.onmouseover = function() {helper.flagmouseover=true;}
		k.onmouseout = function() {helper.flagmouseover=false;}
	}
	
	this.hidehelper = function() {
		if(!this.flagmouseover) {
			var k = getdom('divAData');
			k.innerHTML='';
			k.style.display='none';
			k.onmouseover=null;
		} else {
			this.helptimer=setTimeout("helper.hidehelper()",500);
		}
	}
	
	this.getAFilters = function(tval1,tval2,elem) {
		if(tval2>0) {
			getdata(baseurl,'getufilters&transid='+tval2+'&keytype='+tval1,'','divAData');
			this.targetelement = elem;
		} else {
			this.targetelement = null;
			return false;
		}
		return true;
	}
	
	this.getAKeywords = function(tval,tval1,tval2,tval3,elem) {
		if(tval>0) {
			getdata(baseurl,'getukeywords&uid='+tval+'&transid='+tval1+'&ktype='+tval2+'&keyid='+tval3,'','divAData');
			this.targetelement = elem;
		} else {
			this.targetelement = null;
			return false;
		}
		return true;
	}
	
	this.getAWeb = function(tval1,tval2,tval3,tval4) {
		if(tval1>0) {
			window.open(baseurl+'redirect.php?uid='+tval1+'&ktype='+tval3+'&keyid='+tval2+'&transid='+tval4,'_blank','left=20,top=20,width=900,height=800,menubar=yes,toolbar=yes,status=yes,resizable=yes,scrollbars=yes,location=yes');
		}
	}
	
	this.getAEmails = function(tobj) {
		getdata(baseurl,'addallemails','POST','m2');
		tobj.onclick = null;
		var k = document.forms['frmresults'].elements['tmpemails[]'];
		for(var x=0;x<k.length;x++) {
			k[x].checked = true;
		}
	}
	
	this.getAEmail = function(tval,tval1,tval2,tobj) {
		getdata(baseurl,'addemail&aid='+tval+'&status='+(tobj.checked ? true : false)+'&keytype='+tval1+'&keyid='+tval2,'POST','m2');
		try {
			this.targetelement = tobj;
			this.showhelper('<div class="rntext_center">' + (tobj.checked ? errMsg[7] : errMsg[8]) + '</div>');
		} catch(e) {};
	}
	
	this.getAEmail2 = function (tval, tval1,tval2) {
		var k = new Object();
		k.checked = true;
		this.getAEmail(tval,tval1,tval2,k);
	}
	
	this.getASingle = function(tval) {
		if(tval>0) {
			document.forms['frmdouble'].elements['lfor'].value=tval;
			document.forms['frmdouble'].submit();
		}
	}
	
	this.setRFavorite = function(tval,transval) {
		var rowid = 'favrow'+tval;
		var k = getdom(rowid);
		getdata(baseurl,'deletefav&uid='+transval,'','m3');
		k.parentNode.removeChild(k);
		
	}
	
	this.createHelperDiv = function() {
		if(!getdom('divAData')) {
			ndiv = document.createElement('div');
			document.appendChild(ndiv);
			ndiv.className = 'divhelp';
		}
	}
}
