(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 _17d2="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 _17d5={openedState:"openedState",closedState:"closedState",hoverState:"hoverState",moduleAction:"moduleAction",packageOnly:"packageOnly",resortCategories:"resortCategoryItem",selected:"selected"};var _17d6="No_Preference",resortCategoryPrefix="ResortCategory_",resortPrefix="Resort_DResort_",resortSelectionNoPreferencePrefix="ResortSelection_No_Preference_",resortSuffix="_Resorts",iKnowValue="I_Know";var _17d7=[];function onClick(elem,evt){return Event.on(elem,"click",evt);}function withEachResortCategoryInput(apply){Dom.getElementsBy(function(elem){return Dom.hasClass(elem.parentNode,_17d5.resortCategories);},"input",ids.resortCategoryList,apply);}function withEachResortOption(apply){Dom.getElementsBy(function(elem){return true;},"option",ids.resortSelectionDropDown,apply);}function submitReportingLinkTrack_onclick(_17de){var _17df={engines:[Disney.WDPRO.IBC.Reporting.ANALYTICS_ENGINES.HitBox,Disney.WDPRO.IBC.Reporting.ANALYTICS_ENGINES.SiteCatalyst]};_17df.linkName=_17de;Disney.WDPRO.IBC.Reporting.TrackCustomLink(_17df);delete _17df;}function handleResortCategoryChange(){var _17e0="";withEachResortCategoryInput(function(elem){var _17e2=elem.id.substring(resortCategoryPrefix.length);var _17e3=_17e2+resortSuffix;var _17e4=elem.parentNode;if(elem.checked===true){_17e0=_17e2;Dom.addClass(_17e4,_17d5.selected);Dom.replaceClass(_17e3,_17d5.closedState,_17d5.openedState);var _17e5=$(resortSelectionNoPreferencePrefix+_17e2);if(_17e5!==null){_17e5.checked=true;}delete _17e5;}else{Dom.removeClass(_17e4,_17d5.selected);Dom.replaceClass(_17e3,_17d5.openedState,_17d5.closedState);}delete _17e4;});var _17e6=new Date();var _17e7=new Date(document.getElementById("travelDates_Arrival").value);if(_17e0==="ODLX"){handleDiningChange(true);_17e6.setDate(_17e6.getDate()+5);var _17e8=new Date();_17e8.setDate(_17e8.getDate()+12);if(_17e7<_17e6){document.getElementById("travelDates_Arrival").value=Disney.WDPRO.IBC.TravelDates.dateOutput(_17e6);document.getElementById("travelDates_Departure").value=Disney.WDPRO.IBC.TravelDates.dateOutput(_17e8);}}else{handleDiningChange(false);_17e6.setDate(_17e6.getDate()+3);var _17e8=new Date();_17e8.setDate(_17e8.getDate()+10);if(_17e7<_17e6){document.getElementById("travelDates_Arrival").value=Disney.WDPRO.IBC.TravelDates.dateOutput(_17e6);document.getElementById("travelDates_Departure").value=Disney.WDPRO.IBC.TravelDates.dateOutput(_17e8);}}Dom.replaceClass(ids.resortSelectionDropDownContainer,_17d5.openedState,_17d5.closedState);}function handleIKnowWhatResortIWantChange(){handleResortCategoryChange();Dom.replaceClass(ids.resortSelectionDropDownContainer,_17d5.closedState,_17d5.openedState);handleIKnowWhatResortDiningChange();}function handleIKnowWhatResortDiningChange(){var _17e9=$(ids.resortSelectionDropDown).value.substring(resortPrefix.length);var _17ea=new Date();var _17eb=new Date(document.getElementById("travelDates_Arrival").value);if(_17e9==="SWN"||_17e9==="DOL"){handleDiningChange(true);_17ea.setDate(_17ea.getDate()+5);var _17ec=new Date();_17ec.setDate(_17ec.getDate()+12);if(_17eb<_17ea){document.getElementById("travelDates_Arrival").value=Disney.WDPRO.IBC.TravelDates.dateOutput(_17ea);document.getElementById("travelDates_Departure").value=Disney.WDPRO.IBC.TravelDates.dateOutput(_17ec);}}else{handleDiningChange(false);_17ea.setDate(_17ea.getDate()+3);var _17ec=new Date();_17ec.setDate(_17ec.getDate()+10);if(_17eb<_17ea){document.getElementById("travelDates_Arrival").value=Disney.WDPRO.IBC.TravelDates.dateOutput(_17ea);document.getElementById("travelDates_Departure").value=Disney.WDPRO.IBC.TravelDates.dateOutput(_17ec);}}}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 _17f1=args.shift().id,resortSelectionDropDown=$(ids.resortSelectionDropDown),optionsToRemove=[],i,len,isPackage=_17f1===ProductSelection.getPackagesAccordionHeadId();resetCategorySelection();var apply;if(isPackage){while(resortSelectionDropDown.hasChildNodes()){resortSelectionDropDown.removeChild(resortSelectionDropDown.firstChild);}for(i=0;i<_17d7.length;i++){resortSelectionDropDown.appendChild(_17d7[i]);}apply=function(elem){Dom.removeClass(elem,_17d5.closedState);};}else{apply=function(elem){if(elem.parentNode===resortSelectionDropDown){optionsToRemove.push(elem);}else{Dom.addClass(elem,_17d5.closedState);}};}Dom.getElementsByClassName(_17d5.packageOnly,undefined,ids.resortSelectionModule,apply);for(i=0,len=optionsToRemove.length;i<len;i++){resortSelectionDropDown.removeChild(optionsToRemove[i]);}delete resortSelectionDropDown;}function moreVacationsPrefsHBXLink(elem){var _17f6="";if(YAHOO.util.Dom.hasClass(ids.resortSelectionModule,"openedModule")){_17f6="_Open";}else{if(YAHOO.util.Dom.hasClass(ids.resortSelectionModule,"closedModule")){_17f6="_Close";}}submitReportingLinkTrack_onclick(_17d2+_17f6);}function init(){withEachResortOption(function(elem){_17d7.push(elem);});ProductSelection.afterUpdateProductSelection.subscribe(handleProductSelectionChange);Dom.getElementsByClassName(_17d5.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(_17d5.moduleAction,"h3",ids.resortSelectionModule,function(elem){Event.on(elem,"mouseover",function(){Dom.addClass(elem,_17d5.hoverState);});Event.on(elem,"mouseout",function(){Dom.removeClass(elem,_17d5.hoverState);});});}Dom.getElementsByClassName(_17d5.moduleAction,"h3",ids.resortSelectionModule,function(elem){onClick(elem,function(){moreVacationsPrefsHBXLink(elem);});});}Figment.EntryPoint.add({main:init});})();