	var radioKeep = new Array();
	var checkKeep = new Array();
	var count = 0
	var radioCount = 0
	var checkCount = 0
	var eNumLen = ""
	var eNum = ""
	var req = ""
	var anureq = ""
	var special = ""
	var Statext = ""
	var fieldCount = 0
	var OutsideStat  = ""

function val2() {
	count = 0;
	radioCount = 0;
	checkCount = 0;
	eNumLen = document.form2_val.elements.length;
	eNum = document.form2_val.elements;
	req = ""
	special = ""
	Statext = ""
	fieldCount = 0
	OutsideStat  = ""
	

	for(count=0;count<eNumLen;count++) {
	re = /^(\w+)\-?\-?\w*\-\-req\-?\-?\w*$/;
	

		if (re.test(eNum[count].name)) {
		//alert(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 if(eNum[count].name == "state--req")
		{
			OutsideStat=eNum[count].value;
		}
		else{}

	}

	function text(re1) {
	
		
		if (eNum[count].value == "" && OutsideStat != 'Outside US or Canada') {
		
			fieldCount++
			req+= fieldCount + ".  " + properCap(re1) + "\n<br>";
						
		}

		if (eNum[count].name == "email_req" && eNum[count].value != "" && eNum[count].value != 'gale') {
		
			reEmail = /[\w\-]+\@[\w\-]+\.[\w\-]+/;
			if (reEmail.test(eNum[count].value)) {
			}
			else {
			special+= "*Please enter a valid e-mail address<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>"" || special>"") {

//alert(req);
if(req != "")
{
	Statext = "<h3>The form was not completed.</h3>";
	Statext = Statext + "<p>Below are the fields that you left incomplete:</p>";
	//alert(Statext);
	
}

errorWin = window.open('form_error.htm','error_win','width=400,height=400')
errorWin.errSt = Statext
errorWin.err = req
errorWin.spec = special
return false;

}
else{

//document.form2_val.action = "/cgi-bin/gdctrial/login.pl";
document.form2_val.submit();
return true;
//errorWin.close();
}

}

function properCap(eName) {

var splitter = new Array();
if(eName=="Logemail"){
eName ="E-mail";
}
else if(eName=='LogUname'){
eName ="Username";
}
else if(eName=="Logpassword"){
eName ="Password";
}

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 = 64
	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")
	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", "Alberta", "British Columbia", "Manitoba", "New Brunswick", "Northwest Territory", "Nova Scotia", "Nunavut", "Ontario", "Prince Edward Island", "Quebec", "Saskatchewan", "Yukon")		
	
	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("","k12Library_2yr", "k12Library_4yr", "businessProfessional", "corporateLibrary", "governmentLibrary", "hospital_medical", "k12", "lawLibrary", "museum", "nonProfit", "other", "publicLibrary_main", "publicLibrary_branch")
	var institutionTexts = new Array("","K12 Library 2year", "K12 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;
	}
	
}

}