(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 _1882="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 _1885={openedState:"openedState",closedState:"closedState",hoverState:"hoverState",moduleAction:"moduleAction",packageOnly:"packageOnly",resortCategories:"resortCategoryItem",selected:"selected"};var _1886="No_Preference",resortCategoryPrefix="ResortCategory_",resortPrefix="Resort_DResort_",resortSelectionNoPreferencePrefix="ResortSelection_No_Preference_",resortSuffix="_Resorts",iKnowValue="I_Know";var _1887=[];function onClick(elem,evt){return Event.on(elem,"click",evt);}function withEachResortCategoryInput(apply){Dom.getElementsBy(function(elem){return Dom.hasClass(elem.parentNode,_1885.resortCategories);},"input",ids.resortCategoryList,apply);}function withEachResortOption(apply){Dom.getElementsBy(function(elem){return true;},"option",ids.resortSelectionDropDown,apply);}function submitReportingLinkTrack_onclick(_188e){var _188f={engines:[Disney.WDPRO.IBC.Reporting.ANALYTICS_ENGINES.HitBox,Disney.WDPRO.IBC.Reporting.ANALYTICS_ENGINES.SiteCatalyst]};_188f.linkName=_188e;Disney.WDPRO.IBC.Reporting.TrackCustomLink(_188f);delete _188f;}function handleResortCategoryChange(){var _1890="";var _1891=$("ResortSelection_Module");if(_1891){if($(ids.noPreferenceInput).checked){handleOptionsChange(true);if($(ids.diningCheckbox)!==null){document.getElementById("diningContainer").style.display="none";}}else{handleOptionsChange(false);if($(ids.diningCheckbox)!==null){if(Figment.DOM.hasClassName(document.getElementById("productSelectionHeading_ROOM"),"selected")){document.getElementById("diningContainer").style.display="none";}else{document.getElementById("diningContainer").style.display="block";}}}}withEachResortCategoryInput(function(elem){var _1893=elem.id.substring(resortCategoryPrefix.length);var _1894=_1893+resortSuffix;var _1895=elem.parentNode;if(elem.checked===true){_1890=_1893;Dom.addClass(_1895,_1885.selected);Dom.replaceClass(_1894,_1885.closedState,_1885.openedState);var _1896=$(resortSelectionNoPreferencePrefix+_1893);if(_1896!==null){_1896.checked=true;}delete _1896;}else{Dom.removeClass(_1895,_1885.selected);Dom.replaceClass(_1894,_1885.openedState,_1885.closedState);}delete _1895;});var _1897=new Date();var _1898=new Date(document.getElementById("travelDates_Arrival").value);if(_1890==="ODLX"){handleDiningChange(true);_1897.setDate(_1897.getDate()+5);var _1899=new Date();_1899.setDate(_1899.getDate()+12);resetDateTimestamp(_1897);if(_1898<_1897){document.getElementById("travelDates_Arrival").value=Disney.WDPRO.IBC.TravelDates.dateOutput(_1897);document.getElementById("travelDates_Departure").value=Disney.WDPRO.IBC.TravelDates.dateOutput(_1899);}}else{handleDiningChange(false);}Dom.replaceClass(ids.resortSelectionDropDownContainer,_1885.openedState,_1885.closedState);}function resetDateTimestamp(date){date.setHours(0);date.setSeconds(0);date.setMinutes(0);date.setMilliseconds(0);}function handleIKnowWhatResortIWantChange(){handleResortCategoryChange();handleOptionsChange(false);Dom.replaceClass(ids.resortSelectionDropDownContainer,_1885.closedState,_1885.openedState);handleIKnowWhatResortDiningChange();}function handleIKnowWhatResortDiningChange(){var _189b=$(ids.resortSelectionDropDown).value.substring(resortPrefix.length);var _189c=new Date();var _189d=new Date(document.getElementById("travelDates_Arrival").value);if(_189b==="SWN"||_189b==="DOL"){handleDiningChange(true);_189c.setDate(_189c.getDate()+5);var _189e=new Date();_189e.setDate(_189e.getDate()+12);resetDateTimestamp(_189c);if(_189d<_189c){document.getElementById("travelDates_Arrival").value=Disney.WDPRO.IBC.TravelDates.dateOutput(_189c);document.getElementById("travelDates_Departure").value=Disney.WDPRO.IBC.TravelDates.dateOutput(_189e);}}else{handleDiningChange(false);}}function handleOptionsChange(arg){if(document.getElementById("optionsContainer")!==null){if(arg){document.getElementById("optionsContainer").style.display="none";}else{document.getElementById("optionsContainer").style.display="block";}}}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 _18a4=args.shift().id,resortSelectionDropDown=$(ids.resortSelectionDropDown),optionsToRemove=[],i,len,isPackage=_18a4===ProductSelection.getPackagesAccordionHeadId();resetCategorySelection();var apply;if(isPackage){while(resortSelectionDropDown.hasChildNodes()){resortSelectionDropDown.removeChild(resortSelectionDropDown.firstChild);}for(i=0;i<_1887.length;i++){resortSelectionDropDown.appendChild(_1887[i]);}apply=function(elem){Dom.removeClass(elem,_1885.closedState);};}else{apply=function(elem){if(elem.parentNode===resortSelectionDropDown){optionsToRemove.push(elem);}else{Dom.addClass(elem,_1885.closedState);}};}Dom.getElementsByClassName(_1885.packageOnly,undefined,ids.resortSelectionModule,apply);for(i=0,len=optionsToRemove.length;i<len;i++){resortSelectionDropDown.removeChild(optionsToRemove[i]);}delete resortSelectionDropDown;}function moreVacationsPrefsHBXLink(elem){var _18a9="";if(YAHOO.util.Dom.hasClass(ids.resortSelectionModule,"openedModule")){_18a9="_Open";}else{if(YAHOO.util.Dom.hasClass(ids.resortSelectionModule,"closedModule")){_18a9="_Close";}}submitReportingLinkTrack_onclick(_1882+_18a9);}function init(){withEachResortOption(function(elem){_1887.push(elem);});ProductSelection.afterUpdateProductSelection.subscribe(handleProductSelectionChange);Dom.getElementsByClassName(_1885.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(_1885.moduleAction,"h3",ids.resortSelectionModule,function(elem){Event.on(elem,"mouseover",function(){Dom.addClass(elem,_1885.hoverState);});Event.on(elem,"mouseout",function(){Dom.removeClass(elem,_1885.hoverState);});});}Dom.getElementsByClassName(_1885.moduleAction,"h3",ids.resortSelectionModule,function(elem){onClick(elem,function(){moreVacationsPrefsHBXLink(elem);});});}Figment.EntryPoint.add({main:init});})();
