<!--
// =============================================================
// copyright 2004 Alptitude.com - all rights reserved
// =============================================================

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) xx.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=(arguments ? arguments : MM_preloadImages.arguments);
    for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

// return y position, minus
function getLayerX($objname) {
	$x = event.clientX;
	//$objW = MM_findObj($objname).width;
	//$x = document.body.clientWidth - $objW - 10;
	return $x;
}

// return y position, minus
function getLayerY($objname) {
	//$y = event.clientY;
	$objH = MM_findObj($objname).height;
	$y = (event.clientY - $objH);
	return $y;
}

// ===================================================================================================

function y2k(number) { return (number < 1000) ? number + 1900 : number; }

// checks if date passed is in valid dd/mm/yyyy format

function isValidDate (myDate,sep) {
    if (myDate.length == 10) {
        if (myDate.substring(2,3) == sep && myDate.substring(5,6) == sep) {
            var date  = myDate.substring(0,2);
            var month = myDate.substring(3,5);
            var year  = myDate.substring(6,10);
            var test = new Date(year,month-1,date);
            if ( year == y2k(test.getYear() ) && ( month-1 == test.getMonth() ) && ( date == test.getDate() ) ) {
                return true;
            }
            else {
                //alert('valid format but invalid date');
                return false;
            }
        }
        else {
            // alert('invalid separators');
            return false;
        }
    }
    else {
        // alert('invalid length');
        return false;
    }
}

// ================================================================================================================
// resist right click script is now stored separately in norc.js
// ================================================================================================================

//checks if field is empty
function isEmpty(str){ 
    strRE = new RegExp( ); 
    strRE.compile( '^[s ]*$', 'gi' ); 
    return strRE.test( str.value ); 
} 

// Checks to see if email address is 'valid' 
function notValidEmail( str ){ 
   mailRE = new RegExp( ); 
   mailRE.compile( '^[._a-z0-9-]+@[.a-z0-9-]+[.]{1}[a-z]{2,4}$', 'gi' ); 
   return !(mailRE.test( str.value )); 
} 

//checks content is only letters
function isLetters( str ) {
	var myregexp = new RegExp("[^a-zA-Z]");
	if (str.match(myregexp)) {
		return true;
	}
	return false;
}

//checks content is only uppercase letters
function isUppercaseLetters( str ) {
	var myregexp = new RegExp("[^A-Z]");
	if (str.match(myregexp)) {
		return true;
	}
	return false;
}

//checks content is only uppercase letters or spaces
function isUppercaseLettersOrSpaces( str ) {
	var myregexp = new RegExp("[^A-Z] ");
	if (str.match(myregexp)) {
		return true;
	}
	return false;
}

//checks content is only numbers and lowercase letters
function isNumbersAndLowercaseLetters( str ) {
	var myregexp = new RegExp("[^a-z0-9]");
	if (str.match(myregexp)) {
		return true;
	}
	return false;
}

//checks content is only numbers and letters
function isNumbersAndLetters( str ) {
	var myregexp = new RegExp("[^a-zA-Z0-9]");
	if (str.match(myregexp)) {
		return true;
	}
	return false;
}

//checks content is only numbers
function isPhoneNumber( str ) {
	if (str.match(/[^0-9+ ]/)) {
		return true;
	}
	return false;
}

//checks content is only numbers
function isNumbers( str ) {
	if (str.match(/[^0-9]/)) {
		return true;
	}
	return false;
}

//checks content is numeric
function isNumeric( str ) {
	if (str.match(/[^0-9.]/)) {
		return true;
	}
	return false;
}

//checks if box is ticked
function notChecked( box ){
    if( box.checked ){
        return false;
    }
    else{
        return true;
    }
}

// =====================================================================================

function checkYourHolidayLogin( form ) {
    if ( (form.ref1.value.length < 6) || (form.ref1.value.length > 6) ) {
        alert('(error 1.1)\n\nSorry, but the first field should contain 6 numbers (the date you booked your holiday, YYYYMMDD).\nPlease try again.' );
        form.ref1.focus();
        return false;
    }
    if( isNumbers( form.ref1.value ) ) {
	alert('(error 1.2)\n\nSorry, but the first field should contain 6 numbers (the date you booked your holiday, YYYYMMDD).\nPlease try again.' );
	form.ref1.focus();
        return false;
    }
    if ( isEmpty( form.ref1 ) ) {
        alert('(error 1.3)\n\nSorry, but the first field should contain 6 numbers (the date you booked your holiday, YYYYMMDD).\nPlease try again.' );
        form.ref1.focus();
        return false;
    }
    if ( ( form.ref2.value.length < 1) || ( form.ref2.value.length > 1 ) ) {
        alert('(error 2.2)\n\nSorry, but the second field should contain one letter (the first letter of your surname)..\nPlease try again.' );
        form.ref2.focus();
        return false;
    }
    if ( isLetters( form.ref2.value ) ) {
	alert('(error 2.3)\n\nSorry, but the second field should contain one letter (the first letter of your surname)..\nPlease try again.' );
	form.ref2.focus();
        return false;
    }
    if ( (form.ref3.value.length < 4) || (form.ref3.value.length > 4) ) {
        alert('(error 3.1)\n\nSorry, but the third field should contain 4 letters (chalet reference).\nPlease try again.' );
        form.ref3.focus();
        return false;
    }
    if ( ( form.ref4.value.length < 8 ) || ( form.ref4.value.length > 8 ) ) {
        alert('(error 4.1)\n\nSorry, but the fourth field should contain 8 numbers (the start date of your holiday, DDMMYYYY).\nPlease try again.' );
        form.ref4.focus();
        return false;
    }
    if ( isNumbers( form.ref4.value ) ) {
	alert('(error 4.2)\n\nSorry, but the fourth field should contain 8 numbers (the start date of your holiday, DDMMYYYY).\nPlease try again.' );
	form.ref4.focus();
        return false;
    }
    if ( isEmpty( form.ref4 ) ) {
        alert('(error 4.3)\n\nSorry, but the fourth field should contain 8 numbers (the start date of your holiday, DDMMYYYY).\nPlease try again.' );
        form.ref4.focus();
        return false;
    }
    return true;
}

function checkRateUpdate ( form ){
    if( isNumeric( form.new_rate_value.value ) ){
        alert('the value must be numeric.' );
        form.new_rate_value.focus();
        return false;
    }
    return true;
}

function checkRateBoolUpdate ( form ){
    if( form.new_rate_value.value != "true" && form.new_rate_value.value != "false" ) {
        alert('the value must be true or false.' );
        form.new_rate_value.focus();
        return false;
    }
    return true;
}

function checkDateUpdate ( form ){
    if( form.new_date_value.length != 10) {
        alert('the value must be a date YYYY-MM-DD.' );
        form.new_date_value.focus();
        return false;
    }
    return true;
}

