﻿///object for ensuring correct layer order
piscesOverlays = function() {

    //dictionary of [layer_name],[layer object]
    //populated in MainPageOpt.aspx.vb - JavscriptOverlayObjects()
    var overlays;

    //theLayers - a comma separated string of layer names,
    //where the spaces in the layer name have been replaced by _'s
    //
    //create a new array, push the layer objects into it [where they match a layer_name that has been passed in]
    //then sort this array by sequence 
    //return a comma separated string of layer names that occur in the ordered list  
    function getOrderedLayers(theLayers) {
        var orderedLayers = new Array;
        var layersNamesArray = theLayers.split(",");
        var layerName;
       // alert(theLayers);
        for (var x = 0; x < layersNamesArray.length; x++) {
            layerName = layersNamesArray[x];

            if (overlays[layerName] != null) {
                //push selected layer onto list
                orderedLayers.push(overlays[layerName])
            }
        }
        //order them by sequence
        orderedLayers = orderedLayers.sort(layerSort);
        // alert(orderedLayers[orderedLayers.length-1].name);
        theLayers = "";
        for (var x = 0; x < orderedLayers.length; x++) {
            (theLayers != "") ? theLayers += "," : "";
            //create , seperated string
            theLayers += orderedLayers[x].name;
        }

        return theLayers;
    }
    function setOverlays(e) {
        overlays = e;
    }
    function getOverlays(e) {
        return overlays;
    }
    //private function to sort layers objects by sequence
    function layerSort(a, b) {
        return (b.sequence - a.sequence);
    }

    //external pointers to functions
    return {
        setOverlays: setOverlays,
        getOverlays: getOverlays,
        getOrderedLayers: getOrderedLayers
    }
} ();


//**************************************
//          OVERLAY OBJECT
//**************************************
function OverlayObj() {
    this.id = null;
    this.name = null;
    this.sequence = null;
    this.disabled = null;
    this.include = null;
}
