// JavaScript Document
function init(){
		document.getElementById('loading1').style.display = 'none';
		document.getElementById('loading').style.display = 'none';
	}
function validateLogin(){
	var error='';
	var focus = Array();
	var i=0;
	//alert(document.getElementById('book_login').value);
	if(document.getElementById('book_user_login').value=='')
   {
      document.getElementById('book_login_label').style.color='red';
	  focus[i++]='book_login';
	  error = 'yes';
	  //alert("entered");
	 
   }	
   if(document.getElementById('book_pass').value=='')
   {
      document.getElementById('book_pass_label').style.color='red';
	  focus[i++]='book_pass';
	  error = 'yes';
	 
   }
   if(error!='')
   {
     //document.getElementById('error').innerHTML = error;
	  f = "document.form3."+focus[0]+".focus()";
	  eval(f);
	  //alert("error");
      return false;
   }
   else
   {
	   	//alert("noerror");
     return true;
	}
}
function loginValidation(){
		var error='';
		var focus = Array();
		var i=0;
		if(document.getElementById('user_name').value ==''){
			document.getElementById('user_name_label').style.color='red';
			focus[i++]='user_name';
			error = 'yes';
		}
		if(document.getElementById('password').value ==''){
			document.getElementById('password_label').style.color='red';
			focus[i++]='password';
			error = 'yes';
		}
		if(error!=''){
			f = "document.login_form."+focus[0]+".focus()";
			eval(f);
			return false;
		}
		else{
			return true;
		}
}
function validateHotelSearch(form,city,cin,cout){
		var error='';
		var focus = Array();
		var i=0;
		
		if(document.getElementById(city).value ==''){
			document.getElementById(city+'_label').style.color='red';
			focus[i++]=city;
			error = 'yes';
		}
		if(document.getElementById(cin).value ==''){
			document.getElementById(cin+'_label').style.color='red';
			focus[i++]=cin;
			error = 'yes';
		}
		if(document.getElementById(cout).value ==''){
			document.getElementById(cout+'_label').style.color='red';
			focus[i++]=cout;
			error = 'yes';
		}
		if(document.getElementById(cin).value !='' && document.getElementById(cout).value !=''){
			var date1 = (document.getElementById(cin).value).split('/');
			var date2 = (document.getElementById(cout).value).split('/');
			var millennium =new Date(date1[2], date1[0], date1[1]); //Month is 0-11 in JavaScript
			var today=new Date(date2[2], date2[0], date2[1]);
			var one_day=1000*60*60*24;
			var diff = Math.ceil((today.getTime()-millennium.getTime())/(one_day));
			if(diff<=0){
				alert("Check-Out date must be greater than Check-In date");
				document.getElementById(cout+'_label').style.color='red';
				focus[i++]=cout;
				error = 'yes';
			}
			
		}
		if(error!=''){
			f = "document."+form+"."+focus[0]+".focus()";
			eval(f);
			return false;
		}
		else{
			return true;
		}
	}

