	var mapHour = 0;
	var animInterval = .1;
	var animEndInterval = 1;

	var sSector='';
	var sHoverSector = sSector;

	var animDots = new Array;
	animDots['off'] = new Image;
	animDots['off'].src = ANIM_OFFDOT;
	animDots['on'] = new Image;
	animDots['on'].src = ANIM_ONDOT;
	animDots['hover'] = new Image;
	animDots['hover'].src = ANIM_HOVERDOT;

	var aIPs = new Array;



	function toggleOverlay(oType,isChecked) {
		var oName = 'overlay' + oType;
		var chkBoxName = 'chk' + oType;


		var overlay = $(oName);
		var chkBox = $(chkBoxName);
		if (overlay != undefined && overlay) {
			if (isChecked) {
				Element.show(oName);
				if (chkBox) chkBox.checked = 1;
				if (aOverlays[oType]) overlayPreloader(oType);

			}
			else {
				Element.hide(oName);
				if (chkBox) chkBox.checked = 0;
			}
		}
		var $result = Cookie.set('overlay_' + oType, isChecked+1, 1);

	}

		function initOverlays(oType, useType) {
			var useChip = (useType) ? useType : oType;
			var chip = Cookie.get('overlay_' + useChip);
			chip--;
			if (chip > 0) toggleOverlay(oType,1);
			else toggleOverlay(oType,0);

		}


	function showRegSelector () {
		Element.show('select-more-local');
		Element.hide('local-select');

		Element.hide('select-more-state');
		Element.show('state-select');


	}

	function showLocalSelector () {
		Element.show('select-more-state');
		Element.hide('state-select');

		Element.hide('select-more-local');
		Element.show('local-select');
	}

	function gotoState (region) {
		if (region) {
			location.href = SRC_URL + '&s=' + region.toLowerCase();

		}
	}
	function gotoLocalMap (region) {
		if (region) {
			location.href = SRC_URL + '&s=' + region.toLowerCase();
		}
	}




	function updateSelectorMap(sector, secTitle) {

		var areas = sector.split(',');
		if (sector && areas.length == 4) {
			$('selectorMapBox').style.width = (areas[2] - areas[0]) + 'px';
			$('selectorMapBox').style.height = (areas[3] - areas[1]) + 'px';
			$('selectorMapBox').style.top = areas[1] + 'px';
			$('selectorMapBox').style.left = areas[0] + 'px';
			$('selectorMapBox').title = secTitle;
			$('selectorMapBox').alt = secTitle;

			Element.show('selectorMap');
		}




	}

	function displaySelectorMapHover(sector, secRegion, secTitle) {

		var areas = sector.split(',');

		if (!sector || areas.length != 4) {
			Element.hide('selectorMapHoverBox');
		}
		else  {
			sHoverSector = secRegion;

			$('selectorMapHoverBox').style.width = (areas[2] - areas[0]) + 'px';
			$('selectorMapHoverBox').style.height = (areas[3] - areas[1]) + 'px';
			$('selectorMapHoverBox').style.top = areas[1] + 'px';
			$('selectorMapHoverBox').style.left = areas[0] + 'px';

			$('selectorMapHoverBox').title = secTitle;
			$('selectorMapHoverBox').alt = secTitle;

			Element.show('selectorMapHoverBox');
		}

	}







	function toggleRadarAnimation() {


		if (pe) {
			stopRadarAnimation();
		}
		else {

			if (aIPs['radar']) {
				startRadarAnimation(aIPs['radar'].aImages, aIPs['radar'].nLoaded);
			}
			else {
				Element.show('mapLoadingStatus');
				$('mapLoadingStatusText').innerHTML = 'Loading Map Data<br/><span style="font-size:10px; color:#f00;">&nbsp;</span>';
				aIPs['radar'] = new RadarImagePreloader(aImages['radar'], radarPreLoadComplete,updateRadarLoadStatus);
			}
		}
	}


	function overlayPreloader (whatOverlay) {
		if (!aIPs[whatOverlay]) {
			aIPs[whatOverlay] = new RadarImagePreloader(aOverlays[whatOverlay],overlayPreLoadComplete );
		}
	}
	function overlayPreLoadComplete( ) {}

	function radarPreLoadComplete( ) {
		startRadarAnimation(aIPs['radar'].aImages, aIPs['radar'].nLoaded);
	}


	function  stopRadarAnimation() {
		$('startstop').innerHTML = 'Start'

		if (pe) {
			Element.hide('mapLoadingStatus');
			pe.stop();
			pe = false;


		}
	}


	var animPause=0;
	var animLoopCount =0;
	function startRadarAnimation(aImages, nLoaded) {
		Element.hide('mapLoadingStatus');
		Element.show('animControlSet');
		$('startstop').innerHTML = 'Stop';

		$('animDot'+ (nLoaded-1)).src= animDots['off'].src;

		animPause=0;
		animLoopCount=0;


		pe = new  PeriodicalExecuter(
		function(tpe) {

			var bCont = true;
			if (mapHour == 0 && animLoopCount > 0) {
				animPause++;
				if (animPause * animInterval < animEndInterval) bCont = false;
				else animPause=0;
			}

			animLoopCount++;


			if (bCont) {
				var i = mapHour-1;
				if (i < 0) i = nLoaded-1;
				gotoRadarImage(i);


			}





		}, animInterval);

	}

	function gotoRadarImage(nImage) {

		var nLoaded = aIPs['radar'].nLoaded;
		if (nImage >= 0 && nImage <= nLoaded) {
			if ($('animDot'+mapHour).src !=  animDots['hover'].src) $('animDot'+mapHour).src= animDots['off'].src;
			mapHour = nImage;

			if (nLoaded - mapHour -1 >= 0) {
				$('contourMap').src =  aIPs['radar'].aImages[nLoaded - mapHour -1 ].src;

				for ( var overlayName in aIPs ) {
					if(overlayName != 'radar' &&  aIPs[overlayName].aImages && aIPs[overlayName].aImages[nLoaded - mapHour -1 ]) {
						var overlayID = $('overlay' + overlayName);
						if (overlayID) overlayID.src =  aIPs[overlayName].aImages[nLoaded - mapHour -1 ].src;
					}
				}


			}

			if ($('animDot'+mapHour).src !=  animDots['hover'].src) $('animDot'+mapHour).src= animDots['on'].src;
		}
	}

	function nextRadarImage() {
		var i = mapHour -1;
		if (i < 0) i = aIPs['radar'].nLoaded-1;
		gotoRadarImage(i);
	}

	function prevRadarImage() {
		var i = mapHour +1;
		if (i > aIPs['radar'].nLoaded-1) i=0;
		gotoRadarImage(i);
	}



	function fasterRadarAnimation() {
		stopRadarAnimation();
		animInterval -= .1;
		if (animInterval <= .1) animInterval = .1;
		toggleRadarAnimation();
	}
	function slowerRadarAnimation() {
		stopRadarAnimation();
		animInterval += .1;
		if (animInterval > 3) animInterval = 3;
		toggleRadarAnimation();
	}

	function highliteAnimDot(nImage,bHighLite) {
		var nLoaded = aIPs['radar'].nLoaded;
		if (nImage >= 0 && nImage <= nLoaded) {

			if (bHighLite) 	$('animDot'+nImage).src= animDots['hover'].src;
			else if (nImage == mapHour) $('animDot'+nImage).src= animDots['on'].src;
			else $('animDot'+nImage).src= animDots['off'].src;
		}

	}

	function updateOverlayLoadStatus(aImages, nProcessed, nImages) {

		if (nProcessed > 0) {
			var naImages = aImages.length;
			if (nProcessed > 1) $('animDot'+ (naImages - nProcessed+1)).src= animDots['off'].src;
			if (aImages[nProcessed-1].src != 'undefined') {
				$('overlayWarnings').src =  aImages[nProcessed-1].src;
				$('contourMap').src =  aIPs['radar'].aImages[nProcessed-1 ].src;
			}

			$('animDot'+ (naImages - nProcessed)).src= animDots['on'].src;

		}

		$('mapLoadingStatusText').innerHTML = 'Loading Overlay Data<br/><span style="font-size:10px; color:#f00;">Image ' + nProcessed + ' of ' + nImages + '</span>' ;


	}

	function updateRadarLoadStatus(aImages, nProcessed, nImages) {

		if (nProcessed > 0) {
			var naImages = aImages.length;
			if (nProcessed > 1) $('animDot'+ (naImages - nProcessed+1)).src= animDots['off'].src;

			if (aImages[nProcessed-1].src != 'undefined') $('contourMap').src =  aImages[nProcessed-1].src;
			$('animDot'+ (naImages - nProcessed)).src= animDots['on'].src;

		}

		$('mapLoadingStatusText').innerHTML = 'Loading Map Data<br/><span style="font-size:10px; color:#f00;">Image ' + nProcessed + ' of ' + nImages + '</span>' ;


	}




