// JavaScript Document
function startPage(){
	
	hideDivs();
	
}

function hideDivs(){
	
	getObjStyle('senderContactWrapper').display = "none";
	getObjStyle('receiverContactWrapper').display = "none";
	getObjStyle('sendersAddress').display = "none";
	getObjStyle('sendersPafResultDiv').display = "none";
	getObjStyle('billingAddress').display = "none";
	getObjStyle('billingPafResultDiv').display = "none";
	getObjStyle('confirmDivWrapper').display = "none";
	
}

function hideErrors(){
		
}


function valPostcode(field, wrapper, callback, errorDiv){
	
	getObjStyle(field).border = "1px solid #999";
	
	var toCheck = getObj(field).value;

	var pcode_length = toCheck.length;		
	var last_chars = (pcode_length - 3);
	var space_char = (pcode_length - 4);

	//check if a space exists in the postcode otherwise put it there
	if(toCheck.substr(space_char, 1) == " "){
		toCheck = toCheck;
	} else {
		var postcode_start = toCheck.substr(toCheck, last_chars);
		var postcode_end = toCheck.substr(last_chars);
		getObj(field).value = postcode_start + " " + postcode_end;
		toCheck = postcode_start + " " + postcode_end;
	}

	var errorsRet = checkPostCode(toCheck);
	if (errorsRet == true){
		var errorMessage = "Please enter a valid postcode.";
		getObj(errorDiv).innerHTML = "<span class=\"errorTxt\">" + errorMessage + "</span>";
		getObjStyle(errorDiv).display = "block";
		focusError(field);
		getObj(field).scrollIntoView(true);
	} else {
		loadMap(field, wrapper, callback);
	}
	
	return false;
}

function valSenderContact(){
	var errorFlag = false;
	var errorMessage = "";
	var str= "";

	getObjStyle('sender_name').border = "1px solid #999";
	getObjStyle('sender_email').border = "1px solid #999";
	getObjStyle('sender_emailConfirm').border = "1px solid #999";
	getObjStyle('sender_mobile').border = "1px solid #999";

	if(getObj('sender_mobilePref').checked){
		
		var sender_contact = "mobile";
		
	} else if(getObj('sender_emailPref').checked){

		var sender_contact = "email";

	} else {
		errorFlag = true;
		errorMessage = "Please select a prefered contact method for the sender.";
	}
	
	var weight = "";
	
	if(getObj('parcel_weight1').checked){
		
		weight = "1";
		
	} else if(getObj('parcel_weight2').checked){

		weight = "5";

	} else if(getObj('parcel_weight3').checked){

		weight = "10";

	} else {
		errorFlag = true;
		errorMessage = "Please select the weight of the parcel.";
	}

	var mobile_without_spaces = "";
	var mobile = getObj('sender_mobile').value;
	//mobile validation only applies if mobile is a preference
	if((mobile != "") || (sender_contact == "mobile")){
		
		mobile_without_spaces = mobile.replace(/ /g,'');
		
		if(mobile_without_spaces.substring(0,2) != "07"){
			errorFlag = true;
			errorMessage = "Please enter a valid mobile number.";
			focusError('sender_mobile');
		}
		
		if(mobile_without_spaces.length != 11){
			errorFlag = true;
			errorMessage = "Please enter a valid mobile number.";
			focusError('sender_mobile');
		}
	
		if(mobile_without_spaces == ""){
			errorFlag = true;
			errorMessage = "Please enter your mobile number.";
			focusError('sender_mobile');
		} else {
			errorResponse = numonly(getObj('sender_mobile'));
			if(errorResponse == true) focusError('sender_mobile');
			if(errorResponse == true) errorFlag = true;
			if(errorResponse == true) errorMessage = "Please enter a valid mobile number.";
		}
	}

	//email validation
	if(getObj('sender_email').value != getObj('sender_emailConfirm').value){
		errorFlag = true;
		errorMessage = "Your confirmation email does not match.";
		focusError('sender_emailConfirm');
	}
	if ((getObj('sender_email').value.indexOf('@') == -1) || (getObj('sender_email').value.indexOf('.') == -1)) {
		errorFlag = true;
		errorMessage = "Please enter a valid email address.";
		focusError('sender_email');
	}
	
	var emailReg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;	
	if(emailReg.test(getObj('sender_email').value) == false) {
		errorFlag = true;
		errorMessage = "Please enter a valid email address.";
		focusError('sender_email');
   }
	
	//name validation
	if(getObj('sender_name').value == ""){
		errorFlag = true;
		errorMessage = "Please enter your name.";
		focusError('sender_name');
	}

	str += "sender_name=" + getObj('sender_name').value;
	str += "&sender_company=" + getObj('sender_company').value;
	str += "&sender_email=" + getObj('sender_email').value;
	str += "&sender_emailConfirm=" + getObj('sender_emailConfirm').value;
	str += "&sender_mobile=" + mobile_without_spaces;
	str += "&sender_pref=" + sender_contact;
	str += "&sender_ref=" + getObj('sender_ref').value;
	str += "&parcel_weight=" + weight;
	
	
	if(errorFlag == false){
		processajax ('../php/addContact.php', contactCallback, "post", str);
	} else {
		getObj('senderContactResultDiv').innerHTML = "<span class=\"errorTxt\">" + errorMessage + "</span>";
		getObj('senderContactDiv').scrollIntoView(true);
	}
	
	return false;
}

