	var radioKeep = new Array();
	var checkKeep = new Array();
	var count = 0
	var radioCount = 0
	var checkCount = 0
	var eNumLen = ""
	var eNum = ""
	var req = ""
	var fieldCount = 0

function val() {
	count = 0;
	radioCount = 0;
	checkCount = 0;
	eNumLen = document.form_val.elements.length;
	eNum = document.form_val.elements;
	req = ""
	fieldCount = 0

	for(count=0;count<eNumLen;count++) {
	re = /^(\w+)\-?\-?\w*\-\-req\-?\-?\w*$/;

		if (re.test(eNum[count].name)) {
			findVal();
		}
	}

function findVal() {

		if (eNum[count].type == "text" || eNum[count].type == "password") {
			text(RegExp.$1);
		}
		else if (eNum[count].type == "radio" || eNum[count].type == "checkbox") {
			radio(RegExp.$1, radioKeep, radioCount, count);
		}
		else if (eNum[count].selectedIndex == 0) {
			menu(RegExp.$1);
		}
		else if (eNum[count].type == "textarea") {
			textarea(RegExp.$1);
		}
		else{}

	}

	function text(re1) {
		if (eNum[count].value == "") {
			fieldCount++
			req+= fieldCount + ".  " + properCap(re1) + "\n<br>";
		}
	}

	function textarea(re1) {
		if (eNum[count].value == "") {
			fieldCount++
			req+= fieldCount + ".  " + properCap(re1) + "\n<br>";
		}
	}

	function menu(re1) {
			fieldCount++
			req+= fieldCount + ".  " + properCap(re1) + "\n<br>";
	}

	function radio(re1,rk,rc,c) {
	
		if (eNum[count].checked || rk[rc] == re1) {
			if (rk[rc] != re1) {
			rk[rc] = re1;
			rc++;
			}
		}
		else{
			var thisRad = eNum[count].name;
			c++;
			var nextRad = eNum[c].name;
			c--;
				if (thisRad != nextRad) {
				fieldCount++
				req+= fieldCount + ".  " + properCap(re1) + "\n<br>";
				}
				else{}
		}
	}

if (req>"") {

//alert(req);

errorWin = window.open('/form_error.htm','error_win','width=400,height=400')
errorWin.err = req

}
else{
document.form_val.submit();
//errorWin.close();
}

}

function properCap(eName) {

var splitter = new Array();
splitter = eName.split("_");
var zz = ""

for(i=0;i<splitter.length;i++) {		
	if (splitter[i].length > 1 || splitter[i] == "i") {
	var a = splitter[i];
	zz += a.charAt(0).toUpperCase();
	zz += a.substring(1,splitter[i].length) + " ";
	}
	else{zz += splitter[i] + " "}

}

return zz;

}

