var imgList = new Array()

function loadImgs() {
    for (var i = 0; i < arguments.length; i++) {
        imgList[i] = new Image()
        imgList[i].src = arguments[i]
    }
}

loadImgs(
    'gfx/nav/highlight/nav_bg.gif',
    'gfx/nav/highlight/squares.gif',
    'gfx/nav/blue/nav_bg.gif',
    'gfx/nav/blue/squares.gif'
)

function highlight(elementGroupID) {
	document.getElementById("nav"+elementGroupID).style.background = "url(gfx/nav/highlight/nav_bg.gif)"
	document.getElementById("link"+elementGroupID).style.color = "#00457C"
	document.getElementById("squares"+elementGroupID).src = "gfx/nav/highlight/squares.gif"
}

function unHighlight(elementGroupID) {
	document.getElementById("nav"+elementGroupID).style.background = "url(gfx/nav/blue/nav_bg.gif)"
	document.getElementById("link"+elementGroupID).style.color = "#D9DCE9"
	document.getElementById("squares"+elementGroupID).src = "gfx/nav/blue/squares.gif"
}

function isChar(inputval) {
	var inputstr = "" + inputval;
	if (inputstr.length == 0) {
		return false;
	}

	for (var i = 0; i < inputstr.length; i++) {
		var onechar = inputstr.charAt(i);
		if ((onechar >= "a" && onechar <= "z") || (onechar >= "A" && onechar <= "Z") || (onechar == "'"))  {
			continue;
		} else {
			return false;
		}
	}
	return true;
}


function isCommonChar(inputval) {
	var inputstr = "" + inputval;
	if (inputstr.length == 0) {
		return false;
	}

	for (var i = 0; i < inputstr.length; i++) {
		var onechar = inputstr.charAt(i);
		if ((onechar >= "a" && onechar <= "z") || (onechar >= "A" && onechar <= "Z") || (onechar == String.fromCharCode(32)) || (onechar == "'") || (onechar == String.fromCharCode(45)))  {
			continue;
		} else {
			return false;
		}
	}
	return true;
}


function isNum(inputval) {
	var inputstr = "" + inputval;
	if (inputstr.length == 0) {
		return false;
	}

	for (var i = 0; i < inputstr.length; i++) {
		var onechar = inputstr.charAt(i);
		if (onechar >= "0" && onechar <= "9")  {
			continue;
		} else {
			return false;
		}
	}
	return true;
}


function isNumOrChar(inputval) {
	var inputstr = "" + inputval;
	if (inputstr.length == 0) {
		return false;
	}

	for (var i = 0; i < inputstr.length; i++) {
		var onechar = inputstr.charAt(i);
		if ((onechar >= "a" && onechar <= "z") || (onechar >= "A" && onechar <= "Z") || (onechar >= "0" && onechar <= "9"))  {
			continue;
		} else {
			return false;
		}
	}
	return true;
}



function isMoney(inputval) {
	var inputstr = "" + inputval;
	if (inputstr.length == 0) {
		return false;
	}

	for (var i = 0; i < inputstr.length; i++) {
		var onechar = inputstr.charAt(i);
		if ((onechar >= "0" && onechar <= "9") || (onechar == "."))  {
			continue;
		} else {
			return false;
		}
	}
	
	if (inputval.indexOf(".") >= 0 && ((inputval.length - 1 - inputval.indexOf(".")) > 2)) {
		return false;
	}
	
	return true;
}



function isSuiteNum(inputval) {
	var inputstr = "" + inputval;
	if (inputstr.length == 0) {
		return false;
	}

	for (var i = 0; i < inputstr.length; i++) {
		var onechar = inputstr.charAt(i);
		if ((onechar >= "0" && onechar <= "9") || (onechar >= "a" && onechar <= "z") || (onechar >= "A" && onechar <= "Z") || (onechar == String.fromCharCode(45)) || (onechar == String.fromCharCode(32)) || (onechar == String.fromCharCode(35)))  {
			continue;
		} else {
			return false;
		}
	}
	return true;
}



