
// ------- ERROR OBJECT --------------------------------------------------

function classError()
{
	this.foundError = false;
	this.errMsg = "The following errors were found:\n";
	this.addError = ErrorAddError;
	this.displayErrors = ErrorDisplayErrors;
}

function ErrorAddError(newError)
{
	this.errMsg = this.errMsg + "\n" + newError;
	this.foundError = true;
}

function ErrorDisplayErrors()
{
	alert(this.errMsg);
	this.foundError = false;
}

// ------- VALIDATE.JS ---------------------------------------------------

function makeArray(n) {
   for (var i = 1; i <= n; i++) {
      this[i] = 0
   } 
   return this
}

var whitespace = " \t\n\r";

var defaultEmptyOK = true;

var daysInMonth = makeArray(12);
daysInMonth[1] = 31;
daysInMonth[2] = 29;
daysInMonth[3] = 31;
daysInMonth[4] = 30;
daysInMonth[5] = 31;
daysInMonth[6] = 30;
daysInMonth[7] = 31;
daysInMonth[8] = 31;
daysInMonth[9] = 30;
daysInMonth[10] = 31;
daysInMonth[11] = 30;
daysInMonth[12] = 31;

var USStateCodes = "AL|AK|AS|AZ|AR|CA|CO|CT|DE|DC|FM|FL|GA|GU|HI|ID|IL|IN|IA|KS|KY|LA|ME|MH|MD|MA|MI|MN|MS|MO|MT|NE|NV|NH|NJ|NM|NY|NC|ND|MP|OH|OK|OR|PW|PA|PR|RI|SC|SD|TN|TX|UT|VT|VI|VA|WA|WV|WI|WY|AE|AA|AE|AE|AP"

function isEmpty(s)
{   return ((s == null) || (s.length == 0))
}


// returns true if the string 's' is composed entirely of whitespace
function isWhitespace (s)
{   var i;
    if (isEmpty(s)) return true;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (whitespace.indexOf(c) == -1) return false;
    }
    return true;
}

function isLetter (c)
{   return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) )
}

function isDigit (c)
{   return ((c >= "0") && (c <= "9"))
}

function isInteger (s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (!isDigit(c)) return false;
    }
    return true;
}

function isFloat (s)
{   var i;
    var seenDecimalPoint = false;
    if (s == ".") return false;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if ((c == ".") && !seenDecimalPoint) seenDecimalPoint = true;
        else if (!isDigit(c)) return false;
    }
    return true;
}

function isAlphabetic (s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (!isLetter(c))
        return false;
    }
    return true;
}

function isAlphanumeric (s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (! (isLetter(c) || isDigit(c) ) )
        return false;
    }
    return true;
}

function isIntegerInRange (s, a, b)
{   
    if (!isInteger(s)) return false;
		var stripped = stripInitialZeros(s)
		//alert("'" + s + "' has become '" + stripped + "'");
    var num = parseInt (stripped);
		//alert("the integer value of '" + stripped + "' is '" + num + "'");
    return ((num >= a) && (num <= b));
}

function isYear (s)
{		if (!isInteger(s)) return false;
    return ((s.length == 2) || (s.length == 4));
}

function isMonth (s)
{   return isIntegerInRange (s, 1, 12);
}

function isDay (s)
{		return isIntegerInRange (s, 1, 31);
}

function daysInFebruary (year)
{   
    return (  ((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0) ) ) ? 29 : 28 );
}

function isDate (year, month, day)
{   	
    if (! (isYear(year) && isMonth(month) && isDay(day))) return false;

    var intYear = parseInt(year);
    var intMonth = parseInt(stripInitialZeros(month));
    var intDay = parseInt(stripInitialZeros(day));
		//alert("intYear: " + intYear + "\nintMonth: " + intMonth + "\nintDay: " + intDay);

    if (intDay > daysInMonth[intMonth]) return false;
    if ((intMonth == 2) && (intDay > daysInFebruary(intYear))) return false;
    if (intYear.length < 4) return false;
    return true;
}

