var maxGMarker__first=true;var maxGMarker__uniqueId=0;var maxGMarker__freeImages=[]
var maxGMarker__useIE6filters=(navigator.appName=="Microsoft Internet Explorer"&&navigator.appVersion.match(/MSIE (\d+.\d+)/)[1]<7.0);function maxGMarker(point,options)
{this.point=point;this.options=options?options:{};this.id=null;this.gmap=null;this.icon=this.options.icon?this.options.icon:G_DEFAULT_ICON;this.visible=true;this.tooltip=true;this.showTooltip=true;this.removed=true;this.extentChangeEnabled=true;if(maxGMarker__first){GEvent.addDomListener(window,"unload",maxGMarker__unload);maxGMarker__first=false;}
if(this.point==null){alert("Internal error in maxGMarker constructor: no point is given!");}
if(this.options.draggable){this.dragging=false;this.dragEnabled=false;}
var myself=this;this._clickHandler=function(event){myself._mouseClick(event);return false};this._dblclickHandler=function(event){GEvent.trigger(myself,"dblclick");return false};this._mouseoverHandler=function(event){GEvent.trigger(myself,"mouseover");myself._mouseOver(event);return false};this._mouseoutHandler=function(event){GEvent.trigger(myself,"mouseout");myself._mouseOut(event);return false};if(this.options.draggable){this._downHandler=function(event){myself._mouseDown(event);return false;};this._mapmoveHandler=function(){myself._mapMove();return false;};this._mapmoveHandle=null;}}
function maxGMarker__unload()
{for(var i=maxGMarker__freeImages.length-1;i>=0;i--){var id=maxGMarker__freeImages[i];var img=document.getElementById("maxGMarker"+id);if(img!=null){img.onclick=null;img.ondblclick=null;img.onmousedown=null;img.onmousemove=null;img.onmouseup=null;}}
maxGMarker__freeImages=[];}
if(typeof(GOverlay)=='undefined'){var maxGMarker__stub=function(){alert("maxGMarker STUB called, GOverlay is not available when maxgmarker.js loads")};maxGMarker.prototype.initialize=maxGMarker__stub;maxGMarker.prototype.remove=maxGMarker__stub;maxGMarker.prototype.copy=maxGMarker__stub;maxGMarker.prototype.redraw=maxGMarker__stub;}
else{maxGMarker.prototype=new GOverlay();}
maxGMarker.prototype.initialize=function(gmap)
{var created=false;var img=null;var reused=false;if(maxGMarker__freeImages.length>0){var reusedId=maxGMarker__freeImages.shift();img=document.getElementById('maxGMarker'+reusedId);if(img!=null){this.id=reusedId;reused=true;}}
if(!reused){this.id=maxGMarker__uniqueId++;img=document.createElement(maxGMarker__useIE6filters?'div':'img');img.id='maxGMarker'+this.id;img.style.position='absolute';img.style.cursor='pointer';if(!maxGMarker__useIE6filters){img.onerror=function(){this.style.border='1px dashed red';};}
if(this.options.draggable&&maxDomEffect!=null&&maxGMarker__useIE6filters){img.innerHTML='<div></div>';}
created=true;}
img.style.zIndex=this.options.zIndex?this.options.zIndex:'';if(img.src!=this.icon.image){this._applyIconImg(img);}
img.onclick=this._clickHandler;img.ondblclick=this._dblclickHandler;img.onmouseover=this._mouseoverHandler;img.onmouseout=this._mouseoutHandler;if(this.dragEnabled){img.onmousedown=this._downHandler;}
var markerPane=gmap.getPane(G_MAP_MARKER_PANE);if(created){markerPane.appendChild(img);}
if(reused){if(img.parentNode!=markerPane){img.parentNode.removeChild(img);markerPane.appendChild(img);}}
this.gmap=gmap;this.visible=true;this.removed=false;}
maxGMarker.prototype.copy=function()
{return this;}
maxGMarker.prototype.redraw=function(force)
{if(force){var img=this._getImageElement();if(this.removed||img==null||img.parentNode==null){return;}
var pixel=this.gmap.fromLatLngToDivPixel(this.point);var height=img.height;var anchorX=this.icon.iconAnchor!=null?this.icon.iconAnchor.x:Math.round(img.width/2);var anchorY=this.icon.iconAnchor!=null?this.icon.iconAnchor.y:Math.round(img.width/2);img.style.left=(pixel.x-anchorX)+"px";img.style.top=(pixel.y-anchorY)+"px";if(img.style.display!=''){img.style.display="";}}}
maxGMarker.prototype.remove=function()
{var img=this._getImageElement();if(img!=null){img.onclick=null;img.ondblclick=null;img.onmousedown=null;img.onmousemove=null;img.onmouseup=null;img.style.display='none';maxGMarker__freeImages.push(this.id);}
this.id=null;this.gmap=null;this.visible=false;this.removed=true;}
maxGMarker.prototype.disableDragging=function()
{this.dragEnabled=false;this.dragging=false;var img=this._getImageElement();if(img!=null){img.onmousedown=null;}}
maxGMarker.prototype.draggable=function()
{return this.options.draggable;}
maxGMarker.prototype.draggingEnabled=function()
{return this.dragEnabled;}
maxGMarker.prototype.enableDragging=function()
{this.dragEnabled=true;if(!this.dragging){var img=this._getImageElement();if(img!=null){img.onmousedown=this._downHandler;}}}
maxGMarker.prototype.getIcon=function()
{return this.icon;}
maxGMarker.prototype.getPoint=function()
{return this.point;}
maxGMarker.prototype.setPoint=function(point)
{if(point==null){alert("Internal error in maxGMarker.setPoint: no point is given!");return;}
this.point=point;this.redraw(true);}
maxGMarker.prototype.getOptions=function()
{return this.options;}
maxGMarker.prototype.getPosition=function()
{var img=this._getImageElement();return{left:img.style.left,top:img.style.top};}
maxGMarker.prototype.isRemoved=function()
{if(this.gmap==null){return true;}
var img=this._getImageElement();return(img==null||img.parentNode==null);}
maxGMarker.prototype.setTitle=function(title)
{this.options.title=title;if(this.hasOpenTooltip){var tooltip=document.getElementById('maxGMarker_tooltip');if(tooltip!=null){tooltip.innerHTML=this._escapeHtml(title);}}}
maxGMarker.prototype.setIcon=function(icon)
{this.icon=icon;var img=this._getImageElement();if(img==null){return;}
if(img.src==this.icon.image){return;}
if(this._applyIconImg(img)){this.redraw(true);}}
maxGMarker.prototype._escapeHtml=function(html)
{if(html==null||!isNaN(html)){return html;}
else{return html.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");}}
maxGMarker.prototype._getImageElement=function()
{return document.getElementById('maxGMarker'+this.id);}
maxGMarker.prototype._hideTooltip=function()
{var tooltip=document.getElementById('maxGMarker_tooltip');if(tooltip==null){return;}
tooltip.innerHTML="";tooltip.style.display='none';delete this.hasOpenTooltip;}
maxGMarker.prototype._applyIconImg=function(img)
{if(img.firstChild!=null){img=img.firstChild;}
img.style.zIndex=800;if(this.icon.iconSize==null){img.removeAttribute("width");img.removeAttribute("height");img.style.width='';img.style.height='';}
else{if(img.tagName=="IMG"){img.width=this.icon.iconSize.width;img.height=this.icon.iconSize.height;}
else{img.style.width=this.icon.iconSize.width+"px";img.style.height=this.icon.iconSize.height+"px";}}
if(maxGMarker__useIE6filters){var newFilter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+this.icon.image+"', sizingMethod='scale')";if(img.style.filter!=newFilter){img.style.filter=newFilter;}}
else{img.style.border='0';if(img.src!=this.icon.image){img.src=this.icon.image;}}
return true;}
maxGMarker.prototype._mouseClick=function(event)
{if(!this.dragging){GEvent.trigger(this,"click");}
else{this.dragging=false;}}
maxGMarker.prototype._mouseDown=function(event)
{var event=maxDomEvent.getEvent(event);var pointer=maxDomEvent.getPointerPosition(event);var leftClick=maxDomEvent.isLeftClick(event);var anchorX=this.icon.iconAnchor!=null?this.icon.iconAnchor.x:Math.round(img.offsetWidth/2);var anchorY=this.icon.iconAnchor!=null?this.icon.iconAnchor.y:Math.round(img.offsetHeight/2);var img=this._getImageElement();var elementMapPosition=this.gmap.fromLatLngToDivPixel(this.point);this.dragOffsetX=pointer.x-elementMapPosition.x+anchorX;this.dragOffsetY=pointer.y-elementMapPosition.y+anchorY;this.dragAnchorX=anchorX;this.dragAnchorY=anchorY;var container=this.gmap.getContainer();var containerPosition=maxDom.getElementPosition(container,true);this.dragBounds={minX:containerPosition.x,minY:containerPosition.y,maxX:containerPosition.x+container.offsetWidth,maxY:containerPosition.y+container.offsetHeight};var myself=this;this._moveHandler=maxDomEvent.addListener(document,"mousemove",function(event){myself._mouseMove(event);});this._upHandler=maxDomEvent.addListener(document,"mouseup",function(event){myself._mouseUp(event);});this._mapmoveHandle=GEvent.addListener(this.gmap,"move",this._mapmoveHandler);window.focus();img.title="";maxDomEvent.stop(event);}
maxGMarker.prototype._mapMove=function()
{if(this.dragPointer==null){console.log("map move: NO CURSOR!!");return;}
var containerPosition=maxDom.getElementPosition(this.gmap.getContainer(),true);var dragPosX=this.dragPointer.x-containerPosition.x;var dragPosY=this.dragPointer.y-containerPosition.y;this.point=this.gmap.fromDivPixelToLatLng(new GPoint(dragPosX,dragPosY));img.style.left=dragPosX+'px';img.style.top=dragPosY+'px';if(point==null){console.log("map move: "+(new Date()).toString());}
else{console.log("map move: "+point.lat()+" "+point.lng()+" "+(new Date()).toString());}}
maxGMarker.prototype._mouseMove=function(event)
{this._hideTooltip();var event=maxDomEvent.getEvent(event);var pointer=maxDomEvent.getPointerPosition(event);var img=this._getImageElement();var bounds=this.dragBounds;var inContainer=(bounds.minX<pointer.x&&pointer.y<bounds.maxX&&bounds.minY<pointer.y&&pointer.y<bounds.maxY);if(!inContainer){maxDomEvent.stop(event);return;}
var dragPosX=pointer.x-this.dragOffsetX;var dragPosY=pointer.y-this.dragOffsetY;img.style.left=dragPosX+'px';img.style.top=dragPosY+'px';if(!this.dragging){this.dragging=true;img.className='draggedMarker';img.style.zIndex=99999;if(maxDomEffect!=null){maxDomEffect.setOpacity(img,0.70);}
GEvent.trigger(this,"dragstart");}
this.point=this.gmap.fromDivPixelToLatLng(new GPoint(dragPosX+this.dragAnchorX,dragPosY+this.dragAnchorY));GEvent.trigger(this,"drag");maxDomEvent.stop(event);}
maxGMarker.prototype._dragMoveBorder=function(img,pointer)
{var bounds=this.dragBounds;var leftEdge=pointer.x-bounds.minX;var rightEdge=bounds.maxX-pointer.x;var topEdge=pointer.y-bounds.minY;var bottomEdge=bounds.maxY-pointer.y;var minDist=15;if(leftEdge>minDist&&rightEdge>minDist&&topEdge>minDist&&bottomEdge>minDist){return;}
var moveX=0;var moveY=0;if(leftEdge<minDist){moveX=(leftEdge-minDist);}
if(topEdge<minDist){moveY=(topEdge-minDist);}
if(rightEdge<minDist){moveX=(minDist-rightEdge);}
if(bottomEdge<minDist){moveY=(minDist-bottomEdge);}
console.log("at edge:\tleft="+leftEdge+"\ttop="+topEdge+"\tright="+rightEdge+"\tbottom="+bottomEdge+"\tmoveX="+moveX+"\tmoveY="+moveY);var centerPixel=this.gmap.fromLatLngToDivPixel(this.gmap.getCenter());centerPixel.x+=moveX*10;centerPixel.y+=moveY*10;var newCenter=this.gmap.fromDivPixelToLatLng(centerPixel);this.gmap.panTo(newCenter);this.dragPointer=pointer;}
maxGMarker.prototype._mouseUp=function(event)
{maxDomEvent.removeListener(document,"mousemove",this._moveHandler);maxDomEvent.removeListener(document,"mouseup",this._upHandler);this._moveHandler=null;this._upHandler=null;if(this._mapmoveHandle!=null){GEvent.removeListener(this._mapmoveHandle);this._mapmoveHandle=null;}
if(this.dragging){var event=maxDomEvent.getEvent(event);var pointer=maxDomEvent.getPointerPosition(event);var dragEndX=pointer.x-this.dragOffsetX;var dragEndY=pointer.y-this.dragOffsetY;var img=this._getImageElement();img.style.left=dragEndX+'px';img.style.top=dragEndY+'px';img.className='';img.style.zIndex=this.options.zIndex?this.options.zIndex:'';if(maxDomEffect!=null){maxDomEffect.setOpacity(img,1);}
this.point=this.gmap.fromDivPixelToLatLng(new GPoint(dragEndX+this.dragAnchorX,dragEndY+this.dragAnchorY));delete this.dragAnchorX;delete this.dragAnchorY;delete this.dragOffsetX;delete this.dragOffsetY;delete this.dragBounds;delete this.dragPointer;delete this._upHandler;delete this._moveHandler;GEvent.trigger(this,"dragend");}
maxDomEvent.stop(event);}
maxGMarker.prototype._mouseOver=function(event)
{if(this.options.title==null||this.showTooltip==false||this.options.title==""||this.dragging||this.gmap==null){return;}
var tooltip=document.getElementById('maxGMarker_tooltip');if(tooltip==null){tooltip=document.createElement('div');tooltip.id='maxGMarker_tooltip';this.gmap.getContainer().appendChild(tooltip);}
tooltip.innerHTML=this._escapeHtml(this.options.title);var img=this._getImageElement();var containerPosition=maxDom.getElementPosition(this.gmap.getContainer(),true);var elementPosition=maxDom.getElementPosition(img,true);var x=elementPosition.x-containerPosition.x+(img.offsetWidth+8);var y=elementPosition.y-containerPosition.y+(img.offsetHeight/2)-(tooltip.offsetHeight/2);tooltip.style.position='absolute';tooltip.style.top=y+'px';tooltip.style.left=x+'px';tooltip.style.display='block';this.hasOpenTooltip=true;}
maxGMarker.prototype._mouseOut=function(event)
{if(this.showTooltip==true){this._hideTooltip();}};function ExtInfoWindow(marker,windowId,html,opt_opts){this.html_=html;this.marker_=marker;this.infoWindowId_=windowId;this.options_=opt_opts==null?{}:opt_opts;this.ajaxUrl_=this.options_.ajaxUrl==null?null:this.options_.ajaxUrl;this.callback_=this.options_.ajaxCallback==null?null:this.options_.ajaxCallback;this.borderSize_=this.options_.beakOffset==null?0:this.options_.beakOffset;this.paddingX_=this.options_.paddingX==null?0+this.borderSize_:this.options_.paddingX+this.borderSize_;this.paddingY_=this.options_.paddingY==null?0+this.borderSize_:this.options_.paddingY+this.borderSize_;this.map_=null;this.container_=document.createElement('div');this.container_.style.position='relative';this.container_.style.display='none';this.contentDiv_=document.createElement('div');this.contentDiv_.id=this.infoWindowId_+'_contents';this.contentDiv_.innerHTML=this.html_;this.contentDiv_.style.display='block';this.contentDiv_.style.visibility='hidden';this.wrapperDiv_=document.createElement('div');};ExtInfoWindow.prototype=new GOverlay();ExtInfoWindow.prototype.initialize=function(map){this.map_=map;this.defaultStyles={containerWidth:this.map_.getSize().width/2,borderSize:1};this.wrapperParts={tl:{t:0,l:0,w:0,h:0,domElement:null},t:{t:0,l:0,w:0,h:0,domElement:null},tr:{t:0,l:0,w:0,h:0,domElement:null},l:{t:0,l:0,w:0,h:0,domElement:null},r:{t:0,l:0,w:0,h:0,domElement:null},bl:{t:0,l:0,w:0,h:0,domElement:null},b:{t:0,l:0,w:0,h:0,domElement:null},br:{t:0,l:0,w:0,h:0,domElement:null},beak:{t:0,l:0,w:0,h:0,domElement:null},close:{t:0,l:0,w:0,h:0,domElement:null}};for(var i in this.wrapperParts){var tempElement=document.createElement('div');tempElement.id=this.infoWindowId_+'_'+i;tempElement.style.visibility='hidden';document.body.appendChild(tempElement);tempElement=document.getElementById(this.infoWindowId_+'_'+i);var tempWrapperPart=eval('this.wrapperParts.'+i);tempWrapperPart.w=parseInt(this.getStyle_(tempElement,'width'));tempWrapperPart.h=parseInt(this.getStyle_(tempElement,'height'));document.body.removeChild(tempElement);}
for(var i in this.wrapperParts){if(i=='close'){this.wrapperDiv_.appendChild(this.contentDiv_);}
var wrapperPartsDiv=null;if(this.wrapperParts[i].domElement==null){wrapperPartsDiv=document.createElement('div');this.wrapperDiv_.appendChild(wrapperPartsDiv);}else{wrapperPartsDiv=this.wrapperParts[i].domElement;}
wrapperPartsDiv.id=this.infoWindowId_+'_'+i;wrapperPartsDiv.style.position='absolute';wrapperPartsDiv.style.width=this.wrapperParts[i].w+'px';wrapperPartsDiv.style.height=this.wrapperParts[i].h+'px';wrapperPartsDiv.style.top=this.wrapperParts[i].t+'px';wrapperPartsDiv.style.left=this.wrapperParts[i].l+'px';this.wrapperParts[i].domElement=wrapperPartsDiv;}
this.map_.getPane(G_MAP_FLOAT_PANE).appendChild(this.container_);this.container_.id=this.infoWindowId_;var containerWidth=this.getStyle_(document.getElementById(this.infoWindowId_),'width');this.container_.style.width=(containerWidth==null?this.defaultStyles.containerWidth:containerWidth);this.map_.getContainer().appendChild(this.contentDiv_);this.contentWidth=this.getDimensions_(this.container_).width;this.contentDiv_.style.width=this.contentWidth+'px';this.contentDiv_.style.position='absolute';this.container_.appendChild(this.wrapperDiv_);GEvent.bindDom(this.container_,'mousedown',this,this.onClick_);GEvent.bindDom(this.container_,'dblclick',this,this.onClick_);GEvent.bindDom(this.container_,'DOMMouseScroll',this,this.onClick_);GEvent.trigger(this.map_,'extinfowindowopen');if(this.ajaxUrl_!=null){this.ajaxRequest_(this.ajaxUrl_);}
this.map_.savePosition();};ExtInfoWindow.prototype.onClick_=function(e){if(navigator.userAgent.toLowerCase().indexOf('msie')!=-1&&document.all){window.event.cancelBubble=true;window.event.returnValue=false;}else{e.stopPropagation();}};ExtInfoWindow.prototype.remove=function(){if(this.map_.getExtInfoWindow()!=null){GEvent.trigger(this.map_,'extinfowindowbeforeclose');GEvent.clearInstanceListeners(this.container_);if(this.container_.outerHTML){this.container_.outerHTML='';}
if(this.container_.parentNode){this.container_.parentNode.removeChild(this.container_);}
this.container_=null;GEvent.trigger(this.map_,'extinfowindowclose');this.map_.setExtInfoWindow_(null);if(this.prevPanX!=0||this.prevPanY!=0){this.map_.returnToSavedPosition();}}};ExtInfoWindow.prototype.copy=function(){return new ExtInfoWindow(this.marker_,this.infoWindowId_,this.html_,this.options_);};ExtInfoWindow.prototype.redraw=function(force){if(!force||this.container_==null)return;var contentHeight=this.contentDiv_.offsetHeight;this.contentDiv_.style.height=contentHeight+'px';this.contentDiv_.style.left=this.wrapperParts.l.w+'px';this.contentDiv_.style.top=this.wrapperParts.tl.h+'px';this.contentDiv_.style.visibility='visible';this.wrapperParts.tl.t=0;this.wrapperParts.tl.l=0;this.wrapperParts.t.l=this.wrapperParts.tl.w;this.wrapperParts.t.w=(this.wrapperParts.l.w+this.contentWidth+this.wrapperParts.r.w)-this.wrapperParts.tl.w-this.wrapperParts.tr.w;this.wrapperParts.t.h=this.wrapperParts.tl.h;this.wrapperParts.tr.l=this.wrapperParts.t.w+this.wrapperParts.tl.w;this.wrapperParts.l.t=this.wrapperParts.tl.h;this.wrapperParts.l.h=contentHeight;this.wrapperParts.r.l=this.contentWidth+this.wrapperParts.l.w;this.wrapperParts.r.t=this.wrapperParts.tr.h;this.wrapperParts.r.h=contentHeight;this.wrapperParts.bl.t=contentHeight+this.wrapperParts.tl.h;this.wrapperParts.b.l=this.wrapperParts.bl.w;this.wrapperParts.b.t=contentHeight+this.wrapperParts.tl.h;this.wrapperParts.b.w=(this.wrapperParts.l.w+this.contentWidth+this.wrapperParts.r.w)-this.wrapperParts.bl.w-this.wrapperParts.br.w;this.wrapperParts.b.h=this.wrapperParts.bl.h;this.wrapperParts.br.l=this.wrapperParts.b.w+this.wrapperParts.bl.w;this.wrapperParts.br.t=contentHeight+this.wrapperParts.tr.h;this.wrapperParts.close.l=this.wrapperParts.tr.l+this.wrapperParts.tr.w-this.wrapperParts.close.w-this.borderSize_;this.wrapperParts.close.t=this.borderSize_;this.wrapperParts.beak.l=this.borderSize_+(this.contentWidth/2)-(this.wrapperParts.beak.w/2);this.wrapperParts.beak.t=this.wrapperParts.bl.t+this.wrapperParts.bl.h-this.borderSize_;for(var i in this.wrapperParts){if(i=='close'){this.wrapperDiv_.insertBefore(this.contentDiv_,this.wrapperParts[i].domElement);}
var wrapperPartsDiv=null;if(this.wrapperParts[i].domElement==null){wrapperPartsDiv=document.createElement('div');this.wrapperDiv_.appendChild(wrapperPartsDiv);}else{wrapperPartsDiv=this.wrapperParts[i].domElement;}
wrapperPartsDiv.id=this.infoWindowId_+'_'+i;wrapperPartsDiv.style.position='absolute';wrapperPartsDiv.style.width=this.wrapperParts[i].w+'px';wrapperPartsDiv.style.height=this.wrapperParts[i].h+'px';wrapperPartsDiv.style.top=this.wrapperParts[i].t+'px';wrapperPartsDiv.style.left=this.wrapperParts[i].l+'px';this.wrapperParts[i].domElement=wrapperPartsDiv;}
var currentMarker=this.marker_;var thisMap=this.map_;GEvent.addDomListener(this.wrapperParts.close.domElement,'click',function(){thisMap.closeExtInfoWindow();});var pixelLocation=this.map_.fromLatLngToDivPixel(this.marker_.getPoint());this.container_.style.position='absolute';var markerIcon=this.marker_.getIcon();this.container_.style.left=(pixelLocation.x
-(this.contentWidth/2)
-markerIcon.iconAnchor.x
+markerIcon.infoWindowAnchor.x)+'px';this.container_.style.top=(pixelLocation.y
-this.wrapperParts.bl.h
-contentHeight
-this.wrapperParts.tl.h
-this.wrapperParts.beak.h
-markerIcon.iconAnchor.y
+markerIcon.infoWindowAnchor.y
+this.borderSize_)+'px';this.container_.style.display='block';if(this.map_.getExtInfoWindow()!=null){this.repositionMap_();}};ExtInfoWindow.prototype.resize=function(){var tempElement=this.contentDiv_.cloneNode(true);tempElement.id=this.infoWindowId_+'_tempContents';tempElement.style.visibility='hidden';tempElement.style.height='auto';document.body.appendChild(tempElement);tempElement=document.getElementById(this.infoWindowId_+'_tempContents');var contentHeight=tempElement.offsetHeight;document.body.removeChild(tempElement);this.contentDiv_.style.height=contentHeight+'px';var contentWidth=this.contentDiv_.offsetWidth;var pixelLocation=this.map_.fromLatLngToDivPixel(this.marker_.getPoint());var oldWindowHeight=this.wrapperParts.t.domElement.offsetHeight+this.wrapperParts.l.domElement.offsetHeight+this.wrapperParts.b.domElement.offsetHeight;var oldWindowPosTop=this.wrapperParts.t.domElement.offsetTop;this.wrapperParts.l.domElement.style.height=contentHeight+'px';this.wrapperParts.r.domElement.style.height=contentHeight+'px';var newPosTop=this.wrapperParts.b.domElement.offsetTop-contentHeight;this.wrapperParts.l.domElement.style.top=newPosTop+'px';this.wrapperParts.r.domElement.style.top=newPosTop+'px';this.contentDiv_.style.top=newPosTop+'px';windowTHeight=parseInt(this.wrapperParts.t.domElement.style.height);newPosTop-=windowTHeight;this.wrapperParts.close.domElement.style.top=newPosTop+this.borderSize_+'px';this.wrapperParts.tl.domElement.style.top=newPosTop+'px';this.wrapperParts.t.domElement.style.top=newPosTop+'px';this.wrapperParts.tr.domElement.style.top=newPosTop+'px';this.repositionMap_();};ExtInfoWindow.prototype.repositionMap_=function(){var mapNE=this.map_.fromLatLngToDivPixel(this.map_.getBounds().getNorthEast());var mapSW=this.map_.fromLatLngToDivPixel(this.map_.getBounds().getSouthWest());var markerPosition=this.map_.fromLatLngToDivPixel(this.marker_.getPoint());var panX=0;var panY=0;var paddingX=this.paddingX_;var paddingY=this.paddingY_;var infoWindowAnchor=this.marker_.getIcon().infoWindowAnchor;var iconAnchor=this.marker_.getIcon().iconAnchor;var windowT=this.wrapperParts.t.domElement;var windowL=this.wrapperParts.l.domElement;var windowB=this.wrapperParts.b.domElement;var windowR=this.wrapperParts.r.domElement;var windowBeak=this.wrapperParts.beak.domElement;var offsetTop=markerPosition.y-(-infoWindowAnchor.y+iconAnchor.y+this.getDimensions_(windowBeak).height+this.getDimensions_(windowB).height+this.getDimensions_(windowL).height+this.getDimensions_(windowT).height+this.paddingY_);if(offsetTop<mapNE.y){panY=mapNE.y-offsetTop;}else{var offsetBottom=markerPosition.y+this.paddingY_;if(offsetBottom>=mapSW.y){panY=-(offsetBottom-mapSW.y);}}
var offsetRight=Math.round(markerPosition.x+this.getDimensions_(this.container_).width/2+this.getDimensions_(windowR).width+this.paddingX_+infoWindowAnchor.x-iconAnchor.x);if(offsetRight>mapNE.x){panX=-(offsetRight-mapNE.x);}else{var offsetLeft=-(Math.round((this.getDimensions_(this.container_).width/2-this.marker_.getIcon().iconSize.width/2)+this.getDimensions_(windowL).width+this.borderSize_+this.paddingX_)-markerPosition.x-infoWindowAnchor.x+iconAnchor.x);if(offsetLeft<mapSW.x){panX=mapSW.x-offsetLeft;}}
if(panX!=0||panY!=0&&this.map_.getExtInfoWindow()!=null){this.map_.panBy(new GSize(panX,panY));this.prevPanX=panX;this.prevPanY=panY;}};ExtInfoWindow.prototype.ajaxRequest_=function(url){var thisMap=this.map_;var thisCallback=this.callback_;GDownloadUrl(url,function(response,status){var infoWindow=document.getElementById(thisMap.getExtInfoWindow().infoWindowId_+'_contents');if(response==null||status==-1){infoWindow.innerHTML='<span class="error">ERROR: The Ajax request failed to get HTML content from "'+url+'"</span>';}else{infoWindow.innerHTML=response;}
if(thisCallback!=null){thisCallback();}
thisMap.getExtInfoWindow().resize();GEvent.trigger(thisMap,'extinfowindowupdate');});};ExtInfoWindow.prototype.getDimensions_=function(element){var display=this.getStyle_(element,'display');if(display!='none'&&display!=null){return{width:element.offsetWidth,height:element.offsetHeight};}
var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='block';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};};ExtInfoWindow.prototype.getStyle_=function(element,style){var found=false;style=this.camelize_(style);var value=element.style[style];if(!value){if(document.defaultView&&document.defaultView.getComputedStyle){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null;}else if(element.currentStyle){value=element.currentStyle[style];}}
if((value=='auto')&&(style=='width'||style=='height')&&(this.getStyle_(element,'display')!='none')){if(style=='width'){value=element.offsetWidth;}else{value=element.offsetHeight;}}
if(window.opera&&['left','top','right','bottom'].include(style)){if(this.getStyle_(element,'position')=='static')value='auto';}
return(value=='auto')?null:value;};ExtInfoWindow.prototype.camelize_=function(element){var parts=element.split('-'),len=parts.length;if(len==1)return parts[0];var camelized=element.charAt(0)=='-'?parts[0].charAt(0).toUpperCase()+parts[0].substring(1):parts[0];for(var i=1;i<len;i++){camelized+=parts[i].charAt(0).toUpperCase()+parts[i].substring(1);}
return camelized;};GMap.prototype.ExtInfoWindowInstance_=null;GMap.prototype.ClickListener_=null;GMap.prototype.InfoWindowListener_=null;maxGMarker.prototype.openExtInfoWindow=function(map,cssId,html,opt_opts){if(map==null){throw'Error in maxGMarker.openExtInfoWindow: map cannot be null';return false;}
if(cssId==null||cssId==''){throw'Error in maxGMarker.openExtInfoWindow: must specify a cssId';return false;}
map.closeInfoWindow();if(map.getExtInfoWindow()!=null){map.closeExtInfoWindow();}
if(map.getExtInfoWindow()==null){map.setExtInfoWindow_(new ExtInfoWindow(this,cssId,html,opt_opts));if(map.ClickListener_==null){map.ClickListener_=GEvent.addListener(map,'click',function(event){if(!event&&map.getExtInfoWindow()!=null){map.closeExtInfoWindow();}});}
if(map.InfoWindowListener_==null){map.InfoWindowListener_=GEvent.addListener(map,'infowindowopen',function(event){if(map.getExtInfoWindow()!=null){map.closeExtInfoWindow();}});}
map.addOverlay(map.getExtInfoWindow());}};maxGMarker.prototype.closeExtInfoWindow=function(map){map.closeExtInfoWindow();};GMap2.prototype.getExtInfoWindow=function(){return this.ExtInfoWindowInstance_;};GMap2.prototype.setExtInfoWindow_=function(extInfoWindow){this.ExtInfoWindowInstance_=extInfoWindow;}
GMap2.prototype.closeExtInfoWindow=function(){if(this.ExtInfoWindowInstance_!=undefined){this.ExtInfoWindowInstance_.remove();}};