// To use maps on your own site please visit: http://www.google.com/apis/maps/ function GMapsNamespace() { function cc(a, b, c) { this.type = a; this.version = b; this.os = c} ; browser = new cc(0, 0, null); var ta = navigator.userAgent.toLowerCase(); if(ta.indexOf("opera") !=- 1) { browser.type = 4; var Md = /opera.(\d+)/; browser.version = Md.exec(ta)[1]} else if(ta.indexOf("msie") !=- 1 && document.all) { browser.type = 1; if(ta.indexOf("msie 5")) { browser.version = 5} } else if(ta.indexOf("safari") !=- 1) { browser.type = 3} else if(ta.indexOf("mozilla") !=- 1) { browser.type = 2} if(ta.indexOf("x11;") !=- 1) { browser.os = 1} else if(ta.indexOf("macintosh") !=- 1) { browser.os = 2} ; var ha = Number.MAX_VALUE; function zd(a) { var b = []; var c = document.all ? document.all : document.getElementsByTagName("*"); for(var d = 0; d < c.length; d++) { if(c[d].className == a) { b.push(c[d])} } return b} function Aa(a, b, c) { var d = window.setTimeout(function() { b.apply(a)} , c); return d} function jb(a, b, c) { var d = window.setInterval(function() { b.apply(a)} , c); return d} function Qa(a) { return("" + a).replace(/&/g,"&").replace(//g,">")} function ud(a){a.length=0} function L(a,b){try{a.style.cursor=b}catch(c){if(b=="pointer"){L(a,"hand")}}} function B(a){if(browser.type==1){window.event.cancelBubble=true; window.event.returnValue = false} else { a.preventDefault(); a.stopPropagation()} } function mb(a) { if(browser.type == 1) { window.event.cancelBubble = true} else { a.stopPropagation()} } if(!Array.prototype.push) { Array.prototype.push = function(a) { this[this.length] = a} } function Mb(a) { return document.getElementById(a)} function n(a) { return Math.round(a) + "px"} function nb(a) { var b = { x : 0, y : 0} ; while(a) { b.x += a.offsetLeft; b.y += a.offsetTop; a = a.offsetParent} return b} function Oa(a, b, c) { if(typeof a.offsetX != "undefined") { var d = c || a.target || a.srcElement; var e = Nd(d, b); return new x(a.offsetX + e.x, a.offsetY + e.y)} else if(typeof a.pageX != "undefined") { var f = nb(b); return new x(a.pageX - f.x, a.pageY - f.y)} else { R.incompatible("dblclick"); return new x()} } function Nd(a, b) { var c = { x : 0, y : 0} ; while(a && a != b) { c.x += a.offsetLeft; c.y += a.offsetTop; a = a.offsetParent} return c} function _nullFunction() { } ; function qa() { } qa.create = function(a, b, c, d, e, f, g, h, i, l) { var m; i = i || document; if(!l) { m = i.createElement("img"); if(a) { m.src = a} } else { m = l(a, g, i)} if(b && c) { m.style.width = n(b); m.style.height = n(c); m.width = b; m.height = c} if(e || d || e == 0 || d == 0) { m.style.position = "absolute"; m.style.left = n(d); m.style.top = n(e)} if(f || f == 0) { m.style.zIndex = f} if(browser.type == 1) { m.unselectable = "on"; m.onselectstart = Vb} else { m.style.MozUserSelect = "none"} if(browser.type == 1) { m.galleryImg = "no"} m.style.border = "0"; m.style.padding = "0"; m.style.margin = "0"; m.oncontextmenu = B; if(h) { Pa(m, h)} return m} ; function q() { } q.create = function(a, b, c, d, e, f, g, h, i) { return qa.create(a, b, c, d, e, f, g, h, i, q.createElement)} ; q.createElement = function(a, b, c) { if(typeof arguments.callee.hasFilters == "undefined") { var d = document.createElement("div"); arguments.callee.hasFilters = typeof d.style.filter != "undefined"} var e; if(arguments.callee.hasFilters) { var f = c.PNG_cache; if(f && f.childNodes.length > 0) { e = f.removeChild(f.lastChild)} else { e = c.createElement("div"); e.style.fontSize = n(1); q.destroyBeforeUnload(e)} if(!e.loader) { e.loader = c.createElement("img"); e.loader.style.visibility = "hidden"; e.loader.onload = function() { if(!e.cleared) { e.style.filter = q.alphaImageLoader(this.src, this.ieCrop); e.src = a} } } } else { e = c.createElement("img")} q.setImage(e, a, b); return e} ; q.alphaImageLoader = function(a, b) { var c = "DXImageTransform.Microsoft.AlphaImageLoader"; var d = ",sizingMethod=" + (b ? "crop" : "scale"); return"progid:" + c + '(src="' + a + '"' + d + ")"} ; q.remove = function(a, b) { if(a.nodeName == "DIV") { if(!b.PNG_cache) { b.PNG_cache = b.createElement("div"); b.PNG_cache.style.display = "none"; b.body.appendChild(b.PNG_cache)} b.PNG_cache.appendChild(a); q.clearImage(a)} else { ua(a)} } ; q.setImage = function(a, b, c) { if(a.tagName == "DIV") { a.cleared = false; a.loader.ieCrop = c || false; a.loader.src = b} else { a.src = b} } ; q.clearImage = function(a, b) { if(a.tagName == "DIV") { a.cleared = true; a.style.filter = ""} else { a.src = b} } ; q.destroyBeforeUnload = function(a) { if(!q.cleanupQueue) { q.cleanupQueue = []; j.addBuiltInListener(window, "unload", q.onUnload)} q.cleanupQueue.push(a)} ; q.onUnload = function() { for(var a = 0; a < q.cleanupQueue.length; ++a) { q.destroyImage(q.cleanupQueue[a])} } ; q.destroyImage = function(a) { if(a.loader) { a.loader.onload = null; a.loader = null} } ; function j() { } j.addListener = function(a, b, c) { var d = j.getPropertyName(b); if(a[d]) { a[d].push(c)} else { a[d] = [c]} return new Y(a, d, c, false)} ; j.removeListener = function(a) { var b = a.instance[a.eventName]; for(var c = 0; c < b.length; c++) { if(b[c] == a.listenerFn) { b.splice(c, 1); a.unregister(); return} } } ; j.clearListeners = function(a, b) { var c = j.getPropertyName(b); a[c] = null} ; j.trigger = function(a, b) { var c = j.getPropertyName(b); var d = a[c]; if(d && d.length > 0) { var e = []; for(var f = 2; f < arguments.length; f++) { e.push(arguments[f])} for(var f = 0; f < d.length; f++) { var g = d[f]; if(g) { try { g.apply(a, e)} catch(h) { R.dump(h)} } } } } ; j.getPropertyName = function(a) { return"_e__" + a} ; j.addBuiltInListener = function(a, b, c) { if(!a) { return null} if(browser.type == 3 && b == "dblclick") { a["on" + b] = c; return new Y(a, b, c, true)} if(a.addEventListener) { a.addEventListener(b, c, false); return new Y(a, b, c, true)} else if(a.attachEvent) { var d = j.callback(a, c); a.attachEvent("on" + b, d); return new Y(a, b, d, true)} else { a["on" + b] = c; return new Y(a, b, c, true)} } ; j.removeBuiltInListener = function(a) { if(a.instance.removeEventListener) { a.instance.removeEventListener(a.eventName, a.listenerFn, false)} else if(a.instance.detachEvent) { a.instance.detachEvent("on" + a.eventName, a.listenerFn)} else { a.instance["on" + a.eventName] = null} a.unregister()} ; j.bindDom = function(a, b, c, d) { var e = j.createAdapter(c, d); return j.addBuiltInListener(a, b, e)} ; j.bindClick = function(a, b, c) { j.bindDom(a, "click", b, c); if(browser.type == 1) { j.bindDom(a, "dblclick", b, c)} } ; j.bind = function(a, b, c, d) { var e = j.callback(c, d); return j.addListener(a, b, e)} ; j.callback = function(a, b) { var c = function() { return b.apply(a, arguments)} ; return c} ; j.bindMethod = function(a, b, c, d) { var e = a[b] = function() { return d.apply(c, arguments)} ; return e} ; j.createAdapter = function(a, b) { return function(c) { if(!c) { c = window.event} if(c &&!c.target) { c.target = c.srcElement} b.call(a, c)} } ; j.detachAllEvents = function() { Y.detachAll()} ; function na(a) { this.prefix = a || "x"; this.context = { } ; this.installers = new T(); this.containers = []} na.prototype.addEvent = function(a) { var b; var c = this; var d = browser.type; if(a == "submit" && (d == 1 || d == 3)) { b = function(h) { c._traverse(h, "submit", false)} ; b.refreshOnLoad = true} else { var e = this.prefix + "on" + a; var f = function(h) { if(!h) { h = window.event} if(!h.target) { h.target = h.srcElement} for(var i = h.target; i != this; i = i.parentNode) { var l = i.getAttribute ? i.getAttribute(e) : null; if(l) { var m; with(c.context) { m = eval("x_ = function() {" + l + "}")} if(!m.call(i, h)) { B(h); return false} } } return true} ; b = function(h) { j.addBuiltInListener(h, a, f)} } this.installers.add(a, b); for(var g = 0; g < this.containers.length; ++g) { b.call(null, this.containers[g])} } ; na.prototype.addContext = function(a, b) { this.context[a] = b} ; na.prototype.hasContext = function(a) { return!(!this.context[a])} ; na.prototype.addContainer = function(a) { this.containers.push(a); this.installers.map(function(b, c) { c.call(null, a)} )} ; na.prototype.load = function(a) { this._traverse(a, "load", true); this.installers.map(function(b, c) { if(c.refreshOnLoad) { c.call(null, a)} } )} ; na.prototype.unload = function(a) { this._traverse(a, "unload", true)} ; na.prototype._traverse = function(a, b, c) { var d = this.prefix + "on" + b; var e = a.getAttribute(d); if(e) { var f; with(this.context) { f = eval("x_ = function() {" + e + "}")} if(c) { f.call(a)} else { j.addBuiltInListener(a, b, f)} } for(var g = 0; g < a.childNodes.length; ++g) { var h = a.childNodes[g]; if(h.nodeType == 1) { arguments.callee.call(this, h, b, c)} } } ; var ya = "__maps_events"; function Y(a, b, c, d) { this.instance = a; this.eventName = b; this.listenerFn = c; this.id = Y.sequence++; this.domEvent = d || false; if(a == window && b == "unload") { } else { Za().add(this.id, this); if(this.domEvent) { var e = a[ya]; if(!e) { e = (a[ya] = new T())} e.add(this.id, this)} } } Y.sequence = 1; var gb = null; function Za() { if(!gb) { var a = new T(); gb = a} return gb} Y.prototype.unregister = function() { if(this.id) { Za().remove(this.id); if(this.domEvent && this.instance[ya]) { this.instance[ya].remove(this.id)} this.instance = null; this.listenerFn = null} } ; Y.prototype.detach = function() { if(this.domEvent) { j.removeBuiltInListener(this)} else { j.removeListener(this)} } ; Y.detachNodeEvents = function(a) { var b; if(a[ya] && (b = a[ya])) { var c = b.items(); while(c.length) { c.pop().detach()} } } ; Y.detachAll = function() { var a = Za().items(); Za().clear(); while(a.length) { a.pop().detach()} } ; function T(a) { this.keys = []; if(a) { var b = a.length; for(var c = 0; c < b; ++c)this.add(a[c])} } T.prototype.size = function() { return this.keys.length} ; T.prototype.add = function(a, b) { var c = b || 1; if(!this.contains(a)) { this[":" + a] = c; this.keys.push(a)} } ; T.prototype.set = function(a, b) { var c = b || 1; if(!this.contains(a)) { this[":" + a] = c; this.keys.push(a)} else { this[":" + a] = c} } ; T.prototype.inc = function(a) { if(!this.contains(a)) { this[":" + a] = 1; this.keys.push(a)} else { this[":" + a]++} } ; T.prototype.get = function(a) { if(this.contains(a)) { return this[":" + a]} else { var b; return b} } ; T.prototype.remove = function(a) { if(this.contains(a)) { delete this[":" + a]; Od(this.keys, a, true)} } ; T.prototype.contains = function(a) { return typeof this[":" + a] != "undefined"} ; T.prototype.items = function() { var a = []; for(var b = 0; b < this.keys.length; ++b) { var c = this.keys[b]; var d = this[":" + c]; a.push(d)} return a} ; T.prototype.map = function(a) { for(var b = 0; b < this.keys.length; ++b) { var c = this.keys[b]; a.call(this, c, this[":" + c])} } ; T.prototype.clear = function() { for(var a = 0; a < this.keys.length; ++a) { delete this[":" + this.keys[a]]} this.keys.length = 0} ; function Vb() { return false} function Od(a, b, c) { var d = 0; for(var e = 0; e < a.length; ++e) { if(a[e] === b || c && a[e] == b) { a.splice(e--, 1); d++} } return d} function Lb(a) { return a.replace(/-(\w)/g,function(b,c){return(""+c).toUpperCase()} )} function vd(a,b){R.write("get property "+b+" on "+a.nodeName); var c = a.ownerDocument; if(a.currentStyle) { var d = Lb(b); return a.currentStyle[d]} else if(c.defaultView && c.defaultView.getComputedStyle) { return c.defaultView.getComputedStyle(a, "").getPropertyValue(b)} else { var d = Lb(b); return a.style[d]} } ; function aa(a, b, c, d) { this.src = a; this.container = d; this.disabled = false; this.dragPoint = new x(0, 0); this.dragging = false; this.clickStartPos = new x(0, 0); this.src.style.position = "absolute"; this.moveTo(b != null ? b : a.offsetLeft, c != null ? c : a.offsetTop); this.mouseDownHandler = j.createAdapter(this, this.onMouseDown); this.mouseMoveHandler = j.createAdapter(this, this.onMouseMove); this.mouseUpHandler = j.createAdapter(this, this.onMouseUp); if(browser.type == 2) { j.bindDom(window, "mouseout", this, this.onWindowMouseOut)} this.eventSrc = this.src.setCapture ? this.src : window; j.addBuiltInListener(this.src, "mousedown", this.mouseDownHandler); j.bindDom(this.src, "mouseup", this, this.onDisabledMouseUp); j.bindDom(this.src, "click", this, this.onDisabledClick)} aa.prototype.moveTo = function(a, b) { a = Math.round(a); b = Math.round(b); if(this.left != a || this.top != b) { this.left = a; this.top = b; this.src.style.left = this.left + "px"; this.src.style.top = this.top + "px"; j.trigger(this, "move")} } ; aa.prototype.onDisabledClick = function(a) { if(this.disabled) { j.trigger(this, "click", a)} } ; aa.prototype.onDisabledMouseUp = function(a) { if(this.disabled) { j.trigger(this, "mouseup", a)} } ; aa.prototype.onMouseDown = function(a) { j.trigger(this, "mousedown", a); if(a.cancelDrag) { return} var b = a.button == 0 || a.button == 1; if(this.disabled ||!b) { B(a); return false} this.dragPoint.x = a.clientX; this.dragPoint.y = a.clientY; this.dragging = true; this.mouseMoveListener = j.addBuiltInListener(this.eventSrc, "mousemove", this.mouseMoveHandler); this.mouseUpListener = j.addBuiltInListener(this.eventSrc, "mouseup", this.mouseUpHandler); if(this.src.setCapture) { this.src.setCapture()} this.clickStartTime = (new Date()).getTime(); this.clickStartPos.x = a.clientX; this.clickStartPos.y = a.clientY; j.trigger(this, "dragstart"); this.originalCursor = this.src.style.cursor; L(this.src, "move"); B(a)} ; aa.delayedMouseMove = function() { this.dragDisabled = false; this.onMouseMove(this.savedMove)} ; aa.prototype.onMouseMove = function(a) { if(browser.os == 1) { if(a == null) { return} if(this.dragDisabled) { this.savedMove = new Object(); this.savedMove.clientX = a.clientX; this.savedMove.clientY = a.clientY; return} Aa(this, aa.delayedMouseMove, 30); this.dragDisabled = true; this.savedMove = null} var b = this.left + (a.clientX - this.dragPoint.x); var c = this.top + (a.clientY - this.dragPoint.y); var d = 0; var e = 0; if(this.container) { var f = b; if(b < this.container.minX) { f = this.container.minX} else { var g = this.container.maxX - this.src.offsetWidth; if(b > g) { f = g} } d = f - b; b = f; var h = c; if(c < this.container.minY) { h = this.container.minY} else { var i = this.container.maxY - this.src.offsetHeight; if(c > i)h = i} e = h - c; c = h} this.moveTo(b, c); this.dragPoint.x = a.clientX + d; this.dragPoint.y = a.clientY + e; j.trigger(this, "drag")} ; aa.prototype.onMouseUp = function(a) { j.trigger(this, "mouseup", a); j.removeBuiltInListener(this.mouseMoveListener); j.removeBuiltInListener(this.mouseUpListener); this.dragging = false; L(this.src, this.originalCursor); if(document.releaseCapture) { document.releaseCapture()} j.trigger(this, "dragend"); var b = (new Date()).getTime(); if(b - this.clickStartTime <= 500 && Math.abs(this.clickStartPos.x - a.clientX) <= 2 && Math.abs(this.clickStartPos.y - a.clientY) <= 2) { j.trigger(this, "click", a)} } ; aa.prototype.onWindowMouseOut = function(a) { if(!a.relatedTarget && this.dragging) { this.onMouseUp(a)} } ; aa.prototype.disable = function() { this.disabled = true} ; aa.prototype.enable = function() { this.disabled = false} ; var s = window._mStaticPath; var fb = "http://local." + window._mDomain; var La = s + "transparent.gif"; var td = fb + "/mapprint"; var Wa = "iwstate1"; var Ka = "iwstate2"; var Xa = ["q", "ll", "sll", "spn", "sspn", "vp", "z", "t", "output", "deb", "f", "file", "saddr", "daddr", "near", "stat_m", "key", "cid", "num", "start", "iwloc", Wa, Ka]; function v() { this.args = new Object(); this.reset()} v.prototype.setValue = function(a, b) { this.args[a] = b} ; v.prototype.setQueryValue = function(a, b) { var c = b.replace(/^\s*|\s*$/g,""); this.setValue(a, c)} ; v.prototype.setAllMapValues = function(a) { this.setValue("ll", this.getLatLngArg(a.getCenterLatLng())); this.setValue("spn", this.getSpanArg(a.getSpanLatLng())); this.setValue("z", a.zoomLevel); this.setValue("t", a.spec.getURLArg())} ; v.prototype.getLatLngArg = function(a) { return ab(a.y) + "," + ab(a.x)} ; v.prototype.getSpanArg = function(a) { return ab(a.height) + "," + ab(a.width)} ; v.prototype.reset = function() { for(var a = 0; a < Xa.length; a++) { this.args[Xa[a]] = null} } ; v.prototype.getURL = function(a, b, c) { var d = []; for(var e = 0; e < Xa.length; e++) { var f = Xa[e]; if(this.args[f]) { d.push(f + "=" + v.beautify(encodeURIComponent(this.args[f])))} } if(window._sf && window._sf.length > 0) { d.push(window._sf)} var g; if(c) { g = c} else if(window.location.pathname == "/local") { g = "/local"} else { g = "/maps"} if(d.length > 0) { g += "?" + d.join("&")} if(a) { var h; if(b) { h = "http://" + window.location.host} else { h = fb} g = h + g} return g} ; v.beautify = function(a) { return a.replace(/%20/g,"+").replace(/%2C/gi,",")} ; v.debeautify = function(a) { return a.replace(/\+/g," ")} ; v.getFileURL = function(a) { var b = new v(); b.setValue("file", a); return b.getURL()} ; v.getPrintImageUrl = function(a) { var b = a.map.getCenterLatLng(); var c = a.map; var d = { x : c.viewSize.width, y : c.viewSize.height} ; var e = { x : c.centerBitmap.x - d.x / 2, y : c.centerBitmap.y - d.y / 2} ; var f = c.zoomLevel; while(d.x * d.y > 480000) { var g = a.map.spec.zoomBitmapCoord(f + 1, f, e); var h = a.map.spec.zoomBitmapCoord(f + 1, f, d); f = f + 1; e = g; d = h} var i = "c=" + Math.floor(b.x * 1000000); i += "," + Math.floor(b.y * 1000000); i += "&r=" + d.x; i += "," + d.y; i += "&z=" + f; if(a.vpage.overlays.length > 0) { var l = a.vpage.overlays[0].markers; for(var m = 0; m < l.length; ++m) { var r = l[m]; if(!r.point) { continue} var p = r.point; var y = this.printIconId(r.id); i += this.locationAsUrlParam(p.x, p.y, y)} } i += this.directionsAsUrlParam(a, f, e); return td + "?" + i} ; v.printIconId = function(a) { var b = { A : 17, B : 18, C : 19, D : 20, E : 21, F : 22, G : 23, H : 24, I : 25, J : 26} ; var c = b[a] || 16; return c} ; v.locationAsUrlParam = function(a, b, c) { var d = ""; d += "&l=" + Math.floor(a * 1000000); d += "," + Math.floor(b * 1000000); d += "," + c; return d} ; v.directionsAsUrlParam = function(a, b, c) { var d = a.vpage.directions; if(!d) { return""} var e = d.polyline; var f = a.map; var g = f.getBoundsLatLng(); var h; var i = e.getDrawingTolerance(); do { var l = e.getVectors(g, i); var m = []; var r = new E(); e.getBitmapVectors(l, m, r, b); h = e.getEncodedImageSource(m, c.x, c.y); ++i} while(h.length > 900); var p = "&p=" + h; var y = e.getPoint(0); var D = (e.points.length >> 1) - 1; var P = e.getPoint(D); p += this.locationAsUrlParam(y.x, y.y, 31); p += this.locationAsUrlParam(P.x, P.y, 32); return p} ; v.getTileBaseUrlArray = function(a, b, c, d) { var e = v.getTileBaseUrl(a, b, d); var f = []; if(c == 0) { f.push(lb(e, ""))} else { for(var g = 0; g < c; g++) { f.push(lb(e, g.toString()))} } return f} ; v.getTileBaseUrl = function(a, b, c) { if(!a || typeof a != "string") { a = null} if(!b || typeof b != "string") { b = null} var d = a || b; if(d.indexOf("?") ==- 1) { d += "?"} else { d += "&"} if(c) { d += "v=" + encodeURIComponent(c) + "&"} d += browser.type == 3 ? "n=png&" : "n=404&"; return d} ; v.encodeMap = function(a) { if(!a) { return""} var b = []; for(var c in a) { b.push(c + ":" + a[c])} return b.join(",")} ; v.decodeMap = function(a) { if(!a) { return { } } var b = a.split(","); var c = { } ; for(var d = 0; d < b.length; ++d) { var e = b[d].indexOf(":"); if(e < 1) { continue} var f = b[d].substr(0, e); var g = b[d].substr(e + 1); c[f] = g} return c} ; v.setUrlParameter = function(a, b, c) { var d = b + "=" + v.beautify(encodeURIComponent(c)); var e = new RegExp("\\b" + b + "=[^&]*"); if(e.test(a)) { a = a.replace(e, d)} else if(a.indexOf("?") ==- 1) { a += "?" + d} else if(a.indexOf("?") == a.length - 1) { a += d} else { a += "&" + d} return a} ; v.removeUrlParameter = function(a, b) { var c = new RegExp("&?\\b" + b + "=[^&]*"); if(c.test(a)) { a = a.replace(c, "")} a = a.replace(/\?&/,"?"); if(a.indexOf("?") == a.length - 1) { a = a.substr(0, a.length - 1)} return a} ; v.getUrlParameter = function(a, b) { var c = new RegExp("&?\\b" + b + "=([^&]*)"); var d = ""; if(c.test(a)) { var e = c.exec(a); d = decodeURIComponent(v.debeautify(e[1]))} return d} ; function ab(a) { if(a.toFixed) { return a.toFixed(6).toString()} else { var b = Math.round(a * 1000000)/1000000; return b.toString()} } ; var Ba = new T(); function ja(a, b) { this.id = a; this.ticketClass = b} ja.create = function(a) { if(!a) { a = "_dtc"} Ba.inc(a); return new ja(Ba.get(a), a)} ; ja.invalidateAll = function() { Ba.map(function(a) { this.inc(a)} )} ; ja.invalidate = function(a) { Ba.inc(a)} ; ja.prototype.isValid = function() { return Ba.get(this.ticketClass) == this.id} ; function Ya() { } Ya.create = function() { if(typeof ActiveXObject != "undefined") { try { return new ActiveXObject("Microsoft.XMLHTTP")} catch(a) { } } if(typeof XMLHttpRequest != "undefined") { return new XMLHttpRequest()} return null} ; function xa() { } xa.create = function(a, b, c) { var d = Ya.create(); if(d) { return new Db(d, c)} else if(b) { var e = "mapsxmlhttpiframe" + (a || ""); return new ub(e)} else { return null} } ; function Db(a, b) { this.xmlhttp = a; this.nocache = b || false} Db.prototype.continueWith = function(a, b) { R.writeURL(a); var c = this.xmlhttp; c.open("GET", a, true); c.onreadystatechange = function() { if(c.readyState == 4) { b(c.responseText); c.onreadystatechange = _nullFunction} } ; if(this.nocache) { c.setRequestHeader("Cache-Control", "no-cache"); c.setRequestHeader("Pragma", "no-cache")} c.send(null)} ; var Rc = "/maps?file=sf" + (window._sf ? "&" + window._sf : ""); function ub(a) { this.frameid = a} ub.prototype.continueWith = function(a, b) { R.writeURL(a); var c = window.document.getElementById(this.frameid); if(!c) { c = Kb(this.frameid)} j.addBuiltInListener(c, "load", function() { var f = Ob(c); b(f.jsfile)} ); var d = a + "&wrap=js"; var e = Ob(c); e.location.replace(d)} ; function W(a) { this.stylesheet = a} var Jb = { } ; W.create = function(a) { return new W(a)} ; W.getCached = function(a) { return Jb[a]} ; W.cache = function(a, b) { Jb[a] = b} ; W.prototype.transformToHtml = function(a, b) { if(!Nb && typeof a.transformNode != "undefined") { ka(b, a.transformNode(this.stylesheet))} else if(!Nb && typeof XSLTProcessor != "undefined" && typeof XSLTProcessor.prototype.importStylesheet != "undefined") { var c = new XSLTProcessor(); c.importStylesheet(this.stylesheet); var d = c.transformToFragment(a, window.document); la(b); if(b.parentNode) { b.appendChild(d)} else { var e = b.style.display; b.style.display = "none"; document.body.appendChild(b); b.appendChild(d); document.body.removeChild(b); b.style.display = e} } else { var f = ""; ka(b, f)} Wd(b); Td(b, 20)} ; W.asynchronousTransform = function(a, b, c, d, e) { if((yd || browser.type == 3) && W.scriptedTransform) { var f = function() { W.scriptedTransform(a, b, c); if(d) { d()} } ; if(!document.getElementById("nxsl")) { var g = Kb("nxsl"); j.addBuiltInListener(g, "load", f); g.src = Rc} else { window.setTimeout(f, 1)} return} var h = W.getCached(c); if(h) { window.setTimeout(function() { h.transformToHtml(a, b); if(d) { d()} } , 1)} else { var i = ja.create(e); var l = xa.create(e, true); l.continueWith(c, function(m) { if(i.isValid()) { var r = m.replace(/\{\{[#\/!].*?\}\}/g,"").replace(/^[^<]*/,"");var p=kb(r);var y=W.create(p);y.transformToHtml(a,b);W.cache(c,y);if(d){d()}}} )}} ; function kb(a) { try { if(typeof ActiveXObject != "undefined" && typeof GetObject != "undefined") { var b = new ActiveXObject("Microsoft.XMLDOM"); b.loadXML(a); return b} else if(typeof DOMParser != "undefined") { return(new DOMParser()).parseFromString(a, "text/xml")} else { return Yb(a)} } catch(c) { R.incompatible("xmlparse")} try { return Yb(a)} catch(c) { R.incompatible("xmlparse"); return document.createElement("div")} } function Pb(a) { var b = ""; if(a.nodeName == "#text") { b += Qa(a.nodeValue)} else { b += "<" + a.nodeName; if(a.hasAttributes()) { for(var c = 0; c < a.attributes.length; ++c) { b += " " + a.attributes[c].nodeName + '="' + Qa(a.attributes[c].nodeValue).replace(/\"/g,""")+'"'}}if(a.childNodes.length==0){b+="/> "}else{b+=" > ";for(var c=0;c 0) { return null} var b = null; for(var c = 0; c < a.childNodes.length; ++c) { var d = a.childNodes[c]; if(d.nodeType == 1) { return null} if(d.nodeType == 3 &&!d.nodeValue.match(/^\s*$/)){if(!b){b=d}else{return null}}}return b} function Td(a,b){var c=new RegExp("(\\S{"+b+"})"); Ud(a, c)} function Ud(a, b) { for(var c = a.firstChild; c; c = c.nextSibling) { if(c.nodeType == 1) { arguments.callee.call(this, c, b)} else if(c.nodeType == 3) { for(var d = b.exec(c.nodeValue); d; d = b.exec(c.nodeValue)) { var e = c.nodeValue.substr(0, d.index + d[0].length); var f = document.createTextNode(e); var g = document.createElement("span"); g.appendChild(document.createTextNode(" ")); g.style.fontSize = "0px"; c.parentNode.insertBefore(f, c); c.parentNode.insertBefore(g, c); c.nodeValue = c.nodeValue.substr(e.length)} } } } function Na() { } Na.value = $; Na.parse = kb; function ac(a, b) { for(var c in b) { a.setAttribute(c, b[c])} } function Zb(a, b) { for(var c in b) { a.removeAttribute(c)} } function Wd(a) { var b = a.getAttribute("format"); if(b && window[b]) { var c = [window[b]]; for(var d = a.firstChild; d; d = d.nextSibling) { if(d.nodeType == 1) { c.push(Qa($(d)))} } if(c.length == 1) { c.push(Qa($(a)))} var e = lb.apply(this, c); ka(a, e)} else { for(var f = a.firstChild; f; f = f.nextSibling) { if(f.nodeType == 1) { arguments.callee.call(this, f)} } } } function $b(a) { Y.detachNodeEvents(a); var b = a.childNodes; for(var c = 0; c < b.length; ++c) { arguments.callee(b[c])} } function la(a) { var b; while(b = a.firstChild) { $b(b); a.removeChild(b)} } function ka(a, b) { if(a.innerHTML != b) { la(a); a.innerHTML = b} } function ua(a) { if(a && a.parentNode) { a.parentNode.removeChild(a); $b(a)} } ; function x(a, b) { this.x = a; this.y = b} x.prototype.toString = function() { return"(" + this.x + ", " + this.y + ")"} ; x.prototype.equals = function(a) { if(!a)return false; return this.x == a.x && this.y == a.y} ; x.prototype.distanceFrom = function(a) { var b = this.x - a.x; var c = this.y - a.y; return Math.sqrt(b * b + c * c)} ; x.prototype.approxEquals = function(a) { if(!a)return false; return $a(this.x, a.x) && $a(this.y, a.y)} ; function I(a, b) { this.width = a; this.height = b} I.prototype.toString = function() { return"(" + this.width + ", " + this.height + ")"} ; I.prototype.equals = function(a) { if(!a)return false; return this.width == a.width && this.height == a.height} ; I.prototype.approxEquals = function(a) { if(!a)return false; return $a(this.width, a.width) && $a(this.height, a.height)} ; function $a(a, b) { return Math.round(a * 1000000) == Math.round(b * 1000000)} function E(a, b, c, d) { this.minX = a; this.minY = b; this.maxX = c; this.maxY = d} E.prototype.toString = function() { return"Bounds(" + this.minX + "," + this.minY + "," + this.maxX + "," + this.maxY + ")"} ; E.prototype.intersectsLatLng = function(a) { var b = this.minX > this.maxX ? this.minX - 360 : this.minX; var c = a.minX > a.maxX ? a.minX - 360 : a.minX; if(c > this.maxX || a.minY > this.maxY || a.maxX < b || a.maxY < this.minY) { return false} return true} ; E.prototype.scaleLatLng = function(a, b, c) { var d = b.getBitmapCoordinate(this.minX, this.minY, c); var e = b.getBitmapCoordinate(this.maxX, this.maxY, c); var f = (e.x - d.x)/2; var g = (e.y - d.y)/2; var h = b.getLatLng(d.x - (a - 1) * f, d.y - (a - 1) * g, c); var i = b.getLatLng(e.x + (a - 1) * f, e.y + (a - 1) * g, c); return new E(h.x, h.y, i.x, i.y)} ; E.prototype.containsSegment = function(a, b) { if(this.minX > a.x && this.minX > b.x)return false; if(this.maxX < a.x && this.maxX < b.x)return false; if(this.minY > a.y && this.minY > b.y)return false; if(this.maxY < a.y && this.maxY < b.y)return false; return true} ; E.prototype.containsBounds = function(a) { return this.minX < a.minX && this.maxX > a.maxX && this.minY < a.minY && this.maxY > a.maxY} ; E.prototype.extend = function(a) { this.minX = Math.min(this.minX, a.x); this.maxX = Math.max(this.maxX, a.x); this.minY = Math.min(this.minY, a.y); this.maxY = Math.max(this.maxY, a.y)} ; E.intersection = function(a, b) { return new E(Math.max(a.minX, b.minX), Math.max(a.minY, b.minY), Math.min(a.maxX, b.maxX), Math.min(a.maxY, b.maxY))} ; function Ga(a) { this.ticks = a; this.tick = 0} Ga.prototype.reset = function() { this.tick = 0} ; Ga.prototype.next = function() { this.tick++; var a = Math.PI * (this.tick / this.ticks - 0.5); return(Math.sin(a) + 1)/2} ; Ga.prototype.more = function() { return this.tick < this.ticks} ; var Fb = Math.PI / 180; var md = 2 * Math.PI; function bb(a) { return a * Fb} ; function Rb(a) { var b = new x(0, 0); b.x = bb(a.x); b.y = bb(a.y); return b} function Bd(a, b) { var c = Rb(a); var d = Rb(b); var e = Cd(c, d); return 6378137 * e} function Cd(a, b) { var c = a.y; var d = a.x; var e = b.y; var f = b.x; var g = c - e; var h = d - f; var i = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(g / 2), 2) + Math.cos(c) * Math.cos(e) * Math.pow(Math.sin(h / 2), 2))); return i} ; function o(a, b, c, d, e) { this.container = a; this.ownerDocument = a.ownerDocument || document; if(!b || b.length == 0) { this.mapTypes = window.createMapSpecs()} else { this.mapTypes = b} this.enableInfoWindow(); this.zoomLevel = 0; this.topLeftTile = null; this.currentPanOffset = new I(0, 0); this.centerBitmap = new x(0, 0); this.centerScreen = new x(0.5, 0.5); this.lastCenterScreen = new x(0.5, 0.5); this.tilePaddingOffset = new I(0, 0); this.tableSize = new I(0, 0); this.overlays = []; this.overlays.sorted = false; this.controls = []; this.panDistance = new I(0, 0); this.panKeys = new T(); this.stateMonitor = null; this.mapBlowupZoom = 1; this.mapBlowupSpec = null; this.container.style.overflow = "hidden"; if(vd(this.container, "position") != "absolute") { this.container.style.position = "relative"} if(!c ||!d) { c = this.container.offsetWidth; d = this.container.offsetHeight} this.viewSize = new I(c, d); j.bindDom(window, "blur", this, this.onWindowBlur); this.div = this.createPane(0); this.container.appendChild(this.div); this.mapPane = this.createPane(10); this.div.appendChild(this.mapPane); this.markerShadowPane = this.createPane(20); this.div.appendChild(this.markerShadowPane); this.mapMouseTargetPane = this.createPane(30); this.div.appendChild(this.mapMouseTargetPane); this.markerPane = this.createPane(40); this.div.appendChild(this.markerPane); this.floatShadowPane = this.createPane(50); this.div.appendChild(this.floatShadowPane); this.infoWindowShadowPane = this.createPane(50); this.div.appendChild(this.infoWindowShadowPane); this.markerMouseTargetPane = this.createPane(60); this.div.appendChild(this.markerMouseTargetPane); this.infoWindowPane = this.createPane(70); this.div.appendChild(this.infoWindowPane); this.floatPane = this.createPane(80); this.div.appendChild(this.floatPane); this.floatMouseTargetPane = this.createPane(90); this.div.appendChild(this.floatMouseTargetPane); this.dragObject = new aa(this.div, 0, 0); j.bind(this.dragObject, "drag", this, this.onDrag); j.bind(this.dragObject, "dragend", this, this.onDragEnd); j.bind(this.dragObject, "dragstart", this, this.onDragStart); j.bind(this.dragObject, "click", this, this.onClick); j.bind(this.dragObject, "mousedown", this, this.onMouseDown); j.bind(this.dragObject, "mouseup", this, this.onMouseUp); j.bindDom(this.div, "dblclick", this, this.onDoubleClick); this.setSpecification(this.mapTypes[0]); this.initializeMap(); if(!e) { this.addControl(new wa(true, false)); this.addControl(new Ta())} j.bind(this, "moveend", this, this.checkLongitudeWrapping); j.bind(this, "moveend", this, this.resetCenterScreen); j.bind(this, "moveend", this, this.checkMapTypeBounds)} o.prototype.enableDragging = function() { this.dragObject.enable()} ; o.prototype.disableDragging = function() { this.dragObject.disable()} ; o.prototype.draggingEnabled = function() { return!this.dragObject.disabled} ; o.prototype.enableInfoWindow = function() { this.iwEnabled = true} ; o.prototype.disableInfoWindow = function() { this.iwEnabled = false; if(this.infoWindow) { this.closeInfoWindow(); this.infoWindow = null} } ; o.prototype.infoWindowEnabled = function() { return this.iwEnabled} ; o.prototype.getInfoWindowOffScreen = function(a) { this.createInfoWindow(); var b = this.ownerDocument.createElement(a); this.infoWindow.clearOffscreenArea(); this.infoWindow.offscreenArea.appendChild(b); return b} ; o.prototype.createInfoWindow = function() { if(!this.infoWindow) { this.infoWindow = new A(this.infoWindowPane, this.infoWindowShadowPane); j.bind(this.infoWindow, "closeclick", this, this.onInfoCloseClick)} } ; o.prototype.getInfoWindow = function() { this.createInfoWindow(); return this.infoWindow} ; o.prototype.getMapTypes = function() { return this.mapTypes} ; o.prototype.getCurrentMapType = function() { return this.spec} ; o.prototype.setMapType = function(a) { this.switchSpecification(a)} ; o.prototype.isLoaded = function() { return this.topLeftTile != null} ; o.prototype.createPane = function(a) { var b = this.ownerDocument.createElement("div"); b.style.position = "absolute"; b.style.top = n(0); b.style.left = n(0); b.style.zIndex = a; return b} ; o.prototype.getHl = function() { if(window._sf) { var a = window._sf.split(/&/); for(var b = 0; b < a.length; ++b) { var c = a[b].split(/=/); if(c[0] == "hl")return decodeURIComponent(c[1])} return"en"} } ; o.prototype.loadTileImages = function() { if(this.spec.hasOverlay()) { this.loadTileImagesLayer(this.overlayImages, true)} this.loadTileImagesLayer(this.tileImages, false)} ; o.prototype.createErrorTile = function() { var a = this.ownerDocument.createElement("div"); a.div = this.ownerDocument.createElement("div"); this.div.appendChild(a); a.appendChild(a.div); this.applyControlStyles(a); a.style.width = n(this.spec.tileSize); a.style.height = n(this.spec.tileSize); a.style.textAlign = "center"; return a} ; o.prototype.loadTileImagesLayer = function(a, b) { while(a.length > this.tableSize.width) { var c = a.pop(); for(var d = 0; d < c.length; d++) { this.removeTileImage(c[d])} } for(var d = a.length; d < this.tableSize.width; d++) { a.push([])} for(var d = 0; d < a.length; d++) { while(a[d].length > this.tableSize.height) { var e = a[d].pop(); this.removeTileImage(e)} for(var f = a[d].length; f < this.tableSize.height; f++) { if(b) { e = q.create(null, this.spec.tileSize, this.spec.tileSize, null, null, 1, null, null, this.ownerDocument)} else { e = qa.create(null, this.spec.tileSize, this.spec.tileSize, null, null, 0, null, null, this.ownerDocument)} e.style.position = "absolute"; if(!b && this.spec.hasOverlay()) { e.overlayImage = this.overlayImages[d][f]} if(b) { e.onerror = function() { this.style.display = "none"} } else { e.map = this; e.onerror = function() { this.style.display = "none"; if(this.overlayImage) { this.overlayImage.style.display = "none"} if(!this.errorTile) { this.errorTile = this.map.createErrorTile()} this.errorTile.style.display = ""; this.errorTile.style.top = this.style.top; this.errorTile.style.left = this.style.left; this.errorTile.div.style.padding = this.map.spec.errorTileMargin; ka(this.errorTile.div, this.map.spec.errorTileMessage)} } a[d].push(e); this.div.appendChild(e); this.configureImage(e, d, f, b)} } } ; o.prototype.deleteTiles = function() { this.removeTilesFromDiv(this.tileImages); this.tileImages = null; if(this.overlayImages) { this.removeTilesFromDiv(this.overlayImages); this.overlayImages = null} } ; o.prototype.removeTileImage = function(a) { q.remove(a, this.ownerDocument); if(a.errorTile) { q.remove(a.errorTile, this.ownerDocument); a.errorTile = null} a.onerror = null} ; o.prototype.removeTilesFromDiv = function(a) { if(a) { for(var b = 0; b < a.length; b++) { if(a[b]) { for(var c = 0; c < a[b].length; c++) { this.removeTileImage(a[b][c])} } } } } ; o.prototype.initializeMap = function() { this.deleteTiles(); this.tileImages = []; this.overlayImages = []; this.calculateTileMeasurements(); this.loadTileImages()} ; o.prototype.getSpanLatLng = function(a) { if(!a)a = new I(0, 0); var b = this.spec.getLatLng(this.centerBitmap.x - this.viewSize.width * this.centerScreen.x, this.centerBitmap.y - this.viewSize.height * this.centerScreen.y, this.zoomLevel); var c = this.spec.getLatLng(this.centerBitmap.x + this.viewSize.width * (1 - this.centerScreen.x), this.centerBitmap.y + this.viewSize.height * (1 - this.centerScreen.y), this.zoomLevel); a.width = Math.abs(c.x - b.x); a.height = Math.abs(c.y - b.y); return a} ; o.prototype.getZoomLevel = function() { return this.zoomLevel} ; o.prototype.getCenterBitmap = function() { return this.centerBitmap} ; o.prototype.getCenterLatLng = function(a) { if(!a)a = new x(0, 0); if(this.centerLatLng) { a.x = this.centerLatLng.x; a.y = this.centerLatLng.y} else { var b = null; if(this.lastLatLng && this.centerScreen.equals(this.lastCenterScreen)) { b = this.spec.getBitmapCoordinate(this.lastLatLng.y, this.lastLatLng.x, this.zoomLevel)} if(b && b.equals(this.centerBitmap)) { a.x = this.lastLatLng.x; a.y = this.lastLatLng.y} else { var c = this.spec.getLatLng(this.centerBitmap.x, this.centerBitmap.y, this.zoomLevel); a.x = c.x - Math.floor((c.x + 180)/360)*360; a.y = c.y} } return a} ; o.prototype.getBoundsBitmap = function(a) { if(!a) { a = new E(0, 0, 0, 0)} var b = this.centerBitmap.x; var c = this.centerBitmap.y; var d = this.viewSize.width; var e = this.viewSize.height; var f = this.centerScreen.x; var g = this.centerScreen.y; a.minX = b - d * f; a.minY = c - e * g; a.maxX = b + d * (1 - f); a.maxY = c + e * (1 - g); return a} ; o.prototype.getBoundsLatLng = function(a) { a = this.getBoundsBitmap(a); var b = this.spec.getLatLng(a.minX, a.minY, this.zoomLevel); var c = this.spec.getLatLng(a.maxX, a.maxY, this.zoomLevel); a.minX = b.x; a.minY = c.y; a.maxX = c.x; a.maxY = b.y; return a} ; o.prototype.getDivCoordinate = function(a, b, c) { if(!c)c = new x(0, 0); var d = a - this.topLeftTile.x * this.spec.tileSize - this.tilePaddingOffset.width + this.currentPanOffset.width * this.spec.tileSize; var e = b - this.topLeftTile.y * this.spec.tileSize - this.tilePaddingOffset.height + this.currentPanOffset.height * this.spec.tileSize; c.x = d; c.y = e; return c} ; o.prototype.containerCoordToLatLng = function(a) { return this.spec.getLatLng(this.centerBitmap.x - this.viewSize.width * this.centerScreen.x + a.x, this.centerBitmap.y - this.viewSize.height * this.centerScreen.y + a.y, this.zoomLevel)} ; o.prototype.calculateTileMeasurements = function() { var a = Math.ceil(this.viewSize.width / this.spec.tileSize) + 2; var b = Math.ceil(this.viewSize.height / this.spec.tileSize) + 2; this.tableSize.width = a; this.tableSize.height = b; var c = Math.round((this.tableSize.width * this.spec.tileSize - this.viewSize.width)/2); var d = Math.round((this.tableSize.height * this.spec.tileSize - this.viewSize.height)/2); this.tilePaddingOffset.width = c; this.tilePaddingOffset.height = d} ; o.prototype.configureImage = function(a, b, c, d) { var e = (this.currentPanOffset.width + b) * this.spec.tileSize; var f = (this.currentPanOffset.height + c) * this.spec.tileSize; var g =- this.tilePaddingOffset.width + e; var h =- this.tilePaddingOffset.height + f; if(a.tileLeft != g || a.tileTop != h) { a.style.left = n(g); a.style.top = n(h); a.tileLeft = g; a.tileTop = h} if(!this.isLoaded()) { if(!d) { a.src = this.spec.emptyTileUrl} } else { var i = d ? this.spec.getOverlayURL(this.topLeftTile.x + b, this.topLeftTile.y + c, this.zoomLevel) : this.spec.getTileURL(this.topLeftTile.x + b, this.topLeftTile.y + c, this.zoomLevel); if(a.src != i) { if(d) { q.clearImage(a, this.spec.emptyTileUrl); q.setImage(a, i)} else { a.src = this.spec.emptyTileUrl; a.src = i; a.style.display = ""; if(a.overlayImage) { a.overlayImage.style.display = ""} if(a.errorTile) { a.errorTile.style.display = "none"} } } } } ; o.prototype.onDrag = function() { if(!this.isLoaded()) { return} this.onMove(); this.rotateTiles()} ; var Wc = new I(0, 0); o.prototype.onMove = function() { this.centerLatLng = null; var a = this.getCurrentOffset(Wc); var b = this.topLeftTile.x * this.spec.tileSize + Math.round(this.viewSize.width * this.centerScreen.x) + this.tilePaddingOffset.width - a.width; var c = this.topLeftTile.y * this.spec.tileSize + Math.round(this.viewSize.height * this.centerScreen.y) + this.tilePaddingOffset.height - a.height; this.centerBitmap.x = b; this.centerBitmap.y = c; for(var d = 0; d < this.overlays.length; d++) { this.overlays[d].redraw(false)} j.trigger(this, "move")} ; var Xc = new I(0, 0); o.prototype.rotateTiles = function() { var a = this.getCurrentOffset(Xc); if(Math.abs(this.dragObject.left) > 10000000 || Math.abs(this.dragObject.top) > 10000000) { this.cancelPan(); this.centerAtBitmap(this.centerBitmap); return} while(a.width <- this.tilePaddingOffset.width / 2) { this.rotateRight(this.tileImages, false); if(this.spec.hasOverlay()) { this.rotateRight(this.overlayImages, true)} this.getCurrentOffset(a)} while(a.width > this.tilePaddingOffset.width / 2) { this.rotateLeft(this.tileImages, false); if(this.spec.hasOverlay()) { this.rotateLeft(this.overlayImages, true)} this.getCurrentOffset(a)} while(a.height <- this.tilePaddingOffset.height / 2) { this.rotateDown(this.tileImages, false); if(this.spec.hasOverlay()) { this.rotateDown(this.overlayImages, true)} this.getCurrentOffset(a)} while(a.height > this.tilePaddingOffset.height / 2) { this.rotateUp(this.tileImages, false); if(this.spec.hasOverlay()) { this.rotateUp(this.overlayImages, true)} this.getCurrentOffset(a)} } ; o.prototype.rotateLeft = function(a, b) { if(!b) { this.currentPanOffset.width--; this.topLeftTile.x--} var c = a.pop(); if(c) { a.unshift(c); for(var d = 0; d < c.length; d++) { this.configureImage(c[d], 0, d, b)} } } ; o.prototype.rotateRight = function(a, b) { if(!b) { this.currentPanOffset.width++; this.topLeftTile.x++} var c = a.shift(); a.push(c); var d = a.length - 1; for(var e = 0; e < c.length; e++) { this.configureImage(c[e], d, e, b)} } ; o.prototype.rotateUp = function(a, b) { if(!b) { this.currentPanOffset.height--; this.topLeftTile.y--} for(var c = 0; c < a.length; c++) { var d = a[c].pop(); a[c].unshift(d); this.configureImage(d, c, 0, b)} } ; o.prototype.rotateDown = function(a, b) { if(!b) { this.currentPanOffset.height++; this.topLeftTile.y++} var c = a[0].length - 1; for(var d = 0; d < a.length; d++) { var e = a[d].shift(); a[d].push(e); this.configureImage(e, d, c, b)} } ; o.prototype.onDragEnd = function() { j.trigger(this, "moveend")} ; o.prototype.onDragStart = function() { this.cancelPan(); j.trigger(this, "movestart")} ; o.prototype.onDoubleClick = function(a) { if(!this.draggingEnabled()) { return} var b = Oa(a, this.container); var c = Math.round(this.viewSize.width / 2) - b.x; var d = Math.round(this.viewSize.height / 2) - b.y; this.pan(c, d)} ; o.prototype.onClick = function(a) { this.closeInfoWindow(); var b = null; if(a) { var c = Oa(a, this.container); b = this.containerCoordToLatLng(c)} j.trigger(this, "click", null, b)} ; o.prototype.onMouseDown = function(a) { var b = null; if(a) { var c = Oa(a, this.container); b = this.containerCoordToLatLng(c)} j.trigger(this, "mousedown", b)} ; o.prototype.onMouseUp = function(a) { var b = null; if(a) { var c = Oa(a, this.container); b = this.containerCoordToLatLng(c)} j.trigger(this, "mouseup", b)} ; o.prototype.sortImagesFromCenter = function(a) { var b = []; for(var c = 0; c < a.length; c++) { for(var d = 0; d < a[c].length; d++) { var e = a[c][d]; e.coordX = c; e.coordY = d; var f = Math.min(c, a.length - c - 1); var g = Math.min(d, a[c].length - d - 1); if(f == 0 || g == 0) { e.priority = 0} else { e.priority = f + g} b.push(e)} } b.sort(o.sortByPriority); return b} ; o.sortByPriority = function(a, b) { var c = b.priority - a.priority; return c} ; o.prototype.reconfigureImage = function(a, b) { if(browser.type == 1) { this.div.removeChild(a); this.configureImage(a, a.coordX, a.coordY, b); this.div.appendChild(a)} else { this.configureImage(a, a.coordX, a.coordY, b)} } ; o.prototype.reconfigureAllImages = function() { if(this.tileImages.length == 0) { return} var a = this.sortImagesFromCenter(this.tileImages); if(this.spec.hasOverlay()) { var b = this.sortImagesFromCenter(this.overlayImages)} else { var b = []} var c = Math.max(a.length, b.length); for(var d = 0; d < c; d++) { if(d < a.length) { this.reconfigureImage(a[d], false)} if(d < b.length) { this.reconfigureImage(b[d], true)} } } ; o.prototype.pan = function(a, b) { if(!this.isLoaded()) { return} var c = Math.sqrt(a * a + b * b); var d = Math.max(5, Math.round(c / 20)); this.panSiner = new Ga(d); this.panSiner.reset(); this.panDistance.width = a; this.panDistance.height = b; this.panStart = new x(this.dragObject.left, this.dragObject.top); j.trigger(this, "movestart"); this.doPan()} ; o.prototype.doPan = function() { var a = this.panSiner.next(); this.dragObject.moveTo(this.panStart.x + this.panDistance.width * a, this.panStart.y + this.panDistance.height * a); this.onMove(); if(this.panSiner.more()) { this.panTimeout = Aa(this, function() { this.doPan()} , 10); this.rotateTiles()} else { this.panTimeout = null; j.trigger(this, "moveend")} } ; o.prototype.cancelPan = function() { if(this.panTimeout) { clearTimeout(this.panTimeout); this.panTimeout = null; j.trigger(this, "moveend")} } ; o.prototype.recenterOrPanToLatLng = function(a) { if(!this.isLoaded()) { return} this.centerLatLng = new x(a.x, a.y); this.lastLatLng = this.centerLatLng; this.lastCenterScreen = new x(this.centerScreen.x, this.centerScreen.y); var a = this.spec.getBitmapCoordinate(this.centerLatLng.y, this.centerLatLng.x, this.zoomLevel); this.recenterOrPanToBitmap(a)} ; o.prototype.recenterOrPanToBitmap = function(a) { if(!this.isLoaded())return; var b = this.centerBitmap.x - a.x; var c = this.centerBitmap.y - a.y; if(b == 0 && c == 0) { this.resetCenterScreen(); return} if(Math.abs(b) < this.viewSize.width && Math.abs(c) < this.viewSize.height) { this.pan(b, c); return} this.centerAtBitmap(a)} ; o.prototype.centerAndZoom = function(a, b) { var c = null; if(!this.isLoaded() || b != this.zoomLevel) { c = this.zoomLevel; this.zoomLevel = b} this.centerAtLatLng(a); if(c != null) { j.trigger(this, "zoom", c, this.zoomLevel)} } ; o.prototype.centerAtLatLng = function(a) { this.centerLatLng = new x(a.x, a.y); this.lastLatLng = this.centerLatLng; this.lastCenterScreen = new x(this.centerScreen.x, this.centerScreen.y); var a = this.spec.getBitmapCoordinate(this.centerLatLng.y, this.centerLatLng.x, this.zoomLevel); this.centerAtBitmap(a)} ; o.prototype.centerAtBitmap = function(a) { this.cancelPan(); this.centerBitmap.x = a.x; this.centerBitmap.y = a.y; var b = new x(Math.round(this.viewSize.width * this.centerScreen.x), Math.round(this.viewSize.height * this.centerScreen.y)); var c = this.centerBitmap.x - b.x - this.tilePaddingOffset.width; var d = this.centerBitmap.y - b.y - this.tilePaddingOffset.height; var e = Math.floor(c / this.spec.tileSize); var f = Math.floor(d / this.spec.tileSize); var g = e * this.spec.tileSize - c; var h = f * this.spec.tileSize - d; if(g <- this.tilePaddingOffset.width / 2) { e++; g += this.spec.tileSize} else if(g > this.tilePaddingOffset.width / 2) { e--; g -= this.spec.tileSize} if(h <- this.tilePaddingOffset.height / 2) { f++; h += this.spec.tileSize} else if(h > this.tilePaddingOffset.height / 2) { f--; h -= this.spec.tileSize} if(!this.isLoaded()) { this.topLeftTile = new x(e, f); if(!this.stateMonitor) { this.stateMonitor = new Ma(this)} } else { this.topLeftTile.x = e; this.topLeftTile.y = f} this.currentPanOffset.width = 0; this.currentPanOffset.height = 0; var i = screen.updateInterval || 0; screen.updateInterval = 1000; this.dragObject.moveTo(g, h); this.reconfigureAllImages(); this.redrawOverlays(); screen.updateInterval = i; j.trigger(this, "move"); j.trigger(this, "moveend")} ; o.prototype.onResize = function(a) { if(this.viewSize.width != this.container.offsetWidth || this.viewSize.height != this.container.offsetHeight) { this.viewSize.width = this.container.offsetWidth; this.viewSize.height = this.container.offsetHeight; this.calculateTileMeasurements(); this.loadTileImages(); this.centerAtBitmap(this.centerBitmap); j.trigger(this, "resize")} } ; o.prototype.getCurrentOffset = function(a) { if(!a)a = new I(0, 0); a.width = this.dragObject.left + this.currentPanOffset.width * this.spec.tileSize; a.height = this.dragObject.top + this.currentPanOffset.height * this.spec.tileSize; return a} ; o.prototype.switchSpecification = function(a, b, c) { if(this.spec == a) { return} var d = this.spec; var e = b || this.getCenterLatLng(); var f; if(typeof c == "undefined") { var g = a.zoomLevelOffset || 0; var h = d.zoomLevelOffset || 0; f = this.zoomLevel + (h - g)} else { f = c} if(f < 0) { f = 0} else if(f >= a.numZoomLevels) { f = a.numZoomLevels - 1} this.setSpecification(a); if(d.tileSize != a.tileSize || d.hasOverlay() != a.hasOverlay()) { this.topLeftTile = null; this.initializeMap()} this.centerAndZoom(e, f); j.trigger(this, "maptypechanged", d, a)} ; o.prototype.setSpecification = function(a) { this.spec = a; if(!a.emptyTilePreload) { var b = document.createElement("IMG"); b.style.position = "absolute"; b.style.visibility = "hidden"; b.style.top = n( - 200); b.style.left = n( - 200); document.body.appendChild(b); a.emptyTilePreload = b} this.spec.emptyTilePreload.src = this.spec.emptyTileUrl; this.container.style.backgroundColor = this.spec.backgroundColor; this.div.style.backgroundColor = this.spec.backgroundColor} ; o.prototype.zoomTo = function(a) { if(!this.isLoaded()) { return} if(a >= this.spec.numZoomLevels) { a = this.spec.numZoomLevels - 1} else if(a < 0) { a = 0} var b = this.zoomLevel; if(a != this.zoomLevel) { if(!this.centerLatLng)this.centerLatLng = this.getCenterLatLng(); this.zoomLevel = a; var c = this.spec.getBitmapCoordinate(this.centerLatLng.y, this.centerLatLng.x, this.zoomLevel); this.centerAtBitmap(c)} j.trigger(this, "zoom", b, this.zoomLevel)} ; o.prototype.checkLongitudeWrapping = function() { var a = this.spec.adjustBitmapX(this.centerBitmap.x, this.zoomLevel); if(a != this.centerBitmap.x) { this.centerBitmap.x = a; this.centerAtBitmap(this.centerBitmap)} } ; o.prototype.addOverlay = function(a) { this.overlays.push(a); this.overlays.sorted = false; a.initialize(this); a.redraw(true); var b = Math.round(a.getLatitude() *- 100000); a.setZIndex(b); j.trigger(this, "addoverlay", a)} ; o.prototype.removeOverlay = function(a) { var b = []; for(var c = 0; c < this.overlays.length; c++) { if(this.overlays[c] == a) { a.remove()} else { b.push(this.overlays[c])} } if(this.overlays.length != b.length) { this.overlays = b} j.trigger(this, "removeoverlay", a)} ; o.prototype.reOrderOverlays = function() { } ; o.orderOverlays = function(a, b) { return b.getLatitude() - a.getLatitude()} ; o.prototype.openInfoWindow = function(a, b, c, d, e, f, g) { if(!this.infoWindowEnabled()) { return} if(!this.infoWindow) { this.createInfoWindow()} var h = this.spec.getBitmapCoordinate(a.y, a.x, this.zoomLevel); var i = this.getDivCoordinate(h.x, h.y); if(this.infoWindow.isVisible()) { j.trigger(this, "infowindowclose"); if(this.infoWindow.onCloseFn) { this.infoWindow.onCloseFn()} } this.infoWindow.point = a; this.infoWindow.pixelOffset = c; this.infoWindow.onOpenFn = d; this.infoWindow.onCloseFn = e; if(b.parentNode != this.infoWindow.offscreenArea) { la(this.infoWindow.offscreenArea); this.infoWindow.offscreenArea.appendChild(b)} this.showSizedInfoWindow(i.x, i.y, c, f, g)} ; o.prototype.openInfoWindowXslt = function(a, b, c, d, e, f, g, h) { var i = document.createElement("div"); var l = this; var m = function() { l.openInfoWindow(a, i, d, e, f, g, h)} ; W.asynchronousTransform(b, i, c, m, null)} ; o.prototype.openInfoWindowHtml = function(a, b, c, d, e, f, g) { var h = document.createElement("div"); ka(h, b); this.openInfoWindow(a, h, c, d, e, f, g)} ; o.prototype.closeInfoWindow = function() { if(this.infoWindow && this.infoWindow.isVisible()) { this.infoWindow.hide(); this.resetCenterScreen(); j.trigger(this, "infowindowclose"); if(this.infoWindow.onCloseFn) { this.infoWindow.onCloseFn()} this.infoWindow.point = null; this.infoWindow.pixelOffset = null; this.infoWindow.onOpenFn = null; this.infoWindow.onCloseFn = null} } ; o.prototype.saveMapState = function() { this.lastPageCenter = this.getCenterLatLng(); this.lastPageZoom = this.zoomLevel} ; o.prototype.clearOverlays = function() { this.closeInfoWindow(); for(var a = 0; a < this.overlays.length; a++) { this.overlays[a].remove()} ud(this.overlays); this.saveMapState(); this.mapBlowupZoom = 1; this.mapBlowupSpec = null; j.trigger(this, "clearoverlays")} ; o.prototype.redrawOverlays = function() { for(var a = 0; a < this.overlays.length; a++) { this.overlays[a].redraw(true)} if(this.infoWindow) { this.repositionInfoWindow(); if(browser.type != 1 && this.infoWindow.hasMask()) { this.addOverlaysToInfoWindowMask()} } } ; o.prototype.repositionInfoWindow = function() { if(!this.infoWindow.isVisible() ||!this.infoWindow.point) { return} var a = this.infoWindow.point; var b = this.spec.getBitmapCoordinate(a.y, a.x, this.zoomLevel); var c = this.getDivCoordinate(b.x, b.y); this.infoWindow.positionAt(c.x, c.y, this.infoWindow.pixelOffset)} ; o.prototype.onInfoCloseClick = function(a) { this.closeInfoWindow()} ; o.prototype.resetCenterScreen = function() { var a = 0.5; var b = 0.5; var c = null; if(this.infoWindow && this.infoWindow.isVisible() && this.infoWindow.point) { var d = this.getScreenCoord(this.infoWindow.point); if(d.x >= 0 && d.x <= 1 && d.y >= 0 && d.y <= 1) { a = d.x; b = d.y; c = new x(this.infoWindow.point.x, this.infoWindow.point.y)} } if(a == this.centerScreen.x && b == this.centerScreen.y) { return} this.centerBitmap.x -= Math.round(this.viewSize.width * (this.centerScreen.x - a)); this.centerBitmap.y -= Math.round(this.viewSize.height * (this.centerScreen.y - b)); this.centerScreen.x = a; this.centerScreen.y = b; if(c) { this.centerLatLng = c} else { this.centerLatLng = null; this.centerLatLng = this.getCenterLatLng()} } ; o.prototype.shouldDisplayMapType = function(a) { if(a.getMaxZoomLevel && a.getMaxZoomLevel() < this.zoomLevel) { return false} if(a.getBounds &&!a.getBounds().intersectsLatLng(this.getBoundsLatLng())) { return false} return true} ; o.prototype.checkMapTypeBounds = function() { if(!this.shouldDisplayMapType(this.spec)) { if(this.spec.getAlternativeMapType) { this.setMapType(this.spec.getAlternativeMapType())} else { this.setMapType(this.mapTypes[0])} } } ; o.prototype.getScreenCoord = function(a) { var b = this.spec.getBitmapCoordinate(a.y, a.x, this.zoomLevel); b = this.getDivCoordinate(b.x, b.y); b.x += this.dragObject.left; b.y += this.dragObject.top; return new x(b.x / this.viewSize.width, b.y / this.viewSize.height)} ; o.prototype.panToInfoWindow = function() { var a = this.getDivCoordinate(this.centerBitmap.x - this.viewSize.width * this.centerScreen.x, this.centerBitmap.y - this.viewSize.height * this.centerScreen.y); var b = new x(this.infoWindow.left - a.x, this.infoWindow.top - a.y); var c = new I(this.infoWindow.getTotalWidth(), this.infoWindow.getTotalHeightAboveGround()); var d = new I(0, 0); var e = 5; var f = 5; var g = 5; if(this.infoWindow.hasTabs()) { g += 25} if(b.x < e) { d.width = e - b.x} else if(b.x + c.width > this.viewSize.width - e) { d.width = this.viewSize.width - e - b.x - c.width} if(b.y < g) { d.height = g - b.y} else if(b.y + c.height > this.viewSize.height - f) { d.height = this.viewSize.height - f - b.y - c.height} for(var h = 0; h < this.controls.length; h++) { var i = this.controls[h]; var l = i.element; var m = i.position; var r = b.x + d.width; var p = b.y + d.height; switch(m.anchor) { case 0 : var y = m.offsetWidth + l.offsetWidth + e; var D = m.offsetHeight + l.offsetHeight + g; if(l.offsetWidth < l.offsetHeight) { if(p < D) { d.width += Math.max(y - r, 0)} } else { if(r < y) { d.height += Math.max(D - p, 0)} } break; case 2 : var y = m.offsetWidth + l.offsetWidth + e; var P = this.viewSize.height - m.offsetHeight - l.offsetHeight - f; if(l.offsetWidth < l.offsetHeight) { if(p + c.height > P) { d.width += Math.max(y - r, 0)} } else { if(r < y) { d.height += Math.min(P - (p + c.height), 0)} } break; case 3 : var H = this.viewSize.width - m.offsetWidth - l.offsetWidth - e; var P = this.viewSize.height - m.offsetHeight - l.offsetHeight - f; if(l.offsetWidth < l.offsetHeight) { if(p + c.height > P) { d.width += Math.min(H - (r + c.width), 0)} } else { if(r + c.width > H) { d.height += Math.min(P - (p + c.height), 0)} } break; case 1 : var H = this.viewSize.width - m.offsetWidth - l.offsetWidth - e; var D = m.offsetHeight + l.offsetHeight + g; if(l.offsetWidth < l.offsetHeight) { if(p < D) { d.width += Math.min(H - (r + c.width), 0)} } else { if(r + c.width > H) { d.height += Math.max(D - p, 0)} } break} } if(d.width != 0 || d.height != 0) { var M = new x(this.centerBitmap.x - d.width, this.centerBitmap.y - d.height); this.centerLatLng = null; this.recenterOrPanToBitmap(M)} } ; o.prototype.showSizedInfoWindow = function(a, b, c, d, e) { var f = ja.create("infoWindowOffscreen"); this.infoWindow.prepareOffscreen(); Aa(this, function() { if(f.isValid()) { this.infoWindow.flipOffscreenAndSize(d); this.infoWindow.positionAt(a, b, c); if(browser.type != 1 && this.infoWindow.hasMask()) { this.addOverlaysToInfoWindowMask()} Aa(this, function() { this.infoWindow.show(); if(!e) { this.panToInfoWindow()} if(this.infoWindow.onOpenFn) { this.infoWindow.onOpenFn()} j.trigger(this, "infowindowopen")} , 1)} } , 1)} ; o.prototype.addOverlaysToInfoWindowMask = function() { if(!this.infoWindow.isVisible()) { return} this.infoWindow.clearMaskMap(); var a = new x(this.infoWindow.getOffsetLeft(), this.infoWindow.getOffsetTop()); var b = new x(a.x + this.infoWindow.getTotalWidth(), a.y + this.infoWindow.getTotalHeight()); if(!this.overlays.sorted) { this.overlays.sort(o.orderOverlays); this.overlays.sorted = true} for(var c = 0; c < this.overlays.length; c++) { var d = this.overlays[c]; if(d.addToInfoWindowMask) { if(d.getOffsetTop() > b.y) { break} d.addToInfoWindowMask(a, b)} } } ; o.prototype.showMapBlowup = function(a, b, c, d, e, f, g) { if(!this.infoWindowEnabled()) { return} var h = b ? b : this.mapBlowupZoom; var i = c ? c : this.mapBlowupSpec; var l = this.getInfoWindowOffScreen("div"); l.style.border = "1px solid #979797"; l.style.width = n(200); l.style.height = n(200); var m = this.copy(l, 200, 200, a, h, i, true); m.disableDragging(); m.disableInfoWindow(); m.addControl(new Ia()); var r = e; if(browser.type == 1) { r = function() { try { m.redrawOverlays()} catch(p) { R.dump(p)} if(e) { e()} } } if(m.mapTypes.length > 1) { m.addControl(new da(true))} this.openInfoWindow(a, l, d, r, f, g); j.bind(m, "moveend", this, function() { this.mapBlowupZoom = m.zoomLevel; this.mapBlowupSpec = m.spec} ); return m} ; o.prototype.copy = function(a, b, c, d, e, f, g) { var h = new o(a, this.mapTypes, b, c, g); var i = d ? d : this.getCenterLatLng(); var l = f ? f : this.spec; var m = e || e == 0 ? e : this.zoomLevel; if(l == h.spec) { h.centerAndZoom(i, m)} else { h.switchSpecification(l, i, m)} for(var r = 0; r < this.overlays.length; r++) { h.addOverlay(this.overlays[r].copy())} return h} ; o.prototype.registerKeyHandlers = function(a) { if(browser.type == 2 && browser.os == 2) { j.bindDom(a, "keydown", this, this.cancelKey); j.bindDom(a, "keypress", this, this.handleKey)} else { j.bindDom(a, "keydown", this, this.handleKey); j.bindDom(a, "keypress", this, this.cancelKey)} j.bindDom(a, "keyup", this, this.releaseKey)} ; o.prototype.handleKey = function(a) { if(this.ignoreKeyEvent(a)) { return true} switch(a.keyCode) { case 38 : case 40 : case 37 : case 39 : this.panKeys.add(a.keyCode); this.startContinuousPan(); B(a); return false; case 34 : this.pan(0, - Math.round(this.viewSize.height * 0.75)); B(a); return false; case 33 : this.pan(0, Math.round(this.viewSize.height * 0.75)); B(a); return false; case 36 : this.pan(Math.round(this.viewSize.width * 0.75), 0); B(a); return false; case 35 : this.pan( - Math.round(this.viewSize.width * 0.75), 0); B(a); return false; case 187 : case 107 : this.zoomTo(this.zoomLevel - 1); B(a); return false; case 189 : case 109 : this.zoomTo(this.zoomLevel + 1); B(a); return false} switch(a.which) { case 61 : case 43 : this.zoomTo(this.zoomLevel - 1); B(a); return false; case 45 : case 95 : this.zoomTo(this.zoomLevel + 1); B(a); return false} return true} ; o.prototype.cancelKey = function(a) { if(this.ignoreKeyEvent(a)) { return true} switch(a.keyCode) { case 38 : case 40 : case 37 : case 39 : case 34 : case 33 : case 36 : case 35 : case 187 : case 107 : case 189 : case 109 : B(a); return false} switch(a.which) { case 61 : case 43 : case 45 : case 95 : B(a); return false} return true} ; o.prototype.releaseKey = function(a) { switch(a.keyCode) { case 38 : case 40 : case 37 : case 39 : this.panKeys.remove(a.keyCode); return false} return true} ; o.prototype.ignoreKeyEvent = function(a) { if(a.ctrlKey || a.altKey || a.metaKey) { return true} if(a.target && (a.target.nodeName == "INPUT" && a.target.getAttribute("type").toLowerCase() == "text" || a.target.nodeName == "TEXTAREA")) { return true} return false} ; o.prototype.startContinuousPan = function() { if(!this.isLoaded()) { return} this.cancelPan(); j.trigger(this, "movestart"); if(!this.continuousPanTimeout) { this.panSiner = new Ga(100); this.doContinuousPan()} } ; o.prototype.doContinuousPan = function() { if(this.panKeys.size() > 0) { var a = (this.panKeys.contains(37) ? 1 : 0) + (this.panKeys.contains(39) ?- 1 : 0); var b = (this.panKeys.contains(38) ? 1 : 0) + (this.panKeys.contains(40) ?- 1 : 0); var c = 1; if(this.panSiner.more()) { c = this.panSiner.next()} var d = Math.round(7 * c * a + 5 * a); var e = Math.round(7 * c * b + 5 * b); this.dragObject.moveTo(this.dragObject.left + d, this.dragObject.top + e); this.onMove(); this.rotateTiles(); this.continuousPanTimeout = Aa(this, this.doContinuousPan, 10)} else { this.continuousPanTimeout = null; j.trigger(this, "moveend")} } ; o.prototype.onWindowBlur = function(a) { if(this.panKeys.size() > 0) { this.panKeys = new T()} } ; function rc(a, b, c) { this.control = a; this.element = b; this.position = c} o.prototype.addControl = function(a, b, c) { var d = a.initialize(this); var e = b || a.getDefaultPosition(); if(!c) { Pa(d, "noprint")} j.addBuiltInListener(d, "click", B); j.addBuiltInListener(d, "dblclick", B); j.addBuiltInListener(d, "contextmenu", B); e.apply(d); this.controls.push(new rc(a, d, e))} ; o.prototype.removeControl = function(a) { for(var b = 0; b < this.controls.length; b++) { var c = this.controls[b]; if(c.control == a) { ua(c.element); this.controls.splice(b, 1); return} } } ; o.prototype.applyControlStyles = function(a) { a.style.position = "absolute"; L(a, "default"); a.unselectable = "on"; a.onselectstart = Vb; a.style.fontSize = n(11); a.style.fontFamily = "Arial, sans serif"; a.style.MozUserSelect = "none"} ; o.prototype.hideOverlays = function() { this.infoWindowVisible = this.infoWindow && this.infoWindow.isVisible(); if(this.infoWindowVisible) { this.infoWindow.hide()} for(var a = 0; a < this.overlays.length; ++a) { if(this.overlays[a].display) { this.overlays[a].display(false)} } } ; o.prototype.showOverlays = function() { if(this.infoWindowVisible) { this.infoWindow.show()} for(var a = 0; a < this.overlays.length; ++a) { if(this.overlays[a].display) { this.overlays[a].display(true)} } } ; ; var tb = ["image", "shadow", "iconSize", "shadowSize", "iconAnchor", "infoWindowAnchor", "infoShadowAnchor", "transparent", "printImage", "mozPrintImage", "printShadow", "imageMap"]; function Z(a) { this.properties = new Object(); if(a) { for(var b = 0; b < tb.length; b++) { var c = tb[b]; this[c] = a[c]} } } Z.prototype.translateImageMap = function(a, b) { var c = []; for(var d = 0; d < this.imageMap.length; d += 2) { c.push(this.imageMap[d] + a); c.push(this.imageMap[d + 1] + b)} return c} ; Z.prototype.getInfoWindowOffset = function() { return new I(this.infoWindowAnchor.x - this.iconAnchor.x, this.infoWindowAnchor.y - this.iconAnchor.y)} ; Z.prototype.setImage = function(a) { this.image = a; this.printImage = a.replace(/\.png$/,"ie.gif"); this.mozPrintImage = a.replace(/\.png$/,"ff.gif")} ; var Bb = 0; function J(a, b) { this.point = a; this.icon = b || U} J.prototype.initialize = function(a) { this.map = a; this.images = []; var b = this.icon; this.iconImage = q.create(b.image, b.iconSize.width, b.iconSize.height, 0, 0, null, false, b.printImage ? "noprint" : null, a.ownerDocument); a.markerPane.appendChild(this.iconImage); this.images.push(this.iconImage); if(b.shadow) { this.shadow = q.create(b.shadow, b.shadowSize.width, b.shadowSize.height, 0, 0, null, false, "noprint", a.ownerDocument); a.markerShadowPane.appendChild(this.shadow); this.images.push(this.shadow)} if(b.transparent) { this.transparentIcon = q.create(b.transparent, b.iconSize.width, b.iconSize.height, 0, 0, null, false, "noprint", a.ownerDocument); a.markerMouseTargetPane.appendChild(this.transparentIcon); this.images.push(this.transparentIcon)} if(b.printImage && browser.type != 2) { this.printIcon = qa.create(b.printImage, b.iconSize.width, b.iconSize.height, 0, 0, null, false, "noscreen", a.ownerDocument)} else if(b.mozPrintImage && browser.type == 2) { this.printIcon = qa.create(b.mozPrintImage, b.iconSize.width, b.iconSize.height, 0, 0, null, false, "noscreen", a.ownerDocument)} if(this.printIcon) { a.markerPane.appendChild(this.printIcon); this.images.push(this.printIcon)} if(b.printShadow && browser.type != 2) { this.printShadow = qa.create(b.printShadow, b.shadowSize.width, b.shadowSize.height, 0, 0, null, false, "noscreen", a.ownerDocument); a.markerShadowPane.appendChild(this.printShadow); this.images.push(this.printShadow)} var c = this.iconImage; if(this.transparentIcon) { c = this.transparentIcon} if(browser.type == 2 && b.imageMap) { var d = "map" + Bb; Bb++; this.imageMap = a.ownerDocument.createElement("map"); this.imageMap.setAttribute("name", d); var e = a.ownerDocument.createElement("area"); e.setAttribute("shape", "poly"); e.setAttribute("alt", ""); e.setAttribute("coords", b.imageMap.join(",")); e.setAttribute("href", "javascript:void(0)"); c = e; this.imageMap.appendChild(e); this.transparentIcon.setAttribute("usemap", "#" + d)} else { L(c, "pointer")} j.bindDom(c, "mousedown", this, this.onMouseDown); j.bindDom(c, "mouseup", this, this.onMouseUp); j.bindDom(c, "mouseout", this, this.b); j.bindDom(c, "mouseover", this, this.d); var f = Q(this.xml, "title"); if(f) { c.setAttribute("title", $(f))} if(this.imageMap) { this.map.div.appendChild(this.imageMap)} } ; J.prototype.remove = function() { for(var a = 0; a < this.images.length; a++) { var b = this.images[a]; Y.detachNodeEvents(b); q.remove(b, document)} this.images = null; if(this.imageMap) { ua(this.imageMap); this.imageMap = null} } ; J.prototype.copy = function() { return new J(this.point, this.icon)} ; J.prototype.redraw = function(a) { if(!a)return; var b = this.map.spec.getBitmapCoordinate(this.point.y, this.point.x, this.map.zoomLevel); var c = this.map.getDivCoordinate(b.x, b.y); var d = c.x - this.icon.iconAnchor.x; var e = c.y - this.icon.iconAnchor.y; for(var f = 0; f < this.images.length; f++) { this.images[f].style.left = n(d); this.images[f].style.top = n(e)} } ; J.prototype.getLatitude = function() { return this.point.y} ; J.prototype.setZIndex = function(a) { for(var b = 0; b < this.images.length; ++b) { this.images[b].style.zIndex = a} } ; J.prototype.addToInfoWindowMask = function(a, b) { if(!this.icon.imageMap) { return} var c = this.iconImage; if(c.offsetLeft + c.width >= a.x && c.offsetLeft <= b.x && c.offsetTop + c.height >= a.y && c.offsetTop <= b.y) { var d = this.icon.translateImageMap(c.offsetLeft - a.x, c.offsetTop - a.y); var e = j.callback(this, this.onMouseDown); this.map.infoWindow.addAreaToMaskMap(d, e)} } ; J.prototype.getOffsetTop = function() { return this.iconImage.offsetTop} ; J.prototype.display = function(a) { if(a) { for(var b = 0; b < this.images.length; ++b) { this.images[b].style.display = ""} } else { for(var b = 0; b < this.images.length; ++b) { this.images[b].style.display = "none"} } } ; J.prototype.openInfoWindow = function(a, b, c) { this.map.openInfoWindow(this.point, a, this.icon.getInfoWindowOffset(), j.callback(this, this.onInfoWindowOpen), j.callback(this, this.onInfoWindowClose), b, c)} ; J.prototype.openInfoWindowHtml = function(a, b, c) { this.map.openInfoWindowHtml(this.point, a, this.icon.getInfoWindowOffset(), j.callback(this, this.onInfoWindowOpen), j.callback(this, this.onInfoWindowClose), b, c)} ; J.prototype.openInfoWindowXslt = function(a, b, c, d) { this.map.openInfoWindowXslt(this.point, a, b, this.icon.getInfoWindowOffset(), j.callback(this, this.onInfoWindowOpen), j.callback(this, this.onInfoWindowClose), c, d)} ; J.prototype.showMapBlowup = function(a, b, c) { this.map.showMapBlowup(this.point, a, b, this.icon.getInfoWindowOffset(), j.callback(this, this.onInfoWindowOpen), j.callback(this, this.onInfoWindowClose), c)} ; J.prototype.onMouseDown = function(a) { B(a); j.trigger(this, "click", this); j.trigger(this.map, "click", this)} ; J.prototype.onMouseUp = function(a) { j.trigger(this, "mouseup", this)} ; J.prototype.d = function(a) { j.trigger(this, "mouseover", this)} ; J.prototype.b = function(a) { j.trigger(this, "mouseout", this)} ; J.prototype.onInfoWindowOpen = function() { j.trigger(this, "infowindowopen", this)} ; J.prototype.onInfoWindowClose = function() { j.trigger(this, "infowindowclose", this)} ; function K(a, b, c, d) { this.color = b || "#0000ff"; this.weight = c || 5; this.opacity = d || 0.45; this.points = null; this.nextPointAtIndexLevel = null; this.zoomFactor = 32; this.minTolerance = 1.0E - 5; if(a) { this.points = []; for(var e = 0; e < a.length; e++) { this.points.push(a[e].y / 1.0E - 5); this.points.push(a[e].x / 1.0E - 5)} this.nextPointIndexAtLevel = [[]]; for(var e = 0; e < this.points.length / 2; e++) { this.nextPointIndexAtLevel[0][e] = e + 1} } } K.fromEncoded = function(a, b, c, d, e, f, g) { var h = new K(null, e, f, g); h.points = K.decodePolyline(a); h.zoomFactor = d; h.nextPointIndexAtLevel = K.decodeLevels(b, c, h.points.length / 2); return h} ; K.prototype.initialize = function(a) { this.map = a; this.drawBounds = new E( - ha, - ha, ha, ha)} ; K.prototype.remove = function() { if(this.drawElement) { ua(this.drawElement); this.drawElement = null} } ; K.prototype.copy = function() { var a = new K(null, this.color, this.weight, this.opacity); a.points = this.points; a.zoomFactor = this.zoomFactor; a.nextPointIndexAtLevel = this.nextPointIndexAtLevel; return a} ; K.prototype.redraw = function(a) { if(!a && this.drawElement) { var b = this.map.getBoundsBitmap(); if(this.drawBounds.containsBounds(b)) { return} } V.start("Polyline", "redraw"); var c = 900; var d = Math.min(this.map.viewSize.width, c); var e = Math.min(this.map.viewSize.height, c); if(browser.type == 1) { d = 5000; e = 5000} this.drawBounds.minX = this.map.centerBitmap.x - d; this.drawBounds.minY = this.map.centerBitmap.y - e; this.drawBounds.maxX = this.map.centerBitmap.x + d; this.drawBounds.maxY = this.map.centerBitmap.y + e; var f = this.map.spec.getLatLng(this.drawBounds.minX, this.drawBounds.minY, this.map.zoomLevel); var g = this.map.spec.getLatLng(this.drawBounds.maxX, this.drawBounds.maxY, this.map.zoomLevel); var h = new E(f.x, g.y, g.x, f.y); var i = 0; if(this.drawElement) { i = this.drawElement.style.zIndex; this.remove()} var l = this.getDrawingTolerance(); if(browser.type == 1) { this.drawElement = this.createVectorSegments(h, l, this.drawBounds)} else { this.drawElement = this.createImageSegments(h, l, this.drawBounds)} this.drawElement.style.zIndex = i; this.map.mapPane.appendChild(this.drawElement); V.end("Polyline", "redraw")} ; K.prototype.getLatitude = function() { return 0} ; K.prototype.setZIndex = function(a) { this.drawElement.style.zIndex = a} ; K.prototype.display = function(a) { if(a) { this.drawElement.style.display = ""} else { this.drawElement.style.display = "none"} } ; K.prototype.getPoint = function(a) { a <<= 1; return new x(this.points[a + 1] * 1.0E - 5, this.points[a] * 1.0E - 5)} ; K.prototype.getVectors = function(a, b, c) { V.start("Polyline", "getVectors"); if(c == null)c = new Array(); this.getVectorsHelper(a, 0, this.points.length / 2 - 1, this.nextPointIndexAtLevel.length - 1, b, c); V.end("Polyline", "getVectors"); return c} ; K.prototype.getVectorsHelper = function(a, b, c, d, e, f) { var g = 7.62939453125E - 6; for(var h = d; h > 0; --h) { g *= this.zoomFactor} var i = new E(); i.minX = Math.floor((a.minX - g) * 100000); i.minY = Math.floor((a.minY - g) * 100000); i.maxX = Math.ceil((a.maxX + g) * 100000); i.maxY = Math.ceil((a.maxY + g) * 100000); var l = b; var m; var r = new x(); r.y = this.points[l << 1]; r.x = this.points[(l << 1) + 1]; var p = new x(); while((m = this.nextPointIndexAtLevel[d][l]) <= c) { p.y = this.points[m << 1]; p.x = this.points[(m << 1) + 1]; if(i.containsSegment(r, p)) { if(d > e) { this.getVectorsHelper(a, l, m, d - 1, e, f)} else { f.push(r.y * 1.0E - 5); f.push(r.x * 1.0E - 5); f.push(p.y * 1.0E - 5); f.push(p.x * 1.0E - 5)} } var y = r; r = p; p = y; l = m} } ; K.decodePolyline = function(a) { V.start("Polyline", "decodePolyline"); var b = a.length; var c = 0; var d = new Array(); var e = 0; var f = 0; while(c < b) { var g; var h = 0; var i = 0; do { g = a.charCodeAt(c++) - 63; i |= (g & 31) << h; h += 5} while(g >= 32); var l = i & 1 ? ~(i >> 1) : i >> 1; e += l; d.push(e); h = 0; i = 0; do { g = a.charCodeAt(c++) - 63; i |= (g & 31) << h; h += 5} while(g >= 32); var m = i & 1 ? ~(i >> 1) : i >> 1; f += m; d.push(f)} V.end("Polyline", "decodePolyline"); return d} ; K.decodeLevels = function(a, b, c) { V.start("Polyline", "decodeLevels"); var d = new Array(b); for(var e = 0; e < b; ++e)d[e] = new Array(); var f = 0; for(var g = 0; g < c; ++g) { var h = a.charCodeAt(f++) - 63; while(h >= 0) { var i = d[h--]; while(i.length < g) { i.push(g)} } } for(var h = 0; h < b; ++h) { var i = d[h]; for(var g = i.length; g < c; ++g) { i.push(c)} } V.end("Polyline", "decodeLevels"); return d} ; K.prototype.encodeSigned = function(a, b) { return this.encodeUnsigned(a < 0 ? ~(a << 1) : a << 1, b)} ; K.prototype.encodeUnsigned = function(a, b) { if(!b)b = new Array(); while(a >= 32) { b.push(String.fromCharCode((32 | a & 31) + 63)); a >>= 5} b.push(String.fromCharCode(a + 63)); return b} ; K.prototype.getDrawingTolerance = function() { var a = 0; var b = this.getPoint(0); var c = new I(this.minTolerance, this.minTolerance); var d = new I(2, 2); while(a < this.nextPointIndexAtLevel.length) { c.width *= this.zoomFactor; c.height *= this.zoomFactor; var e = this.map.spec.getLowestZoomLevel(b, c, d); if(this.map.zoomLevel < e) { break} ++a} return a} ; var Eb = new x(0, 0); K.prototype.createVectorSegments = function(a, b, c) { V.start("Polyline", "createVectorSegments"); var d = this.getVectors(a, b); var e = new Array(); var f = new E(); this.getBitmapVectors(d, e, f); var g; if(e.length > 0) { var h = this.map.centerBitmap; var i = this.map.getDivCoordinate(h.x, h.y, Eb); g = document.createElement("v:shape"); g.unselectable = "on"; g.fill = false; g.filled = false; var l = 1; var m = 1; g.style.position = "absolute"; g.style.width = n(l); g.style.height = n(m); g.style.left = n(i.x); g.style.top = n(i.y); var r = h.x + " " + h.y; g.coordorigin = r; g.coordsize = l + " " + m; g.path = this.getVectorPath(e); var p = document.createElement("v:stroke"); p.joinstyle = "round"; p.endcap = "round"; p.opacity = this.opacity; p.color = this.color; p.weight = n(this.weight); g.appendChild(p)} else { g = document.createElement("div")} V.end("Polyline", "createVectorSegments"); return g} ; var ld = new x(0, 0); K.prototype.getBitmapVectors = function(a, b, c, d) { if(!b)b = new Array(); if(!c)c = new E(); c.minX = ha; c.minY = ha; c.maxX =- ha; c.maxY =- ha; var e = typeof d != "undefined" ? d : this.map.zoomLevel; for(var f = 0; f < a.length; ) { var g = a[f++]; var h = a[f++]; var i = this.map.spec.getBitmapCoordinate(g, h, e, ld); i.x = Math.round(i.x); i.y = Math.round(i.y); b.push(i.x); b.push(i.y); if(i.x < c.minX)c.minX = i.x; if(i.y < c.minY)c.minY = i.y; if(i.x > c.maxX)c.maxX = i.x; if(i.y > c.maxY)c.maxY = i.y} return b} ; K.prototype.getVectorPath = function(a) { var b = new Array(); var c; var d; for(var e = 0; e < a.length; ) { var f = a[e++]; var g = a[e++]; var h = a[e++]; var i = a[e++]; if(g != c || f != d) { b.push("m"); b.push(f); b.push(g); b.push("l")} b.push(h); b.push(i); c = i; d = h} b.push("e"); return b.join(" ")} ; K.prototype.createImageSegments = function(a, b, c) { V.start("Polyline", "createImageSegments"); var d; var e; do { var f = this.getVectors(a, b); var g = new Array(); var h = new E(); this.getBitmapVectors(f, g, h); h.minX -= this.weight; h.minY -= this.weight; h.maxX += this.weight; h.maxY += this.weight; if(!c) { c = new E()} e = E.intersection(c, h); d = this.getEncodedImageSource(g, e.minX, e.minY); ++b} while(d.length > 900); var i; if(d.length > 0) { var l = this.map.getDivCoordinate(e.minX, e.minY, Eb); var m = 0; var r = 0; var p = 255; try { var y = this.color; if(y.charAt(0) == "#") { y = y.substring(1)} m = parseInt(y.substring(0, 2), 16); r = parseInt(y.substring(2, 4), 16); p = parseInt(y.substring(4, 6), 16)} catch(D) { R.dump(D)} var P = (1 - this.opacity) * 255; var H = Math.ceil(e.maxX - e.minX); var M = Math.ceil(e.maxY - e.minY); var N = "http://mt.google.com/mld?width=" + H + "&height=" + M + "&path=" + d + "&color=" + m + "," + r + "," + p + "," + P + "&weight=" + this.weight; R.writeURL(N); if(browser.type != 1) { H = null; M = null} var u = browser.type == 2 ? "noprint" : null; i = q.create(N, H, M, l.x, l.y, 0, false, u)} else { i = document.createElement("div")} V.end("Polyline", "createImageSegments"); return i} ; K.prototype.getEncodedImageSource = function(a, b, c) { if(b == ha || c == ha) { return""} var d = []; var e; var f; for(var g = 0; g < a.length; ) { var h = a[g++]; var i = a[g++]; var l = a[g++]; var m = a[g++]; if(h == l && i == m) { continue} if(h != e || i != f) { if(d.length > 0) { this.encodeSigned(9999, d)} this.encodeSigned(h - b, d); this.encodeSigned(i - c, d)} this.encodeSigned(l - h, d); this.encodeSigned(m - i, d); f = m; e = l} this.encodeSigned(9999, d); return d.join("")} ; var bc = s + "dir_"; function ea(a, b, c) { this.point = a; this.start = b; this.end = c; this.element = null; this.angle = null; this.lastSpec = null} ea.fromPolylinePoint = function(a, b) { var c = a.getPoint(b); var d = a.getPoint(b - 2); return new ea(c, d, c)} ; ea.prototype.initialize = function(a) { this.map = a} ; ea.prototype.remove = function() { if(this.element) { ua(this.element); this.element = null} } ; ea.prototype.copy = function() { return new ea(this.point, this.start, this.end)} ; ea.prototype.redraw = function(a) { if(!a) { return} if(!this.element || this.lastSpec != this.map.spec) { this.remove(); var b = this.getAngle(); var c = this.getDirIndicatorPath(b); this.element = q.create(c, 24, 24, 0, 0, 2, false); this.map.mapPane.appendChild(this.element); this.angle = b; this.lastSpec = this.map.spec} var d = 12 * Math.cos(this.angle); var e = 12 * Math.sin(this.angle); d = Math.floor( - 12 - d); e = Math.floor( - 12 - e); var f = this.map.spec.getBitmapCoordinate(this.point.y, this.point.x, this.map.zoomLevel); var g = this.map.getDivCoordinate(f.x, f.y); this.element.style.left = n(g.x + d); this.element.style.top = n(g.y + e)} ; ea.prototype.getLatitude = function() { return this.point.y} ; ea.prototype.setZIndex = function(a) { this.element.style.zIndex = a} ; ea.prototype.getAngle = function() { var a = this.map.spec.getBitmapCoordinate(this.start.y, this.start.x, this.map.zoomLevel); var b = this.map.spec.getBitmapCoordinate(this.end.y, this.end.x, this.map.zoomLevel); return Math.atan2(b.y - a.y, b.x - a.x)} ; ea.prototype.getDirIndicatorPath = function(a) { var b = Math.round(a * 60 / Math.PI) * 3 + 90; while(b >= 120)b -= 120; while(b < 0)b += 120; var c = bc + b + ".png"; return c} ; function fa(a, b, c) { this.anchor = a; this.offsetWidth = b || 0; this.offsetHeight = c || 0} fa.prototype.apply = function(a) { a.style.position = "absolute"; a.style[this.getWidthMeasure()] = n(this.offsetWidth); a.style[this.getHeightMeasure()] = n(this.offsetHeight)} ; fa.prototype.getWidthMeasure = function() { switch(this.anchor) { case 1 : case 3 : return"right"; default : return"left"} } ; fa.prototype.getHeightMeasure = function() { switch(this.anchor) { case 2 : case 3 : return"bottom"; default : return"top"} } ; var ic = s + "center.png"; var jc = s + "east.png"; var nc = s + "west.png"; var kc = s + "north.png"; var mc = s + "south.png"; var lc = s + "panshadow.png"; var oc = s + "zoom-plus.png"; var pc = s + "zoom-minus.png"; var qc = s + "slider.png"; var ec = s + "east-mini.png"; var hc = s + "west-mini.png"; var fc = s + "north-mini.png"; var gc = s + "south-mini.png"; var rb = s + "zoom-plus-mini.png"; var sb = s + "zoom-minus-mini.png"; function ia() { } ia.prototype.initialize = function(a) { this.map = a; var b = a.ownerDocument.createElement("div"); b.style.width = n(57); b.style.height = n(276); a.container.appendChild(b); this.createPanningControls(a, b); var c = a.ownerDocument.createElement("div"); b.appendChild(c); var d = a.mapTypes[0].numZoomLevels; this.createZoomSlider(a, c, d); var e = this; j.addListener(a, "maptypechanged", function(f, g) { if(f.numZoomLevels != g.numZoomLevels) { la(c); e.createZoomSlider(a, c, g.numZoomLevels)} } ); return b} ; ia.prototype.getDefaultPosition = function() { return new fa(0, 9, 9)} ; ia.prototype.createPanningControls = function(a, b) { var c = q.create(lc, 59, 64, 0, 0, 0, false, null, a.ownerDocument); b.appendChild(c); var d = q.create(kc, 17, 17, 20, 0, 1, false, null, a.ownerDocument); L(d, "pointer"); j.bindClick(d, this, function(i) { a.pan(0, Math.floor(a.viewSize.height * 0.5)); B(i)} ); d.title = _mPanNorth; b.appendChild(d); var e = q.create(jc, 17, 17, 40, 20, 1, false, null, a.ownerDocument); L(e, "pointer"); j.bindClick(e, this, function(i) { a.pan( - Math.floor(a.viewSize.width * 0.5), 0); B(i)} ); e.title = _mPanEast; b.appendChild(e); var f = q.create(mc, 17, 17, 20, 40, 1, false, null, a.ownerDocument); L(f, "pointer"); j.bindClick(f, this, function(i) { a.pan(0, - Math.floor(a.viewSize.height * 0.5)); B(i)} ); f.title = _mPanSouth; b.appendChild(f); var g = q.create(nc, 17, 17, 0, 20, 1, false, null, a.ownerDocument); L(g, "pointer"); j.bindClick(g, this, function(i) { a.pan(Math.floor(a.viewSize.width * 0.5), 0); B(i)} ); g.title = _mPanWest; b.appendChild(g); var h = q.create(ic, 17, 17, 20, 20, 1, false, null, a.ownerDocument); L(h, "pointer"); j.bindClick(h, this, function(i) { a.closeInfoWindow(); if(a.lastPageCenter) { if(a.lastPageZoom != a.zoomLevel) { a.centerAndZoom(a.lastPageCenter, a.lastPageZoom)} else { a.recenterOrPanToLatLng(a.lastPageCenter)} } else if(a.lastLatLng) { a.recenterOrPanToLatLng(a.lastLatLng)} B(i)} ); h.title = _mLastResult; b.appendChild(h)} ; ia.prototype.createZoomSlider = function(a, b, c) { var d = 21; var e = 18; var f = 64; b.style.position = "absolute"; b.style.top = n(f); b.style.left = n(e); var g = s; var h = 8; this.sliderNotchHeight = h; var i = 20; var l = g + "dsliderbartop.png"; var m = 269; var r = i + this.sliderNotchHeight * c - 3; var p = g + "dsliderbartopshadow.png"; var y = 289; var D = g + "dsliderbarbottom.png"; var P = 8; var H = g + "dsliderbarbottomshadow.png"; var M = 30; var N = r + M; var u = a.ownerDocument.createElement("div"); u.style.position = "absolute"; u.style.left = n(0); u.style.top = n(0); u.style.width = n(d); u.style.height = n(r); u.style.zIndex = 0; u.style.overflow = "hidden"; b.appendChild(u); var G; G = q.create(p, d, y, 0, 0, - 1, false, null, a.ownerDocument); u.appendChild(G); this.sliderTopImage = (G = q.create(l, d, m, 0, i, 0, false, null, a.ownerDocument)); u.appendChild(G); u = a.ownerDocument.createElement("div"); u.style.position = "absolute"; u.style.left = n(0); u.style.top = n(0); u.style.width = n(d); u.style.height = n(N); u.style.zIndex = 1; b.appendChild(u); G = q.create(oc, 17, 17, 2, 0, 2, false, null, a.ownerDocument); L(G, "pointer"); j.bindClick(G, this, function(ca) { a.zoomTo(a.zoomLevel - 1); B(ca)} ); G.title = _mZoomIn; u.appendChild(G); this.zoomOut = (G = q.create(pc, 17, 17, 2, N - 17 - 2, 2, false, null, a.ownerDocument)); L(G, "pointer"); j.bindClick(G, this, function(ca) { a.zoomTo(a.zoomLevel + 1); B(ca)} ); G.title = _mZoomOut; u.appendChild(G); G = q.create(H, d, M, 0, r, - 1, false, null, a.ownerDocument); u.appendChild(G); this.sliderBottomImage = (G = q.create(D, d, P, 0, r, 0, false, null, a.ownerDocument)); u.appendChild(G); var Ca = 14 - h; var ra = this.sliderNotchHeight * c + Ca; u = a.ownerDocument.createElement("div"); u.style.position = "absolute"; u.style.left = n(1); u.style.top = n(i); u.style.width = n(d); u.style.height = n(ra); u.style.zIndex = 2; b.appendChild(u); var cb = q.create(qc, 22, 14, 0, 0, 2, false, null, a.ownerDocument); cb.title = _mZoomDrag; u.appendChild(cb); var Oc = new E(0, 1, 22, ra + 1); var sa = new aa(cb, 0, this.getRelativeZoomSliderPos(), Oc); j.bind(a, "zoom", this, function() { sa.moveTo(0, this.getRelativeZoomSliderPos())} ); if(browser.type == 1) { j.bind(sa, "dragstart", this, function() { this.savedOffset = { x : this.map.div.offsetLeft, y : this.map.div.offsetTop} ; this.map.hideOverlays()} ); j.bind(sa, "drag", this, function() { var ca = sa.top + Math.floor(this.sliderNotchHeight / 2); var Da = this.getZoomFactorFromRelativeCoord(ca); this.applyZoom(Da)} ); j.bind(sa, "dragend", this, function() { var ca = sa.top + Math.floor(this.sliderNotchHeight / 2); this.targetZoom = this.getZoomFromRelativeCoord(ca); this.currentZoom = this.getZoomFactorFromRelativeCoord(ca); this.zoomInterval = jb(this, this.animateZoom, 50)} )} else { j.bind(sa, "dragend", this, function() { var ca = sa.top + Math.floor(this.sliderNotchHeight / 2); this.map.zoomTo(this.getZoomFromRelativeCoord(ca))} )} L(u, "pointer"); u.title = _mZoomSet; var Pc = u; j.bindClick(u, this, function(ca) { var Da; if(browser.type == 1) { Da = window.event.offsetY} else { var Qc = nb(Pc); Da = ca.pageY - Qc.y - 2} B(ca); a.zoomTo(this.getZoomFromRelativeCoord(Da))} )} ; ia.prototype.getRelativeZoomSliderPos = function() { return 1 + this.map.zoomLevel * this.sliderNotchHeight} ; ia.prototype.getZoomFromRelativeCoord = function(a) { var b = this.map.spec.numZoomLevels; var c = Math.floor((a - 1)/this.sliderNotchHeight); return Math.max(0, Math.min(b - 1, c))} ; ia.prototype.getZoomFactorFromRelativeCoord = function(a) { var b = this.map.spec.numZoomLevels; var c = (a - 1)/this.sliderNotchHeight; return Math.max(0, Math.min(b - 1, c))} ; ia.prototype.applyZoom = function(a) { var b = this.map; var c = Math.floor(Math.log(this.map.viewSize.width) * Math.LOG2E - 2); var d = b.zoomLevel - a; if(d > c) { d = c} else if(d <- c) { d =- c} var e = Math.pow(2, d); b.div.style.zoom = e; var f = b.viewSize.width * b.centerScreen.x; var g = b.viewSize.height * b.centerScreen.y; b.div.style.left = n((this.savedOffset.x - f) * e + f); b.div.style.top = n((this.savedOffset.y - g) * e + g)} ; ia.prototype.animateZoom = function() { var a = this.map; this.currentZoom = this.currentZoom + 0.3 * (this.targetZoom - this.currentZoom); if(Math.abs(this.targetZoom - this.currentZoom) < 0.05) { a.div.style.left = n(this.savedOffset.x); a.div.style.top = n(this.savedOffset.y); a.div.style.zoom = 1; a.showOverlays(); a.zoomTo(this.targetZoom); this.savedOffset = null; window.clearInterval(this.zoomInterval)} else { this.applyZoom(this.currentZoom)} } ; function Ha() { } Ha.prototype.initialize = function(a) { this.map = a; var b = a.ownerDocument.createElement("div"); a.container.appendChild(b); var c = q.create(fc, 18, 18, 9, 0, 1, false, null, a.ownerDocument); L(c, "pointer"); j.bindClick(c, this, function(i) { a.pan(0, Math.floor(a.viewSize.height * 0.5)); B(i)} ); c.title = _mPanNorth; b.appendChild(c); var d = q.create(ec, 18, 18, 18, 18, 1, false, null, a.ownerDocument); L(d, "pointer"); j.bindClick(d, this, function(i) { a.pan( - Math.floor(a.viewSize.width * 0.5), 0); B(i)} ); d.title = _mPanEast; b.appendChild(d); var e = q.create(gc, 18, 18, 9, 36, 1, false, null, a.ownerDocument); L(e, "pointer"); j.bindClick(e, this, function(i) { a.pan(0, - Math.floor(a.viewSize.height * 0.5)); B(i)} ); e.title = _mPanSouth; b.appendChild(e); var f = q.create(hc, 18, 18, 0, 18, 1, false, null, a.ownerDocument); L(f, "pointer"); j.bindClick(f, this, function(i) { a.pan(Math.floor(a.viewSize.width * 0.5), 0); B(i)} ); f.title = _mPanWest; b.appendChild(f); var g = q.create(rb, 18, 18, 9, 57, 1, false, null, a.ownerDocument); L(g, "pointer"); j.bindClick(g, this, function(i) { a.zoomTo(a.zoomLevel - 1); B(i)} ); g.title = _mZoomIn; b.appendChild(g); var h = q.create(sb, 18, 18, 9, 75, 1, false, null, a.ownerDocument); L(h, "pointer"); j.bindClick(h, this, function(i) { a.zoomTo(a.zoomLevel + 1); B(i)} ); h.title = _mZoomOut; b.appendChild(h); return b} ; Ha.prototype.getDefaultPosition = function() { return new fa(0, 8, 8)} ; function Ia() { } Ia.prototype.initialize = function(a) { this.map = a; var b = a.ownerDocument.createElement("div"); b.style.width = n(18); b.style.height = n(36); a.container.appendChild(b); var c = q.create(rb, 18, 18, 0, 0, 1, false, null, a.ownerDocument); L(c, "pointer"); j.bindClick(c, this, function(e) { a.zoomTo(a.zoomLevel - 1); B(e)} ); c.title = _mZoomIn; b.appendChild(c); var d = q.create(sb, 18, 18, 0, 18, 1, false, null, a.ownerDocument); L(d, "pointer"); j.bindClick(d, this, function(e) { a.zoomTo(a.zoomLevel + 1); B(e)} ); d.title = _mZoomOut; b.appendChild(d); return b} ; Ia.prototype.getDefaultPosition = function() { return new fa(0, 6, 6)} ; var dc = s + "poweredby.png"; function wa(a, b) { this.enableTermsLink = a; this.enableGoogleCopyright = b} wa.prototype.initialize = function(a) { this.map = a; var b = a.ownerDocument.createElement("div"); b.style.whiteSpace = "nowrap"; a.applyControlStyles(b); a.container.appendChild(b); this.div = b; this.copyrightSpan = a.ownerDocument.createElement("span"); b.appendChild(this.copyrightSpan); if(this.enableTermsLink) { var c = a.ownerDocument.createElement("a"); c.href = _mTermsURL; c.appendChild(a.ownerDocument.createTextNode(_mTerms)); j.addBuiltInListener(c, "click", mb); b.appendChild(c); this.termsLink = c; this.termsLink.className = "noprint"} this.updateColor(); this.updateNotice(); j.bind(this.map, "maptypechanged", this, this.updateColor); j.bind(this.map, "moveend", this, this.updateNotice); return b} ; wa.prototype.getDefaultPosition = function() { return new fa(3, 2, 2)} ; wa.prototype.updateColor = function() { if(this.map.spec.getTextColor) { this.div.style.color = this.map.spec.getTextColor()} else { this.div.style.color = "black"} if(this.termsLink) { if(this.map.spec.getLinkColor) { this.termsLink.style.color = this.map.spec.getLinkColor()} else { this.termsLink.style.color = "#7777cc"} } } ; wa.prototype.updateNotice = function() { var a = []; if(this.enableGoogleCopyright) { a.push(_mGoogleCopy)} if(this.map.spec.getCopyright) { var b = this.map.spec.getCopyright(this.map); if(b) { a.push(b)} } if(this.enableTermsLink) { a.push("")} ka(this.copyrightSpan, a.join(" - "))} ; function Ta() { } Ta.prototype.initialize = function(a) { var b = a.ownerDocument.createElement("div"); a.applyControlStyles(b); L(b, "auto"); b.style.height = n(30); var c = a.ownerDocument.createElement("a"); c.href = fb; c.title = _mSiteName; c.appendChild(q.create(dc, 62, 30, null, null, false, null, a.ownerDocument)); b.appendChild(c); c.onclick = function() { var d = new v(); d.setAllMapValues(a); top.location = d.getURL(true, false, "/maps"); return false} ; a.container.appendChild(b); this.map = a; return b} ; Ta.prototype.remove = function() { ua(this.div); this.div = null} ; Ta.prototype.getDefaultPosition = function() { return new fa(2, 2, 0)} ; var qd = s + "leftbar.png"; var rd = s + "topbar.png"; var nd = s + "bottombar.png"; var od = s + "horibar400.png"; var pd = s + "horibarcap.png"; function Gb(a, b, c, d) { this.fpsLength = a; this.metricLength = b; this.fpsText = c; this.metricText = d} function oa(a) { this.maxLength = a || 125} oa.prototype.initialize = function(a) { this.map = a; this.div = a.ownerDocument.createElement("div"); this.fps = document.createElement("div"); this.metric = document.createElement("div"); a.applyControlStyles(this.div); a.applyControlStyles(this.fps); a.applyControlStyles(this.metric); this.div.style.height = n(26); var b = this.decideScale(a, this.maxLength); var c = b.fpsLength; var d = b.metricLength; var e = Math.max(c, d); this.fps.style.left = n(8); this.fps.style.width = n(e); this.fps.style.bottom = n(15); this.metric.style.left = n(8); this.metric.style.width = n(e); this.metric.style.top = n(16); this.setText(this.fps, b.fpsText); this.setText(this.metric, b.metricText); this.leftBar = q.create(qd, 4, 26, 0, 1, 0, false); this.horizontalBar = q.create(od, e, 4, 3, 12, 0, true); this.horizontalBarCap = q.create(pd, 1, 4, e + 3, 12, 1, false); this.rightTopBar = q.create(rd, 4, 12, c, 1, 1, false); this.rightBottomBar = q.create(nd, 4, 12, d, 15, 1, false); a.container.appendChild(this.div); this.div.appendChild(this.leftBar); this.div.appendChild(this.horizontalBar); this.div.appendChild(this.rightTopBar); this.div.appendChild(this.rightBottomBar); this.div.appendChild(this.horizontalBarCap); this.div.appendChild(this.fps); this.div.appendChild(this.metric); this.div.title = _mScale; j.bind(a, "moveend", this, this.update); j.bind(a, "zoom", this, this.update); j.bind(a, "move", this, this.update); j.bind(a, "maptypechanged", this, this.updateColor); this.updateColor(); return this.div} ; oa.prototype.getDefaultPosition = function() { return new fa(2, 68, 4)} ; oa.prototype.updateColor = function() { var a = "black"; if(this.map.spec.getTextColor) { a = this.map.spec.getTextColor()} this.fps.style.color = a; this.metric.style.color = a} ; oa.prototype.update = function() { var a = this.decideScale(this, this.maxLength); var b = Math.max(a.fpsLength, a.metricLength); this.setText(this.fps, a.fpsText); this.setText(this.metric, a.metricText); this.width = b + 4; this.rightTopBar.left = a.fpsLength; this.rightBottomBar.left = a.metricLength; this.horizontalBar.width = b; this.horizontalBarCap.left = b + 3; this.div.style.width = n(b + 4); this.rightTopBar.style.left = n(a.fpsLength); this.rightBottomBar.style.left = n(a.metricLength); this.horizontalBar.style.width = n(b); this.horizontalBarCap.style.left = n(b + 3); this.metric.style.width = n(a.metricLength); this.fps.style.width = n(a.fpsLength)} ; oa.prototype.decideScale = function() { var a = this.map.spec.getLatLng(this.map.centerBitmap.x - this.maxLength / 2, this.map.centerBitmap.y, this.map.zoomLevel); var b = this.map.spec.getLatLng(this.map.centerBitmap.x + this.maxLength / 2, this.map.centerBitmap.y, this.map.zoomLevel); var c = Bd(a, b); var d = this.round125(c); var e; var f; if(d >= 1000) { var g = this.round125(c / 1000); f = Math.round(this.maxLength * g / (c / 1000)); e = g + " " + _mKilometers} else { var f = Math.round(this.maxLength * d / c); var e = d + " " + _mMeters} var h = c / 1609.344; var i = c * 3.28084; var l; var m; if(h >= 1) { var r = this.round125(h); l = Math.round(this.maxLength * r / h); m = r + " " + _mMiles} else { var p = this.round125(i); l = Math.round(this.maxLength * p / i); m = p + " " + _mFeet} if(d < 1) { return new Gb(0, 0, "", "")} else { return new Gb(l, f, m, e)} } ; oa.prototype.round125 = function(a) { var b = a; if(b > 1) { var c = 0; while(b >= 10) { b = b / 10; c = c + 1} if(b >= 5) { b = 5} else if(b >= 2) { b = 2} else { b = 1} while(c > 0) { b = b * 10; c = c - 1} } return b} ; oa.prototype.setText = function(a, b) { if(a.innerHTML != b) { ka(a, b)} } ; var $c = s + "l1.png"; var cd = s + "m1.png"; var gd = s + "r1.png"; var ad = s + "l5.png"; var dd = s + "m5.png"; var hd = s + "r5.png"; var bd = s + "l1e.png"; var fd = s + "m1e.png"; var jd = s + "r1e.png"; var Cb = s + "l5e.png"; var ed = s + "m5e.png"; var id = s + "r5e.png"; function kd(a, b, c, d, e, f) { this.mapType = a; this.div = b; this.left = c; this.right = e; this.middle = d; this.text = f} function da(a) { this.tiny = a; if(a) { this.buttonWidth = 50} else { this.buttonWidth = 75} } da.prototype.initialize = function(a) { var b = a.ownerDocument.createElement("div"); a.applyControlStyles(b); b.style.height = n(19); a.container.appendChild(b); this.map = a; this.div = b; this.createButtons(); this.updateButtons(); j.bind(a, "moveend", this, this.updateMapTypes); j.bind(a, "maptypechanged", this, this.updateButtons); return b} ; da.prototype.createButtons = function() { var a = []; for(var b = 0; b < this.map.mapTypes.length; b++) { var c = this.map.mapTypes[b]; if(this.map.shouldDisplayMapType(c)) { var d = this.createButton(this.map, c, a.length, this.div); a.push(d)} } this.div.style.width = n(this.buttonWidth * a.length + 2 * (a.length - 1)); this.buttons = a} ; da.prototype.clearButtons = function() { la(this.div); this.buttons = null} ; da.prototype.mapTypeIsDisplayed = function(a) { for(var b = 0; b < this.buttons.length; b++) { if(this.buttons[b].mapType == a) { return true} } return false} ; da.prototype.updateMapTypes = function() { var a = this.map.getBoundsLatLng(); var b = false; for(var c = 0; c < this.map.mapTypes.length; c++) { var d = this.map.mapTypes[c]; if(this.map.shouldDisplayMapType(d) != this.mapTypeIsDisplayed(d)) { b = true; break} } if(b) { this.clearButtons(); this.createButtons(); this.updateButtons()} } ; da.prototype.getDefaultPosition = function() { return new fa(1, 7, 7)} ; da.prototype.createButton = function(a, b, c, d) { var e = a.ownerDocument.createElement("div"); e.style.height = n(19); e.style.width = n(this.buttonWidth); e.style.overflow = "hidden"; e.style.position = "absolute"; e.style.top = n(0); e.style.left = n(c * (this.buttonWidth + 2)); d.appendChild(e); var f = q.create(La, 2, 19, 0, 0, 0, false, null, a.ownerDocument); e.appendChild(f); var g = this.buttonWidth - 4 - 2; var h = q.create(La, g, 19, 2, 0, 0, true, null, a.ownerDocument); e.appendChild(h); var i = q.create(La, 4, 19, null, null, 0, false, null, a.ownerDocument); i.style.position = "absolute"; i.style.top = n(0); i.style.right = n(0); e.appendChild(i); var l = a.ownerDocument.createElement("div"); l.style.position = "absolute"; l.style.left = n(2); l.style.width = n(g); l.style.right = n(0); l.style.height = n(19); l.style.fontSize = n(12); l.style.textAlign = "center"; l.style.paddingTop = n(1); l.style.zIndex = 1; var m; if(this.tiny && b.getShortLinkText) { m = b.getShortLinkText()} else { m = b.getLinkText()} e.appendChild(l); l.appendChild(a.ownerDocument.createTextNode(m)); L(e, "pointer"); j.addBuiltInListener(e, "click", function() { a.setMapType(b)} ); return new kd(b, e, f, h, i, l)} ; da.prototype.updateButtons = function() { var a = this.map.getCurrentMapType(); for(var b = 0; b < this.buttons.length; b++) { var c = this.buttons[b]; var d = c.mapType.isSpecial && c.mapType.isSpecial(); if(c.mapType == a) { if(d) { R.writeURL(Cb)} q.setImage(c.left, d ? Cb : ad); q.setImage(c.middle, d ? ed : dd, true); q.setImage(c.right, d ? id : hd); c.text.style.fontWeight = "bold"} else { q.setImage(c.left, d ? bd : $c); q.setImage(c.middle, d ? fd : cd, true); q.setImage(c.right, d ? jd : gd); c.text.style.fontWeight = "normal"} } } ; function Ma(a) { this.anchorLevel = null; this.anchor = new x(0, 0); this.spec = null; this.span = new I(ha, ha); this.points = null; this.map = a; j.bind(this.map, "moveend", this, this.onMapMoveEnd); j.bind(this.map, "resize", this, this.onMapResize)} Ma.prototype.onMapMoveEnd = function() { if(this.anchorLevel != this.map.zoomLevel || this.spec != this.map.spec) { this.reset(); this.addPoint(0, 0, true); return} var a = this.map.getCenterLatLng(); var b = Math.round((a.x - this.anchor.x)/this.span.width); var c = Math.round((a.y - this.anchor.y)/this.span.height); this.addPoint(b, c, true)} ; Ma.prototype.onMapResize = function() { this.reset(); this.addPoint(0, 0, false)} ; Ma.prototype.reset = function() { this.map.getCenterLatLng(this.anchor); this.map.getSpanLatLng(this.span); this.spec = this.map.spec; this.anchorLevel = this.map.zoomLevel; this.points = new Object()} ; Ma.prototype.addPoint = function(a, b, c) { var d = a + "," + b; if(this.points[d])return; this.points[d] = 1; if(c) { var e = new v(); e.setAllMapValues(this.map); var f = new x(this.anchor.x + a * this.span.width, this.anchor.y + b * this.span.height); e.setValue("vp", e.getLatLngArg(f)); if(window._apiKey) { e.setValue("key", window._apiKey)} var g = e.getURL(true, false, "/maps"); R.writeURL(g); if(!this.sender) { this.sender = document.createElement("img"); this.sender.style.position = "absolute"; this.sender.style.visibility = "hidden"; this.sender.style.top = n( - 10); this.sender.style.left = n( - 10); this.sender.style.width = n(1); this.sender.style.height = n(1); document.body.appendChild(this.sender)} this.sender.src = g} } ; var U = new Z(); U.image = s + "marker.png"; U.shadow = s + "shadow50.png"; U.iconSize = new I(20, 34); U.shadowSize = new I(37, 34); U.iconAnchor = new x(9, 34); U.infoWindowAnchor = new x(9, 2); U.infoShadowAnchor = new x(18, 25); U.transparent = s + "markerTransparent.png"; U.imageMap = [9, 0, 6, 1, 4, 2, 2, 4, 0, 8, 0, 12, 1, 14, 2, 16, 5, 19, 7, 23, 8, 26, 9, 30, 9, 34, 11, 34, 11, 30, 12, 26, 13, 24, 14, 21, 16, 18, 18, 16, 20, 12, 20, 8, 18, 4, 16, 2, 15, 1, 13, 0]; U.printImage = s + "markerie.gif"; U.mozPrintImage = s + "markerff.gif"; U.printShadow = s + "dithshadow.gif"; var pa = new Z(); pa.image = s + "ad_marker.png"; pa.shadow = s + "ad_shadow50.png"; pa.iconSize = new I(12, 20); pa.shadowSize = new I(22, 20); pa.iconAnchor = new x(7, 20); pa.infoWindowAnchor = new x(7, 2); pa.infoShadowAnchor = new x(12, 14); function za() { } function va(a, b, c) { this.markers = a; this.panelStyle = b; this.xml = c} function Sa(a, b, c) { this.polyline = a; this.segments = b; this.xml = c} function eb(a, b, c) { this.id = a; this.description = b; this.pointIndex = c} za.fromXml = function(a) { var b = []; var c = a.getElementsByTagName("overlay"); for(var d = 0; d < c.length; d++) { b.push(va.fromXml(c[d]))} var e = b.length; var f = a.getElementsByTagName("ads"); for(var d = 0; d < f.length; d++) { b.push(va.AdsFromXml(f[d]))} var g = new za(); g.query = $(Q(a, "query")); g.tab = $(Q(a, "tab")); g.title = $(Q(a, "title")); g.error = Q(a, "error"); g.spelling = Q(a, "spelling"); g.refinements = Q(a, "refinements"); g.center = x.fromLatLngXml(Q(a, "center")); g.viewSpan = I.fromLatLngXml(Q(a, "span")); g.searchCenter = x.fromLatLngXml(Q(a, "searchcenter")); g.searchSpan = I.fromLatLngXml(Q(a, "searchspan")); g.overlays = b; g.adsOverlayIndex = e; g.directions = Sa.fromXml(Q(a, "directions")); g.debug = Ad(Q(a, "debug")); g.xml = a; return g} ; va.fromXml = function(a) { if(!a)return null; var b = []; var c = a.getElementsByTagName("location"); for(var d = 0; d < c.length; d++) { b.push(J.fromXml(c[d]))} return new va(b, a.getAttribute("panelStyle"), a)} ; va.AdsFromXml = function(a) { if(!a)return null; var b = []; var c = a.getElementsByTagName("ad"); for(var d = 0; d < c.length; d++) { var e = c[d].getAttribute("type"); if(e == "geo_promote" || e == "geo_normal") { b.push(J.AdFromXml(c[d]))} } return new va(b, a.getAttribute("panelStyle"), a)} ; Sa.fromXml = function(a) { if(!a)return null; var b = []; var c = Q(a, "segments"); var d = c.getElementsByTagName("segment"); for(var e = 0; e < d.length; ++e) { b.push(eb.fromXml(d[e]))} return new Sa(K.fromXml(Q(a, "polyline")), b, a)} ; eb.fromXml = function(a) { if(!a)return null; return new eb(a.getAttribute("id"), $(a), parseInt(a.getAttribute("pointIndex")))} ; K.fromXml = function(a) { if(!a)return null; return K.fromEncoded($(Q(a, "points")), $(Q(a, "levels")), parseInt(a.getAttribute("numLevels")), parseInt(a.getAttribute("zoomFactor")))} ; J.fromXml = function(a) { if(!a)return null; var b = Z.fromXml(Q(a, "icon")); if(!b) { return { xml : a} } var c = new J(x.fromLatLngXml(Q(a, "point")), b); c.id = a.getAttribute("id"); c.infoStyle = a.getAttribute("infoStyle"); c.xml = a; return c} ; J.AdFromXml = function(a) { if(!a)return null; var b = Z.fromXml(Q(a, "icon")); var c = new J(x.fromLatLngXml(Q(a, "point")), b); c.type = a.getAttribute("type"); c.infoStyle = a.getAttribute("infoStyle"); c.id = a.getAttribute("id"); c.xml = a; c.logUrl = a.getAttribute("logUrl"); return c} ; Z.fromXml = function(a) { if(!a) { return null} var b = a.getAttribute("class"); switch(b) { case "local" : { var c = new Z(U); break} case "geoad" : { var c = new Z(pa); break} default : return null} c.setImage(a.getAttribute("image")); return c} ; x.fromLatLngXml = function(a) { if(!a)return null; return new x(parseFloat(a.getAttribute("lng")), parseFloat(a.getAttribute("lat")))} ; I.fromLatLngXml = function(a) { if(!a)return null; return new I(parseFloat(a.getAttribute("lng")), parseFloat(a.getAttribute("lat")))} ; va.prototype.getMarkerById = function(a) { for(var b = 0; b < this.markers.length; b++) { if(this.markers[b].id == a)return this.markers[b]} return null} ; Sa.prototype.getSegmentById = function(a) { for(var b = 0; b < this.segments.length; b++) { if(this.segments[b].id == a)return this.segments[b]} return null} ; var Ec = s + "iws_nw.png"; var Cc = s + "iws_n.png"; var Dc = s + "iws_ne.png"; var Bc = s + "iws_e.png"; var Ac = s + "iws_c.png"; var Ic = s + "iws_w.png"; var Hc = s + "iws_sw.png"; var wb = s + "iws_s.png"; var Gc = s + "iws_se.png"; var Fc = s + "iws_tap.png"; var xc = s + "iw_nw.png"; var vc = s + "iw_n.png"; var wc = s + "iw_ne.png"; var uc = s + "iw_e.png"; var sc = s + "iw_c.png"; var Nc = s + "iw_w.png"; var Jc = s + "iw_sw.png"; var vb = s + "iw_s.png"; var zc = s + "iw_se.png"; var yc = s + "iw_tap.png"; var Lc = s + "iw_tab.png"; var Kc = s + "iw_tabback.png"; var Mc = s + "iw_tabstub.png"; function A(a, b) { this.createWindow(a); this.createShadow(b); if(browser.type != 1) { this.createMask()} else { this.maskPng = null} this.createContentArea(); this.createCloseButton(); this.setSize(208, 69); this.hide(); jb(this, this.checkSize, 100); this.infoWindowContract = new na(); this.infoWindowContract.addContainer(this.contentArea); this.infoWindowContract.addContainer(this.offscreenArea); this.infoWindowContract.addEvent("click"); this.infoWindowContract.addEvent("submit"); this.createTabs(2)} A.prototype.setContentSize = function(a, b) { this.setSize(a - (this.window.w.width - 15) * 2, b - (this.window.n.height - 15) * 2)} ; A.prototype.setSize = function(a, b) { if(a < 0)a = 0; if(b < 0)b = 0; this.width = a; this.height = b; this.setWindowSize(a, b); this.setShadowSize(a, b); if(this.hasMask()) { this.setMaskSize()} this.closeButton.style.left = n(this.getTotalWidth() - this.closeButton.width - 10 - 1); this.closeButton.style.top = n(10)} ; A.prototype.getWindowHeight = function() { return this.window.c.height + 2 * this.window.n.height} ; A.prototype.getTotalHeight = function() { return this.height + this.window.pointer.height + this.window.n.height} ; A.prototype.getTotalHeightAboveGround = function() { var a = this.pixelOffset ? this.pixelOffset.height : 0; return this.getTotalHeight() - a} ; A.prototype.getTotalShadowHeight = function() { return Math.floor(this.height / 4) + this.shadow.pointer.height + this.shadow.nw.height} ; A.prototype.getTotalWidth = function() { return this.width + this.window.w.width + this.window.e.width} ; A.prototype.getOffsetLeft = function() { return this.windowDiv.offsetLeft} ; A.prototype.getOffsetTop = function() { return this.windowDiv.offsetTop} ; A.prototype.setWindowSize = function(a, b) { this.window.n.style.width = a + "px"; this.window.e.style.height = b + "px"; this.window.c.style.width = a + "px"; this.window.c.style.height = b + "px"; this.window.w.style.height = b + "px"; var c = this.calculatePointerOffset(a); this.window.s1.style.width = c + "px"; this.window.pointer.style.left = c + this.window.sw.width + "px"; this.window.s2.style.left = c + this.window.pointer.width + this.window.sw.width + "px"; this.window.s2.style.width = a - c - this.window.pointer.width + "px"; var d = a + this.window.w.width + "px"; this.window.ne.style.left = d; this.window.e.style.left = d; this.window.se.style.left = d; var e = b + this.window.n.height + "px"; this.window.sw.style.top = e; this.window.s1.style.top = e; this.window.pointer.style.top = e; this.window.s2.style.top = e; this.window.se.style.top = e} ; A.prototype.setShadowSize = function(a, b) { a -= 15; var c = Math.floor(b / 4); var d = a + this.shadow.nw.width; var e = this.calculatePointerOffset(a) - 41; var f = n(c + this.shadow.n.height); var g = c + this.shadow.nw.height; var h = this.shadow.nw.height; var i = Math.floor(b / 2) + 20; var l = this.shadow.nw.height + a + 70; var m = h + i; if(e >= 0) { this.shadow.s1Div.style.width = n(e); this.shadow.s1Div.style.visibility = ""} else { this.shadow.s1Div.style.visibility = "hidden"} this.shadow.pointer.style.left = n(e + this.shadow.sw.width); this.shadow.s2Div.style.left = n(e + this.shadow.pointer.width + this.shadow.sw.width); this.shadow.s2Div.style.width = n(a - e - this.shadow.pointer.width); this.shadow.sw.style.top = f; this.shadow.s1Div.style.top = f; this.shadow.pointer.style.top = f; this.shadow.s2Div.style.top = f; this.shadow.se.style.top = f; this.shadow.se.style.left = n(d); this.shadow.wDiv.style.height = n(c); this.shadow.wDiv.style.left = n(h); this.shadow.wDiv.style.width = n(i); this.shadow.w.style.left = n(c - this.shadow.w.width + 80); this.shadow.eDiv.style.height = n(c); this.shadow.eDiv.style.left = n(l); this.shadow.eDiv.style.width = n(b); this.shadow.e.style.left = n(c - this.shadow.w.width + 80); this.shadow.cDiv.style.width = n(l - m); this.shadow.cDiv.style.height = n(c); this.shadow.cDiv.style.left = n(m); this.shadow.nw.style.left = n(g); this.shadow.nDiv.style.width = n(a - 30); this.shadow.nDiv.style.left = n(g + this.shadow.nw.width); this.shadow.ne.style.left = n(d + g - 30)} ; A.prototype.setMaskSize = function() { this.maskPng.style.width = this.getTotalWidth() + "px"; this.maskPng.style.height = this.getTotalHeight() + "px"; var a = this.getTotalWidth(); var b = this.getWindowHeight(); var c = this.getTotalHeight(); var d = this.window.pointer.offsetLeft; var e = d + this.window.pointer.width; var f = d + 53; var g = d + 4; var h = ","; var i = this.getMaskMap(); if(i) { var l = i.firstChild; l.setAttribute("coords", "0,0,0," + b + h + f + h + b + h + g + h + c + h + e + h + b + h + a + h + b + h + a + ",0")} } ; A.prototype.hide = function() { if(this.windowDiv) { this.windowDiv.style.display = "none"} this.shadowDiv.style.display = "none"} ; A.prototype.show = function() { this.windowDiv.style.display = ""; this.shadowDiv.style.display = ""; this.windowDiv.style.visibility = "visible"; this.shadowDiv.style.visibility = "visible"; this.contentArea.style.visibility = "visible"} ; A.prototype.isVisible = function() { return this.windowDiv && this.windowDiv.style.display != "none"} ; A.prototype.positionAt = function(a, b, c) { this.position = { x : a, y : b} ; this.positionOffset = c; var d = this.calculatePointerOffset(this.width) + this.window.w.width + 5; var e = this.height + this.window.n.height + this.window.s1.height; this.left = a - d; this.top = b - e; var f = 0; var g = this.getTotalHeight() - this.getTotalShadowHeight(); if(c) { this.left += c.width; this.top += c.height; f -= Math.floor(c.height / 2) - c.width + 4; g -= Math.floor(c.height / 2) - 4} this.windowDiv.style.left = n(this.left); this.windowDiv.style.top = n(this.top); this.shadowDiv.style.left = n(this.left + f); this.shadowDiv.style.top = n(this.top + g)} ; A.prototype.calculatePointerOffset = function(a) { return Math.floor(a / 4)} ; A.prototype.createCroppingDiv = function(a, b) { a.style.overflow = "hidden"; a.style.position = "absolute"; a.style.width = b.width + "px"; a.style.height = b.height + "px"; a.style.left = b.style.left; a.style.top = b.style.top; a.style.zIndex = b.style.zIndex; b.style.left = "0px"; b.style.top = "0px"; a.appendChild(b); return a} ; A.prototype.createWindow = function(a) { this.window = new Object(); this.window.nw = q.create(xc, 25, 25, 0, 0, 0, false); this.window.n = q.create(vc, 640, 25, this.window.nw.width, 0, 0, true); this.window.ne = q.create(wc, 25, 25, 0, 0, 0, false); this.window.w = q.create(Nc, 25, 640, 0, this.window.nw.height, 0, true); this.window.c = q.create(sc, 640, 640, this.window.w.width, this.window.n.height, 0, true); this.window.e = q.create(uc, 25, 640, 0, this.window.ne.height, 0, true); this.window.sw = q.create(Jc, 25, 96, 0, 0, 0, false); this.window.s1 = q.create(vb, 640, 96, this.window.sw.width, 0, 0, true); this.window.pointer = q.create(yc, 98, 96, 0, 0, 0, false); this.window.s2 = q.create(vb, 640, 96, 0, 0, 0, true); this.window.se = q.create(zc, 25, 96, 0, 0, 0, false); this.windowDiv = window.document.createElement("div"); this.windowDiv.style.position = "absolute"; this.windowDiv.style.left = "0px"; this.windowDiv.style.top = "0px"; this.windowDiv.className = "noprint"; a.appendChild(this.windowDiv); j.bindDom(this.windowDiv, "mousedown", this, this.filterMouse); j.bindDom(this.windowDiv, "dblclick", this, this.filterMouse); this.windowDiv.appendChild(this.window.nw); this.windowDiv.appendChild(this.window.n); this.windowDiv.appendChild(this.window.ne); this.windowDiv.appendChild(this.window.w); this.windowDiv.appendChild(this.window.c); this.windowDiv.appendChild(this.window.e); this.windowDiv.appendChild(this.window.sw); this.windowDiv.appendChild(this.window.s1); this.windowDiv.appendChild(this.window.pointer); this.windowDiv.appendChild(this.window.s2); this.windowDiv.appendChild(this.window.se)} ; A.prototype.createShadow = function(a) { this.shadow = new Object(); this.shadow.nw = q.create(Ec, 70, 30, 0, 0, 0, false); this.shadow.n = q.create(Cc, 640, 30, this.shadow.nw.width, 0, 0, false); this.shadow.ne = q.create(Dc, 70, 30, 0, 0, 0, false); this.shadow.w = q.create(Ic, 360, 280, 0, this.shadow.nw.height, 0, false); this.shadow.c = q.create(Ac, 640, 640, this.shadow.w.width, this.shadow.n.height, 0, false); this.shadow.e = q.create(Bc, 360, 280, 0, this.shadow.ne.height, 0, false); this.shadow.sw = q.create(Hc, 70, 60, 0, 0, 0, false); this.shadow.s1 = q.create(wb, 320, 60, this.shadow.sw.width, 0, 0, false); this.shadow.pointer = q.create(Fc, 140, 60, 0, 0, 0, false); this.shadow.s2 = q.create(wb, 320, 60, 0, 0, 0, false); this.shadow.se = q.create(Gc, 70, 60, 0, 0, 0, false); this.shadowDiv = window.document.createElement("div"); this.shadowDiv.style.position = "absolute"; this.shadowDiv.style.left = "0px"; this.shadowDiv.style.top = "0px"; this.shadowDiv.className = "noprint"; a.appendChild(this.shadowDiv); this.shadow.nDiv = window.document.createElement("div"); this.shadow.wDiv = window.document.createElement("div"); this.shadow.eDiv = window.document.createElement("div"); this.shadow.s1Div = window.document.createElement("div"); this.shadow.s2Div = window.document.createElement("div"); this.shadow.cDiv = window.document.createElement("div"); this.shadowDiv.appendChild(this.shadow.nw); this.shadowDiv.appendChild(this.shadow.nDiv); this.shadowDiv.appendChild(this.shadow.ne); this.shadowDiv.appendChild(this.shadow.wDiv); this.shadowDiv.appendChild(this.shadow.cDiv); this.shadowDiv.appendChild(this.shadow.eDiv); this.shadowDiv.appendChild(this.shadow.sw); this.shadowDiv.appendChild(this.shadow.s1Div); this.shadowDiv.appendChild(this.shadow.pointer); this.shadowDiv.appendChild(this.shadow.s2Div); this.shadowDiv.appendChild(this.shadow.se); this.createCroppingDiv(this.shadow.nDiv, this.shadow.n); this.createCroppingDiv(this.shadow.wDiv, this.shadow.w); this.createCroppingDiv(this.shadow.eDiv, this.shadow.e); this.createCroppingDiv(this.shadow.s1Div, this.shadow.s1); this.createCroppingDiv(this.shadow.s2Div, this.shadow.s2); this.createCroppingDiv(this.shadow.cDiv, this.shadow.c)} ; A.prototype.hasMask = function() { return this.maskPng != null} ; A.prototype.getMaskMap = function() { return document.getElementById(this.maskMapId)} ; var sd = s + "transparent.gif"; var Qb = 0; A.prototype.createMask = function() { var a = document.createElement("map"); this.maskMapId = "iwMap" + Qb; a.setAttribute("id", this.maskMapId); a.setAttribute("name", this.maskMapId); Qb++; this.windowDiv.appendChild(a); var b = document.createElement("area"); b.setAttribute("shape", "poly"); b.setAttribute("coords", ""); b.setAttribute("href", "javascript:void(0)"); a.appendChild(b); for(var c = 0; c < 10; c++) { var b = document.createElement("area"); b.setAttribute("shape", "poly"); b.setAttribute("coords", ""); b.setAttribute("href", "javascript:void(0)"); a.appendChild(b)} this.maskPng = q.create(sd, 0, 0, 0, 0, 0, false); this.windowDiv.appendChild(this.maskPng); this.maskPng.setAttribute("usemap", "#" + this.maskMapId); this.nextMaskArea = 1} ; A.prototype.addAreaToMaskMap = function(a, b) { if(this.hasMask()) { var c = this.getMaskMap(); if(this.nextMaskArea < c.childNodes.length) { var d = c.childNodes[this.nextMaskArea]; d.setAttribute("coords", a.join(",")); d.listener = j.addBuiltInListener(d, "mousedown", b); this.nextMaskArea++} } } ; A.prototype.clearMaskMap = function() { if(this.hasMask()) { var a = this.getMaskMap(); for(var b = 1; b < a.childNodes.length; b++) { var c = a.childNodes[b]; c.setAttribute("coords", ""); if(c.listener) { c.listener.detach(); c.listener = null} } this.nextMaskArea = 1} } ; A.prototype.getMaskLeft = function() { return this.windowDiv.offsetLeft} ; A.prototype.getMaskTop = function() { return this.windowDiv.offsetTop} ; A.prototype.createContentArea = function() { var a = window.document.createElement("DIV"); a.style.position = "absolute"; a.style.left = n(15); a.style.top = n(15); a.style.zIndex = 3; L(a, "auto"); j.bindDom(a, "mousedown", this, mb); this.windowDiv.appendChild(a); this.contentArea = a; a = window.document.createElement("DIV"); a.style.position = "absolute"; a.style.left = n( - screen.width); a.style.top = n( - screen.height); a.style.width = n(screen.width); a.style.height = n(screen.height); a.style.visibility = "hidden"; this.offscreenContainer = a; window.document.body.appendChild(a); a = window.document.createElement("DIV"); a.style.position = "absolute"; a.style.left = n(15); a.style.top = n(15); a.style.zIndex = 3; L(a, "auto"); this.offscreenArea = a; j.bindDom(a, "mousedown", this, mb); this.offscreenContainer.appendChild(this.offscreenArea)} ; A.prototype.prepareOffscreen = function() { if(this.windowDiv.style.display == "none") { this.windowDiv.style.display = ""; this.shadowDiv.style.display = ""; this.windowDiv.style.visibility = "hidden"; this.shadowDiv.style.visibility = "hidden"; this.contentArea.style.visibility = "hidden"; this.offscreenArea.style.visibility = ""} } ; A.prototype.clearOffscreenArea = function() { la(this.offscreenArea)} ; A.prototype.flipOffscreenAndSize = function(a) { this.fitElements(this.offscreenArea, a); var b = []; A.collectTabElements(this.offscreenArea, b); if(b.length < 2) { this.hideTabs()} else { this.showTabs(b)} var c = this.offscreenArea; var d = Math.max(c.offsetWidth, 204); var e = Math.max(c.offsetHeight, 50); this.size = { w : d, h : e} ; this.flipOffscreenArea(d, e); this.setContentSize(d, e)} ; A.prototype.fitElements = function(a, b) { for(var c = a.firstChild; c; c = c.nextSibling) { if(c.nodeType == 1) { arguments.callee.call(this, c, b)} } if(Ra(a, "offsetfit")) { var d = { x : 0, y : 0} ; for(var c = a.firstChild; c; c = c.nextSibling) { d.x = Math.max(d.x, c.offsetWidth); d.y = Math.max(d.y, c.offsetHeight)} for(c = a.firstChild; c; c = c.nextSibling) { if(c.style) { c.style.position = "absolute"; if(Ra(c, "active")) { c.style.zIndex = 10} else { c.style.zIndex = 0; c.style.visibility = "hidden"} } } var e = document.createElement("div"); e.style.position = "relative"; e.innerHTML = " "; e.style.width = n(d.x); e.style.height = n(d.y); e.style.zIndex = 5; a.style.position = "relative"; a.appendChild(e); a.style.width = n(d.x); a.style.height = n(d.y); a.style.overflow = "hidden"; a.style.zIndex = 1} else if(b) { if(a.offsetWidth > b && a.style) { a.style.width = n(b)} } } ; A.collectTabElements = function(a, b) { var c = a.getAttribute("page"); if(c) { b.push(a)} else { for(var d = a.firstChild; d; d = d.nextSibling) { if(d.nodeType == 1) { arguments.callee.call(this, d, b)} } } } ; A.prototype.sizeToContent = function() { var a = this.contentArea.offsetHeight; var b = this.contentArea.offsetWidth; if(browser.type == 2 && b < 10 && this.size) { b = this.size.w} this.setContentSize(Math.max(b, 204), a)} ; A.prototype.flipOffscreenArea = function(a, b) { this.windowDiv.replaceChild(this.offscreenArea, this.contentArea); this.offscreenContainer.appendChild(this.contentArea); var c = this.offscreenArea; this.offscreenArea = this.contentArea; this.contentArea = c; if(browser.type == 1 && a && b) { this.contentArea.style.width = n(a); this.contentArea.style.height = n(b)} this.offscreenArea.style.width = "auto"; this.offscreenArea.style.height = "auto"; this.infoWindowContract.unload(this.offscreenArea); this.clearOffscreenArea(); this.contentArea.style.visibility = "visible"; this.infoWindowContract.load(this.contentArea)} ; A.prototype.filterMouse = function(a) { if(browser.type == 1) { B(a)} else { var b = Oa(a, this.windowDiv); if(b.y <= this.getWindowHeight()) { B(a)} } } ; var tc = s + "close.gif"; A.prototype.createCloseButton = function() { this.closeButton = qa.create(tc, 14, 13, null, null, 4, null, null); this.closeButton.style.position = "absolute"; L(this.closeButton, "pointer"); j.bindDom(this.closeButton, "click", this, this.onCloseClick); this.windowDiv.appendChild(this.closeButton)} ; A.prototype.onCloseClick = function(a) { B(a); j.trigger(this, "closeclick")} ; A.makeTab = function(a, b, c) { var d = c.createElement("DIV"); if(browser.type == 1) { d.style.filter = q.alphaImageLoader(a, b)} else { d.style.backgroundImage = "url(" + a + ")"} return d} ; A.prototype.createTabs = function(a) { var b = this.windowDiv; function c(i, l, m, r, p, y) { var D = qa.create(i, l, m, r, p - 24, y, null, null, document, A.makeTab); D.style.display = "none"; b.appendChild(D); return D} function d(i) { var l = document.createElement("span"); l.style.position = "absolute"; l.style.top = n(6); l.style.width = n(103); l.style.textAlign = "center"; l.style.fontSize = "90%"; l.style.fontWeight = "bold"; i.appendChild(l); return l} function e(i) { var l = document.createElement("a"); l.style.position = "absolute"; l.style.top = n(6); l.style.width = n(103); l.style.textAlign = "center"; l.style.fontSize = "90%"; l.href = "javascript:void(0)"; i.appendChild(l); return l} this.tabstub = c(Mc, 11, 75, 0, 0, 0); this.tabs = []; for(var f = 0; f < a; ++f) { var g = c(Lc, 103, 75, 11 + f * 84, 0, 2); var h = c(Kc, 103, 75, 11 + f * 84, 0, 2); this.tabs.push([g, h]); g.label = d(g); h.label = e(h); j.addBuiltInListener(h, "click", A.makeOnTabClick(this.infoWindowContract))} } ; A.prototype.hideTabs = function() { this.tabstub.style.display = "none"; for(var a = 0; a < this.tabs.length; ++a) { this.tabs[a][0].style.display = "none"; this.tabs[a][1].style.display = "none"} } ; A.prototype.showTabs = function(a) { var b = this.infoWindowContract; if(!b.hasContext("iwnavigate") ||!b.hasContext("iwstate")) { return} this.tabstub.style.display = ""; var c = 0; for(var d = 0; d < a.length; ++d) { if(Ra(a[d], "active") &&!c) { c = d} } for(d = 0; d < this.tabs.length; ++d) { var e = this.tabs[d]; if(d >= a.length) { e[0].style.display = "none"; e[1].style.display = "none"} else { var f = a[d].getAttribute("label"); if(d == c) { e[1].style.display = "none"; e[0].style.zIndex = a.length; e[0].style.display = ""; ka(e[0].label, f)} else { var g = a[d].getAttribute("page"); e[0].style.display = "none"; e[1].style.zIndex = a.length - Math.abs(c - d); e[1].style.display = ""; ka(e[1].label, f); e[1].page = g; L(e[1], "pointer")} } } } ; A.makeOnTabClick = function(a) { return function() { var b = this.page; a.context["iwstate"]("page", b, true); a.context["iwstate"]("form", ""); a.context["iwnavigate"]()} } ; A.prototype.hasTabs = function() { return this.tabstub.style.display != "none"} ; A.prototype.checkSize = function() { if(!this.isVisible()) { if(this.lastSize) { this.lastSize = false} return} var a = this.contentArea.offsetWidth; var b = this.contentArea.offsetHeight; if(!this.lastSize || this.lastWidth != a || this.lastHeight != b) { if(this.lastSize) { this.sizeToContent(); this.positionAt(this.position.x, this.position.y, this.positionOffset)} this.lastWidth = a; this.lastHeight = b; this.lastSize = true} } ; A.prototype.addContext = function(a, b) { this.infoWindowContract.addContext(a, b)} ; function ga(a, b, c) { this.maxZoomLevel = a; this.bounds = b; this.text = c} function ma(a, b) { this.spec = a; this.zoomLevels = []; for(var c = 0; c < this.spec.numZoomLevels; c++) { this.zoomLevels.push([])} if(b) { for(var c = 0; c < b.length; c++) { this.zoomLevels[b[c].maxZoomLevel].push(b[c])} this.sort()} } ma.fromCompact = function(a, b) { var c = []; for(var d = 0; d < b.length; d++) { var e = b[d]; var f = new E(e[1], e[2], e[3], e[4]); c.push(new ga(e[0], f, e[5]))} return new ma(a, c)} ; ma.prototype.addCopyright = function(a) { this.zoomLevels[a.maxZoomLevel].push(a); this.sort(a.maxZoomLevel)} ; ma.prototype.sort = function(a) { var b = function(d, e) { return d.bounds.minX - e.bounds.minX} ; if(a || a == 0) { this.zoomLevels[a].sort(b); return} for(var c = 0; c < this.zoomLevels.length; c++) { this.zoomLevels[c].sort(b)} } ; ma.prototype.getCopyrights = function(a, b) { var c = new T(); var d = []; for(var e = b; e < this.zoomLevels.length; e++) { var f = this.zoomLevels[e]; var g = false; for(var h = 0; h < f.length; h++) { var i = f[h]; if(i.bounds.minX > a.maxX) { break} if(i.bounds.intersectsLatLng(a)) { if(i.text &&!c.contains(i.text)) { d.push(i.text); c.add(i.text)} if(i.bounds.containsBounds(a)) { g = true} } } if(g) { break} } return d} ; var Ua = _mNavteq; var Ea = _mTeleAtlas; var Ab = _mZenrin; var Vc = [new ga(14, new E( - 125.241, 22.031, - 62.71, 49.093), Ua), new ga(14, new E( - 141.157, 41.468, - 50.844, 83.656), Ua), new ga(14, new E( - 67.277, 17.88, - 65.175, 18.523), Ua), new ga(14, new E( - 180, 51.078, - 129.756, 71.484), Ua), new ga(14, new E( - 10.649, 49.781, 2.593, 59.687), Ea), new ga(13, new E(6.591797, 8.77533, 43.774069, 46.477591), Ea), new ga(14, new E(123.748627, 23.8833326, 143.789063, 46.072278), Ab)]; var Sc = [new ga(14, new E( - 180, 17.88, - 50.844, 71.484), Ea), new ga(14, new E( - 10.649, 49.781, 2.593, 59.687), Ea), new ga(14, new E(123.748627, 23.8833326, 143.789063, 46.072278), Ab), new ga(13, new E(6.591797, 8.77533, 43.774069, 46.477591), Ea)]; var Va = "http://mt%1$s.google.com/mt"; var Yc = La; var Zc = s + "water.gif"; function F(a, b, c, d, e) { this.tileSize = 256; this.backgroundColor = "#e5e3df"; this.emptyTileUrl = Yc; this.waterTileUrl = Zc; this.numZoomLevels = 18; this.copyrightArray = d; this.baseUrls = v.getTileBaseUrlArray(a, Va, b, c); if(e) { this.lowResBaseUrls = v.getTileBaseUrlArray(a, Va, b, e)} this.errorTileMessage = _mMapErrorTile; this.errorTileMargin = "6em"; this.initMercator()} F.prototype.initMercator = function() { this.pixelsPerLonDegree = []; this.pixelsPerLonRadian = []; this.bitmapOrigo = []; this.numTiles = []; var a = 256; for(var b = this.numZoomLevels - 1; b >= 0; --b) { this.pixelsPerLonDegree[b] = a / 360; this.pixelsPerLonRadian[b] = a / md; var c = a / 2; this.bitmapOrigo[b] = new x(c, c); this.numTiles[b] = a / 256; a *= 2} } ; F.prototype.adjustBitmapX = function(a, b) { var c = Math.floor(360 * this.pixelsPerLonDegree[b]); var d = 0; var e = d + c; while(a < d) { a += c} while(a >= e) { a -= c} return a} ; F.prototype.getBitmapCoordinate = function(a, b, c, d) { if(!d) { d = new x(0, 0)} d.x = Math.floor(this.bitmapOrigo[c].x + b * this.pixelsPerLonDegree[c]); var e = Math.sin(bb(a)); if(e > 0.9999) { e = 0.9999} if(e <- 0.9999) { e =- 0.9999} d.y = Math.floor(this.bitmapOrigo[c].y + 0.5 * Math.log((1 + e)/(1-e))*-this.pixelsPerLonRadian[c]); return d} ; F.prototype.getLatLng = function(a, b, c, d) { if(!d) { d = new x(0, 0)} d.x = (a - this.bitmapOrigo[c].x)/this.pixelsPerLonDegree[c]; var e = (b - this.bitmapOrigo[c].y)/-this.pixelsPerLonRadian[c]; d.y = (2 * Math.atan(Math.exp(e)) - Math.PI / 2)/Fb; return d} ; F.prototype.isInTileBoundsY = function(a, b) { return 0 <= a && a < this.numTiles[b]} ; F.prototype.getTileURL = function(a, b, c) { if(!this.isInTileBoundsY(b, c)) { return this.emptyTileUrl} var d = a; if(a < 0 || this.numTiles[c] <= a) { d = a % this.numTiles[c]; if(d < 0) { d += this.numTiles[c]} } var e = (d + b) % this.baseUrls.length; var f = this.baseUrls[e]; if(this.lowResBaseUrls && c >= 9) { f = this.lowResBaseUrls[e]} return f + "x=" + d + "&y=" + b + "&zoom=" + c} ; F.prototype.hasOverlay = function() { return false} ; F.prototype.getLowestZoomLevel = function(a, b, c) { var d = c.width / 2; var e = c.height / 2; var f = b.width / 100; for(var g = 0; g < this.numZoomLevels; g++) { var h = this.getBitmapCoordinate(a.y, a.x, g); var i = this.getLatLng(h.x - d, h.y - e, g); var l = this.getLatLng(h.x + d, h.y + e, g); var m = l.x - i.x; var r = i.y - l.y; var p = b.width - m; var y = b.height - r; if(p < f && y < f) { return g} } return this.numZoomLevels - 1} ; F.prototype.getPixelsPerDegree = function(a) { return new x(this.pixelsPerLonDegree[a], this.pixelsPerLonDegree[a] * 2)} ; F.prototype.getLinkText = function() { return _mNormalMap} ; F.prototype.getShortLinkText = function() { return _mNormalMapShort} ; F.prototype.getURLArg = function() { return null} ; F.prototype.getCopyright = function(a) { if(!this.copyrights) { this.copyrights = new ma(this, this.copyrightArray)} if(a.isLoaded()) { var b = this.copyrights.getCopyrights(a.getBoundsLatLng(), a.zoomLevel); if(b.length == 0) { return""} else if(b.length == 1 && b[0] == _mZenrin) { return _mZenrinCopy + b[0]} else { return _mDataCopy + b.join(", ")} } else { return""} } ; F.prototype.zoomBitmapCoord = function(a, b, c) { var d = new x(); var e = Math.pow(2, b - a); d.x = Math.round(c.x * e); d.y = Math.round(c.y * e); return d} ; var X = "State of New Jersey"; var ba = "MassGIS, Commonwealth of Massachusetts EOEA"; var w = "New York GIS"; var k = "The GeoInformation Group"; var z = "Sanborn"; var xb = [[5, - 75.15, 41, - 74.56, 41.37, X], [5, - 74.58, 41, - 73.87, 41.32, X], [5, - 75.21, 40.71, - 73.87, 41.02, X], [5, - 75.23, 40.53, - 74.56, 40.73, X], [5, - 74.58, 40.53, - 74, 40.73, X], [5, - 75.08, 40.25, - 74.56, 40.55, X], [5, - 74.58, 40.25, - 73.97, 40.55, X], [5, - 75.15, 39.9, - 73.99, 40.26, X], [5, - 75.49, 39.72, - 74.63, 39.92, X], [5, - 74.65, 39.72, - 74.06, 39.92, X], [5, - 75.57, 39.51, - 74.79, 39.74, X], [5, - 74.81, 39.52, - 74.12, 39.74, X], [5, - 75.55, 39.28, - 74.79, 39.53, X], [5, - 74.81, 39.29, - 74.24, 39.53, X], [5, - 75.25, 39.13, - 74.54, 39.3, X], [5, - 74.98, 38.91, - 74.7, 39.15, X], [5, - 73.98, 42.5, - 73.72, 42.67, w], [5, - 74.04, 42.66, - 73.67, 42.83, w], [5, - 73.82, 42.23, - 73.73, 42.29, w], [5, - 74, 42.56, - 73.67, 42.83, w], [5, - 77.97, 42.11, - 77.91, 42.14, w], [5, - 76.12, 42.01, - 75.77, 42.22, w], [5, - 78.78, 42.02, - 78.33, 42.2, w], [5, - 76.98, 42.01, - 76.76, 42.21, w], [5, - 75.56, 42.49, - 75.46, 42.59, w], [5, - 73.59, 44.62, - 73.37, 44.75, w], [5, - 73.81, 42.23, - 73.75, 42.29, w], [5, - 76.24, 42.56, - 76.12, 42.66, w], [5, - 79.12, 42.61, - 78.57, 43.09, w], [5, - 74.13, 44.28, - 74.08, 44.35, w], [5, - 74.42, 42.98, - 74.3, 43.08, w], [5, - 78.22, 42.98, - 78.13, 43.03, w], [5, - 73.81, 42.25, - 73.78, 42.29, w], [5, - 75.23, 42.99, - 75.03, 43.13, w], [5, - 75.04, 42.99, - 74.83, 43.07, w], [5, - 76.06, 43.93, - 75.72, 44.1, w], [5, - 77.83, 42.54, - 77.67, 42.82, w], [5, - 77.98, 43, - 77.36, 43.34, w], [5, - 74.28, 42.79, - 74.07, 42.98, w], [5, - 73.78, 40.57, - 73.4, 40.93, w], [5, - 79.09, 43.01, - 78.6, 43.28, w], [5, - 75.89, 42.86, - 75.06, 43.63, w], [5, - 76.39, 42.96, - 75.92, 43.25, w], [5, - 77.32, 42.83, - 76.96, 43.02, w], [5, - 74.27, 41.41, - 74.11, 41.58, w], [5, - 74.13, 41.4, - 73.95, 41.61, w], [5, - 74.25, 41.29, - 74.12, 41.36, w], [5, - 74.38, 41.23, - 74.33, 41.28, w], [5, - 74.36, 41.38, - 74.3, 41.42, w], [5, - 74.46, 41.4, - 74.39, 41.49, w], [5, - 74.4, 41.42, - 74.34, 41.5, w], [5, - 74.73, 41.35, - 74.66, 41.4, w], [5, - 78.43, 43.2, - 78.16, 43.26, w], [5, - 74.1, 42.77, - 73.58, 43.31, w], [5, - 74.31, 42.71, - 73.79, 42.96, w], [5, - 74.59, 42.62, - 74.17, 42.8, w], [5, - 76.99, 42.84, - 76.77, 42.93, w], [5, - 77.16, 42.1, - 77.02, 42.18, w], [5, - 77.35, 42.32, - 77.29, 42.36, w], [5, - 77.69, 42.31, - 77.64, 42.36, w], [5, - 73.5, 40.6, - 73.27, 40.96, w], [5, - 73.29, 40.62, - 73.09, 40.98, w], [5, - 73.11, 40.65, - 72.89, 40.98, w], [5, - 72.91, 40.71, - 72.65, 40.98, w], [5, - 72.68, 40.79, - 72.41, 41.1, w], [5, - 72.43, 40.85, - 72.15, 41.17, w], [5, - 72.17, 40.94, - 71.84, 41.13, w], [5, - 72.05, 41.25, - 71.9, 41.31, w], [5, - 74.75, 41.6, - 74.56, 41.72, w], [5, - 76.29, 42.02, - 76.1, 42.16, w], [5, - 73.73, 43.39, - 73.62, 43.58, w], [5, - 73.73, 43.26, - 73.59, 43.4, w], [5, - 73.64, 43.25, - 73.53, 43.51, w], [6, - 71.16, 42.35, - 71.06, 42.41, ba], [6, - 70.96, 41.28, - 70.43, 41.54, ba], [6, - 72.07, 42.01, - 71.34, 42.73, ba], [6, - 71.39, 42.37, - 70.56, 42.91, ba], [6, - 71.39, 42.13, - 70.66, 42.39, ba], [6, - 71.39, 41.77, - 70.49, 42.15, ba], [6, - 71.36, 41.46, - 70.56, 41.81, ba], [6, - 70.58, 41.51, - 69.89, 41.8, ba], [6, - 70.27, 41.74, - 69.9, 42.11, ba], [6, - 70.65, 41.53, - 70.5, 41.86, ba], [6, - 73.54, 41.95, - 72.02, 42.76, ba], [6, - 70.34, 41.2, - 69.91, 41.43, ba], [5, - 112.26, 46.49, - 111.87, 46.77, null], [5, - 115.46, 35.89, - 114.97, 36.37, null], [5, - 114.99, 35.9, - 114.7, 36.15, null], [5, - 114.25, 36.72, - 114.04, 36.85, null], [5, - 72.36, 42.1, - 72.21, 42.27, null], [5, - 72.47, 42, - 72.33, 42.31, null], [5, - 72.91, 41.95, - 72.44, 42.41, null], [5, - 87.08, 35.95, - 86.51, 36.41, null], [5, - 81.76, 30.38, - 81.36, 30.63, null], [5, - 82, 30.11, - 81.36, 30.4, null], [5, - 117.74, 34, - 117.49, 34.13, null], [5, - 118.11, 33.61, - 117.72, 34.13, null], [5, - 118.52, 33.69, - 118.09, 34.26, null], [5, - 119.35, 34.05, - 118.94, 34.27, null], [5, - 119.39, 34.25, - 119.11, 34.51, null], [5, - 82.87, 27.9, - 82.45, 28.27, null], [5, - 82.47, 27.9, - 82.12, 28.26, null], [5, - 82.47, 27.49, - 82.11, 27.92, null], [5, - 82.86, 27.49, - 82.45, 27.91, null], [5, - 122.63, 37.76, - 121.61, 38.25, null], [5, - 122.55, 37.12, - 121.61, 37.78, null], [5, - 81.49, 41.56, - 80.99, 41.87, null], [5, - 84.64, 37.86, - 84.35, 38.14, null], [5, - 88.39, 30.49, - 87.99, 30.88, null], [5, - 122.63, 37.49, - 122.24, 38.14, null], [5, - 122.28, 37.48, - 121.86, 38.13, null], [5, - 122.26, 37.24, - 121.87, 37.5, null], [5, - 122.63, 46.99, - 122.35, 47.86, null], [5, - 122.4, 46.99, - 121.99, 47.43, null], [5, - 122.39, 47.41, - 121.98, 48.01, null], [5, - 81.42, 31.13, - 81.31, 31.25, null], [5, - 81.37, 31.16, - 81.33, 31.2, null], [5, - 77.14, 39.99, - 76.56, 40.4, null], [5, - 112.14, 41, - 111.86, 41.38, null], [5, - 112, 40.88, - 111.74, 41.01, null], [5, - 102.03, 34.99, - 101.6, 35.39, null], [5, - 150.13, 60.98, - 149.39, 61.39, null], [5, - 77.1, 38.81, - 76.17, 39.65, null], [5, - 87.13, 33.24, - 86.62, 33.63, null], [5, - 119.89, 38.99, - 119.6, 39.26, null], [5, - 85.53, 34.85, - 85.24, 35.27, null], [5, - 88.25, 42.22, - 88.02, 42.63, null], [5, - 88.51, 41.84, - 88.02, 42.24, null], [5, - 88.51, 41.63, - 88.01, 41.86, null], [5, - 88.52, 41.24, - 88.01, 41.65, null], [5, - 88.52, 42.22, - 88.22, 42.63, null], [5, - 87.89, 42.62, - 87.76, 42.76, null], [5, - 88.05, 42.23, - 87.77, 42.63, null], [5, - 88.04, 41.85, - 87.76, 42.24, null], [5, - 87.79, 41.85, - 87.58, 42.18, null], [5, - 88.04, 41.63, - 87.76, 41.86, null], [5, - 87.78, 41.63, - 87.55, 41.87, null], [5, - 87.57, 41.64, - 87.38, 41.77, null], [5, - 88.03, 41.43, - 87.71, 41.65, null], [5, - 87.73, 41.43, - 87.42, 41.65, null], [5, - 87.42, 41.43, - 87.11, 41.66, null], [5, - 88.03, 41.24, - 87.69, 41.46, null], [5, - 87.71, 41.24, - 87.38, 41.46, null], [5, - 87.4, 41.24, - 87.11, 41.46, null], [5, - 87.44, 41.43, - 87.4, 41.66, null], [5, - 84.94, 38.84, - 84.07, 39.56, null], [5, - 82.19, 40.85, - 80.96, 41.86, null], [5, - 105.04, 38.68, - 104.55, 39.14, null], [5, - 83.32, 39.67, - 82.54, 40.33, null], [5, - 97.41, 33.06, - 96.35, 33.26, null], [5, - 97.45, 32.94, - 96.35, 33.12, null], [5, - 97.62, 32.41, - 97.42, 33, null], [5, - 97.45, 32.82, - 96.36, 33.01, null], [5, - 97.45, 32.67, - 96.36, 32.87, null], [5, - 97.46, 32.51, - 96.37, 32.72, null], [5, - 97.46, 32.39, - 96.37, 32.55, null], [5, - 106.64, 31.62, - 106.24, 32.02, null], [5, - 120.02, 36.61, - 119.61, 37.01, null], [5, - 95.91, 29.47, - 95.62, 30.02, null], [5, - 95.67, 29.75, - 95.27, 30.15, null], [5, - 95.66, 29.45, - 95.26, 29.77, null], [5, - 95.3, 29.89, - 94.98, 30.28, null], [5, - 95.29, 29.42, - 94.86, 29.91, null], [5, - 81.92, 29.82, - 81.32, 30.7, null], [5, - 96.9, 40.61, - 96.47, 41.01, null], [5, - 118.93, 33.44, - 117.46, 34.41, null], [5, - 102.15, 33.36, - 101.73, 33.77, null], [5, - 80.58, 25.37, - 80.02, 27.04, null], [5, - 93.82, 44.59, - 92.81, 45.42, null], [5, - 121.14, 37.48, - 120.74, 37.89, null], [5, - 75.94, 39.52, - 74.54, 40.44, null], [5, - 71.65, 41.61, - 71.22, 42.02, null], [5, - 79.14, 35.86, - 78.74, 36.13, null], [5, - 79.03, 35.61, - 78.75, 35.88, null], [5, - 78.77, 35.61, - 78.48, 36.01, null], [5, - 120.02, 39.57, - 119.64, 39.73, null], [5, - 120.01, 39.44, - 119.66, 39.59, null], [5, - 119.88, 39.32, - 119.67, 39.46, null], [5, - 119.88, 39.2, - 119.73, 39.33, null], [5, - 121.77, 38.61, - 120.98, 39.01, null], [5, - 121.63, 38.24, - 121.11, 38.63, null], [5, - 117.68, 33.72, - 116.84, 34.28, null], [5, - 117.67, 32.6, - 116.79, 33.5, null], [5, - 122.63, 46.99, - 122.35, 47.86, null], [5, - 122.4, 46.99, - 121.99, 47.43, null], [5, - 122.63, 46.99, - 122.35, 47.86, null], [5, - 122.63, 46.99, - 121.98, 48.01, null], [5, - 122.63, 37.77, - 121.61, 38.25, null], [5, - 122.55, 37.12, - 121.61, 37.78, null], [5, - 93.88, 32.24, - 93.48, 32.63, null], [5, - 121.52, 37.86, - 121.11, 38.14, null], [5, - 72.18, 41.99, - 71.56, 42.52, null], [5, - 122.53, 37.76, - 121.86, 37.79, null], [5, - 105.64, 40, - 104.92, 40.27, null], [5, - 104.95, 39.18, - 104.48, 40.08, null], [5, - 104.5, 39.72, - 104.23, 39.83, null], [5, - 105.52, 39.37, - 104.94, 40.02, null], [5, - 105.44, 39.15, - 105.13, 39.38, null], [5, - 83.65, 42.3, - 83.1, 42.77, null], [5, - 83.65, 42.11, - 83.11, 42.33, null], [5, - 83.19, 42.25, - 82.84, 42.76, null], [5, - 82.89, 42.5, - 82.61, 42.76, null], [5, - 85.39, 40.86, - 84.96, 41.26, null], [5, - 97.77, 35.23, - 97.23, 35.76, null], [5, - 90.77, 38.36, - 90.1, 38.9, null], [5, - 106.89, 34.86, - 106.37, 35.26, null], [5, - 84.77, 33.92, - 83.87, 34.15, null], [5, - 84.77, 33.72, - 83.86, 33.98, null], [5, - 84.76, 33.5, - 83.86, 33.78, null], [5, - 84.76, 33.35, - 83.86, 33.56, null], [5, - 97.88, 30.12, - 97.61, 30.5, null], [5, - 91.26, 30.23, - 90.86, 30.77, null], [5, - 81.07, 34.99, - 80.53, 35.51, null], [5, - 99.21, 32.08, - 99.1, 32.17, null], [5, - 86.76, 34.5, - 86.5, 34.63, null], [5, - 86.87, 34.62, - 86.38, 34.88, null], [5, - 90.4, 32.11, - 89.97, 32.51, null], [5, - 84.27, 35.73, - 83.74, 36.14, null], [5, - 86.01, 37.99, - 85.35, 38.51, null], [5, - 86.5, 32.24, - 86.13, 32.51, null], [5, - 81.64, 28.37, - 81.11, 28.88, null], [5, - 123.13, 45.24, - 122.36, 45.76, null], [5, - 93.88, 32.24, - 93.48, 32.63, null], [5, - 111.13, 32, - 110.62, 32.51, null], [5, - 77.07, 38.62, - 76.73, 39.14, null], [5, - 77.4, 38.61, - 77.04, 39.13, null], [5, - 77.64, 38.74, - 77.37, 39.14, null], [5, 139.55, 35.53, 139.93, 35.82, k], [5, 4.87, 52.37, 4.9, 52.39, k], [5, 28.05, - 26.27, 28.07, - 26.25, k], [5, - 0.69, 52.11, - 0.12, 52.33, k], [5, - 0.69, 51.97, - 0.13, 52.24, k], [5, - 0.71, 51.79, - 0.13, 52.11, k], [5, 0.95, 52.59, 1.42, 52.88, k], [5, 1.24, 52.54, 1.71, 52.82, k], [5, - 0.54, 52.13, 0.06, 52.41, k], [5, - 0.1, 52.12, 0.57, 52.4, k], [5, - 0.53, 52.31, 0.07, 52.63, k], [5, - 0.09, 52.3, 0.51, 52.58, k], [5, - 0.23, 52.48, 0.44, 52.76, k], [5, - 3.21, 53.29, - 2.81, 53.7, k], [5, - 2.94, 53.3, - 2.57, 53.54, k], [5, - 1.32, 51.57, - 0.99, 51.82, k], [5, - 0.86, 51.07, - 0.38, 51.34, k], [5, - 0.17, 51.13, 0.07, 51.35, k], [5, - 0.78, 51.26, - 0.45, 51.4, k], [5, - 0.46, 51.09, - 0.15, 51.35, k], [5, - 3.65, 57.25, - 3.58, 57.3, k], [5, - 2.02, 52.5, - 1.68, 52.62, k], [5, - 2.03, 52.43, - 1.68, 52.57, k], [5, - 2.05, 52.36, - 1.68, 52.5, k], [5, - 1.94, 50.7, - 1.73, 50.79, k], [5, - 2.78, 51.39, - 2.5, 51.55, k], [5, 0.06, 52.15, 0.2, 52.25, k], [5, - 0.81, 52.45, - 0.58, 52.57, k], [5, - 1.63, 52.34, - 1.38, 52.48, k], [5, - 2.19, 52.42, - 2, 52.56, k], [5, - 4.06, 51.2, - 4.01, 51.22, k], [5, - 3.95, 51.14, - 3.92, 51.16, k], [5, - 0.84, 51.25, - 0.72, 51.3, k], [5, - 2.32, 51.8, - 2.16, 51.89, k], [5, - 1.24, 50.77, - 1.1, 50.86, k], [5, - 1.61, 50.63, - 1.43, 50.73, k], [5, - 1.44, 50.56, - 1.29, 50.71, k], [5, - 1.32, 50.56, - 1.15, 50.71, k], [5, - 1.43, 50.71, - 1.29, 50.78, k], [5, - 1.29, 50.7, - 1.09, 50.78, k], [5, - 1.24, 50.61, - 1.06, 50.71, k], [5, - 0.4, 53.71, - 0.19, 53.82, k], [5, - 0.52, 51.84, - 0.28, 51.95, k], [5, - 1.27, 53.11, - 1.09, 53.24, k], [5, 0.4, 51.32, 0.59, 51.49, k], [5, 0.51, 51.32, 0.74, 51.49, k], [5, - 0.88, 51.98, - 0.67, 52.08, k], [5, - 0.98, 53.51, - 0.78, 53.68, k], [5, - 0.31, 52.5, - 0.22, 52.56, k], [5, - 2.04, 50.68, - 1.89, 50.8, k], [5, - 1.12, 50.78, - 1, 50.87, k], [5, - 0.28, 51.23, - 0.12, 51.35, k], [5, - 0.28, 51.16, - 0.12, 51.28, k], [5, - 0.57, 51.4, - 0.38, 51.48, k], [5, - 2.1, 52.46, - 1.91, 52.57, k], [5, 0.11, 51.33, 0.26, 51.42, k], [5, 0.21, 51.32, 0.35, 51.41, k], [5, - 1.88, 52.35, - 1.59, 52.52, k], [5, - 0.05, 52.26, 0.25, 52.36, k], [5, 0.04, 52.08, 0.43, 52.18, k], [5, - 0.17, 52, 0.12, 52.13, k], [5, 0.04, 52, 0.42, 52.13, k], [5, - 0.19, 52.22, 0.26, 52.31, k], [5, - 0.2, 52.17, 0.12, 52.27, k], [5, 0.05, 52.17, 0.36, 52.27, k], [5, - 0.24, 52.13, 0.12, 52.23, k], [5, 0.04, 52.12, 0.43, 52.22, k], [5, - 0.24, 52.08, 0.12, 52.18, k], [5, - 1.71, 53.3, - 1.4, 53.41, k], [5, - 1.25, 53.54, - 0.86, 53.67, k], [5, - 1.48, 53.28, - 1.1, 53.41, k], [5, - 1.81, 53.36, - 1.47, 53.5, k], [5, - 1.55, 53.36, - 1.25, 53.5, k], [5, - 1.33, 53.36, - 0.94, 53.49, k], [5, - 1.25, 53.45, - 0.88, 53.58, k], [5, - 1.55, 53.45, - 1.17, 53.59, k], [5, - 1.83, 53.45, - 1.47, 53.59, k], [5, - 1.62, 53.54, - 1.17, 53.63, k], [5, - 4.7, 55.41, - 4.55, 55.59, k], [5, - 4.71, 55.34, - 4.66, 55.36, k], [5, - 4.87, 55.22, - 4.82, 55.27, k], [5, - 1.49, 50.88, - 1.31, 50.96, k], [5, 0.16, 51.85, 0.33, 51.92, k], [5, 1.57, 52.21, 1.67, 52.31, k], [5, - 4.35, 51.52, - 4.16, 51.66, k], [5, - 4.24, 51.52, - 4.02, 51.68, k], [5, - 4.1, 51.55, - 3.84, 51.68, k], [5, - 1.85, 54.88, - 1.51, 54.99, k], [5, - 1.78, 54.96, - 1.52, 55.08, k], [5, - 1.64, 54.98, - 1.4, 55.08, k], [5, - 1.54, 54.92, - 1.34, 55.01, k], [5, - 2.21, 52.54, - 2.05, 52.64, k], [5, - 0.92, 51.69, - 0.73, 51.78, k], [5, - 0.96, 51.65, - 0.68, 51.74, k], [5, - 0.96, 51.6, - 0.66, 51.69, k], [5, - 0.96, 51.54, - 0.63, 51.65, k], [5, - 2.38, 52.42, - 2.29, 52.46, k], [5, - 2.44, 52.31, - 2.26, 52.42, k], [5, - 2.27, 52.31, - 2.12, 52.42, k], [5, - 0.34, 51.64, 0.05, 51.7, k], [5, - 0.42, 51.37, - 0.13, 51.49, k], [5, - 0.21, 51.37, 0.09, 51.48, k], [5, 0.01, 51.36, 0.23, 51.48, k], [5, - 0.35, 51.28, - 0.13, 51.39, k], [5, - 0.21, 51.28, 0.08, 51.39, k], [5, 0.01, 51.27, 0.23, 51.39, k], [5, - 0.56, 51.55, - 0.27, 51.66, k], [5, - 0.34, 51.55, - 0.05, 51.66, k], [5, - 0.13, 51.54, 0.17, 51.66, k], [5, - 0.56, 51.46, - 0.27, 51.58, k], [5, - 0.35, 51.46, - 0.05, 51.57, k], [5, - 0.13, 51.45, 0.16, 51.57, k], [5, 0.09, 51.45, 0.36, 51.57, k], [5, - 0.56, 51.39, - 0.35, 51.49, k], [5, - 6.01, 54.63, - 5.75, 54.74, k], [5, - 6.1, 54.49, - 5.87, 54.57, k], [5, - 6.05, 54.57, - 5.75, 54.71, k], [5, - 6.05, 54.53, - 5.76, 54.63, k], [5, - 5.92, 54.68, - 5.73, 54.75, k], [5, - 5.86, 54.6, - 5.57, 54.69, k], [5, - 2.38, 57.07, - 2.03, 57.24, k], [5, - 3.12, 56.44, - 2.81, 56.51, k], [5, - 4.4, 55.77, - 4.06, 55.94, k], [5, - 4.79, 55.76, - 4.63, 55.87, k], [5, - 4.72, 55.76, - 4.55, 55.94, k], [5, - 4.64, 55.76, - 4.47, 55.94, k], [5, - 4.56, 55.76, - 4.35, 55.94, k], [5, - 3.32, 51.67, - 3.1, 51.83, k], [5, - 3.71, 51.51, - 3.44, 51.65, k], [5, - 3.79, 51.45, - 3.44, 51.58, k], [5, - 3.32, 51.54, - 3.06, 51.66, k], [5, - 3.34, 51.66, - 3.06, 51.8, k], [5, - 3.32, 51.62, - 3.06, 51.69, k], [5, - 3.35, 51.44, - 3.07, 51.56, k], [5, - 3.46, 51.64, - 3.27, 51.84, k], [5, - 3.13, 51.5, - 2.8, 51.65, k], [5, - 3.6, 51.65, - 3.31, 51.84, k], [5, - 3.59, 51.59, - 3.29, 51.71, k], [5, - 3.57, 51.49, - 3.23, 51.66, k], [5, - 3.15, 51.6, - 2.95, 51.8, k], [5, - 3.66, 51.38, - 3.47, 51.52, k], [5, - 3.57, 51.37, - 3.37, 51.52, k], [5, - 3.47, 51.37, - 3.14, 51.53, k], [5, - 1.94, 50.71, - 1.87, 50.78, k], [5, - 1.94, 50.71, - 1.8, 50.75, k], [5, - 1.87, 50.71, - 1.73, 50.75, k], [5, - 0.49, 53.71, - 0.3, 53.82, k], [5, 0.62, 51.51, 0.83, 51.58, k], [5, - 3.06, 53.56, - 2.38, 53.83, k], [5, - 2.69, 53.83, - 2.18, 54.1, k], [5, - 2.61, 53.61, - 2.03, 53.94, k], [5, - 2.61, 53.69, - 2.03, 53.96, k], [5, - 3.07, 53.69, - 2.38, 53.96, k], [5, - 3.07, 53.82, - 2.47, 54.1, k], [5, - 2.48, 53.75, - 2.03, 54.09, k], [5, - 2.94, 53.96, - 2.43, 54.24, k], [5, - 1.59, 51.43, - 1.42, 51.55, k], [5, - 0.85, 51.33, - 0.52, 51.47, k], [5, - 1, 51.33, - 0.78, 51.47, k], [5, - 1.14, 51.35, - 0.92, 51.47, k], [5, - 1.28, 51.35, - 1.07, 51.47, k], [5, - 1.36, 51.36, - 1.21, 51.47, k], [5, - 1.58, 51.34, - 1.28, 51.47, k], [5, - 1.5, 51.43, - 1.35, 51.55, k], [5, - 1.43, 51.43, - 1.21, 51.57, k], [5, - 1.28, 51.43, - 1.14, 51.56, k], [5, - 1.21, 51.42, - 0.99, 51.55, k], [5, - 1.07, 51.42, - 0.85, 51.56, k], [5, - 0.92, 51.42, - 0.7, 51.58, k], [5, - 0.78, 51.42, - 0.56, 51.58, k], [5, - 0.64, 51.42, - 0.49, 51.54, k], [5, - 2.5, 53.33, - 2.23, 53.45, k], [5, - 2.08, 53.5, - 1.88, 53.63, k], [5, - 2.3, 53.59, - 2, 53.69, k], [5, - 2.53, 53.59, - 2.23, 53.68, k], [5, - 2.3, 53.5, - 2, 53.63, k], [5, - 2.3, 53.32, - 2.08, 53.45, k], [5, - 2.15, 53.32, - 1.96, 53.45, k], [5, - 2.15, 53.41, - 1.88, 53.54, k], [5, - 2.3, 53.41, - 2.08, 53.54, k], [5, - 2.53, 53.41, - 2.23, 53.54, k], [5, - 2.76, 53.44, - 2.45, 53.54, k], [5, - 2.76, 53.49, - 2.45, 53.63, k], [5, - 2.53, 53.5, - 2.23, 53.63, k], [5, - 1.57, 54.8, - 1.34, 54.95, k], [5, - 2.05, 53.5, - 1.77, 53.63, k], [5, - 1.62, 53.81, - 1.29, 53.95, k], [5, - 1.62, 53.72, - 1.25, 53.86, k], [5, - 1.85, 53.81, - 1.54, 53.95, k], [5, - 2.12, 53.81, - 1.77, 53.96, k], [5, - 2.15, 53.59, - 1.77, 53.68, k], [5, - 1.85, 53.5, - 1.55, 53.68, k], [5, - 1.62, 53.54, - 1.22, 53.68, k], [5, - 1.62, 53.63, - 1.2, 53.77, k], [5, - 1.93, 53.63, - 1.55, 53.77, k], [5, - 2.18, 53.63, - 1.85, 53.77, k], [5, - 2.15, 53.72, - 1.85, 53.86, k], [5, - 1.93, 53.72, - 1.55, 53.86, k], [5, - 1.62, 53.72, - 1.25, 53.86, k], [5, - 74.26, 40.48, - 74.07, 40.77, "BlueSky"], [5, - 74.09, 40.53, - 73.91, 40.97, "BlueSky"], [5, - 73.92, 40.53, - 73.67, 40.99, "BlueSky"], [5, - 76.69, 39.23, - 76.51, 39.35, z], [5, - 71.25, 42.26, - 70.93, 42.47, z], [5, - 78.93, 42.84, - 78.69, 42.96, z], [5, - 87.99, 41.77, - 87.51, 42.06, z], [5, - 84.61, 39.07, - 84.41, 39.21, z], [5, - 81.84, 41.43, - 81.56, 41.59, z], [5, - 96.91, 32.73, - 96.7, 32.88, z], [5, - 105.04, 39.55, - 104.81, 39.82, z], [5, - 83.24, 42.24, - 82.9, 42.49, z], [5, - 158, 21.25, - 157.77, 21.4, z], [5, - 94.71, 39.01, - 94.51, 39.16, z], [5, - 118.32, 33.69, - 118.12, 33.84, z], [5, - 90.1, 35.07, - 89.91, 35.19, z], [5, - 80.34, 25.69, - 80.11, 25.91, z], [5, - 90.2, 29.9, - 90.02, 30.05, z], [5, - 74.21, 40.62, - 73.73, 40.89, z], [5, - 79.08, 43.06, - 79.01, 43.16, z], [5, - 75.3, 39.84, - 75.01, 40.08, z], [5, - 112.18, 33.39, - 111.88, 33.52, z], [5, - 80.08, 40.38, - 79.9, 40.52, z], [5, - 121.53, 38.48, - 121.35, 38.69, z], [5, - 117.28, 32.57, - 117.03, 32.82, z], [5, - 122.53, 37.58, - 122.27, 37.85, z], [5, - 90.33, 38.55, - 90.14, 38.7, z], [5, - 77.19, 38.77, - 76.87, 39.02, z], [5, - 77.06, 38.87, - 76.98, 38.92, z], [5, - 84.41, 33.74, - 84.37, 33.8, z], [5, - 76.63, 39.27, - 76.58, 39.31, z], [5, - 71.1, 42.34, - 71.04, 42.38, z], [5, - 87.69, 41.82, - 87.59, 41.95, z], [5, - 96.82, 32.76, - 96.77, 32.81, z], [5, - 105.02, 39.72, - 104.97, 39.77, z], [5, - 83.08, 42.31, - 83.02, 42.35, z], [5, - 80.17, 26.09, - 80.12, 26.14, z], [5, - 95.38, 29.74, - 95.33, 29.78, z], [5, - 74.07, 40.7, - 74.02, 40.74, z], [5, - 115.19, 36.08, - 115.13, 36.18, z], [5, - 118.49, 34.03, - 118.23, 34.08, z], [5, - 80.21, 25.75, - 80.18, 25.81, z], [5, - 93.29, 44.96, - 93.24, 45, z], [5, - 74.02, 40.67, - 73.95, 40.78, z], [5, - 74.2, 40.72, - 74.15, 40.76, z], [5, - 75.21, 39.94, - 75.12, 39.97, z], [5, - 122.69, 45.5, - 122.66, 45.54, z], [5, - 117.18, 32.7, - 117.14, 32.73, z], [5, - 122.43, 37.76, - 122.38, 37.82, z], [5, - 122.36, 47.58, - 122.31, 47.63, z], [5, - 90.25, 38.61, - 90.17, 38.65, z], [5, - 93.11, 44.93, - 93.07, 44.97, z], [5, - 82.67, 27.75, - 82.62, 27.79, z], [5, - 82.47, 27.93, - 82.44, 27.96, z], [5, - 77.12, 38.84, - 77.04, 38.9, z], [6, - 71.16, 42.35, - 71.06, 42.41, ba], [5, - 124.17, 49.04, - 123.78, 49.31, "Nanaimo"], [5, - 94.63, 35.74, - 93.8, 36.52, "Arkansas GIS"], [5, - 79.14, 35.86, - 79.06, 35.98, "City Of Carborro"], [5, - 122.26, 37.33, - 122.18, 37.4, "Town of Portola Valley"], [6, - 117.07, 46.99, - 116.14, 47.44, null], [6, - 114.13, 42.52, - 112.83, 43.82, null], [6, - 115.09, 43.05, - 113.81, 44.07, null], [6, - 117.07, 47.79, - 115.98, 48.88, null], [6, - 117.07, 48.37, - 115.97, 49.01, null], [6, - 117.07, 43.22, - 116.32, 43.94, null], [6, - 116.32, 42.82, - 115.44, 43.82, null], [6, - 116.76, 43.66, - 116, 44.57, null], [6, - 115.15, 42.53, - 114.51, 43.26, null], [6, - 114.65, 42.41, - 113.77, 42.88, null], [6, - 117.07, 47.28, - 116.26, 48, null], [6, - 117.07, 46.47, - 116.28, 47.19, null], [6, - 116.76, 45.87, - 115.97, 46.5, null], [6, - 117.07, 45.79, - 116.28, 46.69, null], [6, - 116.58, 41.87, - 115.7, 43.32, null], [6, - 115.9, 41.91, - 114.9, 43.01, null], [6, - 117.07, 41.89, - 116.32, 43.69, null], [6, - 117.07, 43.74, - 116.32, 44.19, null], [6, - 116.03, 46.82, - 114.8, 48, null], [6, - 116.39, 46.87, - 115.84, 48.13, null], [6, - 115.1, 41.84, - 113.96, 42.94, null], [6, - 115.66, 44.08, - 114.61, 45.27, null], [6, - 116.26, 44.08, - 115.36, 45.26, null], [6, - 117.26, 44.06, - 116.12, 44.88, null], [6, - 98.64, 29.59, - 96.48, 30.48, null], [6, - 99.01, 30.33, - 96.72, 31.14, null], [6, - 114.03, 41.11, - 111.65, 42.03, null], [6, - 112.26, 41.25, - 111.24, 42.01, null], [6, - 111.07, 39.37, - 109.92, 39.88, null], [6, - 112.26, 40.69, - 111.58, 41.2, null], [6, - 112.52, 37.43, - 111.23, 38.2, null], [6, - 112.89, 36.93, - 111.93, 37.57, null], [6, - 111.94, 40.62, - 111.27, 41.26, null], [6, - 111.51, 40.99, - 110.83, 42, null], [6, - 112.32, 40.24, - 111.48, 41.01, null], [6, - 111.63, 40.43, - 110.96, 41.19, null], [6, - 112.83, 39.86, - 111.99, 40.76, null], [6, - 112.2, 39.74, - 111.2, 40.63, null], [6, - 111.57, 40.25, - 111.24, 40.75, null], [6, - 112.26, 41, - 111.59, 41.51, null], [6, - 91.04, 47.4, - 89.5, 48.26, null], [6, - 88.15, 37.68, - 87.57, 38.95, null], [6, - 87.67, 38.94, - 86.78, 40, null], [6, - 87.69, 38.06, - 86.8, 39.01, null], [6, - 86.95, 38.81, - 86.23, 39.88, null], [6, - 86.92, 37.75, - 86.24, 38.88, null], [6, - 86.45, 38.87, - 85.7, 40.01, null], [6, - 86.44, 37.87, - 85.71, 38.95, null], [6, - 85.9, 38.93, - 85.24, 39.83, null], [6, - 85.9, 38.06, - 85.26, 39.03, null], [6, - 85.42, 39.24, - 84.68, 40.02, null], [6, - 87.58, 40.73, - 86.86, 41.75, null], [6, - 87.57, 39.5, - 86.9, 40.82, null], [6, - 87.09, 40.43, - 86.16, 41.82, null], [6, - 87.07, 39.43, - 86.17, 40.51, null], [6, - 86.4, 40.42, - 85.59, 41.83, null], [6, - 86.39, 39.25, - 85.54, 40.51, null], [6, - 85.73, 40.67, - 85.1, 41.82, null], [6, - 85.75, 39.32, - 85.1, 40.76, null], [6, - 85.28, 40.67, - 84.66, 41.82, null], [6, - 85.28, 39.48, - 84.67, 40.76, null], [6, - 95.76, 39.75, - 94.68, 40.65, null], [6, - 93.43, 37.91, - 91.87, 39.16, null], [6, - 92.13, 37.85, - 90.58, 39.13, null], [6, - 90.84, 37.79, - 89.72, 39.12, null], [6, - 94.66, 37.16, - 93.28, 38.31, null], [6, - 93.5, 37.07, - 91.98, 38.13, null], [6, - 92.22, 37.08, - 90.82, 38.07, null], [6, - 91.05, 36.97, - 89.63, 38.06, null], [6, - 89.97, 36.85, - 88.98, 37.95, null], [6, - 94.65, 36.35, - 93.28, 37.34, null], [6, - 93.42, 36.33, - 91.78, 37.4, null], [6, - 94.88, 39.69, - 93.67, 40.65, null], [6, - 90.51, 36.27, - 89.02, 37.24, null], [6, - 90.54, 36.27, - 89.01, 37.39, null], [6, - 90.39, 35.81, - 89.14, 36.53, null], [6, - 93.99, 39.64, - 92.37, 40.64, null], [6, - 92.66, 39.53, - 91.01, 40.64, null], [6, - 95.19, 38.93, - 93.78, 39.92, null], [6, - 94.08, 38.88, - 92.44, 39.91, null], [6, - 92.71, 38.88, - 91.02, 39.95, null], [6, - 91.27, 38.84, - 90.37, 39.69, null], [6, - 94.7, 38.01, - 93.15, 39.11, null], [6, - 103.02, 36.34, - 101.89, 37.09, null], [6, - 102.15, 36.33, - 99.96, 37.1, null], [6, - 95.28, 33.51, - 94.28, 33.88, null], [7, - 180, - 90, 180, 90, "DigitalGlobe"], [12, - 180, - 90, 180, 90, "EarthSat"]]; var Yd = new x( - 180, 180); var zb = La; var yb = "http://kh%1$s.google.com/kh"; function O(a, b, c, d, e, f) { this.japanDatumHack = f; this.tileSize = 256; this.backgroundColor = "#e5e3df"; this.emptyTileUrl = zb; this.numZoomLevels = 18; var g; if(c) { g = "http://kh%1$s." + c + "/kh"} else { g = yb} this.baseUrls = v.getTileBaseUrlArray(a, g, b, d); if(e) { if(c && this.testCookie(c)) { document.cookie = "khcookie=" + e + "; domain=." + c + "; path=/kh;"} else { for(var h = 0; h < this.baseUrls.length; h++) { this.baseUrls[h] += "cookie=" + e + "&"} } } this.errorTileMessage = _mKeyholeErrorTile; this.errorTileMargin = "6em"; this.initMercator()} O.prototype.testCookie = function(a) { try { document.cookie = "testcookie=1; domain=." + a; var b = document.cookie.indexOf("testcookie") !=- 1; if(b) { document.cookie = "testcookie=; domain=." + a + "; expires=Thu, 01-Jan-70 00:00:01 GMT"} return b} catch(c) { R.dump(c)} return false} ; O.prototype.getBitmapCoordinate = function(a, b, c, d) { if(this.japanDatumHack && a > 30 && a < 50 && b > 115 && b < 152) { a += 0.003236111111111111; b +=- 0.0032027777777777775} return this.getBitmapCoordinateWGS84(a, b, c, d)} ; O.prototype.getLatLng = function(a, b, c, d) { if(!d) { d = new x(0, 0)} d = this.getLatLngWGS84(a, b, c, d); if(this.japanDatumHack && d.y > 30 && d.y < 50 && d.x > 115 && d.x < 152) { d.y -= 0.003236111111111111; d.x -=- 0.0032027777777777775} return d} ; O.prototype.getTileURL = function(a, b, c) { if(!this.isInTileBoundsY(b, c)) { return this.emptyTileUrl} var d = Math.pow(2, this.numZoomLevels - c - 1); if(b < 0 || d - 1 < b) { return this.emptyTileUrl} if(a < 0 || d - 1 < a) { a = a % d; if(a < 0)a += d} var e = (a + b) % this.baseUrls.length; var f = "t"; for(var g = this.numZoomLevels - 2; g >= c; g--) { d = d / 2; if(b < d) { if(a < d) { f += "q"} else { f += "r"; a -= d} } else { if(a < d) { f += "t"; b -= d} else { f += "s"; a -= d; b -= d} } } return this.baseUrls[e] + "t=" + f} ; O.prototype.getLinkText = function() { return _mKeyholeMap} ; O.prototype.getShortLinkText = function() { return _mKeyholeMapShort} ; O.prototype.getURLArg = function() { return"k"} ; O.prototype.getCopyright = function(a) { if(!this.copyrights) { this.copyrights = ma.fromCompact(this, xb)} if(a.isLoaded()) { var b = this.copyrights.getCopyrights(a.getBoundsLatLng(), a.zoomLevel); if(b.length == 0) { return""} else { return _mKeyholeCopy + b.join(", ")} } else { return""} } ; O.prototype.getTextColor = function() { return"white"} ; O.prototype.getLinkColor = function() { return"white"} ; O.prototype.initMercator = F.prototype.initMercator; O.prototype.adjustBitmapX = F.prototype.adjustBitmapX; O.prototype.getBitmapCoordinateWGS84 = F.prototype.getBitmapCoordinate; O.prototype.getLatLngWGS84 = F.prototype.getLatLng; O.prototype.hasOverlay = F.prototype.hasOverlay; O.prototype.isInTileBoundsY = F.prototype.isInTileBoundsY; O.prototype.getLowestZoomLevel = F.prototype.getLowestZoomLevel; O.prototype.getPixelsPerDegree = F.prototype.getPixelsPerDegree; O.prototype.zoomBitmapCoord = F.prototype.zoomBitmapCoord; function S(a, b, c, d, e, f, g, h, i, l, m) { this.japanDatumHack = f; this.tileSize = 256; this.backgroundColor = "#e5e3df"; this.emptyTileUrl = zb; this.mapCopyrightArray = l; this.numZoomLevels = 18; var r; if(c) { r = "http://kh%1$s." + c + "/kh"} else { r = yb} this.baseUrls = v.getTileBaseUrlArray(a, r, b, d); this.overlayBaseUrls = v.getTileBaseUrlArray(g, Va, h, i); if(m) { this.lowResOverlayBaseUrls = v.getTileBaseUrlArray(g, Va, h, m)} if(e) { if(c && this.testCookie(c)) { document.cookie = "khcookie=" + e + "; domain=." + c + "; path=/kh;"} else { for(var p = 0; p < this.baseUrls.length; p++) { this.baseUrls[p] += "cookie=" + e + "&"} } } this.isNew = true; this.errorTileMessage = _mKeyholeErrorTile; this.errorTileMargin = "6em"; this.initMercator()} S.prototype.initMercator = F.prototype.initMercator; S.prototype.testCookie = O.prototype.testCookie; S.prototype.adjustBitmapX = F.prototype.adjustBitmapX; S.prototype.getBitmapCoordinate = O.prototype.getBitmapCoordinate; S.prototype.getBitmapCoordinateWGS84 = F.prototype.getBitmapCoordinate; S.prototype.getLatLngWGS84 = F.prototype.getLatLng; S.prototype.getLatLng = O.prototype.getLatLng; S.prototype.isInTileBoundsY = F.prototype.isInTileBoundsY; S.prototype.hasOverlay = function() { return true} ; S.prototype.getOverlayURL = function(a, b, c) { if(!this.isInTileBoundsY(b, c)) { return this.emptyTileUrl} var d = a; if(a < 0 || this.numTiles[c] <= a) { d = a % this.numTiles[c]; if(d < 0) { d += this.numTiles[c]} } var e = (d + b) % this.overlayBaseUrls.length; var f = this.overlayBaseUrls[e]; if(this.lowResOverlayBaseUrls && c >= 9) { f = this.lowResOverlayBaseUrls[e]} return f + "x=" + d + "&y=" + b + "&zoom=" + c} ; S.prototype.getTileURL = O.prototype.getTileURL; S.prototype.getLowestZoomLevel = F.prototype.getLowestZoomLevel; S.prototype.getPixelsPerDegree = F.prototype.getPixelsPerDegree; S.prototype.getLinkText = function() { return _mHybridMap} ; S.prototype.getShortLinkText = function() { return _mHybridMapShort} ; S.prototype.getURLArg = function() { return"h"} ; S.prototype.getCopyright = function(a) { if(!this.mapCopyrights) { this.mapCopyrights = new ma(this, this.mapCopyrightArray); this.satCopyrights = ma.fromCompact(this, xb)} var b = ""; if(a.isLoaded()) { var c = this.mapCopyrights.getCopyrights(a.getBoundsLatLng(), a.zoomLevel); var d = this.satCopyrights.getCopyrights(a.getBoundsLatLng(), a.zoomLevel); if(c.length > 0) { if(!(c.length == 1 && c[0] == _mZenrin)) { b += _mDataCopy + c.join(", ")} } if(d.length > 0) { if(b != "")b += " - "; b += _mKeyholeCopy + d.join(", ")} } return b} ; S.prototype.getTextColor = O.prototype.getTextColor; S.prototype.getLinkColor = O.prototype.getLinkColor; S.prototype.zoomBitmapCoord = F.prototype.zoomBitmapCoord; function Tb(a) { if(window.clipboardData) { j.addBuiltInListener(a, "paste", Jd); j.addBuiltInListener(a, "drop", Id)} else { j.addBuiltInListener(a, "focus", Ld); j.addBuiltInListener(a, "blur", Kd)} return true} function Jd(a) { var b = document.selection; if(b) { var c = b.createRange(); if(c) { var d = window.clipboardData.getData("Text"); if(d) { c.text = ib(d, null); return false} } } return true} function Id(a) { if(!a) { a = window.event} if(a.dataTransfer) { var b = ib(a.dataTransfer.getData("Text"), null); setTimeout(function() { xd(b)} , 1)} return true} function xd(a) { var b = document.selection; if(b) { var c = b.createRange(); if(c) { c.text = a; c.select()} } } function Ld() { var a = this; var b = function() { if(a.value != a.oldvalue) { if(Math.abs(a.value.length - a.oldvalue.length) != 1) { a.value = ib(a.value)} a.oldvalue = a.value} } ; a.oldvalue = a.value; a.interval = setInterval(b, 50)} function Kd() { var a = this; if(a.interval) { clearInterval(a.interval); a.interval = null} } function ib(a, b) { var c = b || ", "; var d = a.replace(/^[ \r\n\t\v]+/g,""); d = d.replace(/[ \r\n\t\v]+$/g,""); d = d.replace(/[ \t\v]*\r?\n[\r\n]*[ \t\v]*/g,c); return d} ; function Pd(a) { var b = [1518500249, 1859775393, 2400959708, 3395469782]; a += String.fromCharCode(128); var c = Math.ceil(a.length / 4) + 2; var d = Math.ceil(c / 16); var e = new Array(d); for(var f = 0; f < d; f++) { e[f] = new Array(16); for(var g = 0; g < 16; g++) { e[f][g] = a.charCodeAt(f * 64 + g * 4) << 24 | a.charCodeAt(f * 64 + g * 4 + 1) << 16 | a.charCodeAt(f * 64 + g * 4 + 2) << 8 | a.charCodeAt(f * 64 + g * 4 + 3)} } e[d - 1][14] = (a.length - 1 >>> 30) * 8; e[d - 1][15] = (a.length - 1) * 8 & 4294967295; var h = 1732584193; var i = 4023233417; var l = 2562383102; var m = 271733878; var r = 3285377520; var p = new Array(80); var y, D, P, H, M; for(var f = 0; f < d; f++) { for(var N = 0; N < 16; N++)p[N] = e[f][N]; for(var N = 16; N < 80; N++)p[N] = db(p[N - 3]^p[N - 8]^p[N - 14]^p[N - 16], 1); y = h; D = i; P = l; H = m; M = r; for(var N = 0; N < 80; N++) { var u = Math.floor(N / 20); var G = db(y, 5) + wd(u, D, P, H) + M + b[u] + p[N] & 4294967295; M = H; H = P; P = db(D, 30); D = y; y = G} h = h + y & 4294967295; i = i + D & 4294967295; l = l + P & 4294967295; m = m + H & 4294967295; r = r + M & 4294967295} return h.toHexStr() + i.toHexStr() + l.toHexStr() + m.toHexStr() + r.toHexStr()} function wd(a, b, c, d) { switch(a) { case 0 : return b & c^~b & d; case 1 : return b^c^d; case 2 : return b & c^b & d^c & d; case 3 : return b^c^d} } function db(a, b) { return a << b | a >>> 32 - b} Number.prototype.toHexStr = function() { var a = ""; var b; for(var c = 7; c >= 0; c--) { b = this >>> c * 4 & 15; a += b.toString(16)} return a} ; o.prototype.loadLocal = function(a, b) { this.addControl(new Ha()); this.addControl(new da(b)); var c = za.fromXml(Na.parse(a)); var d = b ? c.overlays[0].markers[0].point : c.center; var e = this.spec.getLowestZoomLevel(d, c.viewSpan, this.viewSize); this.centerAndZoom(d, e); var f = c.overlays[0].markers; var g = this; for(var h = 0; h < f.length; h++) { var i = f[h]; if(!b) { j.bind(i, "click", i, function() { g.openMarker = this; g.infoWindowNavigate(null, "")} )} this.addOverlay(i)} j.bind(this, "infowindowopen", this, function() { if(this.infoLoadFn) { this.infoLoadFn(); this.infoLoadFn = null} } ); var l = document.getElementById("largerlink"); if(l) { var m = l.href; j.bind(this, "moveend", this, function() { var r = this.getCenterLatLng(); var p = this.getSpanLatLng(); var y = this.spec.getURLArg(); l.href = m + "&ll=" + r.y + "," + r.x + "&spn=" + p.height + "," + p.width + (y ? "&t=" + y : "")} )} } ; o.prototype.infoWindowNavigate = function(a, b) { if(this.openMarker) { this.infoLoadFn = a; this.openMarker.xml.setAttribute("arg0", b); this.openMarker.openInfoWindowXslt(this.openMarker.xml, this.openMarker.infoStyle)} } ; function lb(a, b, c, d, e, f, g, h) { if(arguments.length < 1) { return} var i = /([^%]*)%(\d*)\$([#|-|0|+|\x20|'|I]*|)(\d*|)(\.\d+|)(h|l|L|)(s|c|d|i|b|o|u|x|X|f)(.*)/; var l; switch(_mDecimalPoint) { case "." : l = new RegExp("(\\d)(\\d\\d\\d\\.|\\d\\d\\d$)"); break; default : l = new RegExp("(\\d)(\\d\\d\\d" + _mDecimalPoint + "|\\d\\d\\d$)")} var m; switch(_mThousandsSeparator) { case "." : m = new RegExp("(\\d)(\\d\\d\\d\\.)"); break; default : m = new RegExp("(\\d)(\\d\\d\\d" + _mThousandsSeparator + ")")} var r = "$1" + _mThousandsSeparator + "$2"; var p = a; var y = i.exec(p); while(y) { var D = y[3]; var P =- 1; if(y[5].length > 1) { P = Math.max(0, parseInt(y[5].substr(1)))} var H = y[7]; var M = ""; var N = parseInt(y[2]); if(N < arguments.length) { M = arguments[N]} var u = ""; switch(H) { case "s" : u += M; break; case "c" : u += String.fromCharCode(parseInt(M)); break; case "d" : case "i" : u += parseInt(M).toString(); break; case "b" : u += parseInt(M).toString(2); break; case "o" : u += parseInt(M).toString(8).toLowerCase(); break; case "u" : u += Math.abs(parseInt(M)).toString(); break; case "x" : u += parseInt(M).toString(16).toLowerCase(); break; case "X" : u += parseInt(M).toString(16).toUpperCase(); break; case "f" : u += P >= 0 ? Math.round(parseFloat(M) * Math.pow(10, P))/Math.pow(10,P):parseFloat(M); break; default : break} if(D.search(/I/)!=-1&&D.search(/\'/)!=-1&&(H=="i"||H=="d"||H=="u"||H=="f")){u=u.replace(/\./g,_mDecimalPoint); var G = u; u = G.replace(l, r); if(u != G) { do { G = u; u = G.replace(m, r)} while(G != u)} } p = y[1] + u + y[8]; y = i.exec(p)} return p} ; function Ja(a) { this.active = null; this.tabs = { } ; this.activeClass = a} Ja.prototype.addTab = function(a, b, c) { var d = new Hb(this, a, b, c); this.tabs[a] = d; for(var e = 0; e < b.length; e++) { b[e].href = "javascript:void(0)"; j.bindDom(b[e], "click", this, function(f) { this.setActive(a); B(f); return false} )} if(c.style.display != "none") { this.active = d} return d} ; Ja.prototype.getTab = function(a) { return this.tabs[a]} ; Ja.prototype.getActiveTabName = function() { if(this.active) { return this.active.name} return null} ; Ja.prototype.setActive = function(a) { if(this.tabs[a] && this.active != this.tabs[a]) { if(this.active) { this.active.setActive(false)} this.active = this.tabs[a]; if(this.active) { this.active.setActive(true)} return this.active} else { return null} } ; function Hb(a, b, c, d) { this.tabstrip = a; this.name = b; this.tabs = c; this.card = d} Hb.prototype.setActive = function(a) { if(a) { for(var b = 0; b < this.tabs.length; b++) { Pa(this.tabs[b], this.tabstrip.activeClass)} this.card.style.display = ""} else { for(var b = 0; b < this.tabs.length; b++) { pb(this.tabs[b], this.tabstrip.activeClass)} this.card.style.display = "none"} j.trigger(this, this.tabstrip.activeClass, a)} ; var qb = "mapselectedlocation"; var C = typeof window.TS_load_timers == "object" ? window.TS_load_timers : null; function t(a, b, c, d, e, f) { this.map = null; this.mapContainer = a; this.panelContainer = b; this.metaPanel = this.createPanel(this.panelContainer); this.overlayPanel = this.createPanel(this.panelContainer); this.overlayPanel.style.display = ""; var g = this.panelContract = new na(); g.addContainer(this.overlayPanel); g.addContainer(this.metaPanel); g.addEvent("click"); g.addContext("toggle", t.toggleContext); g.addContext("searchMaps", j.callback(this, this.searchMaps)); g.addContext("searchStart", j.callback(this, this.searchStart)); g.addContext("searchLocal", j.callback(this, this.searchLocal)); g.addContext("searchNear", j.callback(this, this.searchNear)); g.addContext("searchDirections", j.callback(this, this.searchDirections)); g.addContext("showLocationInfo", j.callback(this, this.showLocationInfo)); g.addContext("showGeoAdInfo", j.callback(this, this.f)); g.addContext("showDirectionsStart", j.callback(this, this.showDirectionsStart)); g.addContext("showDirectionsEnd", j.callback(this, this.showDirectionsEnd)); g.addContext("showDirectionsSegment", j.callback(this, this.showDirectionsSegment)); g.addContext("saveLocation", j.callback(this, this.saveLocation)); this.permalink = c; jb(this, this.checkFontSize, 50); this.printHeadArea = d; this.printPanel = e; this.printSetup(); this.mapTypes = f; this.mapTypesByArg = { } ; for(var h = 0; h < this.mapTypes.length; ++h) { var i = this.mapTypes[h].getURLArg(); if(i) { this.mapTypesByArg[i] = this.mapTypes[h]} else { this.mapTypesByArg["default"] = this.mapTypes[h]} } this.infoWindowTransientState = { } ; this.infoWindowStickyState = { } ; this.inputElements = new T(); this.firstPage = true; this.queryForms = new Ja("selected"); j.bindDom(window, "resize", this, this.resizeMapView); this.resizeMapView(); j.addBuiltInListener(window, "unload", j.detachAllEvents)} t.toggleContext = function(a) { var b = a.getAttribute("othersrc"); a.setAttribute("othersrc", a.src); a.src = b; var c = a.getAttribute("toggle").split(/,/); var d = a.ownerDocument.getElementById(c[0]); var e = a.ownerDocument.getElementById(c[1]); if(e.style.display == "none") { d.style.display = "none"; e.style.display = ""} else { d.style.display = ""; e.style.display = "none"} } ; t.prototype.g = function(a) { var b = this.mapContainer; var c = this.panelContainer; if(a) { if(c.style.display == "none") { c.style.display = ""; b.style.marginLeft = this.oldMapContainerLeft; this.resizeMapView()} } else if(c.style.display != "none") { c.style.display = "none"; this.oldMapContainerLeft = b.style.marginLeft; b.style.marginLeft = n(0); this.resizeMapView()} } ; t.prototype.checkFontSize = function() { var a = this.permalink.offsetWidth; if(this.lastSize && this.lastSize != a) { this.resizeMapView(); this.checkPanelSize()} this.lastSize = a} ; t.prototype.createPanel = function(a) { var b = a.ownerDocument || document; var c = b.createElement("div"); c.style.display = "none"; c.style.margin = n(0); c.style.padding = n(0); a.appendChild(c); return c} ; t.prototype.getTabURL = function(a) { var b = ""; var c = this.inputElements; var d = function(D) { return"" + c.get(D).value} ; var e = this.queryForms.getActiveTabName(); if(e == "maps") { b = d("q")} else if(e == "local") { var f = d("what"); var g = d("where"); var h = []; if(f) { h.push(f)} if(g && g != _mMapAreaBelow) { h.push("near: " + g)} b = h.join(" ")} else if(e == "directions") { var i = d("start"); var l = d("end"); var h = []; if(i) { h.push("from: " + i)} if(l) { h.push("to: " + l)} b = h.join(" ")} var m = this.getPageURL(); if(m.indexOf("?") !=- 1) { m = m.substring(m.indexOf("?"))} else if(b.length > 0) { m = "?"} m = v.setUrlParameter(m, "q", b); m = v.removeUrlParameter(m, "near"); m = v.removeUrlParameter(m, "saddr"); m = v.removeUrlParameter(m, "daddr"); var r = v.getUrlParameter(a, "tab"); m = v.setUrlParameter(m, "tab", r); var p = a; if(p.indexOf("?") !=- 1) { p = p.substring(0, p.indexOf("?"))} var y = p + m; return y} ; t.prototype.printSetup = function() { if(browser.type == 1) { j.bindDom(window, "beforeprint", this, this.beforePrint); j.bindDom(window, "afterprint", this, this.afterPrint); this.printMessage = null; this.printImageContainer = null} else { var a = document.createElement("div"); a.id = "printmessage"; a.className = "noscreen"; ka(a, _mUsePrintLink); document.body.appendChild(a); this.printMessage = a; var b = document.createElement("div"); b.className = "noscreen"; this.mapContainer.parentNode.insertBefore(b, this.mapContainer); this.printImageContainer = b} } ; t.prototype.printWaitStart = function() { L(window.document.body, "wait")} ; t.prototype.printWaitEnd = function() { L(window.document.body, "")} ; t.prototype.printPrepare = function() { this.printMessage.style.visibility = "hidden"; Pa(this.mapContainer, "noprint"); this.printMessageNeedsReset = true} ; t.prototype.printError = function() { this.printMessage.style.visibility = "hidden"; this.printMessageNeedsReset = true} ; t.prototype.printReset = function() { if(this.printing) { return} if(this.printImage) { ua(this.printImage); this.printImage = null} if(this.printMessage && this.printMessageNeedsReset) { this.printMessage.style.visibility = "visible"; ka(this.printMessage, _mUsePrintLink); this.printMessageNeedsReset = false} pb(this.mapContainer, "noprint")} ; t.prototype.beforePrint = function() { var a = this.mapContainer.offsetWidth / window.screen.logicalXDPI; var b = 7; var c = this.mapContainer.offsetHeight / window.screen.logicalYDPI; var d = 8; if(this.vpage) { d = 7; if(this.vpage.directions) { d = 3.5} else if(this.vpage.overlays.length > 0 && this.vpage.overlays[0].markers.length > 1) { d = 4.5} } var e = b / a; if(c * e > d) { e = d / c} var f = a * e; if(f < b) { var g = Math.floor(f / b * 100); this.mapContainer.style.width = g + "%"} else { this.mapContainer.style.width = "100%"} this.mapContainer.style.zoom = e; this.overlayPanel.style.zoom = 0.8} ; t.prototype.afterPrint = function() { this.mapContainer.style.zoom = 1; this.mapContainer.style.width = "auto"; this.overlayPanel.style.zoom = 1; this.resizeMapView()} ; t.prototype.loadMap = function() { if(C) { C.start("loadMap Total", "lmt"); C.start("loadMap #1", "lm1")} this.map = new o(this.mapContainer, this.mapTypes, null, null, true); if(C)C.startNext("loadMap #2", "lm2"); this.map.registerKeyHandlers(window.document); this.map.addControl(new ia()); this.map.addControl(new wa(true, true), null, true); this.map.addControl(new da()); this.map.addControl(new oa(), new fa(2, 6, 4), true); if(C)C.startNext("loadMap #3", "lm3"); this.map.mapBlowupZoomLevel = 1; j.bind(this.map, "moveend", this, this.updateSoftState); j.bind(this.map, "infowindowopen", this, this.updateSoftState); j.bind(this.map, "infowindowclose", this, this.updateSoftState); j.bind(this.map, "click", this, this.onMapClick); j.bind(this.map, "mousedown", this, this.onMapMouseDown); var a = this.map.getInfoWindow(); a.addContext("iwstate", j.callback(this, this.iwState)); a.addContext("iwnavigate", j.callback(this, this.iwNavigate)); a.addContext("searchDirections", j.callback(this, this.searchDirections)); a.addContext("searchLocal", j.callback(this, this.searchLocal)); if(C) { C.end(); C.end()} } ; t.prototype.manageFocus = function(a) { if(a) { this.inputElements.set(a.id, a)} } ; t.prototype.onMapMouseDown = function() { this.inputElements.map(function(a, b) { b.blur()} )} ; t.prototype.registerForm = function(a, b, c, d, e) { if(b && c && d) { var f = this.queryForms.addTab(a, b, c); f.form = d; j.addListener(f, this.queryForms.activeClass, function(h) { if(h) { e.focus(); if(e.setSelectionRange) { e.setSelectionRange(0, 0)} } } ); var g = this; j.addBuiltInListener(d, "submit", function(h) { if(!g.searchSubmit(f)) { B(h); return false} else { return true} } )} } ; t.prototype.searchDirections = function(a, b, c, d) { if(b && c) { var e = this.queryForms.getTab("directions"); if(!e) { return false} if(a) { this.prepareSearchForm(a, d)} else { this.inputElements.get("start").value = b; this.inputElements.get("end").value = c; this.prepareSearchForm(e.form, d); e.form.submit()} return true} else { return false} } ; t.prototype.searchMaps = function(a) { var b = this.queryForms.getTab("maps"); if(!b) { return false} this.inputElements.get("q").value = a; var c = b.form; this.prepareSearchForm(c, "ex"); c.submit()} ; t.prototype.searchLocal = function(a, b, c) { var d = this.queryForms.getTab("local"); if(!d) { return false} var e = this.inputElements.get("what"); var f = this.inputElements.get("where"); if(!c) { f.focus(); return false} if(!b) { e.focus(); return false} e.value = b; f.value = c; if(a) { this.prepareSearchForm(a, "i"); return true} else { a = d.form; this.prepareSearchForm(a, "l"); a.submit(); return false} } ; t.prototype.searchNear = function(a) { var b = document.getElementById("pageform"); if(!b) { return} this.setFormField(b, "q", a); this.prepareSearchForm(b, "c"); b.submit()} ; t.prototype.searchStart = function(a, b) { var c = "" + this.vpageUrl; c = v.setUrlParameter(c, "start", a); c = v.setUrlParameter(c, "num", b); c = v.setUrlParameter(c, "output", "js"); c = v.setUrlParameter(c, "sa", "N"); c = v.removeUrlParameter(c, "btnG"); c = v.removeUrlParameter(c, "tab"); c = v.removeUrlParameter(c, "oi"); R.writeURL(c); this.vpageDoc.location = c} ; t.prototype.searchSubmit = function(a) { var b = a.name; function c(l) { return!l ||/^\s*$/.test(l)} var d = null; if(b == "local") { d = "l"; var e = this.inputElements.get("what"); if(c(e.value)) { e.focus(); return false} this.wfocus(); Aa(this, function() { this.wblur()} , 5)} else if(b == "directions") { d = "d"; var f = this.inputElements.get("start"); if(c(f.value)) { f.focus(); return false} var g = this.inputElements.get("end"); if(c(g.value)) { g.focus(); return false} } else { d = "q"; var h = this.inputElements.get("q"); if(c(h.value)) { h.focus(); return false} } var i = a.form; this.prepareSearchForm(i, d); return true} ; t.prototype.showLocationInfo = function(a) { var b = this.vpage.overlays[0]; var c = b.getMarkerById(a); if(c) { this.openMarkerInfoWindow(c)} } ; t.prototype.f = function(a) { var b = this.vpage.overlays[this.vpage.adsOverlayIndex]; var c = b.getMarkerById(a); if(c && (c.type == "geo_promote" || c.type == "geo_normal")) { this.openMarkerInfoWindow(c)} } ; t.prototype.showDirectionsSegment = function(a) { var b = this.vpage.directions; var c = b.getSegmentById(a); if(c) { var d = b.polyline.getPoint(c.pointIndex); var e = this; function f() { e.highlight(a)} ; function g() { e.unhighlight(a)} ; var h = this.map.showMapBlowup(d, null, null, null, f, g); if(c.pointIndex >= 2) { h.addOverlay(ea.fromPolylinePoint(b.polyline, c.pointIndex))} } } ; t.prototype.showDirectionsStart = function() { this.directionsStart.showMapBlowup()} ; t.prototype.showDirectionsEnd = function() { this.directionsEnd.showMapBlowup()} ; t.prototype.wfocus = function() { var a = this.inputElements.get("where"); if(!a) { return} if(a.value == _mMapAreaBelow) { a.value = ""} a.style.color = "black"} ; t.prototype.wblur = function() { var a = this.inputElements.get("where"); if(!a) { return} if(a.value.length == 0 || a.value == _mMapAreaBelow) { a.value = _mMapAreaBelow; a.style.color = "gray"} else { a.style.color = ""} } ; t.prototype.updateSoftState = function() { if(this.lockSoftState) { return} var a = this.getStateText(); if(this.vpageDoc) { this.vpageDoc.getElementById("state").value = a} this.permalink.href = this.getPageURL(); this.printReset()} ; t.prototype.resizeMapView = function() { var a = this.getWindowSize(); var b = nb(this.mapContainer); var c = a.height - b.y - 10; this.mapContainer.style.height = n(c); this.checkPanelSize(); if(this.map) { this.map.onResize()} } ; t.prototype.getWindowSize = function(a) { if(!a)a = new I(0, 0); if(window.self && self.innerWidth) { a.width = self.innerWidth; a.height = self.innerHeight; return a} if(document.documentElement && document.documentElement.clientHeight) { a.width = document.documentElement.clientWidth; a.height = document.documentElement.clientHeight; return a} a.width = document.body.clientWidth; a.height = document.body.clientHeight; return a} ; t.prototype.getStateFromUrl = function(a) { return a.replace(/^.*\?/,"")} ; t.prototype.parseState = function(a, b) { if(!b) { var c = { } } else { var c = b} var d = a.split("&"); var e = { } ; for(var f = 0; f < d.length; ++f) { var g = d[f].split("="); if(g.length == 2) { e[decodeURIComponent(g[0])] = decodeURIComponent(g[1])} } if(e["ll"]) { var h = e["ll"].split(","); if(h.length == 2) { var i = parseFloat(h[0]); var l = parseFloat(h[1]); if(!isNaN(i) &&!isNaN(l)) { c.center = new x(l, i)} } } if(e["spn"]) { var m = e["spn"].split(","); if(m.length == 2) { var r = parseFloat(m[0]); var p = parseFloat(m[1]); if(!isNaN(r) &&!isNaN(p)) { c.span = new I(p, r)} } } if(e["z"]) { c.zoom = parseInt(e["z"])} if(e["t"]) { c.spec = this.mapTypesByArg[e["t"]]} if(e["iwloc"]) { c.infoWindow = e["iwloc"]} if(e[Wa]) { c.infoWindowTransientState = v.decodeMap(e[Wa])} if(e[Ka]) { c.infoWindowStickyState = v.decodeMap(e[Ka])} return c} ; t.prototype.getStateText = function() { var a = []; var b = new v(); a.push("ll=" + b.getLatLngArg(this.map.getCenterLatLng())); a.push("z=" + this.map.zoomLevel); var c = this.map.spec.getURLArg(); if(c) { a.push("t=" + c)} else { a.push("t=default")} if(this.openMarker && this.map.infoWindow.isVisible()) { a.push("iwloc=" + this.openMarker.id); var d = v.encodeMap(this.infoWindowTransientState); a.push(Wa + "=" + d); d = v.encodeMap(this.infoWindowStickyState); a.push(Ka + "=" + d)} return a.join("&")} ; t.prototype.loadXML = function(a, b, c) { if(C)C.start("clearSearchState", "lx1"); this.lockSoftState = true; ja.invalidateAll(); this.clearSearchState(false); if(C)C.startNext("parseXmlString", "lx2"); this.vpageDoc = b; this.vpageUrl = c; this.vpageElement = null; this.vpage = null; var d = kb(a); if(C)C.startNext("Page.fromXml", "lx3"); var e = za.fromXml(d, null, null); if(C)C.startNext("xmlEasyDom", "lx4a"); this.vpage = e; this.vpageElement = Q(d, "page"); var f = ob(this.vpageElement); if(C)C.startNext("Load Panels", "lx5"); if(f.query) { this.setInputValue("q", f.query)} var g = f.request; this.setInputValue("what", g.query); this.setInputValue("where", g.near); if(g.sourceAddress && g.sourceAddress.length != 0) { this.setInputValue("start", g.sourceAddress)} this.setInputValue("end", g.destinationAddress); this.wblur(); this.firstPage = false; if(e.title) { window.document.title = _mSiteName + " - " + e.title} else { window.document.title = _mSiteName} if(browser.type == 1) { d.documentElement.setAttribute("filterpng", "1")} var h = this; var i = function() { h.checkPanelSize(); h.setPrintHeader()} ; var l = false; if(e.error || e.refinements || e.debug) { var m = v.getFileURL("mp"); this.metaPanel.style.display = ""; W.asynchronousTransform(e.xml, this.metaPanel, m, i, "metaPanel"); l = true} else { this.metaPanel.style.display = "none"; la(this.metaPanel)} if(e.overlays && e.overlays.length > 0) { this.overlayPanel.style.display = ""; var r = e.overlays[0]; if(r.panelStyle && r.markers) { var m = r.panelStyle; W.asynchronousTransform(e.xml, this.overlayPanel, m, i, "panel"); l = true} } else if(e.directions) { this.overlayPanel.style.display = ""; var m = v.getFileURL("dp"); W.asynchronousTransform(e.xml, this.overlayPanel, m, i, "panel"); l = true} else { this.overlayPanel.style.display = "none"; la(this.overlayPanel)} var p = { } ; if(c.indexOf("output=js") ==- 1) { this.parseState(this.getStateFromUrl(c), p)} var y = this.vpageDoc.getElementById("state").value; this.parseState(y, p); if(e.tab) { this.queryForms.setActive(e.tab)} this.vpageSpan = typeof p.zoom != "undefined" || p.span ? null : e.viewSpan; this.lastSearchSpan = null; if(C)C.startNext("load Map", "lx7"); var D = p.center || e.center || this.map.getCenterLatLng(); var P = this.map.isLoaded() && this.map.getSpanLatLng().approxEquals(e.viewSpan); this.g(l); var H = p.zoom; if(!P && H == null) { var M = p.span || e.viewSpan; if(M) { var N = p.spec || this.map.spec; H = N.getLowestZoomLevel(D, M, this.map.viewSize)} else if(typeof this.map.zoomLevel != "undefined") { H = this.map.zoomLevel} else { H = 4} } if(p.spec) { this.map.switchSpecification(p.spec, D, H)} if(D) { if(!this.map.isLoaded() || H != null && H != this.map.zoomLevel) { this.map.centerAndZoom(D, H)} else { this.map.recenterOrPanToLatLng(D)} } if(C)C.startNext("load Overlays", "lx8"); var u = 0; for(var G = 0; G < e.overlays.length; G++) { if(C)C.start("Overlay #" + G, "lxo" + G); for(var Ca = 0; Ca < e.overlays[G].markers.length; Ca++) { var ra = e.overlays[G].markers[Ca]; if(ra.icon) { j.bind(ra, "infowindowopen", this, this.onInfoWindowOpen); j.bind(ra, "infowindowclose", this, this.onInfoWindowClose); this.map.addOverlay(ra); u++} } } if(C)C.end(); if(C)C.startNext("loadXML end", "lx9"); if(e.directions) { if(C)C.start("Add Directions", "lx9b"); this.map.addOverlay(e.directions.polyline); this.createDirectionsMarkers(e.directions.polyline); if(C)C.end()} var ra = null; this.infoWindowStickyState = p.infoWindowStickyState || { } ; if(p.infoWindow && e.overlays[0]) { this.openMarkerInfoWindow(e.overlays[0].getMarkerById(p.infoWindow), p.infoWindowTransientState, true)} else if(u == 1) { this.openMarkerInfoWindow(e.overlays[0].markers[0])} this.map.saveMapState(); this.lockSoftState = false; this.updateSoftState(); if(C)C.end()} ; t.prototype.setInputValue = function(a, b) { var c = this.inputElements.get(a); if(!c) { return} if(!this.firstPage ||!c.value) { c.value = b || ""} } ; t.prototype.saveLocation = function(a, b) { var c = "/maps?output=setprefs&near=" + encodeURIComponent(a || ""); var d = "saveLocation"; var e = ja.create(d); var f = xa.create(d, true, true); f.continueWith(c, function(g) { if(e.isValid()) { if(b) { b()} } } )} ; t.prototype.iwNavigate = function() { if(!this.openMarker) { return} this.setInfoWindowState(this.openMarker.xml); this.openMarker.openInfoWindowXslt(this.openMarker.xml, this.openMarker.infoStyle, 330)} ; t.prototype.iwState = function(a, b, c) { if(c) { this.infoWindowStickyState[a] = b} else { this.infoWindowTransientState[a] = b} } ; t.prototype.checkPanelSize = function() { var a = this.overlayPanel.offsetTop; var b = this.panelContainer.offsetHeight - this.overlayPanel.offsetTop - this.overlayPanel.offsetHeight; var c = this.mapContainer.offsetHeight; var d; var e = this.panelContainer.scrollElement; if(e) { d = this.panelContainer.scrollHeight - e.offsetHeight + e.scrollHeight} else { d = this.panelContainer.scrollHeight} if(d > c) { e = null; var f = a + b; for(var g = 0; g < this.overlayPanel.childNodes.length; ++g) { var h = this.overlayPanel.childNodes[g]; if(Ra(h, "scroll")) { e = h} else if(h.offsetHeight) { f += h.offsetHeight} var i; if(h == h.parentNode.firstChild) { if(h.offsetParent == h.parentNode) { i = h.offsetTop} else { i = h.offsetTop - h.parentNode.offsetTop} } else { i = h.offsetTop - h.previousSibling.offsetTop - h.previousSibling.offsetHeight} f += i; if(h == h.parentNode.lastChild) { f += h.parentNode.offsetTop + h.parentNode.scrollHeight - (h.offsetTop + h.offsetHeight)} } if(e) { var l = c - f; if(l > 100) { this.panelContainer.scrollElement = e; e.style.height = n(l); this.setScroll(e, true); this.panelContainer.style.height = ""; this.setScroll(this.panelContainer, false)} else { this.setScroll(this.panelContainer, true); this.panelContainer.style.height = n(c); e.style.height = ""; this.setScroll(e, false); this.panelContainer.scrollElement = null} if(!e.panelScrollHandler) { var m = j.bindDom(e, "scroll", e, t.checkScroll); e.panelScrollHandler = m} } else { this.panelContainer.style.height = n(c); this.setScroll(this.panelContainer, true)} } else { if(this.panelContainer.scrollElement) { this.panelContainer.scrollElement.style.height = ""; this.setScroll(this.panelContainer.scrollElement, false); this.panelContainer.scrollElement = null} else { this.panelContainer.style.height = ""; this.setScroll(this.panelContainer, false)} } } ; t.checkScroll = function() { if(this.scrollTop == 0) { this.style.borderTopColor = "white"} else { this.style.borderTopColor = "silver"} } ; t.prototype.setScroll = function(a, b) { if(browser.type == 2) { if(b) { a.style.overflow = "-moz-scrollbars-vertical"; a.scrollTop = 0} else { a.style.overflow = ""} } else if(browser.type == 1) { if(b) { a.style.overflowY = "scroll"; a.scrollTop = 0} else { a.style.overflowY = ""} } else { if(b) { a.style.overflow = "auto"; a.scrollTop = 0} else { a.style.overflow = ""} } } ; var Uc = s + "dd-start.png"; var Tc = s + "dd-end.png"; t.prototype.createDirectionsMarkers = function(a) { var b = a.getPoint(0); var c = (a.points.length >> 1) - 1; var d = a.getPoint(c); var e = new Z(U); e.setImage(Uc); var f = new Z(U); f.setImage(Tc); var g = new J(b, e); var h = new J(d, f); j.addListener(g, "click", function() { g.showMapBlowup()} ); j.addListener(h, "click", function() { h.showMapBlowup()} ); this.map.addOverlay(g); this.map.addOverlay(h); this.directionsStart = g; this.directionsEnd = h} ; t.prototype.highlight = function(a) { if(a) { var b = Mb("panel_" + a); if(b) { Pa(b, qb); var c = this.panelContainer.scrollElement; if(c && (c.scrollTop > b.offsetTop || c.scrollTop + c.offsetHeight < b.offsetTop)) { c.scrollTop = b.offsetTop; t.checkScroll.apply(c)} } } } ; t.prototype.unhighlight = function(a) { if(a) { var b = Mb("panel_" + a); if(b) { pb(b, qb)} } } ; t.prototype.onInfoWindowOpen = function(a) { this.openMarker = a; this.highlight(a.id)} ; t.prototype.onInfoWindowClose = function(a) { if(this.openMarker) { this.clearInfoWindowState(this.openMarker.xml); this.openMarker = null} this.unhighlight(a.id)} ; t.prototype.onMapClick = function(a) { if(a) { this.openMarkerInfoWindow(a)} } ; t.prototype.a = function(a, b) { var c = ja.create(a); var d = xa.create(a, true, true); R.writeURL(b); d.continueWith(b, function(e) { } )} ; t.prototype.openMarkerInfoWindow = function(a, b, c) { if(!a.xml ||!a.infoStyle) { return} this.infoWindowTransientState = b || { } ; if(a.logUrl) { this.a("iwlog" + a.id, a.logUrl)} this.setInfoWindowState(a.xml); a.openInfoWindowXslt(a.xml, a.infoStyle, 330, c)} ; t.prototype.setInfoWindowState = function(a) { ac(a, this.infoWindowStickyState); ac(a, this.infoWindowTransientState); if(browser.type == 1) { a.setAttribute("filterpng", "1")} else if(browser.type == 4) { a.setAttribute("notabs", "1")} if(this.inputElements.get("start")) { a.setAttribute("saddr", this.inputElements.get("start").value); a.setAttribute("daddr", this.inputElements.get("end").value)} } ; t.prototype.clearInfoWindowState = function(a) { Zb(a, this.infoWindowStickyState); Zb(a, this.infoWindowTransientState); a.removeAttribute("filterpng")} ; t.prototype.prepareSearchForm = function(a, b, c) { ja.invalidateAll(); var d = new v(); this.setFormField(a, "sll", d.getLatLngArg(this.map.getCenterLatLng())); this.setFormField(a, "sspn", d.getSpanArg(this.map.getSpanLatLng())); this.setFormField(a, "z", this.map.zoomLevel); this.setFormField(a, "t", this.map.spec.getURLArg()); this.setFormField(a, "f", b); if(c && c.start) { this.setFormField(a, "start", c.start); if(c.num) { this.setFormField(a, "num", c.num)} } else { this.removeFormField(a, "start"); this.removeFormField(a, "num")} this.setFormField(a, "output", "js"); if(window._sf) { var e = window._sf.split(/&/); for(var f = 0; f < e.length; ++f) { var g = e[f].split(/=/); this.setFormField(a, g[0], decodeURIComponent(g[1]))} } } ; t.prototype.setFormField = function(a, b, c) { var d = false; for(var e = 0; e < a.elements.length; ++e) { var f = a.elements[e]; if(f.name == b) { f.value = c; d = true} } if(d) { return} var f = document.createElement("input"); f.type = "hidden"; f.name = b; f.value = c; a.appendChild(f)} ; t.prototype.removeFormField = function(a, b) { var c = []; for(var d = 0; d < a.elements.length; ++d) { if(a.elements[d].name == b) { c.push(a.elements[d])} } for(var d = 0; d < c.length; ++d) { ua(c[d])} } ; t.prototype.clearSearchState = function(a) { this.map.clearOverlays(); this.metaPanel.style.display = "none"; la(this.metaPanel); la(this.overlayPanel); this.checkPanelSize(); this.infoWindowTransientState = { } ; this.infoWindowStickyState = { } ; if(!a) { if(this.vpage && this.vpage.xml) { Ib.recycle(this.vpage.xml)} this.vpage = null; this.vpageDoc = null; this.vpageElement = null} } ; t.prototype.getPageURL = function(a, b) { if(this.vpageSpan &&!this.lastSearchSpan) { this.vpageSpan = null; this.lastSearchSpan = this.map.getSpanLatLng()} var c = new v(); if(this.vpage && this.vpageDoc) { var d = this.vpage.query; c.setQueryValue("q", d); var e = Q(this.vpage.xml, "tab"); var f = Q(this.vpage.xml, "request"); var g = Q(f, Gd); var h = Q(f, Hd); var i = Q(f, Fd); if(e) { var l = $(e); if(l == "directions") { c.setQueryValue("f", "d")} else if(l == "local") { c.setQueryValue("f", "l")} } if(g) { c.setQueryValue("num", $(g))} if(h) { c.setQueryValue("start", $(h))} if(i) { c.setQueryValue("cid", $(i))} var m = this.map.getCenterLatLng(); var r = this.vpage.center; if(this.vpage.searchCenter) { c.setValue("sll", c.getLatLngArg(this.vpage.searchCenter))} var p = false; if(!m.approxEquals(r)) { p = true; c.setValue("ll", c.getLatLngArg(m))} var y = this.map.getSpanLatLng(); var D = this.lastSearchSpan; if(this.vpage.searchSpan) { c.setValue("sspn", c.getSpanArg(this.vpage.searchSpan))} if(p ||!D ||!y.approxEquals(D)) { var P = new I(y.width * 0.95, y.height * 0.95); c.setValue("spn", c.getSpanArg(P))} } else { c.setAllMapValues(this.map)} c.setValue("t", this.map.spec.getURLArg()); if(this.openMarker && this.map.infoWindow.isVisible()) { c.setValue("iwloc", this.openMarker.id); c.setValue(Ka, v.encodeMap(this.infoWindowStickyState))} return c.getURL(a, b)} ; t.prototype.email = function() { var a = "mailto:?subject=" + encodeURIComponent(_mEmailSubject) + "&body=" + encodeURIComponent(this.getPageURL(true, true)); window.location.href = a} ; t.prototype.print = function() { if(!this.printMessage || this.printImage) { window.print()} else if(!this.printing) { this.printing = true; var a = v.getPrintImageUrl(this); var b = document.createElement("img"); b.className = "noscreen printimage"; var c = this; b.onload = function() { c.printWaitEnd(); c.printPrepare(); window.print(); c.printing = false} ; b.onerror = function() { c.printWaitEnd(); c.printError(); window.print(); c.printing = false} ; this.printWaitStart(); this.printImageContainer.appendChild(b); this.printImage = b; R.writeURL(a); b.src = a} } ; t.prototype.setPrintHeader = function() { this.printPanel.innerHTML = this.overlayPanel.innerHTML; var a = Vd(this.overlayPanel, "printtitle"); if(a) { this.printHeadArea.innerHTML = a.innerHTML} else { this.printHeadArea.innerHTML = ""} } ; t.prototype.reportStats = function(a) { var b = []; for(var c in a) { b.push(c + ":" + a[c])} var d = this.getPageURL(); d += "&stat_m=" + b.join(","); R.writeURL(d); if(!this.statsSender) { this.statsSender = document.createElement("img"); this.statsSender.style.position = "absolute"; this.statsSender.style.visibility = "hidden"; this.statsSender.style.top = n( - 10); this.statsSender.style.left = n( - 10); this.statsSender.style.width = n(1); this.statsSender.style.height = n(1); document.body.appendChild(this.statsSender)} this.statsSender.src = d} ; var Gd = "num"; var Hd = "start"; var Fd = "cid"; function R() { } R.write = function(a, b) { } ; R.writeRaw = function(a) { } ; R.writeXML = function(a) { } ; R.writeURL = function(a) { } ; R.dump = function(a) { } ; R.incompatible = function() { } ; R.clear = function() { } ; function V() { } V.start = function() { } ; V.end = function() { } ; V.addTime = function(a) { } ; function Fa() { } Fa.monitor = function(a, b, c, d) { } ; Fa.dump = function() { } ; Fa.reset = function() { } ; Fa.clear = function() { } ; Fa.setup = function() { } ; var Nb = false; var yd = false; function Yb(a) { return null} function Ib() { } Ib.recycle = function(a) { } ; ; function Sb(a) { var b = a || window; b._MapsApplication = t; b._VPage = za; b._Point = x; b._Size = I; b._Bounds = E; b._Map = o; b._Icon = Z; b._Marker = J; b._Polyline = K; b._LargeMapControl = ia; b._SmallMapControl = Ha; b._SmallZoomControl = Ia; b._MapTypeControl = da; b._GoogleMapMercSpec = F; b._KeyholeMapMercSpec = O; b._HybridMapSpec = S; b._GOOGLE_MAP_TYPE = null; b._SATELLITE_TYPE = null; b._HYBRID_TYPE = null; b._DocumentTransport = xa; b._XmlHttp = Ya; b._Xml = Na; b._Xslt = W; b._Event = j; b._Timer = V; b._Log = R; b._makePasteBox = Tb; b._getElementsByClassName = zd; b.GMapsApplication = t; b.GVPage = za; b.GPoint = x; b.GSize = I; b.GBounds = E; b.GMap = o; b.GIcon = Z; b.GMarker = J; b.GPolyline = K; b.G_DEFAULT_ICON = U; b.GControlPosition = fa; b.G_ANCHOR_TOP_LEFT = 0; b.G_ANCHOR_TOP_RIGHT = 1; b.G_ANCHOR_BOTTOM_LEFT = 2; b.G_ANCHOR_BOTTOM_RIGHT = 3; b.GLargeMapControl = ia; b.GSmallMapControl = Ha; b.GSmallZoomControl = Ia; b.GMapTypeControl = da; b.GScaleControl = oa; b.G_MAP_DEFAULT_COPYRIGHTS = Vc; b.G_MAP_API_COPYRIGHTS = Sc; b.GGoogleMapMercSpec = F; b.GKeyholeMapMercSpec = O; b.GHybridMapSpec = S; if(window.createMapSpecs) { var c = window.createMapSpecs(); b.G_MAP_TYPE = c[0]; b.G_SATELLITE_TYPE = c[1]; b.G_HYBRID_TYPE = c[2]} else { b.G_MAP_TYPE = null; b.G_SATELLITE_TYPE = null; b.G_HYBRID_TYPE = null} b.GDocumentTransport = xa; b.GXmlHttp = Ya; b.GXml = Na; b.GXslt = W; b.GEvent = j; b.GTimer = V; b.GLog = R; b.GMakePasteBox = Tb} function Sd(a, b, c) { var d = []; var e = [a]; if(a == "https:") { e.unshift("http:")} b = b.toLowerCase(); var f = [b]; var g = b.split("."); if(g[0] == "www") { g.shift()} else { g.unshift("www")} f.push(g.join(".")); c = c.split("/"); var h = []; while(c.length > 1) { c.pop(); h.push(c.join("/") + "/")} for(var i = 0; i < e.length; ++i) { for(var l = 0; l < f.length; ++l) { for(var m = 0; m < h.length; ++m) { d.push(e[i] + "//" + f[l] + h[m])} } } return d} var Wb = { co : { ck : 1, cr : 1, hu : 1, id : 1, il : 1, "in" : 1, je : 1, jp : 1, ke : 1, kr : 1, ls : 1, nz : 1, th : 1, ug : 1, uk : 1, ve : 1, vi : 1, za : 1} , com : { ag : 1, ar : 1, au : 1, bo : 1, br : 1, bz : 1, co : 1, cu : 1, "do" : 1, ec : 1, fj : 1, gi : 1, gr : 1, gt : 1, hk : 1, jm : 1, ly : 1, mt : 1, mx : 1, my : 1, na : 1, nf : 1, ni : 1, np : 1, pa : 1, pe : 1, ph : 1, pk : 1, pr : 1, py : 1, sa : 1, sg : 1, sv : 1, tr : 1, tw : 1, ua : 1, uy : 1, vc : 1, vn : 1} , off : { ai : 1} } ; function Dd(a) { var b = a.toLowerCase().split("."); if(b.length < 2) { return false} var c = b.pop(); var d = b.pop(); if((d == "igoogle" || d == "gmodules") && c == "com") { return true} if(c.length == 2 && b.length > 0) { if(Wb[d] && Wb[d][c] == 1) { d = b.pop()} } return d == "google"} if(typeof _apiHash != "undefined") { var Ed = _apiHash; var Ub = false; var Xb = Sd(window.location.protocol, window.location.host, window.location.pathname); for(var hb = 0; hb < Xb.length; ++hb) { var Qd = Xb[hb]; var Rd = Pd(Qd); if(Ed == Rd) { Ub = true; break} } if(Ub || Dd(window.location.host)) { Sb()} else { _c = false; alert(_mApiBadKey)} } else { Sb()} ; } ; GMapsNamespace();