
function isEmpty(input) {
	if (input == null || input == "") {
		return true;
	} else {return false;}
}

function isInteger(input) {
	input = input.toString();
	for (var i=0; i<input.length; i++) {
		var oneChar = input.charAt(i);
		if (oneChar < "0" || oneChar > "9") {
			return false;
		} 
	} return true;
}

function isZip(input) {
	input = input.toString();
	if(input.length < 5) return false;
	for (var i=0; i<input.length; i++) {
		var oneChar = input.charAt(i);
		if ((oneChar < "0" || oneChar > "9") && (oneChar !== "-")) {
			return false;
		} 
	} return true;
}

function isPhone(input) {
	input = input.toString();
	if(input.length < 7 ) return false;
	for (var i=0; i<input.length; i++) {
		var oneChar = input.charAt(i);
		if ((oneChar < "0" || oneChar > "9") && (oneChar !== "-")) {
			return false;
		} 
	} return true;
}

function isEmail(input) {
	input = input.toString();
	if (input.indexOf("@") == -1) {
		return false;
	} else {return true;}
}

function isIntegerRange(input,low,high) {
	if (input < low || input > high) {
		return false;
	} return true;
}

function isCreditCard(input) {
	input = input.toString();
	if(input.charAt(0) < 3 || input.charAt(0) > 6) return false;
	if(input.length < 16) return false;
	for (var i=0; i<input.length; i++) {
		var oneChar = input.charAt(i);
		if ((oneChar < "0" || oneChar > "9") && (oneChar !== "-")) {
			return false;
		} 
	} return true;
}

function isLaterDate(year,month,day) {
	var expDate = new Date(year,month,day);
	var oldYear = expDate.getYear();
	newYear = oldYear + 2000
	expDate.setYear(newYear);
	var oldMonth = expDate.getMonth();
	newMonth = oldMonth - 1;
	expDate.setMonth(newMonth);
	var currentDate = new Date();
	if (expDate < currentDate) {
		return false;
	} return true;
}

//function initializeFields() {
//	alert("fields initialized");
//}

