﻿// Hekter seg inn på hver Ajax-request og legger på timeglass mens Ajax-requesten kjører
Sys.WebForms.PageRequestManager.getInstance().add_initializeRequest(InitializeRequest);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

// Slår på timeglass, og stopper ev en request som ville avbrutt den første
function InitializeRequest(sender, args) {
    document.body.style.cursor = "wait";
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    if (prm.get_isInAsyncPostBack()) {
        prm.abortPostBack();
    }
}

function EndRequestHandler(sender, args) {
    document.body.style.cursor = "default";
}

// Denne brukes for å gjøre Server.Transfer i et UpdatePanel
// De globale variablene legges dynamisk på av MainPage vha dynamisk javasript
function doAjaxPostback(sender, eventArgs) {
    var ajaxManager = $find(globAjaxManagerClientID);
    ajaxManager.__doPostBack(globalAjaxManagerUniqueID, "");
}

function doPostbackToolTip(sender, eventArgs) {
    var ajaxManager = $find(globAjaxManagerClientID);
    ajaxManager.__doPostBack('PostbackToolTip', "");
}

function doPostbackDeleteActivity(sender, eventArgs) {
    var ajaxManager = $find(globAjaxManagerClientID);
    ajaxManager.__doPostBack('DeleteActivity', "");
}

function doPostbackDoneActivity(sender, eventArgs) {
    var ajaxManager = $find(globAjaxManagerClientID);
    ajaxManager.__doPostBack('DoneActivity', "");
}


// Vaktmester

// Denne funksjonen setter igang en timer som henter vaktemesterstatusen periodisk
// freq variabelen ligger i web.config og settes fra C#-kode
var IntervalId = 0;
var CloseId = 0;
var IsJanitorOpen = false;
var JanitorLastTime = "";
var TmpJanitorLastTime = "";
var autoCloseTimerDelay = 5000;
var autoCloseHoverDelay = 2000;
var autoCloseDelay = 1000;

function InitJanitor(freq) {
    // Ser om det er nye rader i vaktmesteren
    JanitorLastTime = $('#__JANITOR_LAST_TIME').val();

    // Denne timeren sjekker når siden er lastet om det har skjedd noe hos en bruker. Denne kjøres altså bare en gang
    setTimeout("GetJanitorStatus();", 2000);

    // Denne timeren sjekker periodisk om det har skjedd noe hos en bruker
    IntervalId = setInterval("GetJanitorStatus();", freq);

    // Hekter meg på clik-eventen på janitor-ikonet for å kunne åpne denne manuelt
    $('img[wcid="imgLoginRed"]').click(function() {
        showJanitorList();
    });
}

// Denne kaller en webservicemetode
function GetJanitorStatus() {
    if (globAUID == null) return;
    WcMain.Janitor.GetJanitorStatus(globAUID, OnCompleteGetJanitorStatus, OnTimeOut, OnError);
}

function OnCompleteGetJanitorStatus(arg) {
    var sa = arg.split(';');
    var JanitorStatus = sa[0];
    TmpJanitorLastTime = sa[1];
    if (JanitorStatus == "0") {
        $('img[wcid="imgLogin"]').show();
        $('img[wcid="imgLoginRed"]').hide();
    }
    else {
        $('img[wcid="imgLogin"]').hide();
        $('img[wcid="imgLoginRed"]').show();

        // Viser ikke vaktmesteren hvis det ikke er noen nye hendelser
        if (TmpJanitorLastTime == JanitorLastTime) return;
        showJanitorList();
    }
}

// Hvis noe feiler så cleares timeren
function OnTimeOut(arg) {
    clearInterval(IntervalId);
    SendErrorToEventLogAndMail(arg);
}

// Hvis noe feiler så cleares timeren
function OnError(arg) {
    clearInterval(IntervalId);
    SendErrorToEventLogAndMail(arg);
}

function showJanitorList() {
    if (IsJanitorOpen == true) return;
    WcMain.Janitor.BuildContent(globAUID, globCultureId, OnCompleteGetJanitorContent, OnTimeOutContent, OnErrorContent);
}

