(function(App){App.createUIComponent('waitingDialog',{initialize:function(cfg){cfg=$H({name:'waiting_dialog',position:'center'}).merge(cfg).toObject();return new EzRez.UI.Dialog(cfg);}});App.createUIComponent('ScheduleChangeModification',(function(){var ScheduleChangeModification=function(){var _updateViaAgax=function(evt){var schedule_change_status=$('schedule_change_status').value;var booking_id=$('schedule_change_booking_id').value;new Ajax.Request("/travel/itinerary_details_schedule_change_modification_process.cfm",{parameters:{status:schedule_change_status,booking_id:booking_id},evalScripts:true,onCreate:function(){},onLoading:function(response){},onComplete:function(response){},onSuccess:function(response,exception){$('schedule_change_success_message').show();$('current_status').innerHTML=schedule_change_status;},onException:function(response,exception){$('schedule_change_failure_message').show();},onFailure:function(response){$('schedule_change_failure_message').show();}});};this.applyListeners=function(){if($('schedule_change_modification_update')){$('schedule_change_modification_update').observe('click',_updateViaAgax);}};this.removeListeners=function(){};};return{initialize:function(){if($('schedule_change_success_message')){$('schedule_change_success_message').hide();}
if($('schedule_change_failure_message')){$('schedule_change_failure_message').hide();}
return new ScheduleChangeModification();},applyListeners:function(ui){ui.applyListeners();},removeListeners:function(ui){ui.removeListeners();}};})());App.createUIComponent('detailPricingMatrix',(function(){var DetailPricingMatrix=function(cfg){var _config=$H({anchorSelector:'a.show_detail_pricing_matrix'}).merge(cfg).toObject();var _lightBox=new EzRez.UI.LightBox({className:'detailPricingMatrix',type:'inline'});var _anchorClickListener=function(evt){Event.stop(evt);var anchor=$(evt.target);_lightBox.show(anchor);};this.applyListeners=function(){$$(_config.anchorSelector).each(function(anchor){anchor.observe('click',_anchorClickListener);});};this.removeListeners=function(){$$(_config.anchorSelector).each(function(anchor){anchor.stopObserving('click',_anchorClickListener);});};};return{initialize:function(cfg){return new DetailPricingMatrix(cfg);},applyListeners:function(ui){ui.applyListeners();},removeListeners:function(ui){ui.removeListeners();},unload:function(ui){ui.removeListeners();}};})());})(EzRez.Application);(function(App){var ydom=YAHOO.util.Dom;App.createUIComponent('debugger',(function(){if(!App.WebContext){return{};}
if(!App.WebContext.isDebugMode){return{};}
var keyListener=function(evt){if(evt.keyCode!==Event.KEY_F2&&evt.keyCode!==undefined){return false;}
App.Debug.setEnabled(true);App.Debug.openPopup();Event.stop(evt);return false;};var clickListener=function(evt){App.Debug.setEnabled(true);App.Debug.openPopup();Event.stop(evt);return false;};var anchor=new Element('a',{'id':'open_debugger','href':'#'}).update("Open Debugger");return{initialize:function(){document.body.appendChild(anchor);return null;},applyListeners:function(){document.observe('keydown',keyListener);anchor.observe('click',clickListener);}};})());App.createUIComponent('searchCalendar',(function(){var SearchCalendar=function(cfg){var _config=$H({calendarButtonSelector:'a.calendar-image'}).merge(cfg).toObject();var _calendar=new EzRez.UI.CalendarFormInput(cfg);var _domController=new EzRez.App.DOMController({});_domController.addAction(_config.calendarButtonSelector+',click',function(evt,controller){Event.stop(evt);var anchor=$(evt.target);if(anchor.nodeName.strip().toLowerCase()!=='a'){anchor=anchor.up('a');}
if(!anchor){return;}
var value=$(anchor.href.split('#')[1]);if(!value){return;}
_calendar.show(value);});var _popCalFix=function(){window.gfPop={};window.popCal=function(input,minDate,maxDate){_calendar.addInput('date1');_calendar.addInput('date2');_calendar.show(input);};};this.applyListeners=function(){_calendar.applyListeners();_domController.applyActions();};this.removeListeners=function(){_calendar.removeListeners();_domController.removeActions();};this.addInput=function(id){_calendar.addInput(id);};this.clearInputs=_calendar.clearInputs;_popCalFix();};return{initialize:function(params){return new SearchCalendar(params);},applyListeners:function(ui){ui.applyListeners();},removeListeners:function(ui){ui.removeListeners();},upload:function(ui){ui.removeListeners();}};})());App.createUIComponent('checkOutForm',(function(){var CheckOutForm=function(cfg){var _config=$H({travelContainerSelector:'span.travelerContainer',firstNameSelector:'input.address_firstname',lastNameSelector:'input.address_lastname',travelerSelectClass:'travelerSelect'}).merge(cfg).toObject();var _domController=new EzRez.App.DOMController({});var _travelerPulldownMap=$H();var _buildTravelerSelects=function(){var optionTpl="<option value='#{index}'>#{firstName} #{lastName}</option>";var options=[];$$(_config.travelContainerSelector).each(function(container){var travelerId=container.identify();var traveler={firstName:container.down(_config.firstNameSelector).getValue(),lastName:container.down(_config.lastNameSelector).getValue(),index:travelerId.replace('traveler_','')};var name=traveler.firstName+traveler.lastName;if(name.blank()){return;}
options.push(optionTpl.interpolate(traveler));});var optionsHtml=options.join("\n");$$('select.'+_config.travelerSelectClass).each(function(select){var travelerId=_travelerPulldownMap.get(select.name);var index=travelerId?parseInt(travelerId):parseInt(select.getValue());select.update(optionsHtml);setTimeout(function(){if(!index||select.options.length<index){select.selectedIndex=-1;return;}
select.selectedIndex=index-1;},500);});};var _firstNameBlurListener=function(evt){_buildTravelerSelects();};var _lastNameBlurListener=function(evt){_buildTravelerSelects();};_domController.addAction(_config.lastNameSelector+',blur',_firstNameBlurListener);_domController.addAction(_config.firstNameSelector+',blur',_lastNameBlurListener);this.setPulldownTraveler=function(inputName,travelerId){_travelerPulldownMap.set(inputName,travelerId);_buildTravelerSelects();};this.applyListeners=function(){_domController.applyActions();};this.removeListeners=function(){_domController.removeActions();};this.buildTravelerSelects=function(){_buildTravelerSelects();};};return{initialize:function(cfg){var checkOutForm=new CheckOutForm(cfg);checkOutForm.buildTravelerSelects();return checkOutForm;},applyListeners:function(ui){ui.applyListeners();},removeListeners:function(ui){ui.removeListeners();},unload:function(ui){ui.removeListeners();}};})());App.createUIComponent('modify-search-box',(function(){var SearchAirModify=function(cfg){var _config=$H({openButtonSelector:'#modifySearch .show_hide_modify',closeButtonSelector:'.modifySearchBody .modifySearchClose a',searchBoxViewSelector:'.modifySearchBody',revealIconSelector:'#modifySearch .modifySearchToggle',revealIconClass:'active'}).merge(cfg).toObject();var _searchBox=$$(_config.searchBoxViewSelector);if(_searchBox.size()<=0){App.Debug.error("Missing expected search box: "+_config.searchBoxViewSelector);return;}
var _searchHeader=$$(_config.revealIconSelector);var _recalc=true;var _calcSearchPos=function(){_recalc=true;};var _onOpenSearchBoxClick=function(evt){Event.stop(evt);_searchBox.first().setStyle({display:'block'});if(_searchHeader.first()){_searchHeader.first().setStyle({background:"transparent url('/images/filter_arrow_down.gif') center left no-repeat"});}
if(_recalc===false){return;}
_recalc=false;var _pos=ydom.getXY('modifySearch');_pos[1]+=ydom.get('modifySearch').offsetHeight-21;var _w=ydom.get('modifySearchContainer').offsetWidth;var _ref=_pos[0]+_w;var _view=document.viewport.getWidth();if(_ref<_view){_pos[0]+=ydom.get('modifySearch').offsetWidth-160;}else{_pos[0]+=ydom.get('modifySearch').offsetWidth-_w;}
ydom.setXY('modifySearchContainer',_pos);};var _onCloseSearchBoxClick=function(evt){Event.stop(evt);_searchBox.first().setStyle({display:'none'});if(_searchHeader.first()){_searchHeader.first().setStyle({background:"transparent url('/images/filter_arrow_right.gif') center left no-repeat"});}};var _open=$$(_config.openButtonSelector);if(_open.size()<=0){App.Debug.error("Missing expected open selector: "+_config.openButtonSelector);return;}
_open.first().observe('click',_onOpenSearchBoxClick);var _close=$$(_config.closeButtonSelector);if(_close.size()>0&&_close.first()){_close.first().observe('click',_onCloseSearchBoxClick);}
this.recalcSearchBoxPos=_calcSearchPos;};return{initialize:function(params){return new SearchAirModify(params);}};})());})(EzRez.Application);(function(App){App.createUIComponent('AirlinesMac',{initialize:function(){var component=new EzRez.UI.MultiAutoComplete({name:'airlines',maxInputs:3});component.loadAirportsFromSelect();return component;}});(function(){var _airports=[];['',1,2,3,4,5].each(function(number){App.createUIComponent('ConnectingAirportsMac'+number,{initialize:function(){var component=new EzRez.UI.MultiAutoComplete({name:'connecting_airports'+number,maxInputs:1});if(_airports.length===0){_airports=component.loadAirportsFromSelect($('connecting_airports_select'));}else{component.loadAirportsFromArray(_airports);}
return component;},unload:function(){_airports=null;}});});})();App.createUIComponent('partial-room-stay',(function(){var PartialRoomStay=function(){var _searchCalendar=App.use('searchCalendar');_searchCalendar.clearInputs();_searchCalendar.addInput('date1');_searchCalendar.addInput('date3');_searchCalendar.addInput('date4');_searchCalendar.addInput('date2');var _showCheckBox=function(){var elm=$$('.partial_room_stay_row');if(elm.size()>0){elm.invoke('show');}};var _hideCheckBox=function(){var elm=$$('.partial_room_stay_row');if(elm.size()>0){elm.invoke('hide');}};var _showDates=function(){var elm=$$('.partial_stay_dates');if(elm.size()>0){elm.invoke('show');}};var _hideDates=function(){var elm=$$('.partial_stay_dates');if(elm.size()>0){elm.invoke('hide');}};var _checkBoxClickListener=function(evt){var elm=$('partial_room_stay');if(elm!=null){if(elm.checked==true){_showDates();}else{_hideDates();}}};var _productCheckboxClickListener=function(evt){if(($('room1').checked==true&&($('air1').checked==true||$('car1').checked==true))){_showCheckBox();var elm=$('partial_room_stay');if(elm!=null){if(elm.checked==true){_showDates();}}}else{_hideCheckBox();_hideDates();}};this.applyListeners=function(){var elm=$('partial_room_stay');if(elm!=null){elm.observe('click',_checkBoxClickListener);$$('input.product_checkbox').each(function(input){input.observe('click',_productCheckboxClickListener);});}};this.removeListeners=function(){var elm=$('partial_room_stay');if(elm!=null){elm.stopObserving('click',_checkBoxClickListener);$$('input.product_checkbox').each(function(input){input.stopObserving('click',_productCheckboxClickListener);});}};this.unload=function(){this.removeListeners();};this.setup=function(){_productCheckboxClickListener();_checkBoxClickListener();};};return{initialize:function(){var component=new PartialRoomStay();component.setup();return component;},applyListeners:function(component){component.applyListeners();},removeListeners:function(component){component.removeListeners();},unload:function(component){component.unload();}};})());})(EzRez.Application);(function(App){App.createUIComponent('alignHotelFilters',(function(){var showHideModifyElmId='show_hide_modify';var hotelAvailContainerEmlId='hotel_avail_container';var hotelFiltersElmId='hotel_filters';var oldOnclick=function(){};var alignHotelFilters=function(evt){if(oldOnclick){oldOnclick();}
if(!$(hotelAvailContainerEmlId)){return;}
if(!$(hotelFiltersElmId)){return;}
var resultsTop=$(hotelAvailContainerEmlId).cumulativeOffset().top;var hotelFilters=$(hotelFiltersElmId);var marginTop=hotelFilters.getStyle('marginTop');if(marginTop){marginTop=parseInt(marginTop.replace('px',''));}
if(!marginTop){marginTop=0;}
var hotelFiltersTop=hotelFilters.cumulativeOffset().top-marginTop;if(resultsTop>hotelFiltersTop){hotelFilters.setStyle({marginTop:(resultsTop-hotelFiltersTop)+'px'});}else{hotelFilters.setStyle({marginTop:0});}
if(evt){Event.stop(evt);}};return{initialize:function(){alignHotelFilters();if(!$(showHideModifyElmId)){return;}
oldOnclick=$(showHideModifyElmId).onclick;$(showHideModifyElmId).onclick=null;return null;},applyListeners:function(){if(!$(showHideModifyElmId)){return;}
$(showHideModifyElmId).observe('click',alignHotelFilters);},removeListeners:function(){if(!$(showHideModifyElmId)){return;}
$(showHideModifyElmId).stopObserving('click',alignHotelFilters);}};})());App.createUIComponent('hotelsMapWaiting',{initialize:function(){return new EzRez.UI.Spinner('hotels_map_waiting',{hide_sibling:false});}});App.createUIComponent('hotelDescriptionExpander',(function(){var DetailExpander=function(){var _onClickDescriptionHandler=function(event){var _el=Event.element(event);if(_el.tagName.toLowerCase()!="a"){return;}
var _p=Element.up(_el,'.supplier-desc');if(!_p){return;}
var _i=Element.select(_p,'.hotel_description_inner');if(Element.hasClassName(_el,'open')){Event.stop(event);var _c=Element.select(_p,'a.close');if(_c.length>0){_el.hide();_c[0].show();}
if(_i.length>0){_i[0].setStyle({height:'auto'});_i[0].setStyle({overflow:'visible'});}}else if(Element.hasClassName(_el,'close')){Event.stop(event);var _o=Element.select(_p,'a.open');if(_o.length>0){_el.hide();_o[0].show();}
if(_i.length>0){_i[0].setStyle({height:''});_i[0].setStyle({overflow:'hidden'});}}};var _hotelContainer=$('hotel_avail_container');if(!_hotelContainer){_hotelContainer=$$('form .avail');if(_hotelContainer.length>0){_hotelContainer=_hotelContainer[0];}}
if(_hotelContainer){Event.observe(_hotelContainer,'click',_onClickDescriptionHandler);}
this.applyListeners=function(){this.hideUnnecessaryLinks();};this.removeListeners=function(){;};this.unload=function(){;};this.hideUnnecessaryLinks=function(){var _outer=Element.select('hotel_avail_container','.hotel_description_outer');var _inner=Element.select('hotel_avail_container','.hotel_description_inner');for(var i=_inner.length-1;i>-1;i--){if(_inner[i].offsetHeight>=_inner[i].scrollHeight){var _uo=Element.select(_outer[i],'.open');if(_uo.length){_uo[0].hide();}
var _uc=Element.select(_outer[i],'.close');if(_uc.length){_uc[0].hide();}}}};this.hideUnnecessaryLinks();};return{initialize:function(){return new DetailExpander();}};})());App.createUIComponent('hotelResultsTabs',{initialize:function(){var tabLinks=new EzRez.UI.TabLinks({name:'HotelsTabs',default_tab:'hotels_list_view',link_active_css:'active_tab',no_hide_classname:'no_hide',onshow:function(evt,tab){switch(tab.identify()){case'hotels_list_view':$('hotels_list_view').removeClassName('map_active');break;case'hotels_map_view':$('hotels_list_view').addClassName('map_active');break;}}});return tabLinks;}});App.requires('hotelsMap',['hotelsMapWaiting','hotelResultsTabs','hotelMap'])
App.createUIComponent('hotelsMap',(function(){var HotelsMap=function(){var _hotelMap=App.use('hotelMap');var _waiting=App.use('hotelsMapWaiting');var _hotelResultsTabs=App.use('hotelResultsTabs');var _hotelResultsController=App.getDOMController('hotelResultsController');var _map=null;this.setMap=function(map){_map=map;};this.getMap=function(){return _map;};this.startup=function(){if(!$('hotels_map_canvas')){return false;}
_waiting.hide();_hotelResultsTabs.addLinks($$('#hotels_view_nav a'));if(!EzRez.UI.GMap.isCompatible()){$('hotels_view_nav').down('li.hotels_map_tab').hide();_hotelResultsTabs.showTab('hotels_list_view');$('hotels_list_view').addClassName('gmapsDisabled');return false;}
if(_hotelMap){_hotelMap.closeExtInfoWindow();}
_map=new EzRez.UI.GMap({canvas_id:'hotels_map_canvas',map_options:{googleBarOptions:{suppressZoomToBounds:true}},setup:function(map){map.addControl(new GSmallMapControl());map.addControl(new GMapTypeControl());map.enableContinuousZoom();map.enableGoogleBar();}});_map.addListener('extinfowindowopen',function(){setTimeout(function(){_hotelResultsController.applyAction('a.view_more_overlay,click',$('info_window_ext'));},500);});$('hotels_map_tab').observe('click',function(evt){_waiting.show();setTimeout(function(){_map.fixCenter(true);_waiting.hide();},500);});_hotelResultsTabs.showLastViewedTab();this.reload($('hotels_list_view').select('div.hotel_map_container'));return true;};this.reload=function(elements){if(!EzRez.UI.GMap.isCompatible()){return false;}
if(!$('hotels_map_canvas')){return false;}
_waiting.show();if(!Object.isElement(elements.first())){elements=elements.collect(function(id){return $(id);});}
_map.parse({elements:elements,clear_markers:true,parseComplete:function(markers,addresses){if(markers.size()>0){_waiting.hide();}}});};this.closeExtInfoWindow=function(){if(!_map){return;}
_map.getMap().closeExtInfoWindow();};};return{initialize:function(){var component=new HotelsMap();component.startup();return component;}};})());App.createUIComponent('hotelMap',(function(){var HotelMap=function(){var _map=null;var _hotelResultsController=App.getDOMController('hotelResultsController');var _hotelsMap=App.use('hotelsMap');this.setMap=function(map){_map=map;};this.getMap=function(){return _map;};this.startup=function(){if(!EzRez.UI.GMap.isCompatible()){return false;}
var canvas_selector=$('lightbox').select('.hotel_map_canvas');if(canvas_selector.size()==0){return false;}
var canvas_id=canvas_selector[0].identify();if(_hotelsMap){_hotelsMap.getMap().closeExtInfoWindow();}
_map=new EzRez.UI.GMap({canvas_id:canvas_id,info_id:'lightbox',setup:function(map){map.addControl(new GSmallMapControl());map.addControl(new GMapTypeControl());map.enableContinuousZoom();map.enableGoogleBar();}});_map.addListener('extinfowindowopen',function(){setTimeout(function(){_hotelResultsController.applyAction('a.view_more_overlay,click',$('info_window_ext'));},500);});};this.closeExtInfoWindow=function(){if(!_map){return;}
_map.getMap().closeExtInfoWindow();};};return{initialize:function(){return new HotelMap();}};})());App.createUIComponent('lightBoxForHotelDetails',{initialize:function(){return new EzRez.UI.LightBox({className:'hotel_details',type:'iframe'});}});App.createUIComponent('lightBoxForHotelMap',{initialize:function(){return new EzRez.UI.LightBox({className:'hotel_map',type:'inline',opened:function(event,elm_id,controller){setTimeout(function(){App.use('hotelMap').startup();},500);},hidden:function(event,elm_id,controller){App.use('hotelMap').closeExtInfoWindow();EzRez.UI.GMap.unload();var map=App.use('hotelsMap');map.startup();map.reload($('hotels_list_view').select('div.hotel_map_container'));}});}});App.createUIComponent('lightBoxForTabbedHotelDetails',{initialize:function(){return new EzRez.UI.LightBox({className:'hotel_details_tabbed',type:'iframe'});}});App.createUIComponent('lightBoxForVirtualTour',{initialize:function(){return new EzRez.UI.LightBox({className:'virtual_tour',type:'iframe'});}});App.createUIComponent('lightBoxForReviews',{initialize:function(){return new EzRez.UI.LightBox({className:'hotel_review_overlay',type:'iframe'});}});App.createUIComponent('lightBoxDefault',{initialize:function(){return new EzRez.UI.LightBox({className:'popup_overlay',type:'iframe'});}});App.requires('hotelUpdater',['hotelResultsController','hotelDescriptionExpander','bonus-offer-display','waitingDialog','hotelsMap']);App.createUIComponent('hotelUpdater',(function(){var AjaxFilter=function(cfg){var config=$H({create:function(){},loading:function(){},complete:function(){},failure:function(){},exception:function(){},target:'hotel_avail_container',url:'/travel/malibu/hotel_choices_content.cfm'}).merge(cfg).toObject();var _parameters=$H();var _target=config.target;var _url=config.url;this.update=function(){new Ajax.Updater(_target,_url,{parameters:_parameters,evalScripts:true,onCreate:function(){config.create();},onLoading:function(response){config.loading(response);},onComplete:function(response){config.complete(response);},onException:function(response,exception){config.exception(response,exception);},onFailure:function(response){config.complete(response);}});};this.updatePage=function(start_index){_parameters=_parameters.merge({start_index:start_index});this.update();};this.updateFilter=function(filter_options){_parameters=_parameters.merge(filter_options);_parameters.unset('start_index');this.update();};this.updateSort=function(sort_method){_parameters=_parameters.merge({sort:sort_method});_parameters.unset('start_index');this.update();};this.resetParameters=function(){_parameters=$H();};};return{initialize:function(){return new AjaxFilter({create:function(){App.use('waitingDialog').show();App.getDOMController('hotelResultsController').removeActions();App.use('hotelDescriptionExpander').removeListeners();App.use('bonus-offer-display').removeListeners();setTimeout(function(){EzRez.UI.GMap.unload();},50);},complete:function(){App.getDOMController('hotelResultsController').applyActions();App.use('hotelDescriptionExpander').applyListeners();App.use('hotelDescriptionExpander').hideUnnecessaryLinks();App.use('bonus-offer-display').applyListeners();App.use('hotelsMap').startup();App.use('waitingDialog').hide();},exception:function(){App.getDOMController('hotelResultsController').applyActions();App.use('hotelDescriptionExpander').applyListeners();App.use('hotelDescriptionExpander').hideUnnecessaryLinks();App.use('bonus-offer-display').applyListeners();App.use('waitingDialog').hide();throw(exception);},failure:function(){App.getDOMController('hotelResultsController').applyActions();App.use('hotelDescriptionExpander').applyListeners();App.use('hotelDescriptionExpander').hideUnnecessaryLinks();App.use('bonus-offer-display').applyListeners();App.use('waitingDialog').hide();}});}};})());App.requires('hotelFilters',['alignHotelFilters','hotelUpdater']);App.createUIComponent('hotelFilters',(function(){var HotelFilters=function(){var _disablePriceSliderListener=false;var _filters=$H();var _ajax=App.use('hotelUpdater');var _updatePriceFilter=function(minTick,maxTick){if(_disablePriceSliderListener){return;}
_ajax.updateFilter({price_min:minTick.value,price_max:maxTick.value});};var _updateCheckBoxFilter=function(checked,input_name){App.use('waitingDialog').show();var input=$H();input.set(input_name,checked);_ajax.updateFilter(input.toObject());};var _resetFilters=function(){App.use('waitingDialog').show();var params=$H();_disablePriceSliderListener=true;_filters.each(function(pair){var filter=pair.value;filter.reset();if(filter.getCheckboxName){params.set(filter.getCheckboxName(),filter.getCheckedValues());}});_disablePriceSliderListener=false;_ajax.resetParameters();_ajax.updateFilter(params.toObject());};var _makeFilters=function(){_filters.set('priceFilter',new EzRez.UI.DualSliderFilter({id:'hotelFilterPriceContainer',ticks:App.Temp.get('hotelFilterPriceContainer_ticks'),update:_updatePriceFilter}));if($('rating_filter_form')){_filters.set('ratingFilter',new EzRez.UI.CheckboxFilter({form_id:'rating_filter_form',checkbox_name:'ratings',checked_by_default:true,update:_updateCheckBoxFilter}));}
if($('neighborhood_filter_form')){_filters.set('neighborhoodFilter',new EzRez.UI.CheckboxFilter({form_id:'neighborhood_filter_form',checkbox_name:'neighborhood_ids',checked_by_default:false,show_all_id:'neighborhood_filter_show_all',update:_updateCheckBoxFilter}));}
if($('amenities_filter_form')){_filters.set('amenityFilter',new EzRez.UI.IconFilter({form_id:'amenities_filter_form',checkbox_name:'amenities',active_classname:'active_amenity',hover_classname:'li_hover',checked_by_default:false,update:_updateCheckBoxFilter}));}};var _resetClickListener=function(evt){_resetFilters();Event.stop(evt);return false;};this.applyListeners=function(){_filters.each(function(filter){filter.value.applyListeners();});$('hotel_filters_reset_all_filters').observe('click',_resetClickListener);};this.removeListeners=function(){_filters.each(function(filter){filter.value.removeListeners();});$('hotel_filters_reset_all_filters').stopObserving('click',_resetClickListener);};_makeFilters();};return{initialize:function(){return new HotelFilters();},applyListeners:function(ui){ui.applyListeners();},removeListeners:function(ui){ui.removeListeners();},unload:function(ui){ui.removeListeners();}};})());App.requires('hotelPagination',['hotelUpdater']);App.createUIComponent('hotelPagination',(function(){var PaginationClickManager=function(cfg){var _config=$H({outerContainerId:'hotel_avail_container',pagerContainerClassName:'arc_pager',inactivePageClassName:'inactive',pageClassName:'page',scrollToElementSelector:'.malibu_choose_hotel_header',itemsPerPage:10}).merge(cfg).toObject();var _ajax=App.use('hotelUpdater');var scrollToElement=$$(_config.scrollToElementSelector);if(scrollToElement.length>0){scrollToElement=scrollToElement[0];}else{scrollToElement=null;}
var _container=$(_config.outerContainerId);Event.observe(_container,'click',paginationRequestHandler);var _items=parseInt(_config.itemsPerPage,10);function paginationRequestHandler(event){var _element=Event.element(event);if(_element.tagName.toLowerCase()!='a'){return;}
if(!Element.up(_element,'.'+_config.pagerContainerClassName)){return;}
if(Element.hasClassName(_element,_config.inactivePageClassName)){Event.stop(event);return;}
if(Element.hasClassName(_element,_config.pageClassName)){Event.stop(event);if(scrollToElement){Element.scrollTo(scrollToElement);}
var _page=Element.readAttribute(_element,'rel');var _startIndex=(_page*_items)-_items+1;_ajax.updatePage(_startIndex);}}};return{initialize:function(params){return new PaginationClickManager(params);}};})());App.createUIComponent('bonus-offer-display',(function(){var BonusOfferDisplay=function(cfg){var _config=$H({bonusParentClass:'bonusOffers',overlayContentClass:'bonusOfferText',priceContainerClass:'priceContainer',cardParentClass:'supplier-info',hotelOptionClass:'hotelOption',overlayWidth:'260',overlayYOffset:86,overlayXOffset:50}).merge(cfg).toObject();var _links=[];var _content={};var _panel=null;var renderOverlay=function(triggerElm){if(_panel){_panel.destroy();}
if(!triggerElm){return;}
var _c=_content[triggerElm.identify()];if(!_c){return;}
var _card=Element.up(triggerElm,'.'+_config.hotelOptionClass);if(!_card){return;}
var _priceBox=Element.select(_card,'.'+_config.priceContainerClass);if(_priceBox.length<=0){return;}
_priceBox=_priceBox[0];var _bonusOffers=Element.select(_card,'.'+_config.bonusParentClass);if(_bonusOffers.length<=0){return;}
_bonusOffers=_bonusOffers[0];var _priceOffset=Element.cumulativeOffset(_priceBox);var _cardOffset=Element.cumulativeOffset(_bonusOffers);var _th=Element.getHeight(_bonusOffers);var _xPos=_priceOffset.left-_config.overlayWidth+_config.overlayXOffset;var _yPos=_cardOffset.top+_th-_config.overlayYOffset-(_th/2);_panel=new YAHOO.widget.Panel("bonusPanel",{xy:[_xPos,_yPos],width:_config.overlayWidth
+"px",visible:false,draggable:false,close:true,underlay:'none'});_panel.setBody(_c.c);_panel.render(document.body);_panel.show();};var overlayDismissHandler=function(event){if(_panel){_panel.hide();}
Event.stopObserving(document.body,'click',overlayDismissHandler);};var onClickHandler=function(event){if(_panel){_panel.hide();}
Event.stop(event);var _l=Event.element(event);renderOverlay(_l);Event.observe(document.body,'click',overlayDismissHandler);};var applyListeners=function(){if(_links.length>0){removeListeners();}
var _bonus=$$('.'+_config.bonusParentClass);if(_bonus.length<=0){return;}
for(var i=_bonus.length-1;i>-1;i--){var _e=_bonus[i];var _l=Element.select(_e,'a');if(_l.length==0){continue;}
_l=_l[0];_links.push(_l);var _c=[];var _cx=[];var _p=Element.up(_l,'.'+_config.cardParentClass);if(_p){_c=Element.select(_p,'.'+_config.overlayContentClass);}
if(_c.length>0){_c=_c[0].innerHTML;}else{_c=null;}
if(_p){_cx=Element.select(_p,'.'+_config.priceContainerClass);}
if(_cx.length>0){_cx=_cx[0];}else{_cx=null;}
if(!_c||!_cx){_content[Element.identify(_l)]=null;}else{_content[Element.identify(_l)]={c:_c,cx:_cx};}
Event.observe(_l,'click',onClickHandler);}};var removeListeners=function(){Event.stopObserving(document.body,'click',overlayDismissHandler);if(_links.length<=0){return;}
for(var i=_links.length-1;i>-1;i--){Event.stopObserving(_links[i],'click',onClickHandler);}
_links=[];_content={};};this.applyListeners=applyListeners;this.removeListeners=removeListeners;};return{initialize:function(params){return new BonusOfferDisplay(params);},applyListeners:function(ui){ui.applyListeners();},removeListeners:function(ui){ui.removeListeners();},unload:function(ui){ui.removeListeners();}};})());})(EzRez.Application);if(typeof(EzRez.Application)=="undefined"){EzRez.Application=new EzRez.App.Application();}
(function(App){var connectionPool=YAHOO.util.Connect;var escapeHTML=function(input){if(!input)return input;return input.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');};App.createUIComponent('options-click-manager',(function(){var OptionsClickManager=function(cfg){var _config=$H({optionsDivId:'optionsContainer'}).merge(cfg).toObject();var optionsContainer;;var callbacks=[];var numCallbacks=0;var clickHandler=function(evt){for(var i=0;i<numCallbacks;i++){callbacks[i](evt);}};var resetListener=function(){if(optionsContainer){Event.stopObserving(optionsContainer,'click',clickHandler);optionsContainer=null;}
optionsContainer=document.getElementById(_config.optionsDivId);if(optionsContainer){Event.observe(optionsContainer,'click',clickHandler);}};this.registerListenerCallback=function(key,callback){callbacks.push(callback);numCallbacks++;};resetListener();this.updateClickManager=resetListener;};return{initialize:function(params){return new OptionsClickManager(params);}};})());App.createUIComponent('pagination-handler',(function(){var CardRangeRequest=function(cfg){var _config=$H({optionsContainerId:'optionsContainer',paginationSummaryContainerId:'paginationSummary',paginationFooterContainerId:'optionsFooter',activePageClassName:'pageActive',disabledPageClassName:'pageLinkDisabled',nextPageClassName:'pageNext',previousPageClassName:'pagePrevious',pageNumberIdPrefix:'pageNum',pageNavigationContainerClassName:'paginationContainer',resultsPerPage:10,resultsPerPageParamName:'results_per_page',sortingParamName:'sorting',currentSorting:'sortPrice',pageParamName:'page_requested',numResultsClassName:'numResults',dataUrl:'/travel/arc_process.cfm',responseType:'json',waitingText:"Updating Airlines, please wait..."}).merge(cfg).toObject();var currentPage=1;var maximumAvailablePages;var resultsPerPage=parseInt(_config.resultsPerPage,10);var currentSorting=_config.currentSorting;var currentFilterHash;{var t;var setFilters=function(){if(!App.use('air-shop-filtering')){return;}
currentFilterHash=App.use('air-shop-filtering').currentActiveFilters();clearInterval(t);};t=setInterval(setFilters,100);}
var autoScrollIntoView=false;var transaction;var waitingDialog=new EzRez.UI.Dialog({name:'waiting_dialog',headerContent:_config.waitingText});var pageSummary=document.getElementById('paginationSummary');var optionsContainer=document.getElementById(_config.optionsContainerId);if(!optionsContainer||optionsContainer=='undefined'){return;}
var numbersTextContainer;var totalResultsTextContainer;var paginationSummaryContainer=document.getElementById(_config.paginationSummaryContainerId);var paginationFooterContainer=document.getElementById(_config.paginationFooterContainerId);var paginationContainer=Element.down(paginationSummaryContainer,'div.'+_config.pageNavigationContainerClassName);var paginationNavigationFooterContainer=Element.down(paginationFooterContainer,'div.'+_config.pageNavigationContainerClassName);var parseXmlResponse=function(response){var result={STATUS:'false',MESSAGE:'invalid response'};if(response.responseXML){var root=response.responseXML.documentElement;result.STATUS=root.getElementsByTagName('status')[0].firstChild.nodeValue;if(result.STATUS=='true'){result.MESSAGE=root.getElementsByTagName('responseMessage')[0].firstChild.nodeValue;result.CONTENT=root.getElementsByTagName('content')[0].firstChild.nodeValue;result.STARTINDEX=parseInt(root.getElementsByTagName('startIndex')[0].firstChild.nodeValue,10);result.ENDINDEX=parseInt(root.getElementsByTagName('endIndex')[0].firstChild.nodeValue,10);result.NUMBER_RESULTS_RETURNED=parseInt(root.getElementsByTagName('numberResultsReturned')[0].firstChild.nodeValue,10);result.PAGE=parseInt(root.getElementsByTagName('page')[0].firstChild.nodeValue,10);result.TOTALRESULTS=parseInt(root.getElementsByTagName('totalResults')[0].firstChild.nodeValue,10);}}
return result;};var parseResponse=function(response){if(_config.responseType=='json'){try{return response.responseText.evalJSON();}catch(err){return{STATUS:false,MESSAGE:err.message};}}else if(_config.responseType=='xml'){return parseXmlResponse(response);}else{throw new Error("unrecognized response type: "+_config.responseType);}};var onPaginationSuccess=function(resp){if(resp.status!=200){handlePaginationError(resp);}
var results=parseResponse(resp);if(results.STATUS!=='true'){handlePaginationError(resp);return;}
optionsContainer=replaceHtml(optionsContainer,results.CONTENT);App.use('options-click-manager').updateClickManager();App.use('air-shop-filtering').setFilteredResultsTotal(results.TOTALRESULTS);updatePagination(results);if(pageSummary&&autoScrollIntoView){Element.scrollTo(pageSummary);}
autoScrollIntoView=false;waitingDialog.hide();};var replaceHtml;if(Prototype.Browser.IE){replaceHtml=function(el,html){var oldEl=typeof el==="string"?document.getElementById(el):el;oldEl.innerHTML=html;return oldEl;};}else{replaceHtml=function(el,html){var oldEl=typeof el==="string"?document.getElementById(el):el;var newEl=oldEl.cloneNode(false);newEl.innerHTML=html;oldEl.parentNode.replaceChild(newEl,oldEl);return newEl;};}
var compareFilters=function(filtersOld,filtersNew,filterDataByRef){var _same=true;if(filtersOld===filtersNew){_same=true;}
var postFilterData='dummy=1';for(var _key in filtersNew){var _set=filtersNew[_key];if(_same){if(!filtersOld[_key]||filtersOld[_key].length!=_set.length){_same=false;}}
for(var i=_set.length-1;i>-1;i--){if(_same){if(_set[i]!=filtersOld[_key][i]){_same=false;}}
postFilterData+='&'+encodeURIComponent(_key)+'='+encodeURIComponent(_set[i]);}}
filterDataByRef._val=postFilterData;return _same;};var handlePaginationError=function(resp){waitingDialog.hide();var sURL=unescape(window.location.pathname);window.location.replace(sURL);};var onPaginationFailure=function(resp){handlePaginationError(resp);};var connectionCallbacks={success:onPaginationSuccess,failure:onPaginationFailure};var updatePagination=function(response){currentPage=parseInt(response.PAGE,10);var totalResults=parseInt(response.TOTALRESULTS,10);maximumAvailablePages=Math.ceil(totalResults/resultsPerPage);if(numbersTextContainer){var dispStart=(response.PAGE*resultsPerPage)-resultsPerPage+1;var dispEnd=dispStart+resultsPerPage-1;if(dispEnd>totalResults){dispEnd=totalResults;}
numbersTextContainer.innerHTML=String(dispStart)+' - '+String(dispEnd);if(totalResultsTextContainer){totalResultsTextContainer.innerHTML=String(totalResults);}}
var pageElements=Element.select(paginationContainer,'a');if(paginationContainer){var staleActivePage=Element.down(paginationContainer,'.'+_config.activePageClassName);if(staleActivePage){Element.removeClassName(staleActivePage,_config.activePageClassName);}
var startPageNum=1;if(currentPage<=3||maximumAvailablePages<=5){startPageNum=1;}else if(currentPage>=(maximumAvailablePages-2)){startPageNum=(maximumAvailablePages-4);}else{startPageNum=currentPage-2;}
for(var n=1;n<=5;n++){var pg=startPageNum+(n-1);if(pg>maximumAvailablePages){pg='&nbsp;';Element.addClassName(pageElements[n],_config.disabledPageClassName);Element.setStyle(pageElements[n],{textDecoration:"none"});}else{Element.removeClassName(pageElements[n],_config.disabledPageClassName);Element.setStyle(pageElements[n],{textDecoration:""});}
pageElements[n].innerHTML=pg;if(pg==currentPage){Element.addClassName(pageElements[n],_config.activePageClassName);}else{Element.removeClassName(pageElements[n],_config.activePageClassName);}}
if(currentPage===1){Element.addClassName(pageElements[0],_config.disabledPageClassName);}else{Element.removeClassName(pageElements[0],_config.disabledPageClassName);}
if(currentPage===maximumAvailablePages){Element.addClassName(pageElements[6],_config.disabledPageClassName);}else{Element.removeClassName(pageElements[6],_config.disabledPageClassName);}
if(paginationNavigationFooterContainer){paginationNavigationFooterContainer.innerHTML=paginationContainer.innerHTML;}}};var getPageContent=function(pageNumberRequest,sorting,filteringHash,scrollToContent){if(!scrollToContent){scrollToContent=false;}
autoScrollIntoView=scrollToContent;if(!filteringHash){filteringHash=currentFilterHash;}
if(!sorting){sorting=currentSorting;}
if(!pageNumberRequest){pageNumberRequest=currentPage;}
var filteringData={_val:''};var _same=compareFilters(currentFilterHash,filteringHash,filteringData);if(pageNumberRequest==currentPage&&sorting==currentSorting&&_same===true){return;}
currentFilterHash=filteringHash;var desc=false;var origSort=sorting;if(sorting.toLowerCase().match("desc$")=="desc"){desc=true;origSort=sorting.substr(0,(sorting.length-4));}
currentSorting=sorting;waitingDialog.show();var sUrl=_config.dataUrl+'?content_type='+_config.responseType
+'&'+encodeURIComponent(_config.pageParamName)+'='+pageNumberRequest
+'&'+encodeURIComponent(_config.resultsPerPageParamName)+'='+resultsPerPage
+'&sortDesc='+encodeURIComponent(desc)
+'&'+encodeURIComponent(_config.sortingParamName)+'='+encodeURIComponent(origSort);if(transaction&&connectionPool.isCallInProgress(transaction)){connectionPool.abort(transaction,null,false);}
transaction=YAHOO.util.Connect.asyncRequest('POST',sUrl,connectionCallbacks,filteringData._val);};var onPaginationClickHandler=function(event){var element=Event.element(event);if(element.tagName.toLowerCase()!='a'){return;}
if(Element.hasClassName(element,_config.activePageClassName)){Event.stop(event);return;}
var pNode=element.parentNode;if(!Element.hasClassName(pNode,_config.pageNavigationContainerClassName)){return;}
Event.stop(event);var _scroll=false;var _u=Element.up(element,'#'+_config.paginationFooterContainerId);if(_u){_scroll=true;}
var pageRequested;if(Element.hasClassName(element,_config.nextPageClassName)){pageRequested=currentPage+1;if(pageRequested>maximumAvailablePages){return;}}else if(Element.hasClassName(element,_config.previousPageClassName)){pageRequested=currentPage-1;if(pageRequested<0){return;}}else if(Element.hasClassName(element,_config.disabledPageClassName)){return;}else{pageRequested=parseInt(element.firstChild.nodeValue,10);}
element.blur();getPageContent(pageRequested,null,null,_scroll);};if(paginationSummaryContainer){Event.observe(paginationSummaryContainer,'click',onPaginationClickHandler);var textContainers=Element.select(paginationSummaryContainer,'span.'+_config.numResultsClassName+' strong');numbersTextContainer=textContainers[0];totalResultsTextContainer=textContainers[1];}
if(paginationFooterContainer){Event.observe(paginationFooterContainer,'click',onPaginationClickHandler);}
this.getPageContentAndUpdate=getPageContent;};return{initialize:function(params){return new CardRangeRequest(params);}};})());App.createUIComponent('air-shop-filtering',(function(){var FilterManager=function(cfg){var _config=$H({availableFilters:{stops:[],airlines:[],airports:{},duration:{},times:{}},hiddenClass:'hiddenBlock',numResults:0}).merge(cfg).toObject();var totalFiltered,totalUnfiltered;var filtersAvail=false;var setFilteredResultsTotal=function(total){if(totalFiltered){totalFiltered.innerHTML=parseInt(total,10);}};this.setFilteredResultsTotal=setFilteredResultsTotal;var setTotalResults=function(total){if(totalUnfiltered){totalUnfiltered.innerHTML=parseInt(total,10);}};var filtersContainer=document.getElementById('filtersContainer');var allFilters;var filterFormStops=document.getElementById('filterFormStops');var filterFormAirlines=document.getElementById('filterFormAirlines');var getActiveFilters=function(){var _filterHash={};for(var k=allFilters.length-1;k>-1;k--){var fieldType=allFilters[k].type.toLowerCase();if(fieldType=='checkbox'&&!allFilters[k].checked){continue;}
var _n=allFilters[k].name;var _v=allFilters[k].value;if(!_filterHash[_n]){_filterHash[_n]=[];}
if(_filterHash[_n].indexOf(_v)<0){_filterHash[_n].push(_v);}}
return _filterHash;};var _clearFilters=function(){for(var _k in showAllMap){showAllMap[_k](null);}};var clearAllFilters=function(evt){if(evt){Event.stop(evt);}
_clearFilters();var _all=App.use('air-shop-filtering').currentActiveFilters();App.use('pagination-handler').getPageContentAndUpdate(1,null,_all);};var onlyEnableCheckboxesInList=function(value,arrCheckboxes){for(var i=arrCheckboxes.length-1;i>-1;i--){if(arrCheckboxes[i].disabled||value===arrCheckboxes[i].value){arrCheckboxes[i].checked=true;}else{arrCheckboxes[i].checked=false;}}};var setFiltersByAirlineAndStops=function(filterObjects){_clearFilters();if(filterFormAirlines&&filterObjects['airline']){var filterFormAirlineCheckBoxes=Element.select(filterFormAirlines,"input[name='airlines']");onlyEnableCheckboxesInList(filterObjects.airline,filterFormAirlineCheckBoxes);}
if(filterFormStops&&filterObjects['stop']){var filterFormStopsCheckboxes=Element.select(filterFormStops,"input[name='stops']");onlyEnableCheckboxesInList(filterObjects.stop,filterFormStopsCheckboxes);}
var _selected=App.use('air-shop-filtering').currentActiveFilters();App.use('pagination-handler').getPageContentAndUpdate(1,null,_selected);};var buildCheckBoxesFiltersForProperties=function(parentNode,hash){var total=0;var appendMultiple=null;var list=Element.select(parentNode,'ul')[0];var cln=list.cloneNode(true);var lbl=Element.select(cln,'.label')[0];var input=Element.select(cln,'input')[0];input.setAttribute("checked",true);var html='';var prop='';for(prop in hash){total++;var name=escapeHTML(prop);var value=escapeHTML(hash[prop]);input.value=value;lbl.innerHTML=name;if(value=="MULTIPLE"){appendMultiple=cln.innerHTML;continue;}
html+=cln.innerHTML;}
if(appendMultiple!=null){html+=appendMultiple;}
list.innerHTML=html;return total;};var buildCheckBoxFilterForArray=function(parentNode,arrayList){var list=parentNode.select('ul')[0];var cln=list.cloneNode(true);var lbl=cln.select('.label')[0];var input=cln.select('input')[0];input.setAttribute("checked",true);var html='';for(var i=arrayList.length-1;i>-1;i--){lbl.innerHTML=escapeHTML(arrayList[i].name);input.value=escapeHTML(arrayList[i].code);html+=cln.innerHTML;}
list.innerHTML=html;};var buildCheckBoxFilterForStops=function(parentNode,hash){var list=Element.select(parentNode,'ul')[0];var cln=list.cloneNode(true);var lbl=Element.select(cln,'.label')[0];var input=Element.select(cln,'input')[0];var html='';var prop='';for(prop in hash){input.value=escapeHTML(prop);lbl.innerHTML=escapeHTML(hash[prop]['label']);if(hash[prop]['disabled']&&hash[prop]['disabled']=="true"){input.setAttribute("disabled",true);input.disabled=true;input.setAttribute("checked",false);}else{input.setAttribute("disabled",false);input.disabled=false;input.setAttribute("checked",true);}
html+=cln.innerHTML;}
list.innerHTML=html;};if(_config.availableFilters['stops']){var _stops=_config.availableFilters.stops;var filterStops=document.getElementById('filterStops');if(filterFormStops){filtersAvail=true;buildCheckBoxFilterForStops(filterFormStops,_stops);Element.removeClassName(filterStops,_config.hiddenClass);}}else{filterFormStops.innerHTML='';}
if(_config.availableFilters['airlines']){var _airlines=_config.availableFilters.airlines;var filterAirlines=document.getElementById('filterAirlines');if(filterFormAirlines){var num=buildCheckBoxesFiltersForProperties(filterFormAirlines,_airlines);if(num>1){Element.removeClassName(filterAirlines,_config.hiddenClass);filtersAvail=true;}else{filterFormAirlines.innerHTML='';}}}else{filterFormAirlines.innerHTML='';}
var filterAirports=document.getElementById('filterAirports');if(_config.availableFilters['airports']&&false){var _airports=_config.availableFilters.airports;var _depart=_airports[0];var _arrive=_airports[1];var filterFormAirportsDepart=Element.select(filterAirports,'.filterFormAirportsDepart');if(filterFormAirportsDepart.length>0){filterFormAirportsDepart=filterFormAirportsDepart[0];filtersAvail=true;var _dheader=Element.select(filterAirports,'#filterAirportsDepart a.filterSubHeader')[0];_dheader.innerHTML=escapeHTML(_depart.city);buildCheckBoxFilterForArray(filterFormAirportsDepart,_depart.airports);Element.removeClassName(filterAirports,_config.hiddenClass);filterFormAirportsDepart.show();}
var filterFormAirportsArrive=Element.select(filterAirports,'.filterFormAirportsArrive');if(filterFormAirportsArrive.length>0){filterFormAirportsArrive=filterFormAirportsArrive[0];filtersAvail=true;var _aheader=Element.select(filterAirports,'#filterAirportsArrive a.filterSubHeader')[0];_aheader.innerHTML=escapeHTML(_arrive.city);buildCheckBoxFilterForArray(filterFormAirportsArrive,_arrive.airports);Element.removeClassName(filterAirports,_config.hiddenClass);filterFormAirportsArrive.show();}}else{filterAirports.innerHTML='';}
var filterPriceContainer=document.getElementById('filterPriceContainer');if(filterPriceContainer){Element.removeClassName(filterPriceContainer,_config.hiddenClass);filterPriceContainer.show();}
var filterTimesContainer=document.getElementById('filterTimesContainer');if(filterTimesContainer&&false){Element.removeClassName(filterTimesContainer,_config.hiddenClass);filterTimesContainer.show();}
allFilters=Element.select(filtersContainer,'input[type="checkbox"]');allFilters=allFilters.concat(Element.select(filtersContainer,'input[type="hidden"]'));if(filtersAvail){var filtersTop=document.getElementById('filtersTop');if(filtersTop){Element.removeClassName(filtersTop,_config.hiddenClass);var numDisp=Element.select(filtersTop,".numResults strong");if(numDisp[0]){totalFiltered=numDisp[0];setFilteredResultsTotal(_config.numResults);}
if(numDisp[1]){totalUnfiltered=numDisp[1];setTotalResults(_config.numResults);}}}
var showAllMap={};var showAllToggles=Element.select(filtersContainer,'.showAllResults a');if(showAllToggles.length>0){var activateCheck=function(check){check.checked=true;};var resetSlider=function(slideForm){var _fac=App.use("dualSliderFactory");if(slideForm&&_fac){_fac.get(slideForm.identify()).reset();if(!slideForm.visible()){slideForm.show();}}};var buildShowAllToggle=function(item){var _form=item.up('.filterContainer');var _toggles=[];var slider=[];if(_form){_toggles=_form.select('input[type="checkbox"]');slider=_form.select('.dualSlider');if(Element.hasClassName(_form,"dualSlider")){slider.push(_form);}}
return function(evt){_toggles.each(activateCheck);slider.each(resetSlider);if(evt){Event.stop(evt);var filters=getActiveFilters();App.use('pagination-handler').getPageContentAndUpdate(1,null,filters);}};};for(var k=showAllToggles.length-1;k>0;k--){var showAllFn=buildShowAllToggle(showAllToggles[k]);showAllMap[showAllToggles[k].identify()]=showAllFn;Event.observe(showAllToggles[k],'click',showAllFn);}
Event.observe(showAllToggles[0],'click',clearAllFilters);}
var filterHeaderToggles=filtersContainer.select('a.filterSubHeader');if(filterHeaderToggles.length>0){var buildFilterToggle=function(item){var _form=item.next('form');return function(evt){Event.stop(evt);if(_form.visible()){_form.hide();item.setStyle({background:"#EEEEEE url('/images/filter_arrow_right.gif') no-repeat scroll 2px 4px"});}else{_form.show();item.setStyle({background:"#EEEEEE url('/images/filter_arrow_down.gif') no-repeat scroll 2px 4px"});}};};filterHeaderToggles.each(function(item){Event.observe(item,'click',buildFilterToggle(item));});}
var flightTimesFilterToggle=filtersContainer.select('.flightTimesFilterToggle');if(flightTimesFilterToggle.length>0){var buildTimeFilterToggle=function(item,_target){return function(evt){if(_target){toggleSliderAndCheckbox(item,_target);}};};var getSliderForCheckBox=function(checkbox){var slider=null;var filterFormTimesLegToggle=Element.up(checkbox,'.filterFormTimesLegToggle');if(filterFormTimesLegToggle){var _toggles=Element.select(filterFormTimesLegToggle,'.flightTimesFilterToggle');var _sliders=Element.select(filterFormTimesLegToggle,'.dualSlider');var ndx=_toggles.indexOf(checkbox);var len=_sliders.length;if(ndx>=0&&ndx<len){slider=_sliders[ndx];}}
return slider;};function timeFiltering(item){var slider=getSliderForCheckBox(item);Event.observe(item,'click',buildTimeFilterToggle(item,slider));};function toggleSliderAndCheckbox(checkbox,slider){if(checkbox.checked){slider.show();}else{var _fac=App.use("dualSliderFactory");if(_fac){_fac.get(slider.identify()).reset();}
slider.hide();}}
function runtimeTimeFilterToggle(event){var element=Event.element(event);var slider=getSliderForCheckBox(element);toggleSliderAndCheckbox(element,slider);}
if(Prototype.Browser.IE){flightTimesFilterToggle.each(function(item){Event.observe(item,'click',runtimeTimeFilterToggle);});}else{flightTimesFilterToggle.each(timeFiltering);}}
var updatePageWithFiltering=function(){var filters=getActiveFilters();App.use('pagination-handler').getPageContentAndUpdate(1,null,filters);};var onFilterToggle=function(evt){var element=Event.element(evt);var isCheckbox=false;var isSlider=false;var isAirlineLabel=false;if(Element.hasClassName(element,'dualSlider')){isSlider=true;}else if(element.tagName.toLowerCase()=='input'&&element.readAttribute('type').toLowerCase()=='checkbox'){isCheckbox=true;}else if(element.tagName.toLowerCase()=='span'&&Element.hasClassName(element,'label')){var _pform=Element.up(element,'form');if(_pform&&Element.identify(_pform)==='filterFormAirlines'){isAirlineLabel=true;var selInput=Element.previous(element,'input[type="checkbox"]');var _uncheck=Element.select(_pform,'input[type="checkbox"]:checked');for(var l=_uncheck.length-1;l>-1;l--){_uncheck[l].checked=false;}
selInput.checked=true;}}
if(!isSlider&&!isCheckbox&&!isAirlineLabel){return;}
if(isCheckbox&&!Element.hasClassName(element,'flightTimesFilterToggle')){var _form=element.up('.filterContainer');if(_form){var _checked=_form.select('input[type="checkbox"]:checked');if(_checked.length==0||(_checked.length==1&&_checked[0].disabled===true)){Event.stop(evt);return;}}}
updatePageWithFiltering();};Event.observe(filtersContainer,'click',onFilterToggle);var sliders=filtersContainer.select(".dualSlider");for(var l=sliders.length-1;l>-1;l--){Event.observe(sliders[l],'DualSliderFilter:update',onFilterToggle);}
this.currentActiveFilters=getActiveFilters;this.clearAllFilters=clearAllFilters;this.setFiltersByAirlineAndStops=setFiltersByAirlineAndStops};return{initialize:function(params){return new FilterManager(params);}};})());App.createUIComponent('smooth-scrolling',(function(){var SmoothScroll=function(){var steps=10;var interval;var stepSize;var getCurrentYPos=function(){if(document.body&&document.body.scrollTop){return document.body.scrollTop;}
if(document.documentElement&&document.documentElement.scrollTop){return document.documentElement.scrollTop;}
if(window.pageYOffset){return window.pageYOffset;}
return 0;};var scrollWindow=function(scramount,dest){var wascypos=getCurrentYPos();var isAbove=(wascypos<dest);window.scrollTo(0,(wascypos+scramount));var iscypos=getCurrentYPos();var isAboveNow=(iscypos<dest);if((isAbove!=isAboveNow)||(wascypos==iscypos)){window.scrollTo(0,dest);clearInterval(interval);}};this.smoothScrollTo=function(elm){var destX=elm.offsetLeft;var destY=elm.offsetTop;var curNode=elm;while(curNode.offsetParent&&(curNode.offsetParent!=document.body)){curNode=curNode.offsetParent;destX+=curNode.offsetLeft;destY+=curNode.offsetTop;}
clearInterval(interval);var curYpos=getCurrentYPos();stepSize=parseInt((destY-curYpos)/steps);var stepFn=function(){scrollWindow(stepSize,destY);};interval=setInterval(stepFn,10);};};return{initialize:function(){return new SmoothScroll();}};})());App.createUIComponent('air-shop-show-hide-details',(function(){var ToggleDetails=function(cfg){var _config=$H({toggleSelector:'#optionsContainer div.airOption div.toggle a',toggleOffLabel:'hide full details',toggleOnLabel:'show full details',hideClass:'hiddenBlock',selectorShowAllDetails:'div#paginationSummary a',classNameDetails:'optionDetails'}).merge(cfg).toObject();var toggleDetails=function(element){if(element.innerHTML==_config.toggleOffLabel){toggleDetailsOff(element);}else{toggleDetailsOn(element);}};var toggleDetailsOn=function(elm){elm.innerHTML=_config.toggleOffLabel;var disp=$(elm.parentNode).next();if(disp&&disp.hasClassName(_config.classNameDetails)){disp.removeClassName(_config.hideClass);}};var toggleDetailsOff=function(elm){elm.innerHTML=_config.toggleOnLabel;var disp=$(elm.parentNode).next();if(disp&&disp.hasClassName(_config.classNameDetails)){disp.addClassName(_config.hideClass);}};var onClickHandler=function(event){var element=Event.element(event);if(element.tagName.toLowerCase()!='a'){return;}
var pNode=element.parentNode;if(pNode.tagName.toLowerCase()!='div'){return;}
if(!Element.hasClassName(pNode,'toggle')){return;}
Event.stop(event);toggleDetails(element);};App.use('options-click-manager').registerListenerCallback('ToggleDetails',onClickHandler);var showAllState=false;var toggleAll=function(item){if(showAllState){toggleDetailsOn(item);}else{toggleDetailsOff(item);}};var showAllToggle=$$(_config.selectorShowAllDetails);if(showAllToggle.length>0){showAllToggle[0].observe('click',function(event){Event.stop(event);showAllState=!showAllState;var toggles=$$(_config.toggleSelector);if(toggles.length>0){toggles.each(toggleAll);}});}
var onClearAllFilters=function(event){var element=Event.element(event);if(element.tagName.toLowerCase()!='a'){return;}
var pNode=element.parentNode;if(!Element.hasClassName(pNode,'showAllResults')){return;}
Event.stop(event);App.use('air-shop-filtering').clearAllFilters();};App.use('options-click-manager').registerListenerCallback('ClearAllFilters',onClearAllFilters);};return{initialize:function(params){return new ToggleDetails(params);}};})());App.createUIComponent('air-shop-sorting',(function(){var SortingAir=function(cfg){var _config=$H({sortingContainerDiv:'optionsSorting',availableSorting:['sortAirline','sortDepart','sortArrive','sortDuration','sortPrice'],defaultSorting:'sortPrice'}).merge(cfg).toObject();var sortingBox=document.getElementById(_config.sortingContainerDiv);if(!sortingBox){throw new Error("Missing sorting box: #"+_config.sortingContainerDiv);}
var currentSort=_config.defaultSorting;var updateSorting=function(updatedSorting){currentSort=updatedSorting;App.use('pagination-handler').getPageContentAndUpdate(1,updatedSorting);};var onSortClickHandler=function(event){var elm=Event.element(event);if(elm.tagName.toLowerCase()!='a'){elm=Element.up(elm,'a');if(!elm){return;}}
if(elm.parentNode.tagName.toLowerCase()!='div'){return;}
var newSorting='';var n=_config.availableSorting.length;var _pc=elm.parentNode.className;for(var z=0;z<n;z++){if(_pc===_config.availableSorting[z]){newSorting=_config.availableSorting[z];break;}}
if(newSorting==''){return;}
Event.stop(event);if(newSorting==currentSort){newSorting=newSorting+'Desc';}
updateSorting(newSorting);};Event.observe(sortingBox,'click',onSortClickHandler);};return{initialize:function(params){return new SortingAir(params);}};})());App.createUIComponent('air-matrix-manager',(function(){var AirMatrixManager=function(cfg){var _config=$H({airMatrixId:'airMatrix',prevPageSelector:'.matrixPagePrevious',nextPageSelector:'.matrixPageNext',colsPerPage:6,colClassPrefix:'matrixCol',rowClassPrefix:'matrixRow',priceLinkClass:'matrixPriceFilter'}).merge(cfg).toObject();var _currentPage=1;var _colsPerPage=parseInt(_config.colsPerPage);if(isNaN(_colsPerPage)||_colsPerPage<=0){_colsPerPage=6;}
var _allColCells=[];var _visibleColCells=[];var startLbl;var endLbl;function getNumColsFromMatrix(pNode){var cols=0;var t=Element.select(pNode,'table');if(t.length==0){return cols;}
var r=Element.select(t[0],'tr');if(r.length==0){return cols;}
return Element.select(r[0],'td').length-1;}
function initializeColumnArrays(pNode){_allColCells=[];var t=Element.select(pNode,'table');if(t.length==0){return;}
t=t[0];for(var c=0;c<=_numCols;c++){var lbl='.'+_config.colClassPrefix+c;var col=Element.select(t,lbl);_allColCells.push(col);if(c>=1&&c<=_colsPerPage){_visibleColCells=_visibleColCells.concat(_allColCells[c]);}}}
function activateRangeOfCellsForPage(page){var colIndexStart=(_colsPerPage*page)-_colsPerPage+1;var colIndexEnd=colIndexStart+_colsPerPage-1;if(colIndexEnd>_numCols){colIndexEnd=_numCols;}
_visibleColCells.each(function(item){item.hide();});_visibleColCells=[];for(var ndx=colIndexStart;ndx<=colIndexEnd;ndx++){_allColCells[ndx].each(function(item){item.show();_visibleColCells.push(item);});}
startLbl.innerHTML=colIndexStart;endLbl.innerHTML=colIndexEnd;}
function activateNextPage(evt){Event.stop(evt);if(_currentPage==_maxPage){return;}
_currentPage++;activateRangeOfCellsForPage(_currentPage);}
function activatePreviousPage(evt){Event.stop(evt);if(_currentPage==1){return;}
_currentPage--;activateRangeOfCellsForPage(_currentPage);}
var _matrixContainer=$(_config.airMatrixId);var _numCols=getNumColsFromMatrix(_matrixContainer);var _maxPage=1;if(_numCols>_colsPerPage){_maxPage=Math.ceil(_numCols/_colsPerPage);}
var _prev=Element.select(_matrixContainer,_config.prevPageSelector);if(_prev.length){Event.observe(_prev[0],'click',activatePreviousPage);}
var _next=Element.select(_matrixContainer,_config.nextPageSelector);if(_next.length){Event.observe(_next[0],'click',activateNextPage);}
var lbls=Element.select(_matrixContainer,'.numResults span');if(lbls.length>0){startLbl=lbls[0];}
if(lbls.length>1){endLbl=lbls[1];}
function onMatrixPriceFilterClickHandler(evt){Event.stop(evt);var el=Event.element(evt);if(el.tagName.toLowerCase()!='a'){el=Element.up(el,'a.matrixPriceFilter');}
if(!el){return;}
var _parent=Element.up(el);if(!_parent){return;}
var _filters={airline:null,stop:null};if(Element.hasClassName(_parent,"matrixRow2")){_filters.stop="0";}else if(Element.hasClassName(_parent,"matrixRow3")){_filters.stop="1";}else if(Element.hasClassName(_parent,"matrixRow4")){_filters.stop="2";}
var classNames=$A(Element.classNames(_parent));var air;for(var i=classNames.length-1;i>-1;i--){if(classNames[i].startsWith("matrixCol")){air=$$(".matrixRow1."+classNames[i]);break;}}
if(air.length>=0){classNames=$A(Element.classNames(air[0]));for(var j=classNames.length-1;j>-1;j--){if(classNames[j].startsWith("airlineCode_")){air=$$(".matrixRow1."+classNames[j]);_filters.airline=classNames[j].substring(12);break;}}}
App.use('air-shop-filtering').setFiltersByAirlineAndStops(_filters);}
var priceFilteringLinks=Element.select(_matrixContainer,'.'+_config.priceLinkClass);if(priceFilteringLinks.length>0){priceFilteringLinks.each(function(item){Element.observe(item,'click',onMatrixPriceFilterClickHandler);});}
initializeColumnArrays(_matrixContainer);};return{initialize:function(params){return new AirMatrixManager(params);}};})());App.createUIComponent('air-shop-filtering-by-flight-number',(function(){var FilterByFlightNumber=function(cfg){var _config=$H({filterFormId:'filterByFlightNumber',defaultTextboxText:'Enter Flight Number',autocompleteList:[],autocompleteResultsClass:'modify_search_autocomplete_results',flightNumText:"Flight Number",showAllClass:'showAllResults'}).merge(cfg).toObject();var _form=$(_config.filterFormId);if(_form){var _hidden=Element.select(_form,'input[name="flightNumber"]');if(_hidden.length>0){_hidden=_hidden[0];}
var _input=Element.select(_form,'input[type="text"]');if(_input.length>0){_input=_input[0];}
var _results=Element.select(_form,'.'+_config.autocompleteResultsClass);if(_results.length>0){_results=_results[0];}
var _button=Element.select(_form,'input[type="button"]');if(_button.length>0){_button=_button[0];var onFilterByFlightNumberClick=function(event){Event.stop(event);var flightNumber=_hidden.value.strip();if(flightNumber!==''){App.use('pagination-handler').getPageContentAndUpdate(1,null,{flightNumber:[flightNumber]});}};Event.observe(_button,'click',onFilterByFlightNumberClick);}
if(_config.autocompleteList.length>0&&_input&&_results&&_hidden){var _acData=new YAHOO.widget.DS_JSArray(_config.autocompleteList);var _ac=new YAHOO.widget.AutoComplete(_input.identify(),_results.identify(),_acData);_ac.typeAhead=true;_ac.forceSelection=true;_ac.formatResult=function(oResultItem,sQuery){return _config.flightNumText+" "+oResultItem[0];};var selectHandler=function(sType,aArgs){var aData=aArgs[2];_hidden.value=new String(aData[0]).strip();_button.disabled=false;};var selectHandlerEnforce=function(sType,aArgs){_input.focus();_button.disabled=true;_hidden.value='';};var onInputBoxFocus=function(sType,aArgs){if(_input.value.strip()===_config.defaultTextboxText){_input.value='';}};var onInputBoxBlur=function(event){if(_input.value.strip()===''){_input.value=_config.defaultTextboxText;}};_ac.itemSelectEvent.subscribe(selectHandler);_ac.selectionEnforceEvent.subscribe(selectHandlerEnforce);_ac.textboxFocusEvent.subscribe(onInputBoxFocus);_ac.textboxBlurEvent.subscribe(onInputBoxBlur);}
var showAll=Element.select(_form,'.'+_config.showAllClass+' a');if(showAll.length>0){showAll=showAll[0];var onShowAll=function(event){Event.stop(event);App.use('air-shop-filtering').clearAllFilters();};Event.observe(showAll,'click',onShowAll);}}};return{initialize:function(params){return new FilterByFlightNumber(params);}};})());App.createUIComponent('detailPricingMatrixHandler',(function(){var DetailPricingMatrix=function(cfg){var _config=$H({anchorSelector:'show_detail_pricing_matrix'}).merge(cfg).toObject();var _lightBox=new EzRez.UI.LightBox({className:'detailPricingMatrix',type:'inline'});var onClickHandler=function(event){var element=Event.element(event);if(element.tagName.toLowerCase()!='a'){return;}
if(!Element.hasClassName(element,_config.anchorSelector)){return;}
Event.stop(event);_lightBox.show(element);};App.use('options-click-manager').registerListenerCallback('ShowPricesPerPassengerType',onClickHandler);};return{initialize:function(cfg){return new DetailPricingMatrix(cfg);}};})());})(EzRez.Application);(function(App){if(!App){throw new EzRez.Util.Exception({message:'Missing application.'});}
var dependencies=['debugger',];var controller=App.createDOMController('app-controller',{});controller.requires(dependencies);})(EzRez.Application);(function(App){if(!App){throw new EzRez.Util.Exception({message:'Missing application.'});}
var _submit=function(form){if(searchForm){searchForm.submitFormIfNoErrors(form)}else{form.submit();}};App.createDOMController('booking-engines',{'#form_arc_packages span.submit_link,click':function(evt,controller){Event.stop(evt);_submit($(evt.target).up('form'));},'#form_arc_air span.submit_link,click':function(evt,controller){Event.stop(evt);_submit($(evt.target).up('form'));}});})(EzRez.Application);(function(App){if(!App){throw new EzRez.Util.Exception({message:'Missing application.'});}
var _showLightBox=function(evt,lightbox){var anchor=$(evt.target);if(anchor.nodeName.strip().toLowerCase()!=='a'){anchor=anchor.up('a');}
anchor.onclick=null;lightbox.show(anchor);Event.stop(evt);return false;};var dependencies={hotelAvailability:[],hotelResults:['lightBoxForHotelDetails','lightBoxForVirtualTour','lightBoxForHotelMap','lightBoxForTabbedHotelDetails','lightBoxDefault','lightBoxForReviews','hotelsMap','hotelMap']};var hotelAvailabilityController=App.createDOMController('hotelAvailabilityController',{});hotelAvailabilityController.requires(dependencies.hotelAvailability);var hotelResultsController=App.createDOMController('hotelResultsController',{after:function(controller){if(!$('hotel_filter')||!$('hotel_results')){return;}
new YAHOO.EzRez.autocomplete.local(YAHOO.EzRez.autocomplete.local.globalConfig,'hotel_filter','hotel_results',App.use('waitingDialog'));var filter=$('hotel_filters');var pager=$('hotel_pager_container');if(filter&&pager){filter.down('.num_hotels_filtered').innerHTML=pager.down('.num_hotels_filtered').innerHTML;filter.down('.num_hotels_unfiltered').innerHTML=pager.down('.num_hotels_unfiltered').innerHTML;}},'#hotel_avail_container div.avail_sort select,change':function(evt,controller){var value=$(evt.target).getValue();App.use('hotelUpdater').updateSort(value);return false;},'#hotel_avail_container div.avail_sort a.sort,click':function(evt,controller){App.use('waitingDialog').show();var anchor=$(evt.target);if(anchor.nodeName.strip().toLowerCase()!=='a'){anchor=anchor.up('a');}
var value=anchor.href.split('#')[1];App.use('hotelUpdater').updateSort(value);Event.stop(evt);return false;},'a.popup_overlay,click':function(evt,controller){return _showLightBox(evt,App.use('lightBoxForHotelDetails'));},'a.virtual_tour_overlay,click':function(evt,controller){return _showLightBox(evt,App.use('lightBoxForVirtualTour'));},'a.virtual_tour_overlay_tabbed,click':function(evt,controller){return _showLightBox(evt,App.use('lightBoxForTabbedHotelDetails'));},'a.view_more_overlay,click':function(evt,controller){return _showLightBox(evt,App.use('lightBoxForHotelDetails'));},'a.view_more_overlay_tabbed,click':function(evt,controller){return _showLightBox(evt,App.use('lightBoxForTabbedHotelDetails'));},'.card-left a.thumbnail,click':function(evt,controller){return _showLightBox(evt,App.use('lightBoxForHotelDetails'));},'a.gmap_overlay,click':function(evt,controller){return _showLightBox(evt,App.use('lightBoxForHotelMap'));},'a.gmap_overlay_tabbed,click':function(evt,controller){return _showLightBox(evt,App.use('lightBoxForTabbedHotelDetails'));},'a.hotel_review_overlay,click':function(evt,controller){return _showLightBox(evt,App.use('lightBoxForReviews'));},'a.hotel_review_overlay_tabbed,click':function(evt,controller){return _showLightBox(evt,App.use('lightBoxForTabbedHotelDetails'));}});hotelResultsController.requires(dependencies.hotelResults);})(EzRez.Application);(function(App){if(!App){throw new EzRez.Util.Exception({message:'Missing application.'});}
var dependencies=['alignHotelFilters','resource2'];App.createDOMController('air-availability',{'div.shopCard div.toggle a,click':function(evt,controller){var anchor=$(evt.target);var details=anchor.up('div.toggle').next('div.details');if(details){details.toggle();}
Event.stop(evt);}}).requires(dependencies);})(EzRez.Application);(function(App){App.load('app-controller');})(EzRez.Application);if(EzRez===undefined){var EzRez={};}
EzRez.SearchForm=function(){};EzRez.SearchForm.prototype={errors:$H(),hasErrors:function(){return this.errors.size()>0;},hasErrorKey:function(key){return this.errors.get(key)!=null;},addError:function(key,value){this.errors.set(key,value);},removeError:function(key){this.errors.unset(key);}};var searchForm=new EzRez.SearchForm();searchForm.submitFormIfNoErrors=function(formName){if(!searchForm.hasErrors()){$(formName).submit();}
this.errors.keys().each(function(item){if(item=="checkbox"){item="malibu_error";}
new Effect.Highlight(item,{duration:0.5});});};YAHOO.namespace("YAHOO.EzRez");YAHOO.EzRez.autocomplete=function(searchURL,config,maxResults,htmlComponentsIds,errorMessage){this.dataSource=new YAHOO.widget.DS_XHR(searchURL,config.SEARCH_SCHEMA);this.dataSource.responseType=config.RESPONSE_TYPE;this.dataSource.queryMatchSubset=config.QUERY_MATCH_SUBSET;this.widget=new YAHOO.widget.AutoComplete(htmlComponentsIds.textFieldId,htmlComponentsIds.resultsContainerId,this.dataSource);this.widget.minQueryLength=config.MIN_QUERY_LENGTH;this.widget.queryDelay=config.QUERY_DELAY;this.widget.animSpeed=config.ANIM_SPEED;this.widget.maxResultsDisplayed=maxResults;this.widget.useShadow=config.USE_SHADOW;this.widget.animHoriz=config.ANIM_HORIZ;this.widget.useIFrame=config.USE_SHADOW;this.widget.textboxFocusEvent.subscribe(YAHOO.EzRez.autocomplete.textboxFocusHandler,htmlComponentsIds.textFieldId);this.widget.itemSelectEvent.subscribe(YAHOO.EzRez.autocomplete.selectHandler,htmlComponentsIds.hiddenFieldId);this.widget.textboxBlurEvent.subscribe(YAHOO.EzRez.autocomplete.textboxBlurHandler,{searchURL:searchURL,textFieldId:htmlComponentsIds.textFieldId,hiddenFieldId:htmlComponentsIds.hiddenFieldId,errorElementId:htmlComponentsIds.errorElementId,errorMessage:errorMessage});};YAHOO.EzRez.autocomplete.selectHandler=function(sType,aArgs,hiddenFieldId){YAHOO.log(sType);var aData=aArgs[2];$(hiddenFieldId).value=aData[1];};YAHOO.EzRez.autocomplete.textboxFocusHandler=function(sType,aArgs,textFieldId){YAHOO.log(sType);$(textFieldId).value='';};YAHOO.EzRez.autocomplete.textboxBlurHandler=function(sType,aArgs,blurParams){YAHOO.log(sType);var textObj=$(blurParams.textFieldId);var callback={success:function(o){var textObj=$(blurParams.textFieldId);var invalidDestination=(o.responseXML.getElementsByTagName("m").length!=1)?true:false;if(textObj.value==""||invalidDestination){searchForm.addError(blurParams.textFieldId,"AreaSearchError");$(blurParams.errorElementId).show();$(blurParams.errorElementId).innerHTML=blurParams.errorMessage;}else{searchForm.removeError(blurParams.textFieldId);$(blurParams.errorElementId).hide();var nodeValue=o.responseXML.getElementsByTagName("s")[0].firstChild.nodeValue;$(blurParams.hiddenFieldId).value=nodeValue;}}};YAHOO.util.Connect.asyncRequest("GET",blurParams.searchURL+"?query="+textObj.value,callback);};YAHOO.EzRez.autocomplete.globalConfig={SEARCH_SCHEMA:['m','d','s'],QUERY_MATCH_SUBSET:true,MIN_QUERY_LENGTH:3,QUERY_DELAY:0.05,ANIM_SPEED:0.15,USE_SHADOW:true,ANIM_HORIZ:true,USE_IFRAME:true,RESPONSE_TYPE:YAHOO.widget.DS_XHR.TYPE_XML};YAHOO.EzRez.autocomplete.local=function(config,textFieldId,resultsContainerId,waiting){var _dataSet=EzRez.App.Messenger.read('hotel_filter_data',true);if(!_dataSet){return;}
_dataSet=_dataSet.sortBy(function(hotel){return hotel.hotel_name;}).reverse();this.getHotels=function(sQuery){var resultSet=new Array();if(sQuery.length>0&&decodeURI(sQuery)!=" "){for(var i=0,len=_dataSet.length;i<len;i++){var searchString=_dataSet[i].hotel_search_string;var index=searchString.toLowerCase().indexOf(decodeURI(sQuery.toLowerCase()));if(index>=0){resultSet.unshift([_dataSet[i].hotel_name,_dataSet[i].hotel_display,_dataSet[i].url]);}}}
return resultSet;};this.dataSource=new YAHOO.widget.DS_JSFunction(this.getHotels);this.widget=new YAHOO.widget.AutoComplete(textFieldId,resultsContainerId,this.dataSource);this.widget.queryDelay=config.QUERY_DELAY;this.widget.maxResultsDisplayed=config.MAX_RESULTS_DISPLAYED;this.widget.forceSelection=config.FORCE_SELECTION;this.widget.useShadow=config.USE_SHADOW;this.widget.animHoriz=config.ANIM_HORIZ;this.widget.animSpeed=config.ANIM_SPEED;this.widget.formatResult=function(resultItem,sQuery){var markup=resultItem[1];return(markup);};if(this.widget.textboxFocusEvent){this.widget.textboxFocusEvent.subscribe(YAHOO.EzRez.autocomplete.local.textboxFocusHandler,textFieldId);}
if(this.widget.itemSelectEvent){this.widget.itemSelectEvent.subscribe(YAHOO.EzRez.autocomplete.local.selectHandler,waiting);}
var _yui_ac=$(this.widget._elContent).up('div.yui-ac');var _yui_ac_auto=EzRez.Application.SysConf.useResultsAccordian;var _yui_ac_height=_yui_ac.getHeight();if(_yui_ac_auto){_yui_ac.setStyle('height','auto !important');}
if(this.widget.containerCollapseEvent){this.widget.containerCollapseEvent.subscribe(function(){if(_yui_ac_auto){new Effect.Morph(_yui_ac,{style:{height:_yui_ac_height+'px'},duration:0.5});}
$(resultsContainerId).fire('autocomplete:collapse');},this.widget,true);}
if(this.widget.containerExpandEvent){this.widget.containerExpandEvent.subscribe(function(){if(_yui_ac_auto){var elContent=$(this._elContent);var height=elContent.getHeight();new Effect.Morph(_yui_ac,{style:{height:height+'px'},duration:0.5});}
$(resultsContainerId).fire('autocomplete:expand');},this.widget,true);}};YAHOO.EzRez.autocomplete.local.selectHandler=function(sType,aArgs,waiting){YAHOO.log(sType);var selectedData=aArgs[2];location.href=selectedData[2];};YAHOO.EzRez.autocomplete.local.textboxFocusHandler=function(sType,aArgs,textFieldId){YAHOO.log(sType);$(textFieldId).value='';};YAHOO.EzRez.autocomplete.local.globalConfig={FORCE_SELECTION:true,USE_SHADOW:true,ANIM_HORIZ:true,ANIM_SPEED:0.3,MAX_RESULTS_DISPLAYED:15,QUERY_DELAY:0};(function(App){App.createUIComponent('RedemptionSlider',(function(){var RedemptionSlider=function(cfg){var _config=$H({pixelWidth:400,initialPoints:0,totalPossiblePoints:0,maxPointsToUse:0,initialCreditCardAmount:0,passThroughTotal:0,updateInterval:1000,messageSelector:'',isCashAdjustmentSupported:false,isCollectCCWhenPointsOnly:false,rootElement:'sliderWrapper',ajaxUrl:'/authorize/points_slider/get_point_allocation_xml.cfm',translations:{CO_POINTS_MUST_BE_INTERGER:'',CO_MIN_PAYMENT:'',CO_POINTS_ALLOCATION_ERROR:'',ALLOCATION_POINTS_SLIDER_UPDATING:''}}).merge(cfg).toObject();var _allocationPointsBuffer=null;var _allocationMoneyBuffer=null;var _horizontalSlider=null;var _pointsPerPixel=_config.totalPossiblePoints/_config.pixelWidth;var _initialPointsInPixels=Math.ceil(_config.initialPoints/_pointsPerPixel);var _ajaxUrl=_config.ajaxUrl+"?rand="+Math.floor(Math.random()*1000);var _elms=new EzRez.UI.DOMCache({rootNode:'#'+_config.rootElement,nodes:{slider:function(rootNode){return rootNode.down('div.slider');},thumb:function(rootNode){return rootNode.down('div.slider div.sliderHandle');},ccAmount:function(rootNode){return $('cc_amount');},coPointsSliderMessage:function(rootNode){return rootNode.down('p.errorMessage');},redemptionPointsTotal:function(rootNode){return $('redemption_points_total');}}});var _alertAndFocus=function(inputElment,message){alert(message);try{$(inputElment).activate();}catch(e){}};var _getTranslation=function(name){var translation=_config.translations[name];return translation?translation:name;};var _showCreditCardSection=function(){var ccAmountValue=parseFloat(_elms.ccAmount.getValue());if(isNaN(ccAmountValue)||ccAmountValue<0){ccAmountValue=0;}
var sections=_getSectionsToShowOrHide();if(ccAmountValue>0||_config.passThroughTotal>0||_config.isCollectCCWhenPointsOnly){sections.invoke('show');return;}
sections.invoke('hide');};var _getSectionsToShowOrHide=function(){var sections=[$('credit_card_section_addressid'),$('credit_card_sectionid'),$('credit_card_section_amountid'),$('credit_card_information_display')];return sections.compact();};var _showErrorMessage=function(message){if(message===null||message.strip()==='&nbsp;'||message.blank()){_elms.coPointsSliderMessage.fade();return;}
_elms.coPointsSliderMessage.update(message);_elms.coPointsSliderMessage.appear();};var _updatePointAllocation=function(){var _send=function(url,params){var ajax=new Ajax.Request(url,{method:'get',parameters:params,onSuccess:function(transport){setTimeout(_updatePointAllocation,_config.updateInterval);try{var message=transport.responseXML.getElementsByTagName('message')[0].firstChild.nodeValue;var money=transport.responseXML.getElementsByTagName('money')[0].firstChild.nodeValue;var points=transport.responseXML.getElementsByTagName('points')[0].firstChild.nodeValue;_showErrorMessage(message);_elms.ccAmount.value=money;_elms.redemptionPointsTotal.value=points;_horizontalSlider.setValue(Math.ceil(points/_pointsPerPixel),false,true,true);_showCreditCardSection();}catch(e){_showErrorMessage(_getTranslation("CO_POINTS_ALLOCATION_ERROR"));}},onException:function(transport,exception){setTimeout(_updatePointAllocation,_config.updateInterval);throw exception;},onFailure:function(){setTimeout(_updatePointAllocation,_config.updateInterval);}});};if(_allocationPointsBuffer!=null){_elms.ccAmount.value=_getTranslation("ALLOCATION_POINTS_SLIDER_UPDATING");_send(_ajaxUrl,{mode:'points',points:_allocationPointsBuffer});_allocationPointsBuffer=null;}else if(_allocationMoneyBuffer!=null){_elms.redemptionPointsTotal.value=_getTranslation("ALLOCATION_POINTS_SLIDER_UPDATING");_send(_ajaxUrl,{mode:'money',totalPoints:_config.maxPointsToUse,moneyTarget:_allocationMoneyBuffer});_allocationMoneyBuffer=null;}else{setTimeout(_updatePointAllocation,_config.updateInterval);}};var _updateSliderByPointsChange=function(offsetFromStart){if(offsetFromStart<Math.ceil(_config.maxPointsToUse/_pointsPerPixel)){var incrementSize=_config.pixelWidth*0.05;var offsetFromIncrement=offsetFromStart%incrementSize;if(offsetFromIncrement*2>incrementSize){offsetFromStart+=incrementSize-offsetFromIncrement;}else{offsetFromStart-=offsetFromIncrement;}}
var nextTick=Math.floor(offsetFromStart*_pointsPerPixel);_elms.redemptionPointsTotal.value=Math.min(nextTick,_config.maxPointsToUse);};var _getSliderCreditCardAmountWithAjax=function(){var points=parseInt(_elms.redemptionPointsTotal.getValue());if(isNaN(points)){_allocationPointsBuffer=_config.initialPoints;_showErrorMessage(_getTranslation("CO_POINTS_MUST_BE_INTERGER"));return;}
_allocationPointsBuffer=points;};var _getSliderPointsAmountWithAjax=function(){var errorMessage=_getTranslation("CO_MIN_PAYMENT")+" "+_config.initialCreditCardAmount;var ccAmount=parseFloat(_elms.ccAmount.getValue());if(isNaN(ccAmount)){_showErrorMessage(_getTranslation(errorMessage));return;}
if(ccAmount<0){_elms.ccAmount.value=0;_allocationMoneyBuffer=0;alert(errorMessage);return;}
_elms.ccAmount.value=ccAmount;_allocationMoneyBuffer=ccAmount;};var _ccAmountKeyPressListener=function(event){if(event.keyCode==Event.KEY_RETURN){_getSliderPointsAmountWithAjax();}};var _pointsAmountKeyPressListener=function(event){if(event.keyCode==Event.KEY_RETURN){_getSliderCreditCardAmountWithAjax();}};var _sliderKeyPressSliderListener=function(event){YAHOO.util.Event.preventDefault(YAHOO.util.Event.getEvent(event));};var _sliderOnChangeListener=function(offsetFromStart){_updateSliderByPointsChange(offsetFromStart);_getSliderCreditCardAmountWithAjax();};var _initialize=function(){_elms.cache();if(!_elms.isValidHtml()){throw new EzRez.Util.Exception({message:"Invalid html for RedemptionSlider."});}
var sliderWidth=Math.ceil(_config.maxPointsToUse/_pointsPerPixel);_horizontalSlider=YAHOO.widget.Slider.getHorizSlider(_elms.slider,_elms.thumb,0,sliderWidth,1);_horizontalSlider.setValue(_initialPointsInPixels,false,true,false);if(!_config.isCashAdjustmentSupported){_elms.ccAmount.readOnly=true;}
_getSliderCreditCardAmountWithAjax();_showCreditCardSection();_updatePointAllocation();};var _applyListeners=function(){var cc_amount=_elms.ccAmount;if(_config.isCashAdjustmentSupported){cc_amount.observe('blur',_getSliderPointsAmountWithAjax);cc_amount.observe('keypress',_ccAmountKeyPressListener);}
_elms.redemptionPointsTotal.observe('blur',_getSliderCreditCardAmountWithAjax);_elms.redemptionPointsTotal.observe('keypress',_pointsAmountKeyPressListener);_elms.slider.observe('keydown',_sliderKeyPressSliderListener);_elms.slider.observe('keypress',_sliderKeyPressSliderListener);_horizontalSlider.onChange=_sliderOnChangeListener;};var _removeListeners=function(){var cc_amount=_elms.ccAmount;if(_config.isCashAdjustmentSupported){cc_amount.stopObserving('blur',_getSliderPointsAmountWithAjax);cc_amount.stopObserving('keypress',_ccAmountKeyPressListener);}
_elms.redemptionPointsTotal.stopObserving('blur',_getSliderCreditCardAmountWithAjax);_elms.redemptionPointsTotal.stopObserving('keypress',_pointsAmountKeyPressListener);_elms.slider.stopObserving('keydown',_sliderKeyPressSliderListener);_elms.slider.stopObserving('keypress',_sliderKeyPressSliderListener);_horizontalSlider.onChange=null;};this.reinitialize=function(){_removeListeners();_initialize();_applyListeners();};this.applyListeners=function(){_applyListeners();};this.removeListeners=function(){_removeListeners();};_initialize();};return{initialize:function(cfg){return new RedemptionSlider(cfg);},applyListeners:function(ui){ui.applyListeners();},removeListeners:function(ui){ui.removeListeners();}};})());})(EzRez.Application);(function(App){App.createUIComponent('dualSliderFactory',(function(){var DualSliderFactory=function(){var _sliders=$H();var _appliedListeners=false;var _applyListeners=function(){_sliders.each(function(item){item.value.applyListeners();});_appliedListeners=true;};var _removeListeners=function(){_sliders.each(function(item){item.value.removeListeners();});_appliedListeners=false;};this.add=function(cfg){if(_sliders.get(cfg.id)){return;}
var slider=new EzRez.UI.DualSliderFilter(cfg);_sliders.set(cfg.id,slider);if(_appliedListeners){slider.applyListeners();}};this.get=function(id){return _sliders.get(id);};this.applyListeners=_applyListeners;this.removeListeners=_removeListeners;this.unload=function(){_removeListeners();_sliders=null;};};return{initialize:function(cfg){return new DualSliderFactory(cfg);},applyListeners:function(ui){ui.applyListeners();},removeListeners:function(ui){ui.removeListeners();},unload:function(ui){ui.unload();}};})());})(EzRez.Application);(function(App){App.createUIComponent('helpToolTip',(function(){var HelpToolTip=function(cfg){var _config=Object.extend({className:'helpLink'},cfg);var _toolTip=null;var _clickListener=function(evt){var elm=$(evt.target);var anchor=null;if(elm.nodeName.strip().toLowerCase()!=='a'){anchor=elm.up('a');}
if(Object.isElement(anchor)&&anchor.href.endsWith('#')){Event.stop(evt);}
if(_toolTip!==null){_toolTip.doShow(evt);}};this.applyListeners=function(){var elms=$$('.'+_config.className);elms.each(function(elm){elm.observe('click',_clickListener);});_toolTip=new YAHOO.widget.Tooltip("toolTtip",{context:elms});};this.removeListeners=function(){$$('.'+_config.className).each(function(elm){elm.stopObserving('click',_clickListener);});};};return{initialize:function(cfg){return new HelpToolTip(cfg);},applyListeners:function(ui){ui.applyListeners();},removeListeners:function(ui){ui.removeListeners();},unload:function(ui){ui.removeListeners();}};})());})(EzRez.Application);