function dataEntryValidation () {
	if(!document.getElementById) {
		return false;
	} 
	if(!document.getElementById("contactForm")) {
		return false;
	} 
//Because I am loading the program on window.submit, and not window.onload, the fields are being cleared the first time the submission is made.  Therefore, I need to remove the statements that initialize the variables.  This initialization makes sense only if I load the this program when the page is loaded.
	var form = document.getElementById("contactForm");
	var name = document.getElementById("contactInputName");
	if (name) {name.value = ""};
	var fName = document.getElementById("contactInputFName");
	if (fName) {fName.value = ""};
	var lName = document.getElementById("contactInputLName");
	if (lName) {lName.value = ""};
	var address = document.getElementById("contactInputAddress");
	if (address) {address.value = ""};
	var city = document.getElementById("contactInputCity");
	if (city) {city.value = ""};
	var state = document.getElementById("contactInputState");
	if (state) {state.value = ""};
	var zip = document.getElementById("contactInputZip");
	if (zip) {zip.value = ""};
	var phone = document.getElementById("contactInputPhone");
	if (phone) {phone.value = ""};
	var hPhone = document.getElementById("contactInputHPhone");
	if (hPhone) {hPhone.value = ""};
	var wPhone = document.getElementById("contactInputWPhone");
	if (wPhone) {wPhone.value = ""};
	var email = document.getElementById("contactInputEmail");
	if (email) {email.value = ""};
	var adults = document.getElementById("contactInputAdults");
	if (adults) {adults.value = ""};
	var children = document.getElementById("contactInputChildren");
	if (children) {children.value = ""};
	var arrMonth = document.getElementById("contactInputArrMonth");
	if (arrMonth) {arrMonth.value = ""};
	var arrDay = document.getElementById("contactInputArrDay");
	if (arrDay) {arrDay.value = ""};
	var arrYear = document.getElementById("contactInputArrYear");
	if (arrYear) {arrYear.value = ""};
	var depMonth = document.getElementById("contactInputDepMonth");
	if (depMonth) {depMonth.value = ""};
	var depDay = document.getElementById("contactInputDepDay");
	if (depDay) {depDay.value = ""};
	var depYear = document.getElementById("contactInputDepYear");
	if (depYear) {depYear.value = ""};
	var creditCard = document.getElementById("contactInputCC");
	if (creditCard) {creditCard.value = ""};
	var cvv = document.getElementById("contactInputCvv");
	if (cvv) {cvv.value = ""};
	var expMonth = document.getElementById("contactInputExpMonth");
	if (expMonth) {expMonth.value = ""};
	var expYear = document.getElementById("contactInputExpYear");
	if (expYear) {expYear.value = ""};
//	var call = document.getElementById("contactInputCall");
//	if (call) {call.checked = ""};
//	var brochure = document.getElementById("contactInputBrochure");
//	if (brochure) {brochure.checked = ""};
//	var price = document.getElementById("contactInputPriceList");
//	if (price) {price.checked = ""};
	form.onsubmit = function () {
		if(name) {
			if(isEmpty(name.value)) {
				alert("Please enter your name.");
				return false;
			}
		}
		if(fName) {
			if(isEmpty(fName.value)) {
				alert("Please enter your first name.");
				return false;
			}
		}
		if(lName) {
			if(isEmpty(lName.value)) {
				alert("Please enter your last name.");
				return false;
			}
		}
		if(address) {
			if(isEmpty(address.value)) {
				alert("Please enter your mailing address.");
				return false;
			}
		}
		if(city) {
			if(isEmpty(city.value)) {
				alert("Please enter your city of residence.");
				return false;
			}
		}
		if(state) {
			if(isEmpty(state.value)) {
				alert("Please enter your state of residence.");
				return false;
			}
		}
		if (zip) {
			if(isEmpty(zip.value)) {
				alert("Please enter your zip code.");
				return false;
			} else {
				if(!isZip(zip.value)) {
					alert("Please enter a valid zip code. Don't enter spaces.");
					return false;
				}
			}
		}
		if (phone) {
			if(isEmpty(phone.value)) {
				alert("Please enter your phone number.");
				return false;
			} else {
				if(!isPhone(phone.value)) {
					alert("Please enter a valid phone number. Don't enter spaces.");
					return false;
				}
			}
		}
		if (hPhone) {
			if(isEmpty(hPhone.value)) {
				alert("Please enter a home phone number.");
				return false;
			} else {
				if(!isPhone(hPhone.value)) {
					alert("Please enter a valid home phone number. Don't enter spaces.");
					return false;
				}
			}
		}
		if (wPhone) {
			if(!isEmpty(wPhone.value)) {
				if(!isPhone(wPhone.value)) {
					alert("Please enter a valid work phone number. Don't enter spaces.");
					return false;
				}
			}
		}
		if (email) {
			if(isEmpty(email.value)) {
				alert("Please enter your email address.");
				return false;
			} else {
				if(!isEmail(email.value)) {
					alert("Please enter a valid email address.  Don't enter spaces.");
					return false;
				}
			}
		}
		if (adults) {
			if(isEmpty(adults.value)) {
				alert("Please enter the number of adults planning to stay.");
				return false;
			} else {
				if(!isInteger(adults.value)) {
					alert("Please enter a valid number of adults.  Don't enter spaces.");
					return false;
				}
			}
		}
		if (children) {
			if(isEmpty(children.value)) {
				alert("Please enter 0 or the number of children who will stay.");
				return false;
			} else {
				if(!isInteger(children.value)) {
					alert("Please enter a valid number of children.  Don't enter spaces.");
					return false;
				}
			}
		}
		if (arrMonth) {
			if(isEmpty(arrMonth.value)) {
				alert("Please enter a month.");
				return false;
			} else {
				if(!isInteger(arrMonth.value)) {
					alert("Please enter a valid month.");
					return false;
				} else {
					if(!isIntegerRange(arrMonth.value,1,12)) {
						alert("Please enter a valid month.");
						return false;
					}
				}
			}
		}
		if (arrDay) {
			if(isEmpty(arrDay.value)) {
				alert("Please enter a first day.");
				return false;
			} else {
				if(!isInteger(arrDay.value)) {
					alert("Please enter a valid first day.");
					return false;
				} else {
					if(!isIntegerRange(arrDay.value,1,31)) {
						alert("Please enter a valid first day.");
						return false;
					}
				}
			}
		}
		if (arrYear) {
			if(isEmpty(arrYear.value)) {
				alert("Please enter a year.");
				return false;
			} else {
				if(!isInteger(arrYear.value)) {
					alert("Please enter a valid year.");
					return false;
				} else {
					if(!isIntegerRange(arrYear.value,06,99)) {
						alert("Please enter a valid year.");
						return false;
					}
				}
			}
		}
		if (depMonth) {
			if(isEmpty(depMonth.value)) {
				alert("Please enter a month.");
				return false;
			} else {
				if(!isInteger(depMonth.value)) {
					alert("Please enter a valid month.");
					return false;
				} else {
					if(!isIntegerRange(depMonth.value,1,12)) {
						alert("Please enter a valid month.");
						return false;
					}
				}
			}
		}
		if (depDay) {
			if(isEmpty(depDay.value)) {
				alert("Please enter a last day.");
				return false;
			} else {
				if(!isInteger(depDay.value)) {
					alert("Please enter a valid last day.");
					return false;
				} else {
					if(!isIntegerRange(depDay.value,1,31)) {
						alert("Please enter a valid last day.");
						return false;
					}
				}
			}
		}
		if (depYear) {
			if(isEmpty(depYear.value)) {
				alert("Please enter a year.");
				return false;
			} else {
				if(!isInteger(depYear.value)) {
					alert("Please enter a valid year.");
					return false;
				} else {
					if(!isIntegerRange(depYear.value,06,99)) {
						alert("Please enter a valid year.");
						return false;
					}
				}
			}
		}
		if(creditCard) {
			if(isEmpty(creditCard.value)) {
				alert("Please enter a credit card number.");
				return false;
			} else {
				if(!isCreditCard(creditCard.value)) {
					alert("Please enter a valid credit card number.  We accept Visa, MC, AMEX, and Discover.");
					return false;
				}
			}
		}
		if(cvv) {
			if(isEmpty(cvv.value)) {
				alert("Please enter your 3 digit CVV number on the back of the credit card.");
				return false;
			} else {
				if(!isInteger(cvv.value)) {
					alert("Please enter a valid 3 digit CVV number.");
					return false;
				}
			}
		}
		if(expMonth) {
			if(isEmpty(expMonth.value)) {
				alert("Please enter an expiration month for your credit card.");
				return false;
			} else {
				if(!isInteger(expMonth.value)) {
					alert("Please enter a valid expiration month for your credit card.");
					return false;
				} else {
					if(!isIntegerRange(expMonth.value,01,12)) {
						alert("Please enter a valid expiration month for your credit card.");
						return false;
					}
				}
			}
		}
		if(expYear) {
			if(isEmpty(expYear.value)) {
				alert("Please enter an expiration Year for your credit card.");
				return false;
			} else {
				if(!isInteger(expYear.value)) {
					alert("Please enter a valid expiration year for your credit card.");
					return false;
				} else {
					if(!isIntegerRange(expYear.value,06,99)) {
						alert("Please enter a valid expiration year for your credit card.");
						return false;
					}
				}
			}
		}
		if(expMonth && expYear) {
			if(!isLaterDate(expYear.value,expMonth.value,28)) {
				alert("Your credit card appears to have already expired.  Please try again.");
				return false;
			}
		}
	return true;
	}
}	