﻿//  Generic Phone Validation routines | international number  
//---------------------------------------------------------
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 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 checkInternationalPhone(strPhone)
{
	var phoneNumberDelimiters = "()- ";
	var validWorldPhoneChars = phoneNumberDelimiters + "+";
	var minDigitsInIPhoneNumber = 10;
	
	s=stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}


//-----------------------------------------------------
//   Validate booking form
//-----------------------------------------------------
function ioBookings()
{

  strValue=document.booking.thisdate.value;
  var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}(\-|\/|\.)\d{4}$/

  //check to see if in correct format
  if(!objRegExp.test(strValue))
  {
  	alert ("Please insert a valid date!"); 
    return false; //doesn't match pattern, bad date
   } 
    
  if(document.booking.thistime.selectedIndex==0)
	{ 
		alert("Please select a time option!");
		return false;
	}
	 
  strValue=document.booking.altdate.value;
  var objRegExp = /^\d{1,2}(\-|\/|\.)\d{1,2}(\-|\/|\.)\d{4}$/

  //check to see if in correct format
  if(!objRegExp.test(strValue))
  {
  	alert ("Please insert a valid alternative date!"); 
    return false; //doesn't match pattern, bad date
   }   
	
	if(document.booking.customer.value.length==0)
	{ 
		alert("Please insert your Name!");
		return false;
	}
  
	if(document.booking.age.value.length==0)
	{ 
		alert("Please insert your Name!");
		return false;
	}	
	
	if(document.booking.alttime.selectedIndex==0)
	{ 
		alert("Please select a alternative time option!");
		return false;
	}
	
	if(document.booking.reside[0].checked==true)
	{
			if(document.booking.exp1hotel.value.length==0)
			{
				alert("Please insert the name of the hotel!");
				return false
			}
			
			if(document.booking.exp1address.value.length==0)
			{
				alert("Please insert a valid address!");
				return false
			}
			
			//  Hotel Telephone Validation-----------------
				
			var Phone=document.booking.exp1phone;
		
			if ((Phone.value==null)||(Phone.value=="")){
			alert("Please Enter a Valid Mobile Number")
			return false
			}

			if (checkInternationalPhone(Phone.value)==false){
			alert("Please Enter a Valid Phone Number")
			return false
			}
			
			//---------------------------------------------------
			
			if(document.booking.exp1city.value.length==0)
			{
				alert("Please insert a valid city!");
				return false
			}
			
			if(document.booking.exp1name.value.length==0)
			{
				alert("Please insert a valid booking name!");
				return false
			}
			
	} else {
			if(document.booking.exp2door.value.length==0)
			{
				alert("Please insert the name on the door!");
				return false
			}
			
			if(document.booking.exp2building.value.length==0)
			{
				alert("Please insert the name of the building!");
				return false
			}
			
			if(document.booking.exp2address.value.length==0)
			{
				alert("Please insert a valid address!");
				return false
			}
			
			if(document.booking.exp2zip.value.length==0)
			{
				alert("Please insert a valid zip code!");
				return false
			}
			
			if(document.booking.exp2city.value.length==0)
			{
				alert("Please insert a valid city!");
				return false
			}
	}		
	
  	
  var newst=document.booking.email.value;
  if (newst.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) == -1)
  	{  alert ("Please insert a valid email address!"); 
        return false;
	}
	
	//  Telephone Validation-----------------
				
			var Phone=document.booking.phone;
		
			if ((Phone.value==null)||(Phone.value=="")){
			alert("Please Enter a Valid Mobile Number")
			return false
			}

			if (checkInternationalPhone(Phone.value)==false){
			alert("Please Enter a Valid Phone Number")
			return false
			}
			
			//---------------------------------------------------
	
	if(document.booking.massage.selectedIndex==0)
	{ 
		alert("Please select a massage!");
		return false;
	}
		
	return true
}