//Functions VB
function Chr(CharCode){return String.fromCharCode(CharCode);}
function Asc(CharText){return CharText.charCodeAt(0);}
function uEsc(strv){return(unescape(ReplaceAll(ReplaceAll(strv,"&","%0D"),"+","%20")));}
function Esc(strv)	{return (escape(strv));}
function ReplaceAll(strv,strf,strr){
	var strn="";var idx=0;
	while (strv.indexOf(strf,idx) != -1)  
	{
		strn=strn+strv.substring(idx,strv.indexOf(strf,idx))+strr;
		idx=(strv.indexOf(strf,idx) + strf.length);
	}
	return strn+strv.substring(idx,strv.length);
}

function UCase(str){return str.toUpperCase();}
function Upper(str){return str.toUpperCase();}
function LCase(str){return str.toLowerCase();}
function Lower(str){return str.toLowerCase();}

function Right(str, n){if (n <= 0){return "";}else if (n > String(str).length){return str;}else{var iLen = String(str).length;return String(str).substring(iLen, iLen - n);}}
function Left(str, n){if (n <= 0){return "";}else if (n > String(str).length){return str;}else{return String(str).substring(0,n);}}
function Len(str){return String(str).length;}

function Mid(str, start, len)
{
    if (start < 0 || len < 0) return "";
    var iEnd, iLen = String(str).length;
    if (start + len > iLen)
        iEnd = iLen;
    else
        iEnd = start + len;
    return String(str).substring(start,iEnd);
}

function InStr(strSearch, strSearchFor)
{
	var iLen = Len(strSearchFor)
	for (i=0; i <= Len(strSearch)-iLen; i++)
	{
	    if (strSearchFor == Mid(strSearch, i, iLen))
	    {
			return i;
	    }
	}
	return -1;
}

function InStrSpot(Spot, strSearch, strSearchFor)
{
	var iLen = Len(strSearchFor)
	for (i=Spot; i <= Len(strSearch)-iLen; i++)
	{
	    if (strSearchFor == Mid(strSearch, i, iLen))
	    {
			return i;
	    }
	}
	return -1;
}

function Trim(str){return RTrim(LTrim(str));}

function RTrim(str)
{
	var whitespace = new String(" \t\n\r");
	var s = new String(str);
	if (whitespace.indexOf(s.charAt(s.length-1)) != -1) {
        var i = s.length - 1;
        while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1)
            i--;
            s = s.substring(0, i+1);
    }
    return s;
}

function LTrim(str)
{
	var whitespace = new String(" \t\n\r");
	var s = new String(str);
    if (whitespace.indexOf(s.charAt(0)) != -1) {
        var j=0, i = s.length;
        while (j < i && whitespace.indexOf(s.charAt(j)) != -1)
            j++;
            s = s.substring(j, i);
    }
	return s
}

function Replace(str,fstr,rstr)
{
	var vlen = Len(str);		var vbeg = InStr(str,fstr);		if(vbeg=="-1"){return str;}		var vpre = LEFT(str,vbeg);	var vmid = rstr;				var vsuf = Mid(str,vbeg + Len(fstr),vlen-vbeg+Len(fstr)-1);		return vpre + vmid + vsuf;
}

d = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat");
m = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
function GetDate()
{
	var today = new Date();
	var day   = today.getDay();
	var date  = today.getDate();
	var month = today.getMonth() + 1;
	var year  = today.getFullYear();
	var mins = today.getMinutes();
	var hours = today.getHours();
	if (mins < 10) mins = '0' + mins;
	if (hours < 12)  {mins = mins + "am";}
	if (hours == 12)  {mins = mins + "pm";}
	if (hours > 12)  {hours = hours-12; mins = mins + "pm";}
	document.write(d[day] + ', ' + m[month-1] + ' ' + date + ', ' + year + ' ' + hours +":" + mins);
}


