// Declaring required variables
var digits = "0123456789";
// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";
// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = phoneNumberDelimiters + "+";
// Minimum no of digits in an international phone no.
var minDigitsInIPhoneNumber = 10;

function isInteger(s)
{   var i;
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
function trim(s)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not a whitespace, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (c != " ") returnString += c;
    }
    return returnString;
}
function stripCharsInBag(s, bag)
{   var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++)
    {   
        // Check that current character isn't whitespace.
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function checkPhone(strPhone){
var bracket=3
strPhone=trim(strPhone)
if(strPhone.indexOf("+")>1) return false
if(strPhone.indexOf("-")!=-1)bracket=bracket+1
if(strPhone.indexOf("(")!=-1 && strPhone.indexOf("(")>bracket)return false
var brchr=strPhone.indexOf("(")
if(strPhone.indexOf("(")!=-1 && strPhone.charAt(brchr+2)!=")")return false
if(strPhone.indexOf("(")==-1 && strPhone.indexOf(")")!=-1)return false
s=stripCharsInBag(strPhone,validWorldPhoneChars);
return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function evalid(str) {

		var at="@"
		var dot="."
		var lat=str.indexOf(at)
		var lstr=str.length
		var ldot=str.indexOf(dot)
		if (str.indexOf(at)==-1){
		   alert("Invalid E-mail!")
		   return false
		}

		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
		   alert("Invalid E-mail!")
		   return false
		}

		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		    alert("Invalid E-mail!")
		    return false
		}

		 if (str.indexOf(at,(lat+1))!=-1){
		    alert("Invalid E-mail!")
		    return false
		 }

		 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		    alert("Invalid E-mail!")
		    return false
		 }

		 if (str.indexOf(dot,(lat+2))==-1){
		    alert("Invalid E-mail!")
		    return false
		 }
		
		 if (str.indexOf(" ")!=-1){
		    alert("Invalid E-mail!")
		    return false
		 }

 		 return true					
	}


function validate1(form){
var packageType_choice = false;
for (counter = 0; counter < form.package_type.length; counter++)
{

if (form.package_type[counter].checked)
packageType_choice = true; 
}

if (!packageType_choice)
{
 alert( "Please select package type." );
 form.package_type[0].focus();
return false;
}

if(form.package_name.value == ""){
  alert("Please insert package name.");
  form.package_name.focus();
  return false;
}

return true;
}

function validate2(form){
if(form.dorm_vday_price.value ==""){
  alert("Please insert weekday's price for dorm");
  form.dorm_vday_price.focus();
  return false;
}

if(form.dorm_vend_price.value ==""){
  alert("Please insert weekend's price for dorm");
  form.dorm_vend_price.focus();
  return false;
}

if(form.dorm_school_price.value ==""){
  alert("Please insert school's price for dorm");
  form.dorm_school_price.focus();
  return false;
}

if(form.dorm_public_price.value ==""){
  alert("Please insert holiday's price for dorm");
  form.dorm_public_price.focus();
  return false;
}

if(form.family_vday_price.value ==""){
  alert("Please insert weekday's price for family");
  form.family_vday_price.focus();
  return false;
}

if(form.family_vend_price.value ==""){
  alert("Please insert weekend's price for family");
  form.family_vend_price.focus();
  return false;
}

if(form.family_school_price.value ==""){
  alert("Please insert school's price for family");
  form.family_school_price.focus();
  return false;
}

if(form.family_public_price.value ==""){
  alert("Please insert holiday's price for family");
  form.family_public_price.focus();
  return false;
}

if(form.quad_vday_price.value ==""){
  alert("Please insert weekday's price for quad");
  form.quad_vday_price.focus();
  return false;
}

if(form.quad_vend_price.value ==""){
  alert("Please insert weekend's price for quad");
  form.quad_vend_price.focus();
  return false;
}

if(form.quad_school_price.value ==""){
  alert("Please insert school's price for quad");
  form.quad_school_price.focus();
  return false;
}

if(form.quad_public_price.value ==""){
  alert("Please insert holiday's price for quad");
  form.quad_public_price.focus();
  return false;
}

if(form.tri_vday_price.value ==""){
  alert("Please insert weekday's price for triple");
  form.tri_vday_price.focus();
  return false;
}

if(form.tri_vend_price.value ==""){
  alert("Please insert weekend's price for triple");
  form.tri_vend_price.focus();
  return false;
}

if(form.tri_school_price.value ==""){
  alert("Please insert school's price for triple");
  form.tri_school_price.focus();
  return false;
}

if(form.tri_public_price.value ==""){
  alert("Please insert holiday's price for triple");
  form.tri_public_price.focus();
  return false;
}

if(form.twin_vday_price.value ==""){
  alert("Please insert weekday's price for twin");
  form.twin_vday_price.focus();
  return false;
}

if(form.twin_vend_price.value ==""){
  alert("Please insert weekend's price for twin");
  form.twin_vend_price.focus();
  return false;
}

if(form.twin_school_price.value ==""){
  alert("Please insert school's price for twin");
  form.twin_school_price.focus();
  return false;
}

if(form.twin_public_price.value ==""){
  alert("Please insert holiday's price for twin");
  form.twin_public_price.focus();
  return false;
}

if (form.add_room.value != ""){
    if(form.other_vday_price.value ==""){
        alert("Please insert weekday's price for additional room type");
        form.other_vday_price.focus();
         return false;
      }

    if(form.other_vend_price.value ==""){
        alert("Please insert weekend's price for additional room type");
        form.other_vend_price.focus();
        return false;
    }
    
    if(form.other_school_price.value ==""){
        alert("Please insert school's price for additional room type");
        form.other_school_price.focus();
        return false;
    }

    if(form.other_public_price.value ==""){
       alert("Please insert holiday's price for additional room type");
       form.other_public_price.focus();
        return false;
    }
}

return true;
}