function valReceiverContact(){
	var errorFlag = false;
	var errorMessage = "";
	var str= "";
	
	getObjStyle('receiver_name').border = "1px solid #999";
	getObjStyle('receiver_email').border = "1px solid #999";
	getObjStyle('receiver_emailConfirm').border = "1px solid #999";
	getObjStyle('receiver_mobile').border = "1px solid #999";

	if(getObj('receiver_mobilePref').checked){
		
		var receiver_contact = "mobile";
		
	} else if(getObj('receiver_emailPref').checked){

		var receiver_contact = "email";

	} else {
		errorFlag = true;
		errorMessage = "Please select a prefered contact method for the receipient.";
	}
	
	//validate email
	if(getObj('receiver_email').value != getObj('receiver_emailConfirm').value){
		errorFlag = true;
		errorMessage = "The confirmation email does not match.";
		focusError('receiver_emailConfirm');
	}
	if ((getObj('receiver_email').value.indexOf('@') == -1) || (getObj('receiver_email').value.indexOf('.') == -1)) {
		errorFlag = true;
		errorMessage = "Please enter a valid email address.";
		focusError('receiver_email');
	}

	var emailReg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;	
	if(emailReg.test(getObj('receiver_email').value) == false) {
		errorFlag = true;
		errorMessage = "Please enter a valid email address.";
		focusError('receiver_email');
		  return false;
   }
	
	var mobile_without_spaces = "";
	var mobile = getObj('receiver_mobile').value;
	//mobile validation only needed if preference is mobile
	if((mobile != "") || (receiver_contact == "mobile")){
		mobile_without_spaces = mobile.replace(/ /g,'');
		
		if(mobile_without_spaces.substring(0,2) != "07"){
			errorFlag = true;
			errorMessage = "Please enter a valid mobile number.";
			focusError('receiver_mobile');
		}
		if(mobile_without_spaces.length != 11){
			errorFlag = true;
			errorMessage = "Please enter a valid mobile number.";
			focusError('receiver_mobile');
		}
	
		if(mobile_without_spaces == ""){
			errorFlag = true;
			errorMessage = "Please enter a mobile number.";
			focusError('receiver_mobile');
		} else {
			errorResponse = numonly(getObj('receiver_mobile'));
			if(errorResponse == true) focusError('receiver_mobile');
			if(errorResponse == true) errorFlag = true;
			if(errorResponse == true) errorMessage = "Please enter a valid mobile number.";
		}
	}

	//name validation
	if(getObj('receiver_name').value == ""){
		errorFlag = true;
		errorMessage = "Please enter a name.";
		focusError('receiver_name');
	}

	str += "receiver_name=" + getObj('receiver_name').value;
	str += "&receiver_company=" + getObj('receiver_company').value;
	str += "&receiver_email=" + getObj('receiver_email').value;
	str += "&receiver_emailConfirm=" + getObj('receiver_emailConfirm').value;
	str += "&receiver_mobile=" + mobile_without_spaces;
	str += "&receiver_pref=" + receiver_contact;
	
	
	if(errorFlag == false){
		processajax ('../php/addReceipient.php', receiverCallback, "post", str);
	} else {
		getObj('receiverContactResultDiv').innerHTML = "<span class=\"errorTxt\">" + errorMessage + "</span>";
		getObj('receiverContactDiv').scrollIntoView(true);
	}
	
	return false;
}