function OnCompleteGetJanitorContent(content) {
    // Hvis div'en finnes fra før, dvs at vaktmesteren er vist før, uten submit, fjernes denne først før nytt innhold hentes
    $('.JanitorPanel').replaceWith('');

    // Får janitor-content tilbake fra webservice'en og legger denne inn i userbar'en
    var objUserBar = $('#divUserBar').append(content);
    var objUserBarOffset = objUserBar.offset();

    // Justerer plasseringen iogmed denne er absolute
    var offset = objUserBarOffset.top + 6;
    $('.JanitorPanel').hide().css('top', offset + 'px').slideDown(400);

    // Stenger vaktmesteren etter litt tid
    CloseId = setTimeout("closeJanitor();", autoCloseTimerDelay);
    IsJanitorOpen = true;
    JanitorLastTime = TmpJanitorLastTime;

    // Setter verdien i hiddenfeltet slik at den kan lagres i viewstate på serveren
    $('#__JANITOR_LAST_TIME').val(JanitorLastTime);

    // Hekter meg på clik-eventen på janitor-panelet for å kunne avbryte close-timerern
    $('.JanitorPanel').click(function() {
        clearTimeout(CloseId);
    });

    // Styrer hover slik at hvis man peker inn i panelet slåes timer av. Når man beveger musa ut igjen closes det.
    $(".JanitorPanel").hover(
      function() {
          clearTimeout(CloseId);
      },
      function() {
          CloseId = setTimeout("closeJanitor();", autoCloseHoverDelay);
      }
   );
}

function closeJanitor() {
    $('.JanitorPanel').hide(autoCloseDelay);
    IsJanitorOpen = false;
}

function OnTimeOutContent(arg) {
    SendErrorToEventLogAndMail(arg);
}

// Hvis noe feiler så cleares timeren
function OnErrorContent(arg) {
    SendErrorToEventLogAndMail(arg);
}

// Vaktmester

function CheckIfChanged() {
    var elements = $('.Textbox');
    var val = "";
    var found = false;
    jQuery.each(elements, function() {
        var obj = $(this);
        val = obj.context.defaultValue;
        var val2 = obj.context.value;
        if (val != val2) {
            // Velger å ikke vise feltene 
            //$(this).fadeTo(500, 0).fadeTo(500, 1);
            found = true;
        }
    });
    if (found == true) {
        return true;
    }
    return false;
}

var globParam1;
var globParam2;
function __doPostBackWithCheck(param1, param2) {
    globParam1 = param1;
    globParam2 = param2;
    if (CheckIfChanged() == true) {
        // Fjerner panelet hvis det finnes fra før hvis man åpner det igjen før en submit
        $('#divUserBarOkCancelPanel').replaceWith('');
        $('.JanitorPanel').hide();
        $('#divUserBar').append(globalOkCancelControl);
        $('div[wcid="wc_ok_cancel"]').attr('id', 'divUserBarOkCancelPanel').draggable();
        showMask('divUserBarOkCancelPanel', 'divUserBar');
    }
    else {
        __doPostBack(globParam1, globParam2);
    }
}

function OkCancelClick(owner, btn) {
    if (owner == "JanitorOkCancel") {
        if (btn == '1') {
            $('#divModalMask').hide();
            $('#divUserBarOkCancelPanel').hide();

        }
        else if (btn == '2') {
            __doPostBack(globParam1, globParam2);
        }
    }
}



// Variabler og funksjoner for å lage "modalt" popoupvindu
var parentHeigth;
var parentWidth;
var parentPosition;
var maskWidth = 0;
var maskHeight = 0;

// Resizer den disablede div-tagen hvis brukes resizer vindu
window.onresize = function() {
    resizeMask();
}

// Denne brukes for å disable resten av siden når et popupvindu legger seg oppå
function resizeMask() {
    var i = $("#divModalMask").height();
    // Sjekker om man er i en side hvor mask'en er på
    // Denne tester på om mask'en er lagt på
    if (i == null) return;
    getBrowserSize();
    $('#divModalMask').css({ 'width': maskWidth, 'height': maskHeight });
}

function getBrowserSize() {
    // Leser browservinduts størrelse og forandre mask'ens størrelse
    maskHeight = $(document).height();
    maskWidth = $(window).width();
    // Justerer for å slippe å få scrollbars
    maskHeight = maskHeight - 4;
    maskWidth = maskWidth - 1;
}

