//Show number of days for each month
function showDayNum()
{
	var opt = new Object();
	var holdVal;
	var holdMonth; 
	var tmpYear, holdYear;
	var tmpMaxDate;
	
	opt = new Date();
	tmpYear = opt.getFullYear();
	tmpDate = opt.getDate();
	tmpMonth = opt.getMonth();
	
	var months = new Array('January','February','March','April','May','June','July','August', 'September','October','November','December');
	

    tmpMaxDate = getMonthDateNum(tmpMonth, tmpYear);
	for(var i=tmpDate; i <= tmpMaxDate; i++){
		holdVal = holdVal + "<Option value = '" + i + "'>" + i + "</Option>";
	}
	
	var tmp;
	for(var j = tmpMonth; j < 12; j++){
		tmp =  months[j];
		
		holdMonth = holdMonth + "<option value = '" + tmp + "'>" + tmp + "</option>";
	}
	
	
	var val;
	val = tmpYear + 5;
	for(var q = tmpYear; q <= val; q++){
		holdYear = holdYear + "<option value = '" + q + "'>" + q + "</option>";
	}
	
	var adultNum;
	for(var p = 1; p < 6 ; p++)
	{
		adultNum = adultNum + "<option value = '" + p + "'>" + p + "</option>";
	}
	
	var childrenNum;
	for(var k = 0; k < 6 ; k++)
	{
		childrenNum = childrenNum + "<option value = '" + k + "'>" + k + "</option>";
	}
	
	document.getElementById("dropNum").innerHTML = "Date &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Month &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Year<br><select id = 'Date'>" + holdVal + "</select>";
    document.getElementById("monthVal").innerHTML = "<select id = 'Month' onchange='changeDateValue("+ tmpMonth +");'>" + holdMonth + "</select>";
	document.getElementById("yearVal").innerHTML = "<select id = 'Year' onchange='changeMonthValue("+ tmpYear + ")'>" + holdYear + "</select>";
	document.getElementById("checkOut").innerHTML = "<br>Nights&nbsp;";
	document.getElementById("numDays").innerHTML = "<input type='text' id='night'>";
	document.getElementById("adultVal").innerHTML = "<br>Adult  &nbsp;&nbsp; &nbsp;&nbsp; Child<br><select id = 'Adult'>" + adultNum + "</select>";
	document.getElementById("childVal").innerHTML = " &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;<select id = 'Children'>" + childrenNum + "</select>";	
   
}

function changeMonthValue(currentYear){
var opt = new Object();
	var holdVal;
	var holdMonth; 
	var tmpYear, holdYear;
	var tmpMaxDate;
	var selectedYear;
	
	opt = new Date();
	tmpYear = opt.getFullYear();
	tmpDate = opt.getDate();
	tmpMonth = opt.getMonth();
	selectedYear = document.getElementById("Year").selectedIndex + tmpYear;
	if(tmpYear == selectedYear){
		showDayNum();}
	else{	
    		
	var months = new Array('January','February','March','April','May','June','July','August', 'September','October','November','December');
	

    tmpMaxDate = getMonthDateNum(0, tmpYear);
	for(var i=1; i <= tmpMaxDate; i++){
		holdVal = holdVal + "<Option value = '" + i + "'>" + i + "</Option>";
	}
	
	var tmp;
	for(var j = 0; j < 12; j++){
		tmp =  months[j];
		
		holdMonth = holdMonth + "<option value = '" + tmp + "'>" + tmp + "</option>";
	}
  document.getElementById("monthVal").innerHTML = "<select id = 'Month' onchange='changeDateValueForAnotherYear();'>" + holdMonth + "</select>";
  document.getElementById("dropNum").innerHTML = "<span id='textFont'>Date &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Month &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Year</span><br><select id = 'Date'>" + holdVal + "</select>";
	}
}
function changeDateValueForAnotherYear()
{
   var opt = new Object();
	var holdDate;
	var tmpYear, tmpDate, tmpMonth;
	var selectedMonth, holdVal;
	var maxDateVal;
	
    opt = new Date();
	tmpYear = opt.getFullYear();
	tmpDate = opt.getDate();
	tmpMonth = opt.getMonth();

	selectedMonth = document.getElementById("Month").selectedIndex;
	selectedYear = document.getElementById("Year").selectedIndex + tmpYear;
	
	getMonthDateNum(selectedMonth, selectedYear);
	holdDate = 1; 
	maxDateVal = getMonthDateNum(selectedMonth, selectedYear);
   for(var i= holdDate; i <= maxDateVal; i++){
		holdVal = holdVal + "<Option value = '" + i + "'>" + i + "</Option>";
	}
     
		document.getElementById("dropNum").innerHTML = "<span id='textFont'>Date &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Month &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Year</span><br><select id = 'Date'>" + holdVal + "</select>";
}

