var lastResponse;
var dodebug=false;
var printxml=false;
var pageInitialized = false;
var doOmniture = true;

var dataservlet="/action/WebCoverageDataServlet4";
var activeTab = "sprintPane";
var selectedDrawer = "voice";
var selectedTab = "sprint";
var drawerLabel='Voice Coverage';
var tabLabel='Sprint Devices';

var zooming = false;
var currentLevel=0;
var changinglayers = false;
var addrVisible = false;
var addressForm;
var bShowPinpoint = false;
var selectCand = false;
var geocodedAddr = false;
var PinpointFlag = false;
var pinpointState = "min";
var showShopBtn = true;
var zoomSlider=false;
var zoomclick=false;
var zoomSliderPos=0;
var zoomSliderMin=0;
var zoomSliderMax= 270; //290;
var zoomLevels = [3300, 1000, 500, 250, 100, 50, 25, 10, 5, 3, 1, .5];
var shoponlinediv = "shoponlinebtn";
var shoponlineanchor = "shoponlineanchor";
var blockpopup=false;
var dragmap=false;
var doAntiAlias='T';
var staticMapFile="";
var useBusyTimer=false;
//var checkDelayms=3500;
var checkDelayms = [300, 3500, 3500, 3500, 3500, 3500, 3000, 2000, 2000, 2000, 1500, 1500];
var checkBusyId=null;
var candXML;

var defaultX = -95.9;
var defaultY = 37.1;

//Values used for currently displayed map
var geoCenterX = defaultX;
var geoCenterY = defaultY;
var centerX = geoCenterX;
var centerY = geoCenterY;
var scale = 3300;
var imgPath = "";
var maptop = 55.0105;
var mapleft = -125.84137;
var mapright = -65.95863;
var mapbottom = 19.18943;
var imgWidth = 420;
var imgHeight = 315;
var degPerPixY=0.11371788309060666
var degPerPixX=0.14257794909431942

//Coverage variables parsed from xml
var coverageLevelCDMA = "";
var coverageLevelIDEN = "";
var covLevelDiscl = "We do not have coverage level information for all areas.";
var showCovLevelDiscl = "N";
var covCDMA = "N";
var covIDEN = "N";
var covHybrid = "N";
var covEVDO = "N";
var covRoamCDMA = "N";
var covRoamAnalog = "N";

var addressCount = 0;
var currentLocation = 0;
var currentCity="";
var currentState="";
var currentZip="";

//variables used by coverage highlight code
var covvoicesprint = [ "","","" ];
var covvoicenextel = [ "","","" ];
var covvoicecombo = [ "","","" ];
var covdatasprint = [ "","","" ];
var covdatawimax = [ "","","" ];
var covdatanextel = [ "","","" ];
var covdatacombo = [ "","","" ];
var covwalkietalkiesprint = [ "","","" ];
var covwalkietalkienextel = [ "","","" ];
var covwalkietalkiecombo = [ "","","" ];

//Data stored for geocoded locations
var mapCenterX = [ defaultX, defaultX, defaultX ];
var mapCenterY = [ defaultY, defaultY, defaultY ];
var mapScale = [ 3300, 3300, 3300 ];


function clearLocationData()
{
	covvoicesprint = [ "","","" ];
	covvoicenextel = [ "","","" ];
	covvoicecombo = [ "","","" ];
	covdatasprint = [ "","","" ];
	covdatawimax = [ "","","" ];
	covdatanextel = [ "","","" ];
	covdatacombo = [ "","","" ];
	covwalkietalkiesprint = [ "","","" ];
	covwalkietalkienextel = [ "","","" ];
	covwalkietalkiecombo = [ "","","" ];

	mapCenterX = [ defaultX, defaultX, defaultX ];
	mapCenterY = [ defaultY, defaultY, defaultY ];
	mapScale = [ 3300, 3300, 3300 ];
}

function defaultClickHandler()
{
   return;
}

function imgClickHandler (img,evt)
{
  if (window.event)
    alert(window.event.offsetX + ':' + window.event.offsetY);
  else if (evt.target) {
    var coords = {x: 0, y: 0 };
    var el = evt.target;
    do {
      coords.x += el.offsetLeft;
      coords.y += el.offsetTop;
    }
    while ((el = el.offsetParent));
    var offsetX = evt.clientX - coords.x;
    var offsetY = evt.clientY - coords.y;
    alert(offsetX + ':' + offsetY);
  }
}

<!--From dynamicdrive.com-->
function getposOffset(what, offsettype)
{
	if (what == null) return null;
	var totaloffset=(offsettype=="left") ? what.offsetLeft : what.offsetTop;
	var parentEl=what.offsetParent;
	while (parentEl!=null)
	{
		totaloffset=(offsettype=="left") ? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
		parentEl=parentEl.offsetParent;
	}
	return totaloffset;
}

function getMouseOffset(event)
{
	var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body

	var dsocleft=document.all? iebody.scrollLeft : pageXOffset
	var dsoctop=document.all? iebody.scrollTop : pageYOffset
	return dsoctop + event.clientY;
}

function getMouseOffsetX(event)
{
	var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body

	var dsocleft=document.all? iebody.scrollLeft : pageXOffset
	var dsoctop=document.all? iebody.scrollTop : pageYOffset
	return dsocleft + event.clientX;
}


function showpos(obj,event)
{
	var objoffset = getposOffset(document.getElementById("slicer_pic"),"top") ;
	if (objoffset == null) return;
	var mouseOffset = getMouseOffset(event);
   if (dodebug)
   {
	  document.getElementById("frmImpact2").txtStatus.value=(mouseOffset - objoffset);
   }
	if ((zoomSlider == true || zoomclick == true) && (mouseOffset - objoffset) > zoomSliderMin && (mouseOffset - objoffset) <= zoomSliderMax) //event.clientY > 204 && event.clientY < 300 &&
	{
	   zoomSliderPos = mouseOffset - (objoffset +15);
	   document.getElementById("slicer_slider").style.top = zoomSliderPos + "px";
	}
}
//Move to common.js
function showposmap(obj,event)
{
	var mapobj = document.getElementById("mapimg");
	if (document.getElementById("mapimg") == null)
	{
		return;
	}
	if (scale == zoomLevels[0])
	{
		if (mapobj.style.cursor != "default")
			mapobj.style.cursor="default";
		return;
	}
	else
	{
		if (mapobj.style.cursor != "pointer")
			mapobj.style.cursor="pointer"; //move
	}
	var objoffset = getposOffset(document.getElementById("mapcontainer"),"top") ;
	if (objoffset == null) return;
	var objoffsetx = getposOffset(document.getElementById("mapcontainer"),"left") ;
	if (objoffsetx == null) return;
	var mouseOffset = getMouseOffset(event);
	var mouseOffsetx = getMouseOffsetX(event);
   if (dodebug)
   {
	  document.getElementById("frmImpact2").txtStatus.value=dragmap + ":" + (mouseOffset - objoffset) + "," + (mouseOffsetx - objoffsetx);
	  //log((mouseOffset - objoffset) + "," + (mouseOffsetx - objoffsetx));
   }

	if (dragmap == true && (mouseOffset - objoffset) > 0 && (mouseOffset - objoffset) <= imgHeight && (mouseOffsetx - objoffsetx) > 0 && (mouseOffsetx - objoffsetx) <= imgWidth)
	{
		newmapy = (mouseOffset - objoffset) - startmapy;
		newmapx = (mouseOffsetx - objoffsetx) - startmapx;
		document.getElementById("mapimg").style.top = newmapy + "px";
		document.getElementById("mapimg").style.left = newmapx + "px";
	}

}

function dropMap()
{
	if (dodebug)
		document.getElementById("frmImpact2").txtStatus.value="Moved map " + (newmapx) + " left/right and " + ( newmapy) + " up/down.";
	log("Moved map " + (newmapx) + " left/right and " + ( newmapy) + " up/down.");
	if (Math.abs(newmapx) > 0 || Math.abs(newmapy) > 0)
		doRecenter(newmapx,newmapy);
	else
		log("minor change, not reloading map.");
}

function clickmap(obj,event)
{
if(event.preventDefault)
 {
  event.preventDefault();
 }
 	var objoffset = getposOffset(document.getElementById("mapcontainer"),"top") ;
	if (objoffset == null) return;
	var objoffsetx = getposOffset(document.getElementById("mapcontainer"),"left") ;
	if (objoffsetx == null) return;
	var mouseOffset = getMouseOffset(event);
	var mouseOffsetx = getMouseOffsetX(event);

	dragmap = true;
	startmapy = mouseOffset - objoffset;
	startmapx = mouseOffsetx - objoffsetx;
	newmapx = 0; //Set initial value
	newmapy = 0; //Set initial value
   if (dodebug)
   {
	  document.getElementById("frmImpact2").txtStatus.value="Clickstart:" + (mouseOffset - objoffset) + "," + (mouseOffsetx - objoffsetx);
	  log("Clickstart: startmapx: " + startmapx + ", startmapy: " + startmapy + ", old values of newmapx:" + newmapx + ", newmapy:" + newmapy);
   }
}


function setZoomSlider()
{
	 log("setZoomSlider: zoomSliderPos=" + zoomSliderPos);
    if (zoomclick)
    	return;
    var base=4;
    var incr=24; //26; //292 / 11;
    var zoomstr = "zoom positions: ";
    for (var i=0; i<12; i++)
    	zoomstr += (base + incr * i) + " ";
	//alert(zoomstr);
	if (zoomSliderPos < base + incr * 0)
		setZoom(0);
	else if (zoomSliderPos < base + incr * 1)
		setZoom(1);
	else if (zoomSliderPos < base + incr * 2)
		setZoom(2);
	else if (zoomSliderPos < base + incr * 3)
		setZoom(3);
	else if (zoomSliderPos < base + incr * 4)
		setZoom(4);
	else if (zoomSliderPos < base + incr * 5)
		setZoom(5);
	else if (zoomSliderPos < base + incr * 6)
		setZoom(6);
	else if (zoomSliderPos < base + incr * 7)
		setZoom(7);
	else if (zoomSliderPos < base + incr * 8)
		setZoom(8);
	else if (zoomSliderPos < base + incr * 9)
		setZoom(9);
	else if (zoomSliderPos < base + incr * 10)
		setZoom(10);
	else if (zoomSliderPos >= base + incr * 10)
		setZoom(11);
	document.getElementById("slicer_slider").focus();
}

function syncZoomSlider(zoomlevel)
{
    var base=-12; //offset up by half of slider height
    var incr= 24; //26; //294 / 11;
	zoomSliderPos = base + (incr * zoomlevel);
	document.getElementById("slicer_slider").style.top = zoomSliderPos + "px";
}

function showFields()
{
    alert(document.getElementById("slicer_pic").top);
	/*
	alert(
		"geoCenterX:" + geoCenterX +
		"\ngeoCenterY:" +	geoCenterY +
		"\ncenterX   :" +	centerX +
		"\ncenterY   :" +	centerY +
		"\nscale     :" + scale +
		"\nimgPath   :" +	imgPath +
		"\nmaptop    :" +	maptop +
		"\nmapleft   :" +	mapleft +
		"\nmapright  :" +	mapright +
		"\nmapbottom :" +	mapbottom
		);
	*/
}

function doMapIt(form)
{
	//checkFields();
	//if (document.getElementById("mapit").enabled == true)
	{
		zooming=false;changinglayers=false;geocodeAddress(form);
	}
}

function checkFields()
{
		var formOK = false;
		if (document.getElementById("frmImpact2").fulladdress1.value == "")
		{
			if (document.getElementById("frmImpact2").fulladdress2.value != "")
			{
				document.getElementById("frmImpact2").fulladdress1.value = document.getElementById("frmImpact2").fulladdress2.value;
				document.getElementById("frmImpact2").fulladdress2.value = document.getElementById("frmImpact2").fulladdress3.value;
				document.getElementById("frmImpact2").fulladdress3.value = "";

			}
			else if (document.getElementById("frmImpact2").fulladdress3.value != "")
			{
				document.getElementById("frmImpact2").fulladdress1.value = document.getElementById("frmImpact2").fulladdress3.value;
				document.getElementById("frmImpact2").fulladdress3.value = "";
			}
		}
		else if (document.getElementById("frmImpact2").fulladdress2.value == "")
		{
			if (document.getElementById("frmImpact2").fulladdress3.value != "")
			{
				document.getElementById("frmImpact2").fulladdress2.value = document.getElementById("frmImpact2").fulladdress3.value;
				document.getElementById("frmImpact2").fulladdress3.value = "";
			}
		}

		if (document.getElementById("frmImpact2").fulladdress1.value != "")
		{
			s_prop32 = "TODO:Get this after response comes back";
			formOK = true;
		}

		log("checkFields returning " + formOK);
		return formOK;
}

function checkInput(form, event)
{
	//alert("checkinput");
	//else
	//{
	//	checkFields();
	//}
}

//For AJAX stuff
function geocodeAddress(oldform)
{
	clearLocationData();
	clearError();

  // Obtain an XMLHttpRequest instance
  var req = newXMLHttpRequest();

  // Set the handler function to receive callback notifications
  // from the request object
  var handlerFunction = getReadyStateHandler(req, readGeocodeResponse);
  req.onreadystatechange = handlerFunction;

  // Open an HTTP POST connection to the data servlet.
  // Third parameter specifies request is asynchronous.
  req.open("POST", dataservlet, true);

  // Specify that the body of the request contains form data
  req.setRequestHeader("Content-Type",
                       "application/x-www-form-urlencoded");

  var form = document.getElementById('frmImpact2');

  var urlString = "covType=" + activeTab
  		+ "&width=" + imgWidth
  		+ "&height=" + imgHeight;
  if (form.fulladdress1.value != "")
  {
  	urlString += "&fulladdress1=" + escape(form.fulladdress1.value);
  }
  if (form.fulladdress2.value != "")
  {
  	urlString += "&fulladdress2=" + escape(form.fulladdress2.value);
  }
  if (form.fulladdress3.value != "")
  {
  	urlString += "&fulladdress3=" + escape(form.fulladdress3.value);
  }

  req.send(urlString);
  if (dodebug)
  {
    document.getElementById("mapsearchresults").value=urlString;
    log("geocodeAddress:" + dataservlet + "?" + urlString);
  }

  //MCW commented so busy div doesn't show until we are reading the image... may just have to live with it.
  toggleBusy(true);
  reStoreAddrForm();
  geocodedAddr=false; //Initialize to false in case an error occurs.
  //document.getElementById("comparepinpoint").style.display='none';
  hideLayer("comparepinpoint");
  hidePinpoint();
  pinpointState = "min";

  showScale();

}


function showInsetMap(insetLoc)
{
	if (insetLoc == "AK")
	{
		centerX = -149.89260864257812;
		centerY = 61.2948112487793;
		document.getElementById("frmImpact2").fulladdress1.value="AK";
		s_prop32 = "AK";
		currentLevel=1;
		scale = 1000;
		recenterMap(centerX, centerY);
	}
	else if (insetLoc == "HI")
	{
		centerX = -156.6522674560547;
		centerY = 20.835241317749023;
		document.getElementById("frmImpact2").fulladdress1.value="HI";
		s_prop32 = "HI";
		currentLevel=2;
		scale = 500;
		recenterMap(centerX, centerY);
	}
	else if (insetLoc == "PR")
	{
		centerX = -66.08016967773438;
		centerY = 18.420085906982422;
		document.getElementById("frmImpact2").fulladdress1.value="PR";
		s_prop32 = "PR";
		currentLevel=3;
		scale = 250;
		recenterMap(centerX, centerY);
	}
	
	hideSearchResults();
}

function showScale()
{
	var currentZoom = -1;
	var strmapScale = "";

	if (document.getElementById("compareScale1") == null)
	{
		log('compareScale1 not loaded yet, is null');
	}

	for (i=0;i<12;i++)
	{
		strmapScale = "mapScale" + i;
		document.getElementById(strmapScale).style.display='none';
		if (zoomLevels[i] == scale)
		{
			document.getElementById(strmapScale).style.display='';
		   var scaleimg = document.getElementById("scaleImg"+i).src;
		   if (i<9)
		   {
			  if (document.getElementById("compareScale1"))
			  {
				  document.getElementById("compareScale1").src = scaleimg;
				  document.getElementById("compareScale2").src = scaleimg;
				  document.getElementById("compareScale3").src = scaleimg;
			  }
			  else
			  	  log("Unable to locate compareScaleX");
		    }
		    else
		    {
			  if (document.getElementById("compareScale1"))
			  {
				  document.getElementById("compareScale1").src = scaleimg;
				  document.getElementById("compareScale2").src = scaleimg;
				  document.getElementById("compareScale3").src = scaleimg;
			  }
			  else
			  	  log("Unable to locate compareScaleX");
		    }
		}
	}
}

