var aMenu = new Array('AboutUs','Services','PerServ');
var isNav;
var bCancelValidation = false;
var sSearchCookieName = 'SearchCriteria';

if(navigator.appName == "Netscape")
	isNav = true;
else
	isNav = false;

function CheckMenu(mClicked){
	var stat = "";
	
	for( var i = 0 ; i < aMenu.length ; i++ ){
		if((document.all[aMenu[i] + 'Menu'].style.display == "block") || ( i == mClicked))
			stat += "1";
		else
			stat += "0";
	}
	return stat;
}

function DoHref(url){
	var mClicked = null;
	if(!isNav){
		if(url.indexOf('AboutUs.asp') > 0)
			mClicked = 0;
		if(url.indexOf('Services.asp') > 0)
			mClicked = 1;
		if(url.indexOf('Personal.asp') > 0)
			mClicked = 2;

		if(url.indexOf("?") == -1)
			url += "?mStat=" + CheckMenu(mClicked);
		else
			url += "&mStat=" + CheckMenu(mClicked);
	}

	window.location.href = url;
}

function DoMenu(divName, imgName){
	if(!isNav){
		var eStyle = document.all[divName].style;

		if( eStyle.display == 'block'){
			eStyle.display = 'none';
			ChangeImage(imgName,'/images/arrowrtoff.gif');
		}
		else {
			eStyle.display = 'block';
			ChangeImage(imgName,'/images/arrowdownon.gif');
		}
	}
}

function DoAllMenu(state){
	var imgSrc, i

	if(state == 'block')
		imgSrc = '/images/arrowdownon.gif'
	else
		imgSrc = '/images/arrowrtoff.gif'

	for( i = 0 ; i < aMenu.length ; i++ ){
		document.all[aMenu[i] + 'Menu'].style.display = state;
		ChangeImage(aMenu[i] + 'Arrow',imgSrc);
	}
}

function ChangeImage(imgName, imgUrl){
	document[imgName].src = imgUrl
}

function valFormRegExpr(aParam, oForm) {
    var oExprText
    for (var i = 0; i < aParam.length; i += 2)
    {
        oExprText = new RegExp(aParam[i+1], 'g');
        if (!oExprText.test(oForm[aParam[i]].value)) {
            oForm[aParam[i]].focus();
            alert('Please enter the correct text into the textbox');
            return false;
        }
    }
    return true;
}

function valFormReqdEntry(oDoc, oFlds) {
	for (var key in oFlds) {
		if (oDoc.all[oFlds[key]].value == '') {
			alert('Please enter a value for ' + key);
			oDoc.all[oFlds[key]].focus();
			return false;
		}
	}
	return true;
}

function valFieldDate(oFld, sMsg) {
	if (oFld.value.length < 1) return true;
	if (isDate(oFld.value)) {
		oFld.value = formatDate(oFld.value);
		return true;
	}
	if (sMsg) sMsg = " for " + sMsg; else sMsg = "";
	alert("Please enter a valid date (m/d/yyyy)" + sMsg);
	oFld.focus();
	return false;
}

function isVowel(s) {
	var sVowels = "aeiouAEIOU";
	return ( sVowels.indexOf(s.charAt(0)) >= 0 );
}

function isEmpty(s) {
	return ((s == null) || (s.length == 0))
}

function isDirty(eForm, bCheckFirstOne) 
{
	var nSelStart = 0;
	var iNumElems = eForm.elements.length;
	var eElem;

	if(bCheckFirstOne != null) 
	{
		if(!bCheckFirstOne) 
		{
		    nSelStart = 1;
		}
	}

	for(var i = 0; i < iNumElems; i++) 
	{
		eElem = eForm.elements[i];
		
		// The textbox type is used for netscape 6!!!...
	    //if("text" == eElem.type | "textbox" == eElem.type | "hidden" == eElem.type | "TEXTAREA" == eElem.tagName) 
	    if("text" == eElem.type | "textbox" == eElem.type | "TEXTAREA" == eElem.tagName)
	    {
			if(eElem.value != eElem.defaultValue) 
			{
			    return true;
			}
		}
		else 
		if("checkbox" == eElem.type || "radio" == eElem.type) 
		{
			if (eElem.checked != eElem.defaultChecked) 
			{
			    return true;
			}
		} 
		else 
		if("SELECT" == eElem.tagName) 
		{
			var cOpts    = eElem.options;
			var iNumOpts = cOpts.length;
			
			for(var j = nSelStart; j < iNumOpts; j++) 
			{
				var eOpt = cOpts[j];
				
				if(eOpt.selected != eOpt.defaultSelected) 
				{
				    return true;
				}
			}
		}
	}
	
	return false;
}

function isDate(sDate) {
	sDate = formatDate(sDate);
	if (sDate == "") return false;
	var re = /(\d+)\D+(\d+)\D+(\d+)/;
	var aResult = re.exec(sDate);
	var nMo = str2int(aResult[1]);
	var nDy = str2int(aResult[2]);
	var nYr = str2int(aResult[3]);
	if (nMo < 1 | nMo > 12)   return false;
	if (nDy < 1 | nDy > 31)   return false;
	if (nYr < 1 | nYr > 2100) return false;
	var dDate = new Date(nMo + "/" + nDy + "/" + nYr);
	return (nDy == dDate.getDate());
}

