
var focusHere;
var error;
var why = "";
var alertText;



//Check valid name at least two characters 
function checkName (strng) {
error = "";
alertText = "Please enter a valid name. \n";
focusHere = eval("document.form.name");
//remove spaces and convert to lowercase to check has at least two characters...
strng=strng.toLowerCase();
while (strng.indexOf(" ") > -1)
strng = strng.replace(" ","");
if (strng.length<2) {
   error = alertText;
}
//check valid chars only a-z and accented ones

var nameFilter  =  /^[a-z\u00C0-\u00ff]+$/;
if (!(nameFilter.test(strng))) { 
       error = alertText;
	   }


return error;
}



//Check valid email
function checkEmail (strng) {
error="";
alertText = "Please enter a valid email address. \n";
focusHere = eval("document.form.email");
strng=strng.toLowerCase();
if (strng == "") {
   error = alertText;
}

    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(strng))) { 
       error = alertText;
    }
    else {
//test email for illegal characters
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
         if (strng.match(illegalChars)) {
          error = "The email address contains illegal characters.\n";
       }
    }
return error;    
}




// phone number - strip out delimiters and check for 10 digits

function checkPhone (strng) {
error="";
alertText = "Please enter a valid phone number. Numbers only \n";
focusHere = eval("document.form.telephone");

while (strng.indexOf(" ") > -1)
strng = strng.replace(" ","");



    if (isNaN(strng)) {
       error = alertText;
    }
	
    if ((strng.length < 10)) {
	error = alertText;
    } 
		   return error;
}


function checkMob (strng) {
error="";
alertText = "Please enter a valid mobile number. Numbers only \n";
focusHere = eval("document.form.mobile");

while (strng.indexOf(" ") > -1)
strng = strng.replace(" ","");



    if (isNaN(strng)) {
	alert("a");
       error = alertText;
    }
	
    if (strng.length < 10) {
	alert("b");
	error = alertText;
    } 
 return error;
}


function checkAdd (strng) {
//not required field and is free form text entry so don't bother checking..

}




function checkDate (strng){

error="";
alertText = "Please enter a valid date (DD/MM/YYYY format), or leave blank.\n";
focusHere = eval("document.form.date");

//ensure it's in dd/mm/yy format and it's a valid date after todays date if a prob reset value back to DD/MM/YY format
var dateToday=new Date();
var eventDate=new Date();

if (strng.length!=10)
{
error = alertText;
return error;
}

//split string up
eventDD = strng.substring(0, 2);
slash1 = strng.substring(2, 3);
eventMM = strng.substring(3, 5);
slash2 = strng.substring(5, 6);
eventYYYY= strng.substring(6, 10);

//basic checks
//are they forward slashes..
if (slash1.search(/[\/]/)||slash2.search(/[\/]/)==-1)
{
error = alertText;
return error;
}


//are they numbers...
if(isNaN(eventDD)||isNaN(eventMM)||isNaN(eventYYYY))
{
error = alertText;
return error;
}


//is dd between 1 and 31 
if (eventDD<1||eventDD>31)
{
error = alertText;
return error;
}

//is mm between 1 and 12 
if (eventMM<1||eventMM>12)
{
error = alertText;
return error;
}

//next we need to put it into date format and check it's valid date and greater than todays date.


// check if month is to have 31 days...
if ((eventMM==04 || eventMM==06 || eventMM==09 || eventMM==11) && eventDD==31) 
{
error = alertText;
return error;
}


// check for february 29th
if (eventMM == 02) {
var isleap = (eventYYYY % 4 == 0 && (eventYYYY % 100 != 0 || eventYYYY % 400 == 0));
if (eventDD>29 || (eventDD==29 && !isleap)) 
{
error = alertText;
return error;
}
}

//month is 0 - 11 so amend accordingly parseInt will strip off leading 0...
var eventMMInt;

eventMMInt=parseInt(eventMM-1);
//set date parameters
eventDate.setDate(eventDD);
eventDate.setMonth(eventMMInt); 
eventDate.setFullYear(eventYYYY)

//finally is it greater than today's date
if (eventDate<dateToday)
{
error = alertText;
return error;
}
return error;
}




function checkGuests (strng) {
error="";
alertText = "Please enter a valid number of guests, or leave blank.\n";
focusHere = eval("document.form.guests");
    if (isNaN(strng)) {
       error = alertText;
	   //set to blank to give user option of not entering info in field...
	   //focusHere.value="";
    }
	
return error;

}

function checkInfo (strng) {
//not required field and is free form text entry so don't bother checking...
}


function checkAll() {
	why=checkName(document.form.name.value);
	if (!doAlert(why)) return false;
	
	why=checkEmail(document.form.email.value);
	if (!doAlert(why)) return false;
	 
		 if (document.form.telephone.value.length>0)
		 {
    		why = checkPhone(document.form.telephone.value);
			if (!doAlert(why)) return false;
		}
		
		
		if (document.form.mobile.value.length>0)
	 {
	why = checkMob(document.form.mobile.value);
		if (!doAlert(why)) return false;
		}
	


//not required field and is free form text entry so don't bother checking..
/*	if (document.form.address.value.length>0)
		 {
    why = checkAdd(document.form.address.value);
	if (!doAlert(why)) return false;
		}
		*/
	
		if (document.form.date.value.length>1)
		{
	why = checkDate(document.form.date.value);
	if (!doAlert(why)) return false;
		}
		
	
	if (document.form.guests.value.length>0)
		 {
	why = checkGuests(document.form.guests.value);
	if (!doAlert(why)) return false;
		}
	
	//not required field and is free form text entry so don't bother checking..
	/*if (document.form.information.value.length>0)
		 {
	why = checkInfo(document.form.information.value);
	if (!doAlert(why)) return false;
		}
				*/
				
     /* why += isEmpty(theForm.notempty.value);
  why += isDifferent(theForm.different.value);
    for (i=0, n=theForm.radios.length; i<n; i++) {
        if (theForm.radios[i].checked) {
            var checkvalue = theForm.radios[i].value;
            break;
        } 
    }
    why += checkRadio(checkvalue);
    why += checkDropdown(theForm.choose.selectedIndex);*/
return true;
}

function doAlert(why){
if (why != "") {
       alert(why);
	   focusHere.focus();
	   return false;
    }
	
	return true;
}


function doThis(){
if(checkAll()){
document.form.action='FormToEmail.php';
document.form.submit();
}}