function changeDateValue(currentMonth)
{
   var opt = new Object();
	var holdDate;
	var tmpYear, tmpDate, tmpMonth;
	var selectedMonth, holdVal;
	var maxDateVal;
	
    opt = new Date();
	tmpYear = opt.getFullYear();
	tmpDate = opt.getDate();
	tmpMonth = opt.getMonth();

	selectedMonth = document.getElementById("Month").selectedIndex + currentMonth;
	selectedYear = document.getElementById("Year").selectedIndex + tmpYear;
	
	getMonthDateNum(selectedMonth, selectedYear);
	if((selectedMonth == currentMonth) && (selectedYear == tmpYear)){
		holdDate = tmpDate;
	}else
	{ holdDate = 1; }
	maxDateVal = getMonthDateNum(selectedMonth, selectedYear);
   for(var i= holdDate; i <= maxDateVal; i++){
		holdVal = holdVal + "<Option value = '" + i + "'>" + i + "</Option>";
	}
     
		document.getElementById("dropNum").innerHTML = "<span id='textFont'>Date &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Month &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Year</span><br><select id = 'Date'>" + holdVal + "</select>";
}
function getMonthDateNum(selMonth, selYear){
	
	switch (selMonth){
	 case 0: //January
	   return 31;
	 break;
	 case 1: //Feburary
	   if(checkLeapYear(selYear) == true){
	      return 29;}
	   else{
	     return 28;}
	 break;
	 case 2: //March
	   return 31
	 break;
	 case 3: //April
	   return 30;
	 break;
	 case 4: //May 
	   return 31; 
	 break;
	 case 5: //June
	   return 30;
	 break;
	 case 6: //July
	   return 31;
	 break;
	 case 7: //August
	   return 31;
	 break;
	 case 8: //September
	 return 30;
	 break;
	 case 9: //October
	   return 31;
	 break;
	 case 10: //Novermber
	   return 30;
	 break;
	 case 11: //December
	   return 31;
	 break;
	 default:
	}
}

function checkLeapYear(yearVal){
	if(((yearVal % 4 == 0) && (yearVal % 100 != 0)) || ((yearVal % 4 == 0) && (yearVal % 100 == 0) && (yearVal % 400 == 0))){
	     return true; }
	else{
		 return false;}
}
//_______________________________________________________________________________________________________________________________________________
//this function pass the current values to the php file in Ajax way and display the response results accordingly
function OpenCalender()
{   
  var i;
  OpenCalender_func:
  for(i=1; i<2 ; i++){
    var chooseIn = new Object();
	var dateT,monthT, yearT, adult, child,str;
	var url, txtRes;
	var tmpsid;
	
	
	chooseIn = window.document;
	dateT  = document.getElementById("Date").value;
	monthT = document.getElementById("Month").value;
	yearT  = document.getElementById("Year").value;
	adult  = document.getElementById("Adult").value;
	child  = document.getElementById("Children").value;				
	stay   = document.getElementById("night").value;
	
	if(isNumber(stay) == false){
	  document.getElementById("checkOut").style.color = "FF0000";
	 
	  break OpenCalender_func;
	 }
	
	tmpsid = Math.random() * 100000000000000000;

	url    = "reservation.php? d=" + dateT;
	url    = url + "&sid=" + tmpsid ;
	url    = url + "&m=" + monthT;
	url    = url + "&y=" + yearT;
	url    = url + "&n=" + stay;
	url    = url + "&a=" + adult;
	url    = url + "&c="  + child; 
	
    document.getElementById("footStyle").style.top = "700px";
	
	document.getElementById("flashPosition").style.left = "260px";
	
	
	dealAjax(url);
	 }
	 return 0;
}

//__________________________________________________________________________________________________________________________________
//_______________________work on handling the Ajax part of the application__________________________________________________________
function dealComment(url){
	 var xmlHttp = getXMLObject();
	 var i, str;
	 if(xmlHttp == null){
		 alert("Cannot perform this action using your browser.");
	 }
	 
	   xmlHttp.open("GET", url, true);
	   xmlHttp.send(null);
	
	if(xmlHttp.readyState == 1){
	    xmlHttp.onreadystatechange=function(){
     	   if(xmlHttp.readyState == 4){
			document.getElementById("CommentArea2").style.display = "block";
		    
			document.getElementById("CommentArea2").innerHTML   = xmlHttp.responseText;
			
		    }
        } 
	}else if(xmlHttp.readyState == 4){
		   var strSplited;
		   var str;
		   strSplited = xmlHttp.responseText.split("</b>");
		    str = " " ;
			for(q= 0; q < strSplited.length; q++){
			 str = str + strSplited[q];
			 
			 
			 }
				//document.getElementById("flashPosition").innerHTML   = str;
		 
	}
   setTimeout("delayedAfter()", 4000);
}