// Generer en div-tag on the fly som legger seg oppå alt annet en popup'en, og posisjonerer denne opp i venstre hjørnet
function showMask(popupClientID, parentClientID) {
    // Dette er posisjonen til div-tag'en som messagebox'en bor i. For å relativt til denne div-tagen kunne finne det øvre venstre hjørnet legges dette offset'et på med MINUS foran
    parentPosition = $('#' + parentClientID).offset();
    if (parentPosition == null) return;
    getBrowserSize();

    // Må desverre håndtere ulike browsere spesielt...
    var browserVersionStr = $.browser.version;
    var browserVersion = parseInt(browserVersionStr);
    var html = '<div id="divModalMask"' + ' style="left:-' + parentPosition.left + 'px; top:-' + parentPosition.top + 'px; width:' + maskWidth + 'px; height:' + maskHeight + 'px;"></div>';
    if ($.browser.msie && browserVersion <= 6) {
        $('.SqlDd').hide();
    }

    //Pga av IE < ver8 må denne fixen gjøres, eller "skinner" menyer gjennom mask'en
    if ($.browser.msie && browserVersion < 8) {
        $('.RadMenu').css('position', 'static');
    }
    // Legger på masken på foreldre-divtag'en
    $('#' + parentClientID).append(html);
    $('#divModalMask').fadeIn(0).fadeTo(400, 0.5);

    // Sjekker om mask'en har kommet på riktig plass
    // Hvis ikke prøver jeg å justere denne on the fly...
    // Dette er pga at hvis messagePanelet ligger i en html-tag som ikke har relativ posisjonering, men likevel har en absolut plassering... MEN i forhold til en
    // relatit plassert foreldre-tag lenger opp, blir mask'en plassert feil
    var maskPosition = $('#divModalMask').offset();
    if (maskPosition != null) {
        if (maskPosition.left != 0) {
            // Beregner hvor mye feil masken står
            var maskLeft = maskPosition.left;
            var leftString = $('#divModalMask').css('left').replace('px', '');
            var left = parseInt(leftString);
            left = left - maskLeft;
            $('#divModalMask').css('left', left);
        }
        if (maskPosition.top != 0) {
            // Beregner hvor mye feil masken står
            var maskTop = maskPosition.top;
            var topString = $('#divModalMask').css('top').replace('px', '');
            var top = parseInt(topString);
            top = top - maskTop;
            $('#divModalMask').css('top', top);
        }
    }
}

function hideMask() {
    $('#divModalMask').remove();
}

function closeSummaryValidator() {
    $('.ValidationSummary').hide();
}

// Hookes opp på pageLoad og legges på dynamisk av SqlValidationSummary-klassen
function enableDragSummaryValidator() {
    $('.ValidationSummary').draggable();
}

// Hookes opp på pageLoad og legges på dynamisk av Cb-klassen
function EnableDragOnCbList() {
    // Må desverre håndtere ulike browsere spesielt...
    var browserVersionStr = $.browser.version;
    var browserVersion = parseInt(browserVersionStr);
    if ($.browser.msie && browserVersion <= 6) return;
    $('.ChechPanel').draggable();
    $('.iframePopupOverlay').hide();
}

// Muligjør at MessagePanel-klassen kan tas tak i med mus og flyttes
function enableDragOnSummaryValidator() {
    $('.MessagePanel').draggable();
    $('.iframePopupOverlay').hide();
}

function DisableFakeTreeViewInput(clientID) {
    // Dette virker selvfølgelig IKKE på Opera. Workaround: Disable feltet
    if (!$.browser.opera) {
        $('#' + clientID).keydown(function(e) {
            // Slipper TAB-tasten gjennom...
            if (e.which == 9) return true;
            $(this).fadeTo(50, 0).fadeTo(50, 1);
            e.preventDefault();
            return false;
        })
    }
    else {
        $('#' + clientID).attr('disabled', 'disabled');
    }
}


////////////////////////////////////
// Temporær lagring av søknadstekst

// Autosave 
var respondIntervalId = 0;
function SetAutoSaveRespond(sid, rid, freq) {
    // Denne timeren setter igan lagring av søknadsteksten automatisk
    respondIntervalId = setInterval("SaveRespondTemporaryAuto('" + sid + "', '" + rid + "');", freq);
}

var tmpSid = '';
function SaveRespondTemporaryAuto(sid, rid) {
    var editor = $find(rid);
    var text = editor.get_html(true);
    tmpSid = sid;
    WcMain.Janitor.SaveRespondTemporary(sid, text, OnCompleteSaveRespondAuto, OnTimeOutSaveRespondAuto, OnErrorSaveRespondAuto);
}

