// Collection of website support JavaScript functions.
// Developed by Colin Tester of Z-omo for Tin Racer Design: August, 2004.
// www.z-omo.com

//--[VALIDATE: form elements for not blank or reset to defaults.]---------------------------------|
function validate_form( formID, promptID, checkEmail) {

	var enquiryForm = document.forms[formID]; // setup reference to calling form object.

// Define variables.
	var fldPrmpt = " (Required)";
	var nameValid = true;
	var phoneValid = true;
	var emailValid = true;

// Read mandatory form fields to variables.
	var fname = enquiryForm.realname.value;
	var phone = enquiryForm.Telephone.value;
	var email = enquiryForm.email.value;

// Set default values for fields.
	var nameDef = "Name";
	var phoneDef = "Telephone number";
	var emailDef = "E-mail address";
	
// Trap for invalid field values.
	if ((fname==nameDef + fldPrmpt) || (fname=="") || (fname==" ") ||(fname==nameDef)) nameValid = false;
	if ((phone==phoneDef + fldPrmpt) || (phone=="") || (phone==" ") || (phone==phoneDef)) phoneValid = false;
	if ((email==emailDef + fldPrmpt) || (email=="") || (email==" ") || (email==emailDef)) emailValid = false;
	
//Set form valid flag.
	var formValid = ((nameValid==true) && (phoneValid==true) && (emailValid==true));
	
//If form is not valid then set alerts.
	if (formValid == false) {

//Set field box with prompt for any invalid field.
		if ((nameValid==false) && (fname!=nameDef + fldPrmpt)) enquiryForm.realname.value = nameDef + fldPrmpt;
		if ((emailValid==false) && (email!=emailDef + fldPrmpt)) enquiryForm.email.value = emailDef+ fldPrmpt;
		if ((phoneValid==false) && (phone!=phoneDef + fldPrmpt)) enquiryForm.Telephone.value = phoneDef + fldPrmpt;

//Prompt user with alert message.
		document.getElementById(promptID).innerHTML = 'Please fill out at least the required fields - Thank You.';

	}
	
	if (formValid == false) return;	//Jump out if form is invalid.

	if (checkEmail) {
		emailValid = validate_email( formID, promptID, false );
	}
	
	if (formValid && emailValid) {
		enquiryForm.redirect.value = window.location.href; // set form hidden redirect field value.
		enquiryForm.Booking_Form.value = "from " + fname; // set form user name field value.
		enquiryForm.submit(); // submit the form.
	}
		
} 	// end function check_form().



//--[VALIDATE: Email form field for inclusion of key characters.]---------------------------------|
function validate_email( enquiryForm, promptID, sendFromHere ) {

	enquiryForm = document.forms[enquiryForm]; // setup reference to calling form object.
	var email = enquiryForm.email.value; // grab value for email field.

//Check format of email field and set valid flag.
	var emailValid = ((email.indexOf("@")!=-1) && (email.indexOf(".")!=-1));

//If an invalid email field value exists, alert user.
	if (emailValid == false) {
			enquiryForm.email.select();
			document.getElementById(promptID).innerHTML = 'Is email address correct?';
	}
	
	// All is well then submit for data to server.
	if (sendFromHere == true && emailValid == true) {
		enquiryForm.redirect.value = window.location.href; // set form hidden redirect field value.
		enquiryForm.submit(); // submit the form.
		return 0; // exit.
	} else {
		return emailValid;
	}
	
}	// end: function validate_email().


//--[RESET: Function to clear emailForm prompt area and form elements to defaults.]---------------|
function reset_form(formID, promptID) {
	
	document.getElementById(promptID).innerHTML = ""; // clear error message area.
	document.forms[formID].reset(); // reset form.
}


//--[VALIDATE: Single Form field as not blank or reset.]------------------------------------------|
function validate_field( formID, fieldName, defaultText, promptID, emailValid ) {

	var formValid = false
	var enquiryForm = document.forms[formID]; // setup reference to calling form object.
	var formField = enquiryForm.elements[fieldName].value;
	if (formField == defaultText || formField == "") {
		document.getElementById(promptID).innerHTML = "Please enter your message or question before clicking 'Submit'.";
		return;
	} else {
		formValid = true;
	}
	
	if (emailValid) {
		emailValid = validate_email( formID, promptID, false );
	} else {
		emailValid = true;
	}
	
	if (formValid && emailValid) {
		enquiryForm.redirect.value = window.location.href; // set form hidden redirect field value.
		enquiryForm.submit(); // submit form.
	}
}