function commenting(){
  var title, content;
  var url, tmpsid;
  title = "No title";//document.getElementById('CommentTitle').value;
  content = document.getElementById('CommentContent').value;
  
  //document.getElementById('CommentTitle').value = "";
   document.getElementById('CommentContent').value ="";
  tmpsid = Math.random() * 100000000000000000;
  url = "comment.php? sid=" + tmpsid;
  url = url + "&t=" + title;
  url = url + "&c=" + content;
  dealComment(url);
  
}


function dealAjax(url){
	var xmlHttp = getXMLObject();
	if(xmlHttp == null){
		alert("Cannot perform this action using your browser.");
	}
	
	xmlHttp.open("GET", url, true);
	xmlHttp.send(null);
	
	
	if(xmlHttp.readyState == 1){
	    xmlHttp.onreadystatechange=function(){
     	   if(xmlHttp.readyState == 4){
			  
		    document.getElementById("dropNum").innerHTML   = xmlHttp.responseText ;
		    document.getElementById("monthVal").innerHTML  = "";
		    document.getElementById("yearVal").innerHTML   = "";
	        document.getElementById("adultVal").innerHTML  = "";
		    document.getElementById("childVal").innerHTML  = "";
			document.getElementById("checkInInformation").innerHTML  = "";
			document.getElementById("checkIn").innerHTML  = "";
			document.getElementById("checkOut").innerHTML  = "";
			document.getElementById("numDays").innerHTML  = "";
         	  }
        	}
	}else if(xmlHttp.readyState == 4){
		   var strSplited;
		   var str;
		   strSplited = xmlHttp.responseText.split("</b>");
		    str = " " ;
			for(q= 0; q < strSplited.length; q++){
			 str = str + strSplited[q];
			 }
				
    		document.getElementById("dropNum").innerHTML   = str;
		    document.getElementById("monthVal").innerHTML  = "";
		    document.getElementById("yearVal").innerHTML   = "";
	        document.getElementById("adultVal").innerHTML  = "";
		    document.getElementById("childVal").innerHTML  = "";
			document.getElementById("checkInInformation").innerHTML  = "";
			document.getElementById("checkIn").innerHTML  = "";
			document.getElementById("checkOut").innerHTML  = "";
			document.getElementById("numDays").innerHTML  = "";
	}

}

//_____________________________________________________________________________________________________________________________________________
//the following function collects all the necessary information from the forms and pass it to confirmReservation.php file in Ajax way
//then display the result accordingly
function reservation()
{
  var i;
  reservation_func:
   for(i=1; i<2; i++){	
	 var chooseIn = new Object();
	 var suite, executive, twin, standard, tmpAddress;
	 var sid;
	 var address, fName, email, fax, otherAddress, tel, emailf;
	 var  url;
	
	 suite = "";
	 //check which room type is selected and number of rooms required
	 
	 if( document.getElementById("e").checked == true || document.getElementById("su").checked == true || 
		document.getElementById("t").checked == true || document.getElementById("st").checked == true 
		|| document.getElementById("ba").checked == true ){
        executive = 0;
		suite = 0;
		twin = 0;
		standard = 0;
		bamboo = 0; 
		
		  if( document.getElementById("e").checked == true){
			    executive = document.getElementById("executive").value;
			  }
           if( document.getElementById("su").checked == true){
			   suite = document.getElementById("suite").value;
	          }		
	      if( document.getElementById("t").checked == true){
			   twin = document.getElementById("twin").value;
	         }	
		 
	      if( document.getElementById("st").checked == true){
			   standard = document.getElementById("standard").value;
	          }
			  
		 if( document.getElementById("ba").checked == true){
			 bamboo = document.getElementById("bamboo").value;
		 }
		 
	      if(executive ==0 && suite == 0 && twin == 0 && standard == 0 && bamboo == 0){
			   alert("How many rooms do you require to reserve?");
			    break reservation_func;
			}
	 }
     else{  
	        alert("You have to select at least one room");
	        break reservation_func;
			}		
	   
	   fName = document.getElementById("FName").value;
	   
	   tmpAddress = document.getElementById("Contact").value;
	   emailf = document.getElementById("em").value;
	   //to pass the previous information to the next page collect the necessary information from the hidden elements
     
		sid =  document.getElementById("sid").value;
		
		//check whether the user provides name or not
		if(fName == ""){ document.getElementById("fn").style.color = "#FF0000"; 
		                  break reservation_func; }
	   
	   //check what is provided in the e-mail information text box
	    if(emailf != ""){
			if(emailf.indexOf("@") == -1 ){
				document.getElementById("el").style.color = "#FF0000";
				break reservation_func;}
			else{email =  emailf;}
		  }else{document.getElementById("el").style.color = "#FF0000";}
		  
		//check what type of address information the customer provides and add it to the other information provided  
	    if(document.getElementById("f").checked){
			if(isNumberOnly(tmpAddress) == false){
				  document.getElementById("faxn").style.color = "#FF0000";
				  break reservation_func;}
			else {tel =  tmpAddress;}
		}else{
			if(isNumberOnly(tmpAddress) == false){
				  document.getElementById("ff").style.color = "#FF0000";
				  break reservation_func;}
			else{ fax = tmpAddress;}
			
		}
		
		 if(document.getElementById("Contact").value == ""){
			    //document.getElementById("o").style.color = "#FF0000";
				document.getElementById("ca").style.color = "#FF0000";
				alert("Please provide your contact address");
				break reservation_func;}
		   

    document.getElementById("footStyle").style.top = "650px";
	    
		url = "confirmReservation.php? sid=" + sid;
		url = url + "&suite=" + suite;
		url = url + "&executive=" + executive;
		url = url + "&twin=" + twin;
		url = url + "&standard=" + standard;
		url = url + "&bamboo=" + bamboo;
		url = url + "&name=" + fName;
		url = url + "&email=" + email;
		url = url + "&tel=" + tel;
		url = url + "&fax=" + fax;
	
	 dealAjax(url);
  }
  return 0;
}