/*
 * Returns a new XMLHttpRequest object, or false if this browser
 * doesn't support it
 */
function newXMLHttpRequest() {

  var xmlreq = false;

  if (window.XMLHttpRequest) {

    // Create XMLHttpRequest object in non-Microsoft browsers
    xmlreq = new XMLHttpRequest();

  } else if (window.ActiveXObject) {

    // Create XMLHttpRequest via MS ActiveX
    try {
      // Try to create XMLHttpRequest in later versions
      // of Internet Explorer

      xmlreq = new ActiveXObject("Msxml2.XMLHTTP");

    } catch (e1) {

      // Failed to create required ActiveXObject

      try {
        // Try version supported by older versions
        // of Internet Explorer

        xmlreq = new ActiveXObject("Microsoft.XMLHTTP");

      } catch (e2) {

        // Unable to create an XMLHttpRequest with ActiveX
      }
    }
  }

  return xmlreq;
}

/*
 * Returns a function that waits for the specified XMLHttpRequest
 * to complete, then passes its XML response
 * to the given handler function.
 * req - The XMLHttpRequest whose state is changing
 * responseXmlHandler - Function to pass the XML response to
 */
function getReadyStateHandler(req, responseXmlHandler) {

  // Return an anonymous function that listens to the
  // XMLHttpRequest instance
  return function () {

    // If the request's status is "complete"
    if (req.readyState == 4) {

      // Check that a successful server response was received
      if (req.status == 200) {

        // Pass the XML payload of the response to the
        // handler function
		  if (dodebug)
		  {
           document.getElementById("frmImpact2").txtXml.value=req.responseText;
           if (printxml)
           {
           	  log(req.responseText);
           }
        }
        //document.getElementById("printform").xmlstring.value=req.responseText;
        responseXmlHandler(req.responseXML);

      } else {

        // An HTTP problem has occurred
        alert("HTTP error: " + req.status);
        toggleBusy(false);
		  if (dodebug)
		  {
           document.getElementById("frmImpact2").txtXml.value=req.responseText;
           log(req.responseText);
        }
      }
    }
  }
}


function getTagValue(node)
{
   var res = "";
	if (node != null)
	{
		res = node.nodeValue;
	}
	if (res == null)
		res = "";
	return res;
}

function readGeocodeResponse(responseDoc)
{

	if (dodebug)
	{
	 log("Processing geocode response....");
	}

	lastResponse = responseDoc;

	// Get the root element from the document

	var respBody = responseDoc.getElementsByTagName("impactwebds")[0];

	//---------
	// Logic:
	//  Check for overal error message
	//  Loop through all locations in the response.  If any are in error or have multiple candidates, ignore coverage and coordinates
	//  First priority is errors: if there are any errors, highlight input fields that are in error and display error message
	//  Second priority is close matches: if there are any close matches, pass the xml to a separate function to populate the
	//     close match popup and present it.  (or if it's not too ugly just do it here)
	//  If no errors are found, collect all values and populate the searchResults div and display it.
	//---------

	var hasError = false;
	var multipleCandidates = false;
	var geocodeError = false;

	if (respBody != null)
	{
		var locsNode = respBody.getElementsByTagName("Locations")[0];
		var locationNode = locsNode.getElementsByTagName("location");
		var locNum = 0;
		while (locationNode != null && locNum < locationNode.length) //locNum is just to prevent an infinite loop if something goes wrong
		{
			var geocoderesult = locationNode[locNum].getElementsByTagName("geocodeResult")[0].firstChild.nodeValue;
			if (geocoderesult == 'match not found')
			{
				if (geocodeError == false)
				{
					//Set focus to first address in error
					//TODO: This causes a javascript error when showCompare is true because the field is still hidden at this point.
					try
					{
						document.getElementById("fulladdress"+(locNum+1)).focus();
					}
					catch (err)
					{
					  //alert("exception setting focus to address field!: " + err.description);
					}
				}
				geocodeError = true;
				document.getElementById("fulladdress"+(locNum+1)).style.backgroundColor="pink";

			}
			if (locationNode[locNum].getElementsByTagName("candidateAddress").length > 1)
			{
				multipleCandidates = true;
			}

			//locNum = parseInt(locNum) + 1;
			locNum += 1;
			//locationNode = locsNode.getElementsByTagName("location")[locNum];
		}
	}

	if (hasError == false && multipleCandidates == false && geocodeError == false)
	{
		setupSearchResults(respBody);
	}

	if (geocodeError)
	{
		//force coverage view project.  display error message.
		if (invokeCompare)
		{
			invokeCompare = false;
			document.getElementById("checking").style.display='none';
			document.getElementById("compareGeocodeError").style.display='';
		}
		toggleBusy(false);
		showError(errUnableToFind);
	}
	else if (multipleCandidates)
	{
		setupCandidatePopup(respBody);
	}
	
	return;
 
	//Begin existing code (pre-PJ002331)
	if (respBody != null)
	{
		var locationNode = respBody.getElementsByTagName("location")[0];
		if (locationNode != null)
		{
			var geocoderesult = locationNode.getElementsByTagName("geocodeResult")[0].firstChild.nodeValue;
			if (geocoderesult == 'match not found')
			{
			  if (dodebug)
			  {
				log(geocoderesult);
			  }
				if (respBody.getElementsByTagName("error")[0].firstChild != null)
				{
					var errormsg = respBody.getElementsByTagName("error")[0].firstChild.nodeValue;
					if (dodebug)
					{
					  log(errormsg);
					}
				}
				//toggleAddrVisible(document.getElementById('addrForm'), true); //E2630 address entry always visible
				showError(errUnableToFind);
				//TODO: force coverage view project.  display error message.
				if (invokeCompare)
				{
					invokeCompare = false;
					document.getElementById("checking").style.display='none';
					document.getElementById("compareGeocodeError").style.display='';
				}

				toggleBusy(false);
			  if (dodebug)
			  {
				log(geocoderesult);
			  }
				//alert(geocoderesult);
				return;
			}
		}

		//Check for error response
		if (respBody.getElementsByTagName("error")[0].firstChild != null)
		{
			var errormsg = respBody.getElementsByTagName("error")[0].firstChild.nodeValue;
			if (dodebug)
			{
			  log(errormsg);
			}
			//toggleAddrVisible(document.getElementById('addrForm'), true);
			toggleBusy(false);
			return;
		}

		//Check for candidate #2 (index 1) -- if so, present choices to user.
		var candidateAddr = respBody.getElementsByTagName("candidateAddress")[0];
		//alert("Candidate:" + (candidateAddr != null));
		if (respBody.getElementsByTagName("candidateAddress")[1] != null)
		{
			//toggleAddrVisible(document.getElementById('addrForm'), true);
			toggleBusy(false);

			//alert('before');
			reSizeAddrForm();
			candXML = responseDoc;
			//Multiple candidates returned
			document.getElementById('cand0td').style.display='none';
			document.getElementById('cand1td').style.display='none';
			document.getElementById('cand2td').style.display='none';
			var candNum=0;
			while (candidateAddr != null && candNum < 3)
			{
					var street = getTagValue(candidateAddr.getElementsByTagName("street")[0].firstChild);
				 var street2 = getTagValue(candidateAddr.getElementsByTagName("street2")[0].firstChild);
				 if (street2 != null && street2 != "")
					  street += " & " + street2;
				document.getElementById('cand'+candNum+'addr').innerHTML = street + "<br/>" +
						getTagValue(candidateAddr.getElementsByTagName("city")[0].firstChild) + ", " +
						getTagValue(candidateAddr.getElementsByTagName("state")[0].firstChild) + " " +
						getTagValue(candidateAddr.getElementsByTagName("zip")[0].firstChild);
				document.getElementById('cand'+candNum+'map').src=candidateAddr.getElementsByTagName("thumnailPath")[0].firstChild.nodeValue;
				document.getElementById('cand'+candNum+'td').style.display="";
				//alert(candNum);

				candNum = parseInt(candNum) + 1;
				candidateAddr = respBody.getElementsByTagName("candidateAddress")[candNum];
			}

		}
		else
		{
			 //Single address returned, update variables and show map

			var locationNode = respBody.getElementsByTagName("location")[0];
			geoCenterX = locationNode.getElementsByTagName("geocodeCenterX")[0].firstChild.nodeValue;
			geoCenterY = locationNode.getElementsByTagName("geocodeCenterY")[0].firstChild.nodeValue;
			centerX = locationNode.getElementsByTagName("centerX")[0].firstChild.nodeValue;
			centerY = locationNode.getElementsByTagName("centerY")[0].firstChild.nodeValue;
			maptop = locationNode.getElementsByTagName("top")[0].firstChild.nodeValue;
			mapleft = locationNode.getElementsByTagName("left")[0].firstChild.nodeValue;
			mapright = locationNode.getElementsByTagName("right")[0].firstChild.nodeValue;
			mapbottom = locationNode.getElementsByTagName("bottom")[0].firstChild.nodeValue;
			scale = locationNode.getElementsByTagName("scale")[0].firstChild.nodeValue;
			imgPath = respBody.getElementsByTagName("map_imagefilepath")[0].firstChild.nodeValue;

			var dataEl = respBody.getElementsByTagName("data")[0];
			coverageLevelCDMA = getTagValue(dataEl.getElementsByTagName("coverageQualityCDMA")[0].firstChild);
			coverageLevelIDEN = getTagValue(dataEl.getElementsByTagName("coverageQualityIDEN")[0].firstChild);
			showCovLevelDiscl = getTagValue(dataEl.getElementsByTagName("showSignalStrengthDisclaimer")[0].firstChild);
			covCDMA = getTagValue(dataEl.getElementsByTagName("CDMA")[0].firstChild);
			covIDEN = getTagValue(dataEl.getElementsByTagName("iDEN")[0].firstChild);
			covHybrid = getTagValue(dataEl.getElementsByTagName("hybrid")[0].firstChild);
			covEVDO = getTagValue(dataEl.getElementsByTagName("EVDO")[0].firstChild);
			covRoamCDMA = getTagValue(dataEl.getElementsByTagName("roamDigital")[0].firstChild);
			covRoamAnalog = getTagValue(dataEl.getElementsByTagName("roamAnalog")[0].firstChild);
			var bestCoverage = dataEl.getElementsByTagName("bestCoverage")[0];
			if (bestCoverage != null)
			{
				covvoicesprint = getTagValue(bestCoverage.getElementsByTagName("voicesprint")[0].firstChild);
				covvoicenextel = getTagValue(bestCoverage.getElementsByTagName("voicenextel")[0].firstChild);
				covvoicecombo = getTagValue(bestCoverage.getElementsByTagName("voicecombo")[0].firstChild);
				covdatasprint = getTagValue(bestCoverage.getElementsByTagName("datasprint")[0].firstChild);
				covdatanextel = getTagValue(bestCoverage.getElementsByTagName("datanextel")[0].firstChild);
				covdatacombo = getTagValue(bestCoverage.getElementsByTagName("datacombo")[0].firstChild);
				covdatawimax = getTagValue(bestCoverage.getElementsByTagName("datawimax")[0].firstChild);
				covwalkietalkiesprint = getTagValue(bestCoverage.getElementsByTagName("walkietalkiesprint")[0].firstChild);
				covwalkietalkienextel = getTagValue(bestCoverage.getElementsByTagName("walkietalkienextel")[0].firstChild);
				covwalkietalkiecombo = getTagValue(bestCoverage.getElementsByTagName("walkietalkiecombo")[0].firstChild);
			}

			document.getElementById("covaddr").innerHTML=getCandidateDisplayAddr(candidateAddr);
			if (document.getElementById("covaddr1"))
				document.getElementById("covaddr1").innerHTML=getCandidateDisplayAddr(candidateAddr);
			//updatePinpoint();
			bShowPinpoint=true;
			geocodedAddr=true;
			addRecentSearch();

			//document.getElementById("covdetails").style.display='';
			//document.getElementById("covdetailspacer").style.display='none';
			showLayer("comparepinpoint");
			setPageHeight();
			if (invokeCompare)
			{
				log("calling doCompare in readGeocodeResponse");
				doCompare();
			}
			getMapImage();
			log("calling omniture in readGeocodeResponse.");
			makeOmnitureCall('mapit');

			//PJ002331
			//resizeAddrForm();
		}
	}
	else
	{
		if (dodebug)
		{
			log("root element is null -- " + responseDoc.doctype);
		}
	}
	//End existing code (pre-PJ002331)
}

function setupSearchResults(respBody, isRecenter)
{
	var locationNode;
 	var locsNode = respBody.getElementsByTagName("Locations")[0];
 	var locationNodes = locsNode.getElementsByTagName("location");
 	var locNum = 0;
 	addressCount = locationNodes.length;
 	currentLocation=0;
 	
 	imgPath = respBody.getElementsByTagName("map_imagefilepath")[0].firstChild.nodeValue;

	if (addressCount == 1)
	{
		hideLayer("optionalLocs");
		hideLayer("optionalLoc1");
		hideLayer("optionalLoc1cov");
		hideLayer("optionalLoc2");
		hideLayer("optionalLoc2cov");
	}
	else if (addressCount == 2)
	{
		showLayer("optionalLocs");
		showLayer("optionalLoc1");
		showLayer("optionalLoc1cov");
		hideLayer("optionalLoc2");
		hideLayer("optionalLoc2cov");
	}
	else if (addressCount == 3)
	{
		showLayer("optionalLocs");
		showLayer("optionalLoc1");
		showLayer("optionalLoc1cov");
		showLayer("optionalLoc2");
		showLayer("optionalLoc2cov");
	}
	
	while (locationNodes != null && locNum < locationNodes.length) //locNum is just to prevent an infinite loop if something goes wrong
	{
		locationNode = locationNodes[locNum];
		var candidateAddr = locationNode.getElementsByTagName("candidateAddress")[0];
		if (isRecenter)
		{
			candidateAddr = locationNode;
		}
		var dispAddr = getCandidateDisplayAddr(candidateAddr);
		document.getElementById("location"+locNum).innerHTML = dispAddr;

		mapCenterX[locNum] = locationNode.getElementsByTagName("geocodeCenterX")[0].firstChild.nodeValue;
		mapCenterY[locNum] = locationNode.getElementsByTagName("geocodeCenterY")[0].firstChild.nodeValue;
		mapScale[locNum] = locationNode.getElementsByTagName("scale")[0].firstChild.nodeValue;
		var dataEl = locationNode.getElementsByTagName("data")[0];
		if (dataEl != null)
		{
			var bestCoverage = dataEl.getElementsByTagName("bestCoverage")[0];
			if (bestCoverage != null)
			{
				covvoicesprint[locNum] = getTagValue(bestCoverage.getElementsByTagName("voicesprint")[0].firstChild);
				covvoicenextel[locNum] = getTagValue(bestCoverage.getElementsByTagName("voicenextel")[0].firstChild);
				covvoicecombo[locNum] = getTagValue(bestCoverage.getElementsByTagName("voicecombo")[0].firstChild);
				covdatasprint[locNum] = getTagValue(bestCoverage.getElementsByTagName("datasprint")[0].firstChild);
				covdatanextel[locNum] = getTagValue(bestCoverage.getElementsByTagName("datanextel")[0].firstChild);
				covdatacombo[locNum] = getTagValue(bestCoverage.getElementsByTagName("datacombo")[0].firstChild);
				covdatawimax[locNum] = getTagValue(bestCoverage.getElementsByTagName("datawimax")[0].firstChild);
				covwalkietalkiesprint[locNum] = getTagValue(bestCoverage.getElementsByTagName("walkietalkiesprint")[0].firstChild);
				covwalkietalkienextel[locNum] = getTagValue(bestCoverage.getElementsByTagName("walkietalkienextel")[0].firstChild);
				covwalkietalkiecombo[locNum] = getTagValue(bestCoverage.getElementsByTagName("walkietalkiecombo")[0].firstChild);
			}
		}
		
		//begin copy
		if (locNum == 0)
		{
			geoCenterX = locationNode.getElementsByTagName("geocodeCenterX")[0].firstChild.nodeValue;
			geoCenterY = locationNode.getElementsByTagName("geocodeCenterY")[0].firstChild.nodeValue;
			centerX = locationNode.getElementsByTagName("centerX")[0].firstChild.nodeValue;
			centerY = locationNode.getElementsByTagName("centerY")[0].firstChild.nodeValue;
			maptop = locationNode.getElementsByTagName("top")[0].firstChild.nodeValue;
			mapleft = locationNode.getElementsByTagName("left")[0].firstChild.nodeValue;
			mapright = locationNode.getElementsByTagName("right")[0].firstChild.nodeValue;
			mapbottom = locationNode.getElementsByTagName("bottom")[0].firstChild.nodeValue;
			scale = locationNode.getElementsByTagName("scale")[0].firstChild.nodeValue;

			var dataEl = respBody.getElementsByTagName("data")[0];
			if (dataEl != null)
			{
				coverageLevelCDMA = getTagValue(dataEl.getElementsByTagName("coverageQualityCDMA")[0].firstChild);
				coverageLevelIDEN = getTagValue(dataEl.getElementsByTagName("coverageQualityIDEN")[0].firstChild);
				showCovLevelDiscl = getTagValue(dataEl.getElementsByTagName("showSignalStrengthDisclaimer")[0].firstChild);
				covCDMA = getTagValue(dataEl.getElementsByTagName("CDMA")[0].firstChild);
				covIDEN = getTagValue(dataEl.getElementsByTagName("iDEN")[0].firstChild);
				covHybrid = getTagValue(dataEl.getElementsByTagName("hybrid")[0].firstChild);
				covEVDO = getTagValue(dataEl.getElementsByTagName("EVDO")[0].firstChild);
				covRoamCDMA = getTagValue(dataEl.getElementsByTagName("roamDigital")[0].firstChild);
				covRoamAnalog = getTagValue(dataEl.getElementsByTagName("roamAnalog")[0].firstChild);

			}

			document.getElementById("covaddr").innerHTML=dispAddr;
			document.getElementById("mapaddress").value=dispAddr;
			if (document.getElementById("covaddr1"))
				document.getElementById("covaddr1").innerHTML=dispAddr;
			currentCity=getTagValue(candidateAddr.getElementsByTagName("city")[0].firstChild)
			currentState=getTagValue(candidateAddr.getElementsByTagName("state")[0].firstChild);
			currentZip=getTagValue(candidateAddr.getElementsByTagName("zip")[0].firstChild);

		}
		//end copy

		locNum += 1;
	}

	for (locNum=0; locNum<addressCount; locNum++)
	{
		getCoverageLevelDiv(locNum);
	}

	showSearchResults();

	showLayer("comparepinpoint");
	setPageHeight();

	if (isRecenter)
	{
		//
		log("Nothing");
	}
	else
	{
		bShowPinpoint=true;
		geocodedAddr=true;
		addRecentSearch();
		resetResultLocations();
		if (invokeCompare)
		{
			log("calling doCompare in setupSearchResults");
			doCompare();
		}
		
		getMapImage();
		//Temporarily commented out during development
		log("calling omniture in setupSearchResults.");
		makeOmnitureCall('mapit');
	}
	

}

