
PropertyDetail=Class.create();PropertyDetail.prototype={_prop:null,preview:null,onLoad:function(data){this.preview=new CMPropertyDetail(data,[new AmenitiesTab(data),new AvailabilityTab(data)]);this._prop=data;CMBreadCrumb.render(null,'breadCrumb',this._prop.location);this.preview.onLoad();var inquiryPropId;if(inquiryPropId=mira.params['inquiry']){CMInquiry.showInquiryForm(inquiryPropId,mira.page);}
wak.autohelp.pullTrigger(mira.autohelp.SHARE_SAVED_AUTO,function(){return(mira.user&&(wak.map.size(mira.user.favoriteIds)>3));},function(){CMPanelShareProperties.show(mira.constants.SHARE_SAVED_AUTO)});wak.autohelp.pullTrigger(mira.autohelp.ADD_SAVED,null,function(){SearchResults.showDisappearingHelpBubble(mira.autohelp.ADD_SAVED);});wak.autohelp.pullTrigger(mira.autohelp.VIEW_SAVED,null,function(){SearchResults.showDisappearingHelpBubble(mira.autohelp.VIEW_SAVED)});},onOptOut:function(anc){CMUtil.onOptOut(this._prop,anc);},onThumbsUp:function(){wak.autohelp.setFired(mira.autohelp.ADD_SAVED);if(this._prop.__isFav)return;CMFavsTarget.instance.addFavorite(this._prop);wak.css.hide('addFavIcon');wak.css.show('isFavIcon');wak.css.show('removeFavorite');},onThumbsDown:function(){if(!this._prop.__isFav)return;UserService.instance.removeFavorite(this._prop);CMFavsTarget.instance.update();wak.css.hide('isFavIcon');wak.css.hide('removeFavorite');wak.css.show('addFavIcon');},getSelectedProperty:function(){return this._prop;},fill:function(){if(CMInquiry.instance)CMInquiry.instance.fill();if(CMPanelShareProperties.instance)CMPanelShareProperties.instance.fill();},gotoBooking:function(){var obj=mira.getSearchCriteriaArgs(mira.params);obj.propertyId=this._prop.id;mira.gotoPage.id('BookingDetails',obj);},shouldShowDateCollector:function(){var params=mira.getSearchCriteriaArgs(mira.params);return params['q.locationPath']||!isNaN(Number(params['q.ownerId']))||params['q.ownerShowLocationProps']=='true'||params['q.keywords'];},refineSearch:function(startDate,endDate){var params=mira.getSearchCriteriaArgs(mira.params);params['q.fromDate']=startDate.formatServer();params['q.toDate']=endDate.formatServer();var sbCookie=mira.getSearchBoxCookie();if(!sbCookie)sbCookie={};sbCookie['q.fromDate']=startDate.getSimpleDateString();sbCookie['q.toDate']=endDate.getSimpleDateString();mira.setSearchBoxCookie(sbCookie);var delayedAction=function(){mira.gotoPage.id('SearchResults',params);};window.setTimeout(delayedAction,1);}};AmenitiesTab=Class.create();AmenitiesTab.prototype={id:'amen',title:'Amenities & Rooms',_prop:null,ctor:function(prop){this._prop=prop;AmenitiesTab.instance=this;},onLoad:function(){this._renderBedRooms();this._renderBathRooms();},_renderAmenities:function(){var am={};for(var key in mira.AMENITIES){var level=mira.AMENITIES[key];for(var catKey in level){var cat=level[catKey];var list=am[cat.displayName];if(!list){list=[];am[cat.displayName]=list;}
cat.amenities.each(function(checkbox){if(cat.displayName=='Theme'&&this._prop.themes[checkbox.id]){list.push(checkbox.displayName);}else if(cat.displayName=='Suitability'&&wak.isDefined(this._prop.suitability[checkbox.id])){var val=this._prop.suitability[checkbox.id];list.push(checkbox.displayName+(val?'':' (no)'));}else if(this._prop.amenities[checkbox.id]){list.push(checkbox.displayName);}}.bind(this));}}
var t=wak.template.create(g_amenitiesBlock,'amenitiesBlock');for(var key in am){var list=am[key];t.replaceToken('amTitle',key);t.replaceToken('amValues',list.length>0?list.join(strings.DOT):strings.NA);t.next();}
t.compose();},_renderBedRooms:function(){if(this._prop.bedrooms.length==0)return;var t=wak.template.create(g_bedroomsBlock,'bedroomsBlock');this._prop.bedrooms.each(function(room){t.replaceToken('bed',room);var details=[];PropertyService.BEDROOM_COLS.each(function(key){var count=room[key];if(count==0)return;var txt=count+' '+key.replace(/Count/,'');if(count>1)txt+="s";details.push(txt);});t.replaceToken('bedDetails',details.join(', '));t.next();}.bind(this));t.compose();},_renderBathRooms:function(){if(this._prop.bathrooms.length==0)return;var t=wak.template.create(g_bathroomsBlock,'bathroomsBlock');this._prop.bathrooms.each(function(room){t.replaceToken('bath',room);var details=[];PropertyService.BATHROOM_COLS.each(function(key){if(!room[key])return;details.push(key);});t.replaceToken('bathDetails',details.join(', '));t.next();}.bind(this));t.compose();}};AvailabilityTab=Class.create();AvailabilityTab.prototype={_prop:null,id:'avail',title:'Rates & Availability',ctor:function(prop){this._prop=prop;AvailabilityTab.instance=this;},onActivate:function(isFirstTime){if(!isFirstTime)return;var previewCal=PropertyDetail.instance.preview.previewCal;var cal=new CMAvailability(this._prop);if(previewCal.spans)cal.render(previewCal.spans);else cal.loadAndRender();var rates=new RatesTab(this._prop,true);rates.onActivate(true);if(this._prop.seasonalRates.length==0){wak.css.display('ratesChartTemplate',false);}}};PropertyDetail.instance=new PropertyDetail();mira.registerPage(PropertyDetail.instance);