﻿if(typeof Soobb=="undefined"){Soobb={}};if(typeof Soobb.Scripts=="undefined"){Soobb.Scripts={}};if(typeof Soobb.Scripts.Hotels=="undefined"){Soobb.Scripts.Hotels={}};Soobb.Scripts.Hotels.Search=new(function(){var AreaID=-1;var AreaSubject="";var AreaEnglish="";var PageIndex=-1;var SortType=0;var Descending=false;var AttributeFilter="";var PriceFilter=0;var RegionFilter="";var StarlevelFilter=254;this.Init=function(Area,Chinese,English,Page){Init_BindSort();Init_Filter();Init_Pager();AreaID=Area==null?1:Area;AreaSubject=Chinese;AreaEnglish=English;PageIndex=Page==null?1:Page;document.getElementById("SearchInput").value=Chinese;Soobb.Labs.UI.Suggester.BindElement("SearchInput",LoadData);};var LoadData=function(Inputer,Callback){Soobb.UI.Hotels.Homepage.GetSuggests(Inputer.value,function(Result){Callback(Result)});};var Init_BindSort=function(){Helper_BindLink("Sort_Soobb",function(){Soobb.Scripts.Hotels.Search.ChangeSortType(0);Soobb.Scripts.Hotels.Search.RefreshData()});Helper_BindLink("Sort_Price",function(){Soobb.Scripts.Hotels.Search.ChangeSortType(1);Soobb.Scripts.Hotels.Search.RefreshData()});Helper_BindLink("Sort_Starlevel",function(){Soobb.Scripts.Hotels.Search.ChangeSortType(2);Soobb.Scripts.Hotels.Search.RefreshData()});Helper_BindLink("Sort_Comment",function(){Soobb.Scripts.Hotels.Search.ChangeSortType(3);Soobb.Scripts.Hotels.Search.RefreshData()});};var Init_Filter=function(){var RegionFilters=document.getElementsByName("RegionFilter");for(Index=0;Index<RegionFilters.length;Index++){RegionFilters[Index].onclick=function(){Soobb.Scripts.Hotels.Search.ChangeRegionFilter(this.innerHTML);Soobb.Scripts.Hotels.Search.RefreshData();return false;};};document.getElementById("Filter_Price").onchange=function(){Soobb.Scripts.Hotels.Search.ChangePriceFilter(this.value);Soobb.Scripts.Hotels.Search.RefreshData();return false;};document.getElementById("Filter_Region").onchange=function(){Soobb.Scripts.Hotels.Search.ChangeRegionFilter(this.value);Soobb.Scripts.Hotels.Search.RefreshData();return false;};document.getElementById("Filter_Starlevel").onchange=function(){Soobb.Scripts.Hotels.Search.ChangeStarlevelFilter(this.value);Soobb.Scripts.Hotels.Search.RefreshData();return false;};};var Init_Pager=function(){var PageControl=document.getElementById("PageControl");var Pages=PageControl.childNodes;for(Index=0;Index<Pages.length;Index++){if(Pages[Index].className!="Current"){Pages[Index].onclick=function(){var CurrentPage=this.childNodes[0].innerHTML;if(CurrentPage=="前页"){CurrentPage=PageIndex-1};if(CurrentPage=="后页"){CurrentPage=PageIndex+1};Soobb.Scripts.Hotels.Search.ChangePageIndex(CurrentPage);Soobb.Scripts.Hotels.Search.RefreshData();return false;};};};};this.ChangeSortType=function(Sort){if(SortType==Sort){Descending=Descending==true?false:true;}else{Descending=Sort==2||Sort==3?true:false;};if(Sort==0){Descending=false;};PageIndex=1;SortType=Sort;};this.ChangePageIndex=function(Page){PageIndex=Page;};this.ChangeAttributeFilter=function(Attribute){PageIndex=1;AttributeFilter=Attribute;};this.ChangePriceFilter=function(Price){PageIndex=1;PriceFilter=Price;};this.ChangeRegionFilter=function(Region){PageIndex=1;RegionFilter=Region;var Regions=document.getElementById("Filter_Region").childNodes;for(Index=0;Index<Regions.length;Index++){if(Regions[Index].value==Region){Regions[Index].selected="selected";};};if(document.getElementById("SearchInput").value==AreaSubject){document.getElementById("SearchInput").value=AreaSubject+" "+Region;};};this.ChangeStarlevelFilter=function(Starlevel){StarlevelFilter=Starlevel;};this.RefreshData=function(){if((SortType!=0||Descending==true)&&(AttributeFilter!=""||PriceFilter!=0||RegionFilter!=""||StarlevelFilter!=0)){Soobb.UI.Hotels.HotelUtility.SortDataAndFilter(AreaID,1,PageIndex,SortType,Descending,AttributeFilter,PriceFilter,RegionFilter,StarlevelFilter,RenderData);return;};if(AttributeFilter!=""||PriceFilter!=0||RegionFilter!=""||StarlevelFilter!=0){Soobb.UI.Hotels.HotelUtility.FilterData(AreaID,1,PageIndex,AttributeFilter,PriceFilter,RegionFilter,StarlevelFilter,RenderData);return;};if(SortType!=0||Descending==true){Soobb.UI.Hotels.HotelUtility.SortData(AreaID,1,PageIndex,SortType,Descending,RenderData);return;};Soobb.UI.Hotels.HotelUtility.GetData(AreaID,1,PageIndex,RenderData);};var RenderData=function(Result){var Data=new StringBuilder();var Hotels=Result.value,Counter=0;Soobb.Scripts.Satellite.Hotels.ClearMarker();for(Index=1;Index<Hotels.length;Index++){var Hotel=Hotels[Index];Data.Append("<dd>");Data.Append(Hotel[9]==""?"":"<a class='Marker Marker"+Counter+"' id='Marker"+Counter+"'></a>");Data.Append("<h4><a href='/Hotels_Details_"+Hotel[0]+".html'>"+Hotel[1]+"</a></h4>");Data.Append("<strong>"+RenderStarlevel(Hotel[2])+"</strong>");Data.Append("</dd>");Data.Append("<dt>");Data.Append("<span class='Image'><a href='/Hotels_Photos_"+Hotel[0]+".html'><img src='"+(Hotel[6]==null?"/Styles/Images/Hotels/No_Picture.png":Hotel[6])+"' /></a></span>");Data.Append("<div class='Description'>");Data.Append("<ul>");Data.Append("<li><label>地址:</label> <span class='Address'>"+Hotel[3]+"</span></li>");Data.Append("<li><label>区域:</label> "+(Hotel[4]!=null?"<a href='/Hotels_"+AreaEnglish+"_Region_"+encodeURIComponent(Hotel[4])+".html' onclick='Soobb.Scripts.Hotels.Search.ChangeRegionFilter(\""+Hotel[4]+"\"); Soobb.Scripts.Hotels.Search.RefreshData(); return false;' class='"+(RegionFilter==Hotel[4]?"Current":"")+"'>"+Hotel[4]+"</a>":"--")+"</li>");Data.Append("<li><label>评价:</label> ");if(Hotel[7]==0){Data.Append("暂无");}else{Data.Append("<span class='Rate'>"+Hotel[8]+" 分</span>来自 <a href='/Hotels_Comments_"+Hotel[0]+".html'>"+Hotel[7]+" 个客人的评论</a>");};Data.Append("</li><li>");Data.Append("<ul>");Data.Append("<li class='First'><a href='/Hotels_Properties_"+Hotel[0]+".html#Service'>服务设施</a></li>");if(Hotel[9]==""){Data.Append("<li class='Last'><a href='/Hotels_Photos_"+Hotel[0]+".html'>实景照片</a></li>");}else{Data.Append("<li><a href='/Hotels_Nearlist_"+Hotel[0]+".html'>邻近酒店</a></li>");Data.Append("<li class='Last'><a href='/Hotels_Local_"+Hotel[0]+".html'>周边消费</a></li>");};Data.Append("</ul>");Data.Append("</li>");Data.Append("</ul>");Data.Append("</div>");Data.Append("<span class='Price'>");Data.Append("<strong>￥"+Hotel[5]+"</strong>");Data.Append("<span><a href='/Hotels_Details_"+Hotel[0]+".html'>更多房价</a></span>");Data.Append("<span><a href=''>酒店向导</a></span>");Data.Append("</span>");Data.Append("</dt>");Counter+=(Hotel[9]==""?0:1);};document.getElementById("HotelLister").innerHTML=Data.toString();Counter=0;for(Index=1;Index<Hotels.length;Index++){var Hotel=Hotels[Index];if(Hotel[9]!=""){Soobb.Scripts.Satellite.Hotels.BuildMarker(Hotel[9],Hotel[10],Counter);Counter+=1;};};document.getElementById("Count").innerHTML=Hotels[0][0];document.getElementById("LowPrice").innerHTML=Hotels[0][1];var MinPage,MaxPage;if(Hotels[0][0]==0){MinPage=1;MaxPage=1;}else{MaxPage=Hotels[0][0]%10==0?Hotels[0][0]/10:parseInt(Hotels[0][0]/10)+1;MaxPage=MaxPage>parseInt(PageIndex)+6?parseInt(PageIndex)+6:MaxPage;MinPage=MaxPage-12<1?1:MaxPage-12;};Data.Clear();for(Page=MinPage;Page<=MaxPage;Page++){Data.Append("<li class='"+(Page==PageIndex?"Current":"")+(Page==MaxPage?" Last":"")+"'>");if(Page==PageIndex){Data.Append(Page);}else{Data.Append("<a href='javascript:void(0)' onclick='Soobb.Scripts.Hotels.Search.ChangePageIndex("+Page+");Soobb.Scripts.Hotels.Search.RefreshData();return false;'>"+Page+"</a>");};};document.getElementById("PageControl").innerHTML=Data.toString();RenderSort();};var RenderSort=function(){document.getElementById("Sort_Soobb").className="";document.getElementById("Sort_Price").className="";document.getElementById("Sort_Starlevel").className="";document.getElementById("Sort_Comment").className="";document.getElementById("Queue_Soobb").className="Hidden";document.getElementById("Queue_Price").className="Hidden";document.getElementById("Queue_Starlevel").className="Hidden";document.getElementById("Queue_Comment").className="Hidden";switch(SortType){case 0:document.getElementById("Sort_Soobb").className="Selected";break;case 1:document.getElementById("Sort_Price").className="Selected";document.getElementById("Queue_Price").className=(Descending?"DownArrow":"UpArrow");break;case 2:document.getElementById("Sort_Starlevel").className="Selected";document.getElementById("Queue_Starlevel").className=(Descending?"DownArrow":"UpArrow");break;case 3:document.getElementById("Sort_Comment").className="Selected";document.getElementById("Queue_Comment").className=(Descending?"DownArrow":"UpArrow");break;};};var RenderStarlevel=function(Starlevel){var Data=new StringBuilder();for(Star=0;Star<Starlevel;Star++){Data.Append("<span class='Star'>★</span>");};return Data.toString();};var Helper_BindLink=function(Target,Function){document.getElementById(Target).onclick=function(){Function();return false;};};var StringBuilder=function(str){this.tmp=new Array();};StringBuilder.prototype.Append=function(value){this.tmp.push(value);return this;};StringBuilder.prototype.Clear=function(){this.tmp.length=1;};StringBuilder.prototype.toString=function(){return this.tmp.join('');};});