function resetResultLocations()
{
	for (ii=0; ii<addressCount; ii++)
	{
		if (ii==currentLocation)
		{
			showLayer("shown"+ii);
			hideLayer("show"+ii);
		}
		else
		{
			showLayer("show"+ii);
			hideLayer("shown"+ii);
		}
	}
}

function showLocation(locNum)
{
	currentLocation = locNum;
	for (ii=0; ii<addressCount; ii++)
	{
		if (ii==locNum)
		{
			showLayer("shown"+ii);
			hideLayer("show"+ii);
			document.getElementById("mapaddress").value=document.getElementById("location"+locNum).innerHTML;
			document.getElementById("covaddr1").innerHTML=document.getElementById("location"+locNum).innerHTML;
		}
		else
		{
			showLayer("show"+ii);
			hideLayer("shown"+ii);
		}
	}
	geoCenterX = mapCenterX[locNum];
	geoCenterY = mapCenterY[locNum];
	centerX = mapCenterX[locNum];
	centerY = mapCenterY[locNum];
	scale = mapScale[locNum];
	recenterMap(centerX,centerY);
}

function setupCandidatePopup(respBody)
{
	log("Called setupCandidatePopup()");

	toggleBusy(false);
	document.getElementById("candidateOverlayBack").style.left=0;
	document.getElementById("candidateOverlayBack").style.top=0;
	showLayer("candidateOverlayBack");
	showLayer("closeMatchPopup");
		
	candXML = respBody; //Storing dom for selecting candidate later?

	var locationNode;
 	var locsNode = respBody.getElementsByTagName("Locations")[0];
 	var locationNodes = locsNode.getElementsByTagName("location");
 	//var locNum = 0;
 	addressCount = locationNodes.length;

	for (locNum=0; locNum<3; locNum++)
	{
		//hide this row.
		hideLayer('loc'+locNum+'tr');
		hideLayer('loc'+locNum+'entered');
		for (candNum=0; candNum<3; candNum++)
		{
			document.getElementById('loc'+locNum+'cand'+candNum).checked = false;
		}
	}
	
	for (locNum=0; locNum < locationNodes.length; locNum++)
	{
		locationNode = locationNodes[locNum];
		if (locationNode.getElementsByTagName("candidateAddress").length > 1)
		{
			showLayer('loc'+locNum+'tr');
			showLayer('loc'+locNum+'entered');
			
			document.getElementById('loc'+locNum+'address').innerHTML=document.getElementById("fulladdress"+(locNum+1)).value;
			
			//Multiple candidates returned
			document.getElementById('loc'+locNum+'cand0td').style.display='none';
			document.getElementById('loc'+locNum+'cand1td').style.display='none';
			document.getElementById('loc'+locNum+'cand2td').style.display='none';

			//Check for candidate #2 (index 1) -- if so, present choices to user.
			var candidateAddr = locationNode.getElementsByTagName("candidateAddress")[0];

			var candNum=0;
			while (candidateAddr != null && candNum < 3)
			{
				var addrid = 'loc'+locNum+'cand'+candNum+'addr';
				var dispadr=getCandidateDisplayAddr(candidateAddr);
				document.getElementById(addrid).innerHTML=dispadr;
				document.getElementById('loc'+locNum+'cand'+candNum+'map').src=candidateAddr.getElementsByTagName("thumnailPath")[0].firstChild.nodeValue;
				document.getElementById('loc'+locNum+'cand'+candNum+'td').style.display="";
				//alert(candNum);

				candNum = parseInt(candNum) + 1;
				candidateAddr = locationNode.getElementsByTagName("candidateAddress")[candNum];
			}
		}
	}
}

function processSelectedCandidates()
{
	//Process the candidate selection modal form
	//If an optional address does not have a selected candidate, remove it and shift the next address up if present

	var respBody = candXML; //Storing dom for selecting candidate later?

	var locationNode;
 	var locsNode = respBody.getElementsByTagName("Locations")[0];
 	var locationNodes = locsNode.getElementsByTagName("location");
 	//var locNum = 0;
 	//addressCount = locationNodes.length;

	for (locNum=0; locNum < locationNodes.length; locNum++)
	{
		locationNode = locationNodes[locNum];
		if (locationNode.getElementsByTagName("candidateAddress").length > 1)
		{
			showLayer('loc'+locNum+'tr');
			showLayer('loc'+locNum+'entered');

			var candSelected = false;			
			var candidateAddr = locationNode.getElementsByTagName("candidateAddress")[0];
			var candNum=0;
			while (candidateAddr != null && candNum < 3)
			{
				var addrid = 'loc'+locNum+'cand'+candNum+'addr';
				var dispadr=getCandidateDisplayAddr(candidateAddr, true);
				
				//document.getElementById('loc'+locNum+'cand'+candNum+'map').src=candidateAddr.getElementsByTagName("thumnailPath")[0].firstChild.nodeValue;
				//document.getElementById('loc'+locNum+'cand'+candNum+'td').style.display="";
				//alert(candNum);
				if (document.getElementById('loc'+locNum+'cand'+candNum).checked)
				{
					candSelected=true;
					log('Selected candidate ' + candNum + ' for location ' + locNum + ':' + dispadr);
					document.getElementById('fulladdress'+(locNum+1)).value=dispadr;
				}
				//alert(document.getElementById('loc2cand0').checked)

				candNum = parseInt(candNum) + 1;
				candidateAddr = locationNode.getElementsByTagName("candidateAddress")[candNum];
			}
			
			if (candSelected == false)
			{
				document.getElementById('fulladdress'+(locNum+1)).value="";
				log("No candidate was selected for location " + locNum);
			}
		}
		else
		{
			log("No candidates for location " + locNum);
			var candidateAddr = locationNode.getElementsByTagName("candidateAddress")[0];
			var dispadr=getCandidateDisplayAddr(candidateAddr, true);
			document.getElementById('fulladdress'+(locNum+1)).value=dispadr;
		}
	}

	if (checkFields()) 
		geocodeAddress(this.form); 
}

function getCandidateDisplayAddr(candidateAddr, oneLine)
{
	if (!oneLine)
		oneLine = false;
		
	if (candidateAddr != null)
	{
		var street = getTagValue(candidateAddr.getElementsByTagName("street")[0].firstChild);
	 	var street2 = getTagValue(candidateAddr.getElementsByTagName("street2")[0].firstChild);
	 	if (street2 != null && street2 != "")
			street += " & " + street2;

		var addrStr = "";
		if (street != null && street != "")
		{
			addrStr += street;
			if (oneLine == false)
				addrStr += "<br/>";
			else
				addrStr += ", ";
		}

		if (getTagValue(candidateAddr.getElementsByTagName("city")[0].firstChild) != null)
		{
			addrStr += getTagValue(candidateAddr.getElementsByTagName("city")[0].firstChild);
		}

		if (getTagValue(candidateAddr.getElementsByTagName("state")[0].firstChild) != null)
		{
			if (addrStr != "")
				addrStr += ", ";
			addrStr += getTagValue(candidateAddr.getElementsByTagName("state")[0].firstChild);
		}

		if (getTagValue(candidateAddr.getElementsByTagName("zip")[0].firstChild) != null)
		{
			if (addrStr != "")
				addrStr += " ";
			addrStr += getTagValue(candidateAddr.getElementsByTagName("zip")[0].firstChild);
		}

		return addrStr;

	}
	else
		return "";
}

function readRecenterResponse(responseDoc)
{

  if (dodebug)
  {
	 log("Processing response....");
  }


 // Get the root element from the document

 var respBody = responseDoc.getElementsByTagName("impactwebds")[0];

 if (respBody != null)
 {

	if (respBody.getElementsByTagName("error")[0].firstChild != null)
	{
		var errormsg = respBody.getElementsByTagName("error")[0].firstChild.nodeValue;
	  if (dodebug)
	  {
		 log("Error message returned from servlet:" + errormsg);
	  }
		return;
	}

	var locationNode = respBody.getElementsByTagName("location")[0];
	if (selectCand == true)
	{
	   //Grab geocode center for selected candidate so pinpoint will show.
	   //alert("updating geocode center: " + geoCenterX + "," + geoCenterY );
		selectCand = false;
		geoCenterX = locationNode.getElementsByTagName("geocodeCenterX")[0].firstChild.nodeValue;
		geoCenterY = locationNode.getElementsByTagName("geocodeCenterY")[0].firstChild.nodeValue;
	}
	if (hasLatLong == true)
	{
		//Set geocodedAddr to true so pinpoint shows on the map.
		//Reset hasLatLong so we don't overwrite location every time we recenter the map.
		geocodedAddr=true;
		hasLatLong = false;
		document.getElementById("location0").innerHTML = getCandidateDisplayAddr(locationNode);
		addressCount=1;
		//test
		setupSearchResults(respBody, true);
		//end test
		/*
		if (addressCount == 1)
		{
			hideLayer("optionalLocs");
			hideLayer("optionalLoc1");
			hideLayer("optionalLoc1cov");
			hideLayer("optionalLoc2");
			hideLayer("optionalLoc2cov");
		}
		showSearchResults();
		
		document.getElementById("covaddr").innerHTML=getCandidateDisplayAddr(locationNode);
		if (document.getElementById("covaddr1"))
			document.getElementById("covaddr1").innerHTML=getCandidateDisplayAddr(locationNode);
		*/
	}
	centerX = locationNode.getElementsByTagName("centerX")[0].firstChild.nodeValue;
	centerY = locationNode.getElementsByTagName("centerY")[0].firstChild.nodeValue;
	maptop = locationNode.getElementsByTagName("top")[0].firstChild.nodeValue;
	mapleft = locationNode.getElementsByTagName("left")[0].firstChild.nodeValue;
	mapright = locationNode.getElementsByTagName("right")[0].firstChild.nodeValue;
	mapbottom = locationNode.getElementsByTagName("bottom")[0].firstChild.nodeValue;
	scale = locationNode.getElementsByTagName("scale")[0].firstChild.nodeValue;
	imgPath = respBody.getElementsByTagName("map_imagefilepath")[0].firstChild.nodeValue;

	var dataEl = respBody.getElementsByTagName("data")[0];
	if (dataEl != null)
	{
		coverageLevelCDMA = getTagValue(dataEl.getElementsByTagName("coverageQualityCDMA")[0].firstChild);
		coverageLevelIDEN = getTagValue(dataEl.getElementsByTagName("coverageQualityIDEN")[0].firstChild);
		showCovLevelDiscl = getTagValue(dataEl.getElementsByTagName("showSignalStrengthDisclaimer")[0].firstChild);
		covCDMA = getTagValue(dataEl.getElementsByTagName("CDMA")[0].firstChild);
		covIDEN = getTagValue(dataEl.getElementsByTagName("iDEN")[0].firstChild);
		covHybrid = getTagValue(dataEl.getElementsByTagName("hybrid")[0].firstChild);
		covEVDO = getTagValue(dataEl.getElementsByTagName("EVDO")[0].firstChild);
		covRoamCDMA = getTagValue(dataEl.getElementsByTagName("roamDigital")[0].firstChild);
		covRoamAnalog = getTagValue(dataEl.getElementsByTagName("roamAnalog")[0].firstChild);

		var bestCoverage = dataEl.getElementsByTagName("bestCoverage")[0];
		if (bestCoverage != null)
		{
			covvoicesprint[currentLocation] = getTagValue(bestCoverage.getElementsByTagName("voicesprint")[0].firstChild);
			covvoicenextel[currentLocation] = getTagValue(bestCoverage.getElementsByTagName("voicenextel")[0].firstChild);
			covvoicecombo[currentLocation] = getTagValue(bestCoverage.getElementsByTagName("voicecombo")[0].firstChild);
			covdatasprint[currentLocation] = getTagValue(bestCoverage.getElementsByTagName("datasprint")[0].firstChild);
			covdatanextel[currentLocation] = getTagValue(bestCoverage.getElementsByTagName("datanextel")[0].firstChild);
			covdatacombo[currentLocation] = getTagValue(bestCoverage.getElementsByTagName("datacombo")[0].firstChild);
			covdatawimax[currentLocation] = getTagValue(bestCoverage.getElementsByTagName("datawimax")[0].firstChild);
			covwalkietalkiesprint[currentLocation] = getTagValue(bestCoverage.getElementsByTagName("walkietalkiesprint")[0].firstChild);
			covwalkietalkienextel[currentLocation] = getTagValue(bestCoverage.getElementsByTagName("walkietalkienextel")[0].firstChild);
			covwalkietalkiecombo[currentLocation] = getTagValue(bestCoverage.getElementsByTagName("walkietalkiecombo")[0].firstChild);
		}
	}

	getMapImage();
  }
  else
  {
     if (dodebug)
     {
        log("root element is null -- " + responseDoc.doctype);
     }
  }

}

