///---------------------------------------------------------------------------------
/// CompareDate: compare two input dates
/// Usage: 
///		- date1, date2: two input date
///		- type: EQ 1 if the input date in format mm/dd/yyyy
/// Return:
///		- 1 : if date1>date2
///		- 2 : if date1<date2
///		- 3 : if date1=date2
///---------------------------------------------------------------------------------
function CompareDate(date1,date2,type){
	if (!type) type=0;
	var dateInput=(type==1)?1:0;
	var dateType=new Array();
	dateType[0]=/^\d{1,2}(\-|\/|\.|\s)\d{1,2}(\-|\/|\.|\s)\d+$/;	//date format dd mm yyyy
	dateType[1]=/^\d{1,2}(\-|\/|\.|\s)\d{1,2}(\-|\/|\.|\s)\d+$/;	//date format mm dd yyyy

	if (date1.search(dateType[dateInput])==-1||date2.search(dateType[dateInput])==-1) return 0;
	
	var dateArr1=date1.split("/");
	var dateArr2=date2.split("/");
	
	if (dateArr1.length!=3||dateArr2.length!=3) return 0;
	
	if (dateInput==1){
		var year1 = dateArr1[2];
		var year2 = dateArr2[2];
		var month1 = dateArr1[0];
		var month2 = dateArr2[0];
		var day1 = dateArr1[1];
		var day2 = dateArr2[1];
	}else{
		var year1 = dateArr1[2];
		var year2 = dateArr2[2];
		var month1 = dateArr1[1];
		var month2 = dateArr2[1];
		var day1 = dateArr1[0];
		var day2 = dateArr2[0];
	}

	if (day1>31 || day2>31 || month1>12 || month2>12) return 0;
	if (CompareNumber(year1, year2) != 3) return CompareNumber(year1, year2);
	if (CompareNumber(month1, month2) != 3) return CompareNumber(month1, month2);
	if (CompareNumber(day1, day2) != 3) return CompareNumber(day1, day2);
	return 3;
}

///---------------------------------------------------------------------------------
/// compareNumber: compare two input numbers
/// Usage: 
///---------------------------------------------------------------------------------
function CompareNumber(num1, num2){
	if (parseFloat(num1)>parseFloat(num2)){
		return 1;
	}else if (parseFloat(num1)<parseFloat(num2)){
		return 2;
	}else{
		return 3;
	}
}

///---------------------------------------------------------------------------------
/// IsBlank: check if an element value is blank or not
/// Usage: 
///---------------------------------------------------------------------------------
function IsBlank(value){
	return (value.length == 0);
}
///---------------------------------------------------------------------------------
/// IsDate: check if the input string is a valid date value
/// Usage: 
///---------------------------------------------------------------------------------
function IsDate(s) {
	if (s.search(/^([0]?[1-9]|[1|2][0-9]|[3][0|1])[.\/-]([0]?[1-9]|[1][0-2])[.\/-]([0-9]{4}|[0-9]{2})$/) != -1)
		return true ;
	return false ;
}
///---------------------------------------------------------------------------------
/// IsNumeric: check if the input string is a numeric value
/// Usage: 
///---------------------------------------------------------------------------------
function IsNumeric(s){
	return !isNaN(s);
}
///---------------------------------------------------------------------------------
/// IsEmail: check if the specified string is a valid email address
/// Usage: 
///---------------------------------------------------------------------------------
function IsEmail(s){
	if (s.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]{2,6}$/) != -1)
		return true ;
	return false ;
}
///---------------------------------------------------------------------------------
/// IsValidName: check if the specified string is only included [a-z][0-9][-_]
/// Usage: 
///---------------------------------------------------------------------------------
function IsValidName(s){
	return ( (s.search(/^[A-Za-z0-9]+([-_]+)?/) != -1)	);	
}

///---------------------------------------------------------------------------------
/// CheckForm	: Check the form element data
/// Usage			: arr_ctrl = (invalid_test_expr, message [,control_name]) 
///---------------------------------------------------------------------------------
function CheckForm(frm, arr_ctrl) {
	for(var i=0; i<arr_ctrl.length; i++) {
		expr = eval( arr_ctrl[i][0] );
		if( expr ) {
			alert( arr_ctrl[i][1] ) ;
			if( arr_ctrl[i][2] )
				eval( "frm."  + arr_ctrl[i][2] ).focus() ;
			return false ; //== Error
		}
	}
	return true ; //== OK
}

