Sigalert.namespace("common");Sigalert.common.CreateToolTip=function(d,c,b){var a={context:d,showdelay:0,autodismissdelay:20000,width:c};if(b){YAHOO.lang.augmentObject(a,b,true)}return new YAHOO.widget.Tooltip("idToolTip",a)};(function(){Sigalert.namespace("data");var a=1,b=2;Sigalert.data.DragMap={HotSpotType:{Speed:0,Inc:1,Cam:2},getLastUpdatedString:function(c){return Sigalert.TrafficData[c].LastUpdatedString},getIncidentId:function(d,c){return Sigalert.TrafficData[d].Incidents[c][Sigalert.TrafficData.Index.IncId]},getIncidentSpeedId:function(d,c){return Sigalert.TrafficData[d].Incidents[c][Sigalert.TrafficData.Index.IncSpeedId]},getSpeed:function(d,c){return Sigalert.TrafficData[d].Speeds[c][Sigalert.TrafficData.Index.Speed]},getHovSpeed:function(d,c){return Sigalert.TrafficData[d].Speeds[c][Sigalert.TrafficData.Index.SpeedHov]},getCameraId:function(d,c){return Sigalert.TrafficData[d].Cameras[c][Sigalert.TrafficData.Index.CamId]},getCameraSpeedId:function(d,c){return Sigalert.TrafficData[d].Cameras[c][Sigalert.TrafficData.Index.CamSpeedId]},getCameraRampName:function(d,c){return Sigalert.TrafficData[d].Cameras[c][Sigalert.TrafficData.Index.CamRamp]},getCameraUrl:function(d,c){return Sigalert.TrafficData[d].Cameras[c][Sigalert.TrafficData.Index.CamUrl]},hasSensors:function(c){return Sigalert.TrafficData[c].SensorPositions?true:false},processSensorHotSpots:function(j,d,l){var e=Sigalert.TrafficData.Index;var h=Sigalert.TrafficData[j].SensorPositions;if(h){var k=h.length;for(var g=0;g<k;g+=1){var c=h[g];var f=c[e.CompressedSensorPosChildren];d.call(l||this,{x:c[e.CompressedSensorPosX],y:c[e.CompressedSensorPosY],type:this.HotSpotType.Speed,index:c[e.CompressedSensorPosIndex],kd1:f==g||f>g+1?g+1:0,kd2:f>g?f:0})}}},processIncidentHotSpots:function(g,c,d){var k=Sigalert.TrafficData.Index;var f=Sigalert.TrafficData[g].Incidents;if(f){var h=f.length;for(var e=0;e<h;e+=1){var j=f[e];if(j[k.IncX]!==-1&&j[k.IncY]!==-1){c.call(d||this,{x:j[k.IncX],y:j[k.IncY],type:this.HotSpotType.Inc,index:e,kd1:0,kd2:0})}}}},processCameraHotSpots:function(g,d,c){var k=Sigalert.TrafficData.Index;var f=Sigalert.TrafficData[g].Cameras;if(f){var j=f.length;for(var e=0;e<j;e+=1){var h=f[e];if(h[k.CamX]!==-1&&h[k.CamY]!==-1){d.call(c||this,{x:h[k.CamX],y:h[k.CamY],type:this.HotSpotType.Cam,index:e,kd1:0,kd2:0})}}}}}}());(function(){Sigalert.namespace("controls");ImageLoader=function(){};ImageLoader.prototype={load:function(d,b,e,c){d._loadAttempts=0;if(!d._imgLoader){d._imgLoader=new Image()}d._imgLoader.onload=function(){d.src=d._imgLoader.src;d._imgLoader.onload=null;d._imgLoader.onerror=null};d._imgLoader.onerror=function(){d._loadAttempts+=1;if(d._loadAttempts<3){setTimeout(function(){d._imgLoader.src=b+(c?"&":"?")+"n="+d._loadAttempts},e*1.5)}else{if(d._loadAttempts<4){setTimeout(function(){d._imgLoader.src=b+(c?"&":"?")+"n="+d._loadAttempts},3000)}else{d._imgLoader.onload=null;d._imgLoader.onerror=null;d.src=GstrImageDir+"/DotClear.gif"}}};d._imgLoader.src=b;if(YAHOO.env.ua.webkit>0&&d._imgLoader.complete){d.src=d._imgLoader.src}}};Sigalert.controls.StaticMapControl=function(b,c){this.mContainer=null;this.mElement=null;this.mViewport=null;this.mLayers=null;this.mBgLayer=null;this.mBgContent=null;this.mTrafficLayer=null;this.mTrafficContent=null;this.moConfig=null;this.mTiles=null;this.maZoomLevels=null;this.miCurrentZoomLevel=0;this.moCurrentZoomLevel=null;this.mImageLoader=null;this.miViewportWidthPixels=0;this.miViewportHeightPixels=0;this.mOrigin=null;this.mMapPos={x:0,y:0};this.mTileRect=null;this.miMapId=0;this.init(b,c);a.onInitComplete.fire(this)};var a=Sigalert.controls.StaticMapControl;a.onInitComplete=new YAHOO.util.CustomEvent("initcompleted",null,false,YAHOO.util.CustomEvent.FLAT);Sigalert.controls.MapControl=a;a.prototype={_parseCoord:function(c){var b=parseInt(c);return isNaN(b)?0:b},_setMapPosition:function(b,c){this.mLayers.style.left=(b+this.miViewportWidthPixels/2)+"px";this.mLayers.style.top=(c+this.miViewportHeightPixels/2)+"px";this.mMapPos.x=b;this.mMapPos.y=c},_reset:function(){this.mLayers.style.left="0px";this.mLayers.style.top="0px";this.mBgContent.innerHTML="";this.mTrafficContent.innerHTML="";this.mTiles={}},_getTileRect:function(){var k=this.moCurrentZoomLevel.tileWidthPixels,j=this.moCurrentZoomLevel.tileHeightPixels;var c=Math.ceil(this.miViewportWidthPixels/k),h=Math.ceil(this.miViewportHeightPixels/j);var g=this._getMapPosition();var i=this.miViewportWidthPixels/2+g[0],d=this.miViewportWidthPixels/2-g[0];c=Math.ceil(i/k)+Math.ceil(d/k);var f=this.miViewportHeightPixels/2+g[1],b=this.miViewportHeightPixels/2-g[1];h=Math.ceil(f/j)+Math.ceil(b/j);var e={left:-Math.ceil(i/k),right:Math.ceil(d/k),width:Math.ceil(d/k)+Math.ceil(i/k),top:-Math.ceil(f/j),bottom:Math.ceil(b/j),height:Math.ceil(f/j)+Math.ceil(b/j)};return e},_createTile:function(b,f,e,c){var d=make("img");d.className="MapTile";d.style.width=e+"px";d.style.height=c+"px";d.style.top=(f*c)+"px";d.style.left=(b*e)+"px";d.src=GstrImageDir+"/DotClear.gif";if(YAHOO.env.ua.ie>0&&YAHOO.env.ua.ie<7){d.galleryImg="no"}return d},_createTiles:function(){this._reset();this.miViewportWidthPixels=this.mViewport.offsetWidth;this.miViewportHeightPixels=this.mViewport.offsetHeight;this.miCurrentZoomLevel=this.moConfig.getProperty("zoom");this.moCurrentZoomLevel=this.maZoomLevels[this.miCurrentZoomLevel];var m=this.moConfig.getProperty("lat"),c=this.moConfig.getProperty("lon"),r=this.moCurrentZoomLevel.tileWidthPixels,p=this.moCurrentZoomLevel.tileHeightPixels,n=this;var g=this.latLonToXY(m,c,this.miCurrentZoomLevel);if(this.moCurrentZoomLevel._widthPixels<this.miViewportWidthPixels){g[0]=this.miViewportWidthPixels/2}else{if(g[0]<this.miViewportWidthPixels/2){g[0]=this.miViewportWidthPixels/2}else{if(g[0]>this.moCurrentZoomLevel._widthPixels-this.miViewportWidthPixels/2){g[0]=this.moCurrentZoomLevel._widthPixels-this.miViewportWidthPixels/2}}}if(this.moCurrentZoomLevel._heightPixels<this.miViewportHeightPixels){g[1]=this.miViewportHeightPixels/2}else{if(g[1]<this.miViewportHeightPixels/2){g[1]=this.miViewportHeightPixels/2}else{if(g[1]>this.moCurrentZoomLevel._heightPixels-this.miViewportHeightPixels/2){g[1]=this.moCurrentZoomLevel._heightPixels-this.miViewportHeightPixels/2}}}var l=r-(g[0]%r||r),h=p-(g[1]%p||p);this._setMapPosition(l,h);this.mTileRect=this._getTileRect();var q=Math.ceil(g[0]/r),b=Math.ceil(g[1]/p);this.mOrigin={x:g[0],y:g[1],elX:l,elY:h};var o=null,k=null,d=(this.mTileRect.width*this.mTileRect.height*0.5);for(var f=this.mTileRect.left;f<this.mTileRect.right;f+=1){for(var e=this.mTileRect.top;e<this.mTileRect.bottom;e+=1){o=this._createTile(f,e,r,p);this._loadBgTileImage(o,q+f,b+e,d);this.mBgContent.appendChild(o);k=this._createTile(f,e,r,p);this._loadTrafficTileImage(k,q+f,b+e,d);this.mTrafficContent.appendChild(k);this.mTiles[f+","+e]={bgImg:o,trafficImg:k,pos:{x:q+f,y:b+e}}}}this._onTilesCreated({iMapElX:l,iMapElY:h,iMapX:g[0],iMapY:g[1]})},repaintBg:function(){var g=this.moCurrentZoomLevel.tileWidthPixels,f=this.moCurrentZoomLevel.tileHeightPixels,c=this.getMapXY(),b=(this.mTileRect.width*this.mTileRect.height*0.5),h=null;for(var e=this.mTileRect.left;e<this.mTileRect.right;e+=1){for(var d=this.mTileRect.top;d<this.mTileRect.bottom;d+=1){h=this.mTiles[e+","+d];this._loadBgTileImage(h.bgImg,h.pos.x,h.pos.y,b)}}},_repaint:function(){var g=this.moCurrentZoomLevel.tileWidthPixels,f=this.moCurrentZoomLevel.tileHeightPixels,c=this.getMapXY(),b=(this.mTileRect.width*this.mTileRect.height*0.5),h=null;for(var e=this.mTileRect.left;e<this.mTileRect.right;e+=1){for(var d=this.mTileRect.top;d<this.mTileRect.bottom;d+=1){h=this.mTiles[e+","+d];this._loadTrafficTileImage(h.trafficImg,h.pos.x,h.pos.y,b)}}},_onTilesCreated:function(b){},_getTrafficTileImageUrl:function(c,d){var b=this.moConfig.getProperty("region")?Sigalert.data.Manager[this.moConfig.getProperty("region")]:Sigalert.data.Manager.current;if(b.isLoaded()){return b.getDataPath()+"/"+this.moCurrentZoomLevel.map+(YAHOO.env.ua.ie>0&&YAHOO.env.ua.ie<7?"/ie/":"/")+"x"+c+"y"+d+".png?cb="+b.cb()}return null},_getBgTileImageUrl:function(b,c){return this.moConfig.getProperty("tilepath")+"/"+this.moCurrentZoomLevel.map+"/"+this.moCurrentZoomLevel.map+"-x"+b+"y"+c+".png"},_loadTrafficTileImage:function(d,c,f,b){d.src=GstrImageDir+"/DotClear.gif";if(c<0||f<0||c>=this.moCurrentZoomLevel.widthTiles||f>=this.moCurrentZoomLevel.heightTiles){return}var e=this._getTrafficTileImageUrl(c,f);if(e!==null){this.mImageLoader.load(d,e,b,true)}},_loadBgTileImage:function(d,c,e,b){d.src=GstrImageDir+"/DotClear.gif";if(c<0||e<0||c>=this.moCurrentZoomLevel.widthTiles||e>=this.moCurrentZoomLevel.heightTiles){return}this.mImageLoader.load(d,this._getBgTileImageUrl(c,e),b,false)},latLonToXY:function(h,b,j){if(typeof(j)==="undefined"){j=this.miCurrentZoomLevel}var f=this.maZoomLevels[j];var d=h*0.01745329252;var g=Math.sin(d);var c=0.08181919131087181;var i=Math.pow(((1-c*g)/(1+c*g)),(c*0.5));var e=3779.5296/f.scale;return[Math.round((b*111319.4907932736*e)-f.origin.x),Math.round((-Math.log(Math.tan(Math.PI*0.25+d*0.5)*i)*6378137*e)-f.origin.y)]},xyToLatLon:function(b,g,d){if(typeof(d)==="undefined"){d=this.miCurrentZoomLevel}var f=this.maZoomLevels[d];var c=24106357584.3552/f.scale;var e=Math.PI*0.5-2*Math.atan(1/Math.exp((g+f.origin.y)/c));return[parseFloat((-57.2957795131*(e+0.003356551507*Math.sin(2*e)+0.000006571872862*Math.sin(4*e)+1.764564399e-8*Math.sin(6*e)+5.328478689e-11*Math.sin(8*e))).toFixed(5)),parseFloat(((b+f.origin.x)/c*57.2957795131).toFixed(5))]},mapXyToElXy:function(e,d){var c=this.getMapXY(),b=this._getMapPosition();return[e-c[0]-b[0],d-c[1]-b[1]]},elXyToMapXy:function(e,d){var c=this.getMapXY(),b=this._getMapPosition();return[e+b[0]]},clientXyToMapXy:function(e,c){var d=this.getMapXY(),b=YAHOO.util.Dom.getXY(this.mViewport);return[(e+YAHOO.util.Dom.getDocumentScrollLeft()-b[0]+d[0]-this.miViewportWidthPixels/2),(c+YAHOO.util.Dom.getDocumentScrollTop()-b[1]+d[1]-this.miViewportHeightPixels/2)]},getMapXY:function(){return[this.mOrigin.x-this.mMapPos.x+this.mOrigin.elX,this.mOrigin.y-this.mMapPos.y+this.mOrigin.elY]},_getMapPosition:function(){return[this.mMapPos.x,this.mMapPos.y]},getMapLatLon:function(){var b=this.getMapXY();return this.xyToLatLon(b[0],b[1],this.miCurrentZoomLevel)},xScale:function(){return this.maZoomLevels[0].widthTiles/this.moCurrentZoomLevel.widthTiles},yScale:function(){return this.maZoomLevels[0].heightTiles/this.moCurrentZoomLevel.heightTiles},onTrafficDataRefreshStart:function(){},onTrafficDataRefreshEnd:function(){},onTrafficDataUpdated:function(){this._repaint()},init:function(b,d){this.initConfig();this.moConfig.loadConfig(d);this.moConfig.setProperty("lat",this.moConfig.getProperty("lat").toFixed(5));this.moConfig.setProperty("lon",this.moConfig.getProperty("lon").toFixed(5));this.miMapId=YAHOO.util.Dom.generateId(null,"MapControl");if(this.moConfig.getProperty("zoomlevels")===""){this.moConfig.setProperty("zoomlevels",Sigalert.TrafficData[this.moConfig.getProperty("mapbasename")].ZoomLevels)}this.maZoomLevels=this.moConfig.getProperty("zoomlevels");for(var c=0;c<this.maZoomLevels.length;c+=1){this.maZoomLevels[c]._widthPixels=this.maZoomLevels[c].widthTiles*this.maZoomLevels[c].tileWidthPixels;this.maZoomLevels[c]._heightPixels=this.maZoomLevels[c].heightTiles*this.maZoomLevels[c].tileHeightPixels}this.mImageLoader=new ImageLoader();this.constructMarkup();this._render(b);this._createTiles();if(this.moConfig.getProperty("region")&&Sigalert.data.Manager[this.moConfig.getProperty("region")].onDataRefreshStart){Sigalert.data.Manager[this.moConfig.getProperty("region")].onDataRefreshStart.subscribe(this.onTrafficDataRefreshStart,null,this);Sigalert.data.Manager[this.moConfig.getProperty("region")].onDataRefreshEnd.subscribe(this.onTrafficDataRefreshEnd,null,this);Sigalert.data.Manager[this.moConfig.getProperty("region")].onDataUpdated.subscribe(this.onTrafficDataUpdated,null,this)}},constructMarkup:function(){this.mElement=make("div");this.mElement.className="MapControl";this.mElement.style.height=this.moConfig.getProperty("height")+"px";this.mViewport=make("div");this.mViewport.className="MapViewport MapViewportWide";this.mElement.appendChild(this.mViewport);this.mLayers=make("div");this.mLayers.className="MapLayers";this.mViewport.appendChild(this.mLayers);this.mBgLayer=make("div");this.mBgLayer.className="MapLayer";this.mLayers.appendChild(this.mBgLayer);this.mBgContent=make("div");this.mBgContent.className="MapLayerContent";this.mBgLayer.appendChild(this.mBgContent);this.mTrafficLayer=make("div");this.mTrafficLayer.className="MapLayer";this.mLayers.appendChild(this.mTrafficLayer);this.mTrafficContent=make("div");this.mTrafficContent.className="MapLayerContent";this.mTrafficLayer.appendChild(this.mTrafficContent)},initConfig:function(){this.moConfig=new Sigalert.controls.Config();this.moConfig.setProperty("tilepath","");this.moConfig.setProperty("region","");this.moConfig.setProperty("mapbasename","");this.moConfig.setProperty("zoomlevels","");this.moConfig.setProperty("zoom",1);this.moConfig.setProperty("lat",0);this.moConfig.setProperty("lon",0);this.moConfig.setProperty("height",1);this.moConfig.setProperty("retryimgloading",true)},_render:function(b){if(typeof(b)==="string"){b=$(b)}if(b){b.appendChild(this.mElement)}else{return false}this.mContainer=b;return true}}}());(function(){Sigalert.namespace("controls");Sigalert.controls.DynamicMapControl=function(c,d){this.miLastMouseWheelTimeMs=0;this.moSlideMapAnim=null;this.onMapSlideComplete=new YAHOO.util.CustomEvent("mapslidecomplete",this,false,YAHOO.util.CustomEvent.FLAT);this.onMapPositionChanged=new YAHOO.util.CustomEvent("mappositionchanged",this,false,YAHOO.util.CustomEvent.FLAT);this.onMapZoomChanged=new YAHOO.util.CustomEvent("mapzoomchanged",this,false,YAHOO.util.CustomEvent.FLAT);this.onUserAction=new YAHOO.util.CustomEvent("useraction",this,false,YAHOO.util.CustomEvent.FLAT);Sigalert.controls.DynamicMapControl.superclass.constructor.call(this,c,d)};var b=Sigalert.controls.StaticMapControl;var a=Sigalert.controls.DynamicMapControl;YAHOO.extend(a,b,{_getNewMapPos:function(f,e){var d=this._getMapPosition();var j=d[0],h=d[1];var c=this.getMapXY(),i=f,g=e;if(c[0]-f<this.miViewportWidthPixels/2){i=c[0]-this.miViewportWidthPixels/2}else{if(c[0]-f+this.miViewportWidthPixels/2>this.moCurrentZoomLevel._widthPixels){i=c[0]-this.moCurrentZoomLevel._widthPixels+this.miViewportWidthPixels/2}}if(c[1]-e<this.miViewportHeightPixels/2){g=c[1]-this.miViewportHeightPixels/2}else{if(c[1]-e+this.miViewportHeightPixels/2>this.moCurrentZoomLevel._heightPixels){g=c[1]-this.moCurrentZoomLevel._heightPixels+this.miViewportHeightPixels/2}}if(this.moCurrentZoomLevel._widthPixels<this.miViewportWidthPixels){i=0}if(this.moCurrentZoomLevel._heightPixels<this.miViewportHeightPixels){g=0}j+=i;h+=g;return[j,h]},slideMap:function(l,k,d,c){var f=this._getMapPosition(),g=this._getNewMapPos(l,k);if(f[0]!==g[0]||f[1]!==g[1]){var e=function(){this.mMapPos.x=this._parseCoord(this.mLayers.style.left)-this.miViewportWidthPixels/2;this.mMapPos.y=this._parseCoord(this.mLayers.style.top)-this.miViewportHeightPixels/2};var j=function(){this.mMapPos.x=this._parseCoord(this.mLayers.style.left)-this.miViewportWidthPixels/2;this.mMapPos.y=this._parseCoord(this.mLayers.style.top)-this.miViewportHeightPixels/2;this._checkTiles();if(typeof(d)!=="undefined"){d.call(c)}var m=this.getMapLatLon();this.onMapSlideComplete.fire({map:this,lat:m[0],lon:m[1],zoom:this.miCurrentZoomLevel})};var i=g[0]+this.miViewportWidthPixels/2,h=g[1]+this.miViewportHeightPixels/2;this.moSlideMapAnim=new YAHOO.util.Anim(this.mLayers,{left:{to:i},top:{to:h}},0.5,YAHOO.util.Easing.easeOut);this.moSlideMapAnim.onTween.subscribe(e,null,this);this.moSlideMapAnim.onComplete.subscribe(j,null,this);this.moSlideMapAnim.animate();return true}return false},moveMap:function(d,c){var f=this._getMapPosition(),e=this._getNewMapPos(d,c);if(f[0]!==e[0]||f[1]!==e[1]){this._setMapPosition(e[0],e[1]);this._checkTiles()}},_setMapPosition:function(c,d){a.superclass._setMapPosition.call(this,c,d);this._onMapPositionChanged()},setHeight:function(k){if(YAHOO.util.Dom.getAncestorBy(this.mElement,function(n){return YAHOO.util.Dom.getStyle(n,"display")==="none"})){return}this.moConfig.setProperty("height",k);this.mElement.style.height=k+"px";var m=this.mViewport.offsetWidth-this.miViewportWidthPixels,l=this.mViewport.offsetHeight-this.miViewportHeightPixels;this.miViewportWidthPixels=this.mViewport.offsetWidth;this.miViewportHeightPixels=this.mViewport.offsetHeight;this.mMapPos.x=this._parseCoord(this.mLayers.style.left)-this.miViewportWidthPixels/2;this.mMapPos.y=this._parseCoord(this.mLayers.style.top)-this.miViewportHeightPixels/2;var h=this.getMapXY();var j=h[0],g=h[1];if(this.moCurrentZoomLevel._widthPixels<this.miViewportWidthPixels){h[0]=this.miViewportWidthPixels/2}else{if(h[0]<this.miViewportWidthPixels/2){h[0]=this.miViewportWidthPixels/2}else{if(h[0]>this.moCurrentZoomLevel._widthPixels-this.miViewportWidthPixels/2){h[0]=this.moCurrentZoomLevel._widthPixels-this.miViewportWidthPixels/2}}}if(this.moCurrentZoomLevel._heightPixels<this.miViewportHeightPixels){h[1]=this.miViewportHeightPixels/2}else{if(h[1]<this.miViewportHeightPixels/2){h[1]=this.miViewportHeightPixels/2}else{if(h[1]>this.moCurrentZoomLevel._heightPixels-this.miViewportHeightPixels/2){h[1]=this.moCurrentZoomLevel._heightPixels-this.miViewportHeightPixels/2}}}var i=h[0]-j,f=h[1]-g;if(i!==0||f!==0){var e=this._getMapPosition();e[0]-=i;e[1]-=f;this._setMapPosition(e[0],e[1])}var c=this._getTileRect();if(c.width!==this.mTileRect.width||c.height!==this.mTileRect.height){var d=this.getMapLatLon();this.moConfig.setProperty("lat",d[0]);this.moConfig.setProperty("lon",d[1]);this._createTiles()}else{this._checkTiles()}},_getTileRect:function(){var e=a.superclass._getTileRect.call(this);var d=Math.ceil(this.miViewportWidthPixels/this.moCurrentZoomLevel.tileWidthPixels),c=Math.ceil(this.miViewportHeightPixels/this.moCurrentZoomLevel.tileHeightPixels);if(d===e.width){e.left-=1;e.width+=1}if(c===e.height){e.top-=1;e.height+=1}return e},_checkTiles:function(){var t=this.moCurrentZoomLevel.tileWidthPixels,r=this.moCurrentZoomLevel.tileHeightPixels,k=this._getMapPosition(),n=this.getMapXY(),c=(this.mTileRect.width*this.mTileRect.height*0.5),f=null,p=0;var m=this.mTiles[(this.mTileRect.left)+","+(this.mTileRect.top)],e=this.mTiles[(this.mTileRect.right-1)+","+(this.mTileRect.bottom-1)];var o={left:n[0]-this.miViewportWidthPixels/2,right:n[0]+this.miViewportWidthPixels/2,top:n[1]-this.miViewportHeightPixels/2,bottom:n[1]+this.miViewportHeightPixels/2};var q={left:n[0]+this._parseCoord(m.bgImg.style.left)+k[0],right:n[0]+this._parseCoord(e.bgImg.style.left)+t+k[0],top:n[1]+this._parseCoord(m.bgImg.style.top)+k[1],bottom:n[1]+this._parseCoord(e.bgImg.style.top)+r+k[1]};var s={left:o.left-q.left,right:q.right-o.right,top:o.top-q.top,bottom:q.bottom-o.bottom};var d={left:m.pos.x,right:e.pos.x,top:m.pos.y,bottom:e.pos.y};if(s.left<0){p=Math.ceil(-s.left/t);for(var h=this.mTileRect.left-1,l=1;l<=p;h-=1,l+=1){for(var g=this.mTileRect.top;g<this.mTileRect.bottom;g+=1){f=this.mTiles[(this.mTileRect.right-l)+","+g];f.pos.x=d.left-l;f.trafficImg.style.left=f.bgImg.style.left=(h*t)+"px";f.needsToBePainted=true;this.mTiles[h+","+g]=f;delete this.mTiles[(this.mTileRect.right-l)+","+g]}}this.mTileRect.left-=p;this.mTileRect.right-=p}else{if(s.right<0){p=Math.ceil(-s.right/t);for(var h=this.mTileRect.right,l=1;l<=p;h+=1,l+=1){for(var g=this.mTileRect.top;g<this.mTileRect.bottom;g+=1){f=this.mTiles[(this.mTileRect.left-1+l)+","+g];f.pos.x=d.right+l;f.trafficImg.style.left=f.bgImg.style.left=(h*t)+"px";f.needsToBePainted=true;this.mTiles[h+","+g]=f;delete this.mTiles[(this.mTileRect.left-1+l)+","+g]}}this.mTileRect.left+=p;this.mTileRect.right+=p}}if(s.top<0){p=Math.ceil(-s.top/r);for(var h=this.mTileRect.top-1,l=1;l<=p;h-=1,l+=1){for(var g=this.mTileRect.left;g<this.mTileRect.right;g+=1){f=this.mTiles[g+","+(this.mTileRect.bottom-l)];f.pos.y=d.top-l;f.trafficImg.style.top=f.bgImg.style.top=(h*r)+"px";f.needsToBePainted=true;this.mTiles[g+","+h]=f;delete this.mTiles[g+","+(this.mTileRect.bottom-l)]}}this.mTileRect.top-=p;this.mTileRect.bottom-=p}else{if(s.bottom<0){p=Math.ceil(-s.bottom/r);for(var h=this.mTileRect.bottom,l=1;l<=p;h+=1,l+=1){for(var g=this.mTileRect.left;g<this.mTileRect.right;g+=1){f=this.mTiles[g+","+(this.mTileRect.top-1+l)];f.pos.y=d.bottom+l;f.trafficImg.style.top=f.bgImg.style.top=(h*r)+"px";f.needsToBePainted=true;this.mTiles[g+","+h]=f;delete this.mTiles[g+","+(this.mTileRect.top-1+l)]}}this.mTileRect.top+=p;this.mTileRect.bottom+=p}}for(var h=this.mTileRect.left;h<this.mTileRect.right;h+=1){for(var g=this.mTileRect.top;g<this.mTileRect.bottom;g+=1){f=this.mTiles[h+","+g];if(f.needsToBePainted){this._loadBgTileImage(f.bgImg,f.pos.x,f.pos.y,c);this._loadTrafficTileImage(f.trafficImg,f.pos.x,f.pos.y,c);f.needsToBePainted=false}}}},isZoomedOutAllTheWay:function(){return this.miCurrentZoomLevel===(this.maZoomLevels.length-1)},isZoomedInAllTheWay:function(){return this.miCurrentZoomLevel===0},zoomIn:function(){return this.setZoom(this.miCurrentZoomLevel-1)},zoomOut:function(){return this.setZoom(this.miCurrentZoomLevel+1)},getMaxZoom:function(){return this.maZoomLevels.length-1},getZoom:function(){return this.miCurrentZoomLevel},setZoom:function(c){var d=this.getMapLatLon();return this.setLatLonZoom(d[0],d[1],c)},setLatLonZoom:function(c,d,e){if(e<0){e=0}else{if(e>=this.maZoomLevels.length){e=this.maZoomLevels.length-1}}if(e===this.miCurrentZoomLevel){return false}this.moConfig.setProperty("lat",c);this.moConfig.setProperty("lon",d);this.moConfig.setProperty("zoom",e);this._createTiles();this._onZoomChanged(e);return true},reload:function(e){var d=this.moConfig.getProperty("region");if(d&&Sigalert.data.Manager[d].onDataRefreshStart){Sigalert.data.Manager[d].onDataRefreshStart.unsubscribe(this.onTrafficDataRefreshStart);Sigalert.data.Manager[d].onDataRefreshEnd.subscribe(this.onTrafficDataRefreshEnd);Sigalert.data.Manager[d].onDataUpdated.subscribe(this.onTrafficDataUpdated)}this.initConfig();this.moConfig.loadConfig(e);this.moConfig.setProperty("lat",this.moConfig.getProperty("lat").toFixed(5));this.moConfig.setProperty("lon",this.moConfig.getProperty("lon").toFixed(5));if(this.moConfig.getProperty("zoomlevels")===""){this.moConfig.setProperty("zoomlevels",Sigalert.TrafficData[this.moConfig.getProperty("mapbasename")].ZoomLevels)}this.maZoomLevels=this.moConfig.getProperty("zoomlevels");for(var c=0;c<this.maZoomLevels.length;c+=1){this.maZoomLevels[c]._widthPixels=this.maZoomLevels[c].widthTiles*this.maZoomLevels[c].tileWidthPixels;this.maZoomLevels[c]._heightPixels=this.maZoomLevels[c].heightTiles*this.maZoomLevels[c].tileHeightPixels}if(this.moConfig.getProperty("region")&&Sigalert.data.Manager[this.moConfig.getProperty("region")].onDataRefreshStart){Sigalert.data.Manager[this.moConfig.getProperty("region")].onDataRefreshStart.subscribe(this.onTrafficDataRefreshStart,null,this);Sigalert.data.Manager[this.moConfig.getProperty("region")].onDataRefreshEnd.subscribe(this.onTrafficDataRefreshEnd,null,this);Sigalert.data.Manager[this.moConfig.getProperty("region")].onDataUpdated.subscribe(this.onTrafficDataUpdated,null,this)}this._createTiles()},_onZoomChanged:function(c){var d=this.getMapLatLon();this.onMapZoomChanged.fire({map:this,lat:d[0],lon:d[1],zoom:c})},_onMapPositionChanged:function(){if(this.mOrigin){var c=this.getMapLatLon();this.onMapPositionChanged.fire({map:this,lat:c[0],lon:c[1],zoom:this.miCurrentZoomLevel})}},_onUserDidAction:function(){var c=this.getMapLatLon();this.onUserAction.fire({map:this,lat:c[0],lon:c[1],zoom:this.miCurrentZoomLevel})}})}());(function(){Sigalert.namespace("controls");Sigalert.controls.MouseMapControl=function(c,d){this.mbDraggingMap=false;this.mbJustDraggedMap=false;this.onMapDragComplete=new YAHOO.util.CustomEvent("mapdragcomplete",this,false,YAHOO.util.CustomEvent.FLAT);Sigalert.controls.MouseMapControl.superclass.constructor.call(this,c,d)};var a=Sigalert.controls.DynamicMapControl;var b=Sigalert.controls.MouseMapControl;b.StrPointerCursor="pointer";b.StrDraggingCursor="url(/Images/Cursors/Hwe.cur), move";b.StrDefaultCursor="url(/Images/Cursors/HMove.cur), move";YAHOO.extend(b,a,{init:function(h,l){b.superclass.init.call(this,h,l);var q=0,p=0,j=false,i=false,o=0,s=this;function f(u){if(u.preventDefault){u.preventDefault()}else{u.returnValue=false}}function e(A,z){var x=YAHOO.util.Dom.getXY(s.mContainer),w=0,v=0;if(YAHOO.env.ua.gecko>0&&YAHOO.env.ua.gecko<=1.8){w=s.miViewportWidthPixels/2+x[0]-A.screenX;v=s.miViewportHeightPixels/2+x[1]-A.screenY}else{w=s.miViewportWidthPixels/2+x[0]-A.clientX;v=s.miViewportHeightPixels/2+x[1]-A.clientY}var u=s.getMapXY(),y=s.xyToLatLon(u[0]-w,u[1]-v);s.setLatLonZoom(y[0],y[1],z)}function d(u){q=u.clientX;p=u.clientY;j=true;i=false;this.mbJustDraggedMap=false;f(u)}function c(u){j=false;if(this.mbDraggingMap){this._onEndDrag()}}function g(w){this.mbDraggingMap=j;if(!this.mbDraggingMap){return}if(!i){i=true;this._onStartDrag()}var v=w.clientX-q,u=w.clientY-p;q=w.clientX;p=w.clientY;this.moveMap(v,u);f(w)}function n(u){if(this.mbDraggingMap){this.mbDraggingMap=false;this.mbJustDraggedMap=true}}function r(v){var w=0;if(v.wheelDelta){w=v.wheelDelta}else{if(v.detail){w=-v.detail}}if(w!==0){if(v.stopPropagation){v.stopPropagation();v.preventDefault()}v.cancelBubble=true;v.returnValue=false;var u=new Date().getTime();if(u-o>750){o=u;if(w<0&&!this.isZoomedOutAllTheWay()){e(v,this.miCurrentZoomLevel+1);this._onUserDidAction()}else{if(w>0&&!this.isZoomedInAllTheWay()){e(v,this.miCurrentZoomLevel-1);this._onUserDidAction()}}}}}function t(v){if(this.isZoomedInAllTheWay()){var u=YAHOO.util.Dom.getXY(this.mContainer);this.slideMap(this.miViewportWidthPixels/2+u[0]-v.clientX,this.miViewportHeightPixels/2+u[1]-v.clientY)}else{e(v,this.miCurrentZoomLevel-1)}this._onUserDidAction()}YAHOO.util.Event.on(this.mLayers,"mousedown",d,null,this);YAHOO.util.Event.on(document,"mouseup",c,null,this);YAHOO.util.Event.on(document,"mousemove",g,null,this);YAHOO.util.Event.on(this.mLayers,"click",n,null,this);YAHOO.util.Event.on(this.mLayers,"dblclick",t,null,this);if(this.moConfig.getProperty("zoomwithwheel")){YAHOO.util.Event.on(this.mLayers,"DOMMouseScroll",r,null,this);YAHOO.util.Event.on(this.mLayers,"mousewheel",r,null,this)}if(!YAHOO.util.Event.isIE){function m(v){var u=v.srcElement||v.target;if(u.nodeName.toLowerCase()==="iframe"){c(v)}}YAHOO.util.Event.on(document,"mouseover",m,null,this)}if(GbIsPartner&&(YAHOO.env.ua.gecko>0||YAHOO.util.Event.isIE)){function k(x){var w=YAHOO.util.Event.getRelatedTarget(x);if(!w){c(x)}else{try{var v=w.nodeType}catch(u){c(x)}}}YAHOO.util.Event.on(document.body,"mouseout",k,null,this)}},initConfig:function(){b.superclass.initConfig.call(this);this.moConfig.setProperty("zoomwithwheel",true)},setCursor:function(c){if(this.mLayers.style.cursor!==c){this.mLayers.style.cursor=c}},_onStartDrag:function(){this.setCursor(b.StrDraggingCursor)},_onEndDrag:function(){this.setCursor(b.StrDefaultCursor);var c=this.getMapLatLon();this.onMapDragComplete.fire({map:this,lat:c[0],lon:c[1],zoom:this.miCurrentZoomLevel});this._onUserDidAction()}})}());(function(){var b=Sigalert.controls.StaticMapControl;var d=b.prototype.constructMarkup;b.prototype.constructMarkup=function(){d.call(this);this.maZoomLayers=[];for(var f=0;f<this.maZoomLevels.length;f+=1){var e=make("div");e.id="div"+this.miMapId+"ZoomLayer"+f;YAHOO.util.Dom.addClass(e,"MapLayer");YAHOO.util.Dom.setStyle(e,"display","none");this.mLayers.appendChild(e);this.maZoomLayers[f]=e}};var c=b.prototype._onTilesCreated;b.prototype._onTilesCreated=function(e){c.call(this,e);var h=-e.iMapX-e.iMapElX,g=-e.iMapY-e.iMapElY;for(var f=0;f<this.maZoomLayers.length;f+=1){YAHOO.util.Dom.setStyle(this.maZoomLayers[f],"display","none");YAHOO.util.Dom.setStyle(this.maZoomLayers[f],"left",h+"px");YAHOO.util.Dom.setStyle(this.maZoomLayers[f],"top",g+"px")}YAHOO.util.Dom.setStyle(this.maZoomLayers[this.miCurrentZoomLevel],"display","block")};var a=function(){};a.prototype={_createLogo:function(i,f,h,e){var g=make("img");g.id=this.miMapId+"_"+i+"_logo";YAHOO.util.Dom.addClass(g,"map-user-logo");if(e){YAHOO.util.Dom.addClass(g,"map-hot-user-logo")}YAHOO.util.Dom.addClass(g,Sigalert.common.CssFixPng);if(f.top){YAHOO.util.Dom.setStyle(g,"top",f.top)}if(f.right){YAHOO.util.Dom.setStyle(g,"right",f.right)}if(f.bottom){YAHOO.util.Dom.setStyle(g,"bottom",f.bottom)}if(f.left){YAHOO.util.Dom.setStyle(g,"left",f.left)}g.src=h;this.mViewport.appendChild(g);return g},deleteLogo:function(h){var g=this;var f=YAHOO.util.Dom.getChildrenBy(this.mViewport,function(i){return i.id===g.miMapId+"_"+h+"_logo"});for(var e=0;e<f.length;e+=1){Sigalert.common.deleteNode(f[e])}},deleteAllLogos:function(h){var g="";if(h){g=new RegExp("^"+this.miMapId+"_"+h+".*_logo")}else{g=new RegExp("^"+this.miMapId+"_.*_logo")}var f=YAHOO.util.Dom.getChildrenBy(this.mViewport,function(i){return i.id.match(g)});for(var e=0;e<f.length;e+=1){Sigalert.common.deleteNode(f[e])}},addLogo:function(g,e,f){this._createLogo(g,e,f,false)},_createPushpin:function(f,k,e,g,i,n){if(g<0||g>=this.maZoomLevels.length){alert(g+" is an invalid zoom level for a pushpin. Must be from 0 to "+(this.maZoomLevels.length-1)+".");return null}var j=make("img");j.id=this.miMapId+"_"+f+"_"+g;YAHOO.util.Dom.addClass(j,"map-user-pushpin");if(n){YAHOO.util.Dom.addClass(j,"map-hot-user-pushpin")}YAHOO.util.Dom.addClass(j,Sigalert.common.CssFixPng);j.src=i;var l=this.latLonToXY(k,e,g);this.maZoomLayers[g].appendChild(j);var h=new Image(),m=this;h.onload=function(){YAHOO.util.Dom.setStyle(j,"top",(l[1]-h.height/2)+"px");YAHOO.util.Dom.setStyle(j,"left",(l[0]-h.width/2)+"px")};h.onerror=function(){YAHOO.util.Dom.setStyle(j,"top",(l[1]-Sigalert.common.element.getHeight(j)/2)+"px");YAHOO.util.Dom.setStyle(j,"left",(l[0]-Sigalert.common.element.getWidth(j)/2)+"px")};h.src=i;return j},_getZoomLevels:function(g){var f=[];if(YAHOO.lang.isArray(g)){f=g}else{if(YAHOO.lang.isNumber(g)){f[0]=g}else{for(var e=0;e<this.maZoomLevels.length;e+=1){f[e]=e}}}return f},deletePushpin:function(n,m){var g=this._getZoomLevels(m),l=0,k=this;for(var f=0;f<g.length;f+=1){l=g[f];var h=YAHOO.util.Dom.getChildrenBy(this.maZoomLayers[l],function(i){return i.id===k.miMapId+"_"+n+"_"+l});for(var e=0;e<h.length;e+=1){Sigalert.common.deleteNode(h[e])}}},deleteAllPushpins:function(n,m){var g=this._getZoomLevels(m);if(n){var l=0;for(var f=0;f<g.length;f+=1){l=g[f];var k=new RegExp("^"+this.miMapId+"_"+n+".*_"+l);var h=YAHOO.util.Dom.getChildrenBy(this.maZoomLayers[l],function(i){return i.id.match(k)});for(var e=0;e<h.length;e+=1){Sigalert.common.deleteNode(h[e])}}}else{for(var f=0;f<g.length;f+=1){this.maZoomLayers[g[f]].innerHTML=""}}},_addPushpin:function(i,e,f,g,h){this._createPushpin(i,e,f,g,h,false)},addPushpin:function(l,e,f,j,k){var h=this._getZoomLevels(j);for(var g=0;g<h.length;g+=1){this._addPushpin(l,e,f,h[g],k)}},_setPushpinLatLon:function(m,f,g,l){var k=this,e=this.latLonToXY(f,g,l),i=YAHOO.util.Dom.getChildrenBy(this.maZoomLayers[l],function(j){return j.id===k.miMapId+"_"+m+"_"+l});for(var h=0;h<i.length;h+=1){YAHOO.util.Dom.setStyle(i[h],"top",(e[1]-i[h].height/2)+"px");YAHOO.util.Dom.setStyle(i[h],"left",(e[0]-i[h].width/2)+"px")}},setPushpinLatLon:function(k,e,f,j){var h=this._getZoomLevels(j);for(var g=0;g<h.length;g+=1){this._setPushpinLatLon(k,e,f,h[g])}},pushpinExists:function(h){var g=this,f=this.getZoom(),e=YAHOO.util.Dom.getChildrenBy(this.maZoomLayers[f],function(i){return i.id===g.miMapId+"_"+h+"_"+f});return e.length>0}};YAHOO.lang.augment(b,a,true)}());(function(){Sigalert.namespace("controls");Sigalert.controls.RoadDetailsControl=function(c){this.mdivDetails=null;this.mdivSummary=null;this.mdivRefreshBtn=null;this.mdivTitleBar=null;this.mspnTitle=null;this.mdivToggleCams=null;this.mdivToggleIncs=null;this.mdivToggleSpeeds=null;this.onToolbarButtonClicked=new YAHOO.util.CustomEvent("toolbarbuttonclicked",this,false,YAHOO.util.CustomEvent.FLAT);Sigalert.controls.RoadDetailsControl.superclass.constructor.call(this,c)};var a=Sigalert.controls.RoadSummaryControl;var b=Sigalert.controls.RoadDetailsControl;b.StrRefresh="Refresh Data";b.StrHideCams="Hide Cameras";b.StrHideIncs="Hide Incidents";b.StrHideSpeeds="Hide Speeds";b.StrShowCams="Show Cameras";b.StrShowIncs="Show Incidents";b.StrShowSpeeds="Show Speeds";YAHOO.extend(b,a,{toggleSpeeds:function(){b.superclass.toggleSpeeds.call(this);if(this.mdivToggleSpeeds){this.mdivToggleSpeeds.title=this.mbShowSpeeds?b.StrHideSpeeds:b.StrShowSpeeds;if(this.mbShowSpeeds){YAHOO.util.Dom.replaceClass(this.mdivToggleSpeeds,"RoadDetailsSpeedIconHiding","RoadDetailsSpeedIconShowing")}else{YAHOO.util.Dom.replaceClass(this.mdivToggleSpeeds,"RoadDetailsSpeedIconShowing","RoadDetailsSpeedIconHiding")}}},toggleIncidents:function(){b.superclass.toggleIncidents.call(this);if(this.mdivToggleIncs){this.mdivToggleIncs.title=this.mbShowIncidents?b.StrHideIncs:b.StrShowIncs;if(this.mbShowIncidents){YAHOO.util.Dom.replaceClass(this.mdivToggleIncs,"RoadDetailsIncidentIconHiding","RoadDetailsIncidentIconShowing")}else{YAHOO.util.Dom.replaceClass(this.mdivToggleIncs,"RoadDetailsIncidentIconShowing","RoadDetailsIncidentIconHiding")}}},toggleCameras:function(){b.superclass.toggleCameras.call(this);if(this.mdivToggleCams){this.mdivToggleCams.title=this.mbShowCameras?b.StrHideCams:b.StrShowCams;if(this.mbShowCameras){YAHOO.util.Dom.replaceClass(this.mdivToggleCams,"RoadDetailsCameraIconHiding","RoadDetailsCameraIconShowing")}else{YAHOO.util.Dom.replaceClass(this.mdivToggleCams,"RoadDetailsCameraIconShowing","RoadDetailsCameraIconHiding")}}},hideCameras:function(){b.superclass.hideCameras.call(this);if(this.mdivToggleCams){this.mdivToggleCams.title=this.mbShowCameras?"Hide Cameras":"Show Cameras";if(this.mbShowCameras){YAHOO.util.Dom.replaceClass(this.mdivToggleCams,"RoadDetailsCameraIconHiding","RoadDetailsCameraIconShowing")}else{YAHOO.util.Dom.replaceClass(this.mdivToggleCams,"RoadDetailsCameraIconShowing","RoadDetailsCameraIconHiding")}}},setSummaryListOverflow:function(c){YAHOO.util.Dom.setStyle(this.mdivSummary,"overflow",c)},removeOuterBorder:function(){YAHOO.util.Dom.removeClass(this.mdivDetails,"SummaryBorder")},removeHeaderPositionStyle:function(){YAHOO.util.Dom.setStyle(this.mdivTitleBar,"position","static")},clearSummaryListHeight:function(c){YAHOO.util.Dom.setStyle(this.mdivSummary,"height","")},onContainerResized:function(d){var c=d-Sigalert.common.element.getVerticalBorder(this.mdivDetails)-Sigalert.common.element.getHeight(this.mdivTitleBar)-Sigalert.common.element.getVerticalBorder(this.mdivSummary)-Sigalert.common.element.getVerticalMargin(this.mdivSummary)-Sigalert.common.element.getVerticalPadding(this.mdivSummary);YAHOO.util.Dom.setStyle(this.mdivSummary,"height",c+"px")},onDataRefreshStart:function(){YAHOO.util.Dom.replaceClass(this.mdivRefreshBtn,"RoadDetailsRefreshIcon","RoadDetailsRefreshIconUpdating")},onDataRefreshEnd:function(){YAHOO.util.Dom.replaceClass(this.mdivRefreshBtn,"RoadDetailsRefreshIconUpdating","RoadDetailsRefreshIcon")},onRefreshButtonClicked:function(){Sigalert.data.Manager[this.moConfig.getProperty("region")].forceRefreshData();this.onToolbarButtonClicked.fire({src:this,button:"refresh"})},onFilterCamerasClicked:function(){this.toggleCameras();this.onToolbarButtonClicked.fire({src:this,button:"togglecameras"})},onFilterIncidentsClicked:function(){this.toggleIncidents();this.onToolbarButtonClicked.fire({src:this,button:"toggleincidents"})},onFilterSpeedsClicked:function(){this.toggleSpeeds();this.onToolbarButtonClicked.fire({src:this,button:"togglespeeds"})},init:function(c){b.superclass.init.call(this,c);this.mdivDetails=make("div");this.mdivTitleBar=make("div");this.mspnTitle=make("span");this.mdivSummary=make("div");YAHOO.util.Dom.addClass(this.mdivDetails,"RoadDetails");YAHOO.util.Dom.addClass(this.mdivDetails,"SummaryBorder");YAHOO.util.Dom.addClass(this.mdivTitleBar,"RoadDetailsTitleBar");YAHOO.util.Dom.addClass(this.mdivTitleBar,"DetailsHeader");YAHOO.util.Dom.addClass(this.mspnTitle,"RoadDetailsTitle");YAHOO.util.Dom.addClass(this.mdivSummary,"RoadDetailsList");this.mdivTitleBar.appendChild(this.mspnTitle);if(this.moConfig.getProperty("showrefreshbutton")){Sigalert.data.Manager[this.moConfig.getProperty("region")].onDataRefreshStart.subscribe(this.onDataRefreshStart,null,this);Sigalert.data.Manager[this.moConfig.getProperty("region")].onDataRefreshEnd.subscribe(this.onDataRefreshEnd,null,this);this.mdivRefreshBtn=make("div");this.mdivRefreshBtn.title=b.StrRefresh;YAHOO.util.Dom.addClass(this.mdivRefreshBtn,"RoadDetailsIcon road-details-refresh-icon RoadDetailsRefreshIcon");YAHOO.util.Dom.addClass(this.mdivRefreshBtn,Sigalert.common.CssFixPng);var e=YAHOO.util.Event.on(this.mdivRefreshBtn,"mousedown",this.onRefreshButtonClicked,null,this);this.mdivTitleBar.appendChild(this.mdivRefreshBtn)}if(this.moConfig.getProperty("showcamerabutton")){this.mdivToggleCams=make("div");this.mdivToggleCams.title=b.StrHideCams;YAHOO.util.Dom.addClass(this.mdivToggleCams,"RoadDetailsIcon RoadDetailsCameraIcon RoadDetailsCameraIconShowing");YAHOO.util.Dom.addClass(this.mdivToggleCams,Sigalert.common.CssFixPng);YAHOO.util.Event.on(this.mdivToggleCams,"mousedown",this.onFilterCamerasClicked,null,this);this.mdivTitleBar.appendChild(this.mdivToggleCams)}if(this.moConfig.getProperty("showincidentbutton")){this.mdivToggleIncs=make("div");this.mdivToggleIncs.title=b.StrHideIncs;YAHOO.util.Dom.addClass(this.mdivToggleIncs,"RoadDetailsIcon RoadDetailsIncidentIcon RoadDetailsIncidentIconShowing");YAHOO.util.Dom.addClass(this.mdivToggleIncs,Sigalert.common.CssFixPng);YAHOO.util.Event.on(this.mdivToggleIncs,"mousedown",this.onFilterIncidentsClicked,null,this);this.mdivTitleBar.appendChild(this.mdivToggleIncs)}if(this.moConfig.getProperty("showspeedsbutton")){this.mdivToggleSpeeds=make("div");this.mdivToggleSpeeds.title=b.StrHideSpeeds;YAHOO.util.Dom.addClass(this.mdivToggleSpeeds,"RoadDetailsIcon RoadDetailsSpeedIcon RoadDetailsSpeedIconShowing");YAHOO.util.Dom.addClass(this.mdivToggleSpeeds,Sigalert.common.CssFixPng);YAHOO.util.Event.on(this.mdivToggleSpeeds,"mousedown",this.onFilterSpeedsClicked,null,this);this.mdivTitleBar.appendChild(this.mdivToggleSpeeds)}var d=make("div");YAHOO.util.Dom.setStyle(d,"clear","both");this.mdivSummary.appendChild(this.mTable);this.mdivDetails.appendChild(this.mdivTitleBar);this.mdivDetails.appendChild(this.mdivSummary);this.mdivDetails.appendChild(d)},initConfig:function(){b.superclass.initConfig.call(this);this.moConfig.setProperty("showrefreshbutton",true);this.moConfig.setProperty("showspeedsbutton",true);this.moConfig.setProperty("showincidentbutton",true);this.moConfig.setProperty("showcamerabutton",true)},render:function(c){if(typeof c=="string"){c=document.getElementById(c)}if(c){c.appendChild(this.mdivDetails)}else{return false}this.mContainer=c;return true},onAfterLoadSummary:function(e,d,c){b.superclass.onAfterLoadSummary.call(this,e,d);this.mspnTitle.innerHTML=c}})}());Sigalert.namespace("FormHelpers");Sigalert.FormHelpers={SelectTab:function(b,a){if(b&&"undefined"!=a){b.set("activeIndex",a)}},IsNumeric:function(b,a,e,c){var d=a.value;if(!isNaN(d)&&d.indexOf(".")==-1){return true}Sigalert.FormHelpers.SelectTab(e,c);a.focus();a.select();alert("The '"+b+"' entry ("+d+") needs to be a number.");return false},StripWhiteSpace:function(b){var a="";var c;b+="";for(i=0;i<b.length;i++){c=b.charAt(i);if(" "!=c){a+=c}}return a},ValidateNotBlank:function(b,a,d,c){if(""==Sigalert.FormHelpers.StripWhiteSpace(a.value)){Sigalert.FormHelpers.SelectTab(d,c);a.focus();a.select();alert("The '"+b+"' entry cannot be blank.");return false}return true},ValidateRange:function(c,b,a,e,g,d){var f=parseInt(b.value);if((f<a)||(f>e)){Sigalert.FormHelpers.SelectTab(g,d);b.focus();b.select();alert("The '"+c+"' entry ("+b.value+") needs to be between "+a+" and "+e+".");return false}return true},ValidateDayMask:function(b,e,d){var a=0;for(var c=0;c<b.length;c++){if(b[c].checked){a+=parseInt(b[c].value)}}if(0==a){Sigalert.FormHelpers.SelectTab(e,d);alert("At least one day of week must be checked");return false}return true},Get24HourHour:function(a,b){if("AM"==b&&12==a){return 0}if("PM"==b&&a<12){return a+12}else{return a}},ValidateDeviceFields:function(c,b,a,e,d){if(c[1].checked){if(b.checked){return true}for(i=0;i<b.length;i++){if(b[i].checked){return true}}Sigalert.FormHelpers.SelectTab(e,d);alert("At least one email address, phone, or pager must be selected "+a+".");return false}else{return true}},WritePVData:function(){document.write('<form name="PVForm">');document.write('<input type=hidden name="StartTime" value='+new Date().getTime()+">");document.write("</form>")},IsPasswordVerified:function(e){var d=new Date(parseInt(document.PVForm.StartTime.value));var f=60;if(d>new Date().getTime()-f*60000){return true}else{var c="<p><strong>To ensure your security, your password needs to be verified before you can make this change.</strong></p><p>A new window should open to allow you to verify your password. If you don't see this new window, please check your popup blocker and try again.</p><p>This message will automatically close once your password has been verified.</p>";Sigalert.common.ShowSimpleDialog("Password Verification",c,null,{width:"500px"});var g,b;g="/VerifyPasswordPopup.asp?sf="+escape(e);b="height=250,";b+="width=600,";b+="toolbar=no,";b+="location=no,";b+="directories=no,";b+="status=no,";b+="menubar=no,";b+="scrollbars=yes,";b+="resizable=yes";var a=window.open(g,"_JaytuPswdVerifyWin",b);a.focus();return false}},DoDelete:function(e,a,d,b,c){if("undefined"==typeof(c)){c=true}if(c){if(!Sigalert.FormHelpers.IsPasswordVerified("Sigalert.FormHelpers.DoDelete("+e+", '"+a+"', "+d+", '"+b+"', "+(c?"true":"false")+")")){return}}bGoForIt=confirm("Are you sure you want to delete this "+a+"?");if(bGoForIt){Sigalert.common.GotoPage("/Delete.asp","DelId="+e+"&Type="+d+"&Dest="+escape(b))}}};