function getMapImageURL(selectedDrawer, selectedTab, imgWidth, imgHeight)
{
    if (imgPath == "")
    	return;

    var bTemp = false;
    var fSprint = 'F';
    var fiDEN = 'F';
    var fCombo = 'F';
    var fEVDO = 'F';
    var fCDMARoam = 'F';
    var fMCities = "F";
    var fMHighways = "F";
    var fDigitalVoiceRoam = "F";
    var fStreets = "F";
    var fRoads = "F";
    var fRoadNames = "F";
    var fIDENTower = "F";
    var fCDMATower = "F";
    var fFutIDENTower = "F";
    var fFutCDMATower = "F";
    //E3316 var fFutEVDOTower = "F";
    //E3316
    var fPowerSourceRoam = "F";
    var fEVDORoam = "F";
    var fSRAEVDO = "F";
    var fDataonlyRoam = "F";
    var f1XDataRoam = "F";
    var fEVDODataRoam = "F";
	 var fSRA = "F";
    var fAffiliate = "F";
    var fAffiliateData = "F";
    var showSignalStrength = "T";
    var fSprintDirect = "F";
    var f4G = "F";

    //Omniture tracking vars
    s_prop33="";
    s_prop34="";

    if (selectedDrawer == "voice" && selectedTab == "sprint")
    {
      s_prop33="Sprint Voice Coverage";
      fSprint = 'T';
		fSRA = 'T';
		fAffiliate = 'T';
      fCDMARoam = 'T';
      fDigitalVoiceRoam = 'T';
      bTemp = document.getElementById("chkRecentTower").checked;
      if (bTemp)
      {
       fCDMATower = 'T';
       s_prop34 = append(s_prop34,"Recent Coverage Additions");
      }
      bTemp = document.getElementById("chkFutureTower").checked;
      if (bTemp)
      {
       fFutCDMATower = 'T';
       s_prop34 = append(s_prop34,"Upcoming Coverage Improvements");
      }
    }
    else if (selectedDrawer == "voice" && selectedTab == "nextel")
    {
      s_prop33="Nextel Coverage";
      fiDEN = 'T';
      bTemp = document.getElementById("chkRecentTower").checked;
      if (bTemp)
      {
       fIDENTower = 'T';
       s_prop34 = append(s_prop34,"Recent Coverage Additions");
      }
      bTemp = document.getElementById("chkFutureTower").checked;
      if (bTemp)
      {
         fFutIDENTower = 'T';
         s_prop34 = append(s_prop34,"Upcoming Coverage Improvements");
      }

    }
    else if (selectedDrawer == "voice" && selectedTab == "combo")
    {
      s_prop33="PowerSource Coverage";
      //fCombo = 'T';
      fSprint = 'T';
		fSRA = 'T';
		fAffiliate = 'T';
      //E3316 fDigitalVoiceRoam = 'T';
      //E3316
      fPowerSourceRoam = 'T';

      bTemp = document.getElementById("chkRecentTower").checked;
      if (bTemp)
      {
       fCDMATower = 'T';
       s_prop34 = append(s_prop34,"Recent Coverage Additions");
      }
      bTemp = document.getElementById("chkFutureTower").checked;
      if (bTemp)
      {
       fFutCDMATower = 'T';
       s_prop34 = append(s_prop34,"Upcoming Coverage Improvements");
      }
    }
    else if (selectedDrawer == "data" && selectedTab == "sprint")
    {
      s_prop33="Sprint Data Coverage";
      fEVDO = 'T'; //EVDO
      fSprint = 'T'; //sprint 1x layer
		fAffiliateData = 'T';
    	fSRAEVDO= 'T';  //Does not launch until 1Q08
    	fEVDORoam = 'T';
    	fDataonlyRoam = 'T';
      showSignalStrength = 'F';

      bTemp = document.getElementById("chkRecentTower").checked;
      if (bTemp)
      {
       fCDMATower = 'T';
       s_prop34 = append(s_prop34,"Recent Coverage Additions");
      }
      bTemp = document.getElementById("chkFutureTower").checked;
      if (bTemp)
      {
       fFutCDMATower = 'T';
       //E3316 fFutEVDOTower = 'T';
       s_prop34 = append(s_prop34,"Upcoming Coverage Improvements");
      }
    }
    else if (selectedDrawer == "data" && selectedTab == "nextel")
    {
      s_prop33="Nextel Data Coverage";
      fiDEN = 'T';
      showSignalStrength = 'F';
      bTemp = document.getElementById("chkRecentTower").checked;
      if (bTemp)
      {
       fIDENTower = 'T';
       s_prop34 = append(s_prop34,"Recent Coverage Additions");
      }
      bTemp = document.getElementById("chkFutureTower").checked;
      if (bTemp)
      {
         fFutIDENTower = 'T';
         s_prop34 = append(s_prop34,"Upcoming Coverage Improvements");
      }
    }
    else if (selectedDrawer == "data" && selectedTab == "combo")
    {
      s_prop33="Sprint Data Coverage";
      fEVDO = 'T'; //EVDO
    	fSRAEVDO= 'T';  //Does not launch until 1Q08
      fSprint = 'T'; //sprint 1x layer
		fAffiliateData = 'T';
    	f1XDataRoam = "T";
    	fEVDODataRoam = "T";
      showSignalStrength = 'F';

      bTemp = document.getElementById("chkRecentTower").checked;
      if (bTemp)
      {
       fCDMATower = 'T';
       fIDENTower = 'T';
       s_prop34 = append(s_prop34,"Recent Coverage Additions");
      }
      bTemp = document.getElementById("chkFutureTower").checked;
      if (bTemp)
      {
       fFutCDMATower = 'T';
       //E3316 fFutEVDOTower = 'T';
       fFutIDENTower = 'T';
       s_prop34 = append(s_prop34,"Upcoming Coverage Improvements");
      }
    }
    else if (selectedDrawer == "data" && selectedTab == "wimax")
    {
      s_prop33="Sprint Data Coverage with 4G";
      f4G = 'T'; //4G/WiMAX
      fEVDO = 'T'; //EVDO
      fSprint = 'T'; //sprint 1x layer
		fAffiliateData = 'T';
    	fSRAEVDO= 'T';  //Does not launch until 1Q08
    	fEVDORoam = 'T';
    	fDataonlyRoam = 'T';
      showSignalStrength = 'F';

      bTemp = document.getElementById("chkRecentTower").checked;
      if (bTemp)
      {
       fCDMATower = 'T';
       s_prop34 = append(s_prop34,"Recent Coverage Additions");
      }
      bTemp = document.getElementById("chkFutureTower").checked;
      if (bTemp)
      {
       fFutCDMATower = 'T';
       //E3316 fFutEVDOTower = 'T';
       s_prop34 = append(s_prop34,"Upcoming Coverage Improvements");
      }
    }
    else if (selectedDrawer == "walkietalkie" && selectedTab == "sprint")
    {
      s_prop33="Sprint Direct Connect Coverage";
      fSprintDirect = 'T';
      bTemp = document.getElementById("chkRecentTower").checked;
      if (bTemp)
      {
       fCDMATower = 'T';
       s_prop34 = append(s_prop34,"Recent Coverage Additions");
      }
      bTemp = document.getElementById("chkFutureTower").checked;
      if (bTemp)
      {
         fFutCDMATower = 'T';
         s_prop34 = append(s_prop34,"Upcoming Coverage Improvements");
      }
    }
    else if (selectedDrawer == "walkietalkie" && selectedTab == "nextel")
    {
      s_prop33="Nextel Direct Connect Coverage";
      fiDEN = 'T';
      bTemp = document.getElementById("chkRecentTower").checked;
      if (bTemp)
      {
       fIDENTower = 'T';
       s_prop34 = append(s_prop34,"Recent Coverage Additions");
      }
      bTemp = document.getElementById("chkFutureTower").checked;
      if (bTemp)
      {
         fFutIDENTower = 'T';
         s_prop34 = append(s_prop34,"Upcoming Coverage Improvements");
      }
    }
    else if (selectedDrawer == "walkietalkie" && selectedTab == "combo")
    {
      s_prop33="Nextel Power Source Coverage";
      fiDEN = 'T';
      bTemp = document.getElementById("chkRecentTower").checked;
      if (bTemp)
      {
       fIDENTower = 'T';
       s_prop34 = append(s_prop34,"Recent Coverage Additions");
      }
      bTemp = document.getElementById("chkFutureTower").checked;
      if (bTemp)
      {
         fFutIDENTower = 'T';
         s_prop34 = append(s_prop34,"Upcoming Coverage Improvements");
      }
    }


    bTemp = document.getElementById("chkCities").checked;
    if (bTemp)
    {
       fMCities = 'T';
    }

    //Set appropriate default for secondary highways
    if (scale >=250)
    {
    	fMHighways = 'F';
    }
    else
    {
      fMHighways = 'T';
    }
    //Should only look at the checkbox for 500 & 250 miles
    bTemp = document.getElementById("chkHighways").checked;
    if (bTemp && (scale == 250 || scale == 500))
    {
       fMHighways = 'T';
    }
    //alert ("scale" + scale + ", highways:" + fMHighways);
    if (scale == 50)
    {
		 bTemp = document.getElementById("chkRoads").checked;
		 if (bTemp)
		 {
			 fRoads = 'T';
		 }
	 }
    if (scale < 50)
    {
		fRoads = 'T';
	 }
	 if ((scale == 5) || (scale == 3))
	 {
		 bTemp = document.getElementById("chkRoadNames").checked;
		 if (bTemp)
		 {
			 fRoadNames = 'T';
		 }
	 }
	 if (scale < 2)
	 {
      bTemp = document.getElementById("chkStreets").checked;
      if (bTemp)
      {
        fStreets = 'T';
      }
    }


	 fShowPinpoint='F';
	 if (geocodedAddr == true)
	 {
	 	fShowPinpoint='T';
	 }

 	 var urlString = imgPath + "covType=" + selectedTab
 		+ "&mapcenterx=" + centerX + "&mapcentery=" + centerY
 		+ "&geocenterx=" + geoCenterX + "&geocentery=" + geoCenterY
 		+ "&endlinex=&endliney=&scale=" + scale
 		+ "&width=" + imgWidth + "&height=" + imgHeight
 		+ "&showPinpoint=" + fShowPinpoint
 		+ "&signalStrength=" + showSignalStrength
 		+ "&antiAlias=" + doAntiAlias
 		+ "&layers=" + fSprint
 						 + fiDEN
 						 + fCombo
 						 + fDigitalVoiceRoam
 						 + fEVDO
 						 + fCDMARoam
 						 + fMCities
 						 + fMHighways
 						 + fRoads
 						 + fRoadNames
 						 + fCDMATower
 						 + fIDENTower
 						 + fStreets
 						 + fFutCDMATower
 						 + fFutIDENTower
 						 //E3316 + fFutEVDOTower
 						 + fPowerSourceRoam
						 + fEVDORoam
						 + fSRAEVDO
						 + fDataonlyRoam
						 + f1XDataRoam
						 + fEVDODataRoam
						 + fSRA
						 + fAffiliate
						 + fAffiliateData
						 + fSprintDirect
						 + f4G
 						 ;
						 //+ fEVDO //E3315 project Rev 0 -- descoped

/*
        boolean showCurrentCoverage  = false; //1
        boolean showIDENCoverage     = false; //2
        boolean showHybridCoverage   = false; //3
        boolean showDigitalVoiceRoam = false; //4 //was formerly call hybrid_roaming
        boolean showEVDO             = false; //5
        boolean showDigitalRoaming   = false; //6
        boolean showMajorCities      = false; //7
        boolean showSecondaryHighways = false; //8
        boolean showRoads            = false; //9
        boolean showRoadNames        = false; //10
        boolean showCDMATower        = false; //11
        boolean showIDENTower        = false; //12
        boolean showStreets          = false; //13
        boolean showCDMAFutTower     = false; //14
        boolean showIDENFutTower     = false; //15
        boolean showREVAFutTower     = false; //16
        boolean showEVDORoam         = false; //17
        boolean showSRAEVDO          = false; //18
        boolean showDataRoaming      = false; //19
        boolean show19001XDataRoam   = false; //20
        boolean show1900EVDODataRoam = false; //21
*/

	return urlString;
}


// The getMapImage function should only be called after making the xml call to update the field variables.
// If this is not done, the variables will get out of sync with the map and subsequent actions will have
// unpredictable results.
// Version for PNCT2.0 - E2630
function getMapImage()
{
    if (imgPath == "")
    	return;

    toggleBusy(true);
	 updatePageforZoom();

	urlString = getMapImageURL(selectedDrawer, selectedTab, imgWidth, imgHeight);

  if (dodebug)
  {
   	document.getElementById("frmImpact2").txtStatus.value = "Loading image: " + urlString;
   	log("Loading image: " + urlString);
  }

  //Reset map image to static map when zooming all the way out.
  if (scale == zoomLevels[0])
  {
  		//Temporarily commented out to generate static map
		urlString = staticMapFile + "US.gif";
  		log("scale:" + scale + ", zoomlevels[0]:" + zoomLevels[0] + ", switching to static map:" + urlString);
  }
  //log("mapimg src before:" + document.getElementById("mapimg").src);
  //if (document.getElementById("mapimg").src==urlString)
  //{
  //		log("mapimg src = urlString, setting busy to false");
  //		toggleBusy(false);
  //}
  document.getElementById("mapimg").src=urlString;
  document.getElementById("mapimgurl").value=urlString;
  
  //updatePinpoint();
  showScale();

  //make omniture call
  //With new omniture code, they want us to call omniture when changing tabs
  // instead of every time map image is requested.
  //log("calling omniture in getMapImage:" + selectedDrawer + "," + selectedTab);
  //makeOmnitureCall('coverage');
  //Analytics.CovTool.coverageDevice(selectedDrawer, selectedTab);
}


//Recenters map when clicking on it.
function doRecenterClick(obj,evt)
{

  var offsetX = 0;
  var offsetY = 0;

  if (imgPath == "")
  	return;

	var objoffset = getposOffset(document.getElementById("mapimg"),"top") ;
	if (objoffset == null) return;
	var objoffsetx = getposOffset(document.getElementById("mapimg"),"left") ;
	if (objoffsetx == null) return;
	var mouseOffset = getMouseOffset(evt);
	var mouseOffsetx = getMouseOffsetX(evt);
	offsetX = mouseOffsetx - objoffsetx;
	offsetY = mouseOffset - objoffset;

/*
//Code copied from servlet
// min y is located in the extreme south
double yDeg_per_pixel = (drMapBounds.ymax - drMapBounds.ymin) / imgHeight;
double yDelta = yDeg_per_pixel * (imgHeight - convertStringToDouble(loc.sImgY, cp.sLog));
float fNewCenterY = (float) (drMapBounds.ymin + yDelta);

// min x is located in the extreme west
double xDeg_per_pixel = (drMapBounds.xmax - drMapBounds.xmin) / imgWidth;
double xDelta = xDeg_per_pixel * convertStringToDouble(loc.sImgX, cp.sLog);
float fNewCenterX = (float) (drMapBounds.xmin + xDelta);
*/

  //alert(offsetX + "," + offsetY);
  oldCenterX = centerX;
  oldCenterY = centerY;
  //imgWidth = document.getElementById("mapimg").width;
  //imgHeight = document.getElementById("mapimg").height;
  scaleWidth = Math.abs(Math.abs(mapright) - Math.abs(mapleft));
  scaleHeight = Math.abs(Math.abs(maptop) - Math.abs(mapbottom));
  degPerPixX = scaleWidth / (imgWidth);
  degPerPixY = scaleHeight / (imgHeight);
  xDelta = degPerPixX * parseFloat(offsetX);
  yDelta = degPerPixY * (parseFloat(imgHeight) - parseFloat(offsetY));
  centerX = parseFloat(mapleft) + xDelta;
  centerY = parseFloat(mapbottom) + yDelta;
  /*
  alert("oldCenterX:" + oldCenterX
  	+ "\noldCenterY:" + oldCenterY
  	+ "\nimgWidth:  " + imgWidth
  	+ "\nimgHeight: " + imgHeight
  	+ "\ndegPerPixX:" + degPerPixX
  	+ "\ndegPerPixY:" + degPerPixY
  	+ "\nxDelta:    " + xDelta
  	+ "\nyDelta:    " + yDelta
  	+ "\nnewCenterX:" + centerX
  	+ "\nnewCenterY:" + centerY
  	+ "\nscale:    :" + scale);
  */
  recenterMap(centerX, centerY);
  //zoomIn();
  bShowPinpoint=false;
  showScale();
}

//New function to recenter map after dragging.
function doRecenter(offsetX,offsetY)
{
  if (imgPath == "")
  	return;

  //alert(offsetX + "," + offsetY);
  oldCenterX = centerX;
  oldCenterY = centerY;
  scaleWidth = Math.abs(Math.abs(mapright) - Math.abs(mapleft));
  scaleHeight = Math.abs(Math.abs(maptop) - Math.abs(mapbottom));
  degPerPixX = scaleWidth / (imgWidth);
  degPerPixY = scaleHeight / (imgHeight);
  xDelta = degPerPixX * parseFloat(offsetX);
  yDelta = degPerPixY * parseFloat(offsetY);
  centerX = parseFloat(oldCenterX) - xDelta;
  centerY = parseFloat(oldCenterY) + yDelta;
  log("imgWidth:" + imgWidth + ",imgHeight:" + imgHeight + ",degPerPixX:" + degPerPixX + ",degPerPixY:" + degPerPixY);
  log("x delta:" + xDelta + ", y delta:" + yDelta);
  //alert("old:" + oldCenterX + "," + oldCenterY + " - new: " + centerX + "," + centerY);
  recenterMap(centerX, centerY);
  //zoomIn();
  bShowPinpoint=false;
  showScale();
}