function checkMultiEmailPicker( form ){
    if( isEmpty( form.pp_id ) ){
        alert('You need to choose a property...' );
        return false;
    }
    return true;
}

function checkForgetPropertyHistory( form ){
    if( isEmpty( form.pp_id ) ){
        alert('You need to choose a property...' );
        return false;
    }
    return true;
}

function checkForgetProspectHistory( form ){
    if( isEmpty( form.p_id ) ){
        alert('You need to choose a prospect...' );
        return false;
    }
    return true;
}

function checkSendBookingRefReminder( form  ) {
    if( isEmpty( form.email4reminder ) ){
        alert('Please enter the email address you used to book with us (the field is blank)' );
        form.email4reminder.focus();
        return false;
    }
    else {
	    if( notValidEmail( form.email4reminder ) ){
	        alert('Please enter a VALID email address (the address you entered is not valid)' );
	        form.email4reminder.focus();
	        return false;
	    }
    }
    return true;
}

function checkSubmitFeedback( form) {
    if( isEmpty( form.feedback_content ) ){
        alert('The feedback form is empty...' );
        form.feedback_content.focus();
        return false;
    }
    return true;
}

function checkProspectEdit( form ){
    if( isEmpty( form.pros_email ) ){
        alert('Please enter an email address (field blank)' );
        return false;
    }
    if( notValidEmail( form.pros_email ) ){
        alert('Please enter a VALID email address' );
        return false;
    }
    if( isEmpty( form.pros_name ) ){
        alert('Please enter the first name.' );
        return false;
    }
    if( isEmpty( form.pros_surname ) ){
        alert('(Please enter the surname.' );
        return false;
    }
    if (isValidDate( form.pros_expires.value,'/')) {
    }
    else {
        alert('\'expires\' date should be a valid date, numbers and slashes as dd/mm/yyyy.' );
        form.pros_expires.focus();
        return false;
    }
    return true;
}

function checkProspect( form ){
    if (form.pros_email) {
    	if( isEmpty( form.pros_email ) ){
    	    alert('Sorry, but you need to tell us your email address so we can keep you informed.' );
    	    return false;
    	}
    	if( notValidEmail( form.pros_email ) ){
    	    alert('Sorry, but you need to give us a valid email address so we can keep you informed.' );
    	    return false;
    	}
    }
    if( isEmpty( form.pros_name ) ){
        alert('Sorry, but you need to give us your first name.' );
        return false;
    }
    if( isEmpty( form.pros_surname ) ){
        alert('Sorry, but you need to give us your surname.' );
        return false;
    }
    if( isEmpty( form.pros_min ) ){
        alert('Sorry, but you need to tell us your minimum budget.' );
        return false;
    }
    if( isEmpty( form.pros_max ) ){
        alert('Sorry, but you need to tell us your maximum budget.' );
        return false;
    }
    if ( (form.pros_max.value - form.pros_min.value) < 0 ) {
        alert('Sorry, but your minimum budget (' + form.pros_min.value + ') cannot be greater than or equal to your maximum (' + form.pros_max.value + ')');
        return false;
    }
    if ( (notChecked(form.pros_type1)) && (notChecked(form.pros_type2)) && (notChecked(form.pros_type3)) && (notChecked(form.pros_type4)) && (notChecked(form.pros_type5)) ){
        alert( 'Sorry, but you need to tell us what type of property you are looking for (please tick at least one)' );
        return false;
    }
    return true;
}

function checkRegiInfo( form ){
    if( isEmpty( form.regi_name ) ){
        alert('area name cannot be blank.' );
        return false;
    }
    if( isUppercaseLettersOrSpaces( form.regi_name.value ) ){
        alert('area name must contain only spaces or uppercase letters (A-Z)' );
        return false;
    }
    return true;
}

function checkPropInfo( form ){
    if( isEmpty( form.prop_name ) ){
        alert('please specify the name of the property.' );
        form.prop_name.focus();
        return false;
    }
    if( isEmpty( form.prop_agent ) ){
        alert('please specify the agent for this property.' );
        form.prop_agent.focus();
        return false;
    }
    if( isEmpty( form.prop_price ) ){
        alert('price cannot be blank.' );
        form.prop_price.focus();
        return false;
    }
    if( isNumbers( form.prop_price.value ) ){
        alert('price must be a number.' );
        form.prop_price.focus();
        return false;
    }
    if( isEmpty( form.prop_type ) ){
        alert('type cannot be blank.' );
        form.prop_type.focus();
        return false;
    }
    if( isEmpty( form.prop_floorarea ) ){
        alert('floor area cannot be blank (set to zero if not known)' );
        form.prop_floorarea.focus();
        return false;
    }
    if( isNumbers( form.prop_floorarea.value ) ){
        alert('floor area must be a number.' );
        return false;
    }
    if( isEmpty( form.prop_landarea ) ){
        alert('land area cannot be blank (set to zero if not known)' );
        return false;
    }
    if( isNumbers( form.prop_landarea.value ) ){
        alert('land area must be a number.' );
        form.prop_landarea.focus();
        return false;
    }
    if( isEmpty( form.prop_nearestskiing ) ){
        alert('nearest skiing cannot be blank (set to zero if not known)' );
        return false;
    }
    if( isNumbers( form.prop_nearestskiing.value ) ){
        alert('nearest skiing must be a number.' );
        form.prop_nearestskiing.focus();
        return false;
    }
    if( isEmpty( form.prop_nearestshops ) ){
        alert('nearest shops cannot be blank (set to zero if not known)' );
        form.prop_nearestshops.focus();
        return false;
    }
    if( isNumbers( form.prop_nearestshops.value ) ){
        alert('nearest shops must be a number.' );
        form.prop_nearestshops.focus();
        return false;
    }
    if( isEmpty( form.prop_taxes ) ){
        alert('taxes cannot be blank (set to zero if not known)' );
        form.prop_taxes.focus();
        return false;
    }
    if( isNumbers( form.prop_taxes.value ) ){
        alert('taxes must be a number' );
        form.prop_taxes.focus();
        return false;
    }
    if( isEmpty( form.prop_brief_en ) ){
        alert('english brief cannot be blank' );
        form.prop_brief_en.focus();
        return false;
    }
    return true;
}

function submitEventId( form ){
    if( isEmpty( form.event_id ) ){
        alert('please choose an event..' );
        return false;
    }
    return true;
}

function submitNewEvent( form ){
	if( form.event_time.value == '00:00' ) {
		alert('Please enter the time of the event as hh:mm' );
		form.event_time.focus();
		return false;
	}
	if( form.event_vendor.value == 0 ) {
		if( form.event_prospect.value == 0 ) {
			if( form.event_property.value == 0 ) {
				alert('please select at least one (vendor, prospect or property).' );
				return false;
			}
		}
	}
	if( form.event_method.value == 0 ) {
		alert('please select the method' );
		form.event_method.focus();
		return false;
	}
	if( form.event_subject.value == 0 ) {
		alert('please select the subject' );
		form.event_subject.focus();
		return false;
	}
	return true;
}

