
dojo.config.usePlainJson=true;dojo.require("dojo.cookie");if(!window.czen)window.czen={};if(!czen.myTown){czen.myTown=(function(){return{init:function(props){this.props=props||window.myTownProps||null;if(!this.props)throw new Error('No myTown props available');this.gMap=czen.gMap||null;if(!this.gMap)throw new Error('No gMap available');this.gMapProps={inMyTown:true};dojo.mixin(this.gMapProps,this.props.gMapProps);this.gMap.init(this.gMapProps);this.serviceIds=['CHILDCARE','SPCLNEEDS','TUTORINGX','SENIRCARE','PETCAREXX','HOUSEKEEP','CAREGIGSX'];this.props.tabProps.showThisTabFrist=this.findRequestedService(this.props.tabProps.showThisTabFrist);this.tabContainer_listProps={tabContainerNode:document.getElementById('myTown_tabs'),tabContentContainerNode:document.getElementById('myTown_list_tabContentContainer'),tabContentContainerNodeIds:['mtl_cc','mtl_sn','mtl_tu','mtl_sc','mtl_pc','mtl_hk','mtl_cg'],tabServiceIds:this.serviceIds,fadeTransitions:false};dojo.mixin(this.tabContainer_listProps,this.props.tabProps);this.tabContainer_list=new TabContainer(this.tabContainer_listProps);this.tabContainer_refineProps={tabContainerNode:document.getElementById('myTown_tabs'),tabContentContainerNode:document.getElementById('myTown_refineSearch_tabContentContainer'),tabContentContainerNodeIds:['mtr_cc','mtr_sn','mtr_tu','mtr_sc','mtr_pc','mtr_hk','mtr_cg'],tabServiceIds:this.serviceIds,showContentOnLoad:true,fadeTransitions:false};dojo.mixin(this.tabContainer_refineProps,this.props.tabProps);this.tabContainer_refine=new TabContainer(this.tabContainer_refineProps);for(var i=0,j=this.tabContainer_list.tabPairs.length;i<j;i++){this.tabContainer_list.tabPairs[i].serviceId=this.tabContainer_list.tabServiceIds[i];}
for(var i=0,j=this.tabContainer_refine.tabPairs.length;i<j;i++){var curTabPair=this.tabContainer_refine.tabPairs[i];curTabPair.refineSearchForm=curTabPair.contentContainer.getElementsByTagName('form')[0]||null;dojo.connect(curTabPair.refineSearchForm,'onsubmit',this,this.refineSearch);};this.activeTabIndex=this.props.tabProps.showThisTabFrist;this.activeRefineSearchForm=this.tabContainer_refine.tabPairs[this.activeTabIndex].refineSearchForm;this.activeTabPair=this.tabContainer_list.tabPairs[this.activeTabIndex]
this.pageNumber=1;this.prevNext=document.getElementById('prevNext');this.req=null;this.listItems=null;dojo.connect(this.tabContainer_list,'beforeShowContent',this,this.callHome);if(!this.gMap.useMapContext){this.loadWithoutMapContext();}else{this.gMap.useMapContext=false;this.useMapContext=true;this.loadFromMapContext();}},loadWithoutMapContext:function(){this.gMap.map.setCenter(new GLatLng(this.gMap.centerLat,this.gMap.centerLong),this.gMap.zoomLevel);if(this.gMap.showHouse){this.gMap.markHouse();};this.tabContainer_list.setContent(this.tabContainer_list.showThisTabFrist);this.tabContainer_refine.setContent(this.tabContainer_refine.showThisTabFrist);},loadFromMapContext:function(){var mapContextCookie=dojo.fromJson(dojo.cookie("mapContext"));var myTownCookie=dojo.fromJson(dojo.cookie("myTown"));if((mapContextCookie&&myTownCookie)&&(mapContextCookie.centerLat&&mapContextCookie.centerLong&&myTownCookie.activeTabIndex>=0&&myTownCookie.pageNumber)){var zoom=mapContextCookie.zoomLevel||this.gMap.zoomLevel;this.gMap.map.setCenter(new GLatLng(mapContextCookie.centerLat,mapContextCookie.centerLong),zoom);if(this.gMap.showHouse){this.gMap.markHouse();};this.pageNumber=myTownCookie.pageNumber;var tabIndex=myTownCookie.activeTabIndex;this.cookiedProvider=mapContextCookie.providerNumber||null;this.tabContainer_list.setContent(tabIndex);this.tabContainer_refine.setContent(tabIndex);}else{this.loadWithoutMapContext();}},callHome:function(whichTab,paginate){this.activeTabIndex=whichTab;this.activeTabPair=this.tabContainer_list.tabPairs[whichTab];this.activeRefineSearchForm=this.tabContainer_refine.tabPairs[whichTab].refineSearchForm;if(this.useMapContext){}else if(!paginate){this.pageNumber=1;};this.clearMap();this.clearList();this.showLoading();var args={url:'/visitor/providerSearchResults.do',content:{serviceId:this.serviceIds[whichTab],pageNumber:this.pageNumber,ZIP:this.gMap.centerZIP},form:this.activeRefineSearchForm,handleAs:'json',load:dojo.hitch(this,this.handleResponse),error:dojo.hitch(this,this.handleError),timeOut:15000,preventCache:false};if(this.req)this.req.cancel();this.req=dojo.xhrGet(args);this.switchTab();},showLoading:function(){this.activeTabPair.contentContainer.innerHTML='<img class="loading" src="/img/myTown/listLoading.gif" />';},switchTab:function(){for(var i=0;i<this.tabContainer_list.tabPairs.length;i++){var currentClassName=this.tabContainer_list.tabPairs[i].tab.className;if(currentClassName.indexOf('on')>=0){this.tabContainer_list.tabPairs[i].tab.className=currentClassName.replace('on','off');}};var currentClassName=this.activeTabPair.tab.className;if(currentClassName.indexOf('off')>=0){this.activeTabPair.tab.className=currentClassName.replace('off','on');}},handleResponse:function(response,ioArgs){czen.gMap.populateMap(response,this.serviceIds[this.activeTabIndex]);this.populateList();if(this.useMapContext){if(this.cookiedProvider&&this.cookiedProvider>=1)this.gMap.showInfoWindow(this.cookiedProvider);this.useMapContext=false;}else{this.gMap.showFeaturedOrFirst();}
this.setCookie();},handleError:function(response,ioArgs){this.activeTabPair.contentContainer.innerHTML='<div style="font-weight:bold; text-align:center; padding:20px 70px;">There was an error processing your request.</div>';throw new Error('There was an error processing your request');},populateList:function(){var showHourlyRateColumn=true;if(this.activeTabPair.serviceId=='SENIRCARE')showHourlyRateColumn=false;this.activeTabPair.contentContainer.innerHTML=this.getListHTML(showHourlyRateColumn);this.listItems=dojo.query('.listing',this.activeTabPair.contentContainer);this.prevNext.innerHTML=this.getPrevNextHTML();},clearMap:function(){czen.gMap.clearMap();},refineSearch:function(whichForm){if(!whichForm||isNaN(whichForm))whichForm=this.activeTabIndex;this.callHome(whichForm);},paginate:function(whichForm,showPrevious,showNext){if(!whichForm||isNaN(whichForm))whichForm=this.activeTabIndex;if(showPrevious){this.pageNumber=this.gMap.dataMeta.currentPage-1;}else if(showNext){this.pageNumber=this.gMap.dataMeta.currentPage+1;}
this.callHome(whichForm,true);},clearList:function(){this.activeTabPair.contentContainer.innerHTML='';},getListHTML:function(showHourlyRateColumn){if(this.gMap.data.length<1){return'<div style="font-weight:bold; text-align:center; padding:20px 70px;">No care providers were found in this area.</div>';};var ret='';ret+='<div class="localResultsC"><table class="localResults" cellpadding="0" cellspacing="0" border="0" frame="void"><tr class="header"><td class="pNumber"></td><td class="name">Name</td><td>Age</td><td>Exp.</td>';if(showHourlyRateColumn){ret+='<td>Rate</td>';}
ret+='<td>Gender</td></tr>';for(var i=0,j=this.gMap.data.length;i<j;i++){var data=this.gMap.data;var providerNumber=this.gMap.dataMeta.rowStartNumber+(i);ret+='<tr class="listing" onclick="czen.myTown.setSelectedProvider('+i+',true);" style="cursor:pointer">';ret+='<td class="pNumber">'+providerNumber+'</td>';ret+='<td class="name"><nobr>'+data[i].name+'</nobr></td>';ret+='<td class="age">'+data[i].age+'</td>';ret+='<td class="exp">'+data[i].experience+' year'+this.checkAge(data[i].experience)+'</td>';if(showHourlyRateColumn){ret+='<td class="rate">';if(data[i].isCompany=='false'){ret+=data[i].rate;}
ret+='</td>';}
ret+='<td class="gender">'+data[i].gender+'</td>';ret+='</tr>';};ret+='</table></div>';return ret;},getPrevNextHTML:function(){var ret='';if(!this.gMap.dataMeta){return ret;};var dataMeta=this.gMap.dataMeta;ret+='<span class="prevNext">';if(dataMeta.showPrevious){ret+='<a href="javascript:;" onclick="czen.myTown.paginate('+this.activeTabIndex+',true,false)">< Previous</a>';};if(dataMeta.showPrevious&&dataMeta.showNext){ret+='<span> | </span>';};if(dataMeta.showNext){ret+='<a href="javascript:;" onclick="czen.myTown.paginate('+this.activeTabIndex+',false,true)">Next ></a>';}
ret+='</span>';ret+='<span style="padding-right:15px;">'+dataMeta.rowStartNumber+' - '+dataMeta.rowEndNumber+' of '+dataMeta.totalRows+'</span>';return ret;},setSelectedProvider:function(whichProvider,showInfoWindow){this.unSetSelectedProvider(whichProvider);dojo.addClass(this.listItems[whichProvider],'selected')
if(showInfoWindow)this.gMap.showInfoWindow(this.gMap.dataMeta.rowStartNumber+whichProvider);},unSetSelectedProvider:function(whichProvider){if(!this.listItems)return;for(var i=0,j=this.listItems.length;i<j;i++){dojo.removeClass(this.listItems[i],'selected');}},setCookie:function(){var cookie={activeTabIndex:this.activeTabIndex,pageNumber:this.pageNumber}
dojo.cookie('myTown',dojo.toJson(cookie))},findRequestedService:function(requestedService){if(!isNaN(requestedService))return requestedService;if(!requestedService)return 0;var ret=0;switch(requestedService){case'childCareTab':ret=0;break;case'specialNeedsTab':ret=1;break;case'tutoringTab':ret=2;break;case'seniorCareTab':ret=3;break;case'petCareTab':ret=4;break;case'housekeepingTab':ret=5;break;case'careGigsTab':ret=6;break;default:break;}
return ret;},checkAge:function(age){if(age==1)return' ';else return's ';}}})();};dojo.addOnLoad(function(){czen.myTown.init();});