Mine
public javascript v1 · immutable// 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<a.childNodes.length;++c){b+=Pb(a.childNodes[c])}b+=" "}}return b} function Ad(a){if(!a)return"";
var b = "";
if(a.nodeName == "#text") {
b += Qa(a.nodeValue)}
else {
for(var c = 0; c < a.childNodes.length; ++c) {
b += Pb(a.childNodes[c])}
}
return b}
function Kb(a) {
var b = window.document.createElement("iframe");
b.style.width = n(100);
b.style.height = n(50);
b.style.position = "absolute";
b.style.top = n( - 110);
b.style.left = n( - 110);
b.id = a;
b.name = a;
window.document.body.appendChild(b);
return b}
function Ob(a) {
if(a.contentWindow) {
return a.contentWindow}
else {
return window[a.id]}
}
function Q(a, b) {
if(a) {
return a.getElementsByTagName(b)[0]}
else {
return null}
}
function Vd(a, b) {
if(a) {
if(Ra(a, b)) {
return a}
else {
for(var c = a.firstChild; c; c = c.nextSibling) {
var d = arguments.callee.call(this, c, b);
if(d) {
return d}
}
return null}
}
else {
return null}
}
function $(a) {
if(!a) {
return""}
var b = "";
if(a.nodeType == 3 || a.nodeType == 4 || a.nodeType == 2) {
b += a.nodeValue}
else if(a.nodeType == 1 || a.nodeType == 9 || a.nodeType == 11) {
for(var c = 0; c < a.childNodes.length; ++c) {
b += arguments.callee(a.childNodes[c])}
}
return b}
function Pa(a, b) {
var c = (a.className || "").split(/\s+/);
var d = false;
for(var e = 0; e < c.length; ++e) {
if(c[e] == b) {
d = true;
break}
}
if(!d) {
c.push(b)}
a.className = c.join(" ")}
function pb(a, b) {
if(!a.className || a.className.indexOf(b) ==- 1) {
return}
var c = (a.className || "").split(/\s+/);
var d = [];
for(var e = 0; e < c.length; ++e) {
if(c[e] != b) {
d.push(c[e])}
}
a.className = d.join(" ")}
function Ra(a, b) {
var c = (a.className || "").split(/\s+/);
for(var d = 0; d < c.length; ++d) {
if(c[d] == b) {
return true}
}
return false}
;
function ob(a) {
if(!a) {
return null}
else if(a.nodeType == 1) {
var b = Xd(a);
if(b) {
return ob(b)}
else {
var c = [];
for(var d = 0; d < a.childNodes.length; ++d) {
var e = a.childNodes[d];
var f = ob(e);
if(f) {
c.push(f)}
if(!c[e.nodeName]) {
c[e.nodeName] = f}
else if(typeof c[e.nodeName] != "array") {
var g = c[e.nodeName];
c[e.nodeName] = [g, f]}
else {
c[e.nodeName].push(f)}
}
for(var d = 0; d < a.attributes.length; ++d) {
var h = a.attributes[d];
c[h.nodeName] = h.nodeValue}
return c}
}
else if(a.nodeType == 3) {
return"" + a.nodeValue}
else {
return null}
}
function Xd(a) {
if(a.attributes && a.attributes.length > 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();