function RadarImagePreloader(timages, callBack, statusCallBack)

{
  // store the call-back
   this.callBack = callBack;
   this.statusCallBack = statusCallBack;
   // initialize internal state.

   this.nLoaded = 0;
   this.nProcessed = 0;
   this.aImages = new Array;

   // record the number of images.
   this.nImages = timages.length;

   // for each image, call preload()

   for ( var i = 0; i < timages.length; i++ ) {
     this.preload(timages[i]);
   }
}

RadarImagePreloader.prototype.preload = function(image)

{
   // create new Image object and add to array
   var oImage = new Image;
   this.aImages.push(oImage);

   // set up event handlers for the Image object
   oImage.onload = ImagePreloader.prototype.onload;
   oImage.onerror = ImagePreloader.prototype.onerror;
   oImage.onabort = ImagePreloader.prototype.onabort;

   // assign pointer back to this.
   oImage.oImagePreloader = this;
   oImage.bLoaded = false;




   // assign the .src property of the Image object
   oImage.src = image;

}



RadarImagePreloader.prototype.onComplete = function()

{
   this.nProcessed++;

  	if (this.statusCallBack) this.statusCallBack(this.aImages,this.nProcessed,this.nImages );

   if ( this.nProcessed == this.nImages )
   {
      this.callBack(this.aImages, this.nLoaded);
   }

}

RadarImagePreloader.prototype.onload = function()
{
   this.bLoaded = true;
   this.oImagePreloader.nLoaded++;
   this.oImagePreloader.onComplete();

}

RadarImagePreloader.prototype.onerror = function()
{
   this.bError = true;
   this.oImagePreloader.onComplete();

}

RadarImagePreloader.prototype.onabort = function()
{
   this.bAbort = true;
   this.oImagePreloader.onComplete();

}