function recenterMap(centerX, centerY)
{

  // Obtain an XMLHttpRequest instance
  var req = newXMLHttpRequest();

  // Set the handler function to receive callback notifications
  // from the request object
  var handlerFunction = getReadyStateHandler(req, readRecenterResponse);
  req.onreadystatechange = handlerFunction;

  // Open an HTTP POST connection to the shopping cart servlet.
  // Third parameter specifies request is asynchronous.
  req.open("POST", dataservlet, true);

  // Specify that the body of the request contains form data
  req.setRequestHeader("Content-Type",
                       "application/x-www-form-urlencoded");

  var urlString = "mapAction=recenter"
  		+ "&covType=" + activeTab
		+ "&scale=" + scale
  		+ "&width=" + imgWidth
  		+ "&height=" + imgHeight
  		+ "&geocodeCenterX=" + geoCenterX
  		+ "&geocodeCenterY=" + geoCenterY
  		+ "&centerX=" + centerX
  		+ "&centerY=" + centerY;

  if (dodebug)
  {
  	 log("Calling " + dataservlet + "?" + urlString);
  }

  req.send(urlString);

  //MCW commented out so busy div does not show until we load an image
  toggleBusy(true);
  //MCW - for now leave on so we can test pinpoint updates
  //bShowPinpoint=false;
  hidePinpoint();
  if (dodebug)
  {
    log("Sending request....");
  }
  return;
}

function centerOnLocation(centerX, centerY)
{

	//Set geoCenter X and Y or the pinpoint will be in the default X,Y
	geoCenterX = centerX;
	geoCenterY = centerY;

  // Obtain an XMLHttpRequest instance
  var req = newXMLHttpRequest();

  // Set the handler function to receive callback notifications
  // from the request object
  var handlerFunction = getReadyStateHandler(req, readRecenterResponse);
  req.onreadystatechange = handlerFunction;

  // Open an HTTP POST connection to the shopping cart servlet.
  // Third parameter specifies request is asynchronous.
  req.open("POST", dataservlet, true);

  // Specify that the body of the request contains form data
  req.setRequestHeader("Content-Type",
                       "application/x-www-form-urlencoded");

  var urlString = "mapAction=center"
  		+ "&covType=" + activeTab
		+ "&scale=" + scale
  		+ "&width=" + imgWidth
  		+ "&height=" + imgHeight
  		+ "&geocodeCenterX=" + geoCenterX
  		+ "&geocodeCenterY=" + geoCenterY
  		+ "&centerX=" + centerX
  		+ "&centerY=" + centerY;

  if (dodebug)
  {
  	 log("Calling " + dataservlet + "?" + urlString);
  }

  req.send(urlString);

  //MCW commented out so busy div does not show until we load an image
  toggleBusy(true);
  //MCW - for now leave on so we can test pinpoint updates
  //bShowPinpoint=false;
  hidePinpoint();
  if (dodebug)
  {
    log("Sending request....");
  }
  return;
}


function doPan(direction)
{
	if (scale == zoomLevels[0]) return;

  // Obtain an XMLHttpRequest instance
  var req = newXMLHttpRequest();

  // Set the handler function to receive callback notifications
  // from the request object
  var handlerFunction = getReadyStateHandler(req, readRecenterResponse);
  req.onreadystatechange = handlerFunction;

  // Open an HTTP POST connection to the data servlet.
  // Third parameter specifies request is asynchronous.
  req.open("POST", dataservlet, true);

  // Specify that the body of the request contains form data
  req.setRequestHeader("Content-Type",
                       "application/x-www-form-urlencoded");

  paramData = "mapAction=pan"
  		+ "&covType=" + activeTab
  		+ "&pan_dir=" + direction
  		+ "&scale=" + scale
  		+ "&width=" + imgWidth
  		+ "&height=" + imgHeight
  		+ "&geocodeCenterX=" + geoCenterX
  		+ "&geocodeCenterY=" + geoCenterY
  		+ "&centerX=" + centerX
  		+ "&centerY=" + centerY;

  req.send(paramData);
  if (dodebug)
  {
	 log("Sending request:" + paramData);
  }

  toggleBusy(true);
  bShowPinpoint = false;
  hidePinpoint();
}


function zoomIn()
{
	var currentZoom = -1;
	for (i=0;i<12;i++)
	{
		if (zoomLevels[i] == scale)
			currentZoom = i;
	}
	//alert("Current zoom,scale:" + currentZoom + "," + scale);
	if (currentZoom < 11)
	{
		//scale = zoomLevels[parseInt(currentZoom)+1];
	}
	else
	{
		return;
	}

   zooming = true;
   setZoom(parseInt(currentZoom)+1);
}

function zoomOut()
{
    //alert("zoomout");
	var currentZoom = -1;
	for (i=0;i<12;i++)
	{
		if (zoomLevels[i] == scale)
			currentZoom = i;
	}
	//alert("Current zoom,scale:" + currentZoom + "," + scale);
	if (currentZoom > 0)
	{
		//scale = zoomLevels[parseInt(currentZoom)-1];
	}
	else
	{
		return;
	}

   zooming = true;
   //document.getElementById("txtZoomLevel").value = Math.round(scale);
   setZoom(parseInt(currentZoom)-1);
}

function setZoom(level)
{
	//TODO: because of click and zoom, this is breaking the recenter.. need to also
	//check to see if centerx,centery have changed.
   //make sure zoom level is changing
   if (scale == zoomLevels[level])
   {
   	  //alert( "Requested zoom level:" + zoomLevels[level] );
      //alert("zoom unchanged, returning.");
   	  return;
   }

	currentLevel = level;
   zooming = true;
   //alert( "Requested zoom level:" + zoomLevels[level] );

   scale = zoomLevels[level];//level;
   //document.getElementById("txtZoomLevel").value = Math.round(zoomLevels[level]);
   syncZoomSlider(level);

	if (level == 0)
	{
		//Reset x,y, change to static map, clear mapped address
		centerX = defaultX;
		centerY = defaultY;
		document.getElementById("covaddr").innerHTML="";
		document.getElementById("covaddr1").innerHTML="";
		hideSearchResults();
	}
   zoomMap();
}

function zoomMap()
{

	//Call recenterMap, which will use the new scale to get a new image at the same centerX, centerY
	recenterMap(centerX, centerY);


	//was calling this, but it did not update the field variables, so subsequent pans used old map bounds!
	//getMapImage();
}

function updatePageforZoom()
{
	var level;
	for (i=0;i<12;i++)
	{
		if (zoomLevels[i] == scale)
		{
			level = i;
		}
	}

	syncZoomSlider(level);

  if (scale == zoomLevels[0])
  {
  		document.getElementById('comparevoice').style.display='none';
 		document.getElementById('comparedata').style.display='none';
  		document.getElementById('comparewalkietalkie').style.display='none';
  		clear_form();
		showLayer("mapAK");
		showLayer("mapHI");
		showLayer("mapPR");
		hideLayer("printcontrol");

		//log("Setting cursor to arrow");
		//document.getElementById('mapimg').style.cursor='arrow';
  }
  else
  {
  		document.getElementById('comparevoice').style.display='';
  		//Compare link is suppressed when showing wimax tab (Sprint devices with 4G)
  		if (selectedTab == "wimax")
  			document.getElementById('comparedata').style.display='none';
  		else
  			document.getElementById('comparedata').style.display='';
  		document.getElementById('comparewalkietalkie').style.display='';
		hideLayer("mapAK");
		hideLayer("mapHI");
		hideLayer("mapPR");
		showLayer("printcontrol");

		//log("Setting cursor to pointer");
		//document.getElementById('mapimg').style.cursor='move';
  }

	//alert(activeTab + "," + scale);
	document.getElementById('MajorCities').style.display='';
	document.getElementById('SecondaryRoads').style.display='none';
	document.getElementById('MajorRoads').style.display='none';
	document.getElementById('MajorRoadNames').style.display='none';
	document.getElementById('Streets').style.display='none';

	if ((scale == 500) || (scale == 250))
	{
		document.getElementById('MajorCities').style.display='';
		document.getElementById('SecondaryRoads').style.display='';
		document.getElementById('MajorRoads').style.display='none';
		document.getElementById('MajorRoadNames').style.display='none';
		document.getElementById('Streets').style.display='none';
	}
	if (scale == 50)
	{
		document.getElementById('MajorCities').style.display='';
		document.getElementById('SecondaryRoads').style.display='none';
		document.getElementById('MajorRoads').style.display='';
		document.getElementById('MajorRoadNames').style.display='none';
		document.getElementById('Streets').style.display='none';
	}
	if ((scale == 5) || (scale == 3))
	{
		document.getElementById('MajorCities').style.display='none';
		document.getElementById('SecondaryRoads').style.display='none';
		document.getElementById('MajorRoads').style.display='none';
		document.getElementById('MajorRoadNames').style.display='';
		document.getElementById('Streets').style.display='none';
	}
	if (scale < 3)
	{
		document.getElementById('MajorCities').style.display='none';
		document.getElementById('SecondaryRoads').style.display='none';
		document.getElementById('MajorRoads').style.display='none';
		document.getElementById('MajorRoadNames').style.display='none';
		document.getElementById('Streets').style.display='';
	}

	if (scale < 51)
	{
		document.getElementById('toweropt').style.display='';
	}
	else
	{
		document.getElementById('toweropt').style.display='none';
	}
	
	updateLegendForZoom();
	highlightCoverageLevel();

	setPageHeight();
}

function updateLegendForZoom()
{
	if (scale < 51)
	{
		//showLayer('toweropt');//.style.display='';

		showLegendDiv('sprintvoicequalitymeter');//.style.display='';
		showLegendDiv('nextelvoicequalitymeter');//.style.display='';
		showLegendDiv('combovoicequalitymeter');//.style.display='';
		showLegendDiv('walkietalkiesprintqualitymeter');//.style.display='';
		showLegendDiv('walkietalkiesprintqualitymeter1');//.style.display='';
		showLegendDiv('walkietalkienextelqualitymeter');//.style.display='';
		showLegendDiv('walkietalkienextelqualitymeter1');//.style.display='';
		showLegendDiv('walkietalkiecomboqualitymeter');//.style.display='';
		showLegendDiv('walkietalkiecomboqualitymeter1');//.style.display='';

		hideLegendDiv('sprintvoiceprimary');//.style.display='none';
		hideLegendDiv('sprintvoiceprimaryc');//.style.display='none';
		hideLegendDiv('nextelvoiceprimary');//.style.display='none';
		hideLegendDiv('nextelvoiceprimary1');//.style.display='none';
		hideLegendDiv('combovoiceprimary');//.style.display='none';
		hideLegendDiv('combovoiceprimary1');//.style.display='none';
		hideLegendDiv('sprintwalkietalkieprimary');//.style.display='none';
		hideLegendDiv('sprintwalkietalkieprimary1');//.style.display='none';
		hideLegendDiv('nextelwalkietalkieprimary');//.style.display='none';
		hideLegendDiv('nextelwalkietalkieprimary1');//.style.display='none';
		hideLegendDiv('combowalkietalkieprimary');//.style.display='none';
		hideLegendDiv('combowalkietalkieprimary1');//.style.display='none';
	}
	else
	{
		//hideLayer('toweropt');//.style.display='none';

		showLegendDiv('sprintvoiceprimary');//.style.display='';
		showLegendDiv('sprintvoiceprimaryc');//.style.display='';
		showLegendDiv('nextelvoiceprimary');//.style.display='';
		showLegendDiv('nextelvoiceprimaryc');//.style.display='';
		showLegendDiv('combovoiceprimary');//.style.display='';
		showLegendDiv('combovoiceprimary1');//.style.display='';
		showLegendDiv('sprintwalkietalkieprimary');//.style.display='';
		showLegendDiv('sprintwalkietalkieprimary1');//.style.display='';
		showLegendDiv('nextelwalkietalkieprimary');//.style.display='';
		showLegendDiv('nextelwalkietalkieprimary1');//.style.display='';
		showLegendDiv('combowalkietalkieprimary');//.style.display='';
		showLegendDiv('combowalkietalkieprimary1');//.style.display='';

		hideLegendDiv('sprintvoicequalitymeter');//.style.display='none';
		hideLegendDiv('sprintvoicequalitymeterc');//.style.display='none';
		hideLegendDiv('nextelvoicequalitymeter');//.style.display='none';
		hideLegendDiv('nextelvoicequalitymeterc');//.style.display='none';
		hideLegendDiv('combovoicequalitymeter');//.style.display='none';
		hideLegendDiv('combovoicequalitymeter1');//.style.display='none';
		hideLegendDiv('walkietalkiesprintqualitymeter');//.style.display='none';
		hideLegendDiv('walkietalkiesprintqualitymeter1');//.style.display='none';
		hideLegendDiv('walkietalkienextelqualitymeter');//.style.display='none';
		hideLegendDiv('walkietalkienextelqualitymeter1');//.style.display='none';
		hideLegendDiv('walkietalkiecomboqualitymeter');//.style.display='none';
		hideLegendDiv('walkietalkiecomboqualitymeter1');//.style.display='none';

	}
}

function recenterLastAddress()
{
	if (geocodedAddr == false)
		return;

	if (centerX != geoCenterX || centerY != geoCenterY)
	{
		centerX=geoCenterX;
		centerY=geoCenterY;
		recenterMap(centerX, centerY);
	}

	bShowPinpoint=true;
	//updatePinpoint();
}

function toggleAddrVisible(addrDiv, visibility)
{
	//addrVisible = !addrVisible;
	addrVisible = visibility;
	if (addrVisible)
	{
	   if (PinpointFlag)
	      minimizePinpoint();
	   else
	     hidePinpoint();
	   //document.getElementById("error_msg").style.display='none';
		addrDiv.style.visibility='visible';
		//document.getElementById("mapstreet").focus();
		//document.getElementById("mapstreet").select();
	}
	else
	{
		addrDiv.style.visibility='hidden';
	}

	return;
}

function toggleBusy(vis)
{
	var busy = document.getElementById("busy");
	if (busy == null)
		return;
	//alert(document.getElementById("busy").style.visibility);
	if (vis)
	{
		//toggleAddrVisible(document.getElementById('addrForm'), false);
		//alert('show pinpoint: ' + bShowPinpoint);
		//if (bShowPinpoint)
		//	showPinpoint();
		hidePinpoint();
		busy.style.visibility='visible';
		if (useBusyTimer)
		{
			if (checkBusyId!=null)
			{
				log("toggleBusy clearing checkBusy interval.");
				clearInterval(checkBusyId);
			}
			log("*** toggleBusy setting checkBusy interval.:" + checkDelayms[currentLevel] + ", currentLevel=" + currentLevel);
			checkBusyId = setInterval(checkBusy, checkDelayms[currentLevel]);
		}

	}
	else
	{
		//log("toggleBusy setting div to hidden.");
		busy.style.visibility='hidden';
		if (checkBusyId!=null)
		{
			//log("toggleBusy clearing checkBusy interval.");
			clearInterval(checkBusyId);
		}
	}
	//alert(document.getElementById("busy").style.visibility);
}

function checkBusy()
{
	//log("checkbusy starting..");
	var busy = document.getElementById("busy");
	if (busy == null)
	{
		log("body div not located.");
		//alert(document.getElementById("busy").style.visibility);
		return;
	}

	if (busy.style.visibility=='visible')
	{
		log("** checkBusy calling onMapLoad()");
		//toggleBusy(false);
		onMapLoad();
	}

}

	function showSearchResults()
	{
		hideLayer("error_msg");//document.getElementById("error_msg").style.display='none';
		document.getElementById('complete_info').style.display='none';
		//document.getElementById('map_opt').style.display='none';
		//tmp
		document.getElementById('searchResults').style.display='';
		setPageHeight();
	}
	function hideSearchResults()
	{
		hideLayer("error_msg");//document.getElementById("error_msg").style.display='none';
		document.getElementById('complete_info').style.display='';
		//document.getElementById('sevr_loc_txt').style.display='none';
		//document.getElementById('map_opt').style.display='none';
		document.getElementById('searchResults').style.display='none';
		setPageHeight();
	}