function menuFill() {

count = 0;
eNumLen = document.form_val.elements.length;
eNum = document.form_val.elements;

while (count<eNumLen) {
rState = /\-\-state/;
rProvince = /\-\-province/;
rNum = /\-\-num(\d+)/;
rstateProvince = /\-\-stateProvince/;
rImprint = /\-\-imprint/;
rProduct = /\-\-product/;
rInstitution = /\-\-institution/;
rCountry = /\-\-country/;

if (rState.test(eNum[count].name)) {	
	regNum = parseInt(RegExp.$1) + 1;
	state();
}
if (rProvince.test(eNum[count].name)) {
	regNum = parseInt(RegExp.$1) + 1;
	province();
}
if (rNum.test(eNum[count].name)) {
	regNum = parseInt(RegExp.$1) + 1;
	num(regNum);
}
if (rstateProvince.test(eNum[count].name)) {
	regNum = parseInt(RegExp.$1) + 1;
	stateProvince();
}
if (rImprint.test(eNum[count].name)) {
	regNum = parseInt(RegExp.$1) + 1;
	imprint();
}
if (rProduct.test(eNum[count].name)) {
	regNum = parseInt(RegExp.$1) + 1;
	product();
}
if (rInstitution.test(eNum[count].name)) {
	regNum = parseInt(RegExp.$1) + 1;
	institution();
}
if (rCountry.test(eNum[count].name)) {
	regNum = parseInt(RegExp.$1) + 1;
	country();
}

	count++;
}

function state() {
	eNum[count].length = 53
	stateLen = eNum[count].length

	eNum[count].options[0].value = ""
	eNum[count].options[0].text = "Please Select"

	var stateVals = new Array("","N/A","Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "District of Colombia", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming")
	var stateTexts = new Array("","N/A","Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "District of Colombia", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming")
		
	for(sCount=1;sCount<stateLen;sCount++) {
		eNum[count].options[sCount].value = stateVals[sCount]
		eNum[count].options[sCount].text = stateTexts[sCount]
	}


}

function stateProvince() {
	eNum[count].length = 66
	stateProvinceLen = eNum[count].length

	eNum[count].options[0].value = ""
	eNum[count].options[0].text = "Please Select"

	var stateProvVals = new Array("","Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "District of Colombia", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming", "", "Alberta", "British Columbia", "Manitoba", "New Brunswick", "Northwest Territory", "Nova Scotia", "Nunavut", "Ontario", "Prince Edward Island", "Quebec", "Saskatchewan", "Yukon", "Other")
	var stateProvTexts = new Array("","Alabama", "Alaska", "Arizona", "Arkansas", "California", "Colorado", "Connecticut", "Delaware", "District of Colombia", "Florida", "Georgia", "Hawaii", "Idaho", "Illinois", "Indiana", "Iowa", "Kansas", "Kentucky", "Louisiana", "Maine", "Maryland", "Massachusetts", "Michigan", "Minnesota", "Mississippi", "Missouri", "Montana", "Nebraska", "Nevada", "New Hampshire", "New Jersey", "New Mexico", "New York", "North Carolina", "North Dakota", "Ohio", "Oklahoma", "Oregon", "Pennsylvania", "Rhode Island", "South Carolina", "South Dakota", "Tennessee", "Texas", "Utah", "Vermont", "Virginia", "Washington", "West Virginia", "Wisconsin", "Wyoming", "--Provinces--", "Alberta", "British Columbia", "Manitoba", "New Brunswick", "Northwest Territory", "Nova Scotia", "Nunavut", "Ontario", "Prince Edward Island", "Quebec", "Saskatchewan", "Yukon", "Other")		
	
	for(sCount=1;sCount<stateProvinceLen;sCount++) {
		eNum[count].options[sCount].value = stateProvVals[sCount]
		eNum[count].options[sCount].text = stateProvTexts[sCount]
	}

}

function imprint() {
	eNum[count].length = 23
	imprintLen = eNum[count].length

	eNum[count].options[0].value = ""
	eNum[count].options[0].text = "Please Select"

	var imprintVals = new Array("","blackbirch", "scribners", "fivestar", "gale", "gkhall", "graham", "greenhaven", "kidhaven", "kgsaur", "largePrint", "lucent", "macmillan", "oceano", "psm", "stjames", "schirmer", "sleepin_beer", "taft", "thorndike", "twayne", "uxl", "wheeler")
	var imprintTexts = new Array("","Blackbirch Press", "Charles Scribners Sons", "Five Star", "Gale", "G.K. Hall & Co.", "Graham & Whiteside", "Greenhaven Press", "KidHaven Press", "K.G. Saur", "Large Print Press", "Lucent Print Press", "Macmillan Reference USA", "Oceano", "Primary Source Microfilm", "St. James Press", "Schirmer Reference", "Sleeping Bear Press", "The Taft Group", "Thorndike Press", "Twayne Publishers", "UXL", "Wheeler Publishing")
	
	for(sCount=1;sCount<imprintLen;sCount++) {
		eNum[count].options[sCount].value = imprintVals[sCount]
		eNum[count].options[sCount].text = imprintTexts[sCount]
	}

}

function product() {
	eNum[count].length = 17
	productLen = eNum[count].length

	eNum[count].options[0].value = ""
	eNum[count].options[0].text = "Please Select"

	var productVals = new Array("","ancestryPlus", "brc", "bcrc", "consulta", "discoveringCollection", "hwrc", "hrc:modern world", "hrc: US", "itCustomNews", "itOneFile", "TotalAccess", "lrc", "ovrc", "src", "gales_tech", "times")
	var productTexts = new Array("","Ancestry Plus", "Biography Resource Center", "Business & Company Resource Center", "Consulta", "Discovering Collection", "Health & Wellness Resource Center", "History Resource Center: Modern World", "History Resource Center: US", "InfoTrac CustomNews", "InfoTrac OneFile", "InfoTrac Total Access", "Literature Resource Center", "Opposing Viewpoints", "Student Resource Center", "Gale's Technology", "Times Digital Archive")	
	for(sCount=1;sCount<productLen;sCount++) {
		eNum[count].options[sCount].value = productVals[sCount]
		eNum[count].options[sCount].text = productTexts[sCount]
	}

}

function institution() {
	eNum[count].length = 14
	institutionLen = eNum[count].length

	eNum[count].options[0].value = ""
	eNum[count].options[0].text = "Please Select"

	var institutionVals = new Array("","academicLibrary_2yr", "academicLibrary_4yr", "businessProfessional", "corporateLibrary", "governmentLibrary", "hospital_medical", "k12", "lawLibrary", "museum", "nonProfit", "other", "publicLibrary_main", "publicLibrary_branch")
	var institutionTexts = new Array("","Academic Library 2year", "Academic Library 4year", "Business Professional", "Corporate Library", "Government Library", "Hospital/Medical", "K12", "Law Library", "Museum", "Non Profit", "Other", "Public Library Main", "Public Library Branch")
	
	for(sCount=1;sCount<institutionLen;sCount++) {
		eNum[count].options[sCount].value = institutionVals[sCount]
		eNum[count].options[sCount].text = institutionTexts[sCount]
	}

}


function province() {
	eNum[count].length = 13
	ProvinceLen = eNum[count].length

	eNum[count].options[0].value = ""
	eNum[count].options[0].text = "Please Select"

	var provVals = new Array("","Alberta", "British Columbia", "Manitoba", "New Brunswick", "Northwest Territory", "Nova Scotia", "Nunavut", "Ontario", "Prince Edward Island", "Quebec", "Saskatchewan", "Yukon")
	var provTexts = new Array("","Alberta", "British Columbia", "Manitoba", "New Brunswick", "Northwest Territory", "Nova Scotia", "Nunavut", "Ontario", "Prince Edward Island", "Quebec", "Saskatchewan", "Yukon")		
	
	for(sCount=1;sCount<ProvinceLen;sCount++) {
		eNum[count].options[sCount].value = provVals[sCount]
		eNum[count].options[sCount].text = provTexts[sCount]
	}

}

function country() {
	eNum[count].length = 149
	CountryLen = eNum[count].length

	eNum[count].options[0].value = ""
	eNum[count].options[0].text = "Please Select"

	var countryVals = new Array("","algeria", "angola", "anguila", "antigua", "argentina", "aruba", "australia", "austria", "azerbaijan", "bahama", "bahrain", "bangladesh", "belgium", "belize", "benin", "bermuda", "bolivia", "bosnia", "brazil", "birtish_virgin_islands", "bulgaria", "burundi", "cambodia", "cameroon", "canada", "cayman_islands", "central_african_rep", "chile", "china", "colombia", "congo", "costa_rica", "croatia", "cyprus", "czech_rep", "denmark", "dominican", "dominican_rep", "ecuador", "egypt", "el_salvador", "eritrea", "estonia", "ethiopia", "fiji", "finland", "france", "french_antilles", "french_polynesia", "germany", "gibraltar", "greece", "grenada", "guam", "guantanamo_bay", "guatemala", "haiti", "honduras", "hong_kong", "hungary", "iceland", "india", "indonesia", "iran", "iraq", "ireland", "israel", "italy", "ivory_coast", "jamaica", "japan", "jordan", "kenya", "kuwait", "laos", "latvia", "lebanon", "liberia", "libya", "lithuania", "luxembourg", "macau", "macedonia", "malawi", "malaysia", "malta", "mexico", "montserrat", "morocco", "mozambique", "myanmar", "nambia", "nepal", "netherlands", "netherlands_antilles", "nevis", "new_zealand", "nicaragua", "nigeria", "norway", "oman", "pakistan", "panama", "paraguay", "peru", "philippines", "poland", "portugal", "puerto_rico", "qatar", "romania", "russia", "saint_lucia", "saudi_arabia", "senegal", "singapore", "slovenia", "south_africa", "sout_korea", "spain", "sri_lanka", "st_kitts", "st_vincent", "suriname", "sweden", "switzerland", "syria", "taiwan", "tanzania", "thailand", "trinidad_tobago", "tunisia", "turkey", "turks_caicos_islands", "uganda", "ukraine", "united_arab_emirates", "united_kingdom", "us_virgin_islands", "united_states", "uraguay", "venezuela", "vietnam", "yeman", "yugoslavia", "zaire", "zambia", "zimbabwe")
	
	var countryTexts = new Array("","Algeria", "Angola", "Anguila", "Antigua", "Argentina", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahama", "Bahrain", "Bangladesh", "Belgium", "Belize", "Benin", "Bermuda", "Bolivia", "Bosnia", "Brazil", "Birtish Virgin Islands", "Bulgaria", "Burundi", "Cambodia", "Cameroon", "Canada", "Cayman Islands", "Central African Republic", "Chile", "China", "Colombia", "Congo", "Costa Rica", "Croatia", "Cyprus", "Czech Republic", "Denmark", "Dominican", "Dominican Republic", "Ecuador", "Egypt", "El Salvador", "Eritrea", "Estonia", "Ethiopia", "Fiji", "Finland", "France", "French Antilles", "French Polynesia", "Germany", "Gibraltar", "Greece", "Grenada", "Guam", "Guantanamo Bay", "Guatemala", "Haiti", "Honduras", "Hong Kong", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Ireland", "Israel", "Italy", "Ivory_coast", "Jamaica", "Japan", "Jordan", "Kenya", "Kuwait", "Laos", "Latvia", "Lebanon", "Liberia", "Libya", "Lithuania", "Luxembourg", "Macau", "Macedonia", "Malawi", "MAlaysia", "Malta", "Mexico", "Montserrat", "Morocco", "Mozambique", "Myanmar", "Nambia", "Nepal", "Netherlands", "Netherlands Antilles", "Nvis", "New Zealand", "Nicaragua", "Nigeria", "Norway", "Oman", "Pakistan", "Panama", "Paraguay", "Peru", "Philippines", "Poland", "Portugal", "Puerto Rico", "Qatar", "Romania", "Russia", "Saint Lucia", "Saudi Arabia", "Senegal", "Singapore", "Slovenia", "South Africa", "Sout Korea", "Spain", "Sri Lanka", "St Kitts", "St Vincent", "Suriname", "Sweden", "Switzerland", "Syria", "Taiwan", "Tanzania", "Thailand", "Trinidad Tobago", "Tunisia", "Turkey", "Turks Caicos Islands", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "US Virgin Islands", "United States", "Uraguay", "Venezuela", "Vietnam", "Yeman", "Yugoslavia", "Zaire", "Zambia", "Zimbabwe")

	for(sCount=1;sCount<CountryLen;sCount++) {
		eNum[count].options[sCount].value = countryVals[sCount]
		eNum[count].options[sCount].text = countryTexts[sCount]
	}

}

function num(r) {
	eNum[count].length = r
	numLen = eNum[count].length;
	
	eNum[count].options[0].value = ""
	eNum[count].options[0].text = "Please Select"

	for(sCount=1;sCount<numLen;sCount++) {
		eNum[count].options[sCount].value = sCount;
		eNum[count].options[sCount].text = sCount;
	}
	
}

}
