var oCustomerForm;
var bCustomerFormHasPassword;
var bCustomerFormSubmitted = false;

window.onload = function() { setFormFields(); }

function setFormFields() {
    oCustomerForm = document.getElementById("customer_form");
    bCustomerFormHasPassword = (oCustomerForm.elements["password"] != null);
	
	oCustomerForm.elements["post_code"].onblur = function() {
		fixPostCode(this);
	}
	
	oCustomerForm.elements["first_name"].onfocus = function() {
		var oDiv = document.getElementById("first_name_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["first_name"].onblur = function() {
		var oDiv = document.getElementById("first_name_tip");
		oDiv.style.visibility = "hidden";
	}
	
	oCustomerForm.elements["last_name"].onfocus = function() {
		var oDiv = document.getElementById("last_name_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["last_name"].onblur = function() {
		var oDiv = document.getElementById("last_name_tip");
		oDiv.style.visibility = "hidden";
	}
	
	oCustomerForm.elements["address_1"].onfocus = function() {
		var oDiv = document.getElementById("address_1_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["address_1"].onblur = function() {
		var oDiv = document.getElementById("address_1_tip");
		oDiv.style.visibility = "hidden";
	}
	
	oCustomerForm.elements["address_2"].onfocus = function() {
		var oDiv = document.getElementById("address_2_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["address_2"].onblur = function() {
		var oDiv = document.getElementById("address_2_tip");
		oDiv.style.visibility = "hidden";
	}
	
	oCustomerForm.elements["city"].onfocus = function() {
		var oDiv = document.getElementById("city_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["city"].onblur = function() {
		var oDiv = document.getElementById("city_tip");
		oDiv.style.visibility = "hidden";
	}
	
	oCustomerForm.elements["county"].onfocus = function() {
		var oDiv = document.getElementById("county_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["county"].onblur = function() {
		var oDiv = document.getElementById("county_tip");
		oDiv.style.visibility = "hidden";
	}
	
	oCustomerForm.elements["post_code"].onfocus = function() {
		var oDiv = document.getElementById("post_code_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["post_code"].onblur = function() {
		if (this.form.elements["country_code"].value == "GB") { 
		    fixPostCode(this); 
		}
		var oDiv = document.getElementById("post_code_tip");
		oDiv.style.visibility = "hidden";
	}
	
	oCustomerForm.elements["country_code"].onfocus = function() {
		var oDiv = document.getElementById("country_code_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["country_code"].onblur = function() {
		var oDiv = document.getElementById("country_code_tip");
		oDiv.style.visibility = "hidden";
	}
	
	oCustomerForm.elements["phone_area"].onfocus = function() {
		var oDiv = document.getElementById("phone_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["phone_area"].onblur = function() {
		var oDiv = document.getElementById("phone_tip");
		oDiv.style.visibility = "hidden";
	}
	
	oCustomerForm.elements["phone_number"].onfocus = function() {
		var oDiv = document.getElementById("phone_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["phone_number"].onblur = function() {
		var oDiv = document.getElementById("phone_tip");
		oDiv.style.visibility = "hidden";
	}
	
	oCustomerForm.elements["mobile_number"].onfocus = function() {
		var oDiv = document.getElementById("mobile_number_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["mobile_number"].onblur = function() {
		var oDiv = document.getElementById("mobile_number_tip");
		oDiv.style.visibility = "hidden";
	}
	
	oCustomerForm.elements["email"].onfocus = function() {
		var oDiv = document.getElementById("email_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["email"].onblur = function() {
		var oDiv = document.getElementById("email_tip");
		oDiv.style.visibility = "hidden";
	}
	
	if (bCustomerFormHasPassword) {
		oCustomerForm.elements["password"].onfocus = function() {
			var oDiv = document.getElementById("password_tip");
			oDiv.style.visibility = "visible";
		}
		oCustomerForm.elements["password"].onblur = function() {
			var oDiv = document.getElementById("password_tip");
			oDiv.style.visibility = "hidden";
		}
		
		oCustomerForm.elements["repeat_password"].onfocus = function() {
			var oDiv = document.getElementById("repeat_password_tip");
			oDiv.style.visibility = "visible";
		}
		oCustomerForm.elements["repeat_password"].onblur = function() {
			var oDiv = document.getElementById("repeat_password_tip");
			oDiv.style.visibility = "hidden";
		}
	}
	
	oCustomerForm.elements["memorable_place"].onfocus = function() {
		var oDiv = document.getElementById("memorable_place_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["memorable_place"].onblur = function() {
		var oDiv = document.getElementById("memorable_place_tip");
		oDiv.style.visibility = "hidden";
	}	
	
	oCustomerForm.elements["memorable_date"].onfocus = function() {
		var oDiv = document.getElementById("memorable_date_tip");
		oDiv.style.visibility = "visible";
	}
	oCustomerForm.elements["memorable_date"].onblur = function() {
		var oDiv = document.getElementById("memorable_date_tip");
		oDiv.style.visibility = "hidden";
	}	
	
	oCustomerForm.onsubmit = function() { return validateCustomer(this); }
}
	
function validateCustomer(frm) {
	var errMsg
	errMsg = isForename(frm.elements["first_name"]);
	errMsg += isSurname(frm.elements["last_name"]);
	errMsg += isAddress1(frm.elements["address_1"]);
	errMsg += isAddress2(frm.elements["address_2"]);
	errMsg += isCity(frm.elements["city"]);
	errMsg += isCounty(frm.elements["county"]);
	
	if (frm.elements["country_code"].value == 'GB') {
		errMsg += isUKPostCode(frm.elements["post_code"]);
	} 
	errMsg += isPhoneArea(frm.elements["phone_area"]);
	errMsg += isPhoneNumber(frm.elements["phone_number"]);
	errMsg += isMobileNumber(frm.elements["mobile_number"]);
	errMsg += isEmail(frm.elements["email"]);
	
	if (bCustomerFormHasPassword) {
	  errMsg += isComplexPassword(frm.elements["password"]);
	  errMsg += passwordsMatch(frm.elements["password"], frm.elements["repeat_password"]);
	}
	
	errMsg += isMemorablePlace(frm.elements["memorable_place"]);
	errMsg += isMemorableDate(frm.elements["memorable_date"]);
	
	if (errMsg > '') {
		alert(errMsg);
		return false;
	} else {
		if (bCustomerFormSubmitted == false) {
			frm.elements['Submit'].disabled = true;
			bCustomerFormSubmitted = true;
			return true;
		}
	}
}
	

