﻿function Calendar(beginYear,endYear,lang,dateFormatStyle,onshow,onhide){this.beginYear=beginYear;this.endYear=endYear;this.lang=lang;this.dateFormatStyle=dateFormatStyle;this.onShow=onshow;this.onHide=onhide;if(beginYear!=null&&endYear!=null){this.beginYear=beginYear;this.endYear=endYear;}
if(lang!=null)this.lang=lang
if(dateFormatStyle!=null)this.dateFormatStyle=dateFormatStyle
this.dateControl=null;this.panel=$('calendarPanel');this.form=null;this.date=new Date();this.year=this.date.getFullYear();this.month=this.date.getMonth();this.colors={'cur_word':'#FFFFFF','cur_bg':'#00FF00','sel_word':'#FFFFFF','sel_bg':'#FFCC00','sun_word':'#FF0000','sat_word':'#0000FF','td_word_light':'#333333','td_word_dark':'#CCCCCC','td_bg_out':'#EFEFEF','td_bg_over':'#FFCC00','tr_word':'#FFFFFF','tr_bg':'#666666','input_border':'#CCCCCC','input_bg':'#EFEFEF'};this.draw();this.bindYear();this.bindMonth();this.changeSelect();this.bindData();}
Calendar.language={'year':[[''],['']],'months':[['一月','二月','三月','四月','五月','六月','七月','八月','九月','十月','十一月','十二月'],['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC']],'weeks':[['日','一','二','三','四','五','六'],['SUN','MON','TUR','WED','THU','FRI','SAT']],'clear':[['清空'],['CLS']],'today':[['今天'],['TODAY']],'close':[['关闭'],['CLOSE']]};Calendar.prototype.draw=function(){calendar=this;var mvAry=[];var charset='';mvAry[mvAry.length]='  <form name="calendarForm" style="margin: 0px;">';mvAry[mvAry.length]='    <table width="100%" border="0" cellpadding="0" cellspacing="1">';mvAry[mvAry.length]='      <tr>';mvAry[mvAry.length]='        <th align="left" width="1%"><input style="border: 1px solid '+calendar.colors["input_border"]+'; background-color:'+calendar.colors["input_bg"]+'; width:16px; height:20px;" name="prevMonth" type="button" id="prevMonth" value="&lt;" /></th>';mvAry[mvAry.length]='        <th align="center" width="98%" nowrap="nowrap"><select name="calendarYear" id="calendarYear" style="font-size:12px;"></select><select name="calendarMonth" id="calendarMonth" style="font-size:12px;"></select></th>';mvAry[mvAry.length]='        <th align="right" width="1%"><input style="border: 1px solid '+calendar.colors["input_border"]+'; background-color:'+calendar.colors["input_bg"]+'; width:16px; height:20px;" name="nextMonth" type="button" id="nextMonth" value="&gt;" /></th>';mvAry[mvAry.length]='      </tr>';mvAry[mvAry.length]='    </table>';mvAry[mvAry.length]='    <table id="calendarTable" width="100%" style="border:0px solid #CCCCCC; background-color:#FFFFFF;" border="0" cellpadding="3" cellspacing="1">';mvAry[mvAry.length]='      <tr>';for(var i=0;i<7;i++)mvAry[mvAry.length]='      <th style="font-weight:normal; background-color:'+calendar.colors["tr_bg"]+'; color:'+calendar.colors["tr_word"]+';">'+Calendar.language.weeks[this.lang][i]+'</th>';mvAry[mvAry.length]='      </tr>';for(var i=0;i<6;i++){mvAry[mvAry.length]='    <tr align="center">';for(var j=0;j<7;j++){if(j==0)mvAry[mvAry.length]='  <td style="cursor:default; color:'+calendar.colors["sun_word"]+';"></td>';else if(j==6)mvAry[mvAry.length]='  <td style="cursor:default; color:'+calendar.colors["sat_word"]+';"></td>';else mvAry[mvAry.length]='  <td style="cursor:default;"></td>';}
mvAry[mvAry.length]='    </tr>';}
mvAry[mvAry.length]='      <tr style="background-color:'+calendar.colors["input_bg"]+';">';mvAry[mvAry.length]='        <th colspan="2"><input name="calendarClear" type="button" id="calendarClear" value="'+Calendar.language["clear"][this.lang]+'" style="border: 1px solid '+calendar.colors["input_border"]+'; background-color:'+calendar.colors["input_bg"]+'; width:100%; height:20px; font-size:12px;"/></th>';mvAry[mvAry.length]='        <th colspan="3"><input name="calendarToday" type="button" id="calendarToday" value="'+Calendar.language["today"][this.lang]+'" style="border: 1px solid '+calendar.colors["input_border"]+'; background-color:'+calendar.colors["input_bg"]+'; width:100%; height:20px; font-size:12px;"/></th>';mvAry[mvAry.length]='        <th colspan="2"><input name="calendarClose" type="button" id="calendarClose" value="'+Calendar.language["close"][this.lang]+'" style="border: 1px solid '+calendar.colors["input_border"]+'; background-color:'+calendar.colors["input_bg"]+'; width:100%; height:20px; font-size:12px;"/></th>';mvAry[mvAry.length]='      </tr>';mvAry[mvAry.length]='    </table>';mvAry[mvAry.length]='  </form>';this.panel.innerHTML=mvAry.join('');this.form=document.forms['calendarForm'];this.form.prevMonth.onclick=function(){calendar.goPrevMonth(this);};this.form.nextMonth.onclick=function(){calendar.goNextMonth(this);};this.form.calendarClear.onclick=function(){calendar.dateControl.value='';calendar.hide();};this.form.calendarClose.onclick=function(){calendar.hide();};this.form.calendarYear.onchange=function(){calendar.update(this);};this.form.calendarMonth.onchange=function(){calendar.update(this);};this.form.calendarToday.onclick=function(){var today=new Date();calendar.date=today;calendar.year=today.getFullYear();calendar.month=today.getMonth();calendar.changeSelect();calendar.bindData();calendar.dateControl.value=today.format(calendar.dateFormatStyle);calendar.hide();};};Calendar.prototype.bindYear=function(){var cy=this.form.calendarYear;cy.length=0;for(var i=this.beginYear;i<=this.endYear;i++)cy.options[cy.length]=new Option(i+Calendar.language['year'][this.lang],i);};Calendar.prototype.bindMonth=function(){var cm=this.form.calendarMonth;cm.length=0;for(var i=0;i<12;i++)cm.options[cm.length]=new Option(Calendar.language['months'][this.lang][i],i);};Calendar.prototype.goPrevMonth=function(e){if(this.year==this.beginYear&&this.month==0){return;}
this.month--;if(this.month==-1){this.year--;this.month=11;}
this.date=new Date(this.year,this.month,1);this.changeSelect();this.bindData();};Calendar.prototype.goNextMonth=function(e){if(this.year==this.endYear&&this.month==11){return;}
this.month++;if(this.month==12){this.year++;this.month=0;}
this.date=new Date(this.year,this.month,1);this.changeSelect();this.bindData();};Calendar.prototype.changeSelect=function(){var cy=this.form.calendarYear;var cm=this.form.calendarMonth;for(var i=0;i<cy.length;i++){if(cy.options[i].value==this.date.getFullYear()){cy[i].selected=true;break;}}
for(var i=0;i<cm.length;i++){if(cm.options[i].value==this.date.getMonth()){cm[i].selected=true;break;}}};Calendar.prototype.update=function(e){this.year=e.form.calendarYear.options[e.form.calendarYear.selectedIndex].value;this.month=e.form.calendarMonth.options[e.form.calendarMonth.selectedIndex].value;this.date=new Date(this.year,this.month,1);this.changeSelect();this.bindData();};Calendar.prototype.bindData=function(){var calendar=this;var today=new Date();var dateArray=this.getMonthViewArray(this.date.getYear(),this.date.getMonth());var tds=$('calendarTable').getElementsByTagName('td');var selDate=new Date();if(calendar.dateControl!=null)selDate=Date.parse(calendar.dateControl.value);for(var i=0;i<tds.length;i++){tds[i].style.backgroundColor=calendar.colors['td_bg_out'];tds[i].onclick=function(){return;}
tds[i].onmouseover=function(){return;}
tds[i].onmouseout=function(){return;}
if(i>dateArray.length-1)break;tds[i].innerHTML=dateArray[i];if(dateArray[i]!='&nbsp;'){var curDate=new Date(calendar.date.getFullYear(),calendar.date.getMonth(),dateArray[i]);tds[i].onclick=function(){if(calendar.dateControl!=null)calendar.dateControl.value=new Date(calendar.date.getFullYear(),calendar.date.getMonth(),this.innerHTML).format(calendar.dateFormatStyle);calendar.hide();};tds[i].onmouseover=function(){this.style.backgroundColor=calendar.colors['td_bg_over'];};tds[i].onmouseout=function(){this.style.backgroundColor=calendar.colors['td_bg_out'];};if(selDate.format('%Y-%m-%d')==curDate.format('%Y-%m-%d')){tds[i].style.color=calendar.colors['sel_word'];tds[i].style.backgroundColor=calendar.colors['sel_bg'];tds[i].onmouseover=function(){this.style.backgroundColor=calendar.colors['td_bg_over'];};tds[i].onmouseout=function(){this.style.backgroundColor=calendar.colors['sel_bg'];};}
if(today.format('%Y-%m-%d')==curDate.format('%Y-%m-%d')){tds[i].style.color=calendar.colors['cur_word'];tds[i].style.backgroundColor=calendar.colors['cur_bg'];tds[i].onmouseover=function(){this.style.backgroundColor=calendar.colors['td_bg_over'];};tds[i].onmouseout=function(){this.style.backgroundColor=calendar.colors['cur_bg'];};}}}};Calendar.prototype.getMonthViewArray=function(y,m){var mvArray=[];var dayOfFirstDay=new Date(y,m,1).getDay();var daysOfMonth=new Date(y,m+1,0).getDate();for(var i=0;i<42;i++)mvArray[i]='&nbsp;';for(var i=0;i<daysOfMonth;i++)mvArray[i+dayOfFirstDay]=i+1;return mvArray;};Calendar.prototype.getAbsPoint=function(e){var x=e.offsetLeft;var y=e.offsetTop;while(e=e.offsetParent){x+=e.offsetLeft;y+=e.offsetTop;}
return{'x':x,'y':y};};Calendar.prototype.show=function(dateControl,popControl){if(dateControl==null)throw new Error('arguments[0] is necessary');this.dateControl=dateControl;if(dateControl.value.length>0){this.date=new Date(Date.parse(dateControl.value));this.year=this.date.getFullYear();this.month=this.date.getMonth();this.changeSelect();this.bindData();}
if(popControl==null)popControl=dateControl;var xy=this.getAbsPoint(popControl);this.panel.style.left=xy.x+'px';this.panel.style.top=(xy.y+dateControl.offsetHeight)+'px';this.panel.style.visibility='visible';if(this.onShow!=null)this.onShow(dateControl,popControl);};Calendar.prototype.hide=function(){this.panel.style.visibility='hidden';if(this.onHide!=null)this.onHide(this);};document.write('<div id="calendarPanel" style="position: absolute; visibility: hidden; z-index: 9999; background-color: #FFFFFF; border: 1px solid #CCCCCC; width:175px; font-size:12px;"></div>');dbug.enable();var Uri=new URI();var Action=Uri.get('data').act;var Utils=null;String.implement({PadLeft:function(num,char){var s=this;while(s.length<num){s=char.toString()+s;}
return s;},PadRight:function(num,char){var s=this;while(s.length<num){s=s+char.toString();}
return s;}});Number.implement({Format:function(f){if($chk(f))f=2;if(f<0)f=2;f=Math.pow(10,f);return Math.round(this*f)/f;},PadLeft:function(num,char){return this.toString().PadLeft(num,char);},PadRight:function(num,char){return this.toString().PadRight(num,char);},toFileSize:function(zero,pad){var z=$chk(zero)?zero:0,p=$chk(pad)?pad:'';var i=this,n=0;if(i==0)return z;while(i>1024){i=i/1024;n++;}
return Math.round(i*100)/100+['B','KB','MB','GB','TB','PB','EB','ZB','YB','NB','DB'][n]+p;},toTime:function(){var h=(this>3600)?Math.round(this/3600):0;var m=((this-h*3600)>60)?Math.round((this-h*3600)/60):0;var s=Math.round((this-h*3600)%60);return h.PadLeft(2,0)+':'+m.PadLeft(2,0)+':'+s.PadLeft(2,0);}});var ToElement=new Class({toElement:function(){return this.element;}});function init_vCode(){var v=$$('#ValidationCodeImage, #ChangeCodeImg');if(v)v.addEvent('click',function(e){e.stop();$('ValidationCodeImage').src='/vCode.ashx?t='+Math.random();});}
function init_Calendar(){var tm1=$('tm1'),tm2=$('tm2');var hotelOrderDateForm=$('hotelOrderDateForm');if(!tm1||!tm2)return;var checkFunc=function(cal){var d1=Date.parse(tm1.value);var d2=Date.parse(tm2.value);if(d1.diff(d2)<=0){alert('离店日期不能早于入住日期！');tm1.focus();}
else if(hotelOrderDateForm)hotelOrderDateForm.submit();};tm1.addEvent('focus',function(){new Calendar('1990','2020',0,'%Y-%m-%d',null,function(cal){var d1=Date.parse(tm1.value);var today=new Date();if(today.diff(d1)<0){alert('入住日期不能早于今天！');tm1.focus();}
else tm2.focus();}).show(tm1);});tm2.addEvent('focus',function(){new Calendar('1990','2020',0,'%Y-%m-%d',null,checkFunc).show(tm2);});}
function isSilverlightInstalled(){var b=false;try{try{var slControl=new ActiveXObject('AgControl.AgControl');b=true;}
catch(e){if(navigator.plugins["Silverlight Plug-In"])
b=true;}}
catch(e){}
return b;}
window.addEvent('domready',function(){init_vCode();init_Calendar();new Request.HTML({url:'/my/userstatus.shtml',update:$('UserStatus')}).send();});function changemenu(){$('divinfo1').style.display='none';$('divinfo3').style.display='none';$('divinfo2').style.display='block';}