function submitVendorId( form ){
    if( isEmpty( form.vendor_id ) ){
        alert('please choose a vendor..' );
        return false;
    }
    return true;
}

function submitNewVendor( form ){
	// if not empty and vendor_email is valid
	if( isEmpty( form.vendor_email ) ){}
	else {
		if( notValidEmail( form.vendor_email ) ){
			alert('please enter a valid email address..' );
			form.vendor_email.focus();
			return false;
		}
	}

	if( isEmpty( form.vendor_name ) ){
		alert('Please enter the first name.' );
		form.vendor_name.focus();
		return false;
	}

	if( isEmpty( form.vendor_surname ) ){
		alert('Please enter the surname.' );
		form.vendor_surname.focus();
		return false;
	}

	if( isEmpty( form.vendor_full_name ) ){
		alert('Please enter the full_name.' );
		form.vendor_full_name.focus();
		return false;
	}

	var phonemsg = '\nfor example:\n +33 (0)1 23456789 for a French number\n +44 (0)123 456789 for a UK number\n\n..allowed characters are : +0123456789() and spaces\n\nnote: if you do not have any phone numbers for this entry\nyou can enter ten zeros 0000000000 in the home number field.\nThe field will then appear highlighted in red to remind you to update it later';

	// one of these 3 must be completed
	if( form.vendor_hometel.value.length < 10 ){
		if( form.vendor_worktel.value.length < 10 ){
			if( form.vendor_mobtel.value.length < 10 ){
				alert('Please enter at least one phone number' + phonemsg );
				form.vendor_hometel.focus();
				return false;
			}
			else {
			    if( isPhoneNumber( form.vendor_mobtel.value ) ){
				alert('Please enter the mobile number' + phonemsg );
				form.vendor_mobtel.focus();
				return false;
			    }
			}
		}
		else {
		    if( isPhoneNumber( form.vendor_worktel.value ) ){
			alert('Please enter the work number' + phonemsg );
			form.vendor_worktel.focus();
			return false;
		    }
		}
	}
	else {
	    if( isPhoneNumber( form.vendor_hometel.value ) ){
		alert('Please enter the home number' + phonemsg );
		form.vendor_hometel.focus();
		return false;
	    }
	}

	// vendor_lang length = 2
	if( isEmpty( form.vendor_lang ) ){
		alert('Please enter the principal language spoken' );
		form.vendor_lang.focus();
		return false;
	}

	// vendor_address1 length > 0
	if( isEmpty( form.vendor_address1 ) ){
		alert('Please complete the first line of the address (at least the first two lines must be completed).' );
		form.vendor_address1.focus();
		return false;
	}

	if( isEmpty( form.vendor_address2 ) ){
		alert('Please complete the second line of the address (at least the first two lines must be completed).' );
		form.vendor_address2.focus();
		return false;
	}

	// vendor_postcode length > 0
	if( isEmpty( form.vendor_postcode ) ){
		alert('Please enter the postcode.' );
		form.vendor_postcode.focus();
		return false;
	}

	// vendor_country length = 2
	if( isEmpty( form.vendor_country ) ){
		alert('Please select the country of residence.' );
		form.vendor_country.focus();
		return false;
	}
	return true;
}

function submitBuyerId( form ){
    if( isEmpty( form.buyer_id ) ){
        alert('please choose a buyer..' );
        return false;
    }
    return true;
}

function submitNewBuyer( form ){
	// if not empty and buyer_email is valid
	if( isEmpty( form.buyer_email ) ){}
	else {
		if( notValidEmail( form.buyer_email ) ){
			alert('Please enter a valid email address..' );
			form.buyer_email.focus();
			return false;
		}
	}

	if( isEmpty( form.buyer_name ) ){
		alert('Please enter the first name.' );
		form.buyer_name.focus();
		return false;
	}

	if( isEmpty( form.buyer_surname ) ){
		alert('Please enter the surname.' );
		form.buyer_surname.focus();
		return false;
	}

	if( isEmpty( form.buyer_full_name ) ){
		alert('Please enter the full_name.' );
		form.buyer_full_name.focus();
		return false;
	}

	var phonemsg = '\nfor example:\n +33 (0)1 23456789 for a French number\n +44 (0)123 456789 for a UK number\n\n..allowed characters are : +0123456789() and spaces\n\nnote: if you do not have any phone numbers for this entry\nyou can enter ten zeros 0000000000 in the home number field.\nThe field will then appear highlighted in red to remind you to update it later';

	// one of these 3 must be completed
	if( form.buyer_hometel.value.length < 10 ){
		if( form.buyer_worktel.value.length < 10 ){
			if( form.buyer_mobtel.value.length < 10 ){
				alert('Please enter at least one phone number' + phonemsg );
				form.buyer_hometel.focus();
				return false;
			}
			else {
			    if( isPhoneNumber( form.buyer_mobtel.value ) ){
				alert('Please enter the mobile number' + phonemsg );
				form.buyer_mobtel.focus();
				return false;
			    }
			}
		}
		else {
		    if( isPhoneNumber( form.buyer_worktel.value ) ){
			alert('Please enter the work number' + phonemsg );
			form.buyer_worktel.focus();
			return false;
		    }
		}
	}
	else {
	    if( isPhoneNumber( form.buyer_hometel.value ) ){
		alert('Please enter the home number' + phonemsg );
		form.buyer_hometel.focus();
		return false;
	    }
	}

	// buyer_lang length = 2
	if( isEmpty( form.buyer_lang ) ){
		alert('Please enter the principal language spoken.' );
		form.buyer_lang.focus();
		return false;
	}

	// buyer_address1 length > 0
	if( isEmpty( form.buyer_address1 ) ){
		alert('Please complete the first line of the address (at least the first two lines must be completed).' );
		form.buyer_address1.focus();
		return false;
	}

	if( isEmpty( form.buyer_address2 ) ){
		alert('Please complete the second line of the address (at least the first two lines must be completed).' );
		form.buyer_address2.focus();
		return false;
	}

	// buyer_postcode length > 0
	if( isEmpty( form.buyer_postcode ) ){
		alert('Please enter the postcode.' );
		form.buyer_postcode.focus();
		return false;
	}

	// buyer_country length = 2
	if( isEmpty( form.buyer_country ) ){
		alert('Please select the country of residence.' );
		form.buyer_country.focus();
		return false;
	}
	return true;
}

function submitMandateId( form ){
    if( (form.mandate_id.value == 0) ){
        alert('please choose a mandate..' );
        return false;
    }
    if( isEmpty( form.mandate_id ) ){
        alert('please choose a mandate..' );
        return false;
    }
    return true;
}

