﻿var IndexClient=Elong.Page.IndexClient;IndexClient=Class.create();Object.extend(IndexClient.prototype,{name:"IndexClient",initialize:function(){this.initializeDOM();this.initializeEvent();this.urlTemplate=new Template(HotelIndexController.UrlConfig.Hotel_List);this.ListCityurlTemplate=new Template(HotelIndexController.UrlConfig.Hotel_ListCity);this.urlMapTemplate=new Template(HotelIndexController.UrlConfig.Hotel_ListMap);this.afterDays=HotelIndexController.AfterDays;this.inDays=HotelIndexController.InDays;this.WebCategory=HotelIndexController.WebKind;this.render();},initializeDOM:function(){this.dvSearchRegion=$("#dvSearchRegion");this.hotelName=$("#HotelName");this.InCityName_input=$("#InCityName_input");this.InCityName=$("#InCityName");},destroyDOM:function(){this.dvSearchRegion=null;},initializeEvent:function(){this.dvSearchRegion.bind("click",this.OnClickdvSearchRegion.bindAsEventListener(this));this.hotelName.bind("focus",this.OnFocusHotelName.bindAsEventListener(this));this.hotelName.bind("blur",this.OnBlurHotelName.bindAsEventListener(this));this.dvSearchRegion.bind("change",this.OnChangedvSearchRegion.bindAsEventListener(this));this.InCityName_input.bind("change",this.OnChangeInCityName_input.bindAsEventListener(this));this.InCityName.bind("change",this.OnChangeInCityName.bindAsEventListener(this));this.InCityName.bind("focus",this.OnFocusInCityName.bindAsEventListener(this));this.dvSearchRegion.bind("keydown",this.checkSearch.bindAsEventListener(this));$(window).unload(this.dispose.bind(this));},destroyEvent:function(){},checkSearch:function(A){if(A.keyCode==13){$("#btnSearch").click();}},OnFocusInCityName:function(A){$("#InCityName_input").val("");$("#InCityName").removeClass();$("#InCityName").addClass("city-i sc-w1");},OnChangeInCityName:function(A){var B=Event.element(A);if($("#InCityName_input").val()=="undefined"||$("#InCityName_input").val()==""){$("#InCityName_input").val(this.FindCity($("#InCityName").val(),"hotelcity"));}$("#InCityName").removeClass();$("#InCityName").addClass("city-i sc-w1");},OnFocusHotelName:function(A){var B=Event.element(A);if(B[0].value=="输入酒店部分或全部名称"){B[0].value="";}$("#HotelName").removeClass();$("#HotelName").addClass("sc-w4");},OnBlurHotelName:function(A){var B=Event.element(A);if(B[0].value==""){B[0].value="输入酒店部分或全部名称";$("#HotelName").removeClass();$("#HotelName").addClass("sc-w4 l_black");}},OnChangeInCityName_input:function(A){},OnChangedvSearchRegion:function(B){var C=Event.element(B);var A=C.attr("method");switch(A){case"txtEnterDate":case"txtOutDate":break;}},OnClickdvSearchRegion:function(evt){var element=Event.element(evt);var method=element.attr("method");switch(method){case"txtEnterDate":new CalendarWindow({eventElement:element,selectedDate:element.val(),language:"cn",onSelected:function(date){element.val(date);$("#CheckOutDate").click();$("#CheckInDate").removeClass();$("#CheckInDate").addClass("time-i sc-w");}.bind(this)});break;case"txtOutDate":var edate=validator.convertDate($("#CheckInDate").val());edate=new Date(edate.setHours(24));edate=validator.reFormatDateString(edate.getFullYear()+"-"+(edate.getMonth()+1)+"-"+edate.getDate());new CalendarWindow({eventElement:element,selectedDate:validator.reFormatDateString(edate),language:"cn",enabledFrom:validator.reFormatDateString(edate),onSelected:function(date){element.val(date);$("#CheckOutDate").removeClass();$("#CheckOutDate").addClass("time-i sc-w");}.bind(this)});break;case"lnkGo2Map":if(!this.searchValid()){return false;}if($("#InCityName_input").val()=="undefined"||$("#InCityName_input").val()==""){$("#InCityName_input").val(this.FindCity($("#InCityName").val(),"hotelcity"));}var cityName=$("#InCityName").val();var cityId=$("#InCityName_input").val();var checkInDate=$("#CheckInDate")[0].value;var checkOutDate=$("#CheckOutDate")[0].value;var star=$("#Star").val();var price=$("#Price").val();var hotelName=$("#HotelName").val();var arrPrice=price.split(",");var LowPrice=arrPrice[0];var HighPrice=arrPrice[1];if(cityId==""){$error($("#InCityName"),"没有匹配的城市。");return;}var url=this.urlMapTemplate.eval({cityid:cityId,starlevel:star,lowprice:LowPrice,highprice:HighPrice,startlat:0,startlng:0,areaid:0,endlat:0,endlng:0,distance:5,language:HotelIndexController.Language.toLowerCase(),hotelsort:1,pageindex:1});Globals.cookie("ShHotel","",{InDate:checkInDate,OutDate:checkOutDate});if(HotelIndexController.WebCategory!="Online"){$("#lnkGo2Map")[0].href=url;}break;case"Price":$("#Price").css({color:"#000"});break;case"Star":$("#Star").css({color:"#000"});break;case"btnSearch":if(!this.searchValid()){return;}if($("#InCityName_input").val()=="undefined"||$("#InCityName_input").val()==""){$("#InCityName_input").val(this.FindCity($("#InCityName").val(),"hotelcity"));}var cityName=$("#InCityName").val();var cityId=$("#InCityName_input").val();var checkInDate=$("#CheckInDate")[0].value;var checkOutDate=$("#CheckOutDate")[0].value;var star=$("#Star").val();var price=$("#Price").val();var hotelName=$("#HotelName").val();var arrPrice=price.split(",");var LowPrice=arrPrice[0];var HighPrice=arrPrice[1];if(cityId==""){$error($("#InCityName"),"没有匹配的城市。");return;}Globals.cookie("ShHotel","",{InDate:checkInDate,OutDate:checkOutDate});this.WaitingProcess();var url=this.urlTemplate.eval({cityid:cityId,enterdate:checkInDate,exitdate:checkOutDate,starlevel:star,lowprice:LowPrice,highprice:HighPrice,areaid:0,language:HotelIndexController.Language.toLowerCase(),hotelsort:1,pageindex:1});var actionUrl;if(hotelName=="输入酒店部分或全部名称"){actionUrl=url;}else{actionUrl=url+""+(HotelIndexController.CampaignId==""?"?s="+escape(hotelName):"&s="+escape(hotelName));}if(LowPrice=="0"&&HighPrice=="0"&&star=="-1"){var url=this.ListCityurlTemplate.eval({cityid:cityId,language:HotelIndexController.Language.toLowerCase()});if(hotelName=="输入酒店部分或全部名称"){actionUrl=url;}else{actionUrl=url+""+(HotelIndexController.CampaignId==""?"?s="+escape(hotelName):"&s="+escape(hotelName));}}if(window.location.host=="big5.elong.com"){actionUrl="http://big5.elong.com/gate/big5/hotel.elong.com"+actionUrl;actionUrl+=actionUrl.indexOf("?")>0?"&isbig5=true":"?isbig5=true";}$("#ConditionForm").attr("action",actionUrl);$("#ConditionForm").submit();break;}},FindCity:function(cityname,citytype){var cityData;eval("cityData = "+citytype+";");var cityName="CityNameCn";var result=Globals.searchObj(cityName,cityname,cityData);if(result.length>0&&result[0]!=null){return decodeURIComponent(result[0].CityId);}return"";},WaitingProcess:function(A){document.getElementById("divSearch").style.display="block";document.getElementById("ulSearch").style.display="none";document.getElementById("divSeekGif").className="s-lbj";},daysBetween:function(A,I){var B=A.substring(5,A.lastIndexOf("-"));var F=A.substring(A.length,A.lastIndexOf("-")+1);var C=A.substring(0,A.indexOf("-"));var D=I.substring(5,I.lastIndexOf("-"));var G=I.substring(I.length,I.lastIndexOf("-")+1);var E=I.substring(0,I.indexOf("-"));var H=((Date.parse(B+"/"+F+"/"+C)-Date.parse(D+"/"+G+"/"+E))/86400000);return Math.abs(H);},render:function(){var A={dataId:"hotelcity",dataHotId:"hotelcityhot",needGetData:false,needGetDataHot:false,hotHeight:"155"};$("#InCityName").CitySuggest("cn",jQuery.extend({},A,{resultId:"InCityName_input",resultNextId:"CheckInDate",resultExtendMethod:function(C,D,B){$("#InCityName_input").val(D.CityCode);}}));if(HotelIndexController.Language!="EN"){this.hotelName.HotelSuggest("http://hotel.elong.com/suggest.html",{matchSubset:false,formatItem:function(B){return B;},scroll:true,scrollHeight:300,max:10,mouseDownOnSelect:true,dataType:"jsonp",delay:50,isSubmit:true,extraParams:{"EnCode":"UTF","CityId":function(){return $("#InCityName_input").val();}}});}},onCityNameChange:function(){},searchValid:function(){if(!validator.valid($("#InCityName").val(),"notEmpty & nonSpecialSign")){$error($("#InCityName"),"请输入城市名称，且不可包含*&+等符号及阿拉伯数字。");return false;}if(!validator.valid($("#CheckInDate").val(),"notEmpty & date")){$error($("#CheckInDate"),"请输入有效的入住日期。");return false;}if(!validator.valid($("#CheckOutDate").val(),"notEmpty & date")){$error($("#CheckOutDate"),"请输入有效的离店日期。");return false;}var C=new Date();var G=validator.reFormatDateString(C.getFullYear()+"-"+(C.getMonth()+1)+"-"+C.getDate());var H=$("#CheckInDate").val();var I=$("#CheckOutDate").val();var E=validator.reFormatDateString(H);var A=validator.reFormatDateString(I);if(E<G){$error($("#CheckInDate"),"入住日期须晚于或者等于当天日期。");return false;}if(A<G){$error($("#CheckOutDate"),"离店日期须晚于或者等于当天日期。");return false;}var B=validator.convertDate(E);B=new Date(B.setHours(24));if(!validator.valid($("#CheckOutDate").val(),"notEmpty & dateRange",validator.getDateString(B),null)){$error($("#CheckOutDate"),"离店日期须至少晚于入住日期1天。");return false;}var D=this.daysBetween(E,validator.reFormatDateString(new Date().getFullYear()+"-"+(new Date().getMonth()+1)+"-"+new Date().getDate()));if(D>this.afterDays){$error($("#CheckInDate"),"如果您需要预订"+E+"的酒店，请致电："+HotelIndexController.WebTelAndNo+"，我们会竭诚为您服务。");return false;}var F=this.daysBetween(E,A);if(F>this.inDays){$error($("#CheckOutDate"),"如果您需要在酒店入住"+this.inDays+"天以上，请致电："+HotelIndexController.WebTelAndNo+"，我们会竭诚为您服务。");return false;}return true;},dispose:function(){this.destroyEvent();this.destroyDOM();}});var client=null;$ready(function(){client=new IndexClient();});