function OnCompleteSaveRespondAuto(arg) {
    // Autosave skal ikke vise noe melding
}

function OnTimeOutSaveRespondAuto(arg) {
    // Hvis noe feiler så cleares timeren og feillogg/mail sendes
    clearInterval(respondIntervalId);
    SendErrorToEventLogAndMail(arg);
}

function OnErrorSaveRespondAuto(arg) {
    // Hvis noe feiler så cleares timeren og feillogg/mail sendes
    clearInterval(respondIntervalId);
    SendErrorToEventLogAndMail(arg);
}

function SendErrorToEventLogAndMail(arg) {
    var error = arg._message + '. ' + arg._stackTrace;
    WcMain.Janitor.SaveErrorFromClient(tmpSid, error, OnSaveErrorFromClient, OnTimeSaveErrorFromClient, OnErrorSaveErrorFromClient);
}

// Manuell lagring
// Samme funksjon men med melding til bruker om at lagring har gått greit
var clientIdRespondTempManualBtn = "";
function SaveRespondTemporaryManual(sid, rid, clientID) {
    var editor = $find(rid);
    var text = editor.get_html(true);
    tmpSid = sid;
    clientIdRespondTempManualBtn = clientID;
    WcMain.Janitor.SaveRespondTemporary(sid, text, OnCompleteSaveRespondManual, OnTimeOutSaveRespondManual, OnErrorSaveRespondManual);
}

function OnCompleteSaveRespondManual(arg) {
    showTinyMessage(langRespondSaveOk, clientIdRespondTempManualBtn);
}

function OnTimeOutSaveRespondManual(arg) {
    var error = arg._message + '. ' + arg._stackTrace;
    WcMain.Janitor.SaveErrorFromClient(tmpSid, error, OnSaveErrorFromClient, OnTimeSaveErrorFromClient, OnErrorSaveErrorFromClient);
    showGeneralMessage(errorSaveHeading, errorSaveMessage, errorSaveBtnText);
}

function OnErrorSaveRespondManual(arg) {
    var error = arg._message + '. ' + arg._stackTrace;
    WcMain.Janitor.SaveErrorFromClient(tmpSid, error, OnSaveErrorFromClient, OnTimeSaveErrorFromClient, OnErrorSaveErrorFromClient);
    showGeneralMessage(errorSaveHeading, errorSaveMessage, errorSaveBtnText);
}

// Ingen retur fra disse funksjonene som håndtere feil
function OnSaveErrorFromClient() {
    var t = "";
}

function OnTimeSaveErrorFromClient() {
}

function OnErrorSaveErrorFromClient() {
}

function showGeneralMessage(heading, text, btnText) {
    var html = global1BtnControl.replace("#HEADING#", heading).replace("#MESSAGE#", text).replace("#BTN1TEXT#", btnText);
    $('#glob1BtnControl').remove;
    $('form').append(overlayMaskControl);
    $('#divModalMask').hide();
    getBrowserSize();
    $('#divModalMask').css('width', maskWidth).css('height', maskHeight);
    $('#divModalMask').fadeIn(0).fadeTo(400, 0.5);
    $('form').append(html);
    $('#glob1BtnControl').draggable();
}

function doClose1BtnControl() {
    $('#glob1BtnControl').remove();
    $('#divModalMask').remove();
}

function showTinyMessage(text, clientID) {
    var html = globalTinyMessageBox.replace("#MESSAGE#", text);
    $('#globTinyControl').remove;
    var btn = $('#' + clientID);
    var left = btn.css('left');
    var top = btn.css('top');
    $('#' + clientID).after(html);
    $('#globTinyControl').css('left', left).css('top', top);
    setTimeout("hideTinyMessage();", 1000);
}

function hideTinyMessage() {
    //    $('.LanguageTextPanel').css('border', 'solid').css('border-color', 'blue');
    $('.LanguageTextPanel').fadeOut(500);
}

var globalTinyMessageBox = "<DIV id='globTinyControl' style='Z-INDEX: 10000; POSITION: absolute; WHITE-SPACE: nowrap; TOP: 0px; LEFT: 0px' class = 'LanguageTextPanel'>" +
        "<SPAN id = 'globTinyControlText'>#MESSAGE#</SPAN></DIV>";

