var ADateRange=new Array(),DDateRange=new Array();var adYear,adMon,adDay,ddYear,ddMon,ddDay,_DepartureDate,_ArrivalDate;var DayInMonth=new Array(31,28,31,30,31,30,31,31,30,31,30,31);Date.prototype.addMilliseconds=function(value){this.setMilliseconds(this.getMilliseconds()+value);return this;}
Date.prototype.addDays=function(value){return this.addMilliseconds(value*86400000);};
Date.prototype.addYears=function(v){var lYear=this.getFullYear()+v;var iDaysCount=365+(lYear%4==0?1:0);this.addDays(iDaysCount);};
Date.prototype.cmpDate=function(value){var v_dt=new Date(value.getFullYear(),value.getMonth(),value.getDate());return this.valueOf()-v_dt.valueOf();};Date.prototype.cmpDay=function(value){var r=this.cmpDate(value);return r/(1*24*60*60*1000);};Date.prototype.toString=function(){var d=this;function formatDate(d){var y=d.getFullYear();var m=(d.getMonth()<9?"0":"")+(d.getMonth()+1);var date=(d.getDate()<10?"0":"")+d.getDate();return y+"-"+m+"-"+date;}
return formatDate(d);};function checkDate(d){var s=d;if(!s)return null;var D=String(s).split("-");if(D.length<3)return null;var yy=parseInt(D[0],10);var mm=parseInt(D[1],10)-1;var dd=parseInt(D[2],10);var _d=new Date(yy,mm,dd);var c=isNaN(_d);return c?null:_d;}
function onSetRoomPerson(){if(typeof RoomType!='undefined'){var room=parseInt(RoomType,10);var e;if(!isNaN(room)){e=$("CountOfRoom");e.selectedIndex=room-1;}}
if(typeof RoomType!='undefined'){var amount=parseInt(AmountOfRooms,10);if(!isNaN(amount)){e=$("CountOfPerson");e.selectedIndex=amount-1;}}}
function onSetPeriod(){onSetRoomPerson();var ADate;if(typeof ArrivalDate!='undefined')ADate=checkDate(ArrivalDate);if(!ADate){ADate=new Date();ADate.setTime(ADate.getTime()+(0*24*60*60*1000))}
var DDate;if(typeof DepartureDate!='undefined')DDate=checkDate(DepartureDate);if(!DDate){DDate=new Date();DDate.setTime(DDate.getTime()+(1*24*60*60*1000))}
iADYear=ADate.getFullYear();iADMonth=ADate.getMonth();iADDay=ADate.getDate();iDDYear=DDate.getFullYear();iDDMonth=DDate.getMonth();iDDDay=DDate.getDate();adYear=$("adYear");if(!adYear)return;adYear.options.length=0;for(i=iADYear,j=0;i<iADYear+3;i++,j++){elOpt=new Option;elOpt.value=String(i);elOpt.text=String(i);adYear.options[j]=elOpt;}
adYear.selectedIndex=0;adYear.onchange=ArrivalDeparture_Year;adMon=$("adMon");adMon.selectedIndex=iADMonth;adMon.onchange=ArrivalDeparture_Mon;adDay=$("adDay");adDay.selectedIndex=iADDay-1;adDay.onchange=ArrivalDeparture_Day;_ArrivalDate=$("_ArrivalDate");ddYear=$("ddYear");ddYear.options.length=0;for(i=iDDYear,j=0;i<iDDYear+3;i++,j++){elOpt=new Option;elOpt.value=String(i);elOpt.text=String(i);ddYear.options[j]=elOpt;}
ddYear.selectedIndex=0;ddYear.onchange=ArrivalDeparture_Year;ddMon=$("ddMon");ddMon.selectedIndex=DDate.getMonth();ddMon.onchange=ArrivalDeparture_Mon;ddDay=$("ddDay");ddDay.selectedIndex=DDate.getDate()-1;ddDay.onchange=ArrivalDeparture_Day;_DepartureDate=$("_DepartureDate");_DDate=new Date();_DDate.setTime(_DDate.getTime()+(365*24*60*60*1000));ADateRange[0]=Array(ADate.getFullYear(),ADate.getMonth()+1,ADate.getDate());ADateRange[1]=Array(_DDate.getFullYear()+3,_DDate.getMonth()+1,_DDate.getDate());_DDate.setTime(_DDate.getTime()+(30*60*60*1000));DDateRange[0]=Array(DDate.getFullYear(),DDate.getMonth()+1,DDate.getDate());DDateRange[1]=Array(_DDate.getFullYear()+3,_DDate.getMonth()+1,_DDate.getDate());ArrivalDeparture_Year();}
function setDateRange(){var curDate=new Date();ADateRange[0]=Array(curDate.getFullYear(),curDate.getMonth()+1,curDate.getDate());curDate.addDays(1);DDateRange[0]=Array(curDate.getFullYear(),curDate.getMonth()+1,curDate.getDate());ADateRange[1]=Array(curDate.getFullYear()+2,curDate.getMonth()+1,curDate.getDate());curDate.addDays(30);DDateRange[1]=Array(curDate.getFullYear()+2,curDate.getMonth()+1,curDate.getDate());}
function SetVarBookRoom(){if(typeof varBook!='object')return;var room=parseInt(varBook.amountRoom,10);var e;if(!isNaN(room)){e=$("CountOfRoom");e.selectedIndex=room-1;}
var amount=parseInt(varBook.typeRoom,10);if(!isNaN(amount)){e=$("CountOfPerson");e.selectedIndex=amount-1;}}
function SetVarBook(){var ADate=checkDate(varBook.toDate);if(!ADate){ADate=new Date();ADate.setTime(ADate.getTime()+(0*24*60*60*1000))}
var DDate=checkDate(varBook.fromDate);if(!DDate){DDate=new Date();DDate.setTime(DDate.getTime()+(1*24*60*60*1000))}
iADYear=ADate.getFullYear();iADMonth=ADate.getMonth();iADDay=ADate.getDate();iDDYear=DDate.getFullYear();iDDMonth=DDate.getMonth();iDDDay=DDate.getDate();adYear=$("adYear");if(!adYear)return;adYear.options.length=0;for(i=iADYear,j=0;i<iADYear+3;i++,j++){elOpt=new Option;elOpt.value=String(i);elOpt.text=String(i);adYear.options[j]=elOpt;}
adYear.selectedIndex=0;adYear.onchange=ArrivalDeparture_Year;adMon=$("adMon");adMon.selectedIndex=iADMonth;adMon.onchange=ArrivalDeparture_Mon;adDay=$("adDay");adDay.selectedIndex=iADDay-1;adDay.onchange=ArrivalDeparture_Day;_ArrivalDate=$("_ArrivalDate");ddYear=$("ddYear");ddYear.options.length=0;for(i=iDDYear,j=0;i<iDDYear+3;i++,j++){elOpt=new Option;elOpt.value=String(i);elOpt.text=String(i);ddYear.options[j]=elOpt;}
ddYear.selectedIndex=0;ddYear.onchange=ArrivalDeparture_Year;ddMon=$("ddMon");ddMon.selectedIndex=DDate.getMonth();ddMon.onchange=ArrivalDeparture_Mon;ddDay=$("ddDay");ddDay.selectedIndex=DDate.getDate()-1;ddDay.onchange=ArrivalDeparture_Day;_DepartureDate=$("_DepartureDate");_DDate=new Date();_DDate.setTime(_DDate.getTime()+(365*24*60*60*1000));ADateRange[0]=Array(ADate.getFullYear(),ADate.getMonth()+1,ADate.getDate());ADateRange[1]=Array(_DDate.getFullYear()+3,_DDate.getMonth()+1,_DDate.getDate());_DDate.setTime(_DDate.getTime()+(30*60*60*1000));DDateRange[0]=Array(DDate.getFullYear(),DDate.getMonth()+1,DDate.getDate());DDateRange[1]=Array(_DDate.getFullYear()+3,_DDate.getMonth()+1,_DDate.getDate());ArrivalDeparture_Year();}
function InitPeriod(){
SetVarBookRoom();
adYear=$("adYear");
adYear.onchange=ArrivalDeparture_Year;
adMon=$("adMon");
adMon.onchange=ArrivalDeparture_Year;
adDay=$("adDay");
adDay.onchange=ArrivalDeparture_Year;
_ArrivalDate=$("_ArrivalDate");
//$v("_ArrivalDate",bD(adYear,adMon,adDay));
ddYear=$("ddYear");
ddYear.onchange=ArrivalDeparture_Year;
ddMon=$("ddMon");
ddMon.onchange=ArrivalDeparture_Year;
ddDay=$("ddDay");
ddDay.onchange=ArrivalDeparture_Year;
_DepartureDate=$("_DepartureDate");
//$v("_DepartureDate",bD(ddYear,ddMon,ddDay));
setDateRange();
try
{
if(typeof EnableHotelRates!='undefined')EnableHotelRates();}
catch(err){}
if(typeof searchRun!='undefined'&&searchRun=="yes"&&typeof SearchNew!='undefined')
SearchNew();
}
function buildDate(year,mon,date){
return $v(year)+"-"+String($v(mon)).lpad(2,'0')+"-"+String($v(date)).lpad(2,'0')
}
function bD(year,mon,date){
return $v(year)+"-"+String($v(mon)).lpad(2,'0')+"-"+String($v(date)).lpad(2,'0')
}
function ArrivalDeparture_Day(){ArrivalDateOrDepartureDate_Change()}
function ArrivalDeparture_Mon(){if(this==adMon)CorrectDays(adDay,adMon,adYear);else if(this==ddMon)CorrectDays(ddDay,ddMon,ddYear);}
function ArrivalDeparture_Year(){if(this==adYear||this==adMon)CorrectDays(adDay,adMon,adYear);else if(this==ddYear||this==ddMon)CorrectDays(ddDay,ddMon,ddYear);else ArrivalDateOrDepartureDate_Change();}
function ChangeDays(adDay,adMon,adYear){CorrectDays(adDay,adMon,adYear);ArrivalDateOrDepartureDate_Change()}
function CorrectDaysOfMon(adDay,adMon,adYear){lDay=parseInt(adDay.value);lMonth=parseInt(adMon.value);lYear=parseInt(adYear.value);iDaysCount=DayInMonth[adMon.value-1];if(lYear%4==0&&lMonth==2)iDaysCount=29;var j=adDay.options.length;if(iDaysCount<j)for(i=j-1;i>iDaysCount;i--)adDay.options[i]=null;else for(i=j;i<iDaysCount;i++){elOpt=new Option;elOpt.value=i+1;elOpt.text=i+1;adDay.options[i]=elOpt;}
adDay.options.length=iDaysCount;}
function CorrectDays(adDay,adMon,adYear){CorrectDaysOfMon(adDay,adMon,adYear);ArrivalDateOrDepartureDate_Change();}
function ArrivalDateOrDepartureDate_Change(){
if(String(typeof(hideHotelRates))=="function")hideHotelRates();var curDate=new Date();var year=$v(adYear),mon=$v(adMon),day=$v(adDay);var _ADate=new Date($v(adYear),$v(adMon)-1,$v(adDay));var _DDate=new Date($v(ddYear),$v(ddMon)-1,$v(ddDay));var _AD=_ADate.toString();var _DD=_DDate.toString();var cd;if(_ArrivalDate.value!=_AD){cd=_ADate.cmpDay(curDate);if(cd<0){var d=parseDate($v(_ArrivalDate));if(d.getYear()!=_ADate.getYear())$v(_ArrivalDate,curDate.toString());else if(d.getMonth()!=_ADate.getMonth()){d=_ADate;
d.addYears(1);
$v(_ArrivalDate,d);$v(_DepartureDate,d.addDays(1));}
else if(d.getDate()!=_ADate.getDate()){d=new Date($v(adYear),$v(adMon),$v(adDay));$v(_ArrivalDate,d.toString());$v(_DepartureDate,d.addDays(1).toString());}
setADate($v(_ArrivalDate));setDDate($v(_DepartureDate));}
else if(_DDate<=_ADate){_DDate=new Date(_ADate.getTime());_DDate.addDays(1);$v(_ArrivalDate,_AD);$v(_DepartureDate,_DDate.toString());setDDate(_DDate);}}
else if(_DepartureDate.value!=_DD){cd=_DDate.cmpDay(curDate);if(cd<0){var d=parseDate($v(_DepartureDate));if(d.getYear()!=_DDate.getYear()){$v(_ArrivalDate,curDate.toString());$v(_DepartureDate,curDate.addDays(1).toString())}
else if(d.getMonth()!=_DDate.getMonth()){d=_DDate;d.addYears(1);$v(_DepartureDate,d)}
else if(d.getDate()!=_DDate.getDate()){d=new Date($v(ddYear),$v(ddMon),$v(ddDay));$v(_DepartureDate,d.toString())}
setADate($v(_ArrivalDate));setDDate($v(_DepartureDate));}
else if(_DDate<=_ADate){_ADate=new Date(_DDate.getTime());_ADate.addDays(-1);$v(_DepartureDate,_DD);$v(_ArrivalDate,_ADate.toString());setADate(_ADate);}}}
function parseDate(d){if(typeof d==="string"){var s=String(d).split("-");d=new Date(parseInt(s[0]),parseInt(s[1]-1),parseInt(s[2]))}
return d;}
function setADate(_ADate){var dt=parseDate(_ADate);for(i=0;i<adYear.options.length;i++)
if(adYear.options[i].value==String(dt.getFullYear())){adYear.selectedIndex=i;break}
adMon.selectedIndex=dt.getMonth();CorrectDaysOfMon(adDay,adMon,adYear);adDay.selectedIndex=dt.getDate()-1;}
function setDDate(_DDate){var dt=parseDate(_DDate);for(i=0;i<ddYear.options.length;i++)
if(ddYear.options[i].value==String(dt.getFullYear())){ddYear.selectedIndex=i;break}
ddMon.selectedIndex=dt.getMonth();CorrectDaysOfMon(ddDay,ddMon,ddYear);ddDay.selectedIndex=dt.getDate()-1;}
function getAD(){var dt=new Date($v(adYear),$v(adMon)-1,$v(adDay));return dt.toString()}
function getDD(){var dt=new Date($v(ddYear),$v(ddMon)-1,$v(ddDay));return dt.toString()}
function CheckADDate(){var curDate=new Date();var _ADate=new Date($v(adYear),$v(adMon)-1,$v(adDay),23,59,59);if(_ADate<curDate){alert($("msgErrorArrivalDate").value);return false;}
_ADate=_ADate.getTime();var _DDate=new Date($v(ddYear),$v(ddMon)-1,$v(ddDay),0,0,0);_DDate=_DDate.getTime();if(_DDate-_ADate>30*24*60*60*1000){alert($("msgErrorCountDays").value);return false;}
return true;}
