/**
 * Moves focus to next element if reached element's max. length.
 */
function onMaxFocusNext(el_) {
  if (el_.value.length == el_.maxLength) {
    nextTab = el_.tabIndex;
    //alert(nextTab);
    if (nextTab < document.forms[0].elements.length) {
      document.forms[0].elements[nextTab].focus();
    }
  }
}

/**
 * Returns form value of named item.
 */
function getFormValue(formName, n) {
  return eval("document." + formName + "." + n + ".value");
}

/**
 * Returns selectedIndex of named item.
 */
function getSelectedIndex(formName, n) {
  return eval("document." + formName + "." + n + ".selectedIndex");
}

/**
 * Returns text of currently-selected option from select.
 */
function getSelectedText(formName, n) {
  return eval("document." + formName + "." + n + ".options[" + getSelectedIndex(formName, n) + "].text");
}

/**
 * Returns value of currently-selected option from select.
 */
function getSelectedValue(formName, n) {
  return eval("document." + formName + "." + n + ".options[" + getSelectedIndex(formName, n) + "].value");
}

/**
 * Returns form value == "" statement.
 */
function isBlank(formName, n) {
  return getFormValue(formName, n) == "";
}

/**
 *
 */
function all_digits(field) {
	var temp;
	var valid = "0123456789";
	for (var i=0; i<field.length; i++) {
		temp = "" + field.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") {
      return false;
    }
	}
	return true;
}

/**
 * Validates a phone number.
 */
function validate_phone_number(area, prefix, suffix) {
  if (!all_digits(area + prefix + suffix)) {
    return false;
  }
  
  if ((area.length != 3) || (prefix.length != 3) || (suffix.length != 4)) {
    return false;
  }
  
  return true;
}

/**
 * I left this in here as a reminder.
 *
function validate_phone_number(area, prefix, suffix) {
	if(! (area.length != 3 || !all_digits(area)) ) {
		if(! (prefix.length != 3 || !all_digits(prefix)) ) {	
			if (! (suffix.length != 4 || !all_digits(suffix)) ) {	
				return true;
			}
		}
	}
	return false;
}
*/

function validate_zip(field) {
	var valid = "0123456789-";
	var hyphencount = 0;
	if (field.length!=5 && field.length!=10) {
		return false;
	}
	for (var i=0; i < field.length; i++) {
		temp = "" + field.substring(i, i+1);
		if (temp == "-") hyphencount++;
		if (valid.indexOf(temp) == "-1") {
			return false;
		}
		if ((hyphencount > 1) || ((field.length==10) && ""+field.charAt(5)!="-")) {
			return false;
		}
	}
	return true;
}

/**
 * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
 * http://javascript.internet.com
 */
//function validate_email(emailStr) {
//   return !liame_etadilav(emailStr);
//}

function validate_email(emailStr) {
   if (emailStr.length == 0) {
       return false;
   }
   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;
   }
   var user=matchArray[1];
   var domain=matchArray[2];
   if (user.match(userPat) == null) {
       return false;
   }
   var IPArray = domain.match(ipDomainPat);
   if (IPArray != null) {
       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;
   }
   var atomPat=new RegExp(atom,"g");
   var domArr=domain.match(atomPat);
   var len=domArr.length;
   if ((domArr[domArr.length-1].length < 2) ||
       (domArr[domArr.length-1].length > 3)) {
       return false;
   }
   if (len < 2) {
       return false;
   }
   return true;
}
            
function tempArray() {
}

function checkValidDate(mm, dd, yy) {
	if (mm == "" || dd == "" || yy == "") {
    alert(msg);
    return false;
  }
	
  if (mm == "0" || dd == "0" || yy == "0") {
    alert(msg);
    return false;
  }

  // set up days-in-months
  //days_in_months = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}  
  days_in_months = new tempArray();
  days_in_months["01"] = 31;
  days_in_months["02"] = 28;
  days_in_months["03"] = 31;
  days_in_months["04"] = 30;
  days_in_months["05"] = 31;
  days_in_months["06"] = 30;
  days_in_months["07"] = 31;
  days_in_months["08"] = 31;
  days_in_months["09"] = 30;
  days_in_months["10"] = 31;
  days_in_months["11"] = 30;
  days_in_months["12"] = 31;
  
  // Extra day in February if leap year.
  if (((yy % 4 == 0) && (yy % 100 != 0) ) || (yy % 400 == 0)) {
    days_in_months["02"] = 29;
  }
 
  if (parseInt(dd) <= parseInt(days_in_months[mm])) {
    return true;
  }
 
  return false;
}

function submitForm(form) {
 	alert("Submitting form");
 	form.submit();
}