function isDateField (theField)
{
	s = theField.value
	if (isWhitespace(s)) return false;
	var i = 0;
	var begin = 0;
	var dateDelimiters = "/\-. ";
	var sLength = s.length;
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var month = s.substring(0, i);
	i++;
	begin = i;
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var day = s.substring(begin, i);
	i++;
	begin = i;
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var year = s.substring(begin, i);
  if (isDate (year, month, day)) {
		var normalizedDate = month + "/" + day + "/" + year;
		theField.value = normalizedDate;
		return true;
	}
  return false
}

function okDateGreaterThan (dateA, dateB)
{
	// determines whether dateA < dateB
	// dateA and dateB are text fields formatted as mm/dd/yyyy
	// returns true if dateA == dateB
	s = dateA.value
	t = dateB.value
	alert("okDateBeginEnd: Checking that " + s + " < " + t)
	return (dateGreaterThan (s, t))
}

function okDateBeginEnd (dateA, dateB)
{
	// determines whether dateA < dateB
	// dateA and dateB are text fields formatted as mm/dd/yyyy
	// returns true if dateA == dateB
	s = dateA.value
	t = dateB.value
	//alert("okDateBeginEnd: Checking that " + s + " < " + t)
	return (okDateStringBeginEnd(s, t))
}

function okDateStringBeginEnd (s, t)
{
	// determines whether date s < date t
	// s and t are strings formatted as mm/dd/yyyy
	// returns true if s == t
	if (isWhitespace(s) || isWhitespace(t)) return false;
	//alert("okDateValueBeginEnd: Checking that " + s + " < " + t)
	var i = 0;
	var j = 0;
	var beginS = 0;
	var beginT = 0;
	var dateDelimiters = "/\-. ";
	var sLength = s.length;
	var tLength = t.length;
	
	// get month of first date
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var monthA = s.substring(0, i);
	i++;
	beginS = i;
	// get day of first date
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var dayA = s.substring(beginS, i);
	i++;
	beginS = i;
	// get year of first date
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var yearA = s.substring(beginS, i);
	
	// get month of second date
	while ((j < tLength) && (!charInBag(t.charAt(j), dateDelimiters))) j++;
	var monthB = t.substring(0, j);
	j++;
	beginT = j;
	// get day of second date
	while ((j < tLength) && (!charInBag(t.charAt(j), dateDelimiters))) j++;
	var dayB = t.substring(beginT, j);
	j++;
	beginT = j;
	// get year of second date
	while ((j < tLength) && (!charInBag(t.charAt(j), dateDelimiters))) j++;
	var yearB = t.substring(beginT, j);
	
	// convert date info to integers
	var intDayA = parseInt(stripInitialZeros(dayA));
	var intDayB = parseInt(stripInitialZeros(dayB));
    var intMonthA = parseInt(stripInitialZeros(monthA));
    var intMonthB = parseInt(stripInitialZeros(monthB));
	var intYearA = parseInt(stripInitialZeros(yearA));
	var intYearB = parseInt(stripInitialZeros(yearB));
	
	//alert("intMonthA = " + intMonthA + "\n" +
	//	"intMonthB = " + intMonthB + "\n" +
	//	"intDayA = " + intDayA + "\n" +
	//	"intDayB = " + intDayB + "\n" +
	//	"intYearA = " + intYearA + "\n" +
	//	"intYearB = " + intYearB + "\n");
		
	// check that dateB is later than dateA
	if (intYearA < intYearB) return true;
	if (intYearA > intYearB) return false;
	if (intMonthA < intMonthB) return true;
	if (intMonthA > intMonthB) return false;
	if (intDayA <= intDayB) return true;
	return false;
}

