﻿DW =
{
    srchPreview: function(AcontextId) {
        var Wrequest = new MR.Request("srchPreview", "srchPreview", "Services.asmx");
        Wrequest.addArg('fromPage', window.location.pathname);   //  .split('/')[window.location.pathname.split('/').length -1]);
        Wrequest.addArg("orderBy", MR.IdValue.getOrderBy(AcontextId) || "oprettet DESC");
        Wrequest.addArg("pageNo", MR.IdValue.get(AcontextId, 'pageNo') || 1);
        Wrequest.addArg("id", "mainMap");
        Wrequest.insertContextValues("srchResultFrame");
        Wrequest.getInputValues('leftcol');
        Wrequest.submit();
    },

    changeDriftPageView: function() {
        var WsoapE = new MR.Request("changeDriftPageView", "changeDriftPageView", "Services.asmx", function() {
            _handlecbAJAX(MR.Controls.MonoRails["changeDriftPageView"]); DW.srchPreview()
        });
        WsoapE.getInputValues('leftcol');
        WsoapE.submit();
    },

    getNewTiltId: function(AhenvSource) {
        var WsoapE = new MR.Request("getNewTiltId", "getNewTiltId", "Services.asmx", function() {
            Wres = MonoRails['tiltId']['req'][MonoRails['tiltId']['reqSeqID']].responseXML.getElementsByTagName('newTiltID')[0];
            var WtiltId = Wres.textContent ? Wres.textContent : Wres.text;
            return WtiltId;
        });
        WsoapE.addArg('henvID', AhenvSource);
        WsoapE.submit();
    },

    tiltagsListe: function(ApageNo) {
        var WsoapE = new MR.Request("tiltagsListe", "tiltagsListe", "Services.asmx");
        WsoapE.addArg('fromPage', window.location.pathname);

        if (ApageNo)
            MR.IdValue.set('tiltListe', 'pageNo', ApageNo);

        WsoapE.insertContextValues('tiltListe');

        //ensure that it is set to something
        WsoapE.addArg("orderBy", MR.IdValue.getOrderBy('tiltListe') || 'oprettet asc');
        WsoapE.addArg("pageNo", MR.IdValue.get('tiltListe', 'pageNo') || "1");

        WsoapE.insertPageInputs('leftCol');
        WsoapE.insertPageInputs('rightCol');
        waitMessage('srchResultFrame');
        WsoapE.submit();
    },

    henvListe: function(ApageNo) {
        var WsoapE = new MR.Request("henvListe", "henvListe", "Services.asmx");

        if (ApageNo)
            MR.IdValue.set('tiltListe', 'pageNo', ApageNo);

        WsoapE.addArg('fromPage', window.location.pathname);
        WsoapE.addArg("orderBy", MR.IdValue.getOrderBy('henvList') || 'oprettet asc');
        WsoapE.addArg("pageNo", MR.IdValue.get('tiltListe', 'pageNo') || "1");
        WsoapE.insertPageInputs('leftCol');
        WsoapE.insertPageInputs('rightCol');
        waitMessage('srchResultFrame');
        WsoapE.submit();
    },

    newHenvWindow: function(AhenvId, AfocusOnType, AfocusOnId) {
        //if window is already open
        if (MR.getId('winHenv' + AhenvId)) {
            MR.DHTMLfx.window.stackTop('winHenv' + AhenvId);
            return;
        }
        var WsoapE = new MR.Request("newHenvWindow", "newHenvWindow", "Services.asmx");
        WsoapE.addArg('henvId', AhenvId);
        WsoapE.addArg('focusOnType', AfocusOnType);

        if (AfocusOnId && AfocusOnId.length > 0)
            WsoapE.addArg('focusOnId', AfocusOnId);
        WsoapE.submit();
    },

    switchHenvWinTab: function(AhenvId, AfocusOnId) {
        var WsoapR = new MR.Request("switchHenvWinTab", "switchHenvWinTab", "Services.asmx");
        WsoapR.addArg('henvId', AhenvId);
        WsoapR.addArg('focusOnType', AfocusOnId);

        if (AfocusOnId && AfocusOnId.length > 0)
            WsoapR.addArg('focusOnId', AfocusOnId);
        //collect current tabs
        MR.DHTMLfx.tabs.supplyIdsFromBar(WsoapR, 'repTabsFrame' + AhenvId + '-bar');
        WsoapR.submit();
    },

    removeHenvWinTab: function(AhenvId, AremoveId, AfocusOnId) {
        var WsoapE = new MR.Request("removeHenvWinTab", "removeHenvWinTab", "Services.asmx");
        WsoapE.addArg("henvId", AhenvId);
        WsoapE.addArg("removeId", 'winHenvTab' + AhenvId + "-" + AremoveId);
        WsoapE.addArg('focusOnId', 'winHenvTab' + AhenvId + "-" + AfocusOnId);

        //collect current tabs
        /*        var WcurTabs = MR.getId('tabsBar-winHenv'+AhenvId).getElementsByTagName('span');
        for (var i =0; i<WcurTabs.length; i++)
        {
        WsoapE.addArg(WcurTabs[i].id, (WcurTabs[i].innerText?WcurTabs[i].innerText:WcurTabs[i].textContent) , 'tabsList');
        } */
        MR.DHTMLfx.tabs.supplyIdsFromBar(WsoapE, 'repTabsFrame' + AhenvId + '-bar');
        WsoapE.submit();
    },

    updateHenv: function(AhenvId, AfollowupFunc) {
        var WsoapE = new MR.Request("updateHenv", "updateHenv", "Services.asmx");
        WsoapE.addArg("henvId", AhenvId);
        WsoapE.addArg('followupFunc', AfollowupFunc);
        WsoapE.insertPageInputs('repTabsFrame' + AhenvId + '-innerframe');
        WsoapE.submit();
    },


    changeHenvWinTab: function(AhenvId, AremoveId, AnewId, AnewTitle) {
        var WsoapE = new MR.Request("changeHenvWinTab", "removeHenvWinTab", "Services.asmx");
        WsoapE.addArg("henvId", AhenvId);
        WsoapE.addArg("removeId", 'winHenvTab' + AhenvId + "-" + AremoveId);
        WsoapE.addArg('newId', 'winHenvTab' + AhenvId + "-" + AnewId);
        WsoapE.addArg('newTitle', AnewTitle);

        MR.DHTMLfx.tabs.supplyIdsFromBar(WsoapE, 'repTabsFrame' + AhenvId + '-bar');
        WsoapE.submit();
    },

    addHenvWinTab: function(AhenvId, AddType, AaddId) {
        var WsoapR = new MR.Request("addHenvWinTab", "addHenvWinTab", "Services.asmx");
        WsoapR.addArg('henvId', AhenvId);
        WsoapR.addArg('addType', AddType);

        if (AaddId && AaddId.length > 0)
            WsoapR.addArg('addId', AaddId);

        MR.DHTMLfx.tabs.supplyIdsFromBar(WsoapR, 'repTabsFrame' + AhenvId + '-bar');
        WsoapR.submit();
    },

    updateTilt: function(AhenvId, AtiltId, AfollowupFunc, Afinalize) {
        var WsoapE = new MR.Request("updateTilt", "updateTilt", "Services.asmx");
        WsoapE.addArg("henvId", AhenvId);
        WsoapE.addArg("tiltId", AtiltId);
        WsoapE.addArg("finalize", (Afinalize === true ? 'true' : 'false'));
        WsoapE.addArg('followupFunc', AfollowupFunc);
        WsoapE.insertPageInputs('repTabsFrame' + AhenvId + '-innerframe');
        WsoapE.submit();
    },

    /******************* end ordertabsBar ***********************/

    updateNyHenvendelse: function() {
        var WsoapR = new MR.Request("updateHenvData", "updateHenvData", "Services.asmx");
        WsoapR.insertPageInputs();
        //WsoapR.addArg("kommentar", MR.getId('kommentar').value);
        WsoapR.submit();
    },

    updateMiniMap: function() {
        var wRoadNo, wAddressNo;
        if (MR.getId('mapWindow')) {
            wRoadNo = "Window_RoadSelect-value";
            wAddressNo = "Window_AddrSelect-value";
        }
        else {
            wRoadNo = "address-roadName-value";
            wAddressNo = "address-roadNo-value";
        }

        var soapR = new MR.Request("updateMiniMap", "updateMiniMap", "Services/miniMap.asmx");
        soapR.addArg("roadNo", MR.getId(wRoadNo).value, 'hiddenFields');
        soapR.addArg("addressNo", MR.getId(wAddressNo).value, 'hiddenFields');
        soapR.submit();
    },

    mapWindow: function() {
        //if window is already open
        if (MR.getId('mapWindow')) {
            MR.DHTMLfx.window.stackTop('mapWindow');
            return;
        }
        var Wrequest = new MR.Request("mapWindow", "mapWindow", "Services/SearchService.asmx");
        Wrequest.submit();
    },

    searchAddress: function() {
        //if window is already open
        if (MR.getId('searchAddress')) {
            MR.DHTMLfx.window.stackTop('searchAddress');
            return;
        }
        var Wrequest = new MR.Request("searchAddress", "searchAddress", "Services/SearchService.asmx");
        Wrequest.submit();
    },

    switchSearchTab: function(A, AfocusOn) {

        var Wrequest = new MR.Request("resultsOnAddress", "resultsOnAddress", "Services/SearchService.asmx");
        Wrequest.submit();
    },

    searchPipe: function(Aledningid) {
        //if window is already open
        if (MR.getId('searchPipe')) {
            MR.DHTMLfx.window.stackTop('searchPipe');
            if (Aledningid != null && Aledningid.length > 0) {
                MR.getId('pipeId').value = Aledningid;
                MR.getId('pipeId-value').value = Aledningid;
                MR.Events.checkOnChange('pipeId-value');
                setTimeout(function() { MR.DHTMLfx.window.stackTop('searchPipe') }, 10);
            }

            return;
        }
        var Wrequest = new MR.Request("searchPipe", "searchPipe", "Services/SearchService.asmx");
        if (Aledningid != null && Aledningid.length > 0) {
            Wrequest.addArg("ledningId", Aledningid);
        }
        Wrequest.submit();
    },

    searchWell: function(Aknudename) {
        //if window is already open
        if (MR.getId('searchWell')) {
            MR.DHTMLfx.window.stackTop('searchWell');
            if (Aknudename != null && Aknudename.length > 0) {
                MR.getId('wellId').value = Aknudename;
                MR.getId('wellId-value').value = Aknudename;
                MR.Events.checkOnChange('wellId-value');
                setTimeout(function() { MR.DHTMLfx.window.stackTop('searchWell') }, 10);
            }
            return;
        }
        var Wrequest = new MR.Request("searchWell", "searchWell", "Services/SearchService.asmx");
        if (Aknudename != null && Aknudename.length > 0) {
            Wrequest.addArg("knudename", Aknudename);
        }

        Wrequest.submit();
    },

    searchStructure: function() {
        //if window is already open
        if (MR.getId('searchStructure')) {
            MR.DHTMLfx.window.stackTop('searchStructure');
            return;
        }
        var Wrequest = new MR.Request("searchStructure", "searchStructure", "Services/SearchService.asmx");
        Wrequest.submit();
    },

    mapSearchBox: { minX: '', minY: '', maxX: '', maxY: '', polygon: '' },

    searchFromMap: function(AcurrPage) {
        var WsoapR = new MR.Request('searchBoundingArea', 'searchBoundingArea', "Services/miniMap.asmx");
        WsoapR.addArg("minX", DW.mapSearchBox.minX);
        WsoapR.addArg("maxX", DW.mapSearchBox.maxX);
        WsoapR.addArg("minY", DW.mapSearchBox.minY);
        WsoapR.addArg("maxY", DW.mapSearchBox.maxY);
        WsoapR.addArg("polygon", DW.mapSearchBox.polygon);

        WsoapR.insertContextValues('searchFromMapWin');

        if (MR.getId('searchFromMapWin')) {
            MR.DHTMLfx.window.stackTop('searchFromMapWin');
            WsoapR.addArg("newWindow", "false");
            WsoapR.addArg("insertion", "replace:MR.getId('searchFromMap')");
            WsoapR.addArg("selectedTabId", MR.DHTMLfx.tabs.selectedTabId('searchFromMap-bar'));
        }
        else {
            WsoapR.addArg("newWindow", "true");
            WsoapR.addArg("insertion", "append:document.getElementsByTagName('body')[0]");
        }

        WsoapR.submit();
    },

    attachHenvFile: function(AdbImgId, AuniqueId) {
        var Wrequest = new MR.Request("attachHenvFile", "attachHenvFile", "Services.asmx");
        Wrequest.addArg("originatorId", AuniqueId);
        Wrequest.addArg("dbImgId", AdbImgId);
        Wrequest.submit();
    },

    frontPageList: function(aListId) {
        var Wrequest = new MR.Request(aListId, aListId, "Services/frontPage.asmx");
        var mtip = MR.getId('modultypeid-value');
        if (mtip)
            Wrequest.addArg("moduleid", mtip.value);

        Wrequest.insertContextValues(aListId);

        Wrequest.submit();
    },

    changePageNo: function(pageNo, aListId, updateFunc) {
        MR.IdValue.set(aListId, 'pageNo', pageNo);
        updateFunc(aListId);
    },

    afslutTiltagIvindue: function(ahenvid, atiltid) {
        var Wrequest = new MR.Request("switchTiltagUdfoert", "switchTiltagUdfoert", "Services.asmx");
        Wrequest.addArg('tiltId', atiltid);
        Wrequest.addArg('src', 'henvtiltView');
        Wrequest.addArg('followup', 'DW.switchHenvWinTab(\"' + ahenvid + '\",\"winHenvTab' + ahenvid + '-tilts\")');
        Wrequest.submit();
    },

    testKodeord: function() {
        var WoldPS = MR.getId('oldPS');
        var WnewPS = MR.getId('newPS');
        var WcNewPS = MR.getId('cNewPS');

        if (WnewPS.value.length == 0) {
            alert("Udfyld alle 3 felter.");
            WnewPS.focus();
            return false;
        }
        if (WcNewPS.value.length == 0) {
            alert("Udfyld alle 3 felter.");
            WcNewPS.focus();
            return false;
        }

        if (WnewPS.value != WcNewPS.value) {
            alert("Gentagelsen af kodeordet er forskellig fra det først angivne.");
            WcNewPS.value = '';
            WnewPS.value = '';
            WnewPS.focus();
            return false;
        }

        var pwLength = 4;
        if (WnewPS.value.length < pwLength) {
            alert("Det nye kodeord skal være på mindst " + pwLength + " tegn.");
            WcNewPS.value = '';
            WnewPS.value = '';
            WnewPS.focus();
            return false;
        }

        return true;
    },

    setHenvButtons: function(/*int*/henv_id, /*boolean*/enable) {
        if (arguments.length < 2) enable = true;
        if (typeof (enable) != 'boolean') enable = true;

        var s = (enable ? 'block' : 'none');
        var elm;

        elm = document.getElementById('cmdAddInitiative' + henv_id.toString());
        if (elm != null) elm.style['display'] = s;
        elm = document.getElementById('cmdAddComment' + henv_id.toString());
        if (elm != null) elm.style['display'] = s;
        elm = document.getElementById('cmdFinish' + henv_id.toString());
        if (elm != null) elm.style['display'] = s;
    },
    addCommentToHenv: true,
    addComment: function(/*int*/henv_id, /*optional int*/tilt_id) {
        if (arguments.length < 1)
            return;

        if (DW.addCommentToHenv)
            MR.directCall('opfKommentarWindow', '', 'henvId:' + henv_id.toString());
        else if (arguments.length > 1)
            MR.directCall('opfKommentarWindow', '', 'henvId:' + henv_id.toString() + ';tiltId:' + tilt_id.toString());
    },

    statisticWindow: function() {
        var Wrequest = new MR.Request("StatisticWindow", "StatisticWindow", "Services/Statistic.asmx");
        Wrequest.submit();
    },

    rapportWindow: function() {
        var Wrequest = new MR.Request("RapportWindow", "RapportWindow", "Services/Statistic.asmx");
        Wrequest.submit();
    },

    rapport2Window: function() {
        var Wrequest = new MR.Request("Rapport2Window", "Rapport2Window", "Services/Statistic.asmx");
        Wrequest.submit();
    },

    rapport3Window: function() {
        var Wrequest = new MR.Request("Rapport3Window", "Rapport3Window", "Services/Statistic.asmx");
        Wrequest.submit();
    }
}

   /*
   **  Sets the caret (cursor) position of the specified text field.
   **  Valid positions are 0-oField.length.
   */
   function doSetCaretPosition (oField, iCaretPos) {

     // IE Support
     if (document.selection) { 

       // Set focus on the element
       oField.focus();
  
       // Create empty selection range
       var oSel = document.selection.createRange ();
  
       // Move selection start and end to 0 position
       oSel.moveStart ('character', -oField.value.length);
  
       // Move selection start and end to desired position
       oSel.moveStart ('character', iCaretPos);
       oSel.moveEnd ('character', 0);
       oSel.select ();
     }

     // Firefox support
     else if (oField.selectionStart || oField.selectionStart == '0') {
       oField.selectionStart = iCaretPos;
       oField.selectionEnd = iCaretPos;
       oField.focus ();
     }
   }