function submitNewMandate( form ) {
	if( form.mandate_id.value == 0 ) {
		alert('Please enter the mandate number as it appears on the top right of the hardcopy.');
		form.mandate_id.focus();
		return false;
	}
	if( form.mandate_agent.value == 0 ) {
		alert('Please select the agent' );
		form.mandate_agent.focus();
		return false;
	}
	if( (form.mandate_type.value == 0) ){
		alert('Please select the mandate type.' );
		form.mandate_type.focus();
		return false;
	}
	if( (form.mandate_type.value == 1) ){
		if( (form.mandate_vendor_1.value == 0) ){
			alert('Please indicate the vendor.' );
			form.mandate_vendor_1.focus();
			return false;
		}
		if (form.mandate_vendor_2.value > 0) {
			if (form.mandate_vendor_1.value === form.mandate_vendor_2.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_2.focus();return false;}
		}
		if (form.mandate_vendor_2.value == 0) {
			if (form.mandate_vendor_3.value > 0  ||  form.mandate_vendor_4.value > 0  ||  form.mandate_vendor_5.value > 0  ) {
				alert('You cannot select the next vendor when the previous is blank...' );
				form.mandate_vendor_2.focus();return false;
			}
		}
		if (form.mandate_vendor_3.value > 0) {
			if (form.mandate_vendor_1.value === form.mandate_vendor_3.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_3.focus();return false;}
			if (form.mandate_vendor_2.value === form.mandate_vendor_3.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_3.focus();return false;}
		}
		if (form.mandate_vendor_3.value == 0) {
			if (form.mandate_vendor_4.value > 0  ||  form.mandate_vendor_5.value > 0  ) {
				alert('You cannot select the next vendor when the previous is blank...' );
				form.mandate_vendor_3.focus();return false;
			}
		}
		if (form.mandate_vendor_4.value > 0) {
			if (form.mandate_vendor_1.value === form.mandate_vendor_4.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_4.focus();return false;}
			if (form.mandate_vendor_2.value === form.mandate_vendor_4.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_4.focus();return false;}
			if (form.mandate_vendor_3.value === form.mandate_vendor_4.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_4.focus();return false;}
		}
		if (form.mandate_vendor_4.value == 0) {
			if (form.mandate_vendor_5.value > 0) {
				alert('You cannot select the next vendor when the previous is blank...' );
				form.mandate_vendor_4.focus();
				return false;
			}
		}
		if (form.mandate_vendor_5.value > 0) {
			if (form.mandate_vendor_1.value === form.mandate_vendor_5.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_5.focus();return false;}
			if (form.mandate_vendor_2.value === form.mandate_vendor_5.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_5.focus();return false;}
			if (form.mandate_vendor_3.value === form.mandate_vendor_5.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_5.focus();return false;}
			if (form.mandate_vendor_4.value === form.mandate_vendor_5.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_5.focus();return false;}
		}
	}
	if( (form.mandate_type.value == 2) ){
		if( (form.mandate_vendor_1.value == 0) ){
			alert('Please indicate the vendor, (buyer is optional).' );
			form.mandate_vendor_1.focus();
			return false;
		}
		if (form.mandate_vendor_2.value > 0) {
			if (form.mandate_vendor_1.value === form.mandate_vendor_2.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_2.focus();return false;}
		}
		if (form.mandate_vendor_2.value == 0) {
			if (form.mandate_vendor_3.value > 0  ||  form.mandate_vendor_4.value > 0  ||  form.mandate_vendor_5.value > 0  ) {
				alert('You cannot select the next vendor when the previous is blank...' );
				form.mandate_vendor_2.focus();return false;
			}
		}
		if (form.mandate_vendor_3.value > 0) {
			if (form.mandate_vendor_1.value === form.mandate_vendor_3.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_3.focus();return false;}
			if (form.mandate_vendor_2.value === form.mandate_vendor_3.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_3.focus();return false;}
		}
		if (form.mandate_vendor_3.value == 0) {
			if (form.mandate_vendor_4.value > 0  ||  form.mandate_vendor_5.value > 0  ) {
				alert('You cannot select the next vendor when the previous is blank...' );
				form.mandate_vendor_3.focus();return false;
			}
		}
		if (form.mandate_vendor_4.value > 0) {
			if (form.mandate_vendor_1.value === form.mandate_vendor_4.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_4.focus();return false;}
			if (form.mandate_vendor_2.value === form.mandate_vendor_4.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_4.focus();return false;}
			if (form.mandate_vendor_3.value === form.mandate_vendor_4.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_4.focus();return false;}
		}
		if (form.mandate_vendor_4.value == 0) {
			if (form.mandate_vendor_5.value > 0) {
				alert('You cannot select the next vendor when the previous is blank...' );
				form.mandate_vendor_4.focus();
				return false;
			}
		}
		if (form.mandate_vendor_5.value > 0) {
			if (form.mandate_vendor_1.value === form.mandate_vendor_5.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_5.focus();return false;}
			if (form.mandate_vendor_2.value === form.mandate_vendor_5.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_5.focus();return false;}
			if (form.mandate_vendor_3.value === form.mandate_vendor_5.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_5.focus();return false;}
			if (form.mandate_vendor_4.value === form.mandate_vendor_5.value) {alert('Sorry, you cannot enter the same vendor twice...' );form.mandate_vendor_5.focus();return false;}
		}
		
		if (form.mandate_buyer_1.value > 0) {
			if (form.mandate_buyer_2.value > 0) {
				if (form.mandate_buyer_1.value === form.mandate_buyer_2.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_2.focus();return false;}
			}
			if (form.mandate_buyer_2.value == 0) {
				if (form.mandate_buyer_3.value > 0  ||  form.mandate_buyer_4.value > 0  ||  form.mandate_buyer_5.value > 0  ) {
					alert('You cannot select the next buyer when the previous is blank...' );
					form.mandate_buyer_2.focus();return false;
				}
			}
			if (form.mandate_buyer_3.value > 0) {
				if (form.mandate_buyer_1.value === form.mandate_buyer_3.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_3.focus();return false;}
				if (form.mandate_buyer_2.value === form.mandate_buyer_3.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_3.focus();return false;}
			}
			if (form.mandate_buyer_3.value == 0) {
				if (form.mandate_buyer_4.value > 0  ||  form.mandate_buyer_5.value > 0  ) {
					alert('You cannot select the next buyer when the previous is blank...' );
					form.mandate_buyer_2.focus();return false;
				}
			}
			if (form.mandate_buyer_4.value > 0) {
				if (form.mandate_buyer_1.value === form.mandate_buyer_4.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_4.focus();return false;}
				if (form.mandate_buyer_2.value === form.mandate_buyer_4.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_4.focus();return false;}
				if (form.mandate_buyer_3.value === form.mandate_buyer_4.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_4.focus();return false;}
			}
			if (form.mandate_buyer_4.value == 0) {
				if (form.mandate_buyer_5.value > 0) {
					alert('You cannot select the next buyer when the previous is blank...' );
					form.mandate_buyer_4.focus();return false;
				}
			}
			if (form.mandate_buyer_5.value > 0) {
				if (form.mandate_buyer_1.value === form.mandate_buyer_5.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_5.focus();return false;}
				if (form.mandate_buyer_2.value === form.mandate_buyer_5.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_5.focus();return false;}
				if (form.mandate_buyer_3.value === form.mandate_buyer_5.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_5.focus();return false;}
				if (form.mandate_buyer_4.value === form.mandate_buyer_5.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_5.focus();return false;}
			}
		}
	}
	if( (form.mandate_type.value == 3) ){
		if( (form.mandate_buyer_1.value == 0) ){
			alert('Please indicate the buyer.' );
			form.mandate_buyer_1.focus();
			return false;
		}
		if (form.mandate_buyer_2.value > 0) {
			if (form.mandate_buyer_1.value === form.mandate_buyer_2.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_2.focus();return false;}
		}
		if (form.mandate_buyer_2.value == 0) {
			if (form.mandate_buyer_3.value > 0  ||  form.mandate_buyer_4.value > 0  ||  form.mandate_buyer_5.value > 0  ) {
				alert('You cannot select the next buyer when the previous is blank...' );
				form.mandate_buyer_2.focus();return false;
			}
		}
		if (form.mandate_buyer_3.value > 0) {
			if (form.mandate_buyer_1.value === form.mandate_buyer_3.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_3.focus();return false;}
			if (form.mandate_buyer_2.value === form.mandate_buyer_3.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_3.focus();return false;}
		}
		if (form.mandate_buyer_3.value == 0) {
			if (form.mandate_buyer_4.value > 0  ||  form.mandate_buyer_5.value > 0  ) {
				alert('You cannot select the next buyer when the previous is blank...' );
				form.mandate_buyer_3.focus();return false;
			}
		}
		if (form.mandate_buyer_4.value > 0) {
			if (form.mandate_buyer_1.value === form.mandate_buyer_4.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_4.focus();return false;}
			if (form.mandate_buyer_2.value === form.mandate_buyer_4.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_4.focus();return false;}
			if (form.mandate_buyer_3.value === form.mandate_buyer_4.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_4.focus();return false;}
		}
		if (form.mandate_buyer_4.value == 0) {
			if (form.mandate_buyer_5.value > 0) {
				alert('You cannot select the next buyer when the previous is blank...' );
				form.mandate_buyer_4.focus();
				return false;
			}
		}
		if (form.mandate_buyer_5.value > 0) {
			if (form.mandate_buyer_1.value === form.mandate_buyer_5.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_5.focus();return false;}
			if (form.mandate_buyer_2.value === form.mandate_buyer_5.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_5.focus();return false;}
			if (form.mandate_buyer_3.value === form.mandate_buyer_5.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_5.focus();return false;}
			if (form.mandate_buyer_4.value === form.mandate_buyer_5.value) {alert('Sorry, you cannot enter the same buyer twice...' );form.mandate_buyer_5.focus();return false;}
		}
		
	}
	if( isEmpty( form.mandate_title ) ){
		alert('Please enter the title.' );
		form.mandate_title.focus();
		return false;
	}
	
	if( isEmpty( form.mandate_price ) && notChecked(form.mandate_price_grille) ){
		alert('Please EITHER enter the price (no spaces or decimals) \nOR leave it as 0 and tick the checkbox for `Prix selon grille`.\n\n(error - no price or checkbox)' );
		form.mandate_price.focus();
		return false;
	}
	else {
		if( notChecked(form.mandate_price_grille) ){
			if( (form.mandate_price.value == 0) ){
				alert('Please EITHER enter the price (no spaces or decimals) \nOR leave it as 0 and tick the checkbox for `Prix selon grille` (not both).\n\n(error - no checkbox and no price (price is 0)' );
				form.mandate_price.focus();
				return false;
			}
			if( isNumbers( form.mandate_price.value ) ){
				alert('Please EITHER enter the price (no spaces or decimals) \nOR leave it as 0 and tick the checkbox for `Prix selon grille` (not both).\n\n(error - no checkbox, but price is not just numbers)' );
				form.mandate_price.focus();
				return false;
			}
		}
		else {
			if( (form.mandate_price.value != 0 ) ){
				alert('Please EITHER enter the price (no spaces or decimals) \nOR leave it as 0 and tick the checkbox for `Prix selon grille` (not both).\n\n(error - checkbox, but price is not 0)' );
				form.mandate_price.focus();
				return false;
			}
		}
	}
	
	if( (form.mandate_commission_rate.value == 0) ){
		if( (form.mandate_commission_fixed.value == 0) ){
			alert('Please enter the commission (EITHER percentage OR fixed, not both)' );
			form.mandate_commission_rate.focus();
			return false;
		}
	}
	if( (form.mandate_commission_rate.value > 0) ){
		if( (form.mandate_commission_fixed.value > 0) ){
			alert('Please enter the commission (EITHER percentage OR fixed, not both)' );
			form.mandate_commission_rate.focus();
			return false;
		}
	}
	if( (form.mandate_p1_months.value == 0) ){
		alert('Please indicate the number of months for period A.' );
		form.mandate_p1_months.focus();
		return false;
	}
	if( isEmpty( form.mandate_place_signed ) ){
		alert('Please enter the place of signature.' );
		form.mandate_place_signed.focus();
		return false;
	}
	return true;
}