function hotelSort(){
	var x = document.getElementById("sort_box").selectedIndex;
	window.location = "/hotel_info.php?sort="+x;
}
function hotelLandmark(){
	var dest_id = document.getElementById("landmark").value;
	window.location = "/hotel_info.php?destid="+dest_id;
}
function gotoReview(txt,room){
		//alert(txt+room);
		var error='';
		var focus = Array();
		var i=0;

		if(document.getElementById('email').value==''){
			document.getElementById('email_label').style.color='red';
			focus[i++]='email';
			error = "true";
		}
		if(document.getElementById('first_name').value==''){
			document.getElementById('first_name_label').style.color='red';
			error += "First Name Field is Empty<br>";
			focus[i++]='email';
		}
		if(document.getElementById('last_name').value==''){
			document.getElementById('last_name_label').style.color='red';
			error += "Last Name Field is Empty<br>";
			focus[i++]='email';
		}
		if(document.getElementById('cities').value == ''){
			document.getElementById('city_label').style.color='red';
			error += "Please Choose city<br>";
			focus[i++]='cities';
		}
		if(document.getElementById('phone1').value == ''){
			document.getElementById('phone1_label').style.color='red';
			error += "Home Phone Fiels is Empy<br>";
			focus[i++]='phone1';
		}
		if(isNaN(document.getElementById('phone1').value)){
			document.getElementById('phone1_label').style.color='red';
			error += "Home Phone Number should be Numeric\n"; 
			focus[i++]='phone1';
		} 
		if(document.getElementById('phone2').value == ''){
			document.getElementById('phone2_label').style.color='red';
			error += "Alternative Phone Fiels is Empty<br>";
			focus[i++]='phone2';
		}
		if(isNaN(document.getElementById('phone2').value)){
			document.getElementById('phone2_label').style.color='red';
			error += "Alternative Phone Number should be Numeric\n"; 
			focus[i++]='phone2';
		} 
		if(document.getElementById('add1').value == ''){
			document.getElementById('add1_label').style.color='red';
			error += "Home Phone Fiels is Empy<br>";
			focus[i++]='add1';
		}
		for(var j=1;j<=room;j++){
			if(document.getElementById("room_first_name"+j).value == ''){
				document.getElementById('room_first_name_label'+j).style.color='red';
				error += "room first name Fiels is Empty<br>";
				focus[i++]='room_first_name'+j;
			}
			if(document.getElementById("room_last_name"+j).value == ''){
				document.getElementById('room_last_name_label'+j).style.color='red';
				error += "room first name Fiels is Empty<br>";
				focus[i++]='room_last_name'+j;
			}
		}
		if(document.getElementById('cno').value == ''){
			document.getElementById('card_number_label').style.color='red';
			error += "Credit card number Fiels is Empty<br>";
			focus[i++]='cno';
		}
		if(document.getElementById('card_name').selectedIndex == 0){
			document.getElementById('card_name_label').style.color='red';
			error += "Credit card number Fiels is Empty<br>";
			focus[i++]='card_name';
		}
		/*if((document.getElementById('cno').value).length < 16){
			alert("Card Number Must be 16 characters");
			document.getElementById('card_number_label').style.color='red';
			error += "Credit card number Fiels is Empty<br>";
			focus[i++]='cno';
		} */
		if(document.getElementById('month').selectedIndex == 0 || document.getElementById('year').selectedIndex == 0){
			document.getElementById('month_label').style.color='red';
			error += "Please Expiration<br>";
			focus[i++]='month';
		}
		if(document.getElementById('csecurity').value == ''){
			document.getElementById('csecurity_label').style.color='red';
			error += "Credit card security code Fiels is Empty<br>";
			focus[i++]='cno';
		}
		if(document.getElementById('condition').checked == false){
			document.getElementById('condition_label').style.color='red';
			error += "Please Read the Condition and Agree<br>";
			focus[i++]='condition';
		}
		if(validateEmail(document.getElementById('email').value) == 'fail'){
			document.getElementById('email_label').style.color='red';
			error += 'Please enter a valid Primary email address\n';
			focus[i++]='email';
		}
		if(document.getElementById('month').value == '00' || document.getElementById('year').value == '00'){
			document.getElementById('month_label').style.color='red';
			error += 'Please Select Card Expiry Date\n';
			focus[i++]='month';			
		}else{
			var d = new Date();
			var curr_month = d.getMonth();
			var curr_year = d.getFullYear();

			if(parseInt(document.getElementById('year').value)>=curr_year){
							
				if(parseInt(document.getElementById('month').value)>curr_month){
					//alert(curr_month+","+curr_year);
				}else{
						document.getElementById('month_label').style.color='red';
						error += 'Please Select Card Expiry Date\n';
						focus[i++]='month';	
				}
			}else{
				document.getElementById('month_label').style.color='red';
				error += 'Please Select Card Expiry Date\n';
				focus[i++]='year';			
			}
		}
		if(checkCreditCard(document.getElementById('card_name').value,document.getElementById('cno').value)==false){
			alert("please enter valid card number");
			document.getElementById('csecurity_label').style.color='red';
			error += "Credit card security code Fiels is Empty<br>";
			focus[i++]='cno';
		}
		if(txt==''){
			if(document.getElementById('pass1').value == ''){
				document.getElementById('pass_label').style.color='red';
				error += "Please choose password<br>";
				focus[i++]='pass1';
			}
			if(document.getElementById('pass2').value == ''){
				document.getElementById('pass2_label').style.color='red';
				error += "Please Re-enter password<br>";
				focus[i++]='pass2';
			}
			if(document.getElementById('pass1').value != document.getElementById('pass2').value){
				document.getElementById('pass_label').style.color='red';
				document.getElementById('pass2_label').style.color='red';
				error += "Passwords are not Matched<br>";
				focus[i++]='pass1';
			}
		}
		if(error!=''){
			f = "document.form1."+focus[0]+".focus()";
			eval(f);
			return false;
		}else{
			//alert(document.getElementById('room_first_name1').value);
			if(document.getElementById('hide2').style.display=='none'){
				var d1=document.getElementById('hide2').parentNode
				var d2=document.getElementById('hide2');
				d1.removeChild(d2); 
			}
			return true;
		}
	}
