function fieldOn(f) {
	f.style.borderColor='#6699cc';
	f.style.backgroundColor='#ffffff';
}

function fieldOff(f,extra) {
	f.style.borderColor='#336699';
	f.style.backgroundColor='#f1f1f1';
	if (f.value != "") {
		var d = document;
		if (!extra) {
			var e = d.getElementById(f.name+"Hdr");
		} else {
			var e = d.getElementById(extra+"Hdr");
		}
		if (e) {
			e.style.color = "#336699";
		}
	}
}

function fieldWarn(w) {
	var d = document;
	var e = d.getElementById(w+"Hdr");
	if (e) {
		e.style.color = "#ff0000";
	}
}

function checkForm(f,skip,special,specialDiv) {
	var msg = "WARNING!\n";
	var totalE = f.elements.length;
	var allowSubmit = 1;
	for (i=0; i<totalE; i++) {
		var doWarnFunc = 0;
		var curElement = f.elements[i];
		var curType = curElement.type;
		var curName = curElement.name;
		if (skip.indexOf(curName)<0 && curType != undefined) {
			if (curType == "text" || curType == "textarea") {
				var check = checkText(f.elements[i]);
				if (!check) {
					allowSubmit = 0;
					msg += "You did not enter a value for "+curName+"\n";
					doWarnFunc = 1;
				}
			} else if (curType == "select-one") {
				var checkSel = checkSelect(f.elements[i]);
				if (!checkSel) {
					allowSubmit = 0;
					msg += "You did not select an option for "+curName+"\n";
					doWarnFunc = 1;
				}
			} else if (curType == "password") {
				var check = checkText(f.elements[i]);
				if (!check) {
					allowSubmit = 0;
					msg += "You did not enter a value for "+curName+"\n";
					doWarnFunc = 1;
				}
			}
			if (doWarnFunc) {
				sendName = curName;
				for (x=0; x<special.length; x++) {
					if (curName == special[x]) {
						sendName = specialDiv[x];
						break;
					}
				}
				fieldWarn(sendName);
			}
		}
	}
	if (!allowSubmit) {
		alert(msg);
		return false;
	} else {
		return true;
	}
}

function checkText(e) {
	var val = e.value;
	if (val != null && val != "" && val != " ") {
		var ok = 1;
	} else {
		var ok = 0;
	}
	return ok;
}

function checkSelect(e) {
	var isSelected = 0;
	var totalOps = e.options.length;
	for (z=0; z<totalOps; z++) {
		var checkVal = e.options[z].value;
		var checkSel = e.options[z].selected;
		if (checkVal && checkSel) {
			isSelected = 1;
		}
	}
	return isSelected;
}

function checkName(e, arr, label) {
	var tempArr = eval(arr);
	var total = tempArr.length;
	var val = e.value.toLowerCase();
	for (i=0; i<total; i++) {
		var checkVal = tempArr[i].toLowerCase();
		if (checkVal == val) {
			globalAllow = 0;
			e.value = "";
			alert("That "+label+" is already in use");
			break;
		}
	} 
}

function checkEmail(form) {
	var d = document;
	var f = d.forms[form];
	var emailVal = f.email.value;
	if (emailVal != "") {
		var emailReg = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		var checkEmail = emailReg.test(emailVal);
		if(!checkEmail) {
			alert("The email address entered is not in a valid format.");
			f.email.value = "";
			fieldWarn('email');
		}
	}
}

function checkPhone(form) {
	var d = document;
	var f = d.forms[form];
	var p1 = f.phone1.value;
	var p2 = f.phone2.value;
	var p3 = f.phone3.value;
	var checkWhole = p1+"-"+p2+"-"+p3;
	if (p1 != "" && p2 != "" && p3 != "") {
		var phoneReg = /([0-9]{3})-([0-9]{3})-([0-9]{4})/;
		var numberCheck = phoneReg.test(checkWhole);
		if (!numberCheck) {
			f.phone1.value = "";
			f.phone2.value = "";
			f.phone3.value = "";
			fieldWarn('phone');
			alert("The phone number you entered is not valid.");
		}
	}
}

