//##################validation of valid month in Booking page#################///////
function rblCities_onclick(txtLocation,radioCityName)
{
	var radioCity=document.getElementsByName(radioCityName);     
	for (i=0;i<radioCity.length;i++)
	{
		if (radioCity[i].checked==true)
		{
			txtLocation.value=radioCity[i].value;
			break;
		}
	}
}
//##################validation of valid month in Booking page#################///////
 
	var unwantedimagesremoved = false;	
	function RemoveUnwantedImages()
	{
		var unwantedindex = 0;
		if(unwantedimagesremoved) return;
		var allimages;
		allimages = document.getElementsByName('HotelImage');
		for(unwantedindex=0; unwantedindex<allimages.length; unwantedindex++)
		{
			if(allimages[unwantedindex].complete == false)
			{
				allimages[unwantedindex].outerHTML = '';
				
			//	var tdImage=allimages[unwantedindex].parentChild
				unwantedindex--;
			}
		}
		unwantedimagesremoved = true;
	}
	

//##################Hotel Big Image #################///////
    var i=0;
	var totalImagesDisp=0;
	var arrImage=Array();
	
	function startClock()
	{
		//RemoveUnwantedImages();
		var arrImages = document.getElementsByName('HotelImage');
		if(totalImagesDisp==0)
		{
			for(var j=0;j<arrImages.length;j++)
			{
				
				if(arrImages[j].style.display!="none")
				{
					arrImage[totalImagesDisp]=j;
					totalImagesDisp=totalImagesDisp+1;
				}
			}
		}
		if(arrImage.length==0)
		{
				document.getElementById('bigImage').src = "I/H/hotel.gif";
		}
		else
		{
			if(arrImages[arrImage[i]]!=null)
			{
				if(arrImages[arrImage[i]].style.display!="none")
				{	
					document.getElementById('bigImage').src = arrImages[arrImage[i]].src;
				}
				else
				{
					document.getElementById('bigImage').src = "I/H/hotel.gif";
				}
			}
		}
		setTimeout("startClock()", 4000);
		if(i >= totalImagesDisp)
		{	
			i=0;
			if(arrImage.length==0)
			{
				document.getElementById('bigImage').src = "I/H/hotel.gif";
			}
			else
			{
				if(arrImages[arrImage[i]].style.display!="none")
				{
						document.getElementById('bigImage').src = arrImages[arrImage[i]].src;
				}
				else
				{
				document.getElementById('bigImage').src = "I/H/hotel.gif" ;
				}
			}
		}
		i++;
	}	
//------------------------------End---------------------------------------------

//##################validation of Generic Image#################///////
function Image_error(myImage)
 {
  myImage.onload=null;
  myImage.src ="I/H/hotel.gif" ;
 }
 //##################End#################///////
//##################validation of valid month in Booking page#################///////
function validMonth(source, args)
{
	var controlId=source.id;
	var lstIdx=controlId.lastIndexOf("_");
	controlId=controlId.substring(0,lstIdx);
	var dllMonthId=controlId + "_ddlMonth";
	var ddlYearId=controlId + "_ddlYear";
    var SMonth=parseInt(document.getElementById(dllMonthId).options[document.getElementById(dllMonthId).selectedIndex].text,10);
    var SYear=parseInt(document.getElementById(ddlYearId).options[document.getElementById(ddlYearId).selectedIndex].text);
    var dt=new Date();
    var currMonth=dt.getMonth()+1;
    var currYear=dt.getFullYear();
    if(SYear==currYear)
    {
      if(SMonth<currMonth)
      {
       args.IsValid=false;
      }
    }
}
//##############End#######################////////////////////
//#####################validation of check box terms and conditions######/////
 function ValidateTandCs(source, args)
     {
			var controlId=source.id;
			var lstIdx=controlId.lastIndexOf("_");
			controlId=controlId.substring(0,lstIdx);
			var chkPolicy=controlId + "_chkPolicy";
            args.IsValid=document.getElementById(chkPolicy).checked;
     }
 //#####################End###############///          