function pafLookup(postcode,section){
	var errorFlag = false;
	var errorMessage = "";
	var str= "";

	getObjStyle('billing_postcode_lookup').border = "1px solid #999";
	getObjStyle('sender_postcode_lookup').border = "1px solid #999";
	
	var toCheck = postcode;
	var errorsRet = checkPostCode(toCheck);
	if (errorsRet == true){
		errorMessage = "Please enter a valid postcode.";
		errorFlag = true;
	}

	str = "postcode=" + postcode;
	
	if(section == "sender"){
		//reset the result form
		getObj('sender_postcode').value = "";
		getObj('sender_building').value = "";
		getObj('sender_line1').value = "";
		getObj('sender_line2').value = "";
		getObj('sender_line3').value = "";
		getObj('sender_town').value = "";
		getObj('sender_county').value = "";
		
		if(errorFlag == false){
			getObj('senderAddressResult').innerHTML = "&nbsp;";
			processajax ('../php/getAddress.php', senderGetAdd, "post", str);
		} else {
			getObj('senderAddressResult').innerHTML = "<span class=\"errorTxt\">" + errorMessage + "</span>";
			focusError('sender_postcode_lookup');
			getObj('sendersPafDiv').scrollIntoView(true);
		}
	} else {
		
		//reset billing form
		getObj('billing_postcode').value = "";
		getObj('billing_building').value = "";
		getObj('billing_line1').value = "";
		getObj('billing_line2').value = "";
		getObj('billing_line3').value = "";
		getObj('billing_town').value = "";
		getObj('billing_county').value = "";

		if(errorFlag == false){
			getObj('billingAddressResult').innerHTML = "&nbsp;";
			processajax ('../php/getAddress.php', billingGetAdd, "post", str);
		} else {
			getObj('billingAddressResult').innerHTML = "<span class=\"errorTxt\">" + errorMessage + "</span>";
			focusError('billing_postcode_lookup');
			getObj('billingPafDiv').scrollIntoView(true);
		}
	}
	
	return false;
}

function senderAddress(){
	var errorFlag = false;
	var errorMessage = "";
	var str= "";
	
	getObjStyle('sender_postcode').border = "1px solid #999";
	getObjStyle('sender_building').border = "1px solid #999";
	getObjStyle('sender_town').border = "1px solid #999";

	
	var toCheck = getObj('sender_postcode').value;
	var errorsRet = checkPostCode(toCheck);
	if (errorsRet == true){
		errorMessage = "Please enter a valid postcode.";
		errorFlag = true;
		focusError('sender_postcode');
	}
	
	if(getObj('sender_building').value == ""){
		errorFlag = true;
		errorMessage = "Please enter a house number or name.";
		focusError('sender_building');
	}
	if(getObj('sender_town').value == ""){
		errorFlag = true;
		errorMessage = "Please enter a town.";
		focusError('sender_town');
	}

	
	str = "sender_postcode=" + getObj('sender_postcode').value;
	str += "&sender_building=" + getObj('sender_building').value;
	str += "&sender_line1=" + getObj('sender_line1').value;
	str += "&sender_line2=" + getObj('sender_line2').value;
	str += "&sender_line3=" + getObj('sender_line3').value;
	str += "&sender_town=" + getObj('sender_town').value;
	str += "&sender_county=" + getObj('sender_county').value;
	str += "&addSec=sender";
	
	if(errorFlag == false){
		processajax ('../php/addAddress.php', senderAddCallback, "post", str);
	} else {
		getObj('senderAddressResult').innerHTML = "<span class=\"errorTxt\">" + errorMessage + "</span>";
		getObj('sendersPafResultDiv').scrollIntoView(true);
	}

	return false;
}

