/*
    Copyright (c) 2006, SpatialPoint, LLC.
    
    All rights reserved.
    
    http://www.spatialpoint.com
*/

var spMap;
var displayCoverageChecked;

var docDom = (document.getElementById ? true : false);
var docLay = (document.layers ? true : false);
var docAll = (document.all ? true : false);

function zoomToDefaultViewport()
{
   spMap.setDefaultZoom();

}

function setNavigateMode()
{
    spMap.setMode(spMap.MODE_NAVIGATE);

} 

function mapZoomExtents()
{
    spMap.zoomExtents();
}

function mapZoomOut()
{
    spMap.zoomOut();
}

// Cross-browser implementation to retrieve object by it's ID.
// TODO: Complete getObjectById for other browsers.
function getObjectById(id)
{
	if (docLay)
	{
		return document[id];
	}
	else
    	if (docAll)
    	{
			return document.all(id);
		}
		else
      		if (docDom)
      		{
				return document.getElementById(id);
			}
}

function mapViewPortChanged()
{
    setZoomLevelIndex(spMap.zoomLevel);
    
    updateLegend(spMap.zoomLevel);
    
    spMap.hideToolTip();
    
    //if (parent.document.getElementById('mapIFrame') != null)
    //{
    //    parent.document.getElementById('mapIFrame').height = spMap.dimensions.height + iFrameDiff;
    //}
}

function showDataCoverage() {
    //spMap.displayThemes = getDisplayThemes();
    spMap.displayThemes = ["Streets", "Voice*", "Stores", "Roaming*", "Overview*", "UMTS"];
    spMap.refresh();
   
    
}

function showVoiceCoverage() {
    //spMap.displayThemes = getDisplayThemes();
    spMap.displayThemes = ["Streets", "Voice*", "Stores", "Roaming*", "Overview*"];
    spMap.refresh();


}

SpatialPoint_MapClient.prototype.onCoverageTypeVoice = function() {
    document.getElementById("PanelDataCoverage").style.backgroundColor = '';
    document.getElementById("PanelDataCoverage").style.fontWeight = '';
    document.getElementById("PanelVoiceCoverage").style.backgroundColor = 'white';
    document.getElementById("PanelVoiceCoverage").style.fontWeight = '600';

    showControl('MapLegendVoice');
    hideControl('MapLegendData');
}

SpatialPoint_MapClient.prototype.onCoverageTypeData = function() {
    document.getElementById("PanelDataCoverage").style.fontWeight = '600';
    document.getElementById("PanelDataCoverage").style.backgroundColor = 'white';
    document.getElementById("PanelVoiceCoverage").style.backgroundColor = '';
    document.getElementById("PanelVoiceCoverage").style.fontWeight = '';

    showControl('MapLegendData');
    hideControl('MapLegendVoice');
}

function showCoverage(visible)
{
    if (visible)
    {
        showControl("coverageLegend");
        //spMap.displayThemes = [<%=GetDisplayCoverageNames() %>];
    }
    else
    {
        hideControl("coverageLegend");
        //spMap.displayThemes = ["Streets"];
    }
    
    spMap.setToolTips(visible);
    spMap.displayThemes = getDisplayThemes();
    spMap.refresh();
}

function showStores(visible)
{
    if (visible)
    {
        showControl("storesLegend");
        //spMap.displayThemes = ["Base*", "Stores", "Streets"]);
    }
    else
    {
        hideControl("storesLegend");
    }
    
    spMap.displayThemes = getDisplayThemes();
    spMap.refresh();
}

function getDisplayThemes()
{
    var displayThemes = ["Streets"];
    
    if (document.getElementById("showCoverage").checked)
    {
        displayThemes.push("*");
    }
    
    /*

    if (document.getElementById("showStores").checked)
    {
        displayThemes.push("Stores");
    }
    
    */
    
    return displayThemes;
}

function updateLegend(zoomLevel)
{
    hideControl("overviewLegend");
    showControl("detailLegend");
}