var ccErrorNo = 0;
var ccErrors = new Array ()

ccErrors [0] = "Unknown card type";
ccErrors [1] = "No card number provided";
ccErrors [2] = "Credit card number is in invalid format";
ccErrors [3] = "Credit card number is invalid";
ccErrors [4] = "Credit card number has an inappropriate number of digits";

function checkCreditCard (cardname, cardnumber) {
     
  // Array to hold the permitted card characteristics
  var cards = new Array();
  // Define the cards we support. You may add addtional card types.
  
  //  Name:      As in the selection box of the form - must be same as user's
  //  Length:    List of possible valid lengths of the card number for the card
  //  prefixes:  List of possible prefixes for the card
  //  checkdigit Boolean to say whether there is a check digit
  
  cards [0] = {name: "VI", 
               length: "13,16", 
               prefixes: "4",
               checkdigit: true};
  cards [1] = {name: "CA", 
               length: "16", 
               prefixes: "51,52,53,54,55",
               checkdigit: true};
  cards [2] = {name: "DC", 
               length: "14,16", 
               prefixes: "305, 36, 38, 54,55",
               checkdigit: true};
  cards [3] = {name: "CB", 
               length: "14", 
               prefixes: "300,301,302,303,304,305",
               checkdigit: true};
  cards [4] = {name: "AX", 
               length: "15", 
               prefixes: "34,37",
               checkdigit: true};
  cards [5] = {name: "DS", 
               length: "16", 
               prefixes: "6011,622,64,65",
               checkdigit: true};
  cards [6] = {name: "JCB", 
               length: "16", 
               prefixes: "35",
               checkdigit: true};
  cards [7] = {name: "enRoute", 
               length: "15", 
               prefixes: "2014,2149",
               checkdigit: true};
  cards [8] = {name: "O", 
               length: "16,18,19", 
               prefixes: "6334, 6767",
               checkdigit: true};
  cards [9] = {name: "Switch", 
               length: "16,18,19", 
               prefixes: "4903,4905,4911,4936,564182,633110,6333,6759",
               checkdigit: true};
  cards [10] = {name: "TO", 
               length: "12,13,14,15,16,18,19", 
               prefixes: "5018,5020,5038,6304,6759,6761",
               checkdigit: true};
  cards [11] = {name: "E", 
               length: "16", 
               prefixes: "417500,4917,4913,4508,4844",
               checkdigit: true};
  cards [12] = {name: "LaserCard", 
               length: "16,17,18,19", 
               prefixes: "6304,6706,6771,6709",
               checkdigit: true};
               
  // Establish card type
  var cardType = -1;
  for (var i=0; i<cards.length; i++) {

    // See if it is this card (ignoring the case of the string)
    if (cardname.toLowerCase () == cards[i].name.toLowerCase()) {
      cardType = i;
      break;
    }
  }
  
  // If card type not found, report an error
  if (cardType == -1) {
     ccErrorNo = 0;
     return false; 
  }
   
  // Ensure that the user has provided a credit card number
  if (cardnumber.length == 0)  {
     ccErrorNo = 1;
     return false; 
  }
    
  // Now remove any spaces from the credit card number
  cardnumber = cardnumber.replace (/\s/g, "");
  
  // Check that the number is numeric
  var cardNo = cardnumber
  var cardexp = /^[0-9]{13,19}$/;
  if (!cardexp.exec(cardNo))  {
     ccErrorNo = 2;
     return false; 
  }
       
  // Now check the modulus 10 check digit - if required
  if (cards[cardType].checkdigit) {
    var checksum = 0;                                  // running checksum total
    var mychar = "";                                   // next char to process
    var j = 1;                                         // takes value of 1 or 2
  
    // Process each digit one by one starting at the right
    var calc;
    for (i = cardNo.length - 1; i >= 0; i--) {
    
      // Extract the next digit and multiply by 1 or 2 on alternative digits.
      calc = Number(cardNo.charAt(i)) * j;
    
      // If the result is in two digits add 1 to the checksum total
      if (calc > 9) {
        checksum = checksum + 1;
        calc = calc - 10;
      }
    
      // Add the units element to the checksum total
      checksum = checksum + calc;
    
      // Switch the value of j
      if (j ==1) {j = 2} else {j = 1};
    } 
  
    // All done - if checksum is divisible by 10, it is a valid modulus 10.
    // If not, report an error.
    if (checksum % 10 != 0)  {
     ccErrorNo = 3;
     return false; 
    }
  }  

  // The following are the card-specific checks we undertake.
  var LengthValid = false;
  var PrefixValid = false; 
  var undefined; 

  // We use these for holding the valid lengths and prefixes of a card type
  var prefix = new Array ();
  var lengths = new Array ();
    
  // Load an array with the valid prefixes for this card
  prefix = cards[cardType].prefixes.split(",");
      
  // Now see if any of them match what we have in the card number
  for (i=0; i<prefix.length; i++) {
    var exp = new RegExp ("^" + prefix[i]);
    if (exp.test (cardNo)) PrefixValid = true;
  }
      
  // If it isn't a valid prefix there's no point at looking at the length
  if (!PrefixValid) {
     ccErrorNo = 3;
     return false; 
  }
    
  // See if the length is valid for this card
  lengths = cards[cardType].length.split(",");
  for (j=0; j<lengths.length; j++) {
    if (cardNo.length == lengths[j]) LengthValid = true;
  }
  
  // See if all is OK by seeing if the length was valid. We only check the 
  // length if all else was hunky dory.
  if (!LengthValid) {
     ccErrorNo = 4;
     return false; 
  };   
  // The credit card is in the required format.
  return true;
}

