/* JSCmprsd Hash:5d0f382c45935f98485af89bf79de946 */
var NearBySchoolsModule=new Class({Implements:[Options,Events],options:{},initialize:function(a){this.setOptions(a);this.map=new GoogleMap();this.map.removeControls();this.uiComponent.nextlink=$("nextlink");this.uiComponent.prevlink=$("prevlink");this.uiComponent.schoolslistrows=$("schoolslistrows");this.uiComponent.previous_container=$("previous-container");this.uiComponent.next_container=$("next-container");if(this.uiComponent.nextlink!=null){this.uiComponent.wholemodule=this.uiComponent.next_container.getParent(".NearBySchools")}this.setupEventHandlers();this.xhr=new Request({method:"post",url:"/schoolfinder/NearBySchools/?__ajax=NearBySchools",onSuccess:function(b){this.handleSearchResults(b)}.bind(this),onRequest:function(){}.bind(this),onStateChange:function(b){}.bind(this),onFailure:function(b){this.handleSearchFailure(b)}.bind(this)})},xhr:null,map:null,compareSchools:null,uiComponent:{nextlink:null,prevlink:null,schoolslistrows:null,previous_container:null,next_container:null},searchCriteria:{radius:null,page:1,schoolid:null,hasnextpage:false},nearbySchoolRowTemplate:"",executeSearch:function(a){if(this.xhr.xhr.readyState==0||this.xhr.xhr.readyState==4){this.xhr.send(JSON.encode(a))}},setupEventHandlers:function(){if(this.uiComponent.nextlink!=null){this.uiComponent.nextlink.addEvent("click",function(){if(this.searchCriteria.page>=4){this.uiComponent.next_container.addClass("hideContent")}this.uiComponent.previous_container.removeClass("hideContent");if(this.searchCriteria.page<5){this.showloading();this.searchCriteria.page++;(function(){this.executeSearch(this.searchCriteria)}).delay(1000,this)}else{this.searchCriteria.page=5}}.bind(this))}if(this.uiComponent.prevlink!=null){this.uiComponent.prevlink.addEvent("click",function(){this.showloading();this.uiComponent.next_container.removeClass("hideContent");this.searchCriteria.page=(this.searchCriteria.page>1)?--this.searchCriteria.page:1;if(this.searchCriteria.page==1){this.uiComponent.previous_container.addClass("hideContent")}(function(){this.executeSearch(this.searchCriteria)}).delay(1000,this)}.bind(this))}},handleSearchResults:function(a){try{var c=JSON.decode(a);if(c.faultCode){this.handleSearchFailure(c);return}}catch(b){this.handleSearchFailure(a);return}this.updateMap(c.schoolprofiles);this.updateSchoolList(c.schoolprofiles);this.hideloading()},handleSearchFailure:function(a){this.hideloading()},showloading:function(){this.moduleSize=this.uiComponent.wholemodule.getSize();if(!this.loadingdiv){this.loadingdiv=new Element("div",{styles:{"background-color":"#fff",position:"absolute"},opacity:0.6,"class":"loader-light-blue"});this.loadingdiv.inject(this.uiComponent.wholemodule)}this.loadingdiv.setStyles({top:0,left:0,width:this.moduleSize.x,height:this.moduleSize.y});this.uiComponent.wholemodule.setStyle("position","relative");this.loadingdiv.setStyle("display","block")},hideloading:function(){this.loadingdiv.setStyle("display","none");this.uiComponent.wholemodule.setStyle("position","static")},updateMap:function(a){if(a.length>0){this.map.clear();$each(a,function(d){var c="<div class='googlemap-infowrap'><p class='googlemap-schoolname'><a href='"+d.schoolurl+"'>"+d.schoolname+"</a></p><p class='googlemap-schooladdress1'>"+d.address+"</p><p class='googlemap-schooladdress2'>"+d.city+", "+d.state+" "+d.postalcode+"</p><p class='googlemap-grade'>Grades: "+d.gradespan+"</p></div><br />";var e=$("row"+d.schoolid);if(d.distance==0){var b=this.map.addInfoMarker(parseFloat(d.latitude),parseFloat(d.longitude),this.map.options.markerColorGreen)}else{var b=this.map.addInfoMarker(parseFloat(d.latitude),parseFloat(d.longitude))}this.map.addInfoMarkerHtmlWindow(b,c,e,"click",this.highlightRow);$each(this.map.markerEvents,function(f){this.map.addInfoMarkerEvent(b,e,f,this.highlightRow)},this)},this);this.map.refreshMap()}},highlightRow:function(a){},updateSchoolList:function(b){if(b.length>0){var a="";$each(b,function(c){if(c.distance>0){var d=this.nearbySchoolRowTemplate.replace(/SCHOOLNAME/g,c.schoolname);d=d.replace(/SCHOOLID/g,c.schoolid);d=d.replace(/SCHOOLURL/g,c.schoolurl);d=d.replace(/DISTANCE/g,Math.round(c.distance*100)/100);a+=d}},this);this.uiComponent.schoolslistrows.innerHTML=a}if(this.searchCriteria.hasnextpage==false){this.uiComponent.next_container.addClass("hideContent")}}});