function NLWISLayerList_ScaleSet(){
    goCWCJSAPI.TriggerEvent(MAP_EXTENT_CHANGED);
    return true;
}

function NLWISLayerListWRegisterForEvent(){
    goCWCJSAPI.RegisterEvent(MAP_EXTENT_CHANGED, "NLWISLayerListWChanged");
    goCWCJSAPI.RegisterEvent(LAYER_STATUS_CHANGED, "NLWISLayerListWChanged");
}

function NLWISLayerListWChanged(){
        aHiddenVars = new Array(1);
        aHiddenVars[0] = new Array(2);
        aHiddenVars[0][0] = "NLWISLAYERLIST_VIS";
        aHiddenVars[0][1] = "";
    
        szOnLoad = 'NLWISLayerList_UpdateHTML()';
        goCWCJSAPI.CallServer(szOnLoad, aHiddenVars);
}

function NLWISLayerList_UpdateHTML(){
    var elemVis, elemSel, elemScale;
    var doc = goCWCJSAPI.GetDocumentObject();
    var strLyrs = doc.forms[0].NLWISLAYERLIST_VIS.value;
    var arrLyrs = strLyrs.split(";");
    var oLyrs = new Array();
    var arrLyr;
    
    for (var i=0; i<arrLyrs.length;i++){
        arrLyr = arrLyrs[i].split(",");
        oLyrs[arrLyr[0]] = new Array();
        oLyrs[arrLyr[0]]["visible"] = arrLyr[1];
        oLyrs[arrLyr[0]]["queryable"] = arrLyr[2];
        oLyrs[arrLyr[0]]["maxscale"] = arrLyr[3];
        oLyrs[arrLyr[0]]["minscale"] = arrLyr[4];
    }

    for (var i=0; i<NLWISLayerList_getNumMapLayers(); i++){
        elemVis = document.getElementById(aLayername[i]);
        if(elemVis!=null && (elemVis.name=="layerlist[]" || elemVis.value==aLayername[i])){
            elemSel = elemVis.nextSibling;
            if (oLyrs[aLayername[i]]["visible"] == 1 &&
                oLyrs[aLayername[i]]["queryable"] == 1){
                elemSel.disabled = false;
            } else {
                elemSel.checked = false;
                elemSel.disabled = true;
            }
            elemScale = elemVis.parentNode.lastChild;
            if (isIE){  // IE has some empty last child. No idea where it's coming from.
                elemScale = elemScale.previousSibling;
            }
            NLWISLayerListUpdateScaleIMG(oLyrs[aLayername[i]], i, elemScale);
        }
    }
}

function NLWISLayerListUpdateScaleIMG(arrLyr, idx, elemScale){
    if (elemScale.nodeName != "IMG"){
        return;
    }
    
    var nScale = parseFloat(goCWCJSAPI.oMap.scale);
    var strAlt = "";
    if (arrLyr["maxscale"] != -1 && nScale > arrLyr["maxscale"]) {
        nScale = arrLyr["maxscale"]; 
        strAlt = NLWISLayerList_getAltTextZoomIn()
    } else if (arrLyr["minscale"] != -1 && nScale < arrLyr["minscale"]) {
        nScale = arrLyr["minscale"]
        strAlt = NLWISLayerList_getAltTextZoomOut()
    }
    
    var strOnClickEvent = "onclick";
    if (isIE){
        strOnClickEvent = "onClick";        
    }
    if (strAlt != ""){
        strAlt = strAlt.replace("(scale)", nScale);
        elemScale.setAttribute("src", NLWISLayerList_getScaleFileSrc());
        elemScale.setAttribute(strOnClickEvent, "layerlist_setscale(" + nScale + ")");
        elemScale.setAttribute("alt", strAlt);
    } else {
        elemScale.setAttribute("src", NLWISLayerList_getNoneFileSrc());
        elemScale.setAttribute(strOnClickEvent, "");
        elemScale.setAttribute("alt", "");
    }
}