<!--Start of changes for Pinpoints & Address Fields D8328-->
	function reSizeAddrForm()
	{
		hideLayer("error_msg");//document.getElementById("error_msg").style.display='none';
		document.getElementById('complete_info').style.display='none';
		//document.getElementById('sevr_loc_txt').style.display='';
		//document.getElementById('map_opt').style.display='';
		//tmp
		document.getElementById('searchResults').style.display='';
		setPageHeight();
	}
	function reStoreAddrForm()
	{
		hideLayer("error_msg");//document.getElementById("error_msg").style.display='none';
		document.getElementById('complete_info').style.display='';
		//document.getElementById('sevr_loc_txt').style.display='none';
		//document.getElementById('map_opt').style.display='none';
		hideLayer("closeMatchPopup");
		hideLayer("candidateOverlayBack");
		document.getElementById('searchResults').style.display='none';
		setPageHeight();
	}
<!--End of changes for Pinpoints & Address Fields D8328-->

	function onMapLoad()
	{
		document.getElementById("mapimg").style.top = "0px";
		document.getElementById("mapimg").style.left = "0px";

	   toggleBusy(false);
		//if (bShowPinpoint)
		//	showPinpoint();
	}

	function minimizePinpoint()
	{
		hidePinpoint();
		pinpointState = "min";
		showPinpoint();
		//document.getElementById('pinpointMin').style.visibility='visible';
	}

	function hidePinpoint()
	{
		PinpointFlag = false;
		return; //E2630 remove pinpoint.
		document.getElementById('pinpointMin').style.visibility='hidden';
		document.getElementById('pinpoint').style.visibility='hidden';
	}

	function showPinpoint()
	{
		return; //E2630 remove pinpoint.
		if (geocodedAddr == false)
			return;
		PinpointFlag = true;
		if (pinpointState == "min")
		{
			document.getElementById('pinpointMin').style.visibility='visible';
			document.getElementById('pinpoint').style.visibility='hidden';
			document.getElementById('pinpointMin').style.top = ((imgHeight / 2) + 25 - document.getElementById('pinpointMin').clientHeight + 6 ) + 'px';
		}
		else
		{
			toggleAddrVisible(document.getElementById('addrForm'), false);
			document.getElementById('pinpointMin').style.visibility='hidden';
			document.getElementById('pinpoint').style.visibility='visible';
			//alert( ((imgHeight / 2) + 15 - document.getElementById('pinpoint').clientHeight + 6 )+ ",actual top:" + document.getElementById('pinpoint').style.top);
			document.getElementById('pinpoint').style.top = ((imgHeight / 2) + 25 - document.getElementById('pinpoint').clientHeight + 6 ) + 'px';
		}
	}

	function restorePinpoint()
	{
		pinpointState = "max";
		showPinpoint();
	}

function onKeyPress(e)
{
//alert("keypress1");
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return false;
    //alert("keypress2");
    if (keycode == 13 )
    {
    	if (checkFields())
    	{
			 zooming=false;
			 changinglayers=false;
			 //alert("keypress3");
			 geocodeAddress(document.getElementById("frmImpact2"));
			 //alert("keypress4");
			 return false;
		}
		else
		{
			//alert("fields not validated.");
			return false;
		}
    }
    //alert("keypress5");
    //document.getElementById("recenterlink").focus();
    return true;
}

function showHide(layerName)
{
if (document.getElementById)
  {var fred = document.getElementById(layerName);var display = fred.style.display ? '' : 'none';fred.style.display = display;return;
  }
}

function popUp(page, name, w, h, scroll, showToolbar)
{
   if (blockpopup) return false;

	var winl = (screen.width - w) / 2;var wint = (screen.height - h) / 2;var toolbar = 'toolbar=yes';
	 if ( !showToolbar ) {toolbar = 'toolbar=no';}winprop  = 'height='+h+',width='+w+',top='+wint+',left='+winl+',scrollbars='+scroll+',resizable,' +toolbar;win = window.open(page, name, winprop);
	 if (parseInt(navigator.appVersion) >= 4) {win.window.focus();}}var win=null;function NewWindow(mypage,myname,w,h,scroll,pos) {if(pos=="center") {LeftPosition=(screen.width)?(screen.width-w)/2:100;TopPosition=(screen.height)?(screen.height-h)/2:100;}
	 else
	 if(pos!="center" || pos==null) {LeftPosition=0;TopPosition=20;}settings='width='+w+',height='+h+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',location=yes,directories=yes,status=yes,menubar=yes,toolbar=yes,resizable=yes';win=window.open(mypage,myname,settings);
	 
	 return win;
}

function printPage()
{
	if (window.print)
	{ window.print(); }
	else
	{ alert('To print: On PCs, use Control + P. On Macs, use Command + P.'); }
}

function refillSelect(key,targetForm,targetName,list,selectedValue)
{
	var target = '';
	for ( var i = 0; i < targetForm.elements.length; i++ )
	{
		if ( targetForm.elements[i].name == targetName )
		{
			target = targetForm.elements[i];
		}
	}
	if ( target == '' )
	{
		return;
	}

	target.options.length = list[key].length;
	var selected = false;
	for ( var i = 0; i < target.options.length; i++ )
	{
		target.options[i].value = list[key][i];
		target.options[i].text = list[key][i];
		if ( target.options[i].value == selectedValue )
		{
			selected = true;
			target.options[i].selected = true;
			target.selectedIndex = i;
		}
	}
	if ( !selected )
	{
		target.selectedIndex = 0;
	}
}

function showError(txt)
{
	document.getElementById("error_txt").innerHTML=txt;
	showLayer("error_msg");//document.getElementById("error_msg").style.display='';
	//document.getElementById("complete_info").style.display='none';

	setPageHeight();
}

function append(orig, appendage)
{
	if (orig.length == 0)
	{
		return appendage;
	}
	return orig + ":" + appendage;
}


function setupDebug(debugxml)
{
	dodebug=true;
	_debug=true; //enable logging window.
	if (debugxml)
	{
		printxml=true;
	}

   with(document.getElementById('hiddenstuff'))
   {
   	style.position='absolute';
   	style.top='850px';
   	style.visibility='visible';
   	style.display='';
   	style.width='730px';
   };
   with(document.getElementById("frmImpact2"))
   {
   	txtStatus.style.display='';
   	txtStatus.style.width='700px';
   	txtXml.style.display='';
   	txtXml.style.width='700px';
   	txtXml.style.height='120px';
   	mapsearchresults.style.display='';
   	mapsearchresults.style.width='700px';
   }
}

//PNCT 2.0
function setDrawerActive(drawer)
{
	//alert("setDrawerActive:" + drawer);
	//if (selectedDrawer == "data")
	//{
	//	closeDrawer(selectedDrawer);
	//	alert("back");
	//}

	selectedDrawer = drawer;
	if (drawer == "voice")
	{
		//Since only the data drawer has a wimax tab, reset to sprint for the other drawers.
		if (selectedTab == "wimax")
			selectedTab = "sprint";
		//document.getElementById('datadrawer').style.display='';
		document.getElementById('datadraweropen').style.display='none';
		document.getElementById('dataheaderopen').style.display='none';
		document.getElementById('dataheaderclosed').style.display='';
		//document.getElementById('walkietalkiedrawer').style.display='';
		document.getElementById('walkietalkiedraweropen').style.display='none';
		document.getElementById('walkietalkieheaderopen').style.display='none';
		document.getElementById('walkietalkieheaderclosed').style.display='';
		//document.getElementById('voicedrawer').style.display='none';
		document.getElementById('voicedraweropen').style.display='';
		document.getElementById('voiceheaderopen').style.display='';
		document.getElementById('voiceheaderclosed').style.display='none';
	}
	else if (drawer == "data")
	{
		//document.getElementById('walkietalkiedrawer').style.display='';
		document.getElementById('walkietalkiedraweropen').style.display='none';
		document.getElementById('walkietalkieheaderopen').style.display='none';
		document.getElementById('walkietalkieheaderclosed').style.display='';
		//document.getElementById('voicedrawer').style.display='';
		document.getElementById('voicedraweropen').style.display='none';
		document.getElementById('voiceheaderopen').style.display='none';
		document.getElementById('voiceheaderclosed').style.display='';
		//document.getElementById('datadrawer').style.display='none';
		document.getElementById('datadraweropen').style.display='';
		document.getElementById('dataheaderopen').style.display='';
		document.getElementById('dataheaderclosed').style.display='none';
	}
	else if (drawer == "walkietalkie")
	{
		//Code to switch tab to nextel before sprint drawer had walkietalkie tab.
		//if (selectedTab == "sprint")
		//{
		//	selectedTab = "nextel";
		//}

		//Since only the data drawer has a wimax tab, reset to sprint for the other drawers.
		if (selectedTab == "wimax")
			selectedTab = "sprint";

		//document.getElementById('voicedrawer').style.display='';
		document.getElementById('voicedraweropen').style.display='none';
		document.getElementById('voiceheaderopen').style.display='none';
		document.getElementById('voiceheaderclosed').style.display='';
		//document.getElementById('datadrawer').style.display='';
		document.getElementById('datadraweropen').style.display='none';
		document.getElementById('dataheaderopen').style.display='none';
		document.getElementById('dataheaderclosed').style.display='';
		//document.getElementById('walkietalkiedrawer').style.display='none';
		document.getElementById('walkietalkiedraweropen').style.display='';
		document.getElementById('walkietalkieheaderopen').style.display='';
		document.getElementById('walkietalkieheaderclosed').style.display='none';
	}
	else
		alert('invalid drawer id passed:' + drawer);

	setTabActive(selectedDrawer, document.getElementById(drawer + selectedTab));
	//getMapImage();


}

function setTabActive(drawer,tab)
{
	//document.getElementById(drawer + 'sprint').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
	//document.getElementById(drawer + 'nextel').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
	//document.getElementById(drawer + 'combo').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';

	tab.style.backgroundImage='url(images/tabSliceSelected.jpg)';
	selectedDrawer = drawer;
   log("Clicked tab:" + tab.id);
   log("drawer:" + drawer);
	if (tab.id == drawer + 'sprint')
	{
		selectedTab = "sprint";
      log("selectedTab:" + selectedTab);

		document.getElementById('datasprint').style.backgroundImage='url(images/tabSliceSelected.jpg)';
		document.getElementById('voicesprint').style.backgroundImage='url(images/tabSliceSelected.jpg)';

		document.getElementById('walkietalkiesprint').style.backgroundImage='url(images/tabSliceSelected.jpg)';

		document.getElementById('voice' + 'nextel').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('data' + 'nextel').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('walkietalkie' + 'nextel').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';

		document.getElementById('voice' + 'combo').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('data' + 'combo').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('walkietalkie' + 'combo').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';

		document.getElementById('data' + 'wimax').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';

		document.getElementById('datadrawernextelcontent').style.display='none';
		document.getElementById('datadrawercombocontent').style.display='none';
		document.getElementById('datadrawerwimaxcontent').style.display='none';
		document.getElementById('datadrawersprintcontent').style.display='';

		document.getElementById('voicedrawernextelcontent').style.display='none';
		document.getElementById('voicedrawercombocontent').style.display='none';
		document.getElementById('voicedrawersprintcontent').style.display='';

		document.getElementById('walkietalkiedrawersprintcontent').style.display='';
		document.getElementById('walkietalkiedrawercombocontent').style.display='none';
		document.getElementById('walkietalkiedrawernextelcontent').style.display='none';

		if (drawer == 'data')
		{
			document.getElementById('datapop').style.display='';
		}

	}
	else if (tab.id == drawer + 'nextel')
	{
		selectedTab = "nextel";

		document.getElementById('datanextel').style.backgroundImage='url(images/tabSliceSelected.jpg)';
		document.getElementById('voicenextel').style.backgroundImage='url(images/tabSliceSelected.jpg)';
		document.getElementById('walkietalkienextel').style.backgroundImage='url(images/tabSliceSelected.jpg)';

		document.getElementById('voice' + 'sprint').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('data' + 'sprint').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('walkietalkie' + 'sprint').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';

		document.getElementById('voice' + 'combo').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('data' + 'combo').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('walkietalkie' + 'combo').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';

		document.getElementById('data' + 'wimax').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';

		document.getElementById('datadrawersprintcontent').style.display='none';
		document.getElementById('datadrawercombocontent').style.display='none';
		document.getElementById('datadrawerwimaxcontent').style.display='none';
		document.getElementById('datadrawernextelcontent').style.display='';

		document.getElementById('voicedrawersprintcontent').style.display='none';
		document.getElementById('voicedrawercombocontent').style.display='none';
		document.getElementById('voicedrawernextelcontent').style.display='';

		document.getElementById('walkietalkiedrawersprintcontent').style.display='none';
		document.getElementById('walkietalkiedrawercombocontent').style.display='none';
		document.getElementById('walkietalkiedrawernextelcontent').style.display='';


		if (drawer == 'data')
		{
			document.getElementById('datapop').style.display='none';
		}

	}
	else if (tab.id == drawer + 'combo')
	{
		selectedTab = "combo";

		document.getElementById('datacombo').style.backgroundImage='url(images/tabSliceSelected.jpg)';
		document.getElementById('voicecombo').style.backgroundImage='url(images/tabSliceSelected.jpg)';
		document.getElementById('walkietalkiecombo').style.backgroundImage='url(images/tabSliceSelected.jpg)';

		document.getElementById('voice' + 'sprint').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('data' + 'sprint').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('walkietalkie' + 'sprint').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';

		document.getElementById('voice' + 'nextel').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('data' + 'nextel').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('walkietalkie' + 'nextel').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';

		document.getElementById('data' + 'wimax').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';

		document.getElementById('datadrawersprintcontent').style.display='none';
		document.getElementById('datadrawernextelcontent').style.display='none';
		document.getElementById('datadrawerwimaxcontent').style.display='none';
		document.getElementById('datadrawercombocontent').style.display='';

		document.getElementById('voicedrawersprintcontent').style.display='none';
		document.getElementById('voicedrawernextelcontent').style.display='none';
		document.getElementById('voicedrawercombocontent').style.display='';

		document.getElementById('walkietalkiedrawersprintcontent').style.display='none';
		document.getElementById('walkietalkiedrawernextelcontent').style.display='none';
		document.getElementById('walkietalkiedrawercombocontent').style.display='';

		if (drawer == 'data')
		{
			document.getElementById('datapop').style.display='';
		}

	}
	else if (tab.id == drawer + 'wimax')
	{
		selectedTab = "wimax";

		document.getElementById('datawimax').style.backgroundImage='url(images/tabSliceSelected.jpg)';
		document.getElementById('voicesprint').style.backgroundImage='url(images/tabSliceSelected.jpg)';
		document.getElementById('walkietalkiesprint').style.backgroundImage='url(images/tabSliceSelected.jpg)';

		document.getElementById('datasprint').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('voice' + 'nextel').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('data' + 'nextel').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('walkietalkie' + 'nextel').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';

		document.getElementById('voice' + 'combo').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('data' + 'combo').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';
		document.getElementById('walkietalkie' + 'combo').style.backgroundImage='url(images/tabSliceUnSelected.jpg)';

		document.getElementById('datadrawersprintcontent').style.display='none';
		document.getElementById('datadrawernextelcontent').style.display='none';
		document.getElementById('datadrawercombocontent').style.display='none';
		document.getElementById('datadrawerwimaxcontent').style.display='';

		document.getElementById('voicedrawersprintcontent').style.display='';
		document.getElementById('voicedrawernextelcontent').style.display='none';
		document.getElementById('voicedrawercombocontent').style.display='none';

		document.getElementById('walkietalkiedrawersprintcontent').style.display='';
		document.getElementById('walkietalkiedrawernextelcontent').style.display='none';
		document.getElementById('walkietalkiedrawercombocontent').style.display='none';

		if (drawer == 'data')
		{
			document.getElementById('datapop').style.display='';
		}

	}

	//Always set staticMapFile so it will be accurate if user zooms all the way out and gets static map.
	staticMapFile = "/images/map" + drawer + selectedTab;// + "US.gif";
	document.getElementById("mapAK").src = staticMapFile + "AK.gif";
	document.getElementById("mapHI").src = staticMapFile + "HI.gif";
	document.getElementById("mapPR").src = staticMapFile + "PR.gif";
	if (imgPath == "")
	{
		document.getElementById("mapimg").src = staticMapFile + "US.gif";
		log("Setting static map file to:" + staticMapFile);
	}
	else
	{
		getMapImage();
	}

	setPageHeight();

	for (locNum=0; locNum<addressCount; locNum++)
	{
		getCoverageLevelDiv(locNum);
	}

   log("calling omniture in setTabActive:" + selectedDrawer + "," + selectedTab);
   makeOmnitureCall('coverage');

}

