function fillTest(form) {
		form.nameFirst.value = "chris";
		form.nameLast.value = "davies";
		form.address1.value = "487 west mile rd.";
		form.city.value = "london";
		form.phoneA.value = "333";
		form.phoneB.value = "333";
		form.phoneC.value = "3333";
		form.phoneDExt.value = "3333";
		form.phoneE.value = "333";
		form.phoneF.value = "333";
		form.phoneG.value = "3333";
		form.phoneHExt.value = "3333";
		form.country.selectedIndex = 1;
		form.province.selectedIndex = 2;
		form.postal.value = "k9k9k9";
		form.emailAddr.value = "chris@me.me";
	}
		
	function toLowerEmail(form) {
		myString = form.value.toLowerCase();
		form.value = myString;
	}
	function toLower(form) {
		myLength = form.value.length;
		myString = form.value;
		if (myString != "") {
			for(i=0;i<myLength;i++) {
				myLetter=myString.charAt(i);
				if (i == 0) {
					myLetter=myString.charAt(0);
					myNewLetter = myLetter.toUpperCase();
					myNewString = myNewLetter;
				} else if (myLetter == " ") {
					myLetter = myString.charAt(i+1);
					myNewLetter = myLetter.toUpperCase();
					myNewString = myNewString + " " + myNewLetter;
					i++;
				} else {
					myLetter=myString.charAt(i);
					myNewLetter = myLetter.toLowerCase();
					myNewString = myNewString + myNewLetter;
					//alert(myNewString);
				}
			}
			form.value = myNewString;
			myNewString = ""
		}
	}
	function toUpper(form) {
		myLength = form.value.length;
		myString = form.value.toUpperCase();
		form.value = myString;
	}
	function validName(name) {
		invalidChars="!$%^&{}[]+=~?"
				
		if (name == "") {
			return false;
		}
		for (i=0; i<invalidChars.length; i++) {	
			badChars = invalidChars.charAt(i);
			if (name.indexOf(badChars,0) > -1) {
				return false;
			}
		}
		if (name.charAt(0) == " ") {
			return false;
		}
		return true;
	}

	function validAddress(address) {
		invalidChars="!$%^&{}[]+=~?"	
		
		if (address == "") {
			return false;
		}
		for (i=0; i<invalidChars.length; i++) {	
			badChars = invalidChars.charAt(i);
			if (address.indexOf(badChars,0) > -1) {
				return false;
			}
		}
		if (address.charAt(0) == " ") {
			return false;
		}
		return true;
	}	
	
	function validCity(city) {
		invalidChars="0123456789!$%^&@*(){}[]+_=~`?:;,'"	
		
		if (city == "") {
			return false;
		}
		for (i=0; i<invalidChars.length; i++) {	
			badChars = invalidChars.charAt(i);
			if (city.indexOf(badChars,0) > -1) {
				return false;
			}
		}
		return true;
	}	
	
	function checkNum(obj) {
		v = obj.value
		var regExp = /^[0-9]*$/
		if ( regExp.test(v) == false )   {
	    	alert("Please enter a number.")
			obj.value = v.substr(0,v.length-1)
		}
	}
	
	function validPostal(postal) {
		
		invalidChars = '!#$%^&*(){}[]+_=~`?/:;,"'

		for (i=0; i<invalidChars.length; i++) {		 //does it contain any invalid characters?
			badChar = invalidChars.charAt(i);
			if (name.indexOf(badChar,0) > -1) {
				return false;
			}
		}		
		if (postal == "") {
			return false;
		}
		if (isNum(postal.charAt(0))) {		//is it a char...this value goes into passedval
			return false;
		}
		if (postal.charAt(1) < "0") {
			return false;
		}
		if (postal.charAt(1) > "9") {
			return false;
		}
		if (isNum(postal.charAt(2))) {		//is it a char...this value goes into passedval
			return false;
		}
		if (postal.charAt(3) < "0") {
			return false;
		}
		if (postal.charAt(3) > "9") {
			return false;
		}
		if (isNum(postal.charAt(4))) {		//is it a char...this value goes into passedval
			return false;
		}
		if (postal.charAt(5) < "0") {
			return false;
		}
		if (postal.charAt(5) > "9") {
			return false;
		}
		
		return true;
	}

	function validEmail(email) {
		invalidChars = ' !#$%^&*(){}[]+=~`?/:;,"'

		
		if (email == "") {
			return false;
		}
		for (i=0; i<invalidChars.length; i++) { //does it contain any invalid characters?
			badChar = invalidChars.charAt(i);
			if (email.indexOf(badChar,0) > -1) {
				return false;
			}
		}
		atPos = email.indexOf("@",1)  		//there must be one "@" symbol
			if (atPos == -1) {
			return false;
		}
		if (email.indexOf("@",atPos+1) != -1) { //and only one "@"
			return false;
		}
		periodPos = email.indexOf(".",atPos+1)  //and at least one "." after the "@"
			if (periodPos == -1) {
			return false;
		}
		if (email.charAt(atPos+1) == ".") {	//is there a "." right after the "@"
			return false;
		}
		if (periodPos+3 > email.length) {  	//must be at least 2 characters after the "."
			return false;
		}
		return true;
	}
	
	function isNum(passedVal) {			//is this a number?
		if (passedVal == "") {
			return false;
		}
		for (i=0; i<passedVal.length; i++) {
			if (passedVal.charAt(i) < "0") {
				return false;
			}
			if (passedVal.charAt(i) > "9") {
				return false;
			}
		}
		return true;
	}
	
	function toLower(form) {
		myLength = form.value.length;
		myString = form.value;
		if (myString != "") {
			for(i=0;i<myLength;i++) {
				myLetter=myString.charAt(i);
				if (i == 0) {
					myLetter=myString.charAt(0);
					myNewLetter = myLetter.toUpperCase();
					myNewString = myNewLetter;
				} else if (myLetter == " ") {
					myLetter = myString.charAt(i+1);
					myNewLetter = myLetter.toUpperCase();
					myNewString = myNewString + " " + myNewLetter;
					i++;
				} else {
					myLetter=myString.charAt(i);
					myNewLetter = myLetter.toLowerCase();
					myNewString = myNewString + myNewLetter;
					//alert(myNewString);
				}
			}
			form.value = myNewString;
			myNewString = ""
		}
	}

	
	function submitIt(form, status, type) {
		// alert(type);
		// only validate these fields for registry creation
		if (type == 'registry') {
			eventChoice = form.eventtype.selectedIndex;
			if (form.eventtype.options[eventChoice].value == "") {
				alert("An Event selection is required.");
				form.eventtype.focus();
				return false;
			}
			if (form.eventDateMM.value == "") {
				alert("A Month selection is required.");
				form.eventDateMM.focus();
				return false;
			}
			if (form.eventDateDD.value == "") {
				alert("A Date selection is required.");
				form.eventDateDD.focus();
				return false;
			}
			if (form.eventDateYY.value == "") {
				alert("A Year selection is required.");
				form.eventDateYY.focus();
				return false;
			}
		}
		
		if (!validName(form.nameFirst.value)) {
			alert("A First Name is required.");
			form.nameFirst.focus();
			form.nameFirst.select();
			return false;
		}
		if (!validName(form.nameLast.value)) {
			alert("A Last Name is required.");
			form.nameLast.focus();
			form.nameLast.select();
			return false;
		}
		if (!validEmail(form.emailAddr.value)) {
			alert("A valid E-mail Address is required.");
			form.emailAddr.focus();
			form.emailAddr.select();
			return false;
		}
		if (!validName(form.password.value) || (form.password.value.length < 6)) {
			alert("A Valid Password is required (Min. 6 charactors).");
			form.conpass.value='';
			form.password.focus();
			form.password.select();
			return false;
		}
		if (!validName(form.conpass.value)) {
			alert("Please confirm your password.");
			form.conpass.focus();
			form.conpass.select();
			return false;
		}
		if (form.conpass.value != form.password.value) {
			alert("Passwords do not match. Please re-enter your password.");
			form.conpass.value='';
			form.password.focus();
			form.password.select();
			return false;
		}
		
		// only validate these fields for registry creation
		if (type == 'registry') {
			if (!validAddress(form.address1.value)) {
				alert("An Address is required");
				form.address1.focus();
				form.address1.select();
				return false;
			}
			if (!validCity(form.city.value)) {
				alert("A City is required.");
				form.city.focus();
				form.city.select();
				return false;
			}
			
			provinceChoice = form.province.selectedIndex;
			if (form.province.options[provinceChoice].value == "") {
				alert("A State/Province selection is required.");
				return false;
			}
			
			/*if (form.province.value == '') {
				alert("A State/Province is required.");
				form.province.focus();
				form.province.select();
				return false;
			} */
			countryChoice = form.country.selectedIndex;
			if (form.country.options[countryChoice].value == "") {
				alert("A Country selection is required.");
				return false;
			}
			
			if (form.postal.value == '') {
				alert("A valid Postal Code is required.");
				form.postal.focus();
				form.postal.select();
				return false;
			} 
			if ((form.phoneA.value == '') && (form.phoneB.value == '') && (form.phoneC.value == '')) {
				alert("A Daytime Phone number is required.");
				form.phoneA.focus();
				form.phoneA.select();
				return false;
			}
			if ((form.phoneE.value == '') && (form.phoneF.value == '') && (form.phoneG.value == '')) {
				alert("An Evening Phone number is required.");
				form.phoneE.focus();
				form.phoneE.select();
				return false;
			}
		}
		
		if (type == 'checkout') {
			if (!validAddress(form.address1.value)) {
				alert("An Address is required");
				form.address1.focus();
				form.address1.select();
				return false;
			}
			if (!validCity(form.city.value)) {
				alert("A City is required.");
				form.city.focus();
				form.city.select();
				return false;
			}
			
			provinceChoice = form.province.selectedIndex;
			if (form.province.options[provinceChoice].value == "") {
				alert("A State/Province selection is required.");
				return false;
			}
			/*
			if (form.province.value == '') {
				alert("A State/Province is required.");
				form.province.focus();
				form.province.select();
				return false;
			} */
		
			countryChoice = form.country.selectedIndex;
			if (form.country.options[countryChoice].value == "") {
				alert("A Country selection is required.");
				return false;
			}
			
			if (form.postal.value == '') {
				alert("A valid Zip/Postal Code is required.");
				form.postal.focus();
				form.postal.select();
				return false;
			} 
			if ((form.phoneA.value == '') && (form.phoneB.value == '') && (form.phoneC.value == '')) {
				alert("A Daytime Phone number is required.");
				form.phoneA.focus();
				form.phoneA.select();
				return false;
			}
			
			// do not validate fields if we are sending to registrant 
			// because they are disabled
			if (!form.ship_nameFirst.disabled){
				if (!validName(form.ship_nameFirst.value)) {
					alert("A Shipping First Name is required.");
					form.ship_nameFirst.focus();
					form.ship_nameFirst.select();
					return false;
				}
				if (!validName(form.ship_nameLast.value)) {
					alert("A Shipping Last Name is required.");
					form.ship_nameLast.focus();
					form.ship_nameLast.select();
					return false;
				}
			
				if (!validAddress(form.ship_address1.value)) {
					alert("An Shipping Address is required");
					form.ship_address1.focus();
					form.ship_address1.select();
					return false;
				}
				if (!validCity(form.ship_city.value)) {
					alert("A Shipping City is required.");
					form.ship_city.focus();
					form.ship_city.select();
					return false;
				}
				
				provinceChoice = form.ship_province.selectedIndex;
				if (form.ship_province.options[provinceChoice].value == "") {
					alert("A Shipping State/Province selection is required.");
					return false;
				}
				/*
				if (form.ship_province.value == '') {
					alert("A Shipping State/Province is required.");
					form.ship_province.focus();
					form.ship_province.select();
					return false;
				} 
				*/
				
				countryChoice = form.ship_country.selectedIndex;
				if (form.ship_country.options[countryChoice].value == "") {
					alert("A Shipping Country selection is required.");
					return false;
				}
				
				if (form.ship_postal.value == '') {
					alert("A Shipping Zip/Postal Code is required.");
					form.ship_postal.focus();
					form.ship_postal.select();
					return false;
				} 
				/*
				if ((form.ship_phoneA.value == '') && (form.ship_phoneB.value == '') && (form.ship_phoneC.value == '')) {
					alert("A Shipping Daytime Phone number is required.");
					form.ship_phoneA.focus();
					form.ship_phoneA.select();
					return false;
				}
				*/
			}
		}
		
			
	//if we made it to here, everything's valid, so return true
	return true
}