function PopupMarker(latlng,opts){this.latlng_=latlng;opts=opts||{};this.text_=opts.text||"";if(opts.text){opts.text=undefined;}this.opts_=opts;this.popupStyle_=opts.style||"normal";this.chart_=opts.chart||{};var agt=navigator.userAgent.toLowerCase();var is_ie_=((agt.indexOf("msie")!==-1)&&(agt.indexOf("opera")===-1));var yPos=0;this.popupImgSrc_="images/1280.png";this.popupTbl={};this.popupTbl.leftTop={"left":0,"top":yPos,"width":19,"height":7};this.popupTbl.leftTopFill={"left":16,"top":3,"width":4,"height":4};this.popupTbl.rightTop={"left":19,"top":yPos,"width":10,"height":7};this.popupTbl.rightTopImg={"left":-125,"top":0,"width":10,"height":7};this.popupTbl.centerTopFill={"left":19,"top":yPos,"width":0,"height":7};yPos+=this.popupTbl.leftTop.height;this.popupTbl.leftBody={"left":11,"top":yPos,"width":8,"height":0};this.popupTbl.centerBodyFill={"left":19,"top":yPos,"width":40,"height":15};this.popupTbl.rightBody={"left":19,"top":yPos,"width":9,"height":0};this.popupTbl.leftBottom={"left":0,"top":yPos,"width":20,"height":21};this.popupTbl.leftBottomImg={"left":0,"top":-13,"width":20,"height":21};this.popupTbl.leftBottomFill={"left":16,"top":0,"width":4,"height":6};this.popupTbl.rightBottom={"left":19,"top":yPos,"width":10,"height":7};this.popupTbl.rightBottomImg={"left":-125,"top":-13,"width":10,"height":7};this.popupTbl.centerBottomFill={"left":19,"top":(yPos+(is_ie_?-1:0)),"width":0,"height":(6+(is_ie_?1:0))};GMarker.apply(this,arguments);}PopupMarker.prototype=new GMarker(new GLatLng(0,0));PopupMarker.prototype.initialize=function(map){GMarker.prototype.initialize.apply(this,arguments);this.map_=map;this.container_=document.createElement("div");map.getPane(G_MAP_MARKER_PANE).appendChild(this.container_);this.container_.style.zIndex=GOverlay.getZIndex(this.latlng_.lat());this.container_.style.position="absolute";this.container_.style.visibility="hidden";if(this.popupStyle_==="chart"){this.makeChartPopup_();}else{this.makeNormalPopup_();}var this_=this;GEvent.bindDom(this.container_,"mousedown",this,function(){return GEvent.trigger(this_,"mousedown");});GEvent.bindDom(this.container_,"dragstart",this,function(){return GEvent.trigger(this_,"dragstart");});GEvent.bindDom(this.container_,"mouseup",this,function(){return GEvent.trigger(this_,"mouseup");});GEvent.bindDom(this.container_,"mouseover",this,function(){return GEvent.trigger(this_,"mouseover");});GEvent.bindDom(this.container_,"mouseout",this,function(){return GEvent.trigger(this_,"mouseout");});};PopupMarker.prototype.makeNormalPopup_=function(){this.leftTop_=this.makeImgDiv_(this.popupImgSrc_,this.popupTbl.leftTop);this.leftTop_.appendChild(this.fillDiv_(this.popupTbl.leftTopFill));this.container_.appendChild(this.leftTop_);this.leftBody_=this.fillDiv_(this.popupTbl.leftBody);this.leftBody_.style.borderWidth="0 0 0 1px";this.leftBody_.style.borderStyle="none none none solid";this.leftBody_.style.borderColor="#000000";this.container_.appendChild(this.leftBody_);this.leftBottom_=this.makeImgDiv_(this.popupImgSrc_,this.popupTbl.leftBottomImg);this.leftBottom_.style.left=this.popupTbl.leftBottom.left+"px";this.leftBottom_.style.top=this.popupTbl.leftBottom.top+"px";this.leftBottom_.style.width=this.popupTbl.leftBottom.width+"px";this.leftBottom_.style.height=this.popupTbl.leftBottom.height+"px";this.leftBottom_.appendChild(this.fillDiv_(this.popupTbl.leftBottomFill));this.container_.appendChild(this.leftBottom_);this.bodyContainer_=document.createElement("div");this.bodyContainer_.style.position="absolute";this.bodyContainer_.style.backgroundColor="#FFFFFF";this.bodyContainer_.style.overflow="hidden";this.bodyContainer_.style.left=this.popupTbl.centerBodyFill.left+"px";this.bodyContainer_.style.top=this.popupTbl.centerBodyFill.top+"px";this.bodyContainer_.style.width=this.popupTbl.centerBodyFill.width+"px";this.bodyContainer_.style.height=this.popupTbl.centerBodyFill.height+"px";this.container_.appendChild(this.bodyContainer_);this.rightTop_=this.makeImgDiv_(this.popupImgSrc_,this.popupTbl.rightTopImg);this.rightTop_.style.left=this.popupTbl.rightTop.left+"px";this.rightTop_.style.top=this.popupTbl.rightTop.top+"px";this.rightTop_.style.width=this.popupTbl.rightTop.width+"px";this.rightTop_.style.height=this.popupTbl.rightTop.height+"px";this.container_.appendChild(this.rightTop_);this.rightBottom_=this.makeImgDiv_(this.popupImgSrc_,this.popupTbl.rightBottomImg);this.rightBottom_.style.left=this.popupTbl.rightBottom.left+"px";this.rightBottom_.style.top=this.popupTbl.rightBottom.top+"px";this.rightBottom_.style.width=this.popupTbl.rightBottom.width+"px";this.rightBottom_.style.height=this.popupTbl.rightBottom.height+"px";this.container_.appendChild(this.rightBottom_);this.rightBody_=this.fillDiv_(this.popupTbl.rightBody);this.rightBody_.style.borderWidth="0 1px 0 0";this.rightBody_.style.borderStyle="none solid none none";this.rightBody_.style.borderColor="#000000";this.container_.appendChild(this.rightBody_);this.centerBottom_=this.fillDiv_(this.popupTbl.centerBottomFill);this.centerBottom_.style.borderWidth="0 0 1px 0";this.centerBottom_.style.borderStyle="none none solid none";this.centerBottom_.style.borderColor="#000000";this.container_.appendChild(this.centerBottom_);this.centerTop_=this.fillDiv_(this.popupTbl.centerTopFill);this.centerTop_.style.borderColor="#000000";this.centerTop_.style.borderWidth="1px 0 0 0";this.centerTop_.style.borderStyle="solid none none none";this.container_.appendChild(this.centerTop_);};PopupMarker.prototype.makeChartPopup_=function(){this.chartImg_=this.makeImgDiv_("images/s.gif",{"left":0,"top":0,"width":0,"height":0});this.chartImg_.firstChild.style.MozUserSelect="none";this.chartImg_.firstChild.style.KhtmlUserSelect="none";this.chartImg_.firstChild.style.WebkitUserSelect="none";this.chartImg_.firstChild.style.userSelect="none";this.container_.appendChild(this.chartImg_);};PopupMarker.prototype.redraw=function(force){GMarker.prototype.redraw.apply(this,arguments);if(force){this.showPopup();this.latlng_=this.getLatLng();this.container_.style.zIndex=GOverlay.getZIndex(this.latlng_.lat());}};PopupMarker.prototype.copy=function(){this.opts_.text=this.text_;return new PopupMarker(this.latlng_,this.opts_);};PopupMarker.prototype.hide=function(){GMarker.prototype.hide.apply(this,arguments);this.container_.style.visibility="hidden";};PopupMarker.prototype.show=function(){GMarker.prototype.show.apply(this,arguments);};PopupMarker.prototype.showPopup=function(){this.show();if(this.popupStyle_==="chart"){this.redrawChartImg_(this.text_);}else{this.redrawNormalPopup_(this.text_);}var info=this.map_.getInfoWindow();if(!info.isHidden()||this.isNull(this.text_)){return;}this.container_.style.visibility="visible";};PopupMarker.prototype.hidePopup=function(){this.container_.style.visibility="hidden";};PopupMarker.prototype.remove=function(){GEvent.clearInstanceListeners(this.container_);while(this.container_.firstChild){this.container_.removeChild(this.container_.firstChild);}this.container_.parentNode.removeChild(this.container_);GMarker.prototype.remove.apply(this,arguments);delete arguments.callee;};PopupMarker.prototype.setText=function(text){this.text_=text;};PopupMarker.prototype.redrawNormalPopup_=function(text){if(this.beforeNormalPopupText_!==text){while(this.bodyContainer_.firstChild){this.bodyContainer_.removeChild(this.bodyContainer_.firstChild);}this.bodyContainer_.innerHTML=text;if(this.isIE_()===false&&this.bodyContainer_.hasChildNodes){if(this.bodyContainer_.firstChild.nodeType===1){this.bodyContainer_.firstChild.style.margin=0;}}var offsetBorder=this.isIE_()?2:0;var cSize=this.getHtmlSize_(text);var rightX=this.popupTbl.leftTop.width+cSize.width;this.leftBottom_.style.top=(cSize.height+this.popupTbl.leftBody.top)+"px";this.leftBody_.style.height=cSize.height+"px";this.bodyContainer_.style.width=cSize.width+"px";this.bodyContainer_.style.height=cSize.height+"px";this.bodyContainer_.style.top=this.popupTbl.leftBody.top;this.rightTop_.style.left=rightX+"px";this.rightBottom_.style.left=this.rightTop_.style.left;this.rightBottom_.style.top=this.leftBottom_.style.top;this.rightBody_.style.left=rightX+"px";this.rightBody_.style.height=this.leftBody_.style.height;this.centerBottom_.style.top=this.leftBottom_.style.top;this.centerBottom_.style.width=cSize.width+"px";this.centerTop_.style.width=cSize.width+"px";this.size_={"width":(rightX+this.popupTbl.rightTop.width),"height":(cSize.height+this.popupTbl.leftTop.height+this.popupTbl.leftBottom.height)};this.container_.style.width=this.size_.width+"px";this.container_.style.height=this.size_.height+"px";}var pxPos=this.map_.fromLatLngToDivPixel(this.latlng_);this.container_.style.left=pxPos.x+"px";this.container_.style.top=(pxPos.y-this.size_.height)+"px";this.beforeNormalPopupText_=text;};PopupMarker.prototype.setChartStyle=function(styleName){this.chart_.chartStyle=styleName;};PopupMarker.prototype.setChartIcon=function(iconName){this.chart_.icon=iconName;};PopupMarker.prototype.setChartTextColor=function(textColor){this.chart_.textColor=textColor;};PopupMarker.prototype.setChartBgColor=function(bgColor){this.chart_.bgColor=bgColor;};PopupMarker.prototype.redrawChartImg_=function(text){this.chart_.shapeStyle="bb";this.chart_.textColor=this.chart_.textColor||"000000";this.chart_.bgColor=this.chart_.bgColor||"FFFFFF";this.chart_.textColor=this.chart_.textColor.replace("#","");this.chart_.bgColor=this.chart_.bgColor.replace("#","");var params="chst="+this.chart_.chartStyle;switch(this.chart_.chartStyle){case"d_bubble_icon_text_small":case"d_bubble_icon_text_big":params=params+"&chld="+this.chart_.icon+"|"+this.chart_.shapeStyle+"|"+text+"|"+this.chart_.bgColor+"|"+this.chart_.textColor;break;case"d_bubble_icon_texts_big":text=text.replace(/[\r]/,"");text=text.replace(/[\n]/,"|");params=params+"&chld="+this.chart_.icon+"|"+this.chart_.shapeStyle+"|"+this.chart_.bgColor+"|"+this.chart_.textColor+"|"+text;break;case"d_bubble_texts_big":text=text.replace(/[\r]/,"");text=text.replace(/[\n]/,"|");params=params+"&chld="+this.chart_.shapeStyle+"|"+this.chart_.bgColor+"|"+this.chart_.textColor+"|"+text;break;}var pxPos=this.map_.fromLatLngToDivPixel(this.latlng_);if(this.beforeParams===params){var imgHeight=parseInt(this.chartImg_.firstChild.offsetHeight,10);this.container_.style.left=pxPos.x+"px";this.container_.style.top=(pxPos.y-imgHeight)+"px";return;}var dummyImg=new Image();dummyImg.src="http://chart.apis.google.com/chart?"+params;var this_=this;var is_ie_=this.isIE_();var limitCnt=100;var redraw=function(){limitCnt--;if(limitCnt===0){return;}if(dummyImg.complete===true){this_.size_={"width":dummyImg.width,"height":dummyImg.height};if(is_ie_===true){this_.chartImg_.firstChild.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='http://chart.apis.google.com/chart?"+params+"')";}else{this_.chartImg_.removeChild(this_.chartImg_.firstChild);this_.chartImg_.appendChild(dummyImg);}this_.chartImg_.firstChild.style.width=this_.size_.width+"px";this_.chartImg_.firstChild.style.height=this_.size_.height+"px";this_.container_.style.left=pxPos.x+"px";this_.container_.style.top=(pxPos.y-this_.size_.height)+"px";this_.container_.style.width=this_.size_.width+"px";this_.container_.style.height=this_.size_.height+"px";}else{var own=arguments.callee;setTimeout(own,10);}};this.beforeParams=params;redraw();};PopupMarker.prototype.isNull=function(value){if(!value&&value!==0||value===undefined||value===""||value===null||typeof value==="undefined"){return true;}return false;};PopupMarker.prototype.getHtmlSize_=function(html){var mapContainer=this.map_.getContainer();var onlineHTMLsize_=function(text){var dummyTextNode=document.createElement("span");dummyTextNode.innerHTML=text;dummyTextNode.style.display="inline";mapContainer.appendChild(dummyTextNode);var size={};size.width=dummyTextNode.offsetWidth;size.height=dummyTextNode.offsetHeight;mapContainer.removeChild(dummyTextNode);return size;};var ret;var lines=html.split(/\n/i);var totalSize=new GSize(1,1);for(var i=0;i<lines.length;i++){ret=onlineHTMLsize_(lines[i]);totalSize.width+=ret.width;totalSize.height+=ret.height;}return totalSize;};PopupMarker.prototype.makeImgDiv_=function(imgSrc,params){var imgDiv=document.createElement("div");imgDiv.style.position="absolute";imgDiv.style.overflow="hidden";if(params.width){imgDiv.style.width=params.width+"px";}if(params.height){imgDiv.style.height=params.height+"px";}var img=null;if(this.isIE_()===false){img=new Image();img.src=imgSrc;}else{img=document.createElement("div");if(params.width){img.style.width=params.width+"px";}if(params.height){img.style.height=params.height+"px";}}img.style.position="relative";img.style.left=params.left+"px";img.style.top=params.top+"px";img.style.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+imgSrc+"')";imgDiv.appendChild(img);return imgDiv;};PopupMarker.prototype.fillDiv_=function(params){var bgDiv=document.createElement("div");bgDiv.style.position="absolute";bgDiv.style.backgroundColor="#FFFFFF";bgDiv.style.fontSize="1px";bgDiv.style.lineHeight="1px";bgDiv.style.overflow="hidden";bgDiv.style.left=params.left+"px";bgDiv.style.top=params.top+"px";bgDiv.style.width=params.width+"px";bgDiv.style.height=params.height+"px";return bgDiv;};PopupMarker.prototype.isIE_=function(){return(navigator.userAgent.toLowerCase().indexOf('msie')!==-1)?true:false;};
