function checkStep1() {
	thisChecked = -1;
	success = true;
	for (i=0;i<document.forms.creditinfo.donationType.length;i++) {
		if (document.forms.creditinfo.donationType[i].checked == true) {
			thisChecked = i;
		}
	}
	
	if (thisChecked == -1) {
		alert("Please make a selection.\n");
		success = false;
	}
	if (thisChecked == 1 && document.forms.creditinfo.participantName.value == '') {
		alert("Please enter a Participant Name.\n");
		success = false;
	}

	return success;
}

function checkStep2() {
	message = "";
	formOK = true;
	
	if (document.forms.creditinfo.parFirstName.value == '') {
		message = message + "Please provide a First Name.\n";
		formOK = false;
	}

	if (document.forms.creditinfo.parLastName.value == '') {
		message = message + "Please provide a Last Name.\n";
		formOK = false;
	}
	
	if (document.forms.creditinfo.eventType[0].checked == false && document.forms.creditinfo.eventType[1].checked == false) {
		message = message + "Please indicate which events you will be participating in.\n";
		formOK = false;
	}
	
	if (document.forms.creditinfo.paymentMethod[0].checked == false && document.forms.creditinfo.paymentMethod[1].checked == false) {
		message = message + "Please indicate a Payment Method.\n";
		formOK = false;
	}
	
	if (document.forms.creditinfo.eventType[0].checked == true && document.forms.creditinfo.tShirtSize.selectedIndex == 0) {
		message = message + "Please choose a T-shirt size.\n";
		formOK = false;
	}
	
	if (document.forms.creditinfo.ageCategory.selectedIndex == 0) {
		message = message + "Please choose an Age Category.\n";
		formOK = false;
	}
	
	if (document.forms.creditinfo.gender.selectedIndex == 0) {
		message = message + "Please choose a Gender.\n";
		formOK = false;
	}
	
	if (document.forms.creditinfo.waiverChecked.checked == false) {
		message = message + "Please read and check the waiver.\n";
		formOK = false;
	}

	if (formOK == false) {
		alert(message);
	}

	return formOK;
}

function checkStep3() {
	message = "";
	formOK = true;
	
	if (document.forms.creditinfo.zAddr1.value == "") {
		message = message + "Please enter your address.\n";
		formOK = false;
	}
	if (document.forms.creditinfo.zCity.value == "") {
		message = message + "Please enter your city.\n";
		formOK = false;
	}
	if (document.forms.creditinfo.zRegion.value == "") {
		message = message + "Please select your state.\n";
		formOK = false;
	}
	if (document.forms.creditinfo.zPostalCode.value == "") {
		message = message + "Please enter your zip code.\n";
		formOK = false;
	}
	if (document.forms.creditinfo.emailAddress.value == "") {
		message = message + "Please enter your E-mail address.\n";
		formOK = false;
	}
	if (!validateEmail(document.forms.creditinfo.emailAddress.value)) {
		message = message + "The email address you entered is invalid.\n";
		formOK = false;
	}
	if (document.forms.creditinfo.zPhone1.value == "") {
		message = message + "Please enter your area code.\n";
		formOK = false;
	} else {
		var ps = new String(document.forms.creditinfo.zPhone1.value);

		if (parseInt(ps.length) < 3) {
			message = message + "Please enter your 3 digit area code.\n";
			formOK = false;
		}
	}

	if (formOK == false) {
		alert(message);
	}

	return formOK;
}

function checkTshirt() {
	if (document.forms.creditinfo.eventType[0].checked == false) {
		document.forms.creditinfo.tShirtSize.selectedIndex = 0;
		document.forms.creditinfo.tShirtSize.disabled = true;
	} else {
		document.forms.creditinfo.tShirtSize.disabled = false;
	}
}