function billingAddress(){
	var errorFlag = false;
	var errorMessage = "";
	var str= "";

	getObjStyle('billing_postcode').border = "1px solid #999";
	getObjStyle('billing_building').border = "1px solid #999";
	getObjStyle('billing_town').border = "1px solid #999";
	
	if(getObj('billing_building').value == ""){
		errorFlag = true;
		errorMessage = "Please enter a house number or name.";
		focusError('billing_building');
	}
	if(getObj('billing_town').value == ""){
		errorFlag = true;
		errorMessage = "Please enter a town.";
		focusError('billing_town');
	}

	var toCheck = getObj('billing_postcode').value;
	var errorsRet = checkPostCode(toCheck);
	if (errorsRet == true){
		errorMessage = "Please enter a valid postcode.";
		errorFlag = true;
		focusError('billing_postcode');
	}
	
	str = "billing_postcode=" + getObj('billing_postcode').value;
	str += "&billing_building=" + getObj('billing_building').value;
	str += "&billing_line1=" + getObj('billing_line1').value;
	str += "&billing_line2=" + getObj('billing_line2').value;
	str += "&billing_line3=" + getObj('billing_line3').value;
	str += "&billing_town=" + getObj('billing_town').value;
	str += "&billing_county=" + getObj('billing_county').value;
	str += "&addSec=billing";
	
	if(errorFlag == false){
		processajax ('../php/addAddress.php', billingAddCallback, "post", str);
	} else {
		getObj('billingAddressResult').innerHTML = "<span class=\"errorTxt\">" + errorMessage + "</span>";
		getObj('billingPafResultDiv').scrollIntoView(true);
	}
	
	return false;
}

function copyAddress(){

	var errorFlag = false;

	str = "billing_postcode=" + getObj('sender_postcode').value;
	str += "&billing_building=" + getObj('sender_building').value;
	str += "&billing_line1=" + getObj('sender_line1').value;
	str += "&billing_line2=" + getObj('sender_line2').value;
	str += "&billing_line3=" + getObj('sender_line3').value;
	str += "&billing_town=" + getObj('sender_town').value;
	str += "&billing_county=" + getObj('sender_county').value;
	str += "&addSec=billing";
	
	if(errorFlag == false){
		getObjStyle('billingPafDiv').display = "none";
		processajax ('../php/addAddress.php', billingAddCallback, "post", str);
	} else {
		getObj('billingAddressResult').innerHTML = "<span class=\"errorTxt\">" + errorMessage + "</span>";
		getObj('billingPafResultDiv').scrollIntoView(true);
	}
	
	return false;

}

function searchAgainSender(){
		getObjStyle('sendersPafResultDiv').display = "none";
		getObjStyle('sendersPafDiv').display = "block";
		return false;
}
function searchAgainBilling(){
		getObjStyle('billingPafResultDiv').display = "none";
		getObjStyle('billingPafDiv').display = "block";
		
		return false;
}

function makePayment(){
	
	var str = "";
	
	if(getObj('termsCheck').checked == true){
		processajax ('../php/addConfirmation.php', paymentCallback, "post", str);
	} else {
		getObj('paymentErrorDiv').innerHTML = "You must agree to the terms &amp; conditions to continue.";
	}

	
	return false;
}

function makeBooking(field){
	
	var str = "";
	
	str = "record=" + field;
	
	processajax ('../php/addBooking.php', bookingCallback, "post", str);
	
	return false;
}


function changeDropPoint(){
	getObjStyle('dropPointDiv').display = "block";
	getObj('dropResultDiv').innerHTML = "&nbsp;";
	loadMap('dropPoint', 'dropMapWrapper', 'drop');
}
function changeCollectPoint(){
	getObjStyle('collectPointDiv').display = "block";
	getObj('collectResultDiv').innerHTML = "&nbsp;";
	loadMap('collectPoint', 'collectMapWrapper', 'coll');

}
function changeContact(){
	getObjStyle('senderContactDiv').display = "block";
	getObj('senderContactResultDiv').innerHTML = "&nbsp;";

}
function changeReceipient(){
	getObjStyle('receiverContactDiv').display = "block";
	getObj('receiverContactResultDiv').innerHTML = "&nbsp;";
	getObj('receiverContactDiv').scrollIntoView(true);
	return false;
}
function changeSenderAdd(){
	getObjStyle('sendersPafDiv').display = "block";
	getObj('senderAddressResult').innerHTML = "&nbsp;";
	getObj('sendersPafDiv').scrollIntoView(true);
	return false;
}
function changeBillingAdd(){
	getObjStyle('billingPafDiv').display = "block";
	getObj('billingAddressResult').innerHTML = "&nbsp;";
	getObj('billingPafDiv').scrollIntoView(true);
	return false;
}

function focusError(field){
	getObjStyle(field).border = "2px solid #ff0000";
	getObj(field).focus();
}

function numonly(field) {
	var valid = "0123456789 "
	var errorFlag = false;
	var temp;
	for (var i=0; i<field.value.length; i++) {
		temp = "" + field.value.substring(i, i+1);
		if (valid.indexOf(temp) == "-1") errorFlag = true;
	}
	return errorFlag;
}