function makeArray(n){
	this.length = n;
	for (var i = 1; i <= n; i++)
		this[i] = 0;
	return this;
}
function isInt(s){ return ((" " + parseInt(s)) == (" " + s));}
function isValidDomainStr(s){
	var c = "";
	s = s.toLowerCase();
	for (var i = 0; i < s.length; i++){
		c = s.charAt(i);
		if (!((c >= "a" && c <= "z") || (c >= "0" && c <= "9") || (c == "-"))){return false;}
	}
	return true;
}

function isEmailAddr(email){
  var result = false
  var theStr = new String(email)
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function chkTopLevelUSDomains(sTop){
	var iDomainCount = 7;
	var sDomains = new makeArray(iDomainCount);
	sDomains[0] = "com";
	sDomains[1] = "net";
	sDomains[2] = "org";
	sDomains[3] = "edu";
	sDomains[4] = "gov";
	sDomains[5] = "mil";
	sDomains[6] = "int";

	for (var i = 0; i < iDomainCount; i++)
		if (sTop == sDomains[i])
			return true;
	return false;
}

function checkEmail(sEmail){
	var i = 0;
	var j = 0;
	var sDom = "";
	var s = "";
	var t = "";
	var iLvl = 0;
//Check User ID
	j = sEmail.indexOf("@", i);
	if ((j - i) < 2 || j == (sEmail.length - 1))
		return false;
//Parse Domain
	sDom = sEmail.substring(j + 1, sEmail.length);
	for (i = 0; i != -1; i = sDom.indexOf(".", i + 1))
		iLvl++;
	if (iLvl < 2)
		return false;
	s = new makeArray(iLvl);
	j = 0;
	for (i = 0; i < sDom.length; i++){
		if (sDom.charAt(i) == "."){
			s[j] = t;
			t = "";
			j++;
		}
		else
			t = t + sDom.charAt(i);
	}
	s[j] = t;
//Check for domain name
	if ((s[iLvl - 2].length == 2) && (s[iLvl - 1].length == 2) && (iLvl >= 3)){
		for (i = 0; i < iLvl; i++)
			if (s[i].length >= 2 && !isValidDomainStr(s[i])) return false;
		return true;
	}
	else if (s[iLvl - 1].length == 3){
		if (chkTopLevelUSDomains(s[iLvl - 1])){
			for (i = 0; i < (iLvl - 1); i++)
				if (s[i].length < 2 || !isValidDomainStr(s[i]))return false;
				return true;
		}
		else
			if (!(isInt(s[iLvl - 1]) && (parseInt(s[iLvl - 1]) >= 0) && (parseInt(s[iLvl - 1]) <= 255)))return false;
	}

	if (iLvl == 4){
//Check for IP Address
		for (i = 0; i < 4; i++)
			if (!(isInt(s[i]) && (parseInt(s[i]) >= 0) && (parseInt(s[i]) <= 255)))return false;
		return true;
	}
}

function Validate() {
	if (document.frmInput.email.value == "") {
		alert("Please enter your Email Address.");
		document.frmInput.email.focus();
		return false;
	}
	if (!isEmailAddr(document.frmInput.email.value)) {
    	alert("Please enter a complete email address in the form: yourname@yourdomain.com");
    	document.frmInput.email.focus();
    	return (false);
  	}
  	if (document.frmInput.email.value.length < 3){
    	alert("Please enter at least 3 characters in the \"email\" field.");
    	document.frmInput.email.focus();
    	return (false);
  	}
	if (document.frmInput.firstname.value == "") {
		alert("Please enter a first name");
		document.frmInput.firstname.focus();
		return false;
	}
	if (document.frmInput.lastname.value == "") {
		alert("Please enter a last name");
		document.frmInput.lastname.focus();
		return false;
	}
	if (document.frmInput.day1.value == "") {
		alert("Please enter a valid phone number");
		document.frmInput.day1.focus();
		return false;
	}
	if (document.frmInput.day2.value == "") {
		alert("Please enter a valid phone number");
		document.frmInput.day2.focus();
		return false;
	}
	if (document.frmInput.day3.value == "") {
		alert("Please enter a valid phone number");
		document.frmInput.day3.focus();
		return false;
	}
	if ( document.frmInput.movedateday.selectedIndex == 0 ){
        alert ( "Please select your Move Date Day." );
        return false;
    }
	if ( document.frmInput.movedatemonth.selectedIndex == 0 ){
        alert ( "Please select your Move Date Month." );
        return false;
    }
	if ( document.frmInput.movedateyear.selectedIndex == 0 ){
        alert ( "Please select your Move Date Year." );
        return false;
    }
return true;
}