function ShowToolbox()
{
    document.getElementById("gisToolbox").style.display = '';
    ResetToolbox();
    document.getElementById("linkCoords").onclick();
}

function ResetToolbox()
{
    document.getElementById("txtLon").value = '';
    document.getElementById("txtLat").value = '';
    document.getElementById("txtPostalCode").value = '';    
    document.getElementById("chkMark").checked = false;
}

function ZoomLocation()
{
    var curInputType = document.getElementById("curInputBox").value;
    switch(curInputType)
    {
        case "Coordinates":
            ZoomCoords();
            break;
        case "Postal Code":
            ZoomPostal();
            break;
        default: break;
    }
}

function ZoomCoords()
{
    var lon = 0.0;
    var lat = 0.0;
    
    lon = parseFloat(document.getElementById("txtLon").value);
    lat = parseFloat(document.getElementById("txtLat").value);

    if(isNaN(lon) || isNaN(lat))
    {
        alert("Invalid coordinates.");
        return;
    }

    CloseAllPopups();

    var coord = new AGCoord(lat, lon);
    var zoomLevel = g_map.getZoomLevel();
    g_map.centreAndScale(coord, zoomLevel);
    
    CheckMarker(coord);    
}

function ZoomPostal()
{
    var _pcode = document.getElementById("txtPostalCode").value;

    if(isNaN(_pcode))
    {
        alert("Invalid Postal Code");
        return;
    }

    var _url = "ashx/GetCoordsByPostalCode.ashx?";
    _url = _url + "PCode=" + _pcode;
    _url = _url + "&RandomID=" + Math.random();


    var _loader = document.getElementById("divLoader");    
    var _mapSize = g_map.getSize();
    var _mapWidth = _mapSize.width;
    var _mapHeight = _mapSize.height;
    var _centreX = (_mapWidth / 2) - 112;
    var _centreY = ((_mapHeight / 2) - 32) + 150;
    _loader.style.left = _centreX + "px";
    _loader.style.top = _centreY + "px";
    _loader.style.zIndex = 1000;
    _loader.style.display = '';

    $.getJSON(_url,
                function(json) {
                    _loader.style.display = 'none';  
                    PostalResult(json)
                }
            );
}

function PostalResult(json)
{
    if (json.Result.Lat != null || json.Result.Lon != null)
    {
        var coord = new AGCoord(json.Result.Lat, json.Result.Lon);
        var zoomLevel = 13;
        g_map.centreAndScale(coord, zoomLevel);
        CheckMarker(coord);
        CloseAllPopups();
    }
    else
    {
        alert("No results found.");
    }
}

function ChangeToFeature(obj, divToDisplay)
{
    var aList = document.getElementById("divFeaturesList");
    var arrFeatures = aList.getElementsByTagName("a");
    for(var _index = 0; _index < arrFeatures.length; _index++)
    {
        arrFeatures[_index].style.backgroundColor = "#2667aa";
    }
    
    obj.style.backgroundColor = "#012E65";
    
    var divList = document.getElementById("ContentBox");
    var divChild = divList.childNodes.item(0);
    while(divChild != null)
    {
        if(divChild.nodeName.valueOf().toLowerCase() == "div")
        {
            divChild.style.display = "none";
        }
        divChild = divChild.nextSibling;
    }
    
    var displayDiv = document.getElementById(divToDisplay);
    displayDiv.style.display = '';
    var arrInputs = displayDiv.getElementsByTagName("input");
    arrInputs[0].focus();
    document.getElementById("curInputBox").value = obj.innerHTML;
}

function CheckMarker(coord)
{
    var chkMarker = document.getElementById("chkMark");

    if(chkMarker.checked)
    {
        var oAGIcon = new AGIcon();
        oAGIcon.image = "images/marker.png";
        oAGIcon.iconSize = new AGSize(20,20);
        oAGIcon.iconAnchor = new AGPoint(-10,-10);
        oAGIcon.infoDisplayAnchor = new AGPoint(10,-20);
        
        var defaultMarkerOption = new AGMarkerOptions(oAGIcon, false);
        //defaultMarkerOption.title = "";
        var oMarker = new AGMarker(coord, defaultMarkerOption);
        g_map.addOverlay(oMarker, "GISToolboxMarker");
    }
}

function CheckKeyPressed(e)
{
    var unicode = e.keyCode? e.keyCode : e.charCode;

    if (unicode == 13)
    {
        ZoomLocation();
        return false;  
    }                
}