function dateGreaterThan (s, t)
{
	// determines whether date s < date t
	// s and t are strings formatted as mm/dd/yyyy
	// returns true if s == t
	if (isWhitespace(s) || isWhitespace(t)) return false;
	//alert("okDateValueBeginEnd: Checking that " + s + " < " + t)
	var i = 0;
	var j = 0;
	var beginS = 0;
	var beginT = 0;
	var dateDelimiters = "/\-. ";
	var sLength = s.length;
	var tLength = t.length;
	
	// get month of first date
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var monthA = s.substring(0, i);
	i++;
	beginS = i;
	// get day of first date
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var dayA = s.substring(beginS, i);
	i++;
	beginS = i;
	// get year of first date
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var yearA = s.substring(beginS, i);
	
	// get month of second date
	while ((j < tLength) && (!charInBag(t.charAt(j), dateDelimiters))) j++;
	var monthB = t.substring(0, j);
	j++;
	beginT = j;
	// get day of second date
	while ((j < tLength) && (!charInBag(t.charAt(j), dateDelimiters))) j++;
	var dayB = t.substring(beginT, j);
	j++;
	beginT = j;
	// get year of second date
	while ((j < tLength) && (!charInBag(t.charAt(j), dateDelimiters))) j++;
	var yearB = t.substring(beginT, j);
	
	// convert date info to integers
	var intDayA = parseInt(stripInitialZeros(dayA));
	var intDayB = parseInt(stripInitialZeros(dayB));
    var intMonthA = parseInt(stripInitialZeros(monthA));
    var intMonthB = parseInt(stripInitialZeros(monthB));
	var intYearA = parseInt(stripInitialZeros(yearA));
	var intYearB = parseInt(stripInitialZeros(yearB));
	
	//alert("intMonthA = " + intMonthA + "\n" +
	//	"intMonthB = " + intMonthB + "\n" +
	//	"intDayA = " + intDayA + "\n" +
	//	"intDayB = " + intDayB + "\n" +
	//	"intYearA = " + intYearA + "\n" +
	//	"intYearB = " + intYearB + "\n");
		
	// check that dateB is later than dateA
	if (intYearA < intYearB) return false;
	if (intYearA > intYearB) return true;
	if (intMonthA < intMonthB) return false;
	if (intMonthA > intMonthB) return true;
	if (intDayA <= intDayB) return false;
	return true;
}

function findAge (s, t)
{
	// Calculates age.  Arguments are date strings of the form mm/dd/yyyy.
	// s = birthdate
	// t = today
	if (isWhitespace(s) || isWhitespace(t)) return false;
	//alert("findAge: Checking age for " + s + " and " + t)
	var i = 0;
	var j = 0;
	var beginS = 0;
	var beginT = 0;
	var dateDelimiters = "/\-. ";
	var sLength = s.length;
	var tLength = t.length;
	
	// get month of first date
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var monthA = s.substring(0, i);
	i++;
	beginS = i;
	// get day of first date
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var dayA = s.substring(beginS, i);
	i++;
	beginS = i;
	// get year of first date
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var yearA = s.substring(beginS, i);
	
	// get month of second date
	while ((j < tLength) && (!charInBag(t.charAt(j), dateDelimiters))) j++;
	var monthB = t.substring(0, j);
	j++;
	beginT = j;
	// get day of second date
	while ((j < tLength) && (!charInBag(t.charAt(j), dateDelimiters))) j++;
	var dayB = t.substring(beginT, j);
	j++;
	beginT = j;
	// get year of second date
	while ((j < tLength) && (!charInBag(t.charAt(j), dateDelimiters))) j++;
	var yearB = t.substring(beginT, j);
	
	// convert date info to integers
	var intDayA = parseInt(stripInitialZeros(dayA));
	var intDayB = parseInt(stripInitialZeros(dayB));
    var intMonthA = parseInt(stripInitialZeros(monthA));
    var intMonthB = parseInt(stripInitialZeros(monthB));
	var intYearA = parseInt(stripInitialZeros(yearA));
	var intYearB = parseInt(stripInitialZeros(yearB));

	//alert("intMonthA = " + intMonthA + "\n" +
	//	"intMonthB = " + intMonthB + "\n" +
	//	"intDayA = " + intDayA + "\n" +
	//	"intDayB = " + intDayB + "\n" +
	//	"intYearA = " + intYearA + "\n" +
	//	"intYearB = " + intYearB + "\n");

	age = intYearB - intYearA - 1;
	if (intMonthB > intMonthA)
		age++
	if (intMonthB == intMonthA)
	{
		if (intDayB >= intDayA)
			age++;
	}
	if (age < 0)
		age = 0;
	return age;
}