function formatDate(sDate) {
	var re = /(\d+)\D+(\d+)\D+(\d+)/;

	// -- see if it looks legit
	if (! re.test(sDate)) return "";
	
	var aResult = re.exec(sDate);
	var nMo = str2int(aResult[1]);
	var nDy = str2int(aResult[2]);
	var nYr = str2int(aResult[3]);
	if (nYr < 50)  nYr += 2000;
	if (nYr < 100) nYr += 1900;
	return nMo + "/" + nDy + "/" + nYr;
}

function strNumsOnly(s) {
	var sNums = "";
	var bNoDec = true;
	
	for (var i = 0; i < s.length; i++) {
		if (s.charAt(i) == "0") {
			if (sNums.length > 0) sNums += "0";
		} else if (s.charAt(i) == "." & bNoDec) {
			sNums += ".";
			bNoDec = false;
		} else if ((s.charAt(i) >= "1") & (s.charAt(i) <= "9")) {
			sNums += s.charAt(i);
		}
	}
	
	if (sNums.length == 0) sNums += "0";
	return sNums;
}

function str2int(s) {
	return parseInt(strNumsOnly(s));
}

function str2float(s) {
	return parseFloat(strNumsOnly(s));
}

function str2currency(s) {
	return parseInt(str2float(s) * 100) / 100;
}

function getRadioValue(oFld) {
	if ( !oFld.length ) {
		if ( oFld.checked ) return oFld.value;
	} else {
		for ( var i = 0; i < oFld.length; i ++ )
			if ( oFld[i].checked ) return oFld[i].value;
	}	

	return "";
}

function newWindow(sUrl, sName, nWidth, nHeight, bRetWin, bScroll) {
	if (!nWidth) nWidth=550;
	if (!nHeight) nHeight=450;
	if (window.frames[sName]) window.frames[sName].close();
	if (!bScroll) bScroll = 'no'; else bScroll = 'yes';
	var oWin = window.open(sUrl, sName, 'resizable=yes,toolbar=no,location=no,directories=no,status=no,scrollbars=' + bScroll + ',width=' + nWidth + ',height=' + nHeight);
	if (oWin) oWin.focus();
	if (bRetWin) return oWin;
}

function AdminTableColors(oTblRow) {
	if (oTblRow) {
		if (oTblRow.length) {
			for (var i = 0; i < oTblRow.length; i++) {
				var oTR = oTblRow[i];
				if (oTR.active == 'N') {
					for (var c = 0; c < oTR.cells.length; c++)
						oTR.cells[c].style.backgroundColor = "#FFEEEE";
				}
			}
		} else if (oTblRow.active == 'N') {
			for (var c = 0; c < oTblRow.cells.length; c++)
				oTblRow.cells[c].style.backgroundColor = "#FFEEEE";
		}
	}
}

function AdminImageAlts(oDoc) {
	var oImgs = oDoc.all.tags("IMG");
	if (oImgs) {
		for (var i = 0; i < oImgs.length; i++) {
			var asFile = oImgs[i].src.split('/');
			oImgs[i].alt = 'ID: ' + oImgs[i].xid + " - IMG: " + asFile[asFile.length - 1];
			oImgs[i].xfn = asFile[asFile.length - 1];
		}
	}
}

function isOK2LeaveForm(oForm) {
	if (isDirty(oForm)) {
		alert('You must save or cancel the changes you have made to this form before you can use this option.');
		return false;
	}
	return true;
}

function isOK2DeleteRec() {
	if (confirm('WARNING: Clicking OK will permanently delete this record.\nYou can also click CANCEL and set active to "No" to remove\nthis record from view without permanently deleting\nthis record.')) {
		bCancelValidation = true;
		return true;
	}
	return false;
}


function putCookie(sName, sValue, bTemp) {
	if (!bTemp) {
		document.cookie = sName + "=" + sValue + ";";
	} else {
		var d = new Date();
		d.setYear(d.getYear() + 1);
		document.cookie = sName + "=" + sValue + 
			";expires=" + d.toUTCString() + ";";
	}
	return true;
}

function getCookie(sName) {
	var sValue = "";
	var oCookies = document.cookie.split("; ");
	for (var i = 0; i < oCookies.length; i++)
		if (oCookies[i].split("=")[0] == sName) sValue = oCookies[i].split("=")[1];
	if (!sValue | sValue == "undefined") return "";
	return sValue;
}

function delCookie(sName) {
	var d = new Date();
	d.setYear(d.getYear() - 1);
	document.cookie = sName + "=;expires=" + d.toUTCString() + ";";
	return true;
}

function browserAcceptCookie() {
	putCookie('enable', 'test', false);
	
	if (getCookie('enable') != 'test')
	{
		alert('This browser must be configured to accept cookies in order for the schedule cart,\n' +
			  'day/time preferences and some elements of the search functionality to work properly.');
		return false;
	}
	else
	{
		return true;
	}
}

function SignOut() {
	putCookie(sSearchCookieName, '', false);
	putCookie('dtp', '', false);
	window.location.href = '/Login.asp?lo=y';
	return;
}

