﻿
(function(){if(typeof BeApart==='undefined'){BeApart={};}
if(typeof BeApart.Search==='undefined'){BeApart.Search={};}
if(typeof BeApart.Search.SearchEngine==='undefined'){BeApart.Search.SearchEngine={};}
String.prototype.padLeft=function(strChar,intLength)
{var str=this+'';while(str.length!=intLength){str=strChar+str;}
return str;};var getUtcDateFromString=function(string)
{var tab=string.split('-');if(tab.length==3&&tab[0].length==4&&tab[1].length==2&&tab[2].length==2)
{return new Date(Date.UTC(tab[0],tab[1]-1,tab[2]));}
return new Date();};Cuke.apply(BeApart.Search.SearchEngine,{$districts:null,isPageResult:false,curPageUrl:"",wrapper:null,fromCalendar:null,toCalendar:null,cache:{},init:function(id,cities,isPageResult,curPageUrl)
{var self=this;this.wrapper=$j('#'+id);this.isPageResult=isPageResult;this.curPageUrl=curPageUrl;this.fromCalendar=$j($j('.CukeCalendarBeApartSearch')[0]).CukeCalendar();this.toCalendar=$j($j('.CukeCalendarBeApartSearch')[1]).CukeCalendar();this.cache[""]=this.getSelectedSearchInfo();var districtsSelector=$j('.districts .districts-selector',this.wrapper);var searchButton=$j('.search-button',this.wrapper);districtsSelector.change(function()
{var s=$j(this);Cuke.SyncDic.Val('DistrictSelected',$j('option:selected',s).attr('value'));});Cuke.SyncDic.Bind('DistrictSelected',function(value)
{$j('option:selected',districtsSelector).removeAttr('selected');$j('option[value='+value+']',districtsSelector).attr('selected','selected');districtsSelector.css('background-color','#00F6FF');setTimeout(function()
{districtsSelector.css('background-color','#FFFFFF');setTimeout(function()
{districtsSelector.css('background-color','#00F6FF');setTimeout(function()
{districtsSelector.css('background-color','#FFFFFF');},1000);},100);},200);});districtsSelector.mouseout(function(){Cuke.SyncDic.Val('DistrictHighlighted',0);});$j('option',districtsSelector).mouseover(function()
{Cuke.SyncDic.Val('DistrictHighlighted',$j(this).attr('value'));});$j(window).bind('hashchange',function(event)
{if(isPageResult)
{var url=$j.bbq.getState("search");if(!url){url="";}
var searchInfo=self.cache[url];if(searchInfo)
{var curInfo=self.getSelectedSearchInfo();if(curInfo.From.getTime()!=searchInfo.From.getTime()||curInfo.To.getTime()!=searchInfo.To.getTime()||curInfo.NbPers!=searchInfo.NbPers)
{self.updateForm(searchInfo);self.putInSession();}}
else
{self.cache[url]=self.getSelectedSearchInfo();}}});var setLinkButton=function()
{if(!isPageResult)
{var resultPage=cities[self.getCityName()];if(resultPage)
{searchButton.attr("href",resultPage);}}
else
{searchButton.attr("href",curPageUrl);}};setLinkButton();$j('.city-selector',this.wrapper).change(function()
{setLinkButton();});searchButton.click(function()
{var errorMess=self.getErrorMessage();if(errorMess!=""){Cuke.Window.alert(errorMess,null,{size:[350,100]});}
else
{$j.ajax({type:"POST",contentType:"application/json; charset=utf-8",url:Cuke.rootUrl+"BeApart/Basic/Service/SearchService.asmx/ResetFilter",data:JSON.stringify({cityName:self.getCityName()}),dataType:"json",success:function(resp)
{if(resp.d.Result===0)
{self.putInSession(function()
{if(self.isPageResult)
{var from=self.fromCalendar.selected[0];var to=self.toCalendar.selected[0];$j.bbq.pushState({search:from.getUTCFullYear().toString()+"-"+(from.getUTCMonth()+1).toString().padLeft('0',2)+"-"+from.getUTCDate().toString().padLeft('0',2)+"_"+
to.getUTCFullYear().toString()+"-"+(to.getUTCMonth()+1).toString().padLeft('0',2)+"-"+to.getUTCDate().toString().padLeft('0',2)+"_"+
self.getNbPers(),filter:0,page:1});}
else
{var url=searchButton.attr("href");if(districtsSelector.length>0&&districtsSelector.val()!="0")
{url+="filter=district-"+districtsSelector.val();}
window.location.href=url;}});}
else{alert(resp.d.ErrorText);}}});}
return false;});},putInSession:function(onSuccedCallBack)
{var self=this;$j.ajax({type:"POST",contentType:"application/json; charset=utf-8",url:Cuke.rootUrl+"BeApart/Basic/Service/SearchService.asmx/PutInSession",data:JSON.stringify({searchInfo:self.getSelectedSearchInfo()}),dataType:"json",success:function(resp)
{if(resp.d.Result===0)
{if(typeof onSuccedCallBack=="function")
{onSuccedCallBack();}}}});},updateForm:function(searchInfo)
{this.fromCalendar.selectDate(searchInfo.From);this.toCalendar.selectDate(searchInfo.To);$j(".city-selector option[value='"+searchInfo.CityName+"']",this.wrapper).attr("selected","selected");$j(".pers-selector option[value='"+searchInfo.NbPers+"']",this.wrapper).attr("selected","selected");},getSelectedSearchInfo:function()
{return{From:this.fromCalendar.selected[0],To:this.toCalendar.selected[0],NbPers:this.getNbPers(),CityName:this.getCityName()};},getNbPers:function()
{var v=$j(".pers-selector",this.wrapper).val();return v!="0"?parseInt(v,10):0;},getCityName:function()
{var selector=$j(".city-selector",this.wrapper);var name;if(selector.length===0)
{name=$j("input:hidden[name=cityName]",this.wrapper).val();}
else
{name=selector.val();}
return name!="0"?name:"";},getErrorMessage:function()
{var errorMsg="";if(this.getCityName()=="")
{errorMsg=Cuke.getString("BeApart.SearchSelectCity");}
if(this.getNbPers()===0)
{if(errorMsg.length>0)
{errorMsg+="<br />";}
errorMsg+=Cuke.getString("BeApart.SearchSelectPersonn");}
return errorMsg;}});})();