(function(){var Dom=YAHOO.util.Dom,$=YAHOO.util.Dom.get,ProductSelection=YAHOO.Disney.WDPRO.IBC.ProductSelection,Anim=YAHOO.util.Anim,Event=YAHOO.util.Event;var _17bd="MoreVacationPrefs_Link";var isIE=YAHOO.env.ua.ie;var ids={resortCategoryList:"resortCategoryList",resortSelectionDropDownContainer:"resortSelectionDropDownContainer",resortSelectionDropDown:"resortSelectionDropDown",noPreferenceInput:"ResortCategory_No_Preference",iKnowWhatIWantInput:"ResortCategory_I_KNOW",resortSelectionModule:"ResortSelection_Module",diningCheckbox:"diningCheckbox",diningInfoText:"diningInfoText",productSelectionModule:"ProductSelection_Module"};var _17c0={openedState:"openedState",closedState:"closedState",hoverState:"hoverState",moduleAction:"moduleAction",packageOnly:"packageOnly",resortCategories:"resortCategoryItem",selected:"selected"};var _17c1="No_Preference",resortCategoryPrefix="ResortCategory_",resortPrefix="Resort_DResort_",resortSelectionNoPreferencePrefix="ResortSelection_No_Preference_",resortSuffix="_Resorts",iKnowValue="I_Know";var _17c2=[];function onClick(elem,evt){return Event.on(elem,"click",evt);}function withEachResortCategoryInput(apply){Dom.getElementsBy(function(elem){return Dom.hasClass(elem.parentNode,_17c0.resortCategories);},"input",ids.resortCategoryList,apply);}function withEachResortOption(apply){Dom.getElementsBy(function(elem){return true;},"option",ids.resortSelectionDropDown,apply);}function submitReportingLinkTrack_onclick(_17c9){var _17ca={engines:[Disney.WDPRO.IBC.Reporting.ANALYTICS_ENGINES.HitBox,Disney.WDPRO.IBC.Reporting.ANALYTICS_ENGINES.SiteCatalyst]};_17ca.linkName=_17c9;Disney.WDPRO.IBC.Reporting.TrackCustomLink(_17ca);delete _17ca;}function handleResortCategoryChange(){var _17cb="";withEachResortCategoryInput(function(elem){var _17cd=elem.id.substring(resortCategoryPrefix.length);var _17ce=_17cd+resortSuffix;var _17cf=elem.parentNode;if(elem.checked===true){_17cb=_17cd;Dom.addClass(_17cf,_17c0.selected);Dom.replaceClass(_17ce,_17c0.closedState,_17c0.openedState);var _17d0=$(resortSelectionNoPreferencePrefix+_17cd);if(_17d0!==null){_17d0.checked=true;}delete _17d0;}else{Dom.removeClass(_17cf,_17c0.selected);Dom.replaceClass(_17ce,_17c0.openedState,_17c0.closedState);}delete _17cf;});if(_17cb==="ODLX"){handleDiningChange(true);}else{handleDiningChange(false);}Dom.replaceClass(ids.resortSelectionDropDownContainer,_17c0.openedState,_17c0.closedState);}function handleIKnowWhatResortIWantChange(){handleResortCategoryChange();Dom.replaceClass(ids.resortSelectionDropDownContainer,_17c0.closedState,_17c0.openedState);handleIKnowWhatResortDiningChange();}function handleIKnowWhatResortDiningChange(){var _17d1=$(ids.resortSelectionDropDown).value.substring(resortPrefix.length);if(_17d1==="SWN"||_17d1==="DOL"){handleDiningChange(true);}else{handleDiningChange(false);}}function handleDiningChange(arg){if($(ids.diningCheckbox)!==null){if(arg){$(ids.diningCheckbox).checked=false;$(ids.diningCheckbox).disabled=true;Dom.replaceClass(ids.diningInfoText,"diningInfo","diningInfoDisabled");}else{$(ids.diningCheckbox).disabled=false;Dom.replaceClass(ids.diningInfoText,"diningInfoDisabled","diningInfo");}}}function resetCategorySelection(){$(ids.noPreferenceInput).checked=true;handleResortCategoryChange();}function handleProductSelectionChange(evt,args,obj){var _17d6=args.shift().id,resortSelectionDropDown=$(ids.resortSelectionDropDown),optionsToRemove=[],i;resetCategorySelection();var apply,applyWithoutOptionsManagement,applyWithOptionsManagement;if(_17d6===ProductSelection.getRoomOnlyAccordionHeadId()||_17d6===ProductSelection.getRoomDineAccordionHeadId()){apply=function(elem){Dom.addClass(elem,_17c0.closedState);};}else{apply=function(elem){Dom.removeClass(elem,_17c0.closedState);};}if(isIE&&(_17d6===ProductSelection.getRoomOnlyAccordionHeadId()||_17d6===ProductSelection.getRoomDineAccordionHeadId())){applyWithoutOptionsManagement=apply;applyWithOptionsManagement=function(elem){if(elem.parentNode===resortSelectionDropDown){optionsToRemove.push(elem);}else{applyWithoutOptionsManagement(arguments);}};apply=applyWithOptionsManagement;}Dom.getElementsByClassName(_17c0.packageOnly,undefined,ids.resortSelectionModule,apply);if(isIE){var _17db=function(){for(i=0;i<optionsToRemove.length;i++){resortSelectionDropDown.removeChild(optionsToRemove[i]);}};_17db();if(_17d6===ProductSelection.getRoomOnlyAccordionHeadId()||_17d6===ProductSelection.getRoomDineAccordionHeadId()){_17db();}else{withEachResortOption(function(elem){optionsToRemove.push(elem);});_17db();for(i=0;i<_17c2.length;i++){resortSelectionDropDown.appendChild(_17c2[i]);}}}delete resortSelectionDropDown;}function moreVacationsPrefsHBXLink(elem){var _17de="";if(YAHOO.util.Dom.hasClass(ids.resortSelectionModule,"openedModule")){_17de="_Open";}else{if(YAHOO.util.Dom.hasClass(ids.resortSelectionModule,"closedModule")){_17de="_Close";}}submitReportingLinkTrack_onclick(_17bd+_17de);}function init(){if(isIE){withEachResortOption(function(elem){_17c2.push(elem);});}ProductSelection.afterUpdateProductSelection.subscribe(handleProductSelectionChange);Dom.getElementsByClassName(_17c0.selected,"DT",$("ProductSelection_Module"),function(e){handleProductSelectionChange(null,[e]);});onClick(ids.noPreferenceInput,handleResortCategoryChange);withEachResortCategoryInput(function(elem){onClick(elem,handleResortCategoryChange);});onClick(ids.iKnowWhatIWantInput,handleIKnowWhatResortIWantChange);Event.on(ids.resortSelectionDropDown,"change",handleIKnowWhatResortDiningChange);handleResortCategoryChange();if(isIE&&isIE<=6){Dom.getElementsByClassName(_17c0.moduleAction,"h3",ids.resortSelectionModule,function(elem){Event.on(elem,"mouseover",function(){Dom.addClass(elem,_17c0.hoverState);});Event.on(elem,"mouseout",function(){Dom.removeClass(elem,_17c0.hoverState);});});}Dom.getElementsByClassName(_17c0.moduleAction,"h3",ids.resortSelectionModule,function(elem){onClick(elem,function(){moreVacationsPrefsHBXLink(elem);});});}Figment.EntryPoint.add({main:init});})();