<!--
function checknumber(object_value)  {
    //Returns true if value is a number or is NULL
    //otherwise returns false   
    if (object_value.length == 0)
        return true;
    //Returns true if value is a number defined as
    //   having an optional leading + or -.
    //   having at most 1 decimal point.
    //   otherwise containing only the characters 0-9.
        var start_format = " .+-0123456789";
        var number_format = " .0123456789";
        var check_char;
        var decimal = false;
        var trailing_blank = false;
        var digits = false;
    //The first character can be + - .  blank or a digit.
        check_char = start_format.indexOf(object_value.charAt(0))
    //Was it a decimal?
        if (check_char == 1)
            decimal = true;
        else if (check_char < 1)
                return false;
        //Remaining characters can be only . or a digit, but only one decimal.
        for (var i = 1; i < object_value.length; i++)
        {
                check_char = number_format.indexOf(object_value.charAt(i))
                if (check_char < 0)
                        return false;
                else if (check_char == 1)
                {
                        if (decimal)            // Second decimal.
                                return false;
                        else
                                decimal = true;
                }
                else if (check_char == 0)
                {
                        if (decimal || digits)  
                                trailing_blank = true;
        // ignore leading blanks
                }
                else if (trailing_blank)
                        return false;
                else
                        digits = true;
        }       
    //All tests passed, so...
    return true
}

function hasValue(obj, obj_type){
    if (obj_type == "TEXT" || obj_type == "PASSWORD") {
        if (obj.value.length == 0) 
                return false;
        else 
                return true;
   }else if (obj_type == "ALPHATEXT") {
   		//if (obj.value.length == 0 || !isNaN(obj.value)){
		//IsNaN didn't work in Netscape 3.04
		if (checknumber(obj.value)){
                return false;
        }else { 
                return true; 
		}  
   }else if (obj_type == "SELECT") {
        //for (i=0; i < obj.length; i++) {
		for (i=1; i < obj.length; i++) {
                if (obj.options[i].selected)
                        return true;
        }
        return false;   
  } else if (obj_type == "SINGLE_VALUE_RADIO" || obj_type == "SINGLE_VALUE_CHECKBOX"){
                if (obj.checked){
                        return true;
                }else {
                return false;  
				} 
  } else if (obj_type == "RADIO" || obj_type == "CHECKBOX") {
        for (i=0; i < obj.length; i++) {
                if (obj[i].checked)
                        return true;
        } return false;   
  }
  
}



function checkinteger(object_value) {
    //Returns true if value is a number or is NULL
    //otherwise returns false   
    if (object_value.length == 0)
        return true;
    //Returns true if value is an integer defined as
    //   having an optional leading + or -.
    //   otherwise containing only the characters 0-9.
        var decimal_format = ".";
        var check_char;
    //The first character can be + -  blank or a digit.
        check_char = object_value.indexOf(decimal_format)
    //Was it a decimal?
    if (check_char < 1)
        return checknumber(object_value);
    else
        return false;
}

function checkphoneinteger(object_value) {
    //Returns true if value is a number or is NULL
    //otherwise returns false   
    if (object_value.length == 5)
        return true;
    //Returns true if value is an integer defined as
    //   having an optional leading + or -.
    //   otherwise containing only the characters 0-9.
        var decimal_format = ".";
        var check_char;
    //The first character can be + -  blank or a digit.
        check_char = object_value.indexOf(decimal_format)
    //Was it a decimal?
    if (check_char < 1)
        return checknumber(object_value);
    else
        return false;
}

function numberrange(object_value, min_value, max_value) {
    // check minimum
    if (min_value != null)
        {
        if (object_value < min_value)
                return false;
        }
    // check maximum
    if (max_value != null)
        {
        if (object_value > max_value)
                return false;
        }
   //All tests passed, so...
    return true;
}

function validSelect(obj){
		selchoice = obj.selectedIndex;
		if (obj.options[selchoice].value == "None") {
			//alert("Please select your state.");
			//alert("value is " + form.state.options[stchoice].value);
			return false;
		}else{
			return true;
		}
}

function fillUS(form) {
			/* out for 508
	if (validSelect(form.state)){
		//form.country.selectedIndex = 1;
		for (i=0; i < form.country.length; i++) {
			//if (form.country.options[i].value == "US") {
			if (form.country.options[i].value == "840") {
				form.country.selectedIndex = i;
			}
		}
		form.postalcode.value = "n/a";
		form.zip.focus();
	}else {
		form.zip.value = "n/a";
		form.country.selectedIndex = 0;
		form.postalcode.value = "";
		form.country.focus();
	return true;
	} */
}

