function get$(A){return document.getElementById(A)}function GeometryControls(C){var A=this;A.Options={controlPostitionFloat:G_ANCHOR_TOP_RIGHT,controlPosition:[0,0],buttonWidth:"33",buttonHeight:"33",buttonBorder:"0",buttonCursor:"pointer",infoWindowHtmlURL:"data/geometry_html_template.html",stylesheets:["styles/google.maps.base.css","styles/google.maps.ms_styles.css"],autoSave:true,cssId:"emmc-geom",debug:true};if(C){for(var B in C){A.Options[B]=C[B]}}else{}A.isIE=navigator.appName.indexOf("Explorer")>-1;A.isChrome=navigator.userAgent.toLowerCase().indexOf("chrome")>-1;A.map=null;A.container=null;A.controls={};A.buttons_={};A.stopDigitizingFuncs_={};A.infoWindowHtmlTemplates={};A.bounds=new GLatLngBounds();A.autoSaveListener=null;A.runInitFunctions_()}GeometryControls.prototype=new GControl();GeometryControls.prototype.runInitFunctions_=function(){var A=this;A.getInfoWindowHtml_();A.addGoogleMapsCSS_();if(A.Options.autoSave){A.addAutoSaveAspect()}};GeometryControls.prototype.getDefaultPosition=function(D){var B=this,A=B.Options,C;if(D){C=new GControlPosition(D.controlPositionFloat,new GSize(D.controlPosition[0],D.controlPosition[1]))}else{C=new GControlPosition(A.controlPositionFloat,new GSize(A.controlPosition[0],A.controlPosition[1]))}return C};GeometryControls.prototype.initialize=function(C){var B=this;B.map=C;B.container=document.createElement("div");C.getContainer().appendChild(B.container);for(var A in B.controls){C.addControl(B.controls[A])}C.getInfoWindow();return B.container};GeometryControls.prototype.createButton=function(D){var F=this,E=D,A=F.Options;if(typeof (E.startDigitizing)&&typeof (E.stopDigitizing)!=="function"){F.debug("Digitizing functions for #createButton are required");return }var C={};C.opts=E.button_opts;var B=document.createElement("img");B.style.cursor=C.opts.buttonCursor||A.buttonCursor;B.width=C.opts.buttonWidth||A.buttonWidth;B.height=C.opts.buttonHeight||A.buttonHeight;B.border=C.opts.buttonBorder||A.buttonBorder;B.src=C.opts.img_up_url;B.title=C.opts.tooltip;C.img=B;GEvent.addDomListener(C.img,"click",function(){if(C.img.getAttribute("src")===C.opts.img_up_url){F.toggleButtons(E.controlName);E.startDigitizing()}else{F.toggleButtons(E.controlName);E.stopDigitizing()}});F.buttons_[E.controlName]=C;F.stopDigitizingFuncs_[E.controlName]=E.stopDigitizing;return C};GeometryControls.prototype.toggleButtons=function(A){var D=this;for(var B in D.buttons_){D.buttons_[B].img.src=D.buttons_[B].opts.img_up_url}if(A){D.buttons_[A].img.src=D.buttons_[A].opts.img_down_url}if(A){for(var C in D.stopDigitizingFuncs_){if(C!=A){D.stopDigitizingFuncs_[C](false)}}}};GeometryControls.prototype.addControl=function(B){var A=this;B.zuper=A;A.controls[B.name]=B};GeometryControls.prototype.tooltipFactory=function(B){var F=this,G=F.map;var C=document.createElement("div");C.id="tooltipContainer";C.className="emmc-tooltip";G.getContainer().appendChild(C);var D=function(N,J){var M=G.getCurrentMapType().getProjection().fromLatLngToPixel(G.getBounds().getSouthWest(),G.getZoom());var I=G.getCurrentMapType().getProjection().fromLatLngToPixel(N,G.getZoom());var K=new GPoint(B.anchor[0],B.anchor[1]);var L=-12;var H=new GControlPosition(G_ANCHOR_BOTTOM_LEFT,new GSize(I.x-M.x-K.x+L,-I.y+M.y+K.y));H.apply(J)};var A=function(){if(B.cursor_on!==""&&!F.isChrome){var H=F.map.getDragObject();return function(){H.setDraggableCursor(B.cursor_on)}}else{return function(){}}}();var E={me:F,tooltip_opts:B,tooltipHandler:null,tooltipContainer:C,on:function(H,J){var I=this;C.innerHTML=H;C.style.display="block";this.tooltipHandler=GEvent.addListener(I.me.map,"mousemove",function(K){D(K,C);A();if(typeof (J)==="function"){J(K,C)}})},off:function(){this.me.map.getDragObject().setDraggableCursor(this.tooltip_opts.cursor_off);C.style.display="none";try{GEvent.removeListener(this.tooltipHandler)}catch(H){}}};F.tooltip=function(H){E.tooltip_opts=H;return E};return E};GeometryControls.prototype.showColorPicker=function(opts){var me=this,row,cell;var colors=eval(me.infoWindowHtmlTemplates["colorTable"]);var div=document.createElement("div");document.getElementsByTagName("body")[0].appendChild(div);div.innerHTML=me.infoWindowHtmlTemplates["colorTableHtml"];var colorPicker=get$("emmc-menu-color");var colorPickerTable=get$("emmc-color-table");row=colorPickerTable.insertRow(0);for(var i in colors){if(i%7===0&&i!==0){row=colorPickerTable.insertRow(i/7)}cell=row.insertCell(i%7);cell.innerHTML=''}var target,color,callback;var colorPickerHandler=GEvent.addDomListener(colorPicker,"mouseover",function(){var tempHandler=GEvent.addDomListener(me.map.getInfoWindow().getContentContainers()[0],"mouseover",function(){colorPicker.style.display="none";GEvent.removeListener(tempHandler)});var tempHandler2=GEvent.addListener(me.map,"infowindowclose",function(){colorPicker.style.display="none";GEvent.removeListener(tempHandler2)})});var cells=colorPickerTable.getElementsByTagName("div");for(var j=0;j=1){for(var i=0;i)[^\t]*)'/g,"$1\r").replace(/\t=(.*?)%>/g,"',$1,'").split("\t").join("');").split("%>").join("p.push('").split("\r").join("\\'")+"');}return p.join('');");return I?F(I):F};return this.parseMicroTmpl(E,D,C)};GeometryControls.prototype.bindInfoWindow=function(C){var J=this,B=J.map,G=C.index,I=J.Options.cssId;var E=C.storage[G];var K=E.geometry;var M=E.title;var N=E.description;var L=get$("msiwsi");var O=get$(I+"-style");var D=get$(I+"-title");var A=get$(I+"-description");var H=false;GEvent.addDomListener(L,"click",function(){O.style.display="block";if(H===false){C.geometryStyleFunc();H=true}});GEvent.addDomListener(get$("emmc-geom-style-back"),"click",function(){O.style.display="none"});D.value=(M[1])?((M[0]===M[1])?M[0]:M[1]):"";A.value=(N[1])?((N[0]===N[1])?N[0]:N[1]):"";GEvent.addDomListener(D,"change",function(){M[1]=D.value});GEvent.addDomListener(A,"change",function(){N[1]=A.value});var F=GEvent.addListener(B,"infowindowbeforeclose",function(){M[1]=D.value;N[1]=A.value;GEvent.removeListener(F)});GEvent.addDomListener(get$(I+"-delete"),"click",function(){if(confirm("Are you sure you want to delete this?")){B.removeOverlay(K);C.storage[G]=null;B.closeInfoWindow()}});GEvent.addDomListener(get$(I+"-cancel"),"click",function(){C.undoStyling();M[1]=M[0];N[1]=N[0];GEvent.removeListener(F);B.closeInfoWindow()});GEvent.addDomListener(get$(I+"-ok"),"click",function(){M[0]=M[1];N[0]=N[1];C.commitStyling();B.closeInfoWindow()})};GeometryControls.prototype.loadData=function(B){var A=this;GDownloadUrl(B.url,function(D,C){(B.type==="kml")?A.handleKmlDataResponse_(D,C):A.handleJsonDataResponse_(D,C)})};GeometryControls.prototype.handleKmlDataResponse_=function(t,b){var Q=this;var h={value:function(i){a=GXml.value(i);a=a.replace(/^\s*/,"");a=a.replace(/\s*$/,"");return a},styles:{}};function T(i){Q.debug("Looks like you provided an invalid URL or parameters or invalid xml. The URL is ____ .The error is:"+i+" at line "+i.lineNumber+" in file "+i.fileName)}if(b==200){try{var K=GXml.parse(t);var V=K.documentElement.getElementsByTagName("Style");for(var o=0;o0){var R=h.value(u[0].getElementsByTagName("href")[0]);if(!!R){var H={name:F};var S={};for(var m in Q.infoWindowHtmlTemplates["markerIcons"]){S[Q.infoWindowHtmlTemplates["markerIcons"][m].name]=Q.infoWindowHtmlTemplates["markerIcons"][m]}switch(true){case (R.indexOf("kml")>-1):H.y=parseInt(R.charAt(R.indexOf("pal")+3))+1;H.x=parseInt(R.substring(R.indexOf("icon")+4,R.indexOf(".png")));break;case (R.indexOf("dot")>-1):H.y=0;if(S["dot"]){var C=S["dot"].images;var D=R.split("/").pop();for(var l in C){if(D===C[l]){H.x=l}}}else{Q.debug("Cannot Load Kml - There is no icon defined for markers with images like *-dot.png")}break}}h.styles["#"+H.name]=H}var X=V[o].getElementsByTagName("LineStyle");if(X.length>0){var B=parseInt(GXml.value(X[0].getElementsByTagName("width")[0]));if(B<1){B=5}var U=h.value(X[0].getElementsByTagName("color")[0]);var O=U.substr(0,2);var v=U.substr(2,2);var L=U.substr(4,2);var W=U.substr(6,2);U="#"+W+L+v;var q=parseInt(O,16)/256;if(!h.styles["#"+F]){h.styles["#"+F]={}}h.styles["#"+F].color=U;h.styles["#"+F].width=B;h.styles["#"+F].opacity=q}var r=V[o].getElementsByTagName("PolyStyle");if(r.length>0){var P=parseInt(GXml.value(r[0].getElementsByTagName("fill")[0]));var E=parseInt(GXml.value(r[0].getElementsByTagName("outline")[0]));var U=h.value(r[0].getElementsByTagName("color")[0]);if(r[0].getElementsByTagName("fill").length===0){P=1}if(r[0].getElementsByTagName("outline").length===0){E=1}var O=U.substr(0,2);var v=U.substr(2,2);var L=U.substr(4,2);var W=U.substr(6,2);U="#"+W+L+v;var q=Math.round((parseInt(O,16)/256)*100)/100;if(!h.styles["#"+F]){h.styles["#"+F]={}}h.styles["#"+F].fillcolor=U;h.styles["#"+F].fillopacity=q;if(!P){h.styles["#"+F].fillopacity=0}if(!E){h.styles["#"+F].opacity=0}}}var n=K.documentElement.getElementsByTagName("Placemark");for(var o=0;o'+c+""}if(c.match(/^https:\/\//i)){c=''+c+""}var g=h.styles[h.value(n[o].getElementsByTagName("styleUrl")[0])]||{};var G=GXml.value(n[o].getElementsByTagName("coordinates")[0]);G=G.replace(/\s+/g," ");G=G.replace(/^ /,"");G=G.replace(/ $/,"");G=G.replace(/, /,",");var d=G.split(" ");if(d.length>1){var Z=[];for(var f=0;f