﻿// JScript File

var xMin;
var yMin;
var xMax;
var yMax;
var width;
var height;

function doOnload() {
    xMin = parseInt(document.getElementById('ctl00_ContentPlaceHolder1_xMin').value);
    yMin = parseInt(document.getElementById('ctl00_ContentPlaceHolder1_yMin').value);
     xMax = xWidth('body');
    yMax = yMin + 500;
     width = xMax - xMin;
    height = yMax - yMin;
}
    
function loaded() {
    document.getElementById('ctl00_ContentPlaceHolder1_imgMap').onclick = doClick;
    document.getElementById('ctl00_ContentPlaceHolder1_imgMap').style.display = 'block';
    document.getElementById('loading').style.display = 'none';
}

function doClick(e) {
    var evt = new xEvent(e);
	 var x = parseInt(evt.pageX) - xMin;
	var y = parseInt(evt.pageY) - yMin;
	var q = "";
	
	 //Center the view 
    if (document.getElementById('ctl00_ContentPlaceHolder1_optCenter').checked)
        {
        q = 'Default.mapx?Todo=CENTER&x=' + x + '&y=' + y + '&Random=' + Math.floor(Math.random()*1000000);
        }
    //Center and zoom in
    else if (document.getElementById('ctl00_ContentPlaceHolder1_optZoomCenter').checked)
        {
        var slider = document.getElementById('ctl00_ContentPlaceHolder1_sliderValue');
        var currentVal = document.getElementById('ctl00_ContentPlaceHolder1_currentSliderVal');
        
        if (currentVal.value >= 8) //Don't zoom in if its at the max zoom level
            return;
            
        slider.value = parseInt(slider.value) +1;
        updateSliderDisplay(slider);
        updateLegendDisplay(slider.value);
        currentVal.value = slider.value; //Save the current value
       
        q = 'Default.mapx?Todo=CENTERZOOM&x=' + x + '&y=' + y +  '&Random=' + Math.floor(Math.random()*1000000);
        }
    renderMap(q);
}

//Set the slider's handle position since it doesn't auto update when the value is changed programmatically
function updateSliderDisplay(sliderTextBox) {
    if (sliderTextBox != null) 
    {
        var sliderExt = $find("sliderExt");
        if (sliderExt != null)
            sliderExt.set_Value(sliderTextBox.value);
    }
}

function updateLegendDisplay(level) {
    var legend = document.getElementById('ctl00_ContentPlaceHolder1_legenddiv'); //'ctl00_ContentPlaceHolder1_pnlLegend');
    //alert(legend);
    if (legend != null)
    {
        //alert(level);
        if (level >= 5)
            legend.style.display = "block";
        else
            legend.style.display = "none";
    }
}

function renderMap(path) {
    document.getElementById('ctl00_ContentPlaceHolder1_imgMap').onclick = null; //prevent user from clicking while loading
    document.getElementById('loading').style.display = 'block';
    document.getElementById('ctl00_ContentPlaceHolder1_imgMap').style.display = 'none';
    document.getElementById('ctl00_ContentPlaceHolder1_imgMap').setAttribute('src', path);
}

//Called on the slider's onChange event, or to simulate the event
function sliderChanged(sliderId, currentValId) {
    var slider = document.getElementById(sliderId);
    var currentVal = document.getElementById(currentValId); //current value from hidden field
    if (slider.value != currentVal.value)
    {
        var q = 'Default.mapx?Todo=ZOOMTOLEVEL&from=' + currentVal.value + '&to=' + slider.value + '&Random=' + Math.floor(Math.random()*1000000);
        currentVal.value = slider.value;
        renderMap(q);
        updateLegendDisplay(slider.value);
     }
}

function buttonZoomOut(sliderId, currentValId) {
    var slider = document.getElementById(sliderId);
    if (slider.value <= 1) //Don't zoom out farther than level 1
        return;
    slider.value = parseInt(slider.value) -1;
    sliderChanged(sliderId, currentValId); 
    updateSliderDisplay(slider);
}

function buttonZoomIn(sliderId, currentValId) {
    var slider = document.getElementById(sliderId);
    if (slider.value >= 8) //Don't zoom in farther than level 8
        return;
    slider.value = parseInt(slider.value) +1;
    sliderChanged(sliderId, currentValId); 
    updateSliderDisplay(slider);
}

function buttonResetMap(sliderId, currentValId) {
    var slider = document.getElementById(sliderId);
    var currentVal = document.getElementById(currentValId);
    slider.value = 1;
    currentVal.value = slider.value;
    var q = "Default.mapx?Todo=Full&Width=650&Height=500&Random={0}" + Math.floor(Math.random()*1000000);
    renderMap(q);
    updateSliderDisplay(slider);
    updateLegendDisplay(slider.value);
}