function submitProsId( form ){
    if( isEmpty( form.pros_id ) ){
        alert('please choose a prospect..' );
        return false;
    }
    return true;
}

function submitPropId( form ){
    if( isEmpty( form.prop_id ) ){
        alert('please choose a property..' );
        return false;
    }
    return true;
}

function checkClientLogIn( form, msg1, msg2, msg3 ){
    if( isEmpty( form.pros_em ) ){
        alert(msg1);
        form.pros_em.focus();
        return false;
    }
    if( notValidEmail( form.pros_em ) ){
        alert(msg1);
        form.pros_em.focus();
        return false;
    }
    if( isEmpty( form.pros_pw ) ){
        alert(msg2);
        form.pros_pw.focus();
        return false;
    }
    if ( form.captcha_input != null) {
    	if( isEmpty( form.captcha_input ) ){
        	alert(msg3);
        	form.captcha_input.focus();
        	return false;
        }
    }
    return true;
}

function checkLogIn( form ){
    if( isEmpty( form.user_em ) ){
        alert('please enter your email address..' );
        form.user_em.focus();
        return false;
    }
    if( notValidEmail( form.user_em ) ){
        alert('please enter your email address..' );
        form.user_em.focus();
        return false;
    }
    if( isEmpty( form.key ) ){
        alert('please enter your password..' );
        form.key.focus();
        return false;
    }
    return true;
}