/*============================================================================*/

function validateEmail(email)
{
	var emailRegEx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if(email.match(emailRegEx)){
	return 'success';
	}else{
	return 'fail';
	}
}
function displayLogin(){
	var current = document.getElementById('book_login').style.display;
	if(current == 'none'){
	document.getElementById('book_login').style.display = 'block';
	}else{
	document.getElementById('book_login').style.display = 'none';
	}
}
function checkUser()
{
		if(document.getElementById('email').value == ''){
				//document.getElementById('div1').style.color="red";
				//document.getElementById('div1').innerHTML="Email should not be Empty";
				return;
		}
		if(validateEmail(document.getElementById('email').value) == 'fail'){
				document.getElementById('div1').style.color="red";
				document.getElementById('div1').innerHTML="Invalid Email Address";
				f = "document.form1.email.focus()";
				eval(f);
				return;
		}
		   if(window.XMLHttpRequest)
		  {
			 obj=new XMLHttpRequest();
			   
		  }
		  else
		  {
		   obj=new ActiveXObject("MSXml2.XMLHttp");
		  }
		  txt = document.getElementById('email').value;
		  page="includes/user.php?"+txt;
		  ////alert(page);
		  obj.open("post",page,true);
		  obj.onreadystatechange=fun4;
		  obj.send(null);
	
}
function fun4()
{
  if(obj.readyState==4)
  {
     op=obj.responseText;
	 if(op==1)
	 {
	  
		document.getElementById('div1').style.color="red";
		document.getElementById('div1').innerHTML="Username already exist, Forget your password? <a href='/forget_password.php'>Click Here</a>";
						f = "document.form1.email.focus()";
				eval(f);
	 }
	 else
	 {
	   
		document.getElementById('div1').style.color="green";
		document.getElementById('div1').innerHTML="User Name available";
	 }
  }
}
	function validateUserRegistration(txt){
		var error='';
		var focus = Array();
		var i=0;

		if(document.getElementById('email_address1').value==''){
			document.getElementById('email_label1').style.color='red';
			focus[i++]='email_address1';
			error = "true";
		}
		if(txt == 'new'){
			if(document.getElementById('email_address2').value==''){
				document.getElementById('email_label2').style.color='red';
				focus[i++]='email_address2';
				error = "true";
			}
			if(document.getElementById('email_address1').value != document.getElementById('email_address2').value){
				document.getElementById('email_label1').style.color='red';
				focus[i++]='email_address1';
				error = "true";
			}else{
				if(validateEmail(document.getElementById('email_address1').value) == 'fail'){
					document.getElementById('email_label1').style.color='red';
					error += 'Please enter a valid Primary email address\n';
					focus[i++]='email_address1';
				}
			}
			if(document.getElementById('password1').value==''){
				document.getElementById('pass_label1').style.color='red';
				focus[i++]='password1';
				error = "true";
			}
			if(document.getElementById('password2').value==''){
				document.getElementById('pass_label2').style.color='red';
				focus[i++]='password2';
				error = "true";
			}
			if(document.getElementById('password1').value != document.getElementById('password2').value){
				document.getElementById('pass_label1').style.color='red';
				focus[i++]='password1';
				error = "true";
			}
			if(document.getElementById('dropcountry').selectedIndex == 0){
				document.getElementById('country_label').style.color='red';
				error += "Please Choose Country<br>";
				focus[i++]='dropcountry';
			}
			if(document.getElementById('cities').value==''){
				document.getElementById('city_label').style.color='red';
				focus[i++]='cities';
				error = "true";
			}
		}
		if(txt=="edit"){
			if(document.getElementById('country').value==''){
				document.getElementById('country_label').style.color='red';
				focus[i++]='country';
				error = "true";
			}
			
			if(document.getElementById('city').value==''){
				document.getElementById('city_label').style.color='red';
				focus[i++]='city';
				error = "true";
			}
		}
		if(document.getElementById('first_name').value==''){
			document.getElementById('first_name_label').style.color='red';
			focus[i++]='first_name';
			error = "true";
		}
		if(document.getElementById('last_name').value==''){
			document.getElementById('last_name_label').style.color='red';
			focus[i++]='last_name';
			error = "true";
		}
		
		/*if(document.getElementById('zip').value==''){
			document.getElementById('pcode_label').style.color='red';
			focus[i++]='zip';
			error = "true";
		} */
		if(document.getElementById('phone1').value==''){
			document.getElementById('phone_label1').style.color='red';
			focus[i++]='phone1';
			error = "true";
		}
		if(isNaN(document.getElementById('phone1').value)){
			document.getElementById('phone_label1').style.color='red';
			error += "Alternative Phone Number should be Numeric\n"; 
			focus[i++]='phone1';
		} 
		 
		if(document.getElementById('address1').value==''){
			document.getElementById('add1_label').style.color='red';
			focus[i++]='address1';
			error = "true";
		}
		if(error!=''){
			f = "document.form2."+focus[0]+".focus()";
			eval(f);
			return false;
		}
		else{
			return true;
		}
	}
