﻿// ############################################################
// GetMapDefinition
// ############################################################
function GetMapDefinition() {
    var mapDefinition = _MAP_DEFINITION;
    return mapDefinition;
}

// ############################################################
// GetMapFrame
// ############################################################
function GetMapFrame() {
    //try { return document.frames.item("Map").frames.item("mapFrame"); }
    try { return window.frames["Map"].frames["mapFrame"]; }
    catch (e) { return; }
}

// ############################################################
// GetMapFrame
// ############################################################
function GetMapScale() {
    try { return GetMapFrame().GetScale(); }
    catch (e) { return 0; }
}

// ############################################################
// GetMapViewerFrame
// ############################################################
function GetMapViewerFrame() {
    //try { return document.frames.item("Map"); }
    try { return window.frames["Map"]; }
    catch (e) { return; }
}

// ############################################################
// GetMapViewerFrame
// ############################################################
function GetPropertyFrame() {
    //try { return document.frames.item("Map").frames.item("mapFrame").frames.item("PropertyCtrl"); }
    try { return window.frames["Map"].frames["mapFrame"].frames["PropertyCtrl"]; }
    catch (e) { return; }
}

// ############################################################
// GetSessionId
// ############################################################
function GetSessionId() {
    var sessionId = _SESSION_ID;
    return sessionId;
}

// ############################################################
// GetTaskFrame
// ############################################################
function GetTaskFrame() {
    //try { return document.frames.item("Map").frames.item("taskFrame").frames.item("taskPaneFrame"); }
    try { return window.frames["Map"].frames["taskFrame"].frames["taskPaneFrame"]; }
    catch (e) { return; }
}


// ############################################################
// RequestPointSelection
// ############################################################
function RequestPointSelection(x1, y1, x2, y2, append, layerName) {
    var sessionId = _SESSION_ID;
    var geom = GetMapFrame().MakeWktPolygon(x1, y1, x2, y2);
    var maxfeatures = 1;
    var which = 7;
    var url = GetMapFrame().webAgent;
    var req = url + "?OPERATION=QUERYMAPFEATURES&VERSION=1.0.0&PERSIST=1&MAPNAME=" + encodeURIComponent(GetMapFrame().mapName) + "&SESSION=" + sessionId + "&SEQ=" + Math.random();
    req += "&LAYERNAMES=" + encodeURIComponent(layerName) + "&GEOMETRY=" + geom + "&SELECTIONVARIANT=INTERSECTS";
    if (maxfeatures != 0)
        req += "&MAXFEATURES=" + maxfeatures;

    var selRequest = GetMapFrame().CreateRequestHandler();
    selRequest.open("GET", req, false);
    selRequest.send(null);
    if (selRequest.responseXML) {
        //alert(selRequest.responseText);
        GetMapFrame().ProcessFeatureInfo(selRequest.responseXML.documentElement, append, which);
    }
    else {
        GetMapFrame().RequestFailed("No response");
    }
}

// ############################################################
// RequestPointSelection
// ############################################################
function RefreshMap() {
    GetMapFrame().Refresh();
}