function checkUploadFile( form) {
	if ( isEmpty( form.userfile ) ) {
		alert( 'please select the file' );
		return false;
	}
	else {
		if ( form.filename ) {
			if (form.userfile.value.indexOf('\\' + form.filename.value)!=-1) {}
			else {
				alert( 'the name of your file is not valid \n\nIt must be (' + form.filename.value + ')' );
				return false;
			}
		}
	}
	return true;
}

//various checks on transfer, stopping and warning at the first it finds
function checkTransfer( form, userlang ) {

	// Please tell us what time (hour) your flight is due to arrive. = Veuillez nous indiquer l’heure d’arrivée de votre vol.
	if ( isEmpty( form.transfer_arrival_hour ) ) {
		if (userlang == "fr") {
	        	alert('(error - arrival hour)\n\nVeuillez nous indiquer l’heure d’arrivée de votre vol.\nMerci.' );
	        }
	        else {
	        	alert('(error - arrival hour)\n\nPlease tell us what time your flight is due to arrive.\nThank you.' );
	        }
	        form.transfer_arrival_hour.focus();
	        return false;
	}
	// Please tell us what (you mean exactly ??? i.e. with minutes) time (minute) your flight is due to arrive. = Veuillez nous indiquer l’heure exacte (minutes) d’arrivée de votre vol.
	if ( isEmpty( form.transfer_arrival_minute ) ) {
		if (userlang == "fr") {
        		alert('(error - arrival minute)\n\nVeuillez nous indiquer l’heure exacte d’arrivée de votre vol.\nMerci.' );
        	} 
        	else {
        		alert('(error - arrival minute)\n\nPlease tell us the precise time your flight is due to arrive.\nThank you.' );
        	}
        	form.transfer_arrival_minute.focus();
     	   	return false;
    	}
	// Please tell us your arrival flight number. = Veuillez nous indiquer le numéro de votre vol aller.
	if ( isEmpty( form.transfer_arrival_flight ) ) {
		if (userlang == "fr") {
        		alert('(error - arrival number)\n\nVeuillez nous indiquer le numéro de votre vol aller.\nMerci.' );
        	} else {
        		alert('(error - arrival number)\n\nPlease tell us your arrival flight number.\nThank you.' );
        	}
        	form.transfer_arrival_flight.focus();
        	return false;
    	}
	// Please tell us what time (hour) your flight is due to depart. = Veuillez nous indiquer l’heure de départ de votre vol. 
	if ( isEmpty( form.transfer_departure_hour ) ) {
		if (userlang == "fr") {
        		alert('(error - departure hour)\n\n= Veuillez nous indiquer l’heure de départ de votre vol.\nMerci.' );
        	} else {
        		alert('(error - departure hour)\n\nPlease tell us what time (hour) your flight is due to depart.\nThank you.' );
        	}
        	form.transfer_departure_hour.focus();
        	return false;
    	}
	// Please tell us what time (minute) your flight is due to depart. = Veuillez nous indiquer l’heure exacte (minutes) de départ de votre vol.
	if ( isEmpty( form.transfer_departure_minute ) ) {
		if (userlang == "fr") {
        		alert('(error - departure minute)\n\nVeuillez nous indiquer l’heure exacte (minutes) de départ de votre vol.\nMerci.' );
        	} else {
        		alert('(error - departure minute)\n\nPlease tell us the precise time your flight is due to depart.\nThank you.' );
        	}
        	form.transfer_departure_minute.focus();
        	return false;
    	}
	// Please tell us your departure flight number. = Veuillez nous indiquer le numéro de votre vol retour.
	if ( isEmpty( form.transfer_departure_flight ) ) {
		if (userlang == "fr") {
        		alert('(error - departure number)\n\nVeuillez nous indiquer le numéro de votre vol retour.\nMerci.' );
        	} else {
        		alert('(error - departure number)\n\nPlease tell us your departure flight number.\nThank you.' );
        	}
        	form.transfer_departure_flight.focus();
        	return false;
    	}

	// Oops! Your departure and arrival flight numbers are the same! = Attention ! Vos numéros de vol aller et retour sont identiques !
	if ( form.transfer_arrival_flight.value == form.transfer_departure_flight.value ) {
		if (userlang == "fr") {
		        alert('(error - departure = arrival number)\n\nOops! Your departure and arrival flight numbers are the same!.' );
		} else {
			alert('(error - departure = arrival number)\n\nOops! Your departure and arrival flight numbers are the same!.' );
		}
		form.transfer_arrival_flight.focus();
        	return false;
    	}
    	return true;
}

//check file is selected
//check filename
function checkUploadJPG( form ){
    if( isEmpty( form.file2upload ) ){
    	if (form.filename1.value == form.filename2.value){
    		alert( 'please browse to the file to upload (' + form.filename1.value + ')');
    	}
        else {
        	alert( 'please browse to the file to upload (' + form.filename1.value + ' or ' + form.filename2.value + ')');
        }
        form.file2upload.focus();
        return false;
    }
    if (form.filename1.value == form.filename2.value){
	    var str = form.file2upload.value;
		var pos = str.lastIndexOf(form.filename1.value);
		if (pos == -1) {
		alert( 'the filename must be ' + form.filename1.value);
			return false;
		}
    }
    if (form.filename1.value != form.filename2.value){
	    var str = form.file2upload.value;
		var pos = str.lastIndexOf(form.filename1.value);
		var pos2 = str.lastIndexOf(form.filename2.value);
		if ((pos == -1) && (pos2 == -1)) {
			alert( 'the filename must be ' + form.filename1.value + ' or ' + form.filename2.value);
			return false;
		}
    }
    return true;
}

function checkProspectSendMany( form ){
    if( isEmpty( form.mail_message ) ){
        alert('message cannot be blank.' );
        return false;
    }
    if( isEmpty( form.mail_subject ) ){
        alert('subject cannot be blank.' );
        return false;
    }
    return true;
}

// TODO find way to validate all fields are not empty

function checkProspectSendOne( form ){
	if( notValidEmail( form.mail_to ) ){
		alert('\'To\' value is not a valid email address..' );
		form.mail_cc.focus();
		return false;
	}
    if( isEmpty( form.mail_message ) ){
        alert('message cannot be blank.' );
        return false;
    }
    if( isEmpty( form.mail_subject ) ){
        alert('subject cannot be blank.' );
        return false;
    }
    return true;
}

function checkUpdateMeta( form ){
    if( isEmpty( form.meta_t) ){
        alert('meta title cannot be blank.' );
        return false;
    }
    if( isEmpty( form.meta_d ) ){
        alert('meta description cannot be blank.' );
        return false;
    }
    if( isEmpty( form.meta_k ) ){
        alert('meta keywords cannot be blank.' );
        return false;
    }
    return true;
}