//########### Start Hotel Repeater Paging ########### _ctl0__ctl8__ctl0_hidCurrentPage
function Page_Click(PageIndex,hidCurrentPageId,pnlHotelPaging,divPopup) 
{
	document.getElementById(hidCurrentPageId).value=PageIndex-1;	
	ajaxFunction("currentpage",PageIndex-1,pnlHotelPaging,divPopup);	
	//document.Form.__VIEWSTATE.name = 'HotelList';	
	//document.Form.submit();  
}
//########### End Hotel Repeater Paging ###########
function SortResults(columnName,pnlHotelPaging,divPopup)
{
    ajaxFunction("sort",columnName,pnlHotelPaging,divPopup);
}
function ajaxFunction(paramName,paramValue,pnlHotelPaging,divPopup)
{
	var xmlHttp;
	try
	{    // Firefox, Opera 8.0+, Safari    
		xmlHttp=new XMLHttpRequest();  
	}
	catch (e)	
	{  // Internet Explorer 
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");  	
		}	
		catch (e)
		{     
			try
			{     
				xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");   
			}
			catch (e)
			{      
				alert("Your browser does not support AJAX!");    
				return false;    
			}  
		}  
	}
	
	var postBackLocation = 	window.location ;
	postBackLocation = postBackLocation.toString();
	if (postBackLocation.indexOf("&" + paramName) > -1)
	{
	    postBackLocation = postBackLocation.substring(0,postBackLocation.length - (postBackLocation.length-postBackLocation.lastIndexOf("&")))
	}
	postBackLocation = postBackLocation + "&" + paramName.toString() + "=" + paramValue.toString();
	
    var myRand=Math.random()*999999999999999;
	xmlHttp.onreadystatechange=function()
		{
		    if(xmlHttp.readyState<4)
		    {
		        ShowStickerWindow(divPopup);
		    }
			if(xmlHttp.readyState==4)
			{
			    var responseXML=xmlHttp.responseText;
			    if (responseXML!=null && responseXML.length>0)
			    {
				    document.getElementById(pnlHotelPaging).innerHTML=responseXML;
			    }
			   // HideStickerWindow(divPopup);
			}
		}
		xmlHttp.open("GET",postBackLocation+"&partialPostBack="+myRand,true);
        xmlHttp.send(null);
}

function ShowStickerWindow(divPopup)
{
   document.getElementById(divPopup).style.display="block";
   document.getElementById(divPopup).style.left = 300;
   document.getElementById(divPopup).style.top = 200+document.body.scrollTop;
}
function HideStickerWindow(divPopup)
{
    document.getElementById(divPopup).style.display="none";
}
//##########  Start Verifying no. of guests greater than no. of rooms ##########
function ddlAdults_onchange_search(ddlAdults,ddlRooms)
 {
	var noOfAdults=parseInt(ddlAdults.options[ddlAdults.selectedIndex].text,10);
	var noOfRooms =parseInt(ddlRooms.options[ddlRooms.selectedIndex].text);
	if (noOfAdults < noOfRooms)
	{
		//alert("The Number of guests should be greater than Number of Rooms");
		return false;
	}
	return true;
 }
 //########## End Verifying no. of guests greater than no. of rooms ##########
 
//########### Start Child Age Validation in Hotel Booking ###########
function ddlChildren_onchange(txtChildAge1, txtChildAge2, ddlChildren,ddlAdults)
{
   txtChildAge1.style.visibility="visible";
   txtChildAge2.style.visibility="visible";
   var noOfChildren=ddlChildren.options[ddlChildren.selectedIndex].text;
   var noOfAdults=ddlAdults.options[ddlAdults.selectedIndex].text;
   if(noOfChildren=="0")
    {
		txtChildAge2.style.visibility="hidden";
		txtChildAge1.style.visibility="hidden";
    }
  else if(noOfChildren=="1")
    {
		txtChildAge2.style.visibility="hidden";
    }
  else
    {
		txtChildAge2.style.visibility="visible";
		txtChildAge1.style.visibility="visible";
    } 
    if((noOfAdults==2)&&(noOfChildren==2))
    {
      alert("Single room allow max 3 guests\nOut of 2 adult and 2 child!!!");
      ddlChildren.selectedIndex=[0];
    }
 } 
  function ddlAdults_onchange_book(ddlChildren,ddlAdults)
 { 
	var noOfAdults=parseInt(ddlAdults.options[ddlAdults.selectedIndex].text);
     ddlChildren.options.length=3;
     ddlChildren.options[0].text="0";
     ddlChildren.options[1].text="1";
     ddlChildren.options[2].text="2";
     ddlChildren.options[0].value="0";
     ddlChildren.options[1].value="1";
     ddlChildren.options[2].value="2";
	if(noOfAdults==2)
	{
		ddlChildren.options.length=2;
	}
 }
//########### End Child Age Validation in Hotel Booking ###########

