String.prototype.trim||(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),geoXML3=window.geoXML3||{instances:[]},geoXML3.parser=function(n){function d(n,t){geoXML3.fetchXML(n,function(n){s(n,t)})}function o(n,t,i){var f=geoXML3.nodeValue,u;return t[i]=t[i]||r(e),u=n.getElementsByTagName("IconStyle"),!!u&&!!u.length&&u.length>0&&(t[i].scale=parseFloat(f(u[0].getElementsByTagName("scale")[0]))),isNaN(t[i].scale)&&(t[i].scale=1),u=n.getElementsByTagName("Icon"),!!u&&!!u.length&&u.length>0&&(t[i].href=f(u[0].getElementsByTagName("href")[0])),u=n.getElementsByTagName("LineStyle"),!!u&&!!u.length&&u.length>0&&(t[i].color=f(u[0].getElementsByTagName("color")[0]),t[i].width=f(u[0].getElementsByTagName("width")[0])),u=n.getElementsByTagName("PolyStyle"),!!u&&!!u.length&&u.length>0&&(t[i].outline=v(u[0].getElementsByTagName("outline")[0]),t[i].fill=v(u[0].getElementsByTagName("fill")[0]),t[i].fillcolor=f(u[0].getElementsByTagName("color")[0])),t[i]}function r(n){var t,i;if(n==null||typeof n!="object")return n;t=new n.constructor;for(i in n)t[i]=r(n[i]);return t}function tt(n,i,u){for(var l=geoXML3.nodeValue,h=n.getElementsByTagName("Pair"),f={},s=0;s<h.length;s++){var v=l(h[s].getElementsByTagName("key")[0]),y=l(h[s].getElementsByTagName("Style")[0]),a=l(h[s].getElementsByTagName("styleUrl")[0]);y?o(y,f[v],u):!a||!i[a]||(f[v]=r(i[a]))}i[u]=f.normal?r(f.normal):r(e),!f.highlight||!t.processStyles||c(f.highlight),i[u].map=r(f)}function v(n){var t=geoXML3.nodeValue(n);return t?(t&&(t=parseInt(t)),isNaN(t))?!0:t==0?!1:!0:!0}function u(n,t){for(var s=n.getElementsByTagName(t),o=[],u,f,i,e,r=0;r<s.length;r++){if(u=s[r].getElementsByTagName("coordinates"),!u)if(o.length>0)break;else return[{coordinates:[]}];for(f=0;f<u.length;f++){i=geoXML3.nodeValue(u[f]).trim(),i=i.replace(/,\s+/g,",");var h=i.split(/\s+/g),l=h.length,c=[];for(e=0;e<l;e++)i=h[e].split(","),isNaN(i[0])||isNaN(i[1])||c.push({lat:parseFloat(i[1]),lng:parseFloat(i[0]),alt:parseFloat(i[2])});o.push({coordinates:c})}}return o}var t=geoXML3.combineOptions(n,{singleInfoWindow:!1,processStyles:!0,zoom:!0}),i=[],f,l,a;typeof t.suppressInfoWindows=="undefined"&&(t.suppressInfoWindows=!1),!t.infoWindow&&t.singleInfoWindow&&(t.infoWindow=new google.maps.InfoWindow),l=function(n,i){var r={parser:this,docSet:i||[],remaining:1,parseOnly:!(t.afterParse||t.processStyles)};thisDoc={},thisDoc.internals=r,r.docSet.push(thisDoc),s(geoXML3.xmlParse(n),thisDoc)},a=function(n,r){var s,u,e,o,h;for(f||(f="geoXML3.instances["+(geoXML3.instances.push(this)-1)+"]"),typeof n=="string"&&(n=[n]),s={parser:this,docSet:r||[],remaining:n.length,parseOnly:!(t.afterParse||t.processStyles)},o=0;o<n.length;o++){for(h=n[o].split("?")[0],e=0;e<i.length;e++)if(h===i[e].baseUrl){u=i[e],u.reload=!0;break}e>=i.length&&(u={},u.baseUrl=h,s.docSet.push(u)),u.url=n[o],u.internals=s,d(u.url,u)}};var g=function(n){n||(n=i[0]);var t;if(!!n.markers)for(t=0;t<n.markers.length;t++)!n.markers[t].infoWindow||n.markers[t].infoWindow.close(),n.markers[t].setVisible(!1);if(!!n.ggroundoverlays)for(t=0;t<n.ggroundoverlays.length;t++)n.ggroundoverlays[t].setOpacity(0);if(!!n.gpolylines)for(t=0;t<n.gpolylines.length;t++)!n.gpolylines[t].infoWindow||n.gpolylines[t].infoWindow.close(),n.gpolylines[t].setMap(null);if(!!n.gpolygons)for(t=0;t<n.gpolygons.length;t++)!n.gpolygons[t].infoWindow||n.gpolygons[t].infoWindow.close(),n.gpolygons[t].setMap(null)},nt=function(n){n||(n=i[0]);var r;if(!!n.markers)for(r=0;r<n.markers.length;r++)n.markers[r].setVisible(!0);if(!!n.ggroundoverlays)for(r=0;r<n.ggroundoverlays.length;r++)n.ggroundoverlays[r].setOpacity(n.ggroundoverlays[r].percentOpacity_);if(!!n.gpolylines)for(r=0;r<n.gpolylines.length;r++)n.gpolylines[r].setMap(t.map);if(!!n.gpolygons)for(r=0;r<n.gpolygons.length;r++)n.gpolygons[r].setMap(t.map)},e={color:"ff000000",width:1,fill:!0,outline:!0,fillcolor:"3fff0000"};var s=function(n,s){var ct,dt,lt,rt,a,nt,l,ui,fi,ni,gt,at,ri,yt,pt,vt,ut,wt,et,ti,it,ot,d,ii,bt,st,ft,g,v,ht,kt,h;if(n)if(s){for(ct={},s.placemarks=[],s.groundoverlays=[],s.ggroundoverlays=[],s.networkLinks=[],s.gpolygons=[],s.gpolylines=[],dt=geoXML3.nodeValue,nodes=n.getElementsByTagName("Style"),nodeCount=nodes.length,h=0;h<nodeCount;h++)thisNode=nodes[h],rt=thisNode.getAttribute("id"),!rt||(lt="#"+rt,o(thisNode,ct,lt));for(nodes=n.getElementsByTagName("StyleMap"),h=0;h<nodes.length;h++)thisNode=nodes[h],rt=thisNode.getAttribute("id"),!rt||(lt="#"+rt,tt(thisNode,ct,lt));if(s.styles=ct,!t.processStyles&&t.createMarker||y(s),!!s.reload&&!!s.markers)for(h=0;h<s.markers.length;h++)s.markers[h].active=!1;for(yt=n.getElementsByTagName("Placemark"),pm=0;pm<yt.length;pm++){if(a=yt[pm],l={name:geoXML3.nodeValue(a.getElementsByTagName("name")[0]),description:geoXML3.nodeValue(a.getElementsByTagName("description")[0]),styleUrl:geoXML3.nodeValue(a.getElementsByTagName("styleUrl")[0])},l.style=s.styles[l.styleUrl]||r(e),pt=a.getElementsByTagName("Style"),pt&&pt.length>0&&(vt=o(a,s.styles,"inline"),c(vt),vt&&(l.style=vt)),/^https?:\/\//.test(l.description)&&(l.description=['<a href="',l.description,'">',l.description,"<\/a>"].join("")),ut=a.getElementsByTagName("coordinates"),wt=null,!!ut&&ut.length>0)for(et=0;et<ut.length;et++)if(ut[et].parentNode&&ut[et].parentNode.nodeName){ti=ut[et].parentNode,wt=ti.nodeName;switch(wt){case"Point":l.Point=u(a,"Point")[0],l.latlng=new google.maps.LatLng(l.Point.coordinates[0].lat,l.Point.coordinates[0].lng),ni=1;break;case"LinearRing":for(at=a.getElementsByTagName("Polygon"),l.Polygon||(l.Polygon=[{outerBoundaryIs:{coordinates:[]},innerBoundaryIs:[{coordinates:[]}]}]),it=0;it<at.length;it++)l.Polygon[it]={outerBoundaryIs:{coordinates:[]},innerBoundaryIs:[{coordinates:[]}]},l.Polygon[it].outerBoundaryIs=u(at[it],"outerBoundaryIs"),l.Polygon[it].innerBoundaryIs=u(at[it],"innerBoundaryIs");ri=l.Polygon[0].outerBoundaryIs;break;case"LineString":ni=0,l.LineString=u(a,"LineString")}}if(!t.pmParseFn||t.pmParseFn(a,l),s.placemarks.push(l),l.Point)if(!google.maps||(s.bounds=s.bounds||new google.maps.LatLngBounds,s.bounds.extend(l.latlng)),!t.createMarker){if(ft=!1,!!s&&(s.markers=s.markers||[],s.reload))for(ot=0;ot<s.markers.length;ot++)if(s.markers[ot].getPosition().equals(l.latlng)){ft=s.markers[ot].active=!0;break}ft||(gt=p(l,s),gt.active=!0)}else t.createMarker(l,s);l.Polygon&&(!s||(s.gpolygons=s.gpolygons||[]),t.createPolygon?nt=t.createPolygon(l,s):(nt=k(l,s),nt.active=!0),!google.maps||(s.bounds=s.bounds||new google.maps.LatLngBounds,s.bounds.union(nt.bounds))),l.LineString&&(!s||(s.gpolylines=s.gpolylines||[]),t.createPolyline?nt=t.createPolyline(l,s):(nt=b(l,s),nt.active=!0),!google.maps||(s.bounds=s.bounds||new google.maps.LatLngBounds,s.bounds.union(nt.bounds)))}if(!!s.reload&&!!s.markers)for(h=s.markers.length-1;h>=0;h--)s.markers[h].active||(!s.markers[h].infoWindow||s.markers[h].infoWindow.close(),s.markers[h].setMap(null),s.markers.splice(h,1));if(!!s.reload&&!!s.groundoverlays)for(h=0;h<s.groundoverlays.length;h++)s.groundoverlays[h].active=!1;for(!s||(s.groundoverlays=s.groundoverlays||[]),bt=n.getElementsByTagName("GroundOverlay"),h=0;h<bt.length;h++){if(a=bt[h],d={name:geoXML3.nodeValue(a.getElementsByTagName("name")[0]),description:geoXML3.nodeValue(a.getElementsByTagName("description")[0]),icon:{href:geoXML3.nodeValue(a.getElementsByTagName("href")[0])},latLonBox:{north:parseFloat(geoXML3.nodeValue(a.getElementsByTagName("north")[0])),east:parseFloat(geoXML3.nodeValue(a.getElementsByTagName("east")[0])),south:parseFloat(geoXML3.nodeValue(a.getElementsByTagName("south")[0])),west:parseFloat(geoXML3.nodeValue(a.getElementsByTagName("west")[0]))}},!google.maps||(s.bounds=s.bounds||new google.maps.LatLngBounds,s.bounds.union(new google.maps.LatLngBounds(new google.maps.LatLng(d.latLonBox.south,d.latLonBox.west),new google.maps.LatLng(d.latLonBox.north,d.latLonBox.east)))),st=a.getElementsByTagName("color"),d.opacity=st&&st.length&&st.length>0?geoXML3.getOpacity(dt(st[0])):.45,s.groundoverlays.push(d),!t.createOverlay){if(ft=!1,!!s&&(s.groundoverlays=s.groundoverlays||[],s.reload))for(overlayBounds=new google.maps.LatLngBounds(new google.maps.LatLng(d.latLonBox.south,d.latLonBox.west),new google.maps.LatLng(d.latLonBox.north,d.latLonBox.east)),g=s.groundoverlays,h=g.length;h--;)if(g[h].bounds().equals(overlayBounds)&&g.url_===d.icon.href){ft=g[h].active=!0;break}ft||(ii=w(d,s),ii.active=!0)}else t.createOverlay(d,s);if(!!s.reload&&!!s.groundoverlays&&!!s.groundoverlays.length){for(g=s.groundoverlays,h=g.length;h--;)g[h].active||(g[h].remove(),g.splice(h,1));s.groundoverlays=g}}for(ht=document.location.pathname.split("/"),ht=ht.splice(0,ht.length-1).join("/"),kt=n.getElementsByTagName("NetworkLink"),h=0;h<kt.length;h++)a=kt[h],v={name:geoXML3.nodeValue(a.getElementsByTagName("name")[0]),link:{href:geoXML3.nodeValue(a.getElementsByTagName("href")[0]),refreshMode:geoXML3.nodeValue(a.getElementsByTagName("refreshMode")[0])}},v.link.refreshMode===""&&(v.link.refreshMode="onChange"),v.link.refreshMode==="onInterval"?(v.link.refreshInterval=parseFloat(geoXML3.nodeValue(a.getElementsByTagName("refreshInterval")[0])),isNaN(v.link.refreshInterval)&&(v.link.refreshInterval=0)):v.link.refreshMode==="onChange"&&(v.link.viewRefreshMode=geoXML3.nodeValue(a.getElementsByTagName("viewRefreshMode")[0]),v.link.viewRefreshMode===""&&(v.link.viewRefreshMode="never"),v.link.viewRefreshMode==="onStop"&&(v.link.viewRefreshTime=geoXML3.nodeValue(a.getElementsByTagName("refreshMode")[0]),v.link.viewFormat=geoXML3.nodeValue(a.getElementsByTagName("refreshMode")[0]),v.link.viewFormat===""&&(v.link.viewFormat="BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]"))),/^[\/|http]/.test(v.link.href)||(v.link.href=ht+"/"+v.link.href),v.link.refreshMode==="onInterval"&&v.link.refreshInterval>0?setInterval(f+'.parse("'+v.link.href+'")',1e3*v.link.refreshInterval):v.link.refreshMode==="onChange"&&(v.link.viewRefreshMode==="never"?s.internals.parser.parse(v.link.href,s.internals.docSet):v.link.viewRefreshMode==="onStop")}else throw"geoXML3 internal error: render called with null document";else geoXML3.log("Unable to retrieve "+s.url),t.failedParse&&t.failedParse(s);if(!s.bounds||(s.internals.bounds=s.internals.bounds||new google.maps.LatLngBounds,s.internals.bounds.union(s.bounds)),!s.markers&&!s.groundoverlays&&!s.gpolylines&&!s.gpolygons||(s.internals.parseOnly=!1),s.internals.remaining-=1,s.internals.remaining===0&&(!t.zoom||!s.internals.bounds||s.internals.bounds.isEmpty()||!t.map||t.map.fitBounds(s.internals.bounds),t.afterParse&&t.afterParse(s.internals.docSet),!s.internals.parseOnly))for(h=0;h<s.internals.docSet.length;h++)i.push(s.internals.docSet[h])},h=function(n){var t={};return n?(aa=n.substr(0,2),bb=n.substr(2,2),gg=n.substr(4,2),rr=n.substr(6,2),t.color="#"+rr+gg+bb,t.opacity=parseInt(aa,16)/256):(t.color=it(),t.opacity=.45),t},it=function(){var t=Math.random()*8388607,n=t.toString(16);return"#"+n.substring(0,n.indexOf("."))},c=function(n){var i=new google.maps.Point(0,0),f,r;if(!!n.href){f=/\/(red|blue|green|yellow|lightblue|purple|pink|orange|pause|go|stop)(-dot)?\.png/,r=f.test(n.href)?new google.maps.Point(16*n.scale,32*n.scale):new google.maps.Point(16*n.scale,16*n.scale),n.icon=new google.maps.MarkerImage(n.href,new google.maps.Size(32*n.scale,32*n.scale),i,r,new google.maps.Size(32*n.scale,32*n.scale));var t=new google.maps.Size(59,32),u=new google.maps.Point(16,32);n.shadow=/\/(red|blue|green|yellow|lightblue|purple|pink|orange)(-dot)?\.png/.test(n.href)?new google.maps.MarkerImage("http://maps.google.com/mapfiles/ms/micons/msmarker.shadow.png",t,i,u,t):n.href.indexOf("-pushpin.png")>-1?new google.maps.MarkerImage("http://maps.google.com/mapfiles/ms/micons/pushpin_shadow.png",t,i,u,t):new google.maps.MarkerImage(n.href.replace(".png",".shadow.png"),t,i,u,t)}},y=function(n){for(var t in n.styles)c(n.styles[t])},p=function(n,i){var f=geoXML3.combineOptions(t.markerOptions,{map:t.map,position:new google.maps.LatLng(n.Point.coordinates[0].lat,n.Point.coordinates[0].lng),title:n.name,zIndex:Math.round(n.Point.coordinates[0].lat*-1e5)<<5,icon:n.style.icon,shadow:n.style.shadow}),r=new google.maps.Marker(f),u;return!i||i.markers.push(r),t.suppressInfoWindows||(u=geoXML3.combineOptions(t.infoWindowOptions,{content:'<div class="geoxml3_infowindow"><h3>'+n.name+"<\/h3><div>"+n.description+"<\/div><\/div>",pixelOffset:new google.maps.Size(0,2)}),r.infoWindow=t.infoWindow?t.infoWindow:new google.maps.InfoWindow(u),r.infoWindowOptions=u,google.maps.event.addListener(r,"click",function(){this.infoWindow.close(),r.infoWindow.setOptions(this.infoWindowOptions),this.infoWindow.open(this.map,this)})),n.marker=r,r},w=function(n,i){if(!window.ProjectedOverlay)throw"geoXML3 error: ProjectedOverlay not found while rendering GroundOverlay from KML";var u=new google.maps.LatLngBounds(new google.maps.LatLng(n.latLonBox.south,n.latLonBox.west),new google.maps.LatLng(n.latLonBox.north,n.latLonBox.east)),f=geoXML3.combineOptions(t.overlayOptions,{percentOpacity:n.opacity*100}),r=new ProjectedOverlay(t.map,n.icon.href,u,f);return!i||(i.ggroundoverlays=i.ggroundoverlays||[],i.ggroundoverlays.push(r)),r},b=function(n,i){for(var f=[],o,s,u,c,l,e=0;e<n.LineString.length;e++)for(o=n.LineString[e].coordinates,s=new google.maps.LatLngBounds,u=0;u<o.length;u++)c=new google.maps.LatLng(o[u].lat,o[u].lng),f.push(c),s.extend(c);var v=f[Math.floor(f.length/2)],a=h(n.style.color),y=geoXML3.combineOptions(t.polylineOptions,{map:t.map,path:f,strokeColor:a.color,strokeWeight:n.style.width,strokeOpacity:a.opacity,title:n.name}),r=new google.maps.Polyline(y);return r.bounds=s,t.suppressInfoWindows||(l=geoXML3.combineOptions(t.infoWindowOptions,{content:'<div class="geoxml3_infowindow"><h3>'+n.name+"<\/h3><div>"+n.description+"<\/div><\/div>",pixelOffset:new google.maps.Size(0,2)}),r.infoWindow=t.infoWindow?t.infoWindow:new google.maps.InfoWindow(l),r.infoWindowOptions=l,google.maps.event.addListener(r,"click",function(n){r.infoWindow.close(),r.infoWindow.setOptions(r.infoWindowOptions),n&&n.latLng?r.infoWindow.setPosition(n.latLng):r.infoWindow.setPosition(v),r.infoWindow.open(this.map)})),!i||i.gpolylines.push(r),n.polyline=r,r},k=function(n,i){for(var v=new google.maps.LatLngBounds,b=0,y=[],f,e,o,u,c,l,a,p,k,r,w,s=0;s<n.Polygon.length;s++){for(f=0;f<n.Polygon[s].outerBoundaryIs.length;f++){for(e=n.Polygon[s].outerBoundaryIs[f].coordinates,o=[],u=0;u<e.length;u++)c=new google.maps.LatLng(e[u].lat,e[u].lng),o.push(c),v.extend(c);y.push(o),b+=o.length}for(f=0;f<n.Polygon[s].innerBoundaryIs.length;f++){for(e=n.Polygon[s].innerBoundaryIs[f].coordinates,o=[],u=0;u<e.length;u++)c=new google.maps.LatLng(e[u].lat,e[u].lng),o.push(c),v.extend(c);y.push(o),b+=o.length}}return l=h(n.style.color),a=h(n.style.fillcolor),n.style.fill||(a.opacity=0),p=n.style.width,n.style.outline||(p=0,l.opacity=0),k=geoXML3.combineOptions(t.polygonOptions,{map:t.map,paths:y,title:n.name,strokeColor:l.color,strokeWeight:p,strokeOpacity:l.opacity,fillColor:a.color,fillOpacity:a.opacity}),r=new google.maps.Polygon(k),r.bounds=v,t.suppressInfoWindows||(w=geoXML3.combineOptions(t.infoWindowOptions,{content:'<div class="geoxml3_infowindow"><h3>'+n.name+"<\/h3><div>"+n.description+"<\/div><\/div>",pixelOffset:new google.maps.Size(0,2)}),r.infoWindow=t.infoWindow?t.infoWindow:new google.maps.InfoWindow(w),r.infoWindowOptions=w,google.maps.event.addListener(r,"click",function(n){r.infoWindow.close(),r.infoWindow.setOptions(r.infoWindowOptions),n&&n.latLng?r.infoWindow.setPosition(n.latLng):r.infoWindow.setPosition(r.bounds.getCenter()),r.infoWindow.open(this.map)})),!i||i.gpolygons.push(r),n.polygon=r,r};return{options:t,docs:i,parse:a,render:s,parseKmlString:l,hideDocument:g,showDocument:nt,processStyles:y,createMarker:p,createOverlay:w,createPolyline:b,createPolygon:k}},geoXML3.getOpacity=function(n){if(!n||n===""||n.length!=8)return 1;var t=parseInt(n.substr(0,2),16);return t/255},geoXML3.log=function(n){window.console?console.log(n):alert("log:"+n)},geoXML3.combineOptions=function(n,t){var r={},i;if(!!n)for(i in n)n.hasOwnProperty(i)&&(r[i]=n[i]);if(!!t)for(i in t)t.hasOwnProperty(i)&&r[i]===undefined&&(r[i]=t[i]);return r},geoXML3.fetchers=[],geoXML3.xmlParse=function(n){if(typeof ActiveXObject!="undefined"&&typeof GetObject!="undefined"){var t=new ActiveXObject("Microsoft.XMLDOM");return t.loadXML(n),t}return typeof DOMParser!="undefined"?(new DOMParser).parseFromString(n,"text/xml"):createElement("div",null)},geoXML3.fetchXML=function(n,t){function r(){t()}var i={};geoXML3.fetchers.length?i=geoXML3.fetchers.pop():window.XMLHttpRequest?i.fetcher=new window.XMLHttpRequest:!window.ActiveXObject||(i.fetcher=new window.ActiveXObject("Microsoft.XMLHTTP")),i.fetcher?(i.fetcher.overrideMimeType&&i.fetcher.overrideMimeType("text/xml"),i.fetcher.open("GET",n,!0),i.fetcher.onreadystatechange=function(){i.fetcher.readyState===4&&(!i.xhrtimeout||clearTimeout(i.xhrtimeout),i.fetcher.status>=400?(geoXML3.log("HTTP error "+i.fetcher.status+" retrieving "+n),t()):t(geoXML3.xmlParse(i.fetcher.responseText)),geoXML3.fetchers.push(i))},i.xhrtimeout=setTimeout(r,6e4),i.fetcher.send(null)):(geoXML3.log("Unable to create XHR object"),t(null))},geoXML3.nodeValue=function(n){var i="",t;if(!n)return"";if(n.nodeType==3||n.nodeType==4||n.nodeType==2)i+=n.nodeValue;else if(n.nodeType==1||n.nodeType==9||n.nodeType==11)for(t=0;t<n.childNodes.length;++t)i+=arguments.callee(n.childNodes[t]);return i}