function boundsIncluded(B,A){if(!$chk(B)){return false}sw1=B.getSouthWest();ne1=B.getNorthEast();sw2=A.getSouthWest();ne2=A.getNorthEast();if((sw1.lat()>sw2.lat())|(sw1.lng()>sw2.lng())|(ne2.lat()>ne1.lat())|(ne2.lng()>ne1.lng())){return false}else{return true}}var parisEnviesFinder=new Class({Implements:[Events,Options],options:{url:"/search/light",emptyQueryUrl:"/lieux/get_popular_light",mapperOptions:{},tabsElement:$("finder_tabs"),overlayOpacity:0.8,searchPage:15},initialize:function(C,B){this.setOptions(B);this.query="";this.mapElement=$(C);this.zoomNext=false;this.zoneFind=true;this.mapper=new parisEnviesMapper(C,this.options.mapperOptions);this.url=this.mapper.options.url;this.current_query="";this.current_quartier="";this.current_metro="";this.current_fullquery="";GEvent.removeListener(this.mapper.cluster.moveEndListener);GEvent.removeListener(this.mapper.cluster.zoomEndListener);this.moveListener=GEvent.addListener(this.mapper.map,"moveend",this.checkReload.bind(this));var D=$$("#finder_tabs .selectors li");var A=document.getElements("#finder_tabs .tab_content");A.each(function(F){F.setStyle("display","block");F.addClass("loaded")});accordion=new Accordion(D,A,{duration:400,opacity:false,onActive:function(G,F){G.addClass("active")},onBackground:function(G,F){G.removeClass("active")}});try{this.mapElement.getElement("span.gmnoprint").set("styles",{"z-index":45,"margin-left":"45px"})}catch(E){}this.createOverlays();this.mapper.addEvent("onMarkersReceived",this.updateOverlays.bind(this))},checkReload:function(){if((!boundsIncluded(this.mapper.currentBounds,this.mapper.map.getBounds()))|(this.mapper.map.getZoom()!=this.mapper.currentZoom)){this.reloadData()}},changeQuery:function(A){this.current_query=A;this.generateQuery();this.reloadData()},reloadData:function(){range={};if((this.mapper.markers.length>0)){this.mapper.cluster.refresh();bounds=this.mapper.cluster._activeAreaBounds;sw=bounds.getSouthWest();ne=bounds.getNorthEast();range={lat:[sw.lat(),ne.lat()],lng:[sw.lng(),ne.lng()]}}else{range=this.mapper.getLatLngRange()}if(this.zoneFind){myHash=new Hash({latrange:range.lat[0]+","+range.lat[1],lngrange:range.lng[0]+","+range.lng[1]})}else{myHash=new Hash({})}if(Browser.Engine.trident4){myHash.limit=100}if((this.current_fullquery!="")&&(this.current_fullquery!="undefined")){url=this.options.url;myHash.q=this.current_fullquery}else{url=this.options.emptyQueryUrl}new_url=url+"?"+myHash.toQueryString();GEvent.removeListener(this.moveListener);this.titleElement.set("html","Chargement...");this.mapper.changeDataSet(new_url);this.mapper.updateCurrent()},generateQuery:function(){query_prepend="";if($chk(this.current_metro)&&(this.current_metro!="")){query_prepend+='metro:"'+this.current_metro+'" '}this.queryBuilder={};$$("#tab_quartiers input").each(function(A){if(A.checked){this.queryBuilder.quartier=A.get("value")}},this);this.queryBuilder.ambiances=[];$$("#tab_ambiances input").each(function(A){if(A.checked){this.queryBuilder.ambiances.push(A.get("name"))}},this);this.queryBuilder.services=[];$$("#tab_services input").each(function(A){if(A.checked){this.queryBuilder.services.push(A.get("name"))}},this);if(this.queryBuilder.quartier!=""){query_prepend+='quartier:"'+this.queryBuilder.quartier+'" '}if(this.queryBuilder.ambiances.length>0){this.queryBuilder.ambiances.forEach(function(A){query_prepend+='ambiances:"'+A+'" '})}if(this.queryBuilder.services.length>0){this.queryBuilder.services.forEach(function(A){query_prepend+='services:"'+A+'" '})}this.current_fullquery=query_prepend+this.current_query},createOverlays:function(){this.titleElement=new Element("p",{"class":"finderoverlay",id:"maptitle",html:"Chargement...",opacity:this.options.overlayOpacity}).inject(this.mapElement,"after");this.linkElement=new Element("a",{"class":"finderoverlay",id:"searchlink",html:"Voir tous les résultats...",href:"#",styles:{display:"none"}}).injectInside(this.mapElement)},updateOverlays:function(){range=this.mapper.getLatLngRange();myHash=new Hash({latrange:range.lat[0]+","+range.lat[1],lngrange:range.lng[0]+","+range.lng[1]});if(this.current_fullquery!=""){if(this.mapper.totalAddresses>0){this.linkElement.setStyle("display","block");url=this.options.displayUrl;myHash.q=this.current_fullquery;new_url=url+"?"+myHash.toQueryString();this.linkElement.set({href:new_url,html:"Voir les "+this.mapper.totalAddresses+" résultats..."});if(this.mapper.totalAddresses>this.options.searchPage){this.titleElement.set("html","Les "+this.mapper.addresses.length+" premiers résultats de votre recherche")}else{this.titleElement.set("html","Les "+this.mapper.addresses.length+" résultats de votre recherche")}}else{this.linkElement.setStyle("display","none");this.titleElement.set("html","Pas de résultat, essayez de dézoomer ou de changer les critères.")}}else{this.linkElement.setStyle("display","none");this.titleElement.set("html","Les meilleurs lieux de cette zone")}this.moveListener=GEvent.addListener(this.mapper.map,"moveend",this.checkReload.bind(this));this.mapper.options.autoZoom=false;this.zoneFind=true}});var myMapper;window.addEvent("domready",function(){if(typeof (map_url)=="undefined"){map_url="/lieux/get_popular_light"}if(GBrowserIsCompatible()){myMapper=new parisEnviesFinder("mainmap",{mapperOptions:{infoPane:true,zoomLevel:siteZoom,defaultLocationCoord:[siteLat,siteLng],url:map_url,asynchronousMarkers:true,clusters:true},url:"/search/light",displayUrl:"/search"});$("finder_form").addEvent("submit",function(A){new Event(A).stop();myMapper.current_metro=$("form_metro").get("value");myValue="";if($("form_q").get("value")!="Entrez votre recherche ici..."){myValue=$("form_q").get("value")}myMapper.changeQuery(myValue)});$("form_q").addEvent("click",function(A){if($("form_q").get("value")=="Entrez votre recherche ici..."){$("form_q").set("value","")}})}});