function isEMail(sEmail) {
	if (sEmail == "" || sEmail.length == 0) {
		alert("Please Enter Your Email Address");
		return false;
	}

	var starta = sEmail.indexOf("@",1);
	var nexta = sEmail.indexOf("@",starta+1);
	var enddot = sEmail.lastIndexOf(".",sEmail.length-1);
	if (starta == -1 || nexta != -1 || enddot == -1 || enddot <= starta) {
		alert("Please enter a valid email address");
		return false;
	}
	return true;
}


function isOptionalEmail(sEmail) {
		var inputstr = "" + sEmail
		for (var i = 0; i < inputstr.length; i++) {
			var onechar = inputstr.charAt(i);
			if ((onechar >= "a" && onechar <= "z") || (onechar >= "@" && onechar <= "Z") || (onechar >= "0" && onechar <= "9") || (onechar == String.fromCharCode(45)) || (onechar == String.fromCharCode(46)) || (onechar == String.fromCharCode(95)))  {
				continue;
			} else {
				alert("Please enter a valid email address");
				return false;
			}
		}

		var starta = sEmail.indexOf("@",1);
		var nexta = sEmail.indexOf("@",starta+1);
		var enddot = sEmail.lastIndexOf(".",sEmail.length-1);
		if (starta == -1 || nexta != -1 || enddot == -1 || enddot <= starta) {
			alert("Please enter a valid email address");
			return false;
		}
}

function isTelNumber(inputval) {
	var inputstr = "" + inputval;
	for (var i = 0; i < inputstr.length; i++) {
		var onechar = inputstr.charAt(i);
		if ((onechar >= "0" && onechar <= "9") || (onechar == String.fromCharCode(45)) || (onechar == String.fromCharCode(40)) || (onechar == String.fromCharCode(41)) || (onechar == String.fromCharCode(32))) {
			continue;
		} else {
			return false;
		}
	}
	return true;
}


function isDateFormat(inputval) {
	var inputstr = "" + inputval;
	if (inputstr.length == 0) {
		return false;
	}

	for (var i = 0; i < inputstr.length; i++) {
		var onechar = inputstr.charAt(i);
		if ((onechar >= "0" && onechar <= "9") ||  (onechar == "/")) {
			continue;
		} else {
			return false;
		}
	}
	return true;
}


function isTimeFormat(inputval) {
	var inputstr = "" + inputval;
	if (inputstr.length == 0) {
		return false;
	}

	for (var i = 0; i < inputstr.length; i++) {
		var onechar = inputstr.charAt(i);
		if ((onechar >= "0" && onechar <= "9") ||  (onechar == ":")) {
			continue;
		} else {
			return false;
		}
	}
	return true;
}



