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}EGeoXml.value=function(A){a=GXml.value(A);a=a.replace(/^\s*/,"");a=a.replace(/\s*$/,"");return a};EGeoXml.prototype.createMarker=function(S,Z,V,T){var W=G_DEFAULT_ICON;var D=this.myvar;var C=this.opts.iwoptions||{};var Y=this.opts.markeroptions||{};var E=this.opts.icontype||"style";if(E=="style"){if(!!this.styles[T]){W=this.styles[T]}}if(!Y.icon){Y.icon=W}var Q=new GMarker(S,Y);if(this.opts.preloadimages){var O=V;var U=/<\s*img/ig;var K;var M=/src\s*=\s*[\'\"]/;var L=/[\'\"]/;while((K=U.exec(O))!=null){var N=O.substr(K.index);var B=M.exec(N);if(B!=null){N=N.substr(B.index+B[0].length);var A=L.exec(N);if(A!=null){var X=N.substr(0,A.index);this.myimages[this.imageNum]=new Image();this.myimages[this.imageNum].src=X;this.imageNum++}}}}if(this.opts.elabelclass){var R=new ELabel(S,Z,this.opts.elabelclass,this.opts.elabeloffset,this.elabelopacity,true);this.map.addOverlay(R)}var J="<div style = 'width:"+this.iwwidth+"px'><h1 "+this.titlestyle+">"+Z+"</h1><div "+this.descstyle+">"+V+"</div>";if(this.opts.directions){var I=J+"<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 H=J+"<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="'+S.lat()+","+S.lng()+"("+Z+')"/><br><a href="javascript:GEvent.trigger('+this.myvar+".lastmarker,'click')\">&#171; Back</a></div>";var G=J+"<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="'+S.lat()+","+S.lng()+"("+Z+')"/><br><a href="javascript:GEvent.trigger('+this.myvar+".lastmarker,'click')\">&#171; Back</a></div>";var F=J+"<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="'+Z+" @"+S.lat()+","+S.lng()+'"/><br><a href="javascript:GEvent.trigger('+this.myvar+".lastmarker,'click')\">&#171; Back</a></div>";GEvent.addListener(Q,"click2",function(){Q.openInfoWindowHtml(H+"</div>",C)});GEvent.addListener(Q,"click3",function(){Q.openInfoWindowHtml(G+"</div>",C)});GEvent.addListener(Q,"click4",function(){Q.openInfoWindowHtml(F+"</div>",C)})}else{var I=J}GEvent.addListener(Q,"mouseover",function(){Q.openInfoWindowHtml(I,C)});if(!!this.opts.addmarker){this.opts.addmarker(Q,Z,V,W.image,this.gmarkers.length)}else{this.map.addOverlay(Q)}this.gmarkers.push(Q);if(this.opts.sidebarid||this.opts.dropboxid){var P=this.gmarkers.length-1;this.side_bar_list.push(Z+"$$$marker$$$"+P+"$$$")}};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.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 e=this;var N=GXml.parse(G);var Y=N.documentElement.getElementsByTagName("Style");for(var o=0;o<Y.length;o++){var H=Y[o].getAttribute("id");var t=Y[o].getElementsByTagName("Icon");if(t.length>0){var U=EGeoXml.value(t[0].getElementsByTagName("href")[0]);if(!!U){if(!!e.opts.baseicon){e.styles["#"+H]=new GIcon(e.opts.baseicon,U)}else{e.styles["#"+H]=new GIcon(G_DEFAULT_ICON,U);e.styles["#"+H].iconSize=new GSize(32,32);e.styles["#"+H].shadowSize=new GSize(59,32);e.styles["#"+H].dragCrossAnchor=new GPoint(2,8);e.styles["#"+H].iconAnchor=new GPoint(16,32);if(e.opts.printgif){var A=U.split("/");var h=A[A.length-1];h=e.opts.printgifpath+h.replace(/.png/i,".gif");e.styles["#"+H].printImage=h;e.styles["#"+H].mozPrintImage=h}if(!!e.opts.noshadow){e.styles["#"+H].shadow=""}else{if(U.indexOf("/red.png")>-1||U.indexOf("/blue.png")>-1||U.indexOf("/green.png")>-1||U.indexOf("/yellow.png")>-1||U.indexOf("/lightblue.png")>-1||U.indexOf("/purple.png")>-1||U.indexOf("/pink.png")>-1||U.indexOf("/orange.png")>-1||U.indexOf("-dot.png")>-1){e.styles["#"+H].shadow="http://maps.google.com/mapfiles/ms/micons/msmarker.shadow.png"}else{if(U.indexOf("-pushpin.png")>-1){e.styles["#"+H].shadow="http://maps.google.com/mapfiles/ms/micons/pushpin_shadow.png"}else{var d=U.replace(".png",".shadow.png");e.styles["#"+H].shadow=d}}}}}}var b=Y[o].getElementsByTagName("LineStyle");if(b.length>0){var B=parseInt(GXml.value(b[0].getElementsByTagName("width")[0]));if(B<1){B=5}var W=EGeoXml.value(b[0].getElementsByTagName("color")[0]);var R=W.substr(0,2);var v=W.substr(2,2);var P=W.substr(4,2);var Z=W.substr(6,2);W="#"+Z+P+v;var q=parseInt(R,16)/256;if(!e.styles["#"+H]){e.styles["#"+H]={}}e.styles["#"+H].color=W;e.styles["#"+H].width=B;e.styles["#"+H].opacity=q}var r=Y[o].getElementsByTagName("PolyStyle");if(r.length>0){var S=parseInt(GXml.value(r[0].getElementsByTagName("fill")[0]));var F=parseInt(GXml.value(r[0].getElementsByTagName("outline")[0]));var W=EGeoXml.value(r[0].getElementsByTagName("color")[0]);if(r[0].getElementsByTagName("fill").length==0){S=1}if(r[0].getElementsByTagName("outline").length==0){F=1}var R=W.substr(0,2);var v=W.substr(2,2);var P=W.substr(4,2);var Z=W.substr(6,2);W="#"+Z+P+v;var q=parseInt(R,16)/256;if(!e.styles["#"+H]){e.styles["#"+H]={}}e.styles["#"+H].fillcolor=W;e.styles["#"+H].fillopacity=q;if(!S){e.styles["#"+H].fillopacity=0}if(!F){e.styles["#"+H].opacity=0}}}var n=N.documentElement.getElementsByTagName("Placemark");for(var o=0;o<n.length;o++){var M=EGeoXml.value(n[o].getElementsByTagName("name")[0]);var j=EGeoXml.value(n[o].getElementsByTagName("description")[0]);if(j.match(/^http:\/\//i)){j='<a href="'+j+'">'+j+"</a>"}if(j.match(/^https:\/\//i)){j='<a href="'+j+'">'+j+"</a>"}var m=EGeoXml.value(n[o].getElementsByTagName("styleUrl")[0]);var L=GXml.value(n[o].getElementsByTagName("coordinates")[0]);L=L.replace(/\s+/g," ");L=L.replace(/^ /,"");L=L.replace(/ $/,"");L=L.replace(/, /,",");var k=L.split(" ");if(k.length>1){var g=[];var s=new GLatLngBounds();for(var l=0;l<k.length-1;l++){var A=k[l].split(",");var c=new GLatLng(parseFloat(A[1]),parseFloat(A[0]));g.push(c);e.bounds.extend(c);s.extend(c)}var O=n[o].getElementsByTagName("LineString");if(O.length){if(!!e.styles[m]){var B=e.styles[m].width;var W=e.styles[m].color;var q=e.styles[m].opacity}else{var B=5;var W="#0000ff";var q=0.45}if(!!e.opts.createpolyline){e.opts.createpolyline(g,W,B,q,s,M,j)}else{e.createPolyline(g,W,B,q,s,M,j)}}var w=n[o].getElementsByTagName("Polygon");if(w.length){if(!!e.styles[m]){var B=e.styles[m].width;var W=e.styles[m].color;var q=e.styles[m].opacity;var f=e.styles[m].fillopacity;var K=e.styles[m].fillcolor}else{var B=5;var W="#0000ff";var q=0.45;var f=0.25;var K="#0055ff"}if(!!e.opts.createpolygon){e.opts.createpolygon(g,W,B,q,K,f,s,M,j)}else{e.createPolygon(g,W,B,q,K,f,s,M,j)}}}else{var A=k[0].split(",");var c=new GLatLng(parseFloat(A[1]),parseFloat(A[0]));e.bounds.extend(c);if(!!e.opts.createmarker){e.opts.createmarker(c,M,j,m)}else{e.createMarker(c,M,j,m)}}}var I=N.documentElement.getElementsByTagName("GroundOverlay");for(var o=0;o<I.length;o++){var E=EGeoXml.value(I[o].getElementsByTagName("href")[0]);var Q=parseFloat(GXml.value(I[o].getElementsByTagName("north")[0]));var X=parseFloat(GXml.value(I[o].getElementsByTagName("south")[0]));var V=parseFloat(GXml.value(I[o].getElementsByTagName("east")[0]));var T=parseFloat(GXml.value(I[o].getElementsByTagName("west")[0]));var J=new GLatLng(X,T);var D=new GLatLng(Q,V);var C=new GGroundOverlay(E,new GLatLngBounds(J,D));e.bounds.extend(J);e.bounds.extend(D);e.groundoverlays.push(C);e.map.addOverlay(C)}e.progress--;if(e.progress==0){if(!e.opts.nozoom){e.map.setZoom(e.map.getBoundsZoomLevel(e.bounds));e.map.setCenter(e.bounds.getCenter())}if(e.opts.sortbyname){e.side_bar_list.sort()}if(e.opts.sidebarid){for(var o=0;o<e.side_bar_list.length;o++){var A=e.side_bar_list[o].split("$$$",4);e.side_bar_html+=e.sidebarfn(e.myvar,A[0],A[1],A[2],A[3])}document.getElementById(e.opts.sidebarid).innerHTML+=e.side_bar_html}if(e.opts.dropboxid){for(var o=0;o<e.side_bar_list.length;o++){var A=e.side_bar_list[o].split("$$$",4);if(A[1]=="marker"){e.side_bar_html+=e.dropboxfn(e.myvar,A[0],A[1],A[2],A[3])}}document.getElementById(e.opts.dropboxid).innerHTML='<select onChange="var I=this.value;if(I>-1){GEvent.trigger('+e.myvar+".gmarkers[I],'click'); }\"><option selected> - Select a location - </option>"+e.side_bar_html+"</select>"}GEvent.trigger(e,"parsed")}};