function checkForm() {

  // must enter a positive integer > 0
	if (document.forms.creditinfo.giftamount.value == "" ||
		parseInt(document.forms.creditinfo.giftamount.value) < 1) {
		alert("Please enter a gift amount.");
		document.forms.creditinfo.giftamount.focus();
		return false;
	}
	if (document.forms.creditinfo.FirstName.value == "") {
		alert("Please enter your first name.");
		document.forms.creditinfo.FirstName.focus();
		return false;
	}
	if (document.forms.creditinfo.LastName.value == "") {
		alert("Please enter your last name.");
		document.forms.creditinfo.LastName.focus();
		return false;
	}
	if (document.forms.creditinfo.zAddr1.value == "") {
		alert("Please enter your address.");
		document.forms.creditinfo.zAddr1.focus();
		return false;
	}
	if (document.forms.creditinfo.zCity.value == "") {
		alert("Please enter your city.");
		document.forms.creditinfo.zCity.focus();
		return false;
	}
	if (document.forms.creditinfo.zRegion.value == "" ||
			document.forms.creditinfo.zRegion.value == "none") {
		alert("Please select your state.");
		document.forms.creditinfo.zRegion.focus();
		return false;
	}
	if (document.forms.creditinfo.zPostalCode.value == "") {
		alert("Please enter your zip code.");
		document.forms.creditinfo.zPostalCode.focus();
		return false;
	}
	// email validation, if no valid return email address mail is undeliverable
	if (document.forms.creditinfo.Email.value=="") {
		alert("Please enter your E-mail address");
		document.forms.creditinfo.Email.focus();
		return false;		
	}
	// email validation 
	if (!validateEmail(document.forms.creditinfo.Email.value)) {
		alert("The email address you entered is invalid.");
		document.forms.creditinfo.Email.focus();
		document.forms.creditinfo.Email.select();
		return false;
	}
	// phone number validation 
	if (document.forms.creditinfo.zPhone1.value == "") {
		alert("Please enter your area code.");
		document.forms.creditinfo.zPhone1.focus();
		return false;
	} else {
		var ps = new String(document.forms.creditinfo.zPhone1.value);

		if (parseInt(ps.length) < 3) {
			alert("Please enter your 3 digit area code.");
			document.forms.creditinfo.zPhone1.focus();
			document.forms.creditinfo.zPhone1.select();
			return false;
		}
	}
	if (document.forms.creditinfo.zPhone2.value == "") {
		alert("Please enter your phone number prefix.");
		document.forms.creditinfo.zPhone2.focus();
		return false;
	} else {
		var ps = new String(document.forms.creditinfo.zPhone2.value);

		if (parseInt(ps.length) < 3) {
			alert("Please enter your 3 digit phone number prefix.");
			document.forms.creditinfo.zPhone2.focus();
			document.forms.creditinfo.zPhone2.select();
			return false;
		}
	}
	if (document.forms.creditinfo.zPhone3.value == "") {
		alert("Please enter your phone number suffix.");
		document.forms.creditinfo.zPhone3.focus();
		return false;
	} else {
		var ps = new String(document.forms.creditinfo.zPhone3.value);

		if (parseInt(ps.length) < 4) {
			alert("Please enter your 4 digit phone number suffix.");
			document.forms.creditinfo.zPhone3.focus();
			document.forms.creditinfo.zPhone3.select();
			return false;
		}
	}
	if (document.forms.creditinfo.cctype.value == "" || 
			document.forms.creditinfo.cctype.value == "none") {
		alert("Please select your credit card type.");
		document.forms.creditinfo.cctype.focus();
		return false;
	}
	if (document.forms.creditinfo.ccNum.value == "") {
		alert("Please enter your credit card number.");
		document.forms.creditinfo.ccNum.focus();
		return false;
	}
	if (document.forms.creditinfo.expmonth.value == "" || 
			document.forms.creditinfo.expmonth.value == "none") {
		alert("Please select your expiration month.");
		document.forms.creditinfo.expmonth.focus();
		return false;
	}
	if (document.forms.creditinfo.expyear.value == "" || 
			document.forms.creditinfo.expyear.value == "none") {
		alert("Please select your expiration year.");
		document.forms.creditinfo.expyear.focus();
		return false;
	}
	return true
}
function validateEmail(Email) {
	invalidChars= " /:,;";

	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;
	}
	 peroidPos = Email.indexOf(".", atPos)
	 if (peroidPos ==-1) {
	 	return false;
	}
	if (peroidPos+3 > Email.length) {
		return false;
	}
	return true; 
}
