Type.registerNamespace("SearchBrowse");SearchBrowse.Updater=function(c){this.QsmCollapseGroupState=new Array();this.QsmCollapseItemState=new Array();this.priceDetailsWaiterBox=null;this.PriceUpdateQueryFilter=null;var b=document.location.search;if(b.startsWith("?")){b=b.substring(1,b.length)}if((b==null)||(b.length==0)||(b.indexOf("fh_location")==-1)){b=this.GetInitialFhUrlOfPage()}this.CurrentUrl=b;this.TraceCurrentUrlChange();SearchBrowse.Updater.initializeBase(this,[c]);ThomasCook.Ecom.Web.SearchBrowse.set_timeout(50000);this.StateRetrieverDelegate=Function.createDelegate(this,this.StateRetriever);this.LoadInitialCompareDelegate=Function.createDelegate(this,this.LoadInitialCompare);this.CompareStateRetrieverDelegate=Function.createDelegate(this,this.CompareStateRetriever);this.UpdateDelegate=Function.createDelegate(this,this.OnUpdate);this.GoToDetailDelegate=Function.createDelegate(this,this.GoToDetail);this.ShowDetailDelegate=Function.createDelegate(this,this.ShowDetail);this.ListerOrFullTextSearchDelegate=Function.createDelegate(this,this.ListerOrFullTextSearch);this.KeyPressDelegate=Function.createDelegate(this,this.KeyPress);this.MoreLessDelegate=Function.createDelegate(this,this.MoreLess);this.MoreLessItemDelegate=Function.createDelegate(this,this.MoreLessItem);this.BackToListDelegate=Function.createDelegate(this,this.BackToList);this.CompareUpdateDelegate=Function.createDelegate(this,this.CompareUpdate);this.RemoveFromCompareStateRetrieverDelegate=Function.createDelegate(this,this.RemoveFromCompareStateRetriever);this.NullStateRetrieverDelegate=Function.createDelegate(this,this.NullStateRetriever);this.ShowArrangementDetailsDelegate=Function.createDelegate(this,this.ShowArrangementDetails);this.HideArrangementDetailsDelegate=Function.createDelegate(this,this.HideArrangementDetails);this.OnStorePackageInProfileDelegate=Function.createDelegate(this,this.OnStorePackageInProfile);this.RememberSelectedItemDelegate=Function.createDelegate(this,this.RememberSelectedItem);this.LoginAndStorePackageDelegate=Function.createDelegate(this,this.LoginAndStorePackage);this.QsmDateSelectDelegate=Function.createDelegate(this,this.QsmDateSelect);this.InitializeQsmDatesDelegate=Function.createDelegate(this,this.InitializeQsmDates);this.UpdatePriceDetailsDelegate=Function.createDelegate(this,this.UpdatePriceDetails);this.ShowWaitPanelDelegate=Function.createDelegate(this,this.ShowWaitPanel);this.HideWaitPanelDelegate=Function.createDelegate(this,this.HideWaitPanel);this.ShowPriceDetailsWaitPanelDelegate=Function.createDelegate(this,this.ShowPriceDetailsWaitPanel);this.HidePriceDetailsWaitPanelDelegate=Function.createDelegate(this,this.HidePriceDetailsWaitPanel);this.ShowEmptyTextSearchDelegate=Function.createDelegate(this,this.ShowEmptyTextSearch);this.DoCompareDelegate=Function.createDelegate(this,this.DoCompare);this.BeforeShowFromDateDelegate=Function.createDelegate(this,this.BeforeShowFromDate);this.InitializeNavigationDelegate=Function.createDelegate(this,this.InitializeNavigation);this.InitializeTooltipsDelegate=Function.createDelegate(this,this.InitializeTooltips);this.RegisterEventHandler("dateRangeFrom","click",true,ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse,this.UpdateDelegate,this.StateRetrieverDelegate,this.ShowWaitPanelDelegate,this.HideWaitPanelDelegate);this.RegisterEventHandler("dateRangeFrom","dummy",true,ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse,this.UpdateDelegate,this.StateRetrieverDelegate,this.ShowPriceDetailsWaitPanelDelegate,this.HidePriceDetailsWaitPanelDelegate);var d=$get("dateRangeFrom");if(d!=null){this.dateRangeWaitSpecification=this.FindWaitSpecificationInstance(d,"click");this.priceDetailsWaitSpecification=this.FindWaitSpecificationInstance(d,"dummy")}this.RegisterEventHandler("QsmChangeSelect","change",true,ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse,this.UpdateDelegate,this.StateRetrieverDelegate,this.ShowWaitPanelDelegate,this.HideWaitPanelDelegate);this.RegisterEventHandler("PagerSize","change",true,ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse,this.UpdateDelegate,this.StateRetrieverDelegate,this.ShowWaitPanelDelegate,this.HideWaitPanelDelegate);this.RegisterEventHandler("PagerSort","change",true,ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse,this.UpdateDelegate,this.StateRetrieverDelegate,this.ShowWaitPanelDelegate,this.HideWaitPanelDelegate);this.RegisterEventHandler("QsmSingleSelect","click",true,ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse,this.UpdateDelegate,this.StateRetrieverDelegate,this.ShowWaitPanelDelegate,this.HideWaitPanelDelegate);this.RegisterEventHandler("QsmMultiSelect","click",true,ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse,this.UpdateDelegate,this.StateRetrieverDelegate,this.ShowWaitPanelDelegate,this.HideWaitPanelDelegate);this.RegisterEventHandler("QsmSingleValueCheckbox","click",true,ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse,this.UpdateDelegate,this.StateRetrieverDelegate,this.ShowWaitPanelDelegate,this.HideWaitPanelDelegate);this.RegisterEventHandler("QsmReset","click",true,ThomasCook.Ecom.Web.SearchBrowse.Reset,this.UpdateDelegate,this.StateRetrieverDelegate,this.ShowWaitPanelDelegate,this.HideWaitPanelDelegate);this.RegisterEventHandler("PagerPrevious","click",true,ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse,this.UpdateDelegate,this.StateRetrieverDelegate,this.ShowWaitPanelDelegate,this.HideWaitPanelDelegate);this.RegisterEventHandler("PagerNext","click",true,ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse,this.UpdateDelegate,this.StateRetrieverDelegate,this.ShowWaitPanelDelegate,this.HideWaitPanelDelegate);this.RegisterEventHandler("PagerDirectLink","click",true,ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse,this.UpdateDelegate,this.StateRetrieverDelegate,this.ShowWaitPanelDelegate,this.HideWaitPanelDelegate);this.RegisterEventHandler("QsmGoToDetail","click",true,this.GoToDetailDelegate,this.UpdateDelegate,this.StateRetrieverDelegate,null,null);this.RegisterEventHandler("QsmListerOrFullTextSearch","click",true,this.ListerOrFullTextSearchDelegate,this.UpdateDelegate,this.StateRetrieverDelegate,this.ShowWaitPanelDelegate,this.HideWaitPanelDelegate);this.RegisterEventHandler("QsmMore","click",true,this.MoreLessDelegate,this.UpdateDelegate,this.StateRetrieverDelegate,null,null);this.RegisterEventHandler("QsmLess","click",true,this.MoreLessDelegate,this.UpdateDelegate,this.StateRetrieverDelegate,null,null);this.RegisterEventHandler("QsmMoreSingleSelect","click",true,this.MoreLessItemDelegate,this.UpdateDelegate,this.StateRetrieverDelegate,null,null);this.RegisterEventHandler("QsmLessSingleSelect","click",true,this.MoreLessItemDelegate,this.UpdateDelegate,this.StateRetrieverDelegate,null,null);this.RegisterEventHandler("QsmMoreMultiSelect","click",true,this.MoreLessItemDelegate,this.UpdateDelegate,this.StateRetrieverDelegate,null,null);this.RegisterEventHandler("QsmLessMultiSelect","click",true,this.MoreLessItemDelegate,this.UpdateDelegate,this.StateRetrieverDelegate,null,null);this.RegisterEventHandler("fullTextSearchInput","keypress",false,null,null,this.KeyPressDelegate,null,null);this.RegisterEventHandler("storePackage","click",true,this.LoginAndStorePackageDelegate,this.OnStorePackageInProfileDelegate,this.RememberSelectedItemDelegate,null,this.HideWaitPanelDelegate);this.HookChildSelects(c);this.RegisterEventHandler("QsmCompare","click",true,this.DoCompareDelegate,this.CompareUpdateDelegate,this.CompareStateRetrieverDelegate,this.ShowWaitPanelDelegate,this.HideWaitPanelDelegate);this.RegisterEventHandler("CompareBackToList","click",true,this.BackToListDelegate,this.UpdateDelegate,this.CompareStateRetrieverDelegate,null,null);this.RegisterEventHandler("RemoveFromCompare","click",true,ThomasCook.Ecom.Web.SearchBrowse.Compare,this.CompareUpdateDelegate,this.RemoveFromCompareStateRetrieverDelegate,null,null);this.RegisterEventHandler("QsmSelect","click",true,this.ShowDetailDelegate,this.UpdateDelegate,this.StateRetrieverDelegate,null,null);this.RegisterEventHandler("ArrangementDetails","mouseover",true,this.ShowArrangementDetailsDelegate,null,this.ShowArrangementDetailsDelegate,null,null);this.RegisterEventHandler("ArrangementDetails","mouseout",true,this.HideArrangementDetailsDelegate,null,this.HideArrangementDetailsDelegate,null,null);this.RegisterEventHandler("ArrangementDetails","click",true,this.ShowDetailDelegate,this.UpdateDelegate,this.StateRetrieverDelegate,null,null);var a=$get("RecommendationListerContainer");if(a!=null){this.RecommendationListerClickDelegate=Function.createDelegate(this,this.RecommendationListerClick);$addHandler(a.parentNode,"click",this.RecommendationListerClickDelegate)}this.SwitchTabDelegate=Function.createDelegate(this,this.SwitchTab);this.RegisterEventHandler("TabList","click",true,null,null,this.SwitchTabDelegate,null,null);this.RegisterEventHandler("TabMap","click",true,null,null,this.SwitchTabDelegate,null,null);$addHandler(c,"click",this.OnClickDelegate);$addHandler(c,"mouseover",this.OnMouseOverDelegate);$addHandler(c,"mouseout",this.OnMouseOutDelegate);$addHandler(c,"keypress",this.OnKeyPressDelegate);Sys.Application.add_load(this.InitializeQsmDatesDelegate);Sys.Application.add_load(this.ShowEmptyTextSearchDelegate);Sys.Application.add_load(this.InitializeNavigationDelegate);Sys.Application.add_load(this.InitializeTooltipsDelegate)};SearchBrowse.Updater.prototype={initialize:function(){SearchBrowse.Updater.callBaseMethod(this,"initialize")},TraceCurrentUrlChange:function(){Sys.Debug.trace("CurrentUrl: "+this.CurrentUrl)},InitializeNavigation:function(){Sys.Debug.trace("Initializing navigation");Sys.Application._ensureHistory();this.NavigationStateChangedDelegate=Function.createDelegate(this,this.NavigationStateChanged);Sys.Application.add_navigate(this.NavigationStateChangedDelegate);this.LoadInitialHash()},InitializeTooltips:function(){initializeTooltips("#ListerContainer",".lister-item div[id^='PriceIndication_']","#priceIndicationHelp","top right");initializeTooltips("#ListerContainer",".lister-item div[id^='ComparerHelp_']","#compareToolHelp","top left");initializeTooltips("#ListerContainer",".lister-item div[id^='AvailableAsSmartDealHelp_']","#availableAsSmartDealToolHelp")},DoCompare:function(f,e,d,b,a,c){if(d.CompareIds.length<2){this.Wait(c,false);return}return ThomasCook.Ecom.Web.SearchBrowse.Compare(f,e,d,b,a,c)},ShowEmptyTextSearch:function(){Sys.Debug.trace("Handling initial empty text search");var b=this;var a="#emptyTextSearchPopup";var d={dialogClass:"emptyTextSearch",width:450,position:["middle","center"]};var c=$get("emptyTextSearchPopup");if(c!=null){this.emtytextsearchpopup=new Ecom.UI.ModalBox(a,d);this.emtytextsearchpopup.show();jQuery(a).parent().appendTo(jQuery("form:first"));jQuery("#PopupCloseBtn").click(function(){b.emtytextsearchpopup.hide()});jQuery("#PopupBackToLister").click(function(){b.emtytextsearchpopup.hide()});jQuery("#PopupSearch").click(function(){var f=$get("PopupSearchTerm");if(f!=null){var e=$get("fullTextSearchInput");if(e!=null){e.value=f.value}}b.ListerOrFullTextSearch(b.results,b.context,"emptyTextSearchPopup")})}},GetInitialFhUrlOfPage:function(){var a=null;var b=$get("QSMContent");if(b!=null){a=b.getAttribute("initialfh");if(a==null){a=b.getAttribute("defaultfh")}}return a},GetInitialSearchFhUrlOfPage:function(){var a=null;var b=$get("QSMContent");if(b!=null){a=b.getAttribute("initialsearchfh")}return a},GetDatePickerDateString:function(b){var c=jQuery("#"+b);if(c.length>0){var a=c.datepicker("getDate");if(a){return a.format("yyyyMMdd")}else{return null}}},GetCurrentQsmDateRange:function(){var a=new ThomasCook.Ecom.Core.PageComponents.Data.CommonView.SearchBrowse.DateRangeParameters();a.EarliestDepartureDayString=this.GetDatePickerDateString("dateRangeFrom");a.LatestReturnDayString=this.GetDatePickerDateString("dateRangeTo");Sys.Debug.trace("Current daterange: "+a.EarliestDepartureDayString+"/"+a.LatestReturnDayString);return a},BeforeShowFromDate:function(b){var c=Math.ceil((b-new Date())/(1000*60*60*24));var a=jQuery("#dateRangeFrom").attr("dateDelta");return[(a&&a.indexOf("|"+c+"|")>=0),""]},GetInitialDatepickerAttributes:function(b,e){if(!b){return null}var a=jQuery.extend({},e);var f=b.getAttribute("code");if(f){a.initialDate=Date.parseInvariant(f,"yyyyMMdd")}var d=b.getAttribute("minOffset");if(d){a.minOffset=parseInt(d,10)||null}var c=b.getAttribute("maxOffset");if(c){a.maxOffset=parseInt(c,10)||null}if(a.offsetDate){if(a.minOffset){a.minDate=new Date(a.offsetDate.getTime());a.minDate.setDate(a.minDate.getDate()+a.minOffset)}if(a.maxOffset){a.maxDate=new Date(a.offsetDate.getTime());a.maxDate.setDate(a.maxDate.getDate()+a.maxOffset)}}return a},SetDatepickerAttributes:function(b,a){if(!b||!a){return}b.setRanges(a.minDate,a.maxDate);if(a.initialDate){b.selectDate(a.initialDate,false)}},CreateQsmCalenderControls:function(){if($get("dateRangeFrom")!=null){var d=Ecom.UI.Calendar.create({target:"#dateRangeFrom",altField:"#dateRangeFromTrigger",onSelect:this.QsmDateSelectDelegate,beforeShowDay:this.BeforeShowFromDateDelegate});var c=Ecom.UI.Calendar.create({target:"#dateRangeTo",altField:"#dateRangeToTrigger",onSelect:this.QsmDateSelectDelegate});var b=this.GetInitialDatepickerAttributes(d,{minOffset:1,maxOffset:56,offsetDate:new Date()});this.SetDatepickerAttributes(d,b);var a=this.GetInitialDatepickerAttributes(c,{minOffset:1,maxOffset:21,offsetDate:b.initialDate});if(a&&a.initialDate){this.SetDatepickerAttributes(c,a)}else{c.disable()}}},QsmDateSelect:function(){this.DateRangeWait();ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse(null,null,this.StateRetriever(),this.UpdateDelegate,this.MethodTimeoutDelegate,this.dateRangeWaitSpecification)},InitializeQsmDates:function(){Sys.Debug.trace("Initializing QSM dates");this.priceDetailsWaiterBox=new Ecom.UI.ModalBox("#priceDetailsWaitPanel",{dialogClass:"waiter-box",width:250,position:["middle",250],overlay:{id:"extraOverlay",zIndex:901}});this.CreateQsmCalenderControls();var initialFilterJsonText=jQuery("#InitialPriceUpdateQueryFilter_QSM").text();Sys.Debug.trace("Initial filter: "+initialFilterJsonText);if(initialFilterJsonText){this.PriceUpdateQueryFilter=eval("("+initialFilterJsonText+")")}},UpdatePrices:function(){if(this.PriceUpdateQueryFilter!=null){var a=$get("QSMContent");if(a!=null){this.PriceUpdateQueryFilter.PageKeyName=a.getAttribute("pageKey");this.PriceUpdateQueryFilter.Language=a.getAttribute("language");this.PriceDetailsWait();Sys.Debug.trace("Starting price update");ThomasCook.Ecom.Web.SearchBrowse.UpdatePrices(null,null,this.PriceUpdateQueryFilter,this.UpdatePriceDetailsDelegate,this.MethodTimeoutDelegate,this.priceDetailsWaitSpecification)}}},UpdatePriceDetails:function(c,b,a){Sys.Debug.trace("Finishing price update");if(c!=null){this.DoPartialUpdateWithOmnitureLogging(c)}this.Wait(b,false)},RememberSelectedItem:function(d){if(d==null){return null}var c=d.target;if(c==null){return null}var e=c.id;if(e==null){return null}var b=e.indexOf("_");if(b>=0){var a=e.substring(b+1);this.LastSelectedItem=a}return null},LoginAndStorePackage:function(a,h,c,b,j,g){var d=$find("header");if(d!=null){if(!d.IsLoggedIn()){var f=$find("loginpopupcomponentmain");if(f!=null){f.RememberProductToStore(a,h,c,b,j,g)}var e=$find("loginpopupcomponentmodaldialog");if(e!=null){e.Show()}}else{this.ShowWaitPanel();ThomasCook.Ecom.Web.Personalization.StorePackageInProfile(a,h,c,b,j,g)}}},OnStorePackageInProfile:function(a){if(a=="Succeeded"){show("storedPackagePanel_"+this.LastSelectedItem);hide("storePackagePanel_"+this.LastSelectedItem)}else{var b=$find("header");if(b!=null){b.ShowError(a)}}this.HideWaitPanel()},LoadInitialCompare:function(f,e,b){this.OnUpdate(f,e,b);var c=new Object();c.showwaitmethod=this.ShowWaitPanelDelegate;c.hidewaitmethod=this.HideWaitPanelDelegate;var d=new Object();d.wait=c;var a=this.CompareStateRetriever();if((a.CompareIds!=null)&&(a.CompareIds.length>1)){ThomasCook.Ecom.Web.SearchBrowse.Compare(null,null,a,this.CompareUpdateDelegate,this.MethodTimeoutDelegate,d)}},LoadInitialUrl:function(c,g,f){if(c.startsWith("#")){c=c.substring(1,c.length)}if(c.startsWith("s=")){c=c.substring(2,c.length)}this.CurrentUrl=c;this.TraceCurrentUrlChange();var d=new Object();d.DontAddToHistory=true;var b=new Object();b.showwaitmethod=this.ShowWaitPanelDelegate;b.hidewaitmethod=this.HideWaitPanelDelegate;d.wait=b;this.Wait(d,true);var e=jQuery.query.load("?"+c);var a=e.get("c");if((a!=null)&&(a.length>0)){ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse(null,null,this.StateRetriever(null,f),this.LoadInitialCompareDelegate,this.MethodTimeoutDelegate,d)}else{ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse(null,null,this.StateRetriever(null,f),this.UpdateDelegate,this.MethodTimeoutDelegate,d)}},RestoreGroupCollapseState:function(){var a;for(a in this.QsmCollapseGroupState){var b=a.split("_");if(this.QsmCollapseGroupState[a]){this.MoreLess("QsmMore_"+b[1])}else{this.MoreLess("QsmLess_"+b[1])}}},RestoreItemCollapseState:function(){var a;for(a in this.QsmCollapseItemState){var b=a.split("_");if(this.QsmCollapseItemState[a]){this.MoreLessItem("QsmMoreSingleSelect_"+b[1])}else{this.MoreLessItem("QsmLessSingleSelect_"+b[1])}}},DecodeUrl:function(b){if((b==null)||(b==undefined)||(b=="")){return null}var a=decodeURIComponent(b);return a},GatherMultiSelectParametersCollection:function(){var b=new Array();var a=this;jQuery("#QSMContent div[crittype='MultiSelect'], #QSMContent div[crittype='SingleValueCheckbox']").each(function(c){var d=a.GatherMultiSelectParameters(this);if(d!=null){b[c]=d}});return b},GatherMultiSelectParameters:function(c){var a=new ThomasCook.Ecom.Core.PageComponents.Data.CommonView.SearchBrowse.MultiSelectParameters();a.FacetName=jQuery(c).attr("critid");var b=[];jQuery(c).find("input:checked").each(function(){b.push(this.value)});a.FacetValues=b;a.OperatorType=jQuery(c).find("input:checked:first").attr("combineOperator");if(a.OperatorType==""||a.OperatorType==null){a.OperatorType="Or"}return a},GatherPagerParameters:function(c){var d=new ThomasCook.Ecom.Core.PageComponents.Data.CommonView.SearchBrowse.PagerSettings();var b;var a;if(c!=null){if(c.id=="PagerSize"){b=c}if(c.id=="PagerSort"){a=c}}if(b==null){b=$get("PagerSize")}if(a==null){a=$get("PagerSort")}if(b!=null){d.Size=b[b.selectedIndex].text}if(a!=null){d.SortOrder=a[a.selectedIndex].getAttribute("sortby")}return d},StateRetriever:function(d,b){Sys.Debug.trace("Retrieving state for QSM update");var a=(b==="showgmap"||b==="showlister");var e=(d&&d.target)||null;var c=new ThomasCook.Ecom.Core.PageComponents.Data.CommonView.SearchBrowse.SearchBrowseParameters();var g=new ThomasCook.Ecom.Core.PageComponents.Data.CommonView.SearchBrowse.SearchParameters();c.SubmitSearchParameters=g;c.CompareParameters=this.CompareStateRetriever();if(e!==null){if(b==="change"){g.FhUrl=this.DecodeUrl(e.value)}else{g.FhUrl=this.DecodeUrl(e.getAttribute("fhurl"))}}if(!g.FhUrl){if(a){g.FhUrl=this.CurrentUrl}else{g.FhUrl=this.RemoveFhParam(this.CurrentUrl,"fh_start_index")}}if((b!=="loadinitialhash")&&(b!=="navigation")){g.MultiSelectParametersCollection=this.GatherMultiSelectParametersCollection();c.PagerSetting=this.GatherPagerParameters(e);c.DateRange=this.GetCurrentQsmDateRange()}var f=$get("QSMContent");if(f!=null){c.PageKeyName=f.getAttribute("pageKey");c.Language=f.getAttribute("language")}if(a){c.ShowGMapOnLister=(b==="showgmap")}else{if(f){c.ShowGMapOnLister=f.getAttribute("showMap")||false}}return c},OnUpdate:function(d,c,a){Sys.Debug.trace("Finishing QSM update");if(d!=null){if(d.HistoryAnchor!=null&&d.HistoryAnchor!=""){if(c.DontAddToHistory==true){Sys.Debug.trace("Skipping history update")}else{this.AddHistory(d.HistoryAnchor)}}if(d.RedirectLocation!=null&&d.RedirectLocation!=""){window.location=d.RedirectLocation}else{this.DoPartialUpdateWithOmnitureLogging(d);this.CreateQsmCalenderControls();this.PriceUpdateQueryFilter=d.PriceUpdateQueryFilter;this.UpdatePrices();Sys.Debug.trace("Should we show the GMap? "+d.ShowMap);if(d.ShowMap){Sys.Debug.trace("Initialize GMap objects...");this.InitGMap()}}}this.RestoreGroupCollapseState();this.RestoreItemCollapseState();this.ShowParentComponent($get("QSMContent"));this.show("mainContent");this.show("mainSidebar");var b=document.getElementsByName("PagerContent");if(b!=null){for(i=0;i<b.length;i++){this.ShowParentComponent(b[i])}}this.Wait(c,false);jQuery(".tooltip-element").tooltip({tip:"#defaultTooltip"});this.InitializeTooltips()},ListerOrFullTextSearch:function(f,c,k){var h=this.CurrentUrl;if(h==null){return}var j=$get("QSMContent");if(j==null){return}var g=j.getAttribute("Lister");if(g==null){return}var l=new Sys.StringBuilder();l.append(g);l.append("?");var e=$get("fullTextSearchInput");if(e){var a=e.value;if(a){var d=j.getAttribute("initialsearchfh");if(d){h=d+"/$s="+encodeURIComponent(a)}}}l.append("fh_eds=ß&fh_view=lister&");if(h.startsWith("?")){h=h.substring(1,h.length)}h=this.RemoveFhParam(h,"fh_eds");h=this.RemoveFhParam(h,"fh_search");h=this.RemoveFhParam(h,"fh_view");l.append(h);var b=l.toString();open(b,"_self")},RemoveFhParam:function(d,b){var e=d;var f=e.indexOf(b,0);while(f>=0){var c=e.substring(0,f);var a=e.indexOf("&",f);if(a>=0){c+=d.substring(a+1,e.length)}e=c;f=e.indexOf(b,0)}return e},KeyPress:function(c,b){var a=c.charCode;if(a!=null&&(a==10||a==13)){this.ListerOrFullTextSearch(null,null,null);c.preventDefault()}},MoreLess:function(a,c,b){var d=a.split("_");if(d[0]=="QsmMore"){this.QsmCollapseGroupState["QsmMore_"+d[1]]=true;this.show("QsmCollapse_"+d[1]);this.show("QsmLess_"+d[1]);this.hide("QsmMore_"+d[1])}else{this.QsmCollapseGroupState["QsmMore_"+d[1]]=false;this.hide("QsmCollapse_"+d[1]);this.hide("QsmLess_"+d[1]);this.show("QsmMore_"+d[1])}},MoreLessItem:function(a,c,b){var d=a.split("_");if(/QsmMore(Single|Multi)Select/.test(d[0])){this.QsmCollapseItemState[d[0]+"_"+d[1]]=true;this.show(d[0].replace("More","Collapse")+"_"+d[1]);this.hide(d[0]+"_"+d[1])}else{this.QsmCollapseItemState[d[0]+"_"+d[1]]=false;this.hide(d[0].replace("Less","Collapse")+"_"+d[1]);this.show(d[0].replace("Less","More")+"_"+d[1])}},show:function(a){var b=$get(a);if(b!=null){b.style.display=""}},hide:function(a){var b=$get(a);if(b!=null){b.style.display="none"}},CompareStateRetriever:function(){var a=new Array();jQuery("#ListerContainer input.comparer-checkbox:checked").each(function(d){a[d]=this.id});var b=new ThomasCook.Ecom.Core.PageComponents.Data.CommonView.SearchBrowse.CompareParameters();b.CompareIds=a;b.FhUrl=this.CurrentUrl;var c=$get("QSMContent");if(c!=null){b.PageKeyName=c.getAttribute("pageKey")}return b},GoToDetail:function(d,c,a){var f=this.CurrentUrl;if(f==null){return}var e=SearchBrowse.Updater.getDetailPageBaseUrl();if(e==null){return}var g=new Sys.StringBuilder();g.append(e);g.append("?");if(f.startsWith("?")){f=f.substring(1,f.length)}g.append(f);var b=g.toString();SearchBrowse.Updater.redirectTo(b)},ShowDetail:function(a,d,c){var f=a.split("_");if(f.length<2){return}var e=$get(a);if(!e){return}var b=f[f.length-1];var g=jQuery("#QsmDetailLink_"+b);if(g!=null){url=g.attr("href");SearchBrowse.Updater.redirectTo(url)}},BackToList:function(a,f,e){this.show("mainContent");this.ShowParentComponent($get("QSMContent"));var b=document.getElementsByName("PagerContent");if(b!=null){for(i=0;i<b.length;i++){this.ShowParentComponent(b[i])}}this.hide("ComparerContainer");this.show("mainSidebar");var c=jQuery.query.load("?"+this.CurrentUrl);var d=c.remove("c").toString();var g=decodeURIComponent(d);this.AddHistory(g);jQuery("#ComparerContainer").parent().hide()},GetCompareParams:function(){var b=this.CompareStateRetriever();var a="";var d=b.CompareIds;if(d!=null){for(var c=0;c<d.length;c++){if(c!=0){a+=","}a+=d[c]}}return a},CompareUpdate:function(h,j,b){this.OnUpdate(h,j,b);this.hide("mainContent");this.HideParentComponent($get("QSMContent"));var d=document.getElementsByName("PagerContent");if(d!=null){for(i=0;i<d.length;i++){this.HideParentComponent(d[i])}}this.show("ComparerContainer");this.hide("mainSidebar");var c="?"+this.CurrentUrl;var f=jQuery.query.load(c);var g=this.GetCompareParams();var e=f.set("c",g).toString();var a=decodeURIComponent(e);this.AddHistory(a);jQuery("#ComparerContainer").parent().show()},LoadInitialHash:function(){var a=document.location.hash;Sys.Debug.trace("Initial navigation to "+a);var b="QsmChangeSelect";if((a!=null)&&(a.length>0)){a=decodeURIComponent(a);a=decodeURIComponent(a);this.LoadInitialUrl(a,b,"loadinitialhash")}else{this.UpdatePrices()}},NavigationStateChanged:function(c,f){Sys.Debug.trace("Receiving navigation event");var d="QsmChangeSelect";var a=f.get_state().s;if((a!=null)&&(a.length>0)){a=decodeURIComponent(a);if(a!=this.CurrentUrl){Sys.Debug.trace("Navigation: InitialUrl= "+a);this.LoadInitialUrl(a,d,"navigation")}else{Sys.Debug.trace("Navigation: Navigate not needed to "+a)}}else{var b=location.search;if((b!=null)&&(b.length>0)){b=b.substring(1);Sys.Debug.trace("Navigation: back to initial fhlocation: "+b);this.LoadInitialUrl(b,d,"navigation")}else{var a=this.GetInitialSearchFhUrlOfPage();if(a!=null){Sys.Debug.trace("Navigation: back to homepage: "+a);this.LoadInitialUrl(a,d,"navigation")}else{Sys.Debug.trace("Navigation: no navigation data")}}}},AddHistory:function(d){if(d.startsWith("?")){d=d.substring(1)}var g=encodeURIComponent(d);if(this.CurrentUrl!=d){this.CurrentUrl=d;this.TraceCurrentUrlChange();Sys.Debug.trace("AddHistory: Adding ("+g+")");var f=document.location;var a=encodeURIComponent(g);var b=f.href.length-f.hash.length+a.length;try{if(b>1020){Sys.Debug.trace("AddHistory: url too long ("+g+")")}else{Sys.Application.addHistoryPoint({s:g},"")}}catch(c){Sys.Debug.trace("AddHistory: Unhandled exception adding ("+g+"): "+c+" Url length= "+b)}this.UpdateLanguageLink()}else{Sys.Debug.trace("AddHistory: remain on same url: "+g)}},NullStateRetriever:function(a,c,b){return null},RemoveFromCompareStateRetriever:function(c,b){var a=c.target.id;var e=a.indexOf("_");if(e>=0){var f=a.substring(e+1);var d=$get(f);if(d!=null){d.checked=false}}return this.CompareStateRetriever(c,b)},UpdateLanguageLink:function(){var d=document.getElementsByName("languageLink");if((d!=undefined)&&(d!=null)){for(i=0;i<d.length;i++){var c=d[i].href.indexOf("?");if(c>0){var a=d[i].href.substring(0,c);var b=a+"?"+this.CurrentUrl+"&sc_lang="+d[i]["lang"];d[i].setAttribute("href",b)}}}},ShowArrangementDetails:function(d){if(d.target&&d.target.id){var g=d.target.id.split("_");var b=g[g.length-1];var c=$get(b);var a=c.getAttribute("displayed");if(!a||(a!="1")){var f=getMousePosX(d);var e=getMousePosY(d);c.style.left=f+"px";c.style.top=e+"px";c.style.display="block";c.setAttribute("displayed","1")}}},HideArrangementDetails:function(c){if(c.target&&c.target.id){var d=c.target.id.split("_");var a=d[d.length-1];var b=$get(a);b.setAttribute("displayed","0");this.hide(a)}},RecommendationListerClick:function(b){b.preventDefault();var c=b.target;if(c!=null){do{var a=SearchBrowse.Updater.buildDetailPageURL({element:c});if(a){SearchBrowse.Updater.redirectTo(a);return true}c=c.parentNode}while(c!=null)}return true},DateRangeWait:function(){this.Wait(this.dateRangeWaitSpecification,true)},PriceDetailsWait:function(){this.Wait(this.priceDetailsWaitSpecification,true)},ShowOverlay:function(){},HideOverlay:function(){},ShowWaitPanel:function(){Ecom.Application.showWaiterBox()},HideWaitPanel:function(){Ecom.Application.hideWaiterBox()},ShowPriceDetailsWaitPanel:function(){(this.priceDetailsWaiterBox&&this.priceDetailsWaiterBox.show())},HidePriceDetailsWaitPanel:function(){(this.priceDetailsWaiterBox&&this.priceDetailsWaiterBox.hide())},SwitchTab:function(d){var b=jQuery("div.lister-tab.active-tab > a").attr("id");var c="unknown";if(d.target!=null){c=d.target.id}var a={DontAddToHistory:true,wait:{showwaitmethod:this.ShowWaitPanelDelegate,hidewaitmethod:this.HideWaitPanelDelegate}};if((c=="TabList"&&c!=b)||(c=="unknown"&&b=="TabMap")){this.Wait(a,true);ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse(null,null,this.StateRetriever(d,"showlister"),this.UpdateDelegate,this.MethodTimeoutDelegate,a)}if((c=="TabMap"&&c!=b)||(c=="unknown"&&b=="TabMap")){this.Wait(a,true);ThomasCook.Ecom.Web.SearchBrowse.UpdateSearchBrowse(null,null,this.StateRetriever(d,"showgmap"),this.UpdateDelegate,this.MethodTimeoutDelegate,a)}},InitGMap:function(){gmDispatcher=new SearchBrowse.GmDispatcher();gmDispatcher.registerLister(new SearchBrowse.GmLister());gmDispatcher.registerMapComponent(new MapComponent());gmDispatcher.initialize()}};SearchBrowse.Updater.getDetailPageBaseUrl=function(){return jQuery("#QSMContent").attr("Detail")||""};SearchBrowse.Updater.extractUrlParams=function(a){if(!a){return}return{searchValue:a.getAttribute("url")||"",detailUrl:a.getAttribute("detailUrl")||SearchBrowse.Updater.getDetailPageBaseUrl()||""}};SearchBrowse.Updater.buildDetailPageURL=function(b){if(!b||!(b.element)){return}var a=SearchBrowse.Updater.extractUrlParams(b.element);jQuery.extend(b,a);if(!b.detailUrl){return}return b.detailUrl};SearchBrowse.Updater.redirectTo=function(a){if(a){if(a.startsWith("http:")){open(a,"_blank")}else{open(a,"_self")}}};SearchBrowse.Updater.registerClass("SearchBrowse.Updater",Ecom.Omniture);