function valid_date(date_field,ptobj)
{
	var a = new Array("29","31","28","31","30","31","30","31","31","30","31","30","31");

	if(Len(Trim(date_field.value))!=0)
	{
		if (Mid(Trim(date_field.value),4,1)!="-" || Mid(Trim(date_field.value),7,1)!="-" || Len(Trim(date_field.value))!=10)
			{pt_click(ptobj,2);alert("Please re-enter the date in the YYYY-MM-DD format...");date_field.focus();date_field.select();return false;}
	}
			
	if(Mid(Trim(date_field.value),5,2)=="00")
		{pt_click(ptobj,2);alert("Please enter a valid month entry...");date_field.focus();date_field.select();return false;}
	
	if(Mid(Trim(date_field.value),8,2)=="00")
		{pt_click(ptobj,2);alert("Please enter a valid day entry...");date_field.focus();date_field.select();return false;}
	
	if(Mid(Trim(date_field.value),5,1)=="0")
	{
		if(Mid(Trim(date_field.value),5,2)=="02")
		{
			var leap_year = parseInt(Mid(Trim(date_field.value),0,4))%4;
			if(leap_year != 0)
			{
				if(a[parseInt(Mid(Trim(date_field.value),6,1))] < Mid(Trim(date_field.value),8,2))
					{pt_click(ptobj,2);alert("Please enter a valid day entry for the given month...");date_field.focus();date_field.select();return false;}
			}
			else
			{
				if(a[0] < Mid(Trim(date_field.value),8,2))
					{pt_click(ptobj,2);alert("Please enter a valid day entry for the given month...");date_field.focus();date_field.select();return false;}
			}
		}
		else
			if(a[parseInt(Mid(Trim(date_field.value),6,1))] < Mid(Trim(date_field.value),8,2))
				{pt_click(ptobj,2);alert("Please enter a valid day entry for the given month...");date_field.focus();date_field.select();return false;}
	}
	else
	{
		if(a[parseInt(Mid(Trim(date_field.value),5,2))] < Mid(Trim(date_field.value),8,2))
			{pt_click(ptobj,2);alert("Please enter a valid day entry for the given month...");date_field.focus();date_field.select();return false;}
	}
	if(isNaN(LEFT(date_field.value,4))===true || isNaN(Mid(Trim(date_field.value),5,2))===true || isNaN(Right(Trim(date_field.value),2))===true)
		{pt_click(ptobj,2);alert("Please enter integers into the 'YYYY-MM-DD' date format...");date_field.focus();date_field.select();return false;}
}

/*function ChkEmail(eml)
{
	var suffix=1;
	var domains=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emlfmt=/^(.+)@(.+)$/;
	var invchars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var valchars="\[^\\s"+invchars+"\]";
	var vallocal="(\"[^\"]*\")";
	var ipdomain=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var nonspecchars=valchars+'+';
	var wordstr="("+nonspecchars+"|"+vallocal+")";
	var strlocal=new RegExp("^"+wordstr+"(\\."+wordstr+")*$");
	var strdomain=new RegExp("^"+nonspecchars+"(\\."+nonspecchars +")*$");
	var emlarray=eml.match(emlfmt);
	
	if(emlarray==null){return false;}
	var local=emlarray[1];
	var domain=emlarray[2];
	for(i=0; i<local.length; i++){if (local.charCodeAt(i)>127){return false;}}
	for(i=0; i<domain.length; i++){if (domain.charCodeAt(i)>127){return false;}}
	if(local.match(strlocal)==null){return false;}
	
	var iparray=domain.match(ipdomain);
	if(iparray!=null){for (var i=1;i<=4;i++){if (iparray[i]>255){return false;}}return true;}
	
	var nonspeccharsfmt=new RegExp("^"+nonspecchars+"$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for(i=0;i<len;i++){if(domArr[i].search(nonspeccharsfmt)==-1){return false;}}
	if (suffix && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(domains)==-1){return false;}
	if (len<2){return false;}
	
	return true;
}*/