function clear_form()
{
	addrform = document.getElementById("frmImpact2");
	if (addrform)
	{
		addrform.fulladdress1.value="";
		addrform.fulladdress2.value="";
		addrform.fulladdress3.value="";
		document.getElementById("fulladdress1").style.backgroundColor="#ffffff";
		document.getElementById("fulladdress2").style.backgroundColor="#ffffff";
		document.getElementById("fulladdress3").style.backgroundColor="#ffffff";
	}
	clearError();
}

function clearError()
{
	hideLayer("error_msg");
	document.getElementById("fulladdress1").style.backgroundColor="#ffffff";
	document.getElementById("fulladdress2").style.backgroundColor="#ffffff";
	document.getElementById("fulladdress3").style.backgroundColor="#ffffff";
}

function closeDrawer(drawer)
{
	alert("closing drawer");
	document.getElementById("datadraweropen").style.height="20px";
	document.getElementById("datadraweropen").style.height="15px";
	document.getElementById("datadraweropen").style.height="10px";
	document.getElementById("datadraweropen").style.height="5px";
	document.getElementById("datadraweropen").style.height="0px";
	//Do that in a loop from current height (hmm.... to 0, or start at some arbitary #, or maybe just 2 steps...
	alert("closing drawer");
	document.getElementById("datadraweropen").style.display="none";
	document.getElementById("datadraweropen").style.height="";
	alert("closing drawer");
	document.getElementById("datadrawer").style.display="";
}

function setPageHeight()
{
	var tmpHeight = document.getElementById("drawersntabs").clientHeight;
	if (tmpHeight < 550)
		tmpHeight = 550;
	document.getElementById("impactMainContent").style.height= tmpHeight + "px";
	//alert("Set MainContent height to:" + tmpHeight + "px");
}

function setAntiAlias(newval)
{
	if (newval == null) return;
	if (newval == 'T' || newval == 'F' || newval == 't' || newval == 'f')
	{
		doAntiAlias = newval;
	}
}

function showLayer(layerName)
{
	//log("showLayer:" + layerName);
	if (document.getElementById)
	{
		if(!layerName.nodeName) layerName = document.getElementById(layerName);
		if(layerName)
		{
			layerName.style.display = '';
		}
	}
}

function hideLayer(layerName)
{
	//log("hideLayer:" + layerName);
	if (document.getElementById)
	{
		if(!layerName.nodeName) layerName = document.getElementById(layerName);
		if(layerName)
		{
			layerName.style.display = 'none';
		}
	}
}

function setClass(layerName, newClassName)
{
	if (document.getElementById)
	{
		if(!layerName.nodeName) layerName = document.getElementById(layerName);
		if(layerName)
		{
			layerName.className=newClassName;
		}
	}
}

function setVisibility(layerName, vis)
{
	var svis;
	if (vis)
		svis = "visible";
	else
		svis = "hidden";

	log("Layer:" + layerName + "=" + svis);
	if (document.getElementById)
	{
		if(!layerName.nodeName) layerName = document.getElementById(layerName);
		if(layerName)
		{
			layerName.style.visibility = svis;
		}
	}
}

var recentSearches = [
	[ false, "" ],
	[ false, "" ],
	[ false, "" ],
	[ false, "" ],
	[ false, "" ] 	];


function showRecentSearches()
{
	if (document.getElementById("recentsearchdiv").style.display=="none")
	{
		for ( var idx = 0; idx < recentSearches.length; idx++ )
		{
			if (recentSearches[idx][0] == true)
			{
				document.getElementById("recentsearch"+idx).innerHTML=getRecentAddr(idx);
				showLayer("search"+idx);
			}
			else
			{
				hideLayer("search"+idx);
			}
		}

		if (recentSearches[0][0] == false)
			showLayer("norecentsearches");
		else
			hideLayer("norecentsearches");

		//document.getElementById("recentsearchdiv").style.display="";
		showLayer("recentsearchdiv");
		//setVisibility("formline1", false);
		//setVisibility("formline2", false);
	}
	else
	{
		hideRecentSearches();
	}
}

function hideRecentSearches()
{
	//document.getElementById('recentsearchdiv').style.display='none';
	hideLayer("recentsearchdiv");
	//setVisibility("formline1", true);
	//setVisibility("formline2", true);
}

function getRecentSearch(idx)
{
	hideRecentSearches();

  var form = document.getElementById('frmImpact2');

	form.fulladdress1.value = recentSearches[idx][1];
	if (checkFields())
		doMapIt(form);
}

function addRecentSearch()
{
	var cookieval="";
	for (ii=0; ii<addressCount; ii++)
	{
	  	var tmpaddress = document.getElementById('fulladdress'+(ii+1)).value;

		var dup = false;
		var firstfree = -1;
		//log("addRecentSearch:before for loop.");
		for ( var idx = 0; idx < recentSearches.length; idx++ )
		{
			if (compareAddr(idx, tmpaddress) == true)
				dup = true;
			if (recentSearches[idx][0] == false)
			{
				firstfree = idx;
				break;
			}
			//cookieval += recentSearches[idx][1] + "|";
		}
		//log("addRecentSearch:after for loop." + dup + "," + firstfree);
		if (dup == false && firstfree == -1)
		{
			//cookieval="";
			for ( var idx = 0; idx < recentSearches.length - 1; idx++ )
			{
				recentSearches[idx][1] = recentSearches[idx+1][1];
				//cookieval += recentSearches[idx][1] + "|";
			}
			recentSearches[4][0] = false;
			firstfree = 4;
		}
		if (dup == false && firstfree < recentSearches.length)
		{
			idx = firstfree;
			recentSearches[idx][0] = true;
			recentSearches[idx][1] = tmpaddress;
			//log("addRecentSearch:added search=" + recentSearches[idx]);
			//cookieval += recentSearches[idx][1] + "|";
		}
	}
	
	//mcw 2009-10-7 split cookie building from adding address to list
	for ( var idx = 0; idx < recentSearches.length; idx++ )
	{
		cookieval += recentSearches[idx][1] + "|";
	}
	
	setNxCookie("recentaddr",cookieval,"session");
}

function compareAddr(idx, street)
{
	//log("compareAddr(" + idx + "):" + recentSearches[idx]);
	if (recentSearches[idx][0] == false) return false;
	if (recentSearches[idx][1] != street) return false;

	return true;

}

function getRecentAddr(idx)
{
	if (recentSearches[idx][0] == true)
	{
		var street = recentSearches[idx][1];

		var addrStr = "";
		if (street != null && street != "")
			addrStr = street;

		return addrStr;
	}
	else
		return "";
}

var covLevelEnabled = false;

function highlightCoverageLevel()
{
	//if (covLevelEnabled == false)
	//	return;

	// Calculate best coverage shown on all nine tabs

	var covlevel = [  "sprintvoicequality1", "sprintvoicequality2", "sprintvoicequality3", "sprintvoiceprimary", "sprintvoicenoquality", "sprintvoiceroaming", "sprintvoicenocoverage",
						   "nextelvoicequality1", "nextelvoicequality2", "nextelvoicequality3", "nextelvoiceprimary", "nextelvoicenocoverage",
						   "combovoicequality1", "combovoicequality2", "combovoicequality3", "combovoiceprimary", "combovoicenoquality", "combovoiceroaming", "combovoicenocoverage",
						   "datasprintmobilebroadband", "datasprintmobilebroadbandroaming", "datasprint1x", "datasprintdataroaming", "datasprintnocoverage",
						   "datanextelcov", "datanextelnocoverage",
						   "datacombomobilebroadband", "datacombomobilebroadbandroaming", "datacombo1x", "datacombodataroaming", "datacombonocoverage",
						   "datawimax4gmobiledevice", "datawimaxmobilebroadband", "datawimaxmobilebroadbandroaming", "datawimax1x", "datawimaxdataroaming", "datawimaxnocoverage",
							"sprintwalkietalkiequality1", "sprintwalkietalkiequality2", "sprintwalkietalkiequality3", "sprintwalkietalkieprimary", "sprintwalkietalkienocoverage",
							"nextelwalkietalkiequality1", "nextelwalkietalkiequality2", "nextelwalkietalkiequality3", "nextelwalkietalkieprimary", "nextelwalkietalkienocoverage",
							"combowalkietalkiequality1", "combowalkietalkiequality2", "combowalkietalkiequality3", "combowalkietalkieprimary", "combowalkietalkienocoverage"
			];


		for (var ii=0; ii<covlevel.length; ii++)
		{
			//legend
			if (document.getElementById(covlevel[ii]))
				document.getElementById(covlevel[ii]).className="";
			else
				log("Can't find div [" + covlevel[ii] + "]");
			//compare legend
			if (document.getElementById(covlevel[ii]+"c"))
				document.getElementById(covlevel[ii]+"c").className="";
			else
				log("Can't find div [" + covlevel[ii]+"c" + "]");
		}

		//If US view, just clear highlights, do not highlight current coverage level.
		if (scale == zoomLevels[0]) return;

		log("highlightCoverageLevel() ================ ");

		//Voice Sprint
		if (covvoicesprint[currentLocation] == "Best Coverage")
		{
			highlightLegendDiv("sprintvoicequality1");
			highlightLegendDiv("sprintvoiceprimary");
		}
		else if (covvoicesprint[currentLocation] == "Good Coverage")
		{
			highlightLegendDiv("sprintvoicequality2");
			highlightLegendDiv("sprintvoiceprimary");
		}
		else if (covvoicesprint[currentLocation] == "Fair Coverage")
		{
			highlightLegendDiv("sprintvoicequality3");
			highlightLegendDiv("sprintvoiceprimary");
		}
		else if (covvoicesprint[currentLocation] == "SprintVoice")
		{
				highlightLegendDiv("sprintvoicenoquality");
		}
		else if (covvoicesprint[currentLocation] == "SRA" || coverageLevelCDMA == "Affiliate")
		{
				highlightLegendDiv("sprintvoicenoquality");
		}
		else if (covvoicesprint[currentLocation] == "CDMARoam" || coverageLevelCDMA == "DigitalVoiceRoaming")
		{
			highlightLegendDiv("sprintvoiceroaming");
		}
		else
		{
			highlightLegendDiv("sprintvoicenocoverage");
		}

		//Voice combo
		if (covvoicecombo[currentLocation] == "Best Coverage")
		{
			highlightLegendDiv("combovoicequality1");
			highlightLegendDiv("combovoiceprimary");
		}
		else if (covvoicecombo[currentLocation] == "Good Coverage")
		{
			highlightLegendDiv("combovoicequality2");
			highlightLegendDiv("combovoiceprimary");
		}
		else if (covvoicecombo[currentLocation] == "Fair Coverage")
		{
			highlightLegendDiv("combovoicequality3");
			highlightLegendDiv("combovoiceprimary");
		}
		else if (covvoicecombo[currentLocation] == "SprintVoice")
		{
				highlightLegendDiv("combovoicenoquality");
		}
		else if (covvoicecombo[currentLocation] == "SRA" || coverageLevelCDMA == "Affiliate")
		{
				highlightLegendDiv("combovoicenoquality");
		}
		else if (covvoicecombo[currentLocation] == "DigitalVoiceRoaming")
		{
			highlightLegendDiv("combovoiceroaming");
		}
		else
		{
			highlightLegendDiv("combovoicenocoverage");
		}

		//------------------------
		// data sprint
		//------------------------
		if (covdatasprint[currentLocation] == "EVDO")
		{
			highlightLegendDiv("datasprintmobilebroadband");
		}
		else if (covdatasprint[currentLocation] == "EVDORoam")
		{
			highlightLegendDiv("datasprintmobilebroadbandroaming");
		}
		else if (covdatasprint[currentLocation] == "1900EVDORoam")
		{
			highlightLegendDiv("datasprintmobilebroadbandroaming");
		}
		else if (covdatasprint[currentLocation] == "Sprint1XData")
		{
			highlightLegendDiv("datasprint1x");
		}
		else if (covdatasprint[currentLocation] == "1XDataRoam")
		{
			highlightLegendDiv("datasprintdataroaming");
		}
		else if (covdatasprint[currentLocation] == "19001XDataRoam")
		{
			highlightLegendDiv("datasprintdataroaming");
		}
		else
		{
			highlightLegendDiv("datasprintnocoverage");
		}


		//------------------------
		// data  combo
		//------------------------
		//"datasprintmobilebroadband", "datasprintmobilebroadbandroaming", "datasprint1x", "datasprintdataroaming", "datasprintnocoverage",
		//"datacombomobilebroadband", "datacombomobilebroadbandroaming", "datacombo1x", "datacombodataroaming", "datacombonocoverage",
		if (covdatacombo[currentLocation] == "EVDO")
		{
			highlightLegendDiv("datacombomobilebroadband");
		}
		else if (covdatacombo[currentLocation] == "1900EVDORoam")
		{
			highlightLegendDiv("datacombomobilebroadbandroaming");
		}
		else if (covdatacombo[currentLocation] == "Sprint1XData")
		{
			highlightLegendDiv("datacombo1x");
		}
		else if (covdatacombo[currentLocation] == "19001XDataRoam")
		{
			highlightLegendDiv("datacombodataroaming");
		}
		else
		{
			highlightLegendDiv("datacombonocoverage");
		}


		//------------------------
		// data wimax
		//------------------------
		if (covdatawimax[currentLocation] == "4GMobileDevice")
		{
			highlightLegendDiv("datawimax4gmobiledevice");
		}
		else if (covdatawimax[currentLocation] == "EVDO")
		{
			highlightLegendDiv("datawimaxmobilebroadband");
		}
		else if (covdatawimax[currentLocation] == "EVDORoam")
		{
			highlightLegendDiv("datawimaxmobilebroadbandroaming");
		}
		else if (covdatawimax[currentLocation] == "1900EVDORoam")
		{
			highlightLegendDiv("datawimaxmobilebroadbandroaming");
		}
		else if (covdatawimax[currentLocation] == "Sprint1XData")
		{
			highlightLegendDiv("datawimax1x");
		}
		else if (covdatawimax[currentLocation] == "1XDataRoam")
		{
			highlightLegendDiv("datawimaxdataroaming");
		}
		else if (covdatawimax[currentLocation] == "19001XDataRoam")
		{
			highlightLegendDiv("datawimaxdataroaming");
		}
		else
		{
			highlightLegendDiv("datawimaxnocoverage");
		}


		//Walkietalkie Sprint
		if (covwalkietalkiesprint[currentLocation] == "Best Coverage")
		{
			highlightLegendDiv("sprintwalkietalkiequality1");
			highlightLegendDiv("sprintwalkietalkieprimary");
		}
		else if (covwalkietalkiesprint[currentLocation] == "Good Coverage")
		{
			highlightLegendDiv("sprintwalkietalkiequality2");
			highlightLegendDiv("sprintwalkietalkieprimary");
		}
		else if (covwalkietalkiesprint[currentLocation] == "Fair Coverage")
		{
			highlightLegendDiv("sprintwalkietalkiequality3");
			highlightLegendDiv("sprintwalkietalkieprimary");
		}
		else
		{
			highlightLegendDiv("sprintwalkietalkienocoverage");
		}

		//IDEN - all
		if (covvoicenextel[currentLocation] == "Best Coverage")
		{
			highlightLegendDiv("nextelvoicequality1");
			highlightLegendDiv("combowalkietalkiequality1" );
			highlightLegendDiv("nextelwalkietalkiequality1" );
			highlightLegendDiv("nextelvoiceprimary");
			highlightLegendDiv("datanextelcov");
			highlightLegendDiv("nextelwalkietalkieprimary");
			highlightLegendDiv("combowalkietalkieprimary");
		}
		else if (covvoicenextel[currentLocation] == "Good Coverage")
		{
			highlightLegendDiv("nextelvoicequality2");
			highlightLegendDiv("combowalkietalkiequality2" );
			highlightLegendDiv("nextelwalkietalkiequality2" );
			highlightLegendDiv("nextelvoiceprimary");
			highlightLegendDiv("datanextelcov");
			highlightLegendDiv("nextelwalkietalkieprimary");
			highlightLegendDiv("combowalkietalkieprimary");
		}
		else if (covvoicenextel[currentLocation] == "Fair Coverage")
		{
			highlightLegendDiv("nextelvoicequality3");
			highlightLegendDiv("combowalkietalkiequality3" );
			highlightLegendDiv("nextelwalkietalkiequality3" );
			highlightLegendDiv("nextelvoiceprimary");
			highlightLegendDiv("datanextelcov");
			highlightLegendDiv("nextelwalkietalkieprimary");
			highlightLegendDiv("combowalkietalkieprimary");
		}
		else
		{
			highlightLegendDiv("nextelvoicenocoverage");
			highlightLegendDiv("datanextelnocoverage");
			highlightLegendDiv("nextelwalkietalkienocoverage");
			highlightLegendDiv("combowalkietalkienocoverage");
		}



}