var global2BtnControl = "<div class='MessagePanel' id='glob2BtnControl' wcid='wc_ok_cancel' style='position: absolute; width: 300px; left: 21px; z-index: 10000;'>" +
        "<div class='MessagePanelHeading'>" +
            "#HEADING#</div>" +
        "<div class='MessagePanelText'>" +
            "#MESSAGE#</div>" +
        "<div style='padding: 10px;'>" +
            "<input type='button' value='#BTN1TEXT#' onclick='doOrginalClick(\"#CLIENTID#\");' class='SqlButton' wcid='btn1' style='width: 100px;' />" +
            "<input type='button' value='#BTN2TEXT#' onclick='doClose2BtnControl();' class='SqlButton' wcid='btn2' style='width: 100px;' />" +
         "</div></div>";
var btn2OverrideFunction = "";

var global1BtnControl = "<div class='MessagePanel' id='glob1BtnControl' wcid='wc_ok' style='position: absolute; width: 300px; left: 100px; top: 200px; z-index: 10000;'>" +
        "<div class='MessagePanelHeading'>" +
            "#HEADING#</div>" +
        "<div class='MessagePanelText'>" +
            "#MESSAGE#</div>" +
        "<div style='padding: 10px;'>" +
            "<input type='button' value='#BTN1TEXT#' onclick='doClose1BtnControl();' class='SqlButton' wcid='btn1' style='width: 100px;' />" +
         "</div></div>";
var overlayMaskControl = "<div id='divModalMask' style='position: absolute; left: 0px; top: 0px; z-index: 9999; background-color: rgb(170, 170, 170); width: 0px; height: 0px;' unselectable='on'/>";

function add2BtnControlToPage(clientID, parentClientID, heading, message, btn1Text, btn2Text, jsOverrideFunction) {
    //function add2BtnControlToPage(clientID, parentClientID, heading, message, btn1Text, btn2Text) {
    // Legger kontrollen med 2 knapper på i foreldre-tag'en
    if (heading == '') heading = '&nbsp;';
    var html = global2BtnControl.replace("#HEADING#", heading).replace("#MESSAGE#", message).replace("#BTN1TEXT#", btn1Text).replace("#BTN2TEXT#", btn2Text).replace("#CLIENTID#", clientID);
    $('#' + clientID).after(html);
    $('#glob2BtnControl').draggable();
    showMask('glob2BtnControl', parentClientID);
    btn2OverrideFunction = jsOverrideFunction;
}

function doOrginalClick(clientID) {
    // Fjerner boksen og mask'en
    $('#glob2BtnControl').remove();
    hideMask();

    // må huske + fjerne klikk'et som ble lagt på for å kunne orginalt klikk
    var onClickAttr = $('#' + clientID).attr("OnClick");
    var btn = $('#' + clientID).removeAttr("OnClick");
    if (btn2OverrideFunction == "") {
        btn.click();
    }
    else {
        // Ev overstyrt JS-funksjon       
        eval(btn2OverrideFunction)
    }
    // Legger orginalt klikk på igjen
    $('#' + clientID).attr("OnClick", onClickAttr)
}

function doClose2BtnControl() {
    $('#glob2BtnControl').remove();
    hideMask();
}



//////////////////////////////
// Tracking av ny CV / søknad
function TWTraceCV() {
    // Registre ny profil/CV Conversion
    var id = '68cfe486-7dd1-4da7-a909-c8274ec17427';
    var currency = 'NOK';
    var revenue = 0;
    var rnd = "&rnd=" + Math.random();
    var imgSrcProtocol = "http" + (window.location.protocol == "https:" ? "s" : "");
    var img = new Image();
    img.src = imgSrcProtocol + "://f655ea48-0a79-4422-8e9b-31597de39d3a.statcamp.net/logging/conversion.ashx?id=" + id + "&revenue=" + revenue + "&currency=" + currency + rnd;
    document.body.appendChild(img);
}

function TWTraceRespond() {
    // Send Ansøgning Conversion
    var id = 'f26a480e-35b2-4625-ba8f-cd6952582079';
    var currency = 'NOK';
    var revenue = 0;
    var rnd = "&rnd=" + Math.random();
    var imgSrcProtocol = "http" + (window.location.protocol == "https:" ? "s" : "");
    var img = new Image();
    img.src = imgSrcProtocol + "://f655ea48-0a79-4422-8e9b-31597de39d3a.statcamp.net/logging/conversion.ashx?id=" + id + "&revenue=" + revenue + "&currency=" + currency + rnd;
    document.body.appendChild(img);
}