var LEGEND_PREFIX = ["Best", "Very Good", "Good", "Pretty Good"];
var LEGEND_TEXTS = 
    ["You should be able to place a call outdoors, in a vehicle and in most buildings",
    "You should be able to place a call outdoors or in a vehicle, but may not get service in some buildings",
    "You should be able to place a call outdoors or in a vehicle, but may not get service in buildings",
    "You should be able to place a call outdoors or in a vehicle, but typically may not get service in buildings",
    "No Service"];

function mapToolTipResponse(x, y, text, script)
{
    var legendImage = document.getElementById("legendImage").style;
    var legendTextControl = document.getElementById("legendHighlightText");

    for (var i = 0; i < LEGEND_PREFIX.length; i++)
    {
        if (text.indexOf(LEGEND_PREFIX[i]) == 0)
        {
            legendControl = document.getElementById("legendHighlight").style;
            //legendControl.top = legendImage.top;
            legendControl.left = (i * 33);
            legendTextControl.innerText = LEGEND_TEXTS[i];
        }
    }
                
    spMap.setToolTip(x, y, text, script);
}


function onCoverageLocatorControlLoad() {
 
    updateLegend(spMap.zoomLevel);
    
    if ("checked" != displayCoverageChecked)
    {
        hideControl("coverageLegend");
    }
}

// Setup primary toolbar.

var cells4;

function doRadio() 
{
	// loop over all the buttons in the radio group
	for (var i = 0; i < cells4.length; i++)
	{
		if (cells4[i].id.match(/Mode$/))
		{
			cells4[i].setValue(this == cells4[i]);	// if the clicked button then set value to true
		}
	}
}

function OnMapToolbalControlLoad()
{
    cells4 = getObjectById("toolbar-main").rows[0].cells;

    for (var i = 0; i < cells4.length; i++) 
    {
	    if (!(cells4[i].id.substring(0,1) == '|'))
	    {
		    createButton(cells4[i]);
    		
		    //cells4[i].setAlwaysUp(true);
		    if (cells4[i].id.match(/Mode$/))
		    {
			    cells4[i].setToggle(true);
			    if (i == 0)
				    cells4[i].setValue(true);
			    cells4[i].onaction = doRadio;
		    }
	    }
    }
}

function mapSetDimensions(width, height)
{ 
    var dimensions = new Object();
    dimensions.width = width;
    dimensions.height = height;
    spMap.setDimensions(dimensions);
}

function mapSetDimensionsUI(mapDimensions)
{
	var dimensions = mapDimensions.split('x');
	
	mapSetDimensions(dimensions[1], dimensions[0]);
}

function mapResizeMapControlHandler(sizeOption)
{	
    var size = "";
	if (sizeOption.value==1)
	{	document.getElementById("imgMapSizeMedium").disabled=false;
		document.getElementById("imgMapSizeMedium").src="Images/MapSize_Medium.gif";
		//document.getElementById("imgMapSizeLarge").disabled=false;
		//document.getElementById("imgMapSizeLarge").src="Images/MapSize_Large.gif";
		sizeOption.src="Images/MapSize_Small_over.gif";
		sizeOption.disabled=true;
		size = "350x480";
	}
	
	if (sizeOption.value==2)
	{	
		document.getElementById("imgMapSizeSmall").disabled=false;
		document.getElementById("imgMapSizeSmall").src="Images/MapSize_Small.gif";
		//document.getElementById("imgMapSizeLarge").disabled=false;
		//document.getElementById("imgMapSizeLarge").src="Images/MapSize_Large.gif";
		sizeOption.src="Images/MapSize_Medium_over.gif";
		sizeOption.disabled=true;
		size = "500x700";
	}
	
	if (sizeOption.value==3)
	{	
		document.getElementById("imgMapSizeSmall").disabled=false;
		document.getElementById("imgMapSizeSmall").src="Images/MapSize_Small.gif";
		document.getElementById("imgMapSizeMedium").disabled=false;
		document.getElementById("imgMapSizeMedium").src="Images/MapSize_Medium.gif";
		sizeOption.src="Images/MapSize_Large_over.gif";
		sizeOption.disabled=true;
	}

	
	mapSetDimensionsUI(size);
}


function deselect() 
{

  if (document.selection)
  {
    document.selection.empty();
  }
  else if (window.getSelection)
  {
    window.getSelection().removeAllRanges();
  }
}





                                                