//function stateNull(form){
//	form.state.selectedIndex = 0;
//	form.country.focus();
//	return true;
//}
//function stateNull(form){
//	nation = new Array ("United States", "United States of America", "America", "US", "USA", "US of A", "U.S.A.", "U.S."); 
//	for (i=0; i < nation.length; i++) {
//		if (nation[i] == alltrim(form.country.value)){
//			form.postalcode.value = "n/a";
//			//alert("Please select a state");
//			if  (!checkzip(form.zip.value)) {
//				//alert("Please enter a valid zip code");
//			}	
//		}else {
//			form.state.selectedIndex = 0;
//		}
//	}
//	return true;	
//}
function stateNull(form){
		/*
		//if (form.country.selectedIndex == 1){
		cselchoice = form.country.selectedIndex;
		//if (form.country.options[cselchoice].value == "US") {
		if (form.country.options[cselchoice].value == "840") {
			form.postalcode.value = "n/a";
			if (!validSelect(form.state)){
				form.state.focus();
			}
			//alert("Please select a state");
			if  (!checkzip(form.zip.value)) {
				//alert("Please enter a valid zip code");
				form.zip.value = "";
			}	
		}else {
			form.state.selectedIndex = 0;
			form.zip.value = "n/a";
			form.postalcode.value = "";
			form.postalcode.focus();
		}
	return true; */	
}

function oneCheck(obj) {
	var j = -1;
	for (i=0; i<obj.length; i++){
	 	if (obj[i].checked){
	 		 j++;
	 	}
	}
	if (j > 0){
	    //alert("Please select only one option.");
	 	return false;
	}else {
		return true;
	}
}

function alltrim(obj_value) {
	var trimmedstr="",startpos=0,endpos=obj_value.length - 1
	while (startpos <= obj_value.length && obj_value.substring(startpos,startpos+1)==" ") {
		startpos++;
	}
	if (endpos == -1) { 
		endpos=0;
	}
	while (endpos >= 0 && obj_value.substring(endpos,endpos+1)==" ") {
		endpos--;
	}
	obj_value=obj_value.substring(startpos,endpos+1)
	return obj_value;
}

function checkphone(object_value) {
	//to make fax OK if nothing is entered
	//an empty text box is actually checked by hasValue fxn
	if (object_value.length == 0)
		return true;
	//if (object_value.length > 13)
	//	return false;
	if (object_value.charAt(0) == "(") {
		if (object_value.length > 13 || object_value.length < 13)
			return false;
		if (!checknumber(object_value.substring(1,4))) {
			return false;
		} else if (!numberrange((eval(object_value.substring(1,4))), 100, 1000)) {
	        return false;
		// check if area code/exchange separator is a ')'
		} else if (object_value.charAt(4) != ")") {
			return false;
		} else if (!checknumber(object_value.substring(5,8))) {
			return false;
		} else if (!numberrange((eval(object_value.substring(5,8))), 100, 1000)) {
	        return false;
		// check if exchange/number separator is either a'-' or ' '
		} else if (object_value.charAt(8) != "-" && object_value.charAt(8) != " ") {
			return false;
		// make sure last four digits are a valid integer
	    } else if (object_value.charAt(9) == "-" || object_value.charAt(9) == "+") {
	        return false;
		} else {
			return (checkinteger(object_value.substring(9,13)));
		}
	//first char is not a "("
	} else {
		if (object_value.length > 12 || object_value.length < 12)
			return false;
		if (!checknumber(object_value.substring(0,3))) {
			return false;
		} else if (!numberrange((eval(object_value.substring(0,3))), 100, 1000)) {
	        return false;
		// check if area code/exchange separator is either a'-' or ' '
		} else if (object_value.charAt(3) != "-" && object_value.charAt(3) != " ") {
			return false;
		} else if (!checknumber(object_value.substring(4,7))) {
			return false;
		} else if (!numberrange((eval(object_value.substring(4,7))), 100, 1000)) {
	        return false;
		// check if exchange/number separator is either a'-' or ' '
		} else if (object_value.charAt(7) != "-" && object_value.charAt(7) != " ") {
			return false;
		// make sure last four digits are a valid integer
	    } else if (object_value.charAt(8) == "-" || object_value.charAt(8) == "+") {
	        return false;
		} else {
			return (checkinteger(object_value.substring(8,12)));
		}
	}
}

function checkzip(object_value) {
    if (object_value.length == 0)
        return true;
                
    if (object_value.length != 5 && object_value.length != 10)
        return false;

        // make sure first 5 digits are a valid integer
        if (object_value.charAt(0) == "-" || object_value.charAt(0) == "+")
        return false;

        if (!checkinteger(object_value.substring(0,5)))
                return false;

        if (object_value.length == 5)
                return true;
        
        // make sure

        // check if separator is either a'-' or ' '
        if (object_value.charAt(5) != "-" && object_value.charAt(5) != " ")
        return false;

        // check if last 4 digits are a valid integer
        if (object_value.charAt(6) == "-" || object_value.charAt(6) == "+")
        return false;

        return (checkinteger(object_value.substring(6,10)));
}