//function OnCalendarViewChanging(sender, eventArgs) {
//    sender.set_autoPostBack(false);
//}
function Calendar_OnDateClick(calendarInstance, args) {
    calendarInstance.set_autoPostBack(true);
};


//function setZindexCalendarNavPopup() {
//    var o = $('.RadCalendarFastNavPopup').css('border', 'solid').css('border-color', 'blue');
//}

function changeZIndexForCalendarPopoup() {
    Type.registerNamespace("Telerik.Web.UI.Calendar");
    if (window.Telerik.Web.UI.Calendar.Popup == null) return;
    window.Telerik.Web.UI.Calendar.Popup.zIndex = 10001;
}

function SetCalendarPopupTooltip(par) {
    $('.rcTitle').attr('title', par);
}

function isMaxLengthAndRemove(obj) {
    //Funker slik: <textarea maxlength="40" onkeyup="return isMaxLengthAndRemove(this)"></textarea>
    var mlength = obj.getAttribute ? parseInt(obj.getAttribute("maxlength")) : "";
    if (obj.getAttribute && obj.value.length > mlength) {
        obj.value = obj.value.substring(0, mlength);
        $('#' + obj.id).fadeTo(50, 0).fadeTo(50, 1);
    }
}

function isMaxLength(obj) {
    //Funker slik: <input maxlength="40" onkeyup="return isMaxLength(this)"></input>
    var mlength = obj.getAttribute ? parseInt(obj.getAttribute("maxlength")) : "";
    if (obj.getAttribute && obj.value.length == mlength) {
        $('#' + obj.id).fadeTo(50, 0).fadeTo(50, 1);
    }
}


// For å få riktig bakgrunnsfarge i ajaxpopupen
function PopupPageAjaxBody() {
    $('body').addClass('PopupBackground');
}

// Stenger evntulelle tooltip'er som er oppe
function ToolTipCloseOnReload() {
    var tooltip = Telerik.Web.UI.RadToolTip.getCurrent();
    if (tooltip) {
        tooltip.hide();
    }
}

// Fikser size-bug i RadEditor
function radEditorSizeBugfix(editorId) {
    setTimeout("radEditorSizeBugfixDeleay('" + editorId + "');", 1000);
}

function radEditorSizeBugfixDeleay(editorId) {
    var editor = $find(editorId); //get a reference to RadEditor's client object
    editor.set_mode(1);
}

// Setter verdien i textboken
function SetTextInTextBox(id, text) {
    $('#' + id).val(text);
};

function OnClientAppointmentDoubleClick(sender, eventArgs) {
    sender.remove_appointmentDoubleClick();
}

function cancelEdit(sender, e) {
    e.set_cancel(true);
}


function clientBeforeShow(sender, eventArgs) {
    w = $telerik.$(window).width() / 2;
    h = $telerik.$(window).height() / 2;

    if ((sender._mouseX > w) && (sender._mouseY > h)) {
        sender.set_position(Telerik.Web.UI.ToolTipPosition.TopLeft);
        return;
    }
    if ((sender._mouseX < w) && (sender._mouseY > h)) {
        sender.set_position(Telerik.Web.UI.ToolTipPosition.TopRight);
        return;
    }
    if ((sender._mouseX > w) && (sender._mouseY < h)) {
        sender.set_position(Telerik.Web.UI.ToolTipPosition.BottomLeft);
        return;
    }
    sender.set_position(Telerik.Web.UI.ToolTipPosition.BottomRight);
}

//function scrollTabIntoView(clientID) {
//    var tabStrip = $find(clientID);
//    if (tabStrip != null) {
//        //tabStrip.get_selectedTab().scrollIntoView();
//        tabStrip.get_tabs().getTab(tabStrip.get_tabs().get_count() - 1).scrollIntoView(); 
//    }
//}

function ScrollToActiveTab(sender, eventArgs) {
    var selectedTab = sender.get_selectedTab();
    if (selectedTab != null) {
        selectedTab.scrollIntoView();
    }
}





//////////////////////////////////////////////////////////////////////////////////////////
// Disser funksjonene brukes ikke etter at mask-funksjonen har blitt tatt i bruk. Fra HER
function disableTelerik() {
    $('.RadMenu,.RadTabStrip').each(function() {
        if (this.id) {
            $find(this.id).disable();
        };
    });
}