function CalcFuture(s, e, t){
   //calculates dates in future determined by bound 't'
   //s = start date
   //e = future date
   //t = amount of time in future (in months)
   if (isWhitespace(s) || isWhitespace(t))
      return false;
	  
   var i = 0;
   var j = 0;
   var beginS = 0;
   var beginT = 0;
   var dateDelimiters = "/\-. ";
   var sLength = s.length;
   var eLength = e.length;
   
   monthNow = s.substring(0,2);
   monthFut = e.substring(0,2);
   
   mnthNow = parseInt(stripInitialZeros(monthNow));
   mnthFtr = parseInt(stripInitialZeros(monthFut));
   
   mnthNow += parseInt(t);
   if (mnthNow > 12)
      mnthNow -= 12;
   
   if (mnthNow < mnthFtr)
     return false;
   else
     return true;
	 
}


function isStateCode(s)
{   
    return ( (USStateCodes.indexOf(s) != -1) &&
             (s.indexOf("|") == -1) )
}

function warnEmpty (theField, s)
{   theField.focus()
    alert("The " + s + " field is required.  Please enter a value.")
    return false
}

function warnInvalid (theField, s)
{   theField.focus()
    theField.select()
    alert( "\n" + s)
    return false
}

function checkStateCode (theField)
{
    theField.value = theField.value.toUpperCase();
    if (!isStateCode(theField.value)) 
       return warnInvalid (theField, "The state must be a valid two-letter US state abbreviation. Please reenter it now.");
    else return true;
}

function checkDate (theField, labelString)
{
	var s = theField.value;
	if (isWhitespace(s)) return false;
	var i = 0;
	var begin = 0;
	var dateDelimiters = "/\-. ";
	var sLength = s.length;
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var month = s.substring(0, i);
	i++;
	begin = i;
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var day = s.substring(begin, i);
	i++;
	begin = i;
	while ((i < sLength) && (!charInBag(s.charAt(i), dateDelimiters))) i++;
	var year = s.substring(begin, i);
  if (isDate (year, month, day)) {
		var normalizedDate = month + "/" + day + "/" + year;
		theField.value = normalizedDate;
		return true;
	}
	warnInvalid(theField, labelString + " is not a valid date (mm/dd/yyyy).  Please reenter it now."); 
  return false
}

function checkInt (theField, labelString, reqLength)
{
	var s = theField.value;
	if (!isInteger(s))
		return warnInvalid(theField, labelString + " must be an integer.  Please reenter it now.");
	if ((checkInt.arguments.length == 4) && (s.length < reqLength))
		return warnInvalid(theField, labelString + " must be " + reqLength + " digits.  Please reenter it now.");
	else return true;
}

function checkFloat (theField, labelString)
{
	var s = theField.value;
	if (!isFloat(s))
		return warnInvalid(theField, labelString + " must be numeric.  Please reenter it now.");
	else return true;
}

function checkAlpha (theField, labelString)
{
	var s = theField.value;
	if (!isAlphabetic(s))
		return warnInvalid(theField, labelString + " must be alphabetic only.  Please reenter it now.");
	else return true;
}

function checkAlphanum (theField, labelString)
{
	var s = theField.value;
	if (!isAlphanumeric(s))
		return warnInvalid(theField, labelString + " may only contain letters.  Please reenter it now.");
	else return true;
}

function checkEntered (theField, labelString)
{
	var s = theField.value;
	if (isEmpty(s))
		return warnInvalid(theField, labelString + " is required.  Please enter it now.");
	else return true;
}

function charInBag(c, bag)
{		if (bag.indexOf(c) == -1) return false;
		else return true;
}