function checkUpdateLanguage( form ){
    if( isEmpty( form.tran_id ) ){
        alert('id cannot be blank.' );
        return false;
    }
    if( isEmpty( form.tran_en ) ){
        alert('english translation cannot be blank.' );
        return false;
    }
    if( isEmpty( form.tran_fr ) ){
        alert('french translation cannot be blank.' );
        return false;
    }
    return true;
}

function checkSendMessageEN( form ){
    if( notValidEmail( form.sender ) ){
        alert('Please enter your email address, so we can reply to you.' );
        form.sender.focus();
        return false;
    }
    if( isEmpty( form.message ) ){
    	alert('Please enter your message.');
        form.message.focus();
        return false;
    }
    return true;
}

function checkSendMessageFR( form ){
    if( notValidEmail( form.sender ) ){
        alert('(fr)Please enter your email address, so we can reply to you.' );
        form.sender.focus();
        return false;
    }
    if( isEmpty( form.message ) ){
    	alert('(fr)Please enter your message.');
        form.message.focus();
        return false;
    }
    return true;
}

function checkDeleteGlossary( form ){
    if( isEmpty( form.glossary_id ) ){
        alert('please choose an entry to delete.' );
        return false;
    }
    return true;
}

function checkDeleteToDo( form ){
    if( isEmpty( form.todo_id ) ){
        alert('please choose an action to delete.' );
        return false;
    }
    return true;
}

function checkDeleteFAQ( form ){
    if( isEmpty( form.faq_id ) ){
        alert('please choose an entry to delete.' );
        return false;
    }
    return true;
}

function checkAddGlossary( form ){
    if( isEmpty( form.glossary_ref ) ){
        alert('new entry cannot be blank.' );
        return false;
    }
    return true;
}

function checkAddToDo( form ){
    if( isEmpty( form.todo_description ) ){
        alert('new description cannot be blank.' );
        return false;
    }
    if( isEmpty( form.todo_user ) ){
        alert('please choose a name' );
        return false;
    }
    return true;
}

function checkAddFAQ( form ){
    if( isEmpty( form.faq_q_en ) ){
        alert('please enter a new english question.' );
        return false;
    }
    return true;
}

function checkUpdateGlossary( form ){
    if( isEmpty( form.todo_description ) ){
        alert('new description cannot be blank.' );
        return false;
    }
    return true;
}

function checkUpdateToDo( form ){
    if( isEmpty( form.todo_user ) ){
        alert('you need to choose a person cannot be blank.' );
        return false;
    }
    if( isEmpty( form.glossary_en ) ){
        alert('english explanation cannot be blank - please enter (en) if you don\'t have one yet.' );
        return false;
    }
    return true;
}

function checkUpdateFAQ( form ){
    if( isEmpty( form.faq_id ) ){
        alert('entry cannot be blank.' );
        return false;
    }
    if( isEmpty( form.faq_q_en ) ){
        alert('english question cannot be blank - please enter (en) if you don\'t have one yet.' );
        return false;
    }
    if( isEmpty( form.faq_a_en ) ){
        alert('english answer cannot be blank - please enter (en) if you don\'t have one yet.' );
        return false;
    }
    if( isEmpty( form.faq_q_fr ) ){
        alert('french question cannot be blank - please enter (fr) if you don\'t have one yet.' );
        return false;
    }
    if( isEmpty( form.faq_a_fr ) ){
        alert('french answer cannot be blank - please enter (fr) if you don\'t have one yet.' );
        return false;
    }
    return true;
}

function AreYouSure(form, question) {
	// ask are you sure, yes no
	var answer = confirm (question);
	if (answer) {return true;}
	else {return false;}
}

function checkAddProp( form ){
    if( isEmpty( form.prop_ref ) ){
        alert('reference cannot be blank.' );
        return false;
    }
    if( isNumbersAndLowercaseLetters( form.prop_ref.value ) ){
        alert('reference must be composed of numbers 0-9 and/or lowercase letters a-z' );
        return false;
    }
    if ((form.prop_ref.value.length < 3) || (form.prop_ref.value.length > 20)){
        alert('reference length must be between 3 and 20 characters long' );
        return false;
    }
    if( (form.prop_mandate.value == 0) ){
    	alert('Please select the mandate.' );
	form.prop_mandate.focus();
	return false;
    }
    return true;
}

//checks everything, stopping and warning at the first it finds
function checkBookingStepA_en( form ){
    if( notValidEmail( form.lead_email ) ){
	alert( 'Please enter a valid email address, to which we will send confirmation of your booking' );
        form.lead_email.focus();
        return false;
    }
    return true;
}

//checks everything, stopping and warning at the first it finds
function checkBooking_en( form ){

    if( isEmpty( form.lead_name ) ){
        alert( 'Please enter your First Name.' );
        form.lead_name.focus();
        return false;
    }
    if( isEmpty( form.lead_surname ) ){
        alert( 'Please enter your Surname.' );
        form.lead_surname.focus();
        return false;
    }
  
    var phonemsg = 'including the international and local dialling code\n\nFor example:\n +33 1 23456789 for a French number\n +44 123 456789 for a UK number\n\n..allowed characters are : +0123456789 and spaces';

    if( form.hometel.value.length < 10 ){
        alert( 'Please enter your Home telephone number ' + phonemsg );
        form.hometel.focus();
        return false;
    }
    else {
	if( isPhoneNumber( form.hometel.value ) ){
	    alert( 'Please enter your Home telephone number ' + phonemsg );
	    form.hometel.focus();
	    return false;
        }
    }

    if( form.mobtel.value.length < 10 ){
        alert( 'Please enter your Mobile telephone number ' + phonemsg );
        form.mobtel.focus();
        return false;
    }
    else {
	if( isPhoneNumber( form.mobtel.value ) ){
	    alert( 'Please enter your Mobile telephone number ' + phonemsg );
	    form.mobtel.focus();
	    return false;
	}
    }

   
    if( isEmpty( form.address1 ) ){
	alert( 'Please enter your Address - (address line 1 is a required field.)' );
        form.address1.focus();
        return false;
    }
    if( isEmpty( form.address2 ) ){
	alert( 'Please enter your Address - (address line 2 is a required field.)' );
        form.address2.focus();
        return false;
    }
    if( isEmpty( form.postcode ) ){
	alert( 'Please enter your full postcode.' );
        form.postcode.focus();
        return false;
    }
    if( isEmpty( form.country ) ){
        alert( 'Please select your Country.' );
        form.country.focus();
        return false;
    }
    if( isEmpty( form.lang ) ){
	alert('Please indicate your preferred language.' );
        form.lang.focus();
        return false;
    }
    if( isEmpty( form.source ) ){
	alert('Please let us know where you heard about us.' );
        form.source.focus();
        return false;
    }
    if( isEmpty( form.cc_type ) ){
	alert( 'Please select your Credit Card Type.' );
        form.cc_type.focus();
        return false;
    }
    if( isEmpty( form.cc_name ) ){
	alert( 'Please enter the Cardholder Name (as displayed on the card).' );
        form.cc_name.focus();
        return false;
    }
    if( isEmpty( form.cc_no ) ){
	alert( 'Please enter the Card Number (16 digits, no spaces).' );
        form.cc_no.focus();
        return false;
    }
    if ((form.cc_no.value.length < 16) || (form.cc_no.value.length > 16)){
	alert( 'Sorry, but the Card Number should be 16 numbers, no spaces.' );
        form.cc_no.focus();
        return false;
    }
    if (isNumbers(form.cc_no.value)){
	alert( 'Sorry, but the Card Number should be 16 numbers, no spaces.' );
        form.cc_no.focus();
        return false;
    }
    if ((form.cc_3.value.length < 3) || (form.cc_3.value.length > 3)){
    	alert( 'Please enter the 3 digit Security Code (the last 3 digits on the back of your card).' );
        form.cc_3.focus();
        return false;
    }
    if (isNumbers(form.cc_3.value)){
	alert( 'Please enter the 3 digit Security Code (the last 3 digits on the back of your card).' );
        form.cc_3.focus();
        return false;
    }
    if( isEmpty( form.cc_expm ) ){
	alert( 'Please select the Card Expiry Month.' );
        form.cc_expm.focus();
        return false;
    }
    if( isEmpty( form.cc_expy ) ){
	alert( 'Please select the Card Expiry Year.' );
        form.cc_expy.focus();
        return false;
    }
    if( notChecked( form.accept ) ){
	alert( 'Sorry, but you need to agree to our Booking Conditions.' );
        form.accept.focus();
        return false;
    }    
    return true;
}

