

/***** Format parameters correctly to be submitted *****/
function formatParameters(form) {
	
	var name = form.fullName.value;
	var name_array = name.split(" ");
	var firstName = name_array[0];
	var lastName = "";
	
	for (var i=1; i<name_array.length; i++){
		lastName = lastName+name_array[i]+" ";
	}
	setSurName(form);
	defaultNickName(form);
	
	var comments = form.comments.value;
	
	var departMonthYear = form.departMonthYear.value;
	var depart_array = departMonthYear.split("/");
	var departMonth = depart_array[0];
	var departYear = depart_array[1]; 

	var returnMonthYear = form.returnMonthYear.value;
	var return_array = returnMonthYear.split("/");
	var returnMonth = return_array[0];
	var returnYear = return_array[1];
	
	var departingDate = addZero(form.DEPART_DAY1.value)+"/"+departMonth+"/"+departYear;
	var returningDate =addZero(form.RETURN_DAY1.value)+"/"+returnMonth+"/"+returnYear;
	
	var address1="Depart="+departingDate+"|Return="+returningDate;
	var address2="Depart="+departingDate+"|Return="+returningDate;

	document.getElementById('firstName').value = firstName;
	document.getElementById('lastName').value = lastName;
	document.getElementById('DEPART_MONTH1').value = departMonth;
	document.getElementById('DEPART_YEAR1').value = departYear;
	document.getElementById('RETURN_MONTH1').value = returnMonth;
	document.getElementById('RETURN_YEAR1').value = returnYear;

	document.getElementById('departDate').value = departingDate;
	document.getElementById('returnDate').value = returningDate;
	
	document.getElementById('addressField1').value = address1;
	document.getElementById('addressField2').value = address2;
	
	document.getElementById('additionalDetails').value = comments + " SE7";
	
}
/***** End format parameters *****/


/***** Validate form fields before submission *****/
function TrimString(sInString) {
    sInString = sInString.replace( /^\s+/g, "" );// strip leading
    return sInString.replace( /\s+$/g, "" );// strip trailing
}
function setSurName(form) {
	var fullName = TrimString(form.firstName.value);
	if(fullName.indexOf(" ") != -1) {
		var fName = fullName.substring(0, fullName.indexOf(" "));
		var lName = fullName.substring(fullName.indexOf(" ") + 1);
		form.firstName.value = fName;
		form.lastName.value = lName;
    }
}

function validateFields(form) {
	if (form.personTitle.value.length == 0) {
		alert("Title is a required field")
		form.personTitle.focus()
		return false
	} 
	if (form.personTitle.value.length > 50) {
		alert("Person title field is too long");
		return false;
	}

	
	if (form.fullName.value.length == 0) {
		alert("Full name is a required field")
		form.fullName.focus()
		return false
	}
	if (form.fullName.value.length > 256) {
		alert("Full name field data is too long");
		return false;	
	}
	
	if (form.fullName.value.indexOf(" ")==-1) {
		alert("Please enter your first and last names")
		return false
	}

	if (form.phone1.value.length == 0) {
		alert("Phone is a required field")
		form.phone1.focus()
		return false
	}
	if (form.phone1.value.length > 32) {
		alert("Phone field data is too long");
		return false;	
	}
	
	if (form.email1.value.length > 256) {
		alert("Email field data is too long"); 
		return false;	
	}
	
	var theEmail = form.email1.value;
	//trim whitespace from start of email
	while (theEmail.substring(0,1) == ' ') {
		theEmail = theEmail.substring(1, theEmail.length);
	}
	//trim whitespace from end of email
	while (theEmail.substring(theEmail.length-1, theEmail.length) == ' ') {
		theEmail = theEmail.substring(0,theEmail.length-1);
	}
	if (theEmail.indexOf('@')==-1 || theEmail.indexOf(' ')>=0 || theEmail.length<8) {
		alert("Please enter a valid email address");
		return false;
	}
	
	if (form.zipCode.value.length == 0) {
		alert("Postcode is a required field")
		form.zipCode.focus()
		return false;
	}
	if (form.zipCode.value.length > 4) {
		alert("Post code field data is too long");
		return false;	
	}
	if (form.zipCode.value.length < 3) {
		alert("Post code field data is too short");
		return false;	
	}
	
	if (form.DEPART_DAY1.value.length == 0) {
		alert("Depart day is a required field")
		form.DEPART_DAY1.focus()
		return false
	}

	if (form.departMonthYear.value.length == 0) {
		alert("Depart month and year is a required field")
		form.departMonthYear.focus()
		return false
	}

	if (form.RETURN_DAY1.value.length == 0) {
		alert("Return day is a required field")
		form.RETURN_DAY1.focus()
		return false
	}

	if (form.returnMonthYear.value.length == 0) {
		alert("Return month and year is a required field")
		form.returnMonthYear.focus()
		return false
	}

	if (form.additionalDetails.value.length > 4000) {
		alert("Additional details field data is too long");
		return false;
	}

	formatParameters(form);
	
	var dd = addZero(form.DEPART_DAY1.value);
	var rd = addZero(form.RETURN_DAY1.value);	
	var dm = addZero(form.DEPART_MONTH1.value);
	var rm = addZero(form.RETURN_MONTH1.value);
	
	if (form.DEPART_YEAR1.value == form.RETURN_YEAR1.value) {
		if (dm==rm){
			if (dd>rd) {
				alert("Return day is before departure day")
				return false
			}				
		} else if (dm>rm){	
			alert("Return month is before departure month")
			return false
		}		
	} else if (form.DEPART_YEAR1.value > form.RETURN_YEAR1.value) {
		alert("Return year is before departure year")
		return false
	}
	
	// The delimiter is the character used to store multiple fields within the configurable ADDRESS FIELD1, FIELD2 columns
	var delimiter = "|";
	
	// We are storing additional FlightCentre fields in the customisable ADDRESS fields.
	concatenateField1(form, delimiter);
	
	concatenateField2(form, delimiter);
	
    return true;
}
/***** End validate form fields *****/


