function positionInfo(object){var p_elm=object;this.getElementLeft=getElementLeft;function getElementLeft(){var x=0;var elm;if(typeof(p_elm)=="object"){elm=p_elm;}else{elm=document.getElementById(p_elm);}
while(elm!=null){x+=elm.offsetLeft;elm=elm.offsetParent;}
return parseInt(x);}
this.getElementWidth=getElementWidth;function getElementWidth(){var elm;if(typeof(p_elm)=="object"){elm=p_elm;}else{elm=document.getElementById(p_elm);}
return parseInt(elm.offsetWidth);}
this.getElementRight=getElementRight;function getElementRight(){return getElementLeft(p_elm)+getElementWidth(p_elm);}
this.getElementTop=getElementTop;function getElementTop(){var y=0;var elm;if(typeof(p_elm)=="object"){elm=p_elm;}else{elm=document.getElementById(p_elm);}
while(elm!=null){y+=elm.offsetTop;elm=elm.offsetParent;}
return parseInt(y);}
this.getElementHeight=getElementHeight;function getElementHeight(){var elm;if(typeof(p_elm)=="object"){elm=p_elm;}else{elm=document.getElementById(p_elm);}
return parseInt(elm.offsetHeight);}
this.getElementBottom=getElementBottom;function getElementBottom(){return getElementTop(p_elm)+getElementHeight(p_elm);}}
function CalendarControl(){var calendarId='CalendarControl';var currentYear=0;var currentMonth=0;var currentDay=0;var selectedYear=0;var selectedMonth=0;var selectedDay=0;var todayYear=0;var todayMonth=0;var todayDay=0;var arrivalYear=0;var arrivalMonth=0;var arrivalDay=0;var departureYear=0;var departureMonth=0;var departureDay=0;var curcalendartype='';var months=['Jan','Feb','March','April','May','June','July','Aug','Sept','Oct','Nov','Dec'];var dateField=null;var objarrivaldate='';var objdeparturedate='';function getProperty(p_property){var p_elm=calendarId;var elm=null;if(typeof(p_elm)=="object"){elm=p_elm;}else{elm=document.getElementById(p_elm);}
if(elm!=null){if(elm.style){elm=elm.style;if(elm[p_property]){return elm[p_property];}else{return null;}}else{return null;}}}
function setElementProperty(p_property,p_value,p_elmId){var p_elm=p_elmId;var elm=null;if(typeof(p_elm)=="object"){elm=p_elm;}else{elm=document.getElementById(p_elm);}
if((elm!=null)&&(elm.style!=null)){elm=elm.style;elm[p_property]=p_value;}}
function setProperty(p_property,p_value){setElementProperty(p_property,p_value,calendarId);}
function getDaysInMonth(year,month){return[31,((!(year%4)&&((year%100)||!(year%400)))?29:28),31,30,31,30,31,31,30,31,30,31][month-1];}
function getDayOfWeek(year,month,day){var date=new Date(year,month-1,day)
return date.getDay();}
this.clearDate=clearDate;function clearDate(){dateField.value='';hide();}
this.setDate=setDate;function setDate(year,month,day){if(dateField){if(month<10){month="0"+month;}
if(day<10){day="0"+day;}
var dateString=year+"-"+month+"-"+day;dateField.value=dateString;if(curcalendartype=='arrival'){month=month-1;var objarrivaldate=new Date(year,month,day);arr_time=objarrivaldate.getTime();arr_time+=172800000;var objdeparturetime=new Date(arr_time);dep_year=objdeparturetime.getFullYear();dep_month=objdeparturetime.getMonth();dep_date=objdeparturetime.getDate();dep_month=dep_month+1;if(dep_month<10){dep_month="0"+dep_month;}
if(dep_date<10){dep_date="0"+dep_date;}
if(objdeparturedate)
objdeparturedate.value=dep_year+"-"+dep_month+"-"+dep_date;}
hide();}
return;}
this.changeMonth=changeMonth;function changeMonth(change){currentMonth+=change;currentDay=0;if(currentMonth>12){currentMonth=1;currentYear++;}else if(currentMonth<1){currentMonth=12;currentYear--;}
calendar=document.getElementById(calendarId);calendar.innerHTML=calendarDrawTable();}
this.changeYear=changeYear;function changeYear(change){currentYear+=change;currentDay=0;calendar=document.getElementById(calendarId);calendar.innerHTML=calendarDrawTable();}
function getCurrentYear(){var year=new Date().getYear();if(year<1900)year+=1900;return year;}
function getCurrentMonth(){return new Date().getMonth();+1;}
function getCurrentDay(){return new Date().getDate();}
function calendarDrawTable(){var dayOfMonth=1;var validDay=0;var startDayOfWeek=getDayOfWeek(currentYear,currentMonth,dayOfMonth);var daysInMonth=getDaysInMonth(currentYear,currentMonth);var css_class=null;var now=new Date();var todayYear=getCurrentYear();var todayMonth=getCurrentMonth();var todayDay=getCurrentDay();var table="<table cellspacing='0' cellpadding='0' border='0'>";table=table+"<tr class='header'>";table=table+"  <td colspan='1' class='previous'><a href='javascript:changeCalendarControlMonth(-1);'  title='click to browse previous month'>&laquo;</a></td>";table=table+"  <td colspan='5' class='title'>"+months[currentMonth-1]+"&nbsp;"+currentYear+"</td>";table=table+"  <td colspan='1' class='next'><a href='javascript:changeCalendarControlMonth(1);' title='click to browse next month'>&raquo;</a></td>";table=table+"</tr>";table=table+"<tr><th>S</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th></tr>";var arrdate=new Date(arrivalYear,arrivalMonth-1,arrivalDay);var depdate=new Date(departureYear,departureMonth-1,departureDay);var curdate=new Date(todayYear,todayMonth,todayDay);for(var week=0;week<6;week++){table=table+"<tr>";for(var dayOfWeek=0;dayOfWeek<7;dayOfWeek++){if(week==0&&startDayOfWeek==dayOfWeek){validDay=1;}else if(validDay==1&&dayOfMonth>daysInMonth){validDay=0;}
if(validDay){if(dayOfMonth==selectedDay&&currentYear==selectedYear&&currentMonth==selectedMonth){css_class='current';}else if(dayOfWeek==0||dayOfWeek==6){css_class='weekend';}else{css_class='weekday';}
if(curcalendartype=='arrival'){var disdate=new Date(currentYear,currentMonth-1,dayOfMonth);if(disdate<curdate){table=table+"<td><span  class='unsel'>"+dayOfMonth+"</span></td>";}else{table=table+"<td><a class='"+css_class+"' href=\"javascript:setCalendarControlDate("+currentYear+","+currentMonth+","+dayOfMonth+")\">"+dayOfMonth+"</a></td>";}}else if(curcalendartype=='departure'){var disdate=new Date(currentYear,currentMonth-1,dayOfMonth);if(disdate<=curdate||disdate<=arrdate){table=table+"<td><span  class='unsel'>"+dayOfMonth+"</span></td>";}else{table=table+"<td><a class='"+css_class+"' href=\"javascript:setCalendarControlDate("+currentYear+","+currentMonth+","+dayOfMonth+")\">"+dayOfMonth+"</a></td>";}}
dayOfMonth++;}else{table=table+"<td class='empty'>&nbsp;</td>";}}
table=table+"</tr>";}
table=table+"<tr class='header'><th colspan='7' style='padding: 3px; white-space:nowrap;' align='center'><a href='javascript:clearCalendarControl();'>Clear</a>&nbsp;&nbsp;|&nbsp;&nbsp;<a href='javascript:hideCalendarControl();'>Close</a></td></tr>";table=table+"</table>";return table;}
this.show=show;function show(field){can_hide=0;if(dateField==field){return;}else{dateField=field;}
if(dateField){try{var dateString=new String(dateField.value);var dateParts=dateString.split("-");selectedMonth=parseInt(dateParts[1],10);selectedDay=parseInt(dateParts[2],10);selectedYear=parseInt(dateParts[0],10);}catch(e){}}
if(!(selectedYear&&selectedMonth&&selectedDay)){selectedMonth=getCurrentMonth();selectedDay=getCurrentDay();selectedYear=getCurrentYear();}
currentMonth=selectedMonth;currentDay=selectedDay;currentYear=selectedYear;if(document.getElementById){calendar=document.getElementById(calendarId);calendar.innerHTML=calendarDrawTable(currentYear,currentMonth);setProperty('display','block');var fieldPos=new positionInfo(dateField);var calendarPos=new positionInfo(calendarId);var x=fieldPos.getElementLeft();var y=fieldPos.getElementBottom();setProperty('left',x+"px");setProperty('top',y+"px");if(document.all){setElementProperty('display','block','CalendarControlIFrame');setElementProperty('left',x+"px",'CalendarControlIFrame');setElementProperty('top',y+"px",'CalendarControlIFrame');setElementProperty('width',calendarPos.getElementWidth()+"px",'CalendarControlIFrame');setElementProperty('height',calendarPos.getElementHeight()+"px",'CalendarControlIFrame');}}}
this.hide=hide;function hide(){if(dateField){setProperty('display','none');setElementProperty('display','none','CalendarControlIFrame');dateField=null;}}
this.setarrivaldate=setarrivaldate;function setarrivaldate(datestring){try{objarrivaldate=datestring;var dateString=new String(datestring.value);var dateParts=dateString.split("-");arrivalMonth=parseInt(dateParts[1],10);arrivalDay=parseInt(dateParts[2],10);arrivalYear=parseInt(dateParts[0],10);}catch(e){}}
this.setdeparturedate=setdeparturedate;function setdeparturedate(datestring){try{objdeparturedate=datestring;var dateString=new String(datestring.value);var dateParts=dateString.split("-");departureMonth=parseInt(dateParts[1],10);departureDay=parseInt(dateParts[2],10);departureYear=parseInt(dateParts[0],10);}catch(e){}}
this.setcurcalendartype=setcurcalendartype;function setcurcalendartype(caltype){curcalendartype=caltype;}
this.visible=visible;function visible(){return dateField}
this.can_hide=can_hide;var can_hide=0;}
var calendarControl=new CalendarControl();function showCalendarControl(arrivaldate,departuredate,type){calendarControl.setarrivaldate(arrivaldate);calendarControl.setdeparturedate(departuredate);if(type=='arrival'){calendarControl.setcurcalendartype('arrival');calendarControl.show(arrivaldate);}else if(type=='departure'){calendarControl.setcurcalendartype('departure');calendarControl.show(departuredate);}}
function clearCalendarControl(){calendarControl.clearDate();}
function hideCalendarControl(){if(calendarControl.visible()){calendarControl.hide();}}
function setCalendarControlDate(year,month,day){calendarControl.setDate(year,month,day);}
function changeCalendarControlYear(change){calendarControl.changeYear(change);}
function changeCalendarControlMonth(change){calendarControl.changeMonth(change);}
document.write("<iframe id='CalendarControlIFrame' src='javascript:false;' frameBorder='0' scrolling='no'></iframe>");document.write("<div id='CalendarControl'></div>");
