// First two functions used in JSAPI mode
function NLWISQueryInit(){
    var sId = "qrypnt";
    CWCDHTML_CreateLayer(sId, -10, -10, 7, 7, false, "<img src='" + getNLWISQueryImage() + "'><br />");
    CWCDHTML_SetLayerZOrder(sId, 20);
}
function hideNLWISQueryPnt(){
    goCWCJSAPI.DeregisterEvent(MAP_EXTENT_CHANGED, "hideNLWISQueryPnt");
    var gnEventID = goEventManager.findEventID('NLWISMEASURE_RESET');
    goEventManager.deregisterForEvent(gnEventID, "hideNLWISQueryPnt");
    
    var sId = "qrypnt";
    shiftTo(sId, -10, -10)
    hide(sId);
}


function NLWISQuerySelectedWMouseClick(e){
    var str = "&gszQueryLayers=" + document.forms[0].SELECTED_LAYERS.value;
    NLWISQueryWMouseClick(e,str);
}
function NLWISQueryWMouseClick(e,szQueryLayers){
    if (document.forms[0].NAV_CMD.value != "QUERY" &&
        document.forms[0].NAV_CMD.value != "QUERY_SELECTED")
        return true;

    MapWgetMouse(e);
    if (!MapWinsideMap())
        return true;

    var ht = getNLWISQueryHashtable();
    var szPopupURL = ht["popupurl"];
    var szProj = "&proj=" + ht["proj"];
    var nX = document.forms[0].MAP_CURSOR_POS_X.value;
    var nY = document.forms[0].MAP_CURSOR_POS_Y.value;
    var szNav = "&NAV_INPUT_COORDINATES=" + nX + "," + nY;

    if (szQueryLayers == null){
        szQueryLayers = "";
    }

    if (ht["hightlightresults"]){
        if (gCWCJSAPI){
            // this is the interim solution based on bugzilla # 228
            var dtOffX, dtOffY = 0;
            var cursorpixelshift = 2.5;
            if (isNav4) {
                var theMap = getObject("MapLayerDiv");
                dtOffX = e.pageX - theMap.left;
                dtOffY = e.pageY - theMap.top;
            } else if (isNav6) {
                dtOffX = e.pageX;
                dtOffY = e.pageY;
            } else {
                dtOffX = (window.event.clientX + document.body.scrollLeft);
                dtOffY = (window.event.clientY + document.body.scrollTop);
            }

            var sId = "qrypnt";
            shiftTo(sId, dtOffX - cursorpixelshift, dtOffY - cursorpixelshift)
            show(sId);

            goCWCJSAPI.RegisterEvent(MAP_EXTENT_CHANGED, "hideNLWISQueryPnt");
            var gnEventID = goEventManager.findEventID('NLWISMEASURE_RESET');
            goEventManager.registerForEvent(gnEventID, "hideNLWISQueryPnt");
        } else {
            var szQueryCoords = "&gszQueryCoords=" + nX + "," + nY;
            var szPersistentQuery = "&gszPersistentQuery=" + ht["persistantresults"];
            var img = CWCDHTML_GetImage('MapLayerDivImg');
            img.src = gMapDHTMLURL + "&run_query=1" + szQueryCoords + szPersistentQuery + szQueryLayers;
            window.status = img.src;
        }
    }
    szPopupURL += szNav + szProj + szQueryLayers;
    window.frames[ht["iframe"]].location.href = szPopupURL + "&run_query=1";
    window.frames[ht["iframe"]].focus();
    if (isIE){
        resizeRightSection();
    }
    goEventManager.triggerEvent(document.forms[0].NAV_CMD.value, nX, nY );
    return true;
}


// NLWISQueryWSelectedMouseMove
// called when the mouse moves to check if a NLWISQuery NAV_CMD is active.
// If yes, sets function to run on a click of the map.
function NLWISQuerySelectedWMouseMove(e){
    NLWISQueryWMouseMove(e, "QUERY_SELECTED");
}
function NLWISQueryWMouseMove(e, szCMD){
    var szFunc = NLWISQueryWMouseClick;
    if (szCMD == null){
        szCMD = "QUERY";
    } else { // QUERY_SELECTED
        szFunc = NLWISQuerySelectedWMouseClick;
    }
    
    // Make sure the form's variables are initialized.
    // It seems in IE that the mouse move may be called before.
    if (document.forms[0] == null ||
        document.forms[0].NAV_CMD == null ||
        document.forms[0].NAV_CMD.value != szCMD)
        return true;

    document.onmouseup = szFunc;

    var x = (navigator.appName == "Netscape")? e.pageX : event.x+document.body.scrollLeft;
    var y = (navigator.appName == "Netscape")? e.pageY : event.y+document.body.scrollTop;
    if ((navigator.appName == "Netscape") && e.target!=document)
        routeEvent(e);

    return true;
}

function removeSpinner(){
    if (document.layers){
        if (document.layers[0] != null){
            document.layers[0].visibility = "hide";
        }
    } else if (document.all){
        if (document.all.spinner != null){
            document.all.spinner.style.visibility = "hidden";
        }
    } else {
        objEle = document.getElementById("spinner");
        if (objEle != null)
          objEle.style.visibility = "hidden";
    }
}

function onLoadNlwisQuery(){
    try {
        parent.showPage(4, 'resultslyr');
    } catch (e) {}

    // Using IFRAME in tab was causing an exception
    // Just catching it and continuing.
    try {
        self.focus();
    } catch (e) {}
    removeSpinner();
}
