/* Copyright Yahoo! - 0.8.8 */ function YahooMapsNameSpace() { var PI = 3.1415926; var M_PER_DEGREE = 111111; var EARTH_CIRCUM_M = M_PER_DEGREE * 360; var RAD_PER_DEG = PI / 180.0; var MAXLEVEL = 18; function tXY(tx,ty,x,y) { this.tx = tx||0; this.ty = ty||0; this.x = x||0; this.y = y||0; } function _YC(x,y) { this.x = x||0; this.y = y||0; } function _YS(w,h) { this.width = w||0; this.height = h||0; } function _GP(a,b) { this.Lat = a||0; this.Lon = b||0; } function Projection(p_level, clat, tilew, tileh) { this.init(p_level, clat, tilew, tileh); } Projection.prototype.init = function (p_level, clat, tilew, tileh) { if(p_level < 1) this.level_ = 1; else if(p_level > MAXLEVEL) this.level_ = MAXLEVEL; else this.level_ = p_level; this.tile_w_ = tilew; this.tile_h_ = tileh; this.status_ = 1; this.isok = isok; this.tile_width = tile_width; this.pixel_width = pixel_width; this.tile_height = tile_height; this.pixel_height = pixel_height; this.mpp = mpp; this.level = level; this.tile_size = tile_size; this.scaleKm = scaleKm; this.scaleMiles = scaleMiles; this.scaleFeet = scaleFeet; this.pix_to_tile = pix_to_tile; } function pix_to_tile(xp, yp) { v_xy = new tXY(); ypos = Math.abs(yp); v_xy.tx = Math.floor(xp / this.tile_w_); v_xy.x = xp % this.tile_w_; v_xy.ty = Math.floor(ypos / this.tile_h_); v_xy.y = ypos % this.tile_h_; if(yp < 0) { v_xy.ty = -v_xy.ty; if(y > 0) { v_xy.ty--; v_xy.y = this.tile_h_ - v_xy.y; } } return v_xy; } function tile_width() {return this.ntiles_w_;} function pixel_width() {return this.ntiles_w_ * this.tile_w_;} function tile_height() {return this.ntiles_h_;} function pixel_height() {return this.ntiles_h_ * this.tile_h_;} function mpp() {return this.meters_per_pixel_;} function level() {return this.level_;} function tile_size() {return this.tile_w_;} function isok() {return this.status_ == 1;} function scaleKm(km, clat) { return(this.scaleMeters(km * 1000.0, clat)); } function scaleMiles(miles, clat) { return(this.scaleMeters(miles * 1609.344, clat)); } function scaleFeet(feet, clat) { return(this.scaleMeters(feet / 3.282, clat)); } function sinh(x) { ret = Math.exp(x); ret = (ret - 1 / ret) / 2; return ret; } function MercatorProjection(p_level, tilew, tileh) { tilew = tilew||256; tileh = tileh||tilew; this.init(p_level, 0.0, tilew, tileh); circum_px = 1 << (26 - this.level_); this.ntiles_w_ = circum_px / this.tile_w_; this.ntiles_h_ = circum_px / this.tile_h_; this.meters_per_pixel_ = EARTH_CIRCUM_M / circum_px; this.x_per_lon_ = circum_px / 360.0; this.ll_to_xy = ll_to_xy; this.xy_to_ll = xy_to_ll; this.type = type ; this.mpp_m = mpp_m; this.scaleMeters = scaleMeters; this.ll_to_pxy = ll_to_pxy; this.pxy_to_ll = pxy_to_ll; } MercatorProjection.prototype = new Projection(); MercatorProjection.prototype.constructor = MercatorProjection; MercatorProjection.superclass = Projection.prototype; function ll_to_pxy(lat, lon) { alat = Math.abs(lat); alon = lon + 180.0; v_pxy = new _YC(); if(alat >= 90.0 || alon > 360.0 || alon < 0.0) return v_pxy; alat *= RAD_PER_DEG; v_pxy.x = parseInt(alon * this.x_per_lon_); ytemp = Math.log(Math.tan(alat) + 1.0 / Math.cos(alat)) / PI; v_pxy.y = parseInt(ytemp * this.pixel_height()) / 2; if(lat < 0) v_pxy.y = -v_pxy.y; this.status_ = 1; return v_pxy; } function ll_to_xy(lat, lon) { v_xy = new tXY(); v_pxy = this.ll_to_pxy(lat, lon); if (this.isok()) v_xy = this.pix_to_tile(v_pxy.x, v_pxy.y); return v_xy; } function pxy_to_ll(x_pixel, y_pixel) { this.status_ = 0; v_ll = new _GP(); alon = x_pixel / this.x_per_lon_; alat = (y_pixel / (this.pixel_height() / 2.0)) * PI; alat = Math.atan(sinh(alat)) / RAD_PER_DEG; if(alon < 0 || alon > 360.0) return v_ll; v_ll.Lon = alon - 180.0; if(alat <= -90.0 || alat >= 90.0) return v_ll; v_ll.Lat = alat; this.status_ = 1; return v_ll; } function xy_to_ll(col, row, x, y) { x_pixel = col * this.tile_w_ + x; y_pixel = row * this.tile_h_ + y; return(this.pxy_to_ll(x_pixel, y_pixel)); } function type() {return 'M';} function mpp_m(clat) { return(this.meters_per_pixel_ * Math.cos(clat * RAD_PER_DEG)); } function scaleMeters(meters, clat) { return(parseInt(meters / this.mpp_m(clat) + 0.5)); } function _gbid(id) { return document.getElementById(id) } _mMs = null; function _CE(a,b) { if (this._cEv) { this._cEv.set(a,b); } else { this._cEv = new _da(); if (a && b) this._cEv.set(a,b); } _regEvent(this._MDOM,a,b); } function _RCE(t) { //_deregEvent(this._MDOM,t,this._cEv.get(t)); if (this._cEv) { this._cEv.del(t); } } function _CAE() { if (this._cEv) { for (ev in this._cEv.a) { this._cEv.del(ev); } } } function _isCES(t) { if (this._cEv) { if (this._cEv.get(t)) { return true; } } return false; } function Browser() { this.app = navigator.appName; this.version = parseInt(navigator.appVersion); var ua = navigator.userAgent.toLowerCase(); if (ua.indexOf('msie')!=-1) this.uid = 0; else if (ua.indexOf('safari')!=-1) this.uid = 2; else if (ua.indexOf('mozilla')!=-1) this.uid = 1; } Browser.prototype.platform = function() { } function _YI() { this.src = 'http://us.i1.yimg.com/us.yimg.com/i/us/map/gr/map_mrkr_orng.gif'; this.size = new _YS(21,32); this.offsetSmartWindow = new _YC(0,-32); } function _grm() { var r = Math.random().toString(); return (r.replace(/\./g,"")); } function _YM(gp) { var im,id; for(var i = 1;i 

'+data+'   '; var swid = 'ysmw'; if (!_gbid(this.ID)) { return; } if (_gbid(swid)) { _mMs.vp.removeChild(_gbid(swid)); if(this._cEv) { if (_ufe=this._cEv.get(EventsList.closeSmartWindow)) { _ufe(new _eO(this,this.GeoPoint,{'oldLevel':_mMs._iz,'newLevel':_mMs._iz})); } } } o = document.createElement("div"); o.id = swid; o.style.position = "absolute"; o.style.left = parseInt(this._MDOM.style.left) + 'px'; var bpos = _mMs.prH-parseInt(this._MDOM.style.top) + this.Image.offsetSmartWindow.y; o.style.bottom = bpos+'px'; o.style.zIndex = 10; var osw = (data.length<100)?data.length+30:150; o.style.width = osw+'px'; o.ymv = 1; o.innerHTML = c; this._mSW = o; _mMs.vp.appendChild(this._mSW); if(this._cEv) { if (_ufe=this._cEv.get(EventsList.openSmartWindow)) { _ufe(new _eO(this,this.GeoPoint,{'oldLevel':_mMs._iz,'newLevel':_mMs._iz})); } } this.containSmartWindow(); if (_gbid("ymcsmw")) { var so = this; _gbid("ymcsmw").onclick = function() { so.closeSmartWindow();}; } } function _CNT() { var oc = _mMs._ll2xy(this.GeoPoint.Lat,this.GeoPoint.Lon); var x = y = 0; var cmX = 20 + this.Image.size.width + this.Image.offsetSmartWindow.x; var cmY = 20 + this.Image.size.height + this.Image.offsetSmartWindow.y; var nx = this._mSW.clientWidth - (_mMs.prW - oc.x); var ny = oc.y - this._mSW.clientHeight; if (oc.x < 10) x = cmX - oc.x; else if (nx > 0) x = -(nx+cmX); if (ny < 10) y = -(ny-cmY); else if (oc.y > _mMs.prH) y = _mMs.prH-oc.y-cmY; _mMs.smoothMoveByXY(new _YC(x,y)); } function _OLB(cin) { if (this._mLB) return; var o = document.createElement("div"); o.id = 'ymlb'+this.ID; o.style.position = "absolute"; o.style.fontWeight = "bold"; o.style.textAlign = 'center'; o.style.width = '20px'; o.style.height= '20px'; o.onmouseover = function(){ o.style.cursor = "default"; } o.style.zIndex = 1; o.ymv = 1; o.innerHTML = cin; this._mLB = o; this._MDOM.appendChild(this._mLB); } function _CPT(z) { var p = new MercatorProjection(z); this._PJ = p.ll_to_xy(this.GeoPoint.Lat,this.GeoPoint.Lon); } function _no(t,l,x,y) { this.t = t; this.l = l; this.x = x; this.y = y; } function _da() { this.a = []; this.size = 0; } _da.prototype.set = function(k,v){ this.a[k]=v; if (this.a[k]) { this.size++; } } _da.prototype.del = function(k){ if (this.a[k]) { delete this.a[k]; this.size--; } } _da.prototype.get = function(k){ return this.a[k]; } function _io(x,y,t,l,o) { this.tx = x; this.ty = y; this.t = t; this.l = l; this.o = o; } function _gbo(xn,yn,xx,yx) { this.LatMax = xx||0; this.LonMax = yx||0; this.LatMin = xn||0; this.LonMin = yn||0; } function _cb(x,y,bx,by) { this.bL = x-bx; this.bR = x+bx; this.bT = y+by; this.bB = y-by; } _cb.prototype.abL = function(){ this.pbL=this.bL; this.bL--; } _cb.prototype.abR = function(){ this.pbR=this.bR; this.bR++; } _cb.prototype.abT = function(){ this.pbT = this.bT; this.bT++; } _cb.prototype.abB = function(){ this.pbB = this.bB; this.bB--; } _cb.prototype.sbL = function(){ this.bL++; } _cb.prototype.sbR = function(){ this.bR--; } _cb.prototype.sbT = function(){ this.bT--; } _cb.prototype.sbB = function(){ this.bB++; } _cb.prototype.inB = function(x,y) { if ( x >= this.bL && x <= this.bR) if ( y <= this.bT && y >= this.bB) return true; return false; } ygSlider.prototype = new ygDragDrop(); ygSlider.getVertSlider = function (sBGElId, sHandleElId, iUp, iDown, iTickSize) {return new ygSlider(sBGElId, sBGElId, new ygSliderThumb(sHandleElId, sBGElId, 0, 0, iUp, iDown, iTickSize));} function ygSlider(sElementId, sGroup, oThumb) { if (sElementId) { this.init(sElementId, sGroup, true); var self = this; this.thumb = oThumb; oThumb.onChange = function() {self.onChange( oThumb.getValue() ); }; var el = oThumb.getEl(); this.thumbCenterPoint = { x:el.offsetWidth/2, y:el.offsetHeight/2 }; this.isTarget = false; this.animTime = .4; this.isSafari = false; if ( navigator.userAgent.match(/safari/gi) ) {this.isSafari = true;this.animTime = 1;} this.animate = ("undefined" != typeof ygAnim); this.tickPause = 40; if (oThumb._isHoriz && oThumb.xTicks) {this.tickPause = Math.round(360 / oThumb.xTicks.length); } else if (oThumb.yTicks) {this.tickPause = Math.round(360 / oThumb.yTicks.length);} oThumb.onMouseDown = function () {return self.focus(); }; oThumb.lock = function() { self.lock() }; oThumb.unlock = function() { self.unlock() }; oThumb.onMouseUp = function() {self.onMouseUp() }; oThumb.onDrag = function() { self.fireEvents() }; } } ygSlider.prototype.lock = function() {this.thumb.locked = true;this.locked = true;} ygSlider.prototype.unlock = function() {this.thumb.locked = false;this.locked = false;} ygSlider.prototype.onMouseUp = function() {this._deferSlideEnd = true;this.fireEvents();} ygSlider.prototype.focus = function() {this.onSlideStart();return true;} ygSlider.prototype.onChange = function (offsetFromStart) {} ygSlider.prototype.onSlideStart = function () {} ygSlider.prototype.onSlideEnd = function () {} ygSlider.prototype.getValue = function () { return this.thumb.getValue();} ygSlider.prototype.setValue = function(newOffset, skipAnim) {if ( isNaN(newOffset) ) {return false;}var t = this.thumb;if (t._isHoriz) {var newX = t._initX + newOffset + this.thumbCenterPoint.x;this.moveThumb(newX, t._initY, skipAnim);} else {var newY = t._initY + newOffset + this.thumbCenterPoint.y;this.moveThumb(t._initX, newY, skipAnim);}return true;} ygSlider.prototype.moveThumb = function(x, y, skipAnim) { var self = this; var t = this.thumb; t.setDelta(this.thumbCenterPoint.x, this.thumbCenterPoint.y); var oCoord = t.getTargetCoord(x, y); if (this.animate && t._graduated && !skipAnim) { this.lock();setTimeout(function() { self.moveOneTick([oCoord.x, oCoord.y]) }, this.tickPause); } else if (this.animate && !skipAnim) { this.lock(); var oAnim = new ygSliderAnim( t.getEl(), this.animTime, [oCoord.x, oCoord.y] ); oAnim.onComplete = function() { self.endAnim(); } oAnim.animate(); } else { t.setDragElPos(x, y); this.fireEvents(); } } ygSlider.prototype.moveOneTick = function(finalCoord) { var t = this.thumb; var curCoord = ygPos.getPos(t.getEl()); var tmp; var nextCoord; if (t._isHoriz) { if (curCoord[0] > finalCoord[0]) {tmp = t.getTargetCoord(curCoord[0] - t.tickSize, curCoord[1]);nextCoord = [tmp.x, tmp.y]; } else if (curCoord[0] < finalCoord[0]) {tmp = t.getTargetCoord(curCoord[0] + t.tickSize, curCoord[1]);nextCoord = [tmp.x, tmp.y]; } else {} } else { if (curCoord[1] > finalCoord[1]) {tmp = t.getTargetCoord(curCoord[0], curCoord[1] - t.tickSize);nextCoord = [tmp.x, tmp.y]; } else if (curCoord[1] < finalCoord[1]) {tmp = t.getTargetCoord(curCoord[0], curCoord[1] + t.tickSize);nextCoord = [tmp.x, tmp.y]; } else {} } if (nextCoord) { ygPos.setPos(t.getEl(), nextCoord); if (!(nextCoord[0] == finalCoord[0] && nextCoord[1] == finalCoord[1])) {var self = this;setTimeout(function() { self.moveOneTick(finalCoord) }, this.tickPause); } else {this.unlock();this.fireEvents();} } else {this.unlock();this.fireEvents(); } } ygSlider.prototype.onMouseDown = function(e) {if (! this.locked) { var ev = ygDDM.getEvent(); this.moveThumb(ev.pageX, ev.pageY);this.focus();}} ygSlider.prototype.onDrag = function(e) {if (!this.locked) {var ev = ygDDM.getEvent();this.moveThumb(ev.pageX, ev.pageY, true);}} ygSlider.prototype.endAnim = function () {this.unlock();this.fireEvents();} ygSlider.prototype.fireEvents = function () {if (!this.locked) {var newVal = this.thumb.getValue();if (newVal != this.previousVal) {this.onChange( this.thumb.getValue() );}this.previousVal = newVal;if (this._deferSlideEnd) {this.onSlideEnd();this._deferSlideEnd = false;}}} ygSliderThumb.prototype = new ygDD(); function ygSliderThumb(id, sGroup, iLeft, iRight, iUp, iDown, iTickSize) {if (id) {this.init(id, sGroup);this.initSlider(iLeft, iRight, iUp, iDown, iTickSize);}this.isTarget = false;if (iTickSize) {this.tickSize = iTickSize;}} ygSliderThumb.prototype._isHoriz = false; ygSliderThumb.prototype._prevVal = 0; ygSliderThumb.prototype._initX = 0; ygSliderThumb.prototype._initY = 0; ygSliderThumb.prototype._graduated = false; ygSliderThumb.prototype.initSlider = function (iLeft, iRight, iUp, iDown, iTickSize) {this.setXConstraint(iLeft, iRight, iTickSize);this.setYConstraint(iUp, iDown, iTickSize);if (iTickSize && iTickSize > 1) {this._graduated = true;}this._isHoriz = (iLeft > 0); this.isVert = (iUp > 0);var el = this.getEl();this._initX = ygDDM.getPosX(el);this._initY = ygDDM.getPosY(el);} ygSliderThumb.prototype.getValue = function () {var el1 = this.getEl();return (this._isHoriz) ? (ygDDM.getPosX(el1) - this._initX) : (ygDDM.getPosY(el1) - this._initY);} ygSliderThumb.prototype.onChange = function () {} ygSliderAnim.prototype = new ygAnim_Move(); function ygSliderAnim(oEl, iFrames, endPoint) { if (oEl) { var aPoints = [endPoint, endPoint, endPoint]; this.init(oEl, iFrames, aPoints); }} function _regEvent(el, ev, fn, tf) { tf = (tf) ? true : false; if (el.addEventListener) { el.addEventListener(ev, fn, tf); } else { if (el.attachEvent) { el.attachEvent("on" + ev, fn); } else { el["on" + ev] = fn; } } } function _deregEvent(el, ev, fn, tf) { tf = (tf) ? true : false; if (el.removeEventListener) { el.removeEventListener(ev, fn, tf); } else { if (el.detachEvent) { el.detachEvent("on" + ev, fn); } else { el["on" + ev] = null; } } } function _YMap(p,w,h,type) { this.mapType = type || 'STREET'; if (!p) if(Error) throw"YMap: Map generation failed: no container!"; this.vp = p; this._cst(w,h); this.setTileServerUrl(); this.slider = null; this.yDD = new ygDragDrop(this.vp.id); this._ccLL=null; this.CaptureEvent = _CE; this.ClearEvent = _RCE; this.isCaptureSet = _isCES; this.ClearAllEvent = _CAE; _mMs = this; this._brtp = new Browser(); } _YMap.prototype.vF = function() { } _YMap.prototype = { _iTs : 256, vZoom : [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16], _mtp : 1, _zr : [[1,"1",[0.1,0.05]],[2,"st",[0.125,0.1]],[3,"3",[0.25,0.2]],[4,"city",[0.5,0.5]],[5,"5",[1,1]],[6,"6",[3,2]],[7,"7",[5,5]],[8,"state",[15,10]],[9,"9",[30,20]],[10,"10",[60,40]],[11,"11",[125,60]],[12,"12",[250,100]],[13,"13",[500,250]],[14,"14",[1000,500]],[15,"15",[2500,1000]],[16,"16",[5000,2000]]], _np : [['NW',200,200,[292,337]],['N',0,200,[337,22]],['NE',-200,200,[22,67]],['W',200,0,[247,292]],['C',0,0,["0,0,0,0"]],['E',-200,0,[67,112]],['SW',200,-200,[202,247]],['S',0,-200,[157,202]],['SE',-200,-200,[112,157]]], _ypr : "ymps", _ctrpan: "ypancontrol", _ctrpanb: "ypancontrolb", _ctrzoom: "yzoomcontrol", _pll: 0, _imgU: "http://us.i1.yimg.com/us.yimg.com/i/us/map/gr/", _mTb: [], _eCrV: function() { var o = document.createElement("div"); var s = o.style; o.id = this._ypr + "crv"; s.position = "absolute"; s.left = this.prW - 210 + "px"; s.width = "200px"; s.textAlign = "right"; s.bottom = "0.1em"; s.zIndex = 3; s.cursor = "default"; o.innerHTML = 'Data © Navteq and TeleAtlas'; if(!this._rBYid(o.id)) this.appendToPort(o); }, _eCr: function() { var o = document.createElement("div"); var s = o.style; o.id = this._ypr + "cr"; s.position = "absolute"; s.textAlign = "right"; s.bottom = "0.1em"; s.zIndex = 3; s.marginLeft ="5px"; s.cursor = "default"; o.innerHTML = '© 2005 Yahoo! Inc.'; if(!this._rBYid(o.id)) this.appendToPort(o); }, enableAutoResize : function() { this._autoresize = true; this._autosize(); }, _autosize: function(w,h) { if (this._autoresize) { if(document.all){ document.body.style.height = "100%"; this.vp.style.height = "100%"; } this._enableRsz(); this.prW = parseInt(this._getBD()[0]); this.prH = parseInt(this._getBD()[1]); this._cst(this.prW,this.prH); this.prvW = this._getN(this.prW); this.prvH = this._getN(this.prH); } }, _enableRsz: function() { var self = this; window.onresize = function(){ self._rszM(); }; }, _rszM: function(){ //var op = ygPos.getPos(this.vp); this._cst(parseInt(this._getBD()[0] ),parseInt(this._getBD()[1] )); var cur = {x:this.prW,y:this.prH}; var re = {x:this.prW,y:this.prH}; var x = -(cur.x - re.x); var y = -(cur.y - re.y); var dx = (cur.x - this.prvW); var dy = (cur.y - this.prvH); if (dx>0||dy>0) { this._drw(); } else { this._drw(); } if (this._showZoomLong || this._showZoomShort) this._mvX(this._ctrzoom, x); if (this._showPointPan) this._mvX(this._ctrpanb, x); if (document.getElementById(this._ypr+'logo')) this._mvX(this._ypr+ "logo", x); this.prvW = this._getN(this.prW); this.prvH = this._getN(this.prH); }, _mvX: function(id,x) { var o = document.getElementById(id); var tmp = parseInt(o.style.left) + x; o.style.left = tmp + "px"; }, _getBD: function() { var w = window.innerWidth || document.body.clientWidth; var h = window.innerHeight || document.body.clientHeight; return [w, h]; }, _cst: function(wx,hy) { this.vp.style.overflow="hidden"; this.vp.style.background="#f1f1f1"; this.vp.style.position="relative"; this.vp.style.zIndex=0; this.vp.align = "left"; if (!this.vp.style.width) if (this.vp.clientWidth) this.vp.style.width = this.vp.clientWidth + 'px'; if (!this.vp.style.height) if (this.vp.clientHeight) this.vp.style.height = this.vp.clientHeight + 'px'; if(wx) this.vp.style.width = wx+'px'; if(hy) this.vp.style.height = hy+'px'; this.vp.id = (this.vp.id)?this.vp.id : 'ymapid'+Math.random(); this.prW = parseInt(this.vp.style.width); this.prH = parseInt(this.vp.style.height); this._pxy(); }, _pxy: function() { this.portUBX=this._iTs*Math.ceil(this.prW/this._iTs); this.portUBY=this._iTs*Math.ceil(this.prH/this._iTs); this.xB = Math.ceil((this.portUBX / this._iTs)/2); this.yB = Math.ceil((this.portUBY / this._iTs)/2); }, _ini: function() { this._yLogo(); if (!this._showZoomScale) this._addZoomScale(this._iz); this._eCrV(); this._eCr(); }, addOverlay: function(o) { if (!this._mTb[o.ID]) { this._mTb[o.ID] = o; this._drMrk(o.ID); return true; } return false; }, removeOverlay: function(o) { this._dO(o._MDOM); delete this._mTb[o.ID]; }, _drMrk: function(k) { nm = this._mTb[k]; nm.calculatePosition(this._iz); var key = this._xykey(nm._PJ.tx,nm._PJ.ty); if (this._pA[key]) { var ps = this._rct(this._pA[key].l,this._pA[key].t,nm._PJ.x,nm._PJ.y); nm._MDOM.ymv = this._mtp; nm._MDOM.style.left = ps.x +'px'; nm._MDOM.style.top = ps.y - nm.Image.size.height + 'px'; if (!this._rBYid(nm.ID) ) { this.vp.appendChild(nm._MDOM); } } else { nm._MDOM.ymv = 0; nm._MDOM.style.left = '-500px'; nm._MDOM.style.top = '-500px'; } }, _rdMrk: function(k) { for (m in this._mTb) { this._drMrk(m); } }, _zmScale: function() { var upp = this.getUnitsPerPixel(); var ukm = this._zr[this._iz-1][2][0]; var umi = this._zr[this._iz-1][2][1]; var pkm = 1/upp.kilometers * ukm; var pmi = 1/upp.miles * umi; ukm = (ukm<0.5)? ukm*1000+' m':ukm+' km'; umi = (umi<0.5)? umi*5280+' ft': umi+' mi'; var oid = 'yzscale'; var str = '
'+ ukm +'
'+ umi +'
'; var myo = this._rBYid(oid); if(!myo) { var o = document.createElement("div"); o.id = oid; o.innerHTML = str; this.appendToPort(o); } else { myo.innerHTML = str; } }, _ddr: function() { if(this._isdme()) return; this._drg(); }, _drg: function() { var prs = false; ygDDM.addEvent(this.vp,"dblclick",onDC); var self = this; self.yDD.onDrag = function() { var event = ygDragDropMgr.getEvent(); var tmp = { x: event.clientX - ox, y: event.clientY - oy }; ox = event.clientX; oy = event.clientY; prs = self._pn(tmp.x, tmp.y); if (self._cEv) if (_ufe=self._cEv.get(EventsList.onPan)) _ufe(new _eO(self,self._gp,{'oldLevel':self._iz,'newLevel':self._iz})); } self.yDD.startDrag = function() { var event = ygDragDropMgr.getEvent(); ox = event.clientX; oy = event.clientY; if (self._cEv) if (_ufe=self._cEv.get(EventsList.startPan)) _ufe(new _eO(self,self._gp,{'oldLevel':self._iz,'newLevel':self._iz})); } self.yDD.endDrag = function() { var event = ygDragDropMgr.getEvent(); ox = event.clientX; oy = event.clientY; if (prs) { self._uPn(self._tMx,self._tMy); if (self._cEv) if (_ufe=self._cEv.get(EventsList.endPan)) _ufe(new _eO(self,self._gp,{'oldLevel':self._iz,'newLevel':self._iz})); self._tMx = self._tMy = 0; } for (p in self._tH) { if(!self.bO.inB(self._tH[p].tx,self._tH[p].ty)) { self._dO(self._tH[p].o); delete self._tH[p]; delete self._pA[p]; } } self._rdMrk(); } self.yDD.onMouseDown = function() { var event = ygDragDropMgr.getEvent(); var cx = event.x||event.pageX-self.yDD.startPageX; var cy = event.y||event.pageY-self.yDD.startPageY; var cC = {"x":cx,"y":cy}; if (self._cEv) if (_ufe=self._cEv.get(EventsList.MouseDown)) { if (event.target.mtype) return; _ufe(new _eO(self,self._gp,{'oldLevel':self._iz,'newLevel':self._iz},self._xy2ll(cx,cy),cC)); } } self.yDD.onMouseUp = function() { var event = ygDragDropMgr.getEvent(); var cx = event.x||event.pageX-self.yDD.startPageX; var cy = event.y||event.pageY-self.yDD.startPageY; var cC = {"x":cx,"y":cy}; var cgo= self._xy2ll(cx,cy); if (self._cEv) if (_ufe=self._cEv.get(EventsList.MouseUp)) { if (event.target.mtype) return; _ufe(new _eO(self,self._gp,{'oldLevel':self._iz,'newLevel':self._iz},cgo,cC)); } if (self._cEv) if (_ufe=self._cEv.get(EventsList.MouseClick)) { if (event.target.mtype) return; _ufe(new _eO(self,self._gp,{'oldLevel':self._iz,'newLevel':self._iz},cgo,cC)); } } function onDC() { var event = ygDragDropMgr.getEvent(); self._uPn(self._tMx,self._tMy); var cx = event.x||event.pageX-self.yDD.startPageX; var cy = event.y||event.pageY-self.yDD.startPageY; var cC = {"x":cx,"y":cy}; if (self._cEv) { if (_ufe=self._cEv.get(EventsList.MouseDoubleClick)) { _ufe(new _eO(self,self._gp,{'oldLevel':self._iz,'newLevel':self._iz},self._xy2ll(cx,cy),cC)); } } else { var oc = self._ll2xy(self._gp.Lat,self._gp.Lon); var xd = Math.floor(oc.x-cx); var yd = Math.floor(oc.y-cy); self._pointPan(xd,yd); } } }, _xy2ll: function(x,y) { this._ccLL= this.MP.xy_to_ll(this._oTo.tx,this._oTo.ty,this._lct(x,y)[0],this._lct(x,y)[1]); return this._ccLL; }, _ll2xy: function(a,o) { var v = this.MP.ll_to_xy(a,o); var k = this._xykey(v.tx,v.ty); if (this._pA[k]) { return this._rct(this._pA[k].l,this._pA[k].t,v.x,v.y); } return false; }, _cvu: function() { for (t in this._tH) { this._dO(this._tH[t].o); delete this._tH[t]; } for (m in this._mTb) { this._dO(this._mTb[m]._MDOM); } for (p in this._pA) { delete this._pA[p]; } }, _tct: function(x,y) { return {"x":((this.prW/2)-x),"y":((this.prH/2)-this._iTs+y)}; }, _rct: function(l,t,x,y) { return {"x":l+x,"y":t+this._iTs-y}; }, _lct: function(x,y) { return [this._oTo.x-this.prW/2+x,this._oTo.y+this.prH/2-y]; }, _drw: function() { this._cvu(); if (!this._gp) return; this.MP = new MercatorProjection(this._iz,this._iTs,this._iTs); this.oXY = this.MP.ll_to_xy(this._gp.Lat, this._gp.Lon); this._oTo = { tx: this.oXY.tx, ty: this.oXY.ty, x: this.oXY.x, y: this.oXY.y }; this.bO = new _cb(this.oXY.tx,this.oXY.ty,this.xB,this.yB); var pO = this._tct(this.oXY.x,this.oXY.y); var ap = []; for (xI=0; xI<=this.xB; xI++) { for (yI=0; yI<=this.yB; yI++) { var T = -yI * this._iTs; var L = xI * this._iTs; this._gT(pO.y+T,pO.x+L,this.oXY.tx+xI,this.oXY.ty+yI); this._ipA(pO.y+T,pO.x+L,this.oXY.tx+xI,this.oXY.ty+yI); ap[this._xykey(xI,yI)] = 1; } } for (xI=-this.xB; xI<=this.xB; xI++) { for (yI=-this.yB; yI<=this.yB; yI++) { if (ap[this._xykey(xI,yI)]) { continue; } var T = -yI * this._iTs; var L = xI * this._iTs; this._gT(pO.y+T,pO.x+L,this.oXY.tx+xI,this.oXY.ty+yI); this._ipA(pO.y+T,pO.x+L,this.oXY.tx+xI,this.oXY.ty+yI); } } var bTL = this.MP.xy_to_ll(this.oXY.tx,this.oXY.ty,this.oXY.x+this.prW/2,this.oXY.y-this.prH/2); var bBR = this.MP.xy_to_ll(this.oXY.tx,this.oXY.ty,this.oXY.x-this.prW/2,this.oXY.y+this.prH/2); this._gBO = new _gbo(bTL.Lat,bTL.Lon,bBR.Lat,bBR.Lon); this.__pll = this.MP.x_per_lon_; this._ini(); this._rdMrk(); }, _mG: function(pT,pL,tx,ty,k) { this._gT(pT,pL,tx,ty); }, _gT: function(pT,pL,tx,ty,oi) { pT = Math.floor(pT); pL = Math.floor(pL); var t = document.createElement("img"); t.style.position = "absolute"; t.style.padding = "0px"; t.style.margin = "0px"; t.style.border = "0px"; t.style.width = this._iTs+2 + "px"; t.style.height = t.style.width; t.style.zIndex = 0; if (this._brtp.uid==1) t.style.MozUserSelect="none"; if (this._brtp.uid==0) { t.unselectable="on"; t.galleryImg="no"; } t.ymv = this._mtp; if (this._brtp.uid) { t.style.visibility = "hidden"; t.onload = function(){ t.style.visibility = "visible"; }; } t.style.left = pL + "px"; t.style.top = pT + "px"; t.src = this._gL(tx, ty, this._iz); t.xC = tx; t.yC = ty; this._tH[this._xykey(t.xC,t.yC)] = new _io(t.xC,t.yC,pT,pL,t); this.vp.appendChild(t); }, _yLogo: function() { var o = document.createElement("img"); var s = o.style; o.id = "ylogo"; s.position = "absolute"; s.right = "0.5em"; s.bottom = "1.3em"; s.zIndex = 3; o.src = this._imgU + "yahoo.gif"; if(!this._rBYid(o.id)) this.appendToPort(o); }, _gL: function(x,y,z) { this.mRu = this.tileServer + "x=" + x + "&y=" + y + "&z=" + z; return this.mRu; }, _getN: function(t) { var n = parseInt(t); return (isNaN(n)?0:n); }, _p2d: function() { return 1/this._iTs; }, _uPn: function(x,y) { this._oTo = { tx: this._oTo.tx -= x * this._p2d() , ty: this._oTo.ty += y * this._p2d(), x: this._oTo.x -= x*this._p2d(), y: this._oTo.y +=y*this._p2d() }; var xyll = this.MP.xy_to_ll(this._oTo.tx,this._oTo.ty,this._oTo.x,this._oTo.y); this._gp.Lat = xyll.Lat; this._gp.Lon = xyll.Lon; var xy = this.MP.ll_to_xy(this._gp.Lat, this._gp.Lon); var bTL = this.MP.xy_to_ll(this._oTo.tx,this._oTo.ty,this._oTo.x+this.prW/2,this._oTo.y-this.prH/2); var bBR = this.MP.xy_to_ll(this._oTo.tx,this._oTo.ty,this._oTo.x-this.prW/2,this._oTo.y+this.prH/2); this._gBO = new _gbo(bTL.Lat,bTL.Lon,bBR.Lat,bBR.Lon); }, _rS: function(a,b) { return a.toString()+b.toString(); }, _tH: [], _pA: [], _xykey: function(x,y) { return 'xy' + x + '-' + y; }, _ipA: function(T,L,X,Y,K) { var NK = K||(this._xykey(X,Y)); this._pA[NK] = new _no(T,L,X,Y); }, _gLC: function(){ this.bO.abL(); for (var tb=this.bO.bB;tb<=this.bO.bT;tb++) { var olk = this._xykey(this.bO.bR,tb); var key = this._xykey(this.bO.pbL,tb); var nky = this._xykey(this.bO.bL,tb); if (!this._tH[nky]) { if (this._pA[key]) { this._mG(this._pA[key].t,this._pA[key].l-this._iTs,this.bO.bL,tb,olk); this._ipA(this._pA[key].t,(this._pA[key].l-this._iTs),this.bO.bL,tb); } } } this.bO.sbR(); }, _gRC: function(){ this.bO.abR(); for (var tb=this.bO.bB;tb<=this.bO.bT;tb++) { var olk = this._xykey(this.bO.bL,tb); var key = this._xykey(this.bO.pbR,tb); var nky = this._xykey(this.bO.bR,tb); if (!this._tH[nky]) { if (this._pA[key]) { this._mG(this._pA[key].t,this._pA[key].l+this._iTs,this.bO.bR,tb,olk); this._ipA(this._pA[key].t,(this._pA[key].l+this._iTs),this.bO.bR,tb); } } } this.bO.sbL(); }, _gTR: function(){ this.bO.abT(); for (var tb=this.bO.bL;tb<=this.bO.bR;tb++) { var olk = this._xykey(tb,this.bO.bB); var key = this._xykey(tb,this.bO.pbT); var nky = this._xykey(tb,this.bO.bT); if (!this._tH[nky]) { if (this._pA[key]) { this._mG(this._pA[key].t-this._iTs,this._pA[key].l,tb,this.bO.bT,olk); this._ipA(this._pA[key].t-this._iTs,this._pA[key].l,tb,this.bO.bT); } } } this.bO.sbB(); }, _gBR: function(){ this.bO.abB(); for (var tb=this.bO.bL;tb<=this.bO.bR;tb++) { var olk = this._xykey(tb,this.bO.bT); var key = this._xykey(tb,this.bO.pbB); var nky = this._xykey(tb,this.bO.bB); if (!this._tH[nky]) { if (this._pA[key]) { this._mG(this._pA[key].t+this._iTs,this._pA[key].l,tb,this.bO.bB,olk); this._ipA(this._pA[key].t+this._iTs,this._pA[key].l,tb,this.bO.bB); } } } this.bO.sbT(); }, _mB: function(x,y) { for (var i = 0; i< this.vp.childNodes.length; i++) { var t = this.vp.childNodes[i]; if(!t.ymv) continue; var pL = this._getN(t.style.left)+x; var pT = this._getN(t.style.top)+y; var pR = this._getN(t.style.right)+x; var pB = this._getN(t.style.bottom)-y; if (t.style.left) t.style.left = (pL) + 'px'; if (t.style.top) t.style.top = (pT) + 'px'; if (t.style.right) t.style.right = (pR) + 'px'; if (t.style.bottom) t.style.bottom = (pB) + 'px'; if(t.xC) { var kk = this._xykey(t.xC,t.yC); this._pA[kk] = new _no(pT,pL,x,y); } } }, _rBYid: _gbid, _dO: function(o) { if (typeof o=='object') { try { var d = this.vp.removeChild(o); d.src = null; d = null; } catch(x) { } } else { return; } }, _tMx:0, _tMy:0, _pn: function(iX,iY) { if(this._isdme() || this._getN(iX)==0&&this._getN(iY)==0) return false; this._mB(iX,iY); this._tMx +=iX; this._tMy +=iY; var nR,nB; var kR = this._xykey(this.bO.bR,this.bO.bT); var kB = this._xykey(this.bO.bL,this.bO.bB); if (this._pA[kR]) nR = this._pA[kR].l ; if (this._pA[kB]) nB = this._pA[kB].t; if (nR < this.prW-this._iTs) this._gRC(); if (nR > this.prW) this._gLC(); if (nB < this.prH-this._iTs) this._gBR(); if (nB > this.prH) this._gTR(); return true; }, _enableZoomControl: function(type) { var o = document.createElement("div"); o.id = this._ctrzoom; var s = o.style; s.position = "absolute"; s.cursor = "pointer"; s.top = 70 + "px"; s.left = this.prW - 50 + "px"; s.zIndex = 3; s.width = 27 + "px"; if(type != "s") { o.innerHTML = '
'; } else { var b = ''; if (typeof (this.vp.style.filter) == "string") { b = 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\'' + this._imgU + 'z20.png\', sizingMethod=\'scale\');'; } else { b = 'background:url(' + this._imgU + 'z20.png) top no-repeat;'; } o.innerHTML = '
'; } if(!this._rBYid(o.id)) this.appendToPort(o); this.addZoomHandlers(); (type != "s")? this._zSldr() : 0; this._zGStyle(); }, _zSldr: function() { this.slider = ygSlider.getVertSlider("yslider", "yhandle", 0, 70); this.slider.animate = false; this.slider.setValue(this._gZtoPx(this._iz)); var self = this; this.slider.onMouseUp = function() { z = self._gPxtoZ(self.slider.getValue()); if (z >= self._zr.length) return false; self._sZml(z,self._iz); self._iz = z; }; this._zLStyle(); }, _zLStyle: function() { var s = document.getElementById('yslider').style; if (typeof (s.filter) == "string") s.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this._imgU + "zbg.png', sizingMethod='scale')"; else s.background = 'url(' + this._imgU + 'zbg.png) no-repeat'; s.width = 27+"px";s.height = 85+"px"; }, _zGStyle: function(){ var t = document.getElementById('yztp').style; var b = document.getElementById('yzbt').style; if (typeof (t.filter) == "string") { t.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this._imgU + "ztp.png', sizingMethod='scale')"; b.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this._imgU + "zbt.png', sizingMethod='scale')"; } else { t.background = 'url(' + this._imgU + 'ztp.png) no-repeat'; b.background = 'url(' + this._imgU + 'zbt.png) no-repeat'; } t.width = 27+"px";t.height = 22+"px"; b.width = 27+"px";b.height = 22+"px"; }, _gPxtoZ: function(v){ var n = Math.floor(80 / (this._zr.length)); var z = Math.floor(v / n); if(z == 0) z = 1; return z; }, _gZtoPx: function(v){ var n = Math.floor(100 / (this._zr.length)); var px = Math.floor(n * v); return px; }, _sZml: function(z,p) { this._pz = p||this._iz; this.drawZoomAndCenter(this._gp,z); if (Math.abs(this._pz - this._iz)>0) { this._dO(this._rBYid('ysmw')); this._rdMrk(); } if (Math.abs(this._pz - this._iz)>0 && this._cEv) if (_ufe=this._cEv.get(EventsList.changeZoom)) { _ufe(new _eO(this,this._gp,{'oldLevel':this._pz,'newLevel':this._iz})); } }, addZoomHandlers: function() { var self = this; document.getElementById('zn').onclick = function() { var z = self._iz + 1; if (z >= self._zr.length) return false; (self._showZoomShort != true) ? self.slider.setValue(self._gZtoPx(self._iz)):0; self._sZml(z,self._iz); self._iz = z; }; document.getElementById('zp').onclick = function() { var z = self._iz -1; if (z < 1) return false; (self._showZoomShort != true) ? self.slider.setValue(self._gZtoPx(self._iz)):0; self._sZml(z,self._iz); self._iz = z; }; }, removeFromPort: function(o) { this.vp.removeChild(o); }, appendToPort: function(o) { this.vp.appendChild(o); }, handleEvent: function(e) { var e = e || window.event; var el = e.target || e.srcElement; return [e,el]; }, _pointPan: function(x,y) { var N = 10; x = Math.floor(x/N); y = Math.floor(y/N); var self = this; var _anm = new ygAnim(self.vp, N); _anm.setFrameBased(true); _anm.doTween = function() { self._pn(x,y); } _anm.onStart = function() { if (self._cEv) if (_ufe=self._cEv.get(EventsList.startAutoPan)) _ufe(new _eO(self,self._gp,self._iz)); } _anm.onComplete = function() { self._uPn(self._tMx,self._tMy); if (self._cEv) if (_ufe=self._cEv.get(EventsList.endAutoPan)) _ufe(new _eO(self,self._gp,self._iz)); self._tMx = self._tMy = 0; for (p in self._tH) { if(!self.bO.inB(self._tH[p].tx,self._tH[p].ty)) { self._dO(self._tH[p].o); delete self._tH[p]; delete self._pA[p]; } } self._rdMrk(); } _anm.animate(); }, keyZoom: function(kc) { var self = this; switch (kc) { case 109:this._iz = this._iz-1;self._sZml(this._iz);break; case 107:this._iz = this._iz+1;self._sZml(this._iz);break; } }, keyPan: function(kc) { var self = this; switch (kc) { case 38:self._pointPan(this._np[0][1], this._np[0][2]);break; case 40:self._pointPan(this._np[1][1], this._np[1][2]);break; case 39:self._pointPan(this._np[2][1], this._np[2][2]);break; case 37:self._pointPan(this._np[3][1], this._np[3][2]);break; } }, _getKey: function(e){ var e = e || window.event; return e.keyCode; }, _stpBub: function(e){ return (e.stopPropagation) ? e.stopPropagation() : e.cancelBubble = true; }, _handlePointPan: function(oEl) { var self = this; oEl.onmousedown = function(e) { var e = e || window.event; self._stpBub(self.handleEvent(e)[0]); }; oEl.onmouseup = function(e) { var e = e || window.event; var x = e.offsetX || e.layerX; var y = e.offsetY || e.layerY; x -= 31; y -= 31; var p = self._pnPolar(x,y); if (p.r < 31) { for (var i = 0;i < self._np.length;i++) { if (self._np[i][0] == "N") { if (p.theta > self._np[i][3][0] || p.theta <= self._np[i][3][1]) self._pointPan(self._np[i][1],self._np[i][2]); } else if (p.theta > self._np[i][3][0] && p.theta <= self._np[i][3][1]) { self._pointPan(self._np[i][1],self._np[i][2]); } } } }; }, _pnPolar: function (x, y) { var p = new Object(); p.r = Math.pow((Math.pow(x, 2) + Math.pow(y, 2)), 0.5); p.theta = Math.abs(Math.round(Math.atan2(x, y) * (180 /Math.PI)) - 180); return p; }, _enablePointPan: function() { if(document.getElementById(this._ctrpanb)) this.removeFromPort(document.getElementById(this._ctrpanb)); if(document.getElementById(this._ctrpan)) this.removeFromPort(document.getElementById(this._ctrpan)); var o = document.createElement("div"); o.id = this._ctrpanb; o.style.position = "absolute"; o.style.top = 0; o.style.left = this.prW - 73 + "px"; o.style.zIndex = 3; o.style.width = 62 + "px"; o.style.height = 62 + "px"; o.style.margin = .3 + "em"; if (typeof (o.style.filter) == "string") o.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + this._imgU + "ppan.png', sizingMethod='image')"; else o.style.background = 'url(' + this._imgU + 'ppan.png) no-repeat'; if(!this._rBYid(o.id)) { this.appendToPort(o); oc = o.cloneNode(true); oc.id = this._ctrpan; oc.style.cursor = "pointer"; oc.style.background = ""; oc.style.filter = ""; this.appendToPort(oc); this._handlePointPan(oc); } }, _isdme: function(){ return this._mpdroff; }, setTileServerUrl: function(u) { var prd = 'http://us.i1.yimg.com/png.maps.yimg.com/png?'; prd = 'http://png.maps.yimg.com/png?'; this.tileServer = u || prd; }, getMarkerObject: function(k) { return this._mTb[k]; }, getEventsList: function() { return EventsList; }, disableDragMap: function() { this._mpdroff = true; }, enableDragMap: function() { this._mpdroff = false; }, addZoomLong: function() { this._showZoomLong = true; if (!this._showZoomShort) this._enableZoomControl(); }, addZoomShort: function() { this._showZoomShort = true; if (!this._showZoomLong) this._enableZoomControl(type="s"); }, addZoomScale: function() { this._showZoomScale = true; }, removeZoomScale: function() { this._showZoomScale = false; }, _addZoomScale: function() { this._zmScale(); }, addPanControl: function() { this._showPointPan = true; this._enablePointPan(); }, drawZoomAndCenter: function(gp,z) { this._gp = gp; this._iz = z||5; this._ddr(); this._drw(); }, convertLatLonXY: function(gp) { return this._ll2xy(gp.Lat,gp.Lon); }, convertXYLatLon: function(cpt) { return this._xy2ll(cpt.x,cpt.y); }, removeFromMap: function(id) { this._dO(this._rBYid(id)); }, addMarker: function(a,b) { this.addOverlay(new _YM(a,b)); }, getZoomLevel: function() { return this._iz; }, setZoomLevel: function(z) { if (this.isValidZoomLevel(z)) this._sZml(this._getN(z)); }, isValidZoomLevel: function(z) { if(this._zr[this._getN(z)-1]) return true; return false; }, getZoomValidLevels: function() { return this.vZoom; }, removeZoomControl: function() { this._showZoomLong = false; this._dO(this._rBYid(this._ctrzoom)); }, removePanControl: function() { this._showPointPan = false; this._dO(this._rBYid(this._ctrpan)); this._dO(this._rBYid(this._ctrpanb)); }, getMarkerIDs: function() { var a = []; for (m in this._mTb) { a.push(m); } return a; }, removeMarkersAll: function() { for (m in this._mTb) { this._dO(this._mTb[m]._MDOM); delete this._mTb[m]; } if(this._mTb.length) return false; return true ; }, removeMarker: function(id) { if (typeof this._mTb[id] == 'object') { this._dO(this._mTb[id]._MDOM); delete this._mTb[id]; return true; } return false; }, getOuterRadius: function() { return (this._getN(this.prW>this.prH?this.prW:this.prH))/2; }, getInnerRadius: function() { return (this._getN(this.prW>this.prH?this.prH:this.prW))/2; }, resizeTo: function(ys) { this._cst(ys.width,ys.height); this.drawZoomAndCenter(this._gp,this._iz); }, moveByXY: function(cpt) { this._pn(cpt.x,cpt.y); }, smoothMoveByXY: function(cpt) { this._pointPan(cpt.x,cpt.y); }, // assumes center from: pt1 to pt2 (to,from) panToXY: function(np) { var op = new _YC(this.prW/2,this.prH/2); for(var i = 1;i