function validEMail(email){
		invalidChars = "/:,;" ;
		//if (email == " ") {
		//	return false;
		//}
		if (email.length == 0) {
			return true;
		}
		for (i=0; i<invalidChars.length; i++) {
			badchar = invalidChars.charAt(i);
			if (email.indexOf(badchar,0) != -1) {
				return false;
			}
		}
		atPos = email.indexOf("@",1)
		if (atPos == -1) {
			return false;
		}
		if (email.indexOf("@", atPos+1) != -1) {
			return false;
		}
		periodPos = email.indexOf(".", atPos)
		if (periodPos == -1) {
			return false;
		}
		if (periodPos+3 > email.length) {
			return false;
		}
		return true;
}

function Validate(form){
	var msg="";
	if  (!hasValue(form.firstname, "ALPHATEXT" )) {
		msg += " * Please enter your first name\n";
	}
	if  (form.mi.value.length != 0) {
		if (!hasValue(form.mi, "ALPHATEXT")){
			msg += " * Please enter a letter for your initial\n";
		}
	}
	if  (!hasValue(form.lastname, "ALPHATEXT" )) {
		msg += " * Please enter your last name\n";
	}
	if  (!validSelect(form.AffiliationType)) {
		msg += " * Please enter an affiliation type\n";
	}
	if  (!hasValue(form.address1, "TEXT" )) {
		msg += " * Please enter your mailing address\n";
	}
	if  (!hasValue(form.city, "ALPHATEXT" )) {
		msg += " * Please enter the city in which you reside\n";
	}
	//nation = ["United States", "United States of America", "America", "US", "USA", "US of A", "U.S.A.", "U.S."]; 
	//nation = new Array ("United States", "United States of America", "America", "US", "USA", "US of A", "U.S.A.", "U.S."); 
	//for (i=0; i < nation.length; i++) {
	//	if (nation[i] == alltrim(form.country.value)){
	//		if  (!validSelect(form.state)) {
	//			msg += " * Please select the state in which you reside\n";
	//		}
	//		if  (!checkzip(form.zip.value)) {
	//			msg += " * Please enter a valid zip code\n";
	//		}	
	//		if  (!checkphone(form.telephone.value)) {
	//			msg += " * Please enter a valid telephone number using the formats:\n   999-999-9999 or (999)999-9999 (no spaces)\n";
	//		} 
	//		if  (!checkphone(form.fax.value)) {
	//			msg += " * Please enter a valid fax number using the formats:\n   999-999-9999 or (999)999-9999 (no spaces)\n";
	//		}
	//	}
	//}
	if  (validSelect(form.state)) {
		//require zip, not postal; country was set to US default
		if  (!hasValue(form.zip, "TEXT" )) {
			msg += " * Please enter a valid zip code\n";
		}
		//if  (!checkzip(form.zip.value)) {
		//	msg += " * Please enter a valid zip code\n";
		//}
	}
	if  (!hasValue(form.country, "SELECT" )) {
			msg += " * Please enter the country in which you reside\n";
	}else {
		cselchoice = form.country.selectedIndex;
		//if (form.country.options[cselchoice].value == "US") {
		if (form.country.options[cselchoice].value == "840") {
			if  (!validSelect(form.state)) {
				msg += " * Please select the state in which you reside\n";
			}
			if  (!checkzip(form.zip.value)) {
				msg += " * Please enter a valid US zip code\n";
			}	
			if  (!checkphone(form.telephone.value)) {
				msg += " * Please enter a valid telephone number using the formats:\n   999-999-9999 or (999)999-9999 (no spaces)\n";
			} 
			if  (!checkphone(form.fax.value)) {
				msg += " * Please enter a valid fax number using the formats:\n   999-999-9999 or (999)999-9999 (no spaces)\n";
			}
		}
	}
	if  (!hasValue(form.postalcode, "TEXT" )) {
			msg += " * Please enter a valid postal code\n";
	}
	// email is optional, but must be valid if entered
	if  (!validEMail(form.email.value)) {
		msg += " * Please enter a valid email address\n";
	}
	if  (!hasValue(form.telephone, "TEXT" )) {
		msg += " * Please enter a valid telephone number\n";
	}
	if  (!hasValue(form.comments, "TEXT" )) {
		msg += " * Please enter your request\n";
	}
	if  (!hasValue(form.docketno, "text")) {
		msg += " * Please enter a docket number\n";
	}
	if  (!hasValue(form.fax, "text")) {
		msg += " * Please enter a valid fax number\n";
	}
	//var whichdel = -1;
	//for (i=0; i<form.delivery.length; i++)    {
		//if (form.delivery[i].checked) {
			//whichdel = i;
			//if (form.delivery[whichdel].value == "fax") {
				//if (!hasValue(form.fax, "TEXT")){
					//msg += " * Please enter a valid fax number\n";
				////} else {
				////	return true;
				//}
			//}
		//}
	//}
	////return true;
////}
if (msg=="") {
                return true;
        } else {
                alert("____________________________________________________\n\n" + "The form was not submitted because of the following error(s).\n Please correct these errors and re-submit.\n" + "____________________________________________________\n\n" +  msg);
                return false;
        }
}
// -->