var mapper=new Class({ Implements:[Events,Options], options:{zoomLevel:12,mapControls:new GLargeMapControl(),addMapTypeControls:false,customIcon:new GIcon(G_DEFAULT_ICON),centerOnDefaultLocation:true,defaultLocationCoord:false,defaultLocationText:"Paris, France",tooltipClass:"map-tips",tooltipOpacity:0.8,clickableAfterExpand:false,markerPrefix:"/static/images/",markers:{bar:"map1-drink",restaurant:"map1-eat","bar-restaurant":"map1-eatdrink",select:"map1-select"},fixFloat:false}, initialize:function(B,A){ this.element=$(B); this.addresses=[]; this.setOptions(A); this.geocoder=new GClientGeocoder(); this.map=new GMap2(this.element); this.map.addControl(this.options.mapControls); this.markerOptions={icon:this.options.customIcon}; if(this.options.centerOnDefaultLocation){ if(!this.options.defaultLocationCoord){ this.geocoder.getLatLng(this.options.defaultLocationText,function(C){ if(!C){ //empty? } else { this.map.setCenter(C,this.options.zoomLevel) } }.bind(this)) } else { this.map.setCenter(new GLatLng(this.options.defaultLocationCoord[0],this.options.defaultLocationCoord[1]),this.options.zoomLevel) } } this.fireEvent("onInitialized") }, addAddress:function(B){var A=this.addMarker(new GLatLng(B.lat,B.lng),B);A.markerType=B.type;if(window.ie){markerSuffix=".gif"}else{markerSuffix=".png"}if(B.type){A.defaultImage=this.options.markerPrefix+this.options.markers[B.type]+markerSuffix;A.selectImage=this.options.markerPrefix+this.options.markers.select+markerSuffix;A.setImage(A.defaultImage);A.select=function(C){C.setImage(C.selectImage);C.showTip()}.pass(A,this);A.unselect=function(C){C.setImage(C.defaultImage);C.hideTip()}.pass(A,this)}this.addresses.push($H(B).extend({marker:A})) }, clearAddresses:function(){this.addresses.each(function(A){this.map.removeOverlay(A.marker)}.bind(this));this.addresses=[]}, addMarker:function(A,C){var B=new GMarker(A,this.markerOptions);this.map.addOverlay(B);this.initToolTip(B,C);return B}, initToolTip:function(A,B){ A.toolTip=new Element("div",{"class":this.options.tooltipClass,styles:{position:"absolute",bottom:"0",left:"0",visibility:"hidden",opacity:0}},document).inject(document.body); A.toolTipWrapper=new Element("div").inject(A.toolTip); A.toolTipEffect=new Fx.Styles(A.toolTip); lastmarker=A; A.linkUrl=B.link; A.showTip=function(C){ tooltipSize=C.toolTip.getSize().size; markerDomObject=$(C.am); markerSize=markerDomObject.getSize().size; markerPosition=markerDomObject.getPosition(); addX=0; addY=0; if(Browser.Engine.trident4){ addY+=document.getScroll().y } if(this.options.fixFloat&&window.ie){ addX=-40 } C.toolTip.setStyles({ bottom:(document.window.getHeight()-markerPosition.y-markerSize.y+addY)+"px", left:(markerPosition.x-tooltipSize.x+markerSize.x+addX)+"px" }); C.toolTip.setHTML(this.formatTip(B)); moreinfo=C.toolTip.getElement("p.moreinfo"); C.slider=new Fx.Slide(moreinfo,{duration:500}); C.slider.hide();C.btnslider=new Fx.Slide(C.toolTip.getElement("p.seemore"),{duration:500}); C.toolTip.getElement("a.seemore").addEvent("click",function(D){ D.btnslider.slideOut("vertical"); D.slider.slideIn("vertical"); if(this.options.clickableAfterExpand){ targetElement=D.toolTip.getElement("p.moreinfo"); targetElement.setStyle("cursor","pointer"); targetElement.addEvent("click",function(E){ window.location.href=E }.pass(D.linkUrl,this)) } }.pass(C,this)); C.toolTipEffect.clearChain(); C.toolTip.setStyles({visibility:"visible"}); C.toolTipEffect.start({opacity:this.options.tooltipOpacity})}.bind(this,A); A.hideTip=function(C){ C.toolTipEffect.start({opacity:0}).chain(function(D){ D.toolTip.setStyle("visibility","hidden") }.pass(C,this)) }.pass(A,this); $(A.Zk[0]).addEvent("mouseenter",A.showTip); A.toolTip.addEvent("mouseleave",A.hideTip); }, formatTip:function(A){ return'
'+A.address+'
';
if(A.thumbnail){
tipHTML+=''
}
tipHTML+=A.formated_address+'
'+A.number_reviews+" "+_("Reviews.")+'