//Terrain stuff
function chkTerrain_click()
{
    var chkTerrain = document.getElementById ("chkTerrain");
    var divTerrain = document.getElementById ("divTerrain");
    
    if (chkTerrain != null)
    {
        if (!chkTerrain.checked)
            divTerrain.style.display ="none";
        else
        {
            //Don't show even if checked when no terrain to show
            if (route != null && route.getVertexCount() > 0)
            {
                RefreshTerrain();
                divTerrain.style.display = "block";
            }
            else
                divTerrain.style.display = "none";
        }
    }
    
}

var xmlhttp = null;
var lastData = "";

function RefreshTerrain()
{
    var URL;
    var lblData = document.getElementById ("lblData");
    var mapDiv = document.getElementById ("map");
    var imgTerrain = document.getElementById ("imgTerrain");
    var divTerrain = document.getElementById ("divTerrain");
    var chkTerrain = document.getElementById ("chkTerrain");
    var lblUnits = document.getElementById("lblDistanceUnits");
    var data;
    
    if (divTerrain == null)
        return;
          
    if (chkTerrain.checked && route != null && route.getVertexCount() > 1)
    {     
        data = "KM=" + lblUnits.value + "&Width=" + mapDiv.style.width + "&LatLon=" + lblData.value ;
        
        if (data == lastData)
            return ;

        if (window.XMLHttpRequest)
        {
            xmlhttp=new XMLHttpRequest();
        }
        else if (window.ActiveXObject)
        {// code for IE5 and IE6
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
        
        if (xmlhttp != null)
        {
          url = "/GenerateTerrain.aspx";
          lastData = data;          
          xmlhttp.onreadystatechange=Terrain_StateChange;
          xmlhttp.open("POST",url,true);
          
          xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
          xmlhttp.setRequestHeader("Content-length", data.length);
          xmlhttp.send(data);
        }
    }
    else
    {
        //Don't show the terrain
        divTerrain.style.display = "none";
    }
}

function Terrain_StateChange()
{
    if (xmlhttp != null && xmlhttp.readyState==4)
    {// "loaded"
        var divTerrain = document.getElementById ("divTerrain");
        
        if (xmlhttp.status==200)
        { //OK
            if (xmlhttp.responseText != null && xmlhttp.responseText != "")
            {
                var imgTerrain = document.getElementById ("imgTerrain");
             
                if (imgTerrain != null && divTerrain != null)
                {
                    imgTerrain.src = xmlhttp.responseText;
                    divTerrain.style.display ="block";
                }
            }
            else
            {
                divTerrain.style.display ="none";
            }
            
        }
        else if (xmlhttp.status==304)
        {
            //Do nothing .. that's fine... just means multiple requests for the same terrain
        }
        else
        {
            //An actual error of some sort
            divTerrain.style.display ="none";
        }
    }
}
