
// Legend Code

var legendWindow = null;
var legendX      = null;
var legendY      = null;


function updateLegend( node, e ) {
    if (node.Category == "Layer") {
        menuLegend( node.Value, e );
    }
}

function onNewLegendMenu( sender, eventArgs ) {
    // Redirect to Window if already popped
    if (legendWindow != null)
        popLegend( legendMenu.Items[1].ImageUrl );

    // Avoid menu hiding after ajax update
    else if (legendX != null && legendY != null)
        legendMenu.ShowAt( legendX, legendY );
}

function onPopLegend( sender, eventArgs ) {
    popLegend( legendMenu.Items[1].ImageUrl );
}

function menuLegend( layerId, e ) {
    legendX = e.x;
    legendY = e.y;
    legendMenu.Items[1].SetImageUrl( "AGIMapControls/images/loading.jpg" );
    legendMenu.Show( e );
    eval( mapMaker.value + ".createLegend( layerId, legendCallback );" );
}

function legendCallback( returnObj ) {
    legendMenu.Items[1].SetImageUrl( returnObj.value );
}

function popLegend( legendUrl ) {
    legendMenu.Hide();
    legendWindow = window.open( legendUrl, "Legend", "width=160, height=600, resizable=yes, scrollbars=yes" );
    legendWindow.focus();
}