function ChkUsername(obj)
{
    var error = "";
	// allow letters, numbers, and underscores
    var illegalChars = /[\W_]/;
	//alert(illegalChars.test(obj.value));
	if (obj.value == "")
		{error = "Please enter a username...";Z_errmsg_writer(error);obj.select();obj.focus();window.scroll(0,0);return false;}
	else if ( (obj.value.length < 3) || (obj.value.length > 25) )
		{error = "The username must be between 3 and 25 characters in length...";Z_errmsg_writer(error);obj.select();obj.focus();window.scroll(0,0);return false;}
	else if ( illegalChars.test(obj.value) )
		{error = "The username contains illegal characters (enter letters or numbers only)...";Z_errmsg_writer(error);obj.select();obj.focus();window.scroll(0,0);return false;}
    return true;
}
// The function below checks the password field for blankness and allow only letters and numbers - no underscopes this time. 
// So we should use a new regular expression to forbid underscopes. This one /[\W_]/ allow only letters and numbers. Next, 
// we want to permit only passwords that contain letters and at least one numeral. For that we use the seacrh() method and 
// two more regular expressions: /(a-z)+/ and /(0-9)/.

function ChkPassword(obj)
{
    var error = "";
    var illegalChars = /[\W_]/; // allow only letters and numbers 
    if (obj.value == "")
		{error = "Please enter a password...";Z_errmsg_writer(error);obj.select();obj.focus();window.scroll(0,0);return false;}
	else if ((obj.value.length < 8) || (obj.value.length > 15))
		{error = "The password must be between 8 and 15 characters...";Z_errmsg_writer(error);obj.select();obj.focus();window.scroll(0,0);return false;}
	else if (illegalChars.test(obj.value))
		{error = "The password contains illegal characters (enter letters or numbers only)...";Z_errmsg_writer(error);obj.select();obj.focus();window.scroll(0,0);return false;}
	else if (!((obj.value.search(/(a-z)+/)) && (obj.value.search(/(0-9)+/))))
		{error = "The password must contain at least one number...";Z_errmsg_writer(error);obj.select();obj.focus();window.scroll(0,0);return false;}
   	return true;
}