function enableTelerik() {
    $('.RadMenu,.RadTabStrip').each(function() {
        if (this.id) {
            //alert(this.id);
            $find(this.id).enable();
        };
    });
}

var plainElements;
var plainElementsDisabled = [];
var checkElements;
var aElements;
var i = 0;

function disablePlainHtmlControls(popupClientID) {
    // De vanlige Html-tag'ene
    var selector = "div .GridMain *,.BreadCrumbLink,.BreadCrumbLink *,:image,img,.Textbox,.TbDisabled,.SqlDd,.Lbl,.LblHeading,.LblHeadingBold,.SqlButton:not(#" + popupClientID + ",#" + popupClientID + " *,.RadMenu *,.RadTabStrip *')";
    plainElements = $(selector);
    i = 0;
    jQuery.each(plainElements, function() {
        if ($(this).is(':enabled')) {
            $(this).attr('disabled', 'disabled');
            plainElementsDisabled[i] = $(this);
            i++;
        };
    });
    // Pga av at sjekkbokser og rakioknapper som disables også avsjekkes må dette håndteres spesielt
    selector = ":radio,:checkbox:not(#" + popupClientID + ",#" + popupClientID + " *')";
    checkElements = $(selector);
    i = 0;
    jQuery.each(checkElements, function() {
        $(this).css('visibility', 'hidden');
    });
    // Pga at flere nettelesere, bl.a Firefox ikke støtteer disabling av a-tager må disse håndteres spesielt for alle andre nettleser enn IE
    selector = "a:not(#" + popupClientID + ",#" + popupClientID + " *,.RadMenu *,.RadTabStrip *')";
    aElements = $(selector);
    jQuery.each(aElements, function() {
        if ($.browser.msie) {
            $(this).attr('disabled', 'disabled');
        }
        else {
            $(this).hide();
        }
    });
}

function enablePlainHtmlControls() {
    // Vanlige Html-tager
    jQuery.each(plainElementsDisabled, function() {
        $(this).attr('disabled', '');
    });
    // Sjekkbokser må håndteres spesielt da disse mister sin chekched-verdi. Denne må manuelt slåes på igjen
    jQuery.each(checkElements, function() {
        $(this).show();
    });
    jQuery.each(aElements, function() {
        // IE er den eneste som støtter "disabled"
        if ($.browser.msie) {
            $(this).attr('disabled', '');
        }
        else {
            $(this).show();
        }
    });
}
// Til HIT
//////////


function GridEnhanced_WashFilterInput(text, e) {
    // Removing ';' on key up in filter text box because this character causes session to crash
    var regx, flg;
    regx = /[;]/
    flg = regx.test(text.value);
    if (flg) {
        var val = text.value;
        val = val.substr(0, (val.length) - 1)
        text.value = val;
    }
}


function SetPopupWithTabStripBackgroundColor() {
    //$('#divMainPopupContent').css('border', 'solid').css('border-color', 'red');
    //$('#divMainPopupContent').removeClass('PopupContent');
    //$('#divMainPopupContent').css('background-color', '#F1F3F2');
    //$('body').css('background-color', '#F1F3F2');

    if ($('.RadTabStrip').length > 0) {
        $('#divMainPopupContent').addClass('PopupBackgroundAroundTabStrip');
        $('body').addClass('PopupBackgroundAroundTabStrip');
        // Developer must set a style class himself on the div inside the TabStrip to get the right color
    }
}


function OpenPopupWindow(sWindowName) {
    // Opens a RadWindow of class PopupPage

    OpenPopupWindow_Sub(1, sWindowName);
}

function OpenPopupWindow_Sub(count, sWindowName) {

    // Recursive, called by OpenPopup(). Purpose is to ensure that RadWindowManager is created before trying to open RadWindow.

    setTimeout(function() {

        var oManager = GetRadWindowManager();

        if (oManager == null) {
            if (count > 20) return;
            OpenScheduleTask_Sub(count + 1);
            return;
        }

        // var sWindowName = "RadWindowScheduleTask";

        var window = oManager.getWindowByName(sWindowName);

        if (window.get_navigateUrl()) {
            oManager.open(null, sWindowName);
        }
    }, 100);
}

//**********************************************
// I følge dok'en skal denne avslutte en JS-fil
if (typeof (Sys) !== "undefined") Sys.Application.notifyScriptLoaded();