//checks everything, stopping and warning at the first it finds
function checkBooking_fr( form ){

    if( isEmpty( form.lead_name ) ){
        alert( 'Merci d’indiquer votre prénom.' );
        form.lead_name.focus();
        return false;
    }
    if( isEmpty( form.lead_surname ) ){
        alert( 'Merci d’indiquer votre nom.' );
        form.lead_surname.focus();
        return false;
    }
  
    var phonemsg = 'en incluant l’indicatif international et local.\r\nPar exemple : +33 1 23456789 pour un numéro français\r\n+44 123 456789 pour un numéro anglais\r\n – les caractères autorisés sont : +0123456789 et les espaces';

    if( form.hometel.value.length < 10 ){
        alert( 'Merci d’indiquer le numéro de téléphone de votre domicile ' + phonemsg );
        form.hometel.focus();
        return false;
    }
    else {
	if( isPhoneNumber( form.hometel.value ) ){
	    alert( 'Merci d’indiquer le numéro de téléphone de votre domicile ' + phonemsg );
	    form.hometel.focus();
	    return false;
        }
    }

    if( form.mobtel.value.length < 10 ){
        alert( 'Merci d’indiquer votre numéro de portable ' + phonemsg );
        form.mobtel.focus();
        return false;
    }
    else {
	if( isPhoneNumber( form.mobtel.value ) ){
	    alert( 'Merci d’indiquer votre numéro de portable ' + phonemsg );
	    form.mobtel.focus();
	    return false;
	}
    }
   
    if( isEmpty( form.address1 ) ){
	alert( 'Merci d’indiquer votre adresse – (les lignes 1 et 2 de sont des champs obligatoires)' );
        form.address1.focus();
        return false;
    }
    if( isEmpty( form.address2 ) ){
	alert( 'Merci d’indiquer votre adresse – (les lignes 1 et 2 de sont des champs obligatoires)' );
        form.address2.focus();
        return false;
    }
    if( isEmpty( form.postcode ) ){
	alert( 'Merci d’indiquer votre code postal complet.' );
        form.postcode.focus();
        return false;
    }
    if( isEmpty( form.country ) ){
        alert( 'Merci de sélectionner votre pays.' );
        form.country.focus();
        return false;
    }
    if( isEmpty( form.lang ) ){
	alert('Merci de préciser votre langue préférée.' );
        form.lang.focus();
        return false;
    }
    if( isEmpty( form.source ) ){
	alert('Merci de bien vouloir nous indiquer comment vous nous avez connus.' );
        form.source.focus();
        return false;
    }
    if( isEmpty( form.cc_type ) ){
	alert( 'Merci de sélectionner le type de carte de crédit.' );
        form.cc_type.focus();
        return false;
    }
    if( isEmpty( form.cc_name ) ){
	alert( 'Merci de préciser le nom du titulaire de la carte (comme indiqué sur la carte).' );
        form.cc_name.focus();
        return false;
    }
    if( isEmpty( form.cc_no ) ){
	alert( 'Merci d’indiquer le numéro de carte (16 chiffres, sans espaces).' );
        form.cc_no.focus();
        return false;
    }
    if ((form.cc_no.value.length < 16) || (form.cc_no.value.length > 16)){
	alert( 'Merci de bien vouloir ressaisir votre numéro de carte bancaire qui doit comporter 16 chiffres et aucun espace.' );
        form.cc_no.focus();
        return false;
    }
    if (isNumbers(form.cc_no.value)){
	alert( 'Merci de bien vouloir ressaisir votre numéro de carte bancaire qui doit comporter 16 chiffres et aucun espace.' );
        form.cc_no.focus();
        return false;
    }
    if ((form.cc_3.value.length < 3) || (form.cc_3.value.length > 3)){
    	alert( 'Merci d’indiquer le code de sécurité à 3 chiffres (les 3 derniers chiffres qui figurent au dos de votre carte).' );
        form.cc_3.focus();
        return false;
    }
    if (isNumbers(form.cc_3.value)){
	alert( 'Merci d’indiquer le code de sécurité à 3 chiffres (les 3 derniers chiffres qui figurent au dos de votre carte).' );
        form.cc_3.focus();
        return false;
    }
    if( isEmpty( form.cc_expm ) ){
	alert( 'Merci de sélectionner le mois d’expiration de votre carte.' );
        form.cc_expm.focus();
        return false;
    }
    if( isEmpty( form.cc_expy ) ){
	alert( 'Merci de sélectionner l’année d’expiration de votre carte.' );
        form.cc_expy.focus();
        return false;
    }
    if( notChecked( form.accept ) ){
	alert( 'Merci de bien vouloir vous conformer à nos conditions concernant la procédure de réservation.' );
        form.accept.focus();
        return false;
    }    
    return true;
}

function ShowHideMenubar(divID) {
	var myDiv = document.getElementById(divID);
	if(myDiv.style.display == "none" || myDiv.style.display=="") {
		myDiv.style.display = "block";
	}
	else {
		myDiv.style.display = "none";
	}
	return null;
}

//-->