function validate_reserve(form){
var land_choice = false;
var equip_choice = false;

  if(form.sender.value == ""){
      alert("Please insert your name.");
      form.sender.focus();
      return false;
  }
  
  if(form.address.value == ""){
      alert("Please insert address.");
      form.address.focus();
      return false;
  }
  
  if(form.country.value == ""){
      alert("Please select your country.");
      form.country.focus();
      return false;
  }
  
  if(form.telephone.value == ""){
      alert("Please insert your contact number.");
      form.telephone.focus();
      return false;
  }
  
  else if(checkPhone(form.telephone.value) == false){
    alert("Invalid Contact Number!");
    form.telephone.focus();
    return false;
}
  if(form.email.value == ""){
      alert("Please insert your email address.");
      form.email.focus();
      return false;
  }
  
  else if(evalid(form.email.value) == false){ 
    form.email.focus();
    return false;
}
 
if (form.packType.value=="")
{
  alert("Please select 1 package.");
 form.packType.focus();
 return false;
}

 if (form.packType.value=="3 Days 2 Nights Diving Package" || form.packType.value=="4 Days 3 Nights Diving Package")
{
   for (counter1 = 0; counter1 <form.div_equip.length; counter1++)
    {
    if (form.div_equip[counter1].checked)
        equip_choice = true; 
    }

    if (!equip_choice)
    {
      alert( "Please state whether you have diving equipment." );
      form.div_equip[0].focus();
      return false;
    }
    
}

 /*if(!form.roomType1.checked && !form.roomType2.checked && !form.roomType3.checked && !form.roomType4.checked && !form.roomType5.checked){
      alert("Please select at least 1 room type.");
      form.roomType1.focus();
      return false;
  }*/
  
  if(form.roomType1.checked){
      if(form.numDorm.value == ""){
      alert("Please state the number of room.");
      form.numDorm.focus();
      return false;
      }
  }
  
  if(form.roomType2.checked){
      if(form.numFamily.value == ""){
      alert("Please state the number of room.");
      form.numFamily.focus();
      return false;
      }
  }
  
  if(form.roomType3.checked){
      if(form.numQuad.value == ""){
      alert("Please state the number of room.");
      form.numQuad.focus();
      return false;
      }
  }
  
  if(form.roomType4.checked){
      if(form.numTri.value == ""){
      alert("Please state the number of room.");
      form.numTri.focus();
      return false;
      }
  }
  
  if(form.roomType5.checked){
      if(form.numTwin.value == ""){
      alert("Please state the number of room.");
      form.numTwin.focus();
      return false;
      }
  }
  
  if(form.adult_no.value=="0"){
    alert("Please select the number of adult");
    form.adult_no.focus();
    return false;
  
  }
  if(form.trans_type.value==""){
    alert("Please select the mode of transport");
    form.trans_type.focus();
    return false;
  }
  
   for (counter = 0; counter <form.land.length; counter++)
{

if (form.land[counter].checked)
land_choice = true; 
}

if (!land_choice)
{
 alert( "Please state whether land transport is needed." );
 form.land[0].focus();
return false;
}

  return true;
}

function validate_enquiry(form){
if(form.sender.value == ""){
      alert("Please insert your name.");
      form.sender.focus();
      return false;
  }

else if(form.contact.value == ""){
      alert("Please insert your contact number.");
      form.contact.focus();
      return false;
  }
  
else if(form.email.value == ""){
      alert("Please insert your email address.");
      form.email.focus();
      return false;
  }

else if(form.enquiry.value == ""){
      alert("Please insert your enquiry.");
      form.enquiry.focus();
      return false;
  }
return true;
}

function check_pass(form){
 if (form.old_pass.value == ""){
 alert ("The old password cannot be empty.");
  form.old_pass.focus();
  return false;
 }

 else if (form.new_pass.value == ""){
 alert ("The new password cannot be empty.");
  form.new_pass.focus();
  return false;
 }
 
  else if (form.cfm_pass.value == ""){
 alert ("The confirmation password cannot be empty.");
  form.cfm_pass.focus();
  return false;
 }
 else if(form.new_pass.value != form.cfm_pass.value ){
  alert ("The new password does not match with the confirmation password.\nPlease enter new password again.");
  form.cfm_pass.focus();
  return false;
 }
return true;

}