function highlightLegendDiv(divid)
{
	setClass(divid, "legendcoverage");
	setClass(divid+"c", "legendcoverage");
}


function hideLegendDiv(divid)
{
	hideLayer(divid);
	hideLayer(divid+"c");
}


function showLegendDiv(divid)
{
	showLayer(divid);
	showLayer(divid+"c");
}


function getCoverageLevelDiv(locNum)
{
	//If structure copied from highlightCoverageLevel() -- These two methods need to be in sync.
	
	var tmpLocNum = locNum;
	
	if (selectedDrawer == 'voice' && selectedTab == 'sprint')
	{
		//Voice Sprint
		if (covvoicesprint[tmpLocNum] == "Best Coverage")
		{
			if (scale <= 50)
				document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintvoicequality1").innerHTML;
			else
				document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintvoiceprimary").innerHTML;
		}
		else if (covvoicesprint[tmpLocNum] == "Good Coverage")
		{
			if (scale <= 50)
				document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintvoicequality2").innerHTML;
			else
				document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintvoiceprimary").innerHTML;
			//highlightLegendDiv("sprintvoicequality2");
			//highlightLegendDiv("sprintvoiceprimary");
		}
		else if (covvoicesprint[tmpLocNum] == "Fair Coverage")
		{
			if (scale <= 50)
				document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintvoicequality3").innerHTML;
			else
				document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintvoiceprimary").innerHTML;
			//highlightLegendDiv("sprintvoicequality3");
			//highlightLegendDiv("sprintvoiceprimary");
		}
		else if (covvoicesprint[tmpLocNum] == "SprintVoice")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintvoicenoquality").innerHTML;
			//highlightLegendDiv("sprintvoicenoquality");
		}
		else if (covvoicesprint[tmpLocNum] == "SRA" || coverageLevelCDMA == "Affiliate")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintvoicenoquality").innerHTML;
			//highlightLegendDiv("sprintvoicenoquality");
		}
		else if (covvoicesprint[tmpLocNum] == "CDMARoam" || coverageLevelCDMA == "DigitalVoiceRoaming")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintvoiceroaming").innerHTML;
			//highlightLegendDiv("sprintvoiceroaming");
		}
		else
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintvoicenocoverage").innerHTML;
			//highlightLegendDiv("sprintvoicenocoverage");
		}
	}

		//Voice combo
	if (selectedDrawer == 'voice' && selectedTab == 'combo')
	{
		if (covvoicecombo[tmpLocNum] == "Best Coverage")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("combovoicequality1").innerHTML;
			//highlightLegendDiv("combovoicequality1");
			//highlightLegendDiv("combovoiceprimary");
		}
		else if (covvoicecombo[tmpLocNum] == "Good Coverage")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("combovoicequality2").innerHTML;
			//highlightLegendDiv("combovoicequality2");
			//highlightLegendDiv("combovoiceprimary");
		}
		else if (covvoicecombo[tmpLocNum] == "Fair Coverage")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("combovoicequality3").innerHTML;
			//highlightLegendDiv("combovoicequality3");
			//highlightLegendDiv("combovoiceprimary");
		}
		else if (covvoicecombo[tmpLocNum] == "SprintVoice")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("combovoicenoquality").innerHTML;
			//	highlightLegendDiv("combovoicenoquality");
		}
		else if (covvoicecombo[tmpLocNum] == "SRA" || coverageLevelCDMA == "Affiliate")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("combovoicenoquality").innerHTML;
			//	highlightLegendDiv("combovoicenoquality");
		}
		else if (covvoicecombo[tmpLocNum] == "DigitalVoiceRoaming")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("combovoiceroaming").innerHTML;
			//highlightLegendDiv("combovoiceroaming");
		}
		else
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("combovoicenocoverage").innerHTML;
			//highlightLegendDiv("combovoicenocoverage");
		}
	}
		//------------------------
		// data sprint
		//------------------------
	if (selectedDrawer == 'data' && selectedTab == 'sprint')
	{
		if (covdatasprint[tmpLocNum] == "EVDO")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datasprintmobilebroadband").innerHTML;
			//highlightLegendDiv("datasprintmobilebroadband");
		}
		else if (covdatasprint[tmpLocNum] == "EVDORoam")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datasprintmobilebroadbandroaming").innerHTML;
			//highlightLegendDiv("datasprintmobilebroadbandroaming");
		}
		else if (covdatasprint[tmpLocNum] == "1900EVDORoam")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datasprintmobilebroadbandroaming").innerHTML;
			//highlightLegendDiv("datasprintmobilebroadbandroaming");
		}
		else if (covdatasprint[tmpLocNum] == "Sprint1XData")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datasprint1x").innerHTML;
			//highlightLegendDiv("datasprint1x");
		}
		else if (covdatasprint[tmpLocNum] == "1XDataRoam")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datasprintdataroaming").innerHTML;
			//highlightLegendDiv("datasprintdataroaming");
		}
		else if (covdatasprint[tmpLocNum] == "19001XDataRoam")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datasprintdataroaming").innerHTML;
			//highlightLegendDiv("datasprintdataroaming");
		}
		else
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datasprintnocoverage").innerHTML;
			//highlightLegendDiv("datasprintnocoverage");
		}
	}

		//------------------------
		// data  combo
		//------------------------
	if (selectedDrawer == 'data' && selectedTab == 'combo')
	{
		if (covdatacombo[tmpLocNum] == "EVDO")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datacombomobilebroadband").innerHTML;
			//highlightLegendDiv("datacombomobilebroadband");
		}
		else if (covdatacombo[tmpLocNum] == "1900EVDORoam")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datacombomobilebroadbandroaming").innerHTML;
			//highlightLegendDiv("datacombomobilebroadbandroaming");
		}
		else if (covdatacombo[tmpLocNum] == "Sprint1XData")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datacombo1x").innerHTML;
			//highlightLegendDiv("datacombo1x");
		}
		else if (covdatacombo[tmpLocNum] == "19001XDataRoam")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datacombodataroaming").innerHTML;
			//highlightLegendDiv("datacombodataroaming");
		}
		else
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datacombonocoverage").innerHTML;
			//highlightLegendDiv("datacombonocoverage");
		}
	}

		//------------------------
		// data wimax
		//------------------------
	if (selectedDrawer == 'data' && selectedTab == 'wimax')
	{
		if (covdatawimax[tmpLocNum] == "4GMobileDevice")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datawimax4gmobiledevice").innerHTML;
			//highlightLegendDiv("datawimax4gmobiledevice");
		}
		else if (covdatawimax[tmpLocNum] == "EVDO")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datawimaxmobilebroadband").innerHTML;
			//highlightLegendDiv("datawimaxmobilebroadband");
		}
		else if (covdatawimax[tmpLocNum] == "EVDORoam")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datawimaxmobilebroadbandroaming").innerHTML;
			//highlightLegendDiv("datawimaxmobilebroadbandroaming");
		}
		else if (covdatawimax[tmpLocNum] == "1900EVDORoam")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datawimaxmobilebroadbandroaming").innerHTML;
			//highlightLegendDiv("datawimaxmobilebroadbandroaming");
		}
		else if (covdatawimax[tmpLocNum] == "Sprint1XData")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datawimax1x").innerHTML;
			//highlightLegendDiv("datawimax1x");
		}
		else if (covdatawimax[tmpLocNum] == "1XDataRoam")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datawimaxdataroaming").innerHTML;
			//highlightLegendDiv("datawimaxdataroaming");
		}
		else if (covdatawimax[tmpLocNum] == "19001XDataRoam")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datawimaxdataroaming").innerHTML;
			//highlightLegendDiv("datawimaxdataroaming");
		}
		else
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datawimaxnocoverage").innerHTML;
			//highlightLegendDiv("datawimaxnocoverage");
		}
	}

	if (selectedDrawer == 'walkietalkie' && selectedTab == 'sprint')
	{
		//Walkietalkie Sprint
		if (covwalkietalkiesprint[tmpLocNum] == "Best Coverage")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintwalkietalkiequality1").innerHTML;
			//highlightLegendDiv("sprintwalkietalkiequality1");
			//highlightLegendDiv("sprintwalkietalkieprimary");
		}
		else if (covwalkietalkiesprint[tmpLocNum] == "Good Coverage")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintwalkietalkiequality2").innerHTML;
			//highlightLegendDiv("sprintwalkietalkiequality2");
			//highlightLegendDiv("sprintwalkietalkieprimary");
		}
		else if (covwalkietalkiesprint[tmpLocNum] == "Fair Coverage")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintwalkietalkiequality3").innerHTML;
			//highlightLegendDiv("sprintwalkietalkiequality3");
			//highlightLegendDiv("sprintwalkietalkieprimary");
		}
		else
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("sprintwalkietalkienocoverage").innerHTML;
			//highlightLegendDiv("sprintwalkietalkienocoverage");
		}
	}
	
		//IDEN - all
	if (selectedTab == 'nextel' || (selectedDrawer == 'walkietalkie' && selectedTab == 'combo'))
	{
		if (covvoicenextel[tmpLocNum] == "Best Coverage")
		{
			if (selectedDrawer == 'data')
			{	
				document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("datanextelcov").innerHTML;
			}
			else
			{
				document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("nextelvoicequality1").innerHTML;
			}
			//highlightLegendDiv("nextelvoicequality1");
			//highlightLegendDiv("combowalkietalkiequality1" );
			//highlightLegendDiv("nextelwalkietalkiequality1" );
			//highlightLegendDiv("nextelvoiceprimary");
			//highlightLegendDiv("datanextelcov");
			//highlightLegendDiv("nextelwalkietalkieprimary");
			//highlightLegendDiv("combowalkietalkieprimary");
		}
		else if (covvoicenextel[tmpLocNum] == "Good Coverage")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("nextelvoicequality2").innerHTML;
			//highlightLegendDiv("nextelvoicequality2");
			//highlightLegendDiv("combowalkietalkiequality2" );
			//highlightLegendDiv("nextelwalkietalkiequality2" );
			//highlightLegendDiv("nextelvoiceprimary");
			//highlightLegendDiv("datanextelcov");
			//highlightLegendDiv("nextelwalkietalkieprimary");
			//highlightLegendDiv("combowalkietalkieprimary");
		}
		else if (covvoicenextel[tmpLocNum] == "Fair Coverage")
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("nextelvoicequality3").innerHTML;
			//highlightLegendDiv("nextelvoicequality3");
			//highlightLegendDiv("combowalkietalkiequality3" );
			//highlightLegendDiv("nextelwalkietalkiequality3" );
			//highlightLegendDiv("nextelvoiceprimary");
			//highlightLegendDiv("datanextelcov");
			//highlightLegendDiv("nextelwalkietalkieprimary");
			//highlightLegendDiv("combowalkietalkieprimary");
		}
		else
		{
			document.getElementById('location'+tmpLocNum+'coverage').innerHTML = document.getElementById("nextelvoicenocoverage").innerHTML;
			//highlightLegendDiv("nextelvoicenocoverage");
			//highlightLegendDiv("datanextelnocoverage");
			//highlightLegendDiv("nextelwalkietalkienocoverage");
			//highlightLegendDiv("combowalkietalkienocoverage");
		}
	}
}

// Sets cookie values. Expiration date is optional
function setCookie(name, value, expire)
{
		document.cookie = name + "=" + escape(value)
		    + ( (expire == null) ? "" : ("; expires=" + expire.toGMTString()) )
}


function getCookie(Name)
{
     var search = Name + "="
     if (document.cookie.length > 0)
     {
        // if there are any cookies
        offset = document.cookie.indexOf(search)
        if (offset != -1)
        { // if cookie exists
           offset += search.length
           // set index of beginning of value
           end = document.cookie.indexOf(";", offset)
           // set index of end of cookie value
           if (end == -1)
           end = document.cookie.length
           return unescape(document.cookie.substring(offset, end))
        }
     }
}

function initPage()
{
	log("init page.");
	if (getCookie("recentaddr"))
	{
		log(getCookie("recentaddr"));
		var addrs=getCookie("recentaddr").split('|');
		idx=0;
		addrs.forEach(function(val)
			{
				log(val);
				if (val > "")
				{
					var parts=val.split("~");
					if (parts != undefined && parts[0] != "undefined" && parts[1] != "undefined" && parts[2] != "undefined" && parts[3] != "undefined")
					{
						log("Adding:" + parts);
						recentSearches[idx][0] = true;
						recentSearches[idx][1] = parts[0];
						//recentSearches[idx][2] = parts[1];
						//recentSearches[idx][3] = parts[2];
						//recentSearches[idx][4] = parts[3];
						idx++;
					}
				}
			});
	}
	pageInitialized = true;
}

function makeOmnitureCall(whichFunc)
{
	if (!pageInitialized)
	{
		//alert("makeOmnitureCall - page not initialized yet!");
		return false;
	}

	if (!doOmniture)
	{
		//if Omniture is disabled, abort to be sure there are no errors.
		return false;
	}
	
	switch(selectedDrawer){
		case 'voice':
			drawerLabel='Voice Coverage';
		break;
		case 'data':
			drawerLabel='Data, Email and Multimedia';
			break;
		case 'walkietalkie':
			drawerLabel='Nextel Direct Connect®';
			break;
	}
	switch(selectedTab) {
		case 'sprint':
			tabLabel='Sprint Devices';
			break;
		case 'nextel':
			tabLabel='Nextel Devices';
			break;
		case 'combo':
			tabLabel='PowerSource Devices';
			break;
		case 'wimax':
			tabLabel='Sprint Devices with 4G';
			break;
	}

	switch(whichFunc) {
		case 'coverage':
			if (Analytics != undefined && Analytics.CovTool != undefined) {
				log("Calling Analytics.CovTool.coverageDevice(" + drawerLabel + "," + tabLabel + ")" );
				var t=setTimeout("Analytics.CovTool.coverageDevice('" + drawerLabel + "', '" + tabLabel + "')",100);
				//Analytics.CovTool.coverageDevice(drawerLabel, tabLabel);
			}
			else
			{
				log("Analytics not defined");
			}
			break;
		case 'mapit':
			if (Analytics != undefined && Analytics.CovTool != undefined) {
				log("Calling Analytics.CovTool.mapItHandler('" + currentCity + "','" + currentState + "','" + currentZip + "')"); 
				//Beore PJ2331 var t=setTimeout("Analytics.CovTool.mapItHandler('" + document.getElementById("frmImpact2").mapcity.value + "','" + document.getElementById("frmImpact2").mapstate.value + "','" + document.getElementById("frmImpact2").mapzip.value + "')",100);
				var t=setTimeout("Analytics.CovTool.mapItHandler('" + currentCity + "','" + currentState + "','" + currentZip + "')",100);
			}
			else
			{
				log("Analytics not defined");
			}
			//Old omniture code.
			//s_prop33="";
			//s_prop34="";
			break;
	}

	//TODO: Use settimeout to call these functions in the background, and then it should be safe to have them triggered
	//      on the click event instead of waiting until the end.

	//Old omniture code.
	//log("calling omniture. s_prop32=" + s_prop32 + ", s_prop33=" + s_prop33 + ", s_prop34=" + s_prop34);
	//s_gs(s_account);

}

function openPrintPage()
{
	var printform = document.getElementById("printform");
	if (printform != null)
	{
		printform.printmapscale.value=scale;
		printform.printcenterx.value=centerX;
		printform.printcentery.value=centerY;
		printform.covtype.value=selectedTab;
		printform.servtype.value=selectedDrawer;
		printform.covvoicesprint.value=covvoicesprint[currentLocation];
		printform.covvoicenextel.value=covvoicenextel[currentLocation];
		printform.covvoicecombo.value=covvoicecombo[currentLocation];
		printform.covdatasprint.value=covdatasprint[currentLocation];
		printform.covdatanextel.value=covdatanextel[currentLocation];
		printform.covdatacombo.value=covdatacombo[currentLocation];
		printform.covdatawimax.value=covdatawimax[currentLocation];
		printform.covwalkietalkiesprint.value=covwalkietalkiesprint[currentLocation];
		printform.covwalkietalkienextel.value=covwalkietalkienextel[currentLocation];
		printform.covwalkietalkiecombo.value=covwalkietalkiecombo[currentLocation];
	}
	popUp('', 'mappreview', 850, 600, 'yes', false);
	document.getElementById("printform").submit();
	return false;
}