function stripCharsInBag (s, bag)
{   var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function stripCharsNotInBag (s, bag)
{   var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
    {   
        var c = s.charAt(i);
        if (bag.indexOf(c) != -1) returnString += c;
    }
    return returnString;
}

function stripWhitespace (s)
{   return stripCharsInBag (s, whitespace)
}

function stripInitialWhitespace (s)
{   var i = 0;
    while ((i < s.length) && charInString (s.charAt(i), whitespace))
       i++;
    return s.substring (i, s.length);
}

function stripInitialChar (s, c)
{
   return s.substring(c, s.length);
}

function stripCharBetween (s, c1, c2)
{
   if (c2 == null)
	  c2 = s.length;
   return s.substring(c1, c2)
}

function stripEndWhitespace (s)
{
   var i = s.length - 1;
   while ((i >= 0) && charInBag (s.charAt(i), whitespace))
      i--;
   return s.substring(0, i + 1);
}

function stripEdges( theField)
{
	theField.value = stripEndWhitespace( stripInitialWhitespace( theField.value));
}

function stripInitialZeros (s)
{   var i = 0;
    while ((i < s.length) && charInString (s.charAt(i), "0"))
       i++;
    return s.substring (i, s.length);
}

function charInString (c, s)
{   for (i = 0; i < s.length; i++)
    {   if (s.charAt(i) == c) return true;
    }
    return false
}

function isLetterOrDigit (c)
{   return (isLetter(c) || isDigit(c))
}

function reformat (s)
{   var arg;
    var sPos = 0;
    var resultString = "";
    for (var i = 1; i < reformat.arguments.length; i++) {
       arg = reformat.arguments[i];
       if (i % 2 == 1) resultString += arg;
       else {
           resultString += s.substring(sPos, sPos + arg);
           sPos += arg;
       }
    }
    return resultString;
}

function isUSPhoneNumber (s)
{  return (isInteger(s) && s.length == 10)
}

function reformatUSPhone (USPhone)
{   return (reformat (USPhone, "", 3, "-", 3, "-", 4))
}

function checkUSPhone (theField)
{   
	var normalizedPhone = stripCharsInBag(theField.value, "()-. ")
    if (!isUSPhoneNumber(normalizedPhone))
       return false;/*warnInvalid (theField, "Phone must be a 10 digit U.S. phone number \n(with area code). Please reenter it now.");*/
    else 
    {  
       theField.value = reformatUSPhone(normalizedPhone)
       return true;
    }
}

function checkUSPhoneThrust (theField)
{   	
	var normalizedPhone = stripCharsInBag(theField.value, "()-. ")
    if ((!isUSPhoneNumber(normalizedPhone)) && (normalizedPhone != ""))
       return false;
    else 
    {  
	 	 if (normalizedPhone != "")
       	theField.value = reformatUSPhone(normalizedPhone)
			
       return true;
    }
}


function checkUSFax (theField)
{   var normalizedPhone = stripCharsInBag(theField.value, "()-. ")
    if (!isUSPhoneNumber(normalizedPhone))
       return warnInvalid (theField, "Fax must be a 10 digit U.S. phone number. Please reenter it now.");
    else 
    {  
       theField.value = reformatUSPhone(normalizedPhone)
       return true;
    }
}

function isZIPCode (s)
{
	strippedZip = stripCharsInBag(s, " -");
	return (isInteger(strippedZip) && ((s.length == 5) || (strippedZip.length == 9)))
}

function reformatZIPCode (ZIPString)
{   if (ZIPString.length == 5) return ZIPString;
    else return (reformat (ZIPString, "", 5, "-", 4));
}

function checkZIPCode (theField)
{
    var normalizedZIP = stripCharsInBag(theField.value, " -")
    if (!isZIPCode(normalizedZIP)) 
      return warnInvalid (theField, "Zip Code must be a 5 or 9 digit US ZIP Code. Please reenter it now.");
    else 
    {  
       theField.value = reformatZIPCode(normalizedZIP)
       return true;
    }
}

function isEmail (s)
{   
    if (isWhitespace(s)) return false;
    var i = 1;
    var sLength = s.length;
    while ((i < sLength) && (s.charAt(i) != "@"))
    { i++
    }
    if ((i >= sLength) || (s.charAt(i) != "@")) return false;
    else i += 2;
    while ((i < sLength) && (s.charAt(i) != "."))
    { i++
    }
    if ((i >= sLength - 1) || (s.charAt(i) != ".")) return false;
    else return true;
}

function checkEmail (theField)
{
    if (!isEmail(theField.value)) 
       return warnInvalid (theField, "Email must be a valid email address. Please reenter it now.");
    else return true;
}

//bjn/jes function to 'autoadvance' cursor to next text box
//this instance of the function uses the this pointer 
//and the name of the next form object to move the focus to the next field
function jumpCursor(sCurrentObject, sNextObject, nDesiredChars)
{
	var tempNextObj = eval("sCurrentObject.form." + sNextObject);
	
	if (sCurrentObject.value.length == parseInt(nDesiredChars))
		tempNextObj.focus();
		
	return false;
}

//--------------------------- Sunanda's Code ------------------------------------------------

		function isValidPhone( vArea, vExchange, vLine)
		{
			if (isFieldBlank( vArea) || isFieldBlank( vExchange) || isFieldBlank( vLine))
				return false;
			else if (!(isIntOfLen( vArea.value, 3) && isIntOfLen(vExchange.value, 3) && isIntOfLen(vLine.value,4)))
				return false;
				
			return true;
		}
		
		function isIntOfLen (s, vLength)
		{
			return isInteger(s) && (s.length >= vLength);
		}
		function stripVarCharsInBag (s, bag, vChars)
		{   var i;
			var cStrips;
			cStrips = 0;
		    var returnString = "";
		    for (i = 0; i < s.length; i++)
		    {   
		        var c = s.charAt(i);
		        if (bag.indexOf(c) == -1)
					returnString += c;
				else
				{
					cStrips++;
					if (cStrips == vChars)
						bag = "";
				}
		    }
		    return returnString;
		}
		
		
		function charInBag(c, bag)
		{               if (bag.indexOf(c) == -1) return false;
		                else return true;
		}
		
		function isValidZip (theField)
		{
			var s;
			theField.value = stripWhitespace( theField.value);
			s = stripVarCharsInBag(theField.value, "-", 1);
			if (isInteger(s))
			{
				if ((s.length != 5) && (s.length != 9))
					return false;
			}
			else
				return false;
			return true;
		}


//-----------------------ADogg's Code------------------------

	function isRadioFieldEmpty(radField) {

		for (radIdx = 0; radIdx < radField.length; radIdx++) {
			if (radField[radIdx].checked)
				{return false;}
		}

		return true;
	}

	function getSelectedIndex(selField) {

		return selField.selectedIndex;
	}

	function getSelectedValue(selField) {
		return selField.options[selField.selectedIndex].value;
	}

	// checks to see if the value passed in is a valid hour.  'military' gives the option of allowing milttary hours (0-23)
	function isHour(val, military) {
		if (!isEmpty(val) && !isWhitespace(val) && isInteger(val)) {
			nHour = parseInt(val, 10);
			if (!isNaN(nHour)) {
				if (military) 
					{return ((nHour <= 23) && (nHour >= 0));}
				else 
					{return ((nHour <= 12) && (nHour >= 0));}
			}
		}
		return false;
	}


	function isMinute(val) {
		if (!isEmpty(val) && !isWhitespace(val) && isInteger(val)) {
			nMinute = parseInt(val, 10);
			if (!isNaN(nMinute))
				{return ((nMinute <= 59) && (nMinute >= 0));}
		}
		return false;
	}

	function LoadSelectBoxWithArray(selBox, arr) {

		for (i=0;i<arr.length;i++) {
			selBox.options[i] = null;
			selBox.options[i] = new Option(arr[i], arr[i]);
		}
	}