function check(frm)
{
indexval=0 

if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Your Name');
      frm.elements[indexval].focus();
      return false;
    } 

	indexval=indexval+1
	myOption = -1;
	for (i=frm.sex.length-1; i > -1; i--) {
	if (frm.sex[i].checked) {
	myOption = i; i = -1;
	}
	}
	if (myOption == -1) {
	alert("Please Select Your Gender");
	frm.elements[indexval].focus();
	return false;
	}

	indexval=indexval+2
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Your Age');
      frm.elements[indexval].focus();
      return false;
    } 
	if(isNaN(frm.elements[indexval].value))
  {
    alert("Please Enter a Number for Your Age");
    frm.elements[indexval].value="";
    frm.elements[indexval].focus();
    return false; 
  }	 

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Your Address');
      frm.elements[indexval].focus();
      return false;
    } 

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Your Telephone/Mobile');
      frm.elements[indexval].focus();
      return false;
    } 
	
	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Your Email');
      frm.elements[indexval].focus();
      return false;
    } 	

if (invalidemail(frm.elements[indexval].value))
    {
  
       alert("Email Address Should Be Of Type 'abc@site.com' or 'abc@site.co.uk'");
       frm.elements[indexval].focus();
       return false;
    }

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Your Occupation');
      frm.elements[indexval].focus();
      return false;
    } 

	indexval=indexval+1
    if(frm.elements[indexval].value=="Select")
    { 
	  alert('Please Select Marital Status');
      frm.elements[indexval].focus();
      return false;
    } 	

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Your Nationality');
      frm.elements[indexval].focus();
      return false;
    } 

	indexval=indexval+1
    if(frm.elements[indexval].value=="Select")
    { 
	  alert('Please Select Accommodation Type');
      frm.elements[indexval].focus();
      return false;
    } 	

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter The No. of Days Stay');
      frm.elements[indexval].focus();
      return false;
    }
	if(isNaN(frm.elements[indexval].value))
  {
    alert("Please Enter a Number for No. of Days Stay");
    frm.elements[indexval].value="";
    frm.elements[indexval].focus();
    return false; 
  }	 
  if (parseInt(frm.elements[indexval].value)<7)
  {
    alert("Please Enter Minimum 7 Days for No. of Days Stay");
    frm.elements[indexval].value="";
    frm.elements[indexval].focus();
    return false; 
  }	 	

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Select Your Arrival Date');
      frm.elements[indexval].focus();
      return false;
    } 	

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Select Your Departure Date');
      frm.elements[indexval].focus();
      return false;
    } 	
	
	var today = new Date();
	var dd = today.getDate();
	var mm = today.getMonth()+1;
	var yy = today.getFullYear();

	if (IsDate(frm.arr_date.value)) {
	}
	else {
	alert("Correct the date value(s). The valid date format is dd/mm/yyyy.");
	frm.arr_date.focus();
	return false;
	}
	if (IsDate(frm.dep_date.value)) {
	}
	else {
	alert("Correct the date value(s). The valid date format is dd/mm/yyyy.");
	frm.dep_date.focus();
	return false;
	}
	
	var date1=editdate(frm.arr_date.value);
	var date2=editdate(frm.dep_date.value);

	function editdate(mydate) {
	 // Get the start date
	var start_date = mydate;
	// Break up the start date - using the delimiter "/" - into an array of strings
	start_date = start_date.split("/")
	// Access each element in the array.
	year = start_date[2];
	month = start_date[1];
	day = start_date[0];
	month = month.replace(/^[0]+/g,"");
	day = day.replace(/^[0]+/g,"");
	mydate = day+"/"+month+"/"+year;
	return(mydate);
	}
	
	var res = CompareDate(date1,dd+"/"+mm+"/"+yy,0);
	if (res==0){
		alert("Correct the date value(s). The valid date format is dd/mm/yyyy.");
		frm.arr_date.focus();
		return(false);
	}
	if (res==2){
		alert("Sorry, you can not select a past date.");
		frm.arr_date.focus();
		return(false);
	}

	var res = CompareDate(date1,date2,0);
	if (res==0){
		alert("Correct the date value(s). The valid date format is dd/mm/yyyy.");
		frm.arr_date.focus();
		return(false);
	}
	if (res!=2){
		alert("The check-in date must before check-out date.");
		frm.arr_date.focus();
		return(false);
	}

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Your Height');
      frm.elements[indexval].focus();
      return false;
    } 	

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Your Weight');
      frm.elements[indexval].focus();
      return false;
    } 	

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Your Appetite History');
      frm.elements[indexval].focus();
      return false;
    } 	

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Your Sleep History');
      frm.elements[indexval].focus();
      return false;
    } 	

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Your Urination History');
      frm.elements[indexval].focus();
      return false;
    } 	

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Your Bowels History');
      frm.elements[indexval].focus();
      return false;
    } 	

	indexval=indexval+1
    if(frm.elements[indexval].value=="")
    { 
	  alert('Please Enter Health History Details');
      frm.elements[indexval].focus();
      return false;
    } 	

	indexval=indexval+1
    if(frm.elements[indexval].value=="Select")
    { 
	  alert('Please Select Whether You Have Undergone Surgery');
      frm.elements[indexval].focus();
      return false;
    } 	
    if(frm.elements[indexval].value=="Yes")
    {
       indexval=indexval+1
	   if(frm.elements[indexval].value=="")
       { 
	    alert('Please Enter Surgery Details');
        frm.elements[indexval].focus();
        return false;
       } 	
    }
	else {
		indexval=indexval+1
	}

	indexval=indexval+1
    if(frm.elements[indexval].value=="Select")
    { 
	  alert('Please Select Whether You Have Any Skin Disease');
      frm.elements[indexval].focus();
      return false;
    } 	
    if(frm.elements[indexval].value=="Yes")
    {
       indexval=indexval+1
	   if(frm.elements[indexval].value=="")
       { 
	    alert('Please Enter Skin Disease Details');
        frm.elements[indexval].focus();
        return false;
       } 	
    }
	else {
		indexval=indexval+1
	}

	indexval=indexval+1
    if(frm.elements[indexval].value=="Select")
    { 
	  alert('Please Select Whether You Have Past Heart Problems');
      frm.elements[indexval].focus();
      return false;
    } 	
    if(frm.elements[indexval].value=="Yes")
    {
       indexval=indexval+1
	   if(frm.elements[indexval].value=="")
       { 
	    alert('Please Enter Heart Problem Details');
        frm.elements[indexval].focus();
        return false;
       } 	
    }
	else {
		indexval=indexval+1
	}

	indexval=indexval+1
    if(frm.elements[indexval].value=="Select")
    { 
	  alert('Please Select Whether You Are Taking Any Medicines');
      frm.elements[indexval].focus();
      return false;
    } 	
    if(frm.elements[indexval].value=="Yes")
    {
       indexval=indexval+1
	   if(frm.elements[indexval].value=="")
       { 
	    alert('Please Enter Medicine Details');
        frm.elements[indexval].focus();
        return false;
       } 	
    }
	else {
		indexval=indexval+1
	}

	indexval=indexval+1
    if(frm.elements[indexval].value=="Select")
    { 
	  alert('Please Select Whether You Can Walk One Kilometer');
      frm.elements[indexval].focus();
      return false;
    } 	
    if(frm.elements[indexval].value=="No")
    {
       indexval=indexval+1
	   if(frm.elements[indexval].value=="")
       { 
	    alert('Please Enter Details Of Why You Can\'t Walk One Kilometer');
        frm.elements[indexval].focus();
        return false;
       } 	
    }
	else {
		indexval=indexval+1
	}

	indexval=indexval+1
	if (frm.elements[indexval].checked == false)
    {
      alert("Please accept the Terms & Conditions" );
      frm.elements[indexval].focus();
      return false;
    }

return true;

}


function invalidemail(s)
{

  res=0;
  len=s.length;

   for(i=0;i<len;i++)
     { 
       if(s.charAt(i)=='@' )
	 
   for(j=i;j<len;j++)
            {
              if(s.charAt(j)=='.')
                  res=1;
	
             }
     }  
if (res==0)
    return true; 
  else
     return false; 
   
}
