function Tooltip(c,a,d,b){this.marker=c;this.text=a;this.padding_=d;this.dragMode=false;this.divX=0;this.divY=0;this.offsetX=0;this.offsetY=0;this.mapCenter=new GLatLng(0,0);this.div=null;this.map=null;this.width=b}Tooltip.prototype=new GOverlay();Tooltip.prototype.initialize=function(a){this.map=a;this.mapCenter=this.map.getCenter();this.div=document.createElement("div");this.div.innerHTML=this.text;this.div.className="tooltip";this.div.style.position="absolute";this.div.style.visibility="hidden";this.div.style.textAlign="center";if(this.width===undefined||this.width==0){this.width=calculateWidth(extractElementText(this.div.childNodes[0]))}this.div.style.width=this.width+"px";var d=this.map.getPane(G_MAP_MAP_PANE).parentNode.parentNode.parentNode;d.appendChild(this.div);if(this.map.TooltipsCollections==null){this.map.TooltipsCollections=new Array()}this.map.TooltipsCollections[this.map.TooltipsCollections.lenght]=this;var b=this;var c=function(){b.reposition()};GEvent.addListener(this.map,"zoomend",c);GEvent.addListener(this.map,"dragend",c);GEvent.addListener(this.map,"dblclick",c);GEvent.addListener(this.map,"click",c);$(this.div).bgiframe()};Tooltip.prototype.remove=function(){this.div.parentNode.removeChild(this.div)};Tooltip.prototype.copy=function(){return new Tooltip(this.marker,this.text,this.padding_)};Tooltip.prototype.redraw=function(c){if(!c){return}this.mapCenter=this.map.getCenter();var b=this.map.fromLatLngToDivPixel(this.marker.getPoint());var a=this.marker.getIcon().iconAnchor;this.divX=Math.round(b.x-this.div.clientWidth/2);this.divY=b.y-a.y-this.div.clientHeight-this.padding_;this.setPosition(new GSize(this.divX,this.divY))};Tooltip.prototype.reposition=function(){var a=this.map.fromLatLngToDivPixel(this.mapCenter);var b=this.map.fromLatLngToDivPixel(this.map.getCenter());this.offsetX+=a.x-b.x;this.offsetY+=a.y-b.y;this.mapCenter=this.map.getCenter()};Tooltip.prototype.show=function(){this.reposition();var a=new GSize(this.offsetX,this.offsetY);this.setPosition(a);this.div.style.visibility="visible"};Tooltip.prototype.hide=function(){this.div.style.visibility="hidden"};Tooltip.prototype.setPosition=function(e){var b=this.map.fromLatLngToDivPixel(this.marker.getPoint());var a=this.marker.getIcon().iconAnchor;this.divX=Math.round(b.x-this.div.clientWidth/2);this.divY=b.y-a.y-this.div.clientHeight-this.padding_;var c=new GSize(this.divX+e.width,this.divY+e.height);if((this.div.clientWidth)>(this.map.getContainer().clientWidth)){this.divX=Math.round(b.x-this.div.clientWidth/2);this.divY=b.y-a.y-this.div.clientHeight-this.padding_}else{if(c.height<0&&c.width<0){this.divX=b.x+this.padding_;this.divY=b.y+this.padding_}else{if(c.height>=0&&(c.width+this.div.clientWidth)>(this.map.getContainer().clientWidth)){this.divX=Math.round(b.x-this.div.clientWidth);this.divY=b.y-a.y-this.div.clientHeight-this.padding_}else{if(c.height<0&&(c.width+this.div.clientWidth)>=(this.map.getContainer().clientWidth)){this.divX=Math.round(b.x-this.div.clientWidth);this.divY=b.y+this.padding_}else{if(c.height>=0&&c.width<0){this.divX=b.x+this.padding_;this.divY=b.y-a.y-this.div.clientHeight-this.padding_}else{if(c.height<0&&c.width>=0){this.divX=Math.round(b.x-this.div.clientWidth/2);this.divY=b.y+this.padding_}else{this.divX=Math.round(b.x-this.div.clientWidth/2);this.divY=b.y-a.y-this.div.clientHeight-this.padding_}}}}}}c=new GSize(this.divX+e.width,this.divY+e.height);var d=new GControlPosition(G_ANCHOR_TOP_LEFT,c);d.apply(this.div)};function calculateWidth(a){return a.length*7+((a.length<35)?20:-20)}function extractElementText(c){var d="";if(!c||c.nodeType==8){return""}var b=c.tagName?c.tagName.toLowerCase():"";if(b=="input"||b=="textarea"){return""}var d=c.nodeValue||"";for(var a=0;a<c.childNodes.length;a++){d+=extractElementText(c.childNodes[a])}return d}function createMarkerWithInfo(a,e,d,c){var b=new GMarker(a,{title:d,icon:icon});map.addOverlay(b);b.bindInfoWindowHtml(e,{maxWidth:c});return b}function createMarker(a,f,c,e){var b=new GMarker(a,icon);if(!c){c="#"}GEvent.addListener(b,"click",function(){document.location=c});var d=new Tooltip(b,f,4,e);b.tooltip=d;map.addOverlay(b);map.addOverlay(d);GEvent.addListener(b,"mouseover",function(){this.tooltip.show()});GEvent.addListener(b,"mouseout",function(){this.tooltip.hide()});map.addOverlay(b);return b};