﻿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.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:''},
    
    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.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 ();
     }
   }