//RWilliams & SSaudale 5-21-2008 modified javascript code so that the form can accept case insensitive domain ln# 202-207 
bMenu = false;
var hideTimer;
var CurrentImg = false;
var hexChars = "0123456789ABCDEF";

agt=navigator.userAgent.toLowerCase();
is_mac = (agt.indexOf("mac")!=-1);
supLayers = (document.layers)? true:false;
supAll = (document.all)? true:false;
supEID = (document.getElementById)? true:false;

loader = (supLayers) ? parent:window;
loader.onload = startPage;

menuStart = true;
annoyEmail=true;

function getStyle(elDiv, elStyle){
	if (supAll) return elDiv.style[elStyle];
	else if (supLayers) return elDiv[elStyle];
	else if (supEID) return elDiv.style[elStyle];
}

function setStyle(elDiv, elStyle,elProp){
	if (supAll) elDiv.style[elStyle] = elProp;
	else if (supLayers) elDiv[elStyle] = elProp;
	else if (supEID) elDiv.style[elStyle] = elProp;
}

function getDiv(parent,name){
	if (supAll) return eval(parent+".all['"+name + "']");
	else if (supLayers) return eval(parent+".layers['"+name + "']");
	else if (supEID) return eval(parent+".getElementById('"+name + "')");
}

function startPage(){
	if (bMenu) createMenu();
}

function createMenu(){
	topCount=1;
	Array.prototype.NSID=null;
	while(eval("window.menuArray" + topCount)) {
		tempArray = eval("menuArray" + topCount);
		elTestDiv = makeElement(tempArray[0]+"Expand","")
		menuItems = "";
		for (i=1;i<tempArray.length;i+=2) menuItems +=  menuItem(tempArray[i],tempArray[i+1]);
		elementInards(elTestDiv, menuTopStr+menuItems+menuBotStr );
		tempArray.NSID = elTestDiv.name;
		topCount++;
	}
	menuStart = false;
}

function getNSID(mItem){
	NSID = false;
	topCount = 1;
	while(eval("window.menuArray" + topCount) && !NSID){
		tempArray = eval("menuArray" + topCount);
		if (tempArray[0] == mItem) NSID = tempArray.NSID;
		topCount++;
	}
	return NSID;
}

function showMenu(mItem,posY){
	if (menuStart) return;
	hide();
	hideTimer = setTimeout("hide();",5000);
	centerPad =  (supLayers)?window.innerWidth : document.body.clientWidth;
	yPos = (!supAll) ? posY : posY;
	xPos = (!supAll) ? menuLeft+8 : menuLeft;
	NSID = (supLayers) ? getNSID(mItem) : mItem+"Expand";
	elDiv = getDiv("document",NSID);
	setStyle(elDiv, "left",xPos);
	setStyle(elDiv, "top",yPos);
	setStyle(elDiv, "visibility","visible");
	elDiv = getDiv("document","mouseOuter1");
	setStyle(elDiv, "left",xPos-iHideX);
	setStyle(elDiv, "top",yPos-iHideY);
	setStyle(elDiv, "visibility","visible");
	CurrentImg = mItem;
}

function hide(){
	if (menuStart) return;
	clearTimeout(hideTimer);
	if (CurrentImg) {
		NSID = (supLayers) ? getNSID(CurrentImg) : CurrentImg+"Expand";
		elDiv = getDiv("document",NSID);
		setStyle(elDiv, "visibility","hidden");
		setStyle(getDiv("document","mouseOuter1"), "visibility","hidden");
	}
}

function makeElement(elName, elClass) {
	if (supLayers) {
		eval(elName + "= new Layer(600,window)");
		eval(elName + ".className = '"+elClass+"'");
	}else if (supAll){
		elStr = "<DIV ID=" + elName + " class=\""+elClass+"\"></DIV>";
		window.document.body.insertAdjacentHTML("BeforeEnd",elStr);
	}else if (supEID){
		newDiv = window.document.createElement("DIV");
		newDiv.style.position = "absolute";
		newDiv.id = elName;
		window.document.body.appendChild(newDiv);
		elName = getDiv("document",elName);
	}
	return eval(elName);
}

function elementInards(elDiv,elGuts){
	if (supAll) elDiv.innerHTML = elGuts;
	else if (supLayers){
		elDiv.document.write(elGuts);
		elDiv.document.close();
	}else if (supEID) elDiv.innerHTML = elGuts;
}

//begin non-menu functions

function reqFormItem(elElement){
	with(elElement){
		alert(name.replace(/_/gi," ").substring(1,name.length) + " is required");
//		select();
		focus();
	}
	return false;
}

function reqIntFormItem(elElement){
	with(elElement){
		alert(name.replace(/_/gi," ").substring(1,name.length) + " must be a number.");
//		select();
		focus();
	}
	return false;
}
function deTrailS(elItem){
	if (elItem.value.charAt(elItem.value.length-1) != ' ') return;
	elItem.value = elItem.value.substr(0,elItem.value.length-1);
	deTrailS(elItem);
}
function checkForm(elForm){
	for (i=0;i<elForm.length;i++){
		with (elForm.elements[i]){
			if (type == "text") deTrailS(elForm.elements[i]);
			if (type != "hidden" && type != "image" && type != "button" && (name.lastIndexOf("_")+1 != name.length) && name.indexOf("_") && (supAll && !disabled)){//names begining or ending with an underscore are optional
				if ((type=="text" || type=="password") && !value.length && !length) return reqFormItem(elForm.elements[i]);
				if (!type.indexOf("select") && !selectedIndex) return reqFormItem(elForm.elements[i]);
				if ((name.toLowerCase().indexOf("e-mail") != -1)||(name.toLowerCase().indexOf("email") != -1)){
					if (type=="text" && !emailCheck(elForm.elements[i].value)){
						alert("Please enter a valid e-mail address.");
						elForm.elements[i].focus();
						return false;
					}
				}
			}
			// check for integer/number
			if ((type == "text" && name.charAt(0) == "i") && (value*1 != value || value.charAt(0) == ' ')) return reqIntFormItem(elForm.elements[i]);
			// check for ZIPcode length (5 or 9)
			if ((name.indexOf("ZIPCode") != -1) && !(value.length == 0 || value.length == 5 || value.length == 9 )){alert("Please enter a proper ZIP Code");elForm.elements[i].focus();return false;}
			if ((name.indexOf("Phone1") != -1) && !(value.length == 0 || value.length == 3)){alert("Please enter a proper phone number");elForm.elements[i].focus();return false;}
			if ((name.indexOf("Phone2") != -1) && !(value.length == 0 || value.length == 3)){alert("Please enter a proper phone number");elForm.elements[i].focus();return false;}
			if ((name.indexOf("Phone3") != -1) && !(value.length == 0 || value.length == 4)){alert("Please enter a proper phone number");elForm.elements[i].focus();return false;}
		}
	}
	return true;
}

function emailCheck(emailStr) {
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	
	if (matchArray==null) return false;//seperated at the @ symbol
	var user=matchArray[1];
	var domain=matchArray[2];
	if (user.match(userPat)==null)return false;//if the username isn't valid
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null){//if its @ipaddress
		for (var i=1;i<=4;i++)if (IPArray[i]>255)return false;
    	return true;
	}
	var domainArray=domain.match(domainPat);
	if (domainArray==null)return false;//make sure its a valid domain name
	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	
	var validDomain = true;
	for( var x = 0; x < domArr.length; x++ ){
		//match every part of domain to pattern of letter (insensitive) and digit
			if ( domArr[x].match(/[^a-z0-9\-]/i) != null ) {
			validDomain = false;	
			break;
		}
	}
	return validDomain;																							   
	
	
}


function PopUpWindow(urlString, name, w, h, perc) {
	var winX = 0;
	var winY = 0;
	if (parseInt(navigator.appVersion) >= 4) {
		winX = (screen.availWidth - w)*perc*.01;
		winY = (screen.availHeight - h)*perc*.01;
	}
	popupWin = window.open(urlString, name, 'width=' + w + ',height=' + h + ',left=' + winX + ',top=' + winY +', scrollbar.visible=true,scrollbars=yes,resizable=no,maximize=no');
}

//for use with flash files
function cookit() {
	exDate = new Date;
	exDate.setMonth(exDate.getMonth()+1);
	for(i=0;i<cookit.arguments.length;i++) {
		ckThing = cookit.arguments[i] + '=' + cookit.arguments[i+1];
		i++;
		document.cookie = ckThing + '; expires=' + exDate.toGMTString() + '; path=/';
	}
}

function initArray() {
	this.length = initArray.arguments.length;
	for (var i = 0; i < this.length; i++) this[i+1] = initArray.arguments[i];
}
function Dec2Hex (Dec) {
	var a = Dec % 16;
	var b = (Dec - a)/16;
	hex = "" + hexChars.charAt(b) + hexChars.charAt(a);
	return hex;
}

function bgFader(begin, end, steps, startTime, endTime) {
	timeBranch = (endTime - startTime)/steps;
	steps = steps -1;
	redA = begin.charAt(0) + begin.charAt(1);
	red_valA = parseInt(redA,'16');
	redB = end.charAt(0) + end.charAt(1);
	red_valB = parseInt(redB,'16');
	red_int	= ((red_valB - red_valA) / steps) * -1;
	grnA = begin.charAt(2) + begin.charAt(3);
	grn_valA = parseInt(grnA,'16');
	grnB = end.charAt(2) + end.charAt(3);
	grn_valB = parseInt(grnB,'16');
	grn_int	= ((grn_valB - grn_valA) / steps) * -1;
	bluA = begin.charAt(4) + begin.charAt(5);
	blu_valA = parseInt(bluA,'16');
	bluB = end.charAt(4) + end.charAt(5);
	blu_valB = parseInt(bluB,'16');
	blu_int	= ((blu_valB - blu_valA) / steps) * -1;
	step = 2;
	red = red_valA;
	grn = grn_valA;
	blu = blu_valA;
	document.bgColor = begin;
	while ( steps >= step ) {
		red -= red_int;
		red_round = Math.round(red);
		red_hex = Dec2Hex(red);
		grn -= grn_int;
		grn_round = Math.round(grn);
		grn_hex = Dec2Hex(grn);
		blu -= blu_int;
		blu_round = Math.round(blu);
		blu_hex = Dec2Hex(blu);
		eval("timer"+step+" = setTimeout(\"document.bgColor = '"+ red_hex + grn_hex + blu_hex + "';\"," + (timeBranch*step + startTime) + ")");
		step++;
	}
	finalTimer = setTimeout("document.bgColor = '"+ end +"';", endTime);
}