function ChkEmail(obj) {
    var error="";
    var tobj = Trim(obj.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    
    if (obj.value == "")
		{error = "You didn't enter an email address...";Z_errmsg_writer(error);obj.select();obj.focus();window.scroll(0,0);return false;}
	else if (!emailFilter.test(tobj)) //test email for illegal characters
		{error = "Please enter a valid email address...";Z_errmsg_writer(error);obj.select();obj.focus();window.scroll(0,0);return false;}
	else if (obj.value.match(illegalChars))
		{error = "The email address contains illegal characters...";Z_errmsg_writer(error);obj.select();obj.focus();window.scroll(0,0);return false;}
    return true;
}


function NaNChk(obj,msg)
{
	if(Trim(obj.value)=="" || isNaN(obj.value)===true )
		{Z_errmsg_writer(msg);obj.select();obj.focus();window.scroll(0,0);return false;}
	else{obj.value=Trim(obj.value);}	
	

}

function TrimChk(obj,msg)
{
	if(Trim(obj.value)=="")
		{Z_errmsg_writer(msg);obj.select();obj.focus();window.scroll(0,0);return false;}
	else{obj.value=Trim(obj.value);}
}

function LenChk(obj,len,msg)
{
	if(Len(obj.value)<len)
		{Z_errmsg_writer(msg);obj.select();obj.focus();window.scroll(0,0);return false;}
	else{obj.value=Trim(obj.value);}
}


function EqualChk(obj1,obj2,msg)
{
	if(obj1.value!=obj2.value)
		{Z_errmsg_writer(msg);obj1.select();obj1.focus();window.scroll(0,0);return false;}
	else{obj1.value=Trim(obj1.value);obj2.value=Trim(obj2.value);}
}


function ZeroChk(obj,msg)
{
	if(obj.value==0)
		{Z_errmsg_writer(msg);obj.focus();window.scroll(0,0);return false;}
}

function TrimChkMulti(obj,msg)
{
	if(obj.length==0)
		{Z_errmsg_writer(msg);obj.focus();window.scroll(0,0);return false;}
}

function TrimChkCheckbox(obj,msg)
{
	if(obj.checked===false)
		{Z_errmsg_writer(msg);obj.focus();window.scroll(0,0);return false;}
}
/*---------------------------------------------------------------*/
function menuoo(cls,mnu,act)
{
	/*if(Right(cls,4)=="hide"){setTimeout('document.getElementById("'+idv+'").className="'+cls+'";',500);}else*/
	{document.getElementById(cls+"_"+mnu).className=cls+" "+cls+"_"+act;}
}

function lgn_err(obj)
{
	obj.className=obj.className+'_focus';
	obj.focus();obj.select();
}


/*---------------------------------------------------------------*/
//ARRAY FUNCTIONS
Array.prototype.inArray=function (value){var i;for(i=0;i<this.length;i++){if(this[i]==value){return true;}}return false;};

/*---------------------------------------------------------------*/
//FORM OBJECTS

//WINDOW STATUS
function stat(){window.status="";}

//TEXT AREA
function textareaCount(obj,mxl,spn,loaded)
{ 
//store onblur
	var obj_onblur=obj.onblur;
	obj.onblur = null;
//skip certain key presses
	if(loaded==1)
	{
		if(event.keyCode!==undefined)
		{
			var kc=new Array(12,16,17,18,19,20,27,33,34,35,36,37,38,39,40,45,91,93,112,113,114,115,116,117,118,119,120,121,122,123,144,145);
			if (kc.inArray(event.keyCode)){return false;}
		}
	}
//check the text
	var cntGTmxl=0;
	var val=obj.value;
	var cnt=(Len(val)+(val.split("'").length-1));
	while(cnt>mxl)
	{
		cntGTmxl=1;
		val=Left(val,Len(val)-1);
		cnt=(Len(val)+(val.split("'").length-1));
	}
//load character count and obj.value	
	spn.innerText=mxl-(Len(val)+(val.split("'").length-1));
	if(cntGTmxl==1){obj.value=val;}
//restore onblur
	obj.onblur=obj_onblur;
}

/*---------------------------------------------------------------*/
//AJAX GLOBAL FUNCTIONS

function start_ajax() 	//xmlHttp.overrideMimeType('text/xml'); // insert into 1st try statement for some Mozilla browsers if you're going to POST data
{
	try {xmlHttp=new XMLHttpRequest();}													// Ajax for Firefox, Opera 8.0+, Safari  
	catch (e)																			// Ajax for Internet Explorer
	{																	
		try {xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");} 								// Ajax for IE6
		catch (e)
		{    
			try {xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");} 						// Ajax for Older IE     
			catch (e) {alert("Your browser does not support AJAX!"); return false;}		// Ajax Not Supported
		}
	}
}

function exec_ajax(rooturl,url,spanid)
{
	start_ajax();
	//document.getElementById(spanid).innerHTML = '<img src="'+rooturl+'_img/filename.gif" />';
	xmlHttp.onreadystatechange=function(){load_menu_page(xmlHttp, spanid);}   
	url += "&ms=" + new Date().getTime();
	xmlHttp.open('GET', url, true);
	xmlHttp.send(null);   
}

function check_ajax(xmlHttp, spanid)
{	
	if(xmlHttp.readyState==4 && xmlHttp.status==200){document.getElementById(spanid).innerHTML = xmlHttp.responseText;}
} 

function reset_ajax(spanid)
{ 
	document.getElementById(spanid).innerHTML = '';
}

/*---------------------------------------------------------------*/
function img_reloader(subd)
{
	start_ajax();
	xmlHttp.onreadystatechange=function(){if(xmlHttp.readyState==4){document.getElementById('pics').innerHTML = xmlHttp.responseText;}}
	var the_url = subd+"__inc/img_page.php" + "?ms=" + new Date().getTime();	
	xmlHttp.open("POST",the_url,true);
	xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	xmlHttp.send('reload=1'); 
}

/*---------------------------------------------------------------*/