//check and return true if the string is number that might or might not include '-' 
function isNumberOnly(str){
	if(str.length == 0) return (false);
	var i, tmpStr;
	var reference="1234567890-";
	for(i = 0; i < str.length; i++){
		tmpStr = str.substring(i, i+1);
		if(reference.indexOf(tmpStr,0) == -1)
		return (false);
	}
	return (true);
}
//this function checks and return true if the string passed is enterily number
function isNumber(str){
	if(str.length == 0 || str.length > 2 || str == 0) return (false);
	var i, tmpStr;
	var reference="1234567890";
	for(i = 0; i < str.length; i++){
		tmpStr = str.substring(i, i+1);
		if(reference.indexOf(tmpStr,0) == -1)
		return (false);
	}
	
	return (true);
}

//____________________________________________________________________________________________________________________________________________
function showDate()
{
	var days = new Array('Sun','Mon','Tue','Wed','Thu','Fri','Sat');
    var months = new Array('January','February','March','April','May','June','July','August',
								  'September','October','November','December');
	var calendar = new Date();
	
	var year = Calendar.getYear();	    // Returns year
    var month = Calendar.getMonth();    // Returns month (0-11)
    var today = Calendar.getDate();    // Returns day (1-31)
    var weekday = Calendar.getDay();    // Returns day (1-31)
 
   var DAYS_OF_WEEK = 7;  
   var DAYS_OF_MONTH = 31;
   
   calendar.setDate(1);  
   calendar.setMonth(month);
}


function getXMLObject()
{
	var xmlHttp=null;
try
  {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
  }
catch (e)
  {
  // Internet Explorer
  try
    {
    xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
    }
  catch (e)
    {
    xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
return xmlHttp;
}


//__________________________Display flight information______________________________________________________________________________
function displayFlighInfo()
{
	document.getElementById('shuttle').style.display = "block";
}

function disappearFlightInfo()
{
	document.getElementById('shuttle').style.display = "none";	
}

//____________________Finalize Reservation________________________________________________________________________________________________
function FinalizeReservation()
{
  var i;
  FinalizeReservation_func:
	for(i=1; i<2; i++){
	    var shuttle, flightInfo, additionalService;
		var url,sid;
			
	      if(document.getElementById("sr").checked){
		     shuttle = "required";
		
		     if(document.getElementById("flightInfo").value != ""){
		        flightInfo = document.getElementById("flightInfo").value;
		     }
		    else
		      {
			   alert("Please provide your flight information");	  
			   break FinalizeReservation_func;   }
		
	        }else if(document.getElementById("snr").checked){
		       shuttle = "not required";
	        }
	     
		additionalService = document.getElementById("additionService").value;
		sid =  document.getElementById("sid").value;
		
		url = "confirmReservation.php? sid=" + sid;
		url = url + "&shuttle=" + shuttle;
		url = url + "&flightInfo=" + flightInfo;
		url = url + "&addService=" + additionalService;
		
		
		dealAjax(url);
	}
	
	return 0;
}

<!-- menu functions -->
function displayManu(){
 if(document.getElementById("dropDown").style.display == "block")
  document.getElementById("dropDown").style.display = "none";
 else
   document.getElementById("dropDown").style.display = "block"; 
}

function displayOut(){
 if(document.getElementById("dropDown").style.display == "block")
  document.getElementById("dropDown").style.display = "none";
}