function HotelDetails_Click(HotelId,HProvider,TabId,CurrentPage)
{ 

	//document.location = "HotelDetails.aspx?HId="+ HotelId + "&HP=" + HProvider;
	document.location = "Default.aspx?tabid=" + TabId+ "&HId="+ HotelId + "&HP=" + HProvider + "&currentpage=" + CurrentPage;
	return false;
	//document.Form1.__VIEWSTATE.name = 'HotelDetails';			
	//document.Form1.submit();  
}
function HotelBook_Click(OriginPath, HotelId, RoomTypeId,BedType,TabId,CurrentPage)
{
	//document.location = "HotelBook.aspx?HId="+ HotelId + "&RTId=" + RoomTypeId;
	document.location =OriginPath + "Default.aspx?tabid=" + TabId + "&HId=" + HotelId + "&RTId=" + RoomTypeId +"&BedType=" + BedType + "&CurrentPage=" + CurrentPage;
	return false;
	//document.Form1.__VIEWSTATE.name = 'HotelBook';			
	//document.Form1.submit(); 
}
function ddlNights_onchange(txtcheckIn,txtcheckOut,ddlNights)
{
	//var CheckIn=document.getElementById("HotelSearch1_txtCheckin").value;	
	var CheckIn=txtcheckIn.value;	
	//var noOfNight=document.getElementById("HotelSearch1_ddlNights").options[document.getElementById("HotelSearch1_ddlNights").selectedIndex].text;
	var noOfNight=ddlNights.options[ddlNights.selectedIndex].text;
	if(!isDate(CheckIn))	return false;
	var aDate=new Date(CheckIn);
	aDate.setDate(aDate.getDate()+parseInt(noOfNight));
	var aMonth=aDate.getMonth()+1;
	var aDay=aDate.getDate();
	var aYear=aDate.getFullYear();
	txtcheckOut.value = aMonth+'/'+aDay+'/'+aYear;
}
function HotelSearch_IsValidated(txtcheckIn,txtcheckOut,ddlAdults,ddlRooms)
{
	//var checkIn=document.getElementById("HotelSearch1_txtCheckin").value;
	var checkIn=txtcheckIn.value;
	//var checkOut=document.getElementById("HotelSearch1_txtCheckOut").value;
	var checkOut=txtcheckOut.value;
	if(!isDate(checkIn,true))return false;
	if(!isDate(checkOut,true))return false;
	var dtCheckIn= GetDate(checkIn);
	var dtCheckOut=GetDate(checkOut);	
	if (dtCheckIn > dtCheckOut) 
	{	
		alert("The Check-In date should not be greater than Check-Out date..")						
		return false;
	}
		
	var noOfAdults=parseInt(ddlAdults.options[ddlAdults.selectedIndex].text,10);
	var noOfRooms =parseInt(ddlRooms.options[ddlRooms.selectedIndex].text);
	if (noOfAdults < noOfRooms)
	{
		alert("The Number of guests should be greater than Number of Rooms");
		return false;
	}
	return true;
}
function txtCheckout_onblur(txtcheckIn,txtcheckOut,lblNights)
{
	//var checkIn=document.getElementById("HotelSearch1_txtCheckin").value;
	var checkIn=txtcheckIn.value;
	//var checkOut=document.getElementById("HotelSearch1_txtCheckOut").value;
	var checkOut=txtcheckOut.value;
	if(!isDate(checkIn,false))return false;
	if(!isDate(checkOut,false))return false;
	var dtCheckIn= GetDate(checkIn);
	var dtCheckOut=GetDate(checkOut);	
	if (dtCheckIn > dtCheckOut) 
	{	
		//alert("The Check-In date should not be greater than Check-Out date...")
		return false;
	} 
	var nodays = getDateDiff(dtCheckIn,dtCheckOut);
	lblNights.firstChild.nodeValue = nodays;
	return true;
}

function getDateDiff(startDate,endDate)
{
	//Get 1 day in milliseconds
	var one_day=1000*60*60*24;
	
	//Set the two dates
	var sdate=new Date(startDate);
	var edate=new Date(endDate);
	return (Math.ceil((edate.getTime()-sdate.getTime())/(one_day)));
}

function GetDate(sDate)
{
	var pos1=sDate.indexOf(dtCh)
	var pos2=sDate.indexOf(dtCh,pos1+1)
	var strMonth=sDate.substring(0,pos1)
	var strDay=sDate.substring(pos1+1,pos2)
	var strYear=sDate.substring(pos2+1)
	var mm=Number(strMonth)-1;
	return new Date(strYear,mm,strDay);
}

// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

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++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31;
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29;}
   } 
   return this;
}

function isDate(dtStr,showAlert)
{
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strMonth=dtStr.substring(0,pos1);
	var strDay=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1);
	}
	month=parseInt(strMonth);
	day=parseInt(strDay);
	year=parseInt(strYr);
	if (pos1==-1 || pos2==-1){
		//if(showAlert)
			//alert("The date format should be : mm/dd/yyyy");
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12){
		//if(showAlert)
			//alert("Please enter a valid month");
		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		//if(showAlert)
			//alert("Please enter a valid day");
		return false;
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		//if(showAlert)
			//alert("Please enter a valid 4 digit year between "+minYear+" and "+maxYear);
		return false;
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		//if(showAlert)
			//alert("Please enter a valid date");
		return false;
	}
return true;
}

function isValidDate(dateStr) {
	var datePat = /^(\d{1,2})(\/|-)(\d{1,2})\2(\d{4})$/; // requires 4 digit year

	var matchArray = dateStr.match(datePat); // is the format ok?
	if (matchArray == null) {
	//alert(dateStr + " Date is not in a valid format.")
	return false;
	}
	month = matchArray[1]; // parse date into variables
	day = matchArray[3];
	year = matchArray[4];
	if (month < 1 || month > 12) { // check month range
	//alert("Month must be between 1 and 12.");
	return false;
	}
	if (day < 1 || day > 31) {
	//alert("Day must be between 1 and 31.");
	return false;
	}
	if ((month==4 || month==6 || month==9 || month==11) && day==31) {
	//alert("Month "+month+" doesn't have 31 days!")
	return false;
	}
	if (month == 2) { // check for february 29th
	var isleap = (year % 4 == 0 && (year % 100 != 0 || year % 400 == 0));
	if (day>29 || (day==29 && !isleap)) {
	//alert("February " + year + " doesn't have " + day + " days!");
	return false;
	   }
	}
	return true;
}