/***** Add zero to single digit days and months for comparison *****/
function addZero(num){
if (num.length<2) {
		num = "0"+num;
	}
	return num;
}
/***** END CHECK RETURN DATE *****/


function concatenateField1(form, delim)
{
	var selectedEmailNewsLetter;
	//if (form.EmailNewsLetter[0].checked)  {
	//selectedEmailNewsLetter = "News=Y";
	//} 
	//if (form.EmailNewsLetter[1].checked)  {
	selectedEmailNewsLetter = "News=N";
	//}
	 
	var selectedPreferredMethodOfContact;	
	//if (form.PreferredMethodOfContact.value = "Email")  {
			selectedPreferredMethodOfContact = "Cont=Email";
	//} 
	//else if (form.PreferredMethodOfContact.value = "Phone")  {
	//		selectedPreferredMethodOfContact = "Cont=Phone";
	//}
	//else {
	//        selectedPreferredMethodOfContact = "Cont=EmailOrPhone";
	//}
	
	//concatenateDates(form);
	form.addressField1.value = selectedEmailNewsLetter + delim + selectedPreferredMethodOfContact + delim + "Depart=" + form.departDate.value + delim + "Return=" + form.returnDate.value + delim + "TravNo=" + form.noOfTravellers.value;
	return true;
}


function concatenateField2(form, delim)
{
	// Note:- the ADDRESS.Field2 column has a limit of 64 characters
	var selectCarHire = "";
	var selectTours = "";
	var selectHotels = "";
	var selectInsurance = "";
	var selectPackages = "";
	var selectActivities = "";
	var selectFlights = "";
	
	selectCarHire = "Car=N";
	selectTours = "Tour=N";
	selectHotels = "Hotel=N";
	selectInsurance = "Insure=N";
	selectPackages = "Pkg=N";
	selectActivities = "Act=N";
	selectFlights = "Fly=N"	
	
	form.addressField2.value = selectCarHire + delim + selectTours + delim + selectHotels + delim + selectInsurance + delim + selectPackages + delim + selectActivities + delim + selectFlights;
	
}

function defaultNickName(form)
{
	//GLH - Nickname needs to be unique across the ADDRESS table.  Use the orderId.
	//form.nickName.value = form.personTitle.value + " " + form.firstName.value + " " + form.lastName.value;
	//form.nickName.value = getTodaysDateMS();
	//form.nickName.value = "1132116";
	
	if (form.nickName.value == "") {
		form.nickName.value = getTodaysDateMS();
	}
}
function getTodaysDateMS() {
	var currentTimeMs = new Date().getTime();
	return currentTimeMs;
}