function checkZip(form) {
	var d = document;
	var f = d.forms[form];
	var zipVal = f.zip.value;
	if (zipVal != "") {
		var zipReg = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
		var checkZip = zipReg.test(zipVal);
		if(!checkZip) {
			alert("The zip code entered is not in a valid format.");
			f.zip.value = "";
			fieldWarn('zip');
		}
	}
}

function checkZipForm(form) {
	proceed = true;
	var totalE = form.elements.length;
	var zipReg = /(^\d{5}$)|(^\d{5}-\d{4}$)/;
	for (i=0; i<totalE; i++) {
		if (i%2!=1) {
			var zipVal = form.elements[i].value;
			if (zipVal != "") {
				if (zipVal != "Submit") {
					var checkZip = zipReg.test(zipVal);
					if(!checkZip) {
						alert("One or more of the zip codes entered is not in a valid format.");
						$proceed=false;
						break;
					}
				}
			} else {
				alert("Please enter a zip code for each truck.");
				$proceed=false;
				break;
			}
		}
	}
	return $proceed;
}

var codeReg = /([0-9A-Za-z_]{4,10})/;
var codeRegWarn = "Codes can contain only letters, numbers and underscores and must be between 4 and 10 characters long.";
var userReg = /([0-9A-Za-z_]{10,20})/;
var passReg = /([0-9a-zA-Z_-]{6,12})/;

function checkExistReg(e, arr, label, reg) {
	var tempArr = eval(arr);
	var total = tempArr.length;
	var val = e.value.toLowerCase();
	if (val != "") {
		var doReg = 1;
		for (i=0; i<total; i++) {
			var checkVal = tempArr[i].toLowerCase();
			if (checkVal == val) {
				globalAllow = 0;
				doReg = 0;
				e.value = "";
				alert("That "+label+" is already in use");
				fieldWarn('name');
				break;
			}
		} 
		if (doReg) {
			var useReg = eval(reg);
			var regVal = e.value;
			var userCheck = useReg.test(regVal);
			if (!userCheck) {
				alert("The specified "+label+" is invalid.\n"+eval(reg+"Warn"));
				fieldWarn(e.name);
				e.value = "";
			}
		}
	}
}

function checkPass(e, form) {
	var d = document;
	var f = d.forms[form];
	var passVal = e.value;
	if (passVal != "") {
		var regCheck = passReg.test(passVal);
		if (!regCheck) {
			alert("The password you entered is not in the correct format.\nPasswords must be bewteen 6 and 12 characters long and contain only letters, numbers, hyphens and underscores.");
			f.newPass.value = "";
			f.newPassCon.value = "";
			fieldWarn('newPass');
			fieldWarn('newPassCon');
		} else {
			var val1 = f.newPass.value;
			var val2 = f.newPassCon.value;
			if (val1 != "" && val2 != "") {
				if (val1 != val2) {
					alert("The new passwords you entered do not match.");
					f.newPass.value = "";
					f.newPassCon.value = "";
					fieldWarn('newPass');
					fieldWarn('newPassCon');
				}
			}
		}
	}
}

function checkPassForm(form) {
	var d = document;
	var f = form;
	if (f.oldPass) {
		var oldVal = f.oldPass.value;
	} else {
		var oldVal = "not checking";
	}
	var val1 = f.newPass.value;
	var val2 = f.newPassCon.value;
	if (oldVal == "" || val1 == "" || val2 == "") {
		alert("You did not fill in all of the fileds.");
		return false;
	} else if (oldVal != "" && val1 != "" && val2 != "") {
		var check1 = passReg.test(val1);
		var check2 = passReg.test(val2);
		if (!check1 || ! check2) {
			alert("The password you entered is not in the correct format.\nPasswords must be bewteen 6 and 12 characters long and contain only letters, numbers, hyphens and underscores.");
			return false;
		} else if (check1 && check2) {
			if (val1 != val2) {
				alert("The new passwords you entered do not match.");
				return false;
			} else {
				return true;
			}
		}
	}
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