function isMMDDYYYY_Date(inputval) {

	// load the input variable into an empty string (prevents errors on a null string subission)
	var inputstr = "" + inputval;

	// start checking input length and validating entered characters
	// Prompt and return 'false' if the value is out of range
	if ((inputstr.length == 0) || (inputstr.length > 10) || (!isDateFormat(inputstr))){
		alert("You have entered an invalid date. Please enter a date in 'MM/DD/YYYY' format (You must use ony numbers or the forward slash symbol '/'; 'M/D/YYYY' format will also be accepted).");
		return false;
	// end checking input length and validating entered characters
	}

	// split the input string into an array, delimited by a forward slash
	var dateArray = inputstr.split("/");

	// test the array length; make sure we get exactly three values representing month, day, year.
	// Prompt and return 'false' if the value is out of range
	// start of 'Date Array' validation code
	if (dateArray.length != 3) {
		alert("Please make sure to enter the month, day, and year and to separate them with forward slashes '/'")
		return false;
	} else {
		// assign array values to variables representing month, day, year
		var dateM = dateArray[0];
		var dateD = dateArray[1];
		var dateY = dateArray[2];

		// check to see if the year being assigned is in the past; the year 2000 was selected as an arbitrary date,
		// but the date could really be set to anything
		// Prompt and return 'false' if the value is out of range
		// start of 'Year' validation code
		if (dateY < 2005) {
			alert("We want to look forward, to the future; not past, to the back.")
			return false;
		} else {

			// check to see if an invalid month was assigned to the month variable
			// Prompt and return 'false' if the value is out of range
			// start of 'Month' validation code
			if (dateM > 12) {
				alert("And what would YOU call month " + dateM + ". My vote is for 'Febtember'.")
				return false;
			} else {

				// check to see if an invalid day was assigned to the day variable
				// Prompt and return 'false' if the value is out of range
				// start of 'Day' validation code
				if (dateD > 31) {
					alert("I'm going to check, but don't all months have less than 32 days?")
					return false;
				} else {

					// check to see if an invalid day was entered for the months of September, April, June and November (greater than 30)
					// Prompt and return 'false' if the value is out of range
					// start of 'Day of Month' validation code
					if (((dateM == 4) || (dateM == 6) || (dateM == 9) || (dateM == 11)) && (dateD > 30)){
						alert("30 days has September, April, June and November")
						return false;
					// end of 'Day of Month' validation code
					}

					// check to see if it's February
					// Prompt and return 'false' if the value is out of range
					// start of 'Is it february?' validation code
					if (dateM == 2) {

						// check to see if it's February and a date greater than 29 was enetered
						// Prompt and return 'false' if the value is out of range
						// start of 'Is it after the 29th?' validation code
						if (dateD > 29) {
							alert("Leap-year or not, I can assure you that you're never going to find " + dateD + " days in February ;)");
							return false;
						} else {

							// check to see if it's February the 29th, but it isn't a leap year
							// Prompt and return 'false' if the value is out of range
							// start of 'Is it a leap year?' validation code
							if ((dateD == 29) && !((dateY % 4 == 0) && ((dateY % 100 != 0) || (dateY % 400 == 0)))) {
								alert("You may want to check your calendar, keeping in mind that the whole" + '\n' + "leap-year thingy only happens SOME Februarys ;)");
								return false;

							// end of 'Is it a leap year?' validation code
							}

						// end of 'Is it after the 29th?' validation code
						}

					// end of 'Is it february?' validation code
					}

				// finalizing the 'Day' validation code; if the Day of Month and February code didn't return 'false'
				// and it's not greater than the 31st, end the function returning 'true'
					return true;

				// end of 'Day' validation code
				}

			// end of 'Month' validation code
			}

		// end of 'Year' validation code
		}

	// end of 'Date Array' validation code
	}

// end of function
}


function isHHMM(inputval) {

	// load the input variable into an empty string (prevents errors on a null string subission)
	var inputstr = "" + inputval;

	// start checking input length and validating entered characters
	// Prompt and return 'false' if the value is out of range
	if ((inputstr.length == 0) || (inputstr.length > 5) || (!isTimeFormat(inputstr))){
		alert("You have entered an invalid time. Please enter a new time in 'HH:MM' format using the 24hr Clock " + '\n' + "(add 12 to standard 12-hour clock times to convert to the 24hr clock; i.e. 3:30PM would be 3:30 + 12:00 = 15:30).");
		return false;
	// end checking input length and validating entered characters
	}

	// split the input string into an array, delimited by a forward slash
	var timeArray = inputstr.split(":");

	// test the array length; make sure we get exactly two values representing hour and minute.
	// Prompt and return 'false' if the value is out of range
	// start of 'Date Array' validation code
	if (timeArray.length != 2) {
		alert("Please make sure to enter the hour and minute and to separate them with a colon ':'")
		return false;
	} else {
		// assign array values to variables representing hour and minute
		var dateHH = timeArray[0];
		var dateMM = timeArray[1];
		
		if (dateHH > 24) {
			alert("You have entered an invalid hour. Please re-enter a new hour.");
			return false;
		} else {
			if (dateMM > 60 || (dateHH == 24 && dateMM > 0)) {
				alert("You have entered an invalid minute. Please re-enter a new minute." + '\n' + "For times between 12:01 and 12:59 AM, use 00:01-00:59");
				return false;
			} else {
				return true;
			}
		}
		
	}
}


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];}
}


