function EGeoXml(D,C,A,B){this.myvar=D;this.map=C;this.url=A;if(typeof A=="string"){this.urls=[A]}else{this.urls=A}this.opts=B||{};this.titlestyle=this.opts.titlestyle||'style = "font-family: arial, sans-serif;font-size: medium;font-weight:bold;font-size: 100%;"';this.descstyle=this.opts.descstyle||'style = "font-family: arial, sans-serif;font-size: small;padding-bottom:.7em;"';this.directionstyle=this.opts.directionstyle||'style="font-family: arial, sans-serif;font-size: small;padding-left: 1px;padding-top: 1px;padding-right: 4px;"';this.sidebarfn=this.opts.sidebarfn||EGeoXml.addSidebar;this.dropboxfn=this.opts.dropboxfn||EGeoXml.addDropdown;this.elabelopacity=this.opts.elabelopacity||100;this.bounds=new GLatLngBounds();this.gmarkers=[];this.gpolylines=[];this.gpolygons=[];this.groundoverlays=[];this.side_bar_html="";this.side_bar_list=[];this.styles=[];this.iwwidth=this.opts.iwwidth||250;this.progress=0;this.lastmarker={};this.myimages=[];this.imageNum=0;this.myoverlayactive=this.opts.myoverlayactive||false}EGeoXml.value=function(A){a=GXml.value(A);a=a.replace(/^\s*/,"");a=a.replace(/\s*$/,"");return a};EGeoXml.prototype.createMarker=function(point,name,desc,style){var icon=G_DEFAULT_ICON;var myvar=this.myvar;var iwoptions=this.opts.iwoptions||{};var markeroptions=this.opts.markeroptions||{};var icontype=this.opts.icontype||"style";if(icontype=="style"){if(!!this.styles[style]){icon=this.styles[style]}}if(!markeroptions.icon){markeroptions.icon=icon}var m=new GMarker(point,markeroptions);if(this.opts.preloadimages){var text=desc;var pattern=/<\s*img/ig;var result;var pattern2=/src\s*=\s*[\'\"]/;var pattern3=/[\'\"]/;while((result=pattern.exec(text))!=null){var stuff=text.substr(result.index);var result2=pattern2.exec(stuff);if(result2!=null){stuff=stuff.substr(result2.index+result2[0].length);var result3=pattern3.exec(stuff);if(result3!=null){var imageUrl=stuff.substr(0,result3.index);this.myimages[this.imageNum]=new Image();this.myimages[this.imageNum].src=imageUrl;this.imageNum++}}}}if(this.opts.elabelclass){var l=new ELabel(point,name,this.opts.elabelclass,this.opts.elabeloffset,this.elabelopacity,true);this.map.addOverlay(l)}if(this.myoverlayactive){m.closeOverlay=closeOverlay;m.map=this.map;var html_overlay='<h1 style="font-size:100%">'+name+"</h1>";GEvent.addListener(m,"mouseover",function(map){if(typeof MyOverlay!=="undefined"){if(this.map.currentMarker){this.closeOverlay()}if(!this.overlay){this.overlay=new MyOverlay(this,html_overlay)}this.map.currentMarker=this;this.map.addOverlay(this.overlay)}else{m.openInfoWindowHtml(html_overlay)}});GEvent.addListener(m,"mouseout",closeOverlay)}var html="<div style = 'width:"+this.iwwidth+"px'><h1 "+this.titlestyle+">"+name+"</h1><div "+this.descstyle+">"+desc+"</div>";if(this.opts.directions){var html1=html+"<div "+this.directionstyle+'>Get Directions: <a href="javascript:GEvent.trigger('+this.myvar+".lastmarker,'click2')\">To Here</a> - <a href=\"javascript:GEvent.trigger("+this.myvar+".lastmarker,'click3')\">From Here</a><br><a href=\"javascript:GEvent.trigger("+this.myvar+".lastmarker,'click4')\">Search nearby</a></div>";var html2=html+"<div "+this.directionstyle+'>Get Directions: To here - <a href="javascript:GEvent.trigger('+this.myvar+'.lastmarker,\'click3\')">From Here</a><br>Start address:<form action="http://maps.google.com/maps" method="get" target="_blank"><input type="text" SIZE=35 MAXLENGTH=80 name="saddr" id="saddr" value="" /><INPUT value="Go" TYPE="SUBMIT"><input type="hidden" name="daddr" value="'+point.lat()+","+point.lng()+"("+name+')"/><br><a href="javascript:GEvent.trigger('+this.myvar+".lastmarker,'click')\">&#171; Back</a></div>";var html3=html+"<div "+this.directionstyle+'>Get Directions: <a href="javascript:GEvent.trigger('+this.myvar+'.lastmarker,\'click2\')">To Here</a> - From Here<br>End address:<form action="http://maps.google.com/maps" method="get"" target="_blank"><input type="text" SIZE=35 MAXLENGTH=80 name="daddr" id="daddr" value="" /><INPUT value="Go" TYPE="SUBMIT"><input type="hidden" name="saddr" value="'+point.lat()+","+point.lng()+"("+name+')"/><br><a href="javascript:GEvent.trigger('+this.myvar+".lastmarker,'click')\">&#171; Back</a></div>";var html4=html+"<div "+this.directionstyle+'>Search nearby: e.g. "pizza"<br><form action="http://maps.google.com/maps" method="get"" target="_blank"><input type="text" SIZE=35 MAXLENGTH=80 name="q" id="q" value="" /><INPUT value="Go" TYPE="SUBMIT"><input type="hidden" name="near" value="'+name+" @"+point.lat()+","+point.lng()+'"/><br><a href="javascript:GEvent.trigger('+this.myvar+".lastmarker,'click')\">&#171; Back</a></div>";GEvent.addListener(m,"click2",function(){m.openInfoWindowHtml(html2+"</div>",iwoptions)});GEvent.addListener(m,"click3",function(){m.openInfoWindowHtml(html3+"</div>",iwoptions)});GEvent.addListener(m,"click4",function(){m.openInfoWindowHtml(html4+"</div>",iwoptions)})}else{var html1=html}GEvent.addListener(m,"click",function(){eval(myvar+".lastmarker = m");m.openInfoWindowHtml(html1+"</div>",iwoptions)});if(!!this.opts.addmarker){this.opts.addmarker(m,name,desc,icon.image,this.gmarkers.length)}else{this.map.addOverlay(m)}this.gmarkers.push(m);if(this.opts.sidebarid||this.opts.dropboxid){var n=this.gmarkers.length-1;this.side_bar_list.push(name+"$$$marker$$$"+n+"$$$")}};EGeoXml.prototype.createPolyline=function(M,G,D,J,K,B,I){var L=this.map;var N=this.opts.iwoptions||{};var E=this.opts.polylineoptions||{};var C=new GPolyline(M,G,D,J,E);this.map.addOverlay(C);this.gpolylines.push(C);var H="<div style='font-weight: bold; font-size: medium; margin-bottom: 0em;'>"+B+"</div><div style='font-family: Arial, sans-serif;font-size: small;width:"+this.iwwidth+"px'>"+I+"</div>";GEvent.addListener(C,"click",function(){L.openInfoWindowHtml(C.getVertex(Math.floor(C.getVertexCount()/2)),H,N)});if(this.opts.sidebarid){var F=this.gpolylines.length-1;var A='&nbsp;&nbsp;<span style=";border-left:'+D+"px solid "+G+';">&nbsp;</span> ';this.side_bar_list.push(B+"$$$polyline$$$"+F+"$$$"+A)}};EGeoXml.prototype.createPolygon=function(O,G,D,L,F,I,M,B,K){var N=this.map;var P=this.opts.iwoptions||{};var H=this.opts.polygonoptions||{};var C=new GPolygon(O,G,D,L,F,I,H);this.map.addOverlay(C);this.gpolygons.push(C);var J="<div style='font-weight: bold; font-size: medium; margin-bottom: 0em;'>"+B+"</div><div style='font-family: Arial, sans-serif;font-size: small;width:"+this.iwwidth+"px'>"+K+"</div>";GEvent.addListener(C,"click",function(){N.openInfoWindowHtml(M.getCenter(),J,P)});if(this.opts.sidebarid){var E=this.gpolygons.length-1;var A='<span style="background-color:'+F+";border:2px solid "+G+';">&nbsp;&nbsp;&nbsp;&nbsp;</span> ';this.side_bar_list.push(B+"$$$polygon$$$"+E+"$$$"+A)}};EGeoXml.addSidebar=function(D,A,C,B,E){if(C=="marker"){return'<a href="javascript:GEvent.trigger('+D+".gmarkers["+B+"],'click')\">"+A+"</a><br>"}if(C=="polyline"){return'<div style="margin-top:6px;"><a href="javascript:GEvent.trigger('+D+".gpolylines["+B+"],'click')\">"+E+A+"</a></div>"}if(C=="polygon"){return'<div style="margin-top:6px;"><a href="javascript:GEvent.trigger('+D+".gpolygons["+B+"],'click')\">"+E+A+"</a></div>"}};EGeoXml.addDropdown=function(D,A,C,B,E){return'<option value="'+B+'">'+A+"</option>"};EGeoXml.prototype.parse=function(){this.gmarkers=[];this.gpolylines=[];this.gpolygons=[];this.groundoverlays=[];this.side_bar_html="";this.side_bar_list=[];this.styles=[];this.lastmarker={};this.myimages=[];this.imageNum=0;var A=this;this.progress=this.urls.length;for(u=0;u<this.urls.length;u++){GDownloadUrl(this.urls[u],function(B){A.processing(B)})}};EGeoXml.prototype.parseString=function(A){this.gmarkers=[];this.gpolylines=[];this.gpolygons=[];this.groundoverlays=[];this.side_bar_html="";this.side_bar_list=[];this.styles=[];this.lastmarker={};this.myimages=[];this.imageNum=0;if(typeof A=="string"){this.docs=[A]}else{this.docs=A}this.progress=this.docs.length;for(u=0;u<this.docs.length;u++){this.processing(this.docs[u])}};EGeoXml.prototype.processing=function(G){var f=this;var O=GXml.parse(G);var Z=O.documentElement.getElementsByTagName("Style");for(var q=0;q<Z.length;q++){var H=Z[q].getAttribute("id");var v=Z[q].getElementsByTagName("Icon");if(v.length>0){var V=EGeoXml.value(v[0].getElementsByTagName("href")[0]);if(!!V){if(!!f.opts.baseicon){f.styles["#"+H]=new GIcon(f.opts.baseicon,V)}else{f.styles["#"+H]=new GIcon(G_DEFAULT_ICON,V);f.styles["#"+H].iconSize=new GSize(32,32);f.styles["#"+H].shadowSize=new GSize(59,32);f.styles["#"+H].dragCrossAnchor=new GPoint(2,8);f.styles["#"+H].iconAnchor=new GPoint(16,32);if(f.opts.printgif){var A=V.split("/");var j=A[A.length-1];j=f.opts.printgifpath+j.replace(/.png/i,".gif");f.styles["#"+H].printImage=j;f.styles["#"+H].mozPrintImage=j}if(!!f.opts.noshadow){f.styles["#"+H].shadow=""}else{if(V.indexOf("/red.png")>-1||V.indexOf("/blue.png")>-1||V.indexOf("/green.png")>-1||V.indexOf("/yellow.png")>-1||V.indexOf("/lightblue.png")>-1||V.indexOf("/purple.png")>-1||V.indexOf("/pink.png")>-1||V.indexOf("/orange.png")>-1||V.indexOf("-dot.png")>-1){f.styles["#"+H].shadow="http://maps.google.com/mapfiles/ms/micons/msmarker.shadow.png"}else{if(V.indexOf("-pushpin.png")>-1){f.styles["#"+H].shadow="http://maps.google.com/mapfiles/ms/micons/pushpin_shadow.png"}else{var e=V.replace(".png",".shadow.png");f.styles["#"+H].shadow=e}}}}}}var c=Z[q].getElementsByTagName("LineStyle");if(c.length>0){var B=parseInt(GXml.value(c[0].getElementsByTagName("width")[0]));if(B<1){B=5}var X=EGeoXml.value(c[0].getElementsByTagName("color")[0]);var S=X.substr(0,2);var w=X.substr(2,2);var Q=X.substr(4,2);var b=X.substr(6,2);X="#"+b+Q+w;var r=parseInt(S,16)/256;if(!f.styles["#"+H]){f.styles["#"+H]={}}f.styles["#"+H].color=X;f.styles["#"+H].width=B;f.styles["#"+H].opacity=r}var s=Z[q].getElementsByTagName("PolyStyle");if(s.length>0){var T=parseInt(GXml.value(s[0].getElementsByTagName("fill")[0]));var F=parseInt(GXml.value(s[0].getElementsByTagName("outline")[0]));var X=EGeoXml.value(s[0].getElementsByTagName("color")[0]);if(s[0].getElementsByTagName("fill").length==0){T=1}if(s[0].getElementsByTagName("outline").length==0){F=1}var S=X.substr(0,2);var w=X.substr(2,2);var Q=X.substr(4,2);var b=X.substr(6,2);X="#"+b+Q+w;var r=parseInt(S,16)/256;if(!f.styles["#"+H]){f.styles["#"+H]={}}f.styles["#"+H].fillcolor=X;f.styles["#"+H].fillopacity=r;if(!T){f.styles["#"+H].fillopacity=0}if(!F){f.styles["#"+H].opacity=0}}}var K=O.documentElement.getElementsByTagName("StyleMap");for(var q=0;q<K.length;q++){var H=K[q].getAttribute("id");var v=K[q].getElementsByTagName("styleUrl");if(v){var x=v[0].firstChild.data;f.styles["#"+H]=f.styles[x]}}var o=O.documentElement.getElementsByTagName("Placemark");for(var q=0;q<o.length;q++){var N=EGeoXml.value(o[q].getElementsByTagName("name")[0]);var k=EGeoXml.value(o[q].getElementsByTagName("description")[0]);if(k.match(/^http:\/\//i)){k='<a href="'+k+'">'+k+"</a>"}if(k.match(/^https:\/\//i)){k='<a href="'+k+'">'+k+"</a>"}var n=EGeoXml.value(o[q].getElementsByTagName("styleUrl")[0]);var M=GXml.value(o[q].getElementsByTagName("coordinates")[0]);M=M.replace(/\s+/g," ");M=M.replace(/^ /,"");M=M.replace(/ $/,"");M=M.replace(/, /,",");var l=M.split(" ");if(l.length>1){var h=[];var t=new GLatLngBounds();for(var m=0;m<l.length-1;m++){var A=l[m].split(",");var d=new GLatLng(parseFloat(A[1]),parseFloat(A[0]));h.push(d);f.bounds.extend(d);t.extend(d)}var P=o[q].getElementsByTagName("LineString");if(P.length){if(!!f.styles[n]){var B=f.styles[n].width;var X=f.styles[n].color;var r=f.styles[n].opacity}else{var B=5;var X="#0000ff";var r=0.45}if(!!f.opts.createpolyline){f.opts.createpolyline(h,X,B,r,t,N,k)}else{f.createPolyline(h,X,B,r,t,N,k)}}var y=o[q].getElementsByTagName("Polygon");if(y.length){if(!!f.styles[n]){var B=f.styles[n].width;var X=f.styles[n].color;var r=f.styles[n].opacity;var g=f.styles[n].fillopacity;var L=f.styles[n].fillcolor}else{var B=5;var X="#0000ff";var r=0.45;var g=0.25;var L="#0055ff"}if(!!f.opts.createpolygon){f.opts.createpolygon(h,X,B,r,L,g,t,N,k)}else{f.createPolygon(h,X,B,r,L,g,t,N,k)}}}else{var A=l[0].split(",");var d=new GLatLng(parseFloat(A[1]),parseFloat(A[0]));f.bounds.extend(d);if(!!f.opts.createmarker){f.opts.createmarker(d,N,k,n)}else{f.createMarker(d,N,k,n)}}}var I=O.documentElement.getElementsByTagName("GroundOverlay");for(var q=0;q<I.length;q++){var E=EGeoXml.value(I[q].getElementsByTagName("href")[0]);var R=parseFloat(GXml.value(I[q].getElementsByTagName("north")[0]));var Y=parseFloat(GXml.value(I[q].getElementsByTagName("south")[0]));var W=parseFloat(GXml.value(I[q].getElementsByTagName("east")[0]));var U=parseFloat(GXml.value(I[q].getElementsByTagName("west")[0]));var J=new GLatLng(Y,U);var D=new GLatLng(R,W);var C=new GGroundOverlay(E,new GLatLngBounds(J,D));f.bounds.extend(J);f.bounds.extend(D);f.groundoverlays.push(C);f.map.addOverlay(C)}f.progress--;if(f.progress==0){if(!f.opts.nozoom){f.map.setZoom(f.map.getBoundsZoomLevel(f.bounds));f.map.setCenter(f.bounds.getCenter())}if(f.opts.sortbyname){f.side_bar_list.sort()}if(f.opts.sidebarid){for(var q=0;q<f.side_bar_list.length;q++){var A=f.side_bar_list[q].split("$$$",4);f.side_bar_html+=f.sidebarfn(f.myvar,A[0],A[1],A[2],A[3])}document.getElementById(f.opts.sidebarid).innerHTML+=f.side_bar_html}if(f.opts.dropboxid){for(var q=0;q<f.side_bar_list.length;q++){var A=f.side_bar_list[q].split("$$$",4);if(A[1]=="marker"){f.side_bar_html+=f.dropboxfn(f.myvar,A[0],A[1],A[2],A[3])}}document.getElementById(f.opts.dropboxid).innerHTML='<select onChange="var I=this.value;if(I>-1){GEvent.trigger('+f.myvar+".gmarkers[I],'click'); }\"><option selected> - Select a location - </option>"+f.side_bar_html+"</select>"}GEvent.trigger(f,"parsed")}};