﻿var json = null;
var json2 = null;

var PrintControl = new function() {
}

PrintControl.showPrintPage = function() {
    var mainForm = document.forms["form1"];
    var formAction = mainForm.action;
    var formMethod = mainForm.method;

    mainForm.target = "_blank";
    if (mainForm.action.indexOf("?") > -1)
        mainForm.action += "&print=true";
    else
        mainForm.action += "?print=true";

    //vpath soll aus dem hidden-Field kommen, und nicht aus der action-Parameter; Ist ggf. unterschiedlich
    mainForm.action = mainForm.action.replace("vpath=", "vpathformaction=");

    mainForm.method = "post";
    mainForm.submit();
    mainForm.action = formAction;
    mainForm.method = formMethod;
    mainForm.target = "_self";
}

PrintControl.close = function() {
    RemoveAllChilds('PrintDialog');
}

function PreSearch() {
    var txtrgebiet = $get('txtrgebiet');
    if (txtrgebiet != null && txtrgebiet.value == 'Rechtsgebiete')
        txtrgebiet.value = '';

    var txtopus = $get('txtopus');
    if (txtopus != null && txtopus.value == 'Publikationen')
        txtopus.value = '';

    //bei leeren Feldern wird das id und name-Attribute entfernt, damit diese nicht in den get-Parametern landen
    for (i = 0; i < document.forms[0].elements.length; i++) {
        if (document.forms[0].elements[i].type == 'text' && document.forms[0].elements[i].value == '') {
            document.forms[0].elements[i].removeAttribute('id');
            document.forms[0].elements[i].removeAttribute('name');
        }
        else if (document.forms[0].elements[i].type == 'hidden' && document.forms[0].elements[i].value == '') {
            document.forms[0].elements[i].removeAttribute('id');
            document.forms[0].elements[i].removeAttribute('name');
        }
        else if (document.forms[0].elements[i].type == 'password' && document.forms[0].elements[i].value == '') {
            document.forms[0].elements[i].removeAttribute('id');
            document.forms[0].elements[i].removeAttribute('name');
        }
        else if (document.forms[0].elements[i].type == 'radio' && document.forms[0].elements[i].checked && document.forms[0].elements[i].value != '') {
        }
        else if (document.forms[0].elements[i].type == 'checkbox' && document.forms[0].elements[i].checked) {
        }
    }

}

function ToggleElement(elementname) {
    var obj = $get(elementname);

    if (obj != null)
        obj.style.visibility = (obj.style.visibility != "visible") ? "visible" : "hidden";
    else
        alert("Object '" + elementname + "' is null!");
}


//genau wie ToggelElement, nur das hier mit display gearbeitet wird
function ToggleElementDisplay(elementname) {
    var obj = document.getElementById(elementname);

    if (obj != null)
        obj.style.display = (obj.style.display != "") ? "" : "none";
    else
        alert("Object '" + elementname + "' is null!");
}

function KeyDownHandler(e, btn) {
    if (!e)
        e = window.event;

    if (e.keyCode == 13) {
        e.returnValue = false;
        e.cancel = true;
        if (btn != null) {
            btn.click();
        }
        return false;
    }
    else
        return true;
}

//Liefert eine komma getrennte liste mit den Werten zurück
function GetValues(clientid) {
    return document.getElementById(clientid).value.replace(/\|\|/g, ', ').replace(/\|/g, '');
}

var activeElement = "";

function GetXmlWithTimer(controltyp, timeout, event, refid, queryparams) {

    activeElement = GetActiveElementID();

    if (event != null) {
        if (event.keyCode == 9) return;                  //Tab soll keinen Ajax-Request auslösen
    }

    try { clearTimeout(timer); }
    catch (e) { }

    if (refid == null)
        refid = "null";
    else
        refid = "'" + refid + "'"
    if (queryparams == null)
        queryparams = "null";
    else
        queryparams = "'" + queryparams + "'"

    timer = setTimeout("GetXml(" + controltyp + ", " + refid + ", " + queryparams + ")", timeout);
}


function ClickButtonWithTimer(buttonid) {
    try { clearTimeout(timer); }
    catch (e) { }
    timer = setTimeout("ClickButton('" + buttonid + "');", 1200);
}


function ClickButton(buttonid) {
    simulateClick(buttonid);
}


// Der Zugriff auf das Json-Objekt muss so gemacht werden, wegen der sichtbarkeit der globalen Variablen
function GetJsonObj() {
    if (json == null && $get('json') != null) json = Sys.Serialization.JavaScriptSerializer.deserialize($get('json').value);
    if (json == null) json = new Object();
    return json;
}

function ClearJsonObj() {
    json = null;
}

// Der Zugriff auf das Json-Objekt muss so gemacht werden, wegen der sichtbarkeit der globalen Variablen
function GetJsonObj2() {
    if (json2 == null && $get('json2') != null) json2 = Sys.Serialization.JavaScriptSerializer.deserialize($get('json2').value);
    if (json2 == null) json2 = new Object();
    return json2;
}

// fügt einen wert einem Array hinzu, oder entfernt diesen
function AddItem(wert, checked) {
    var _values = GetJsonObj().Values;
    if (checked == true) {
        if (!Array.contains(_values, wert)) {
            Array.enqueue(_values, wert);
        }
    }
    else {
        if (Array.contains(_values, wert)) {
            Array.remove(_values, wert);
        }
    }
}

function UrlEncode(input) {
    return input.replace("/", "%2F").replace("?", "%3F").replace("=", "%3D").replace("&", "%26");

}

function UrlDecode(input) {
    return input.replace("%2F", "/").replace("%3F", "?").replace("%3D", "=").replace("%26", "&");
}

function GetXml(controltyp, refid, queryparams, formToPost) {

    var wRequest = new Sys.Net.WebRequest();
    wRequest.set_url("/WebControls.aspx");
    wRequest.set_httpVerb("POST");

    var body = "";

    //Bei diesen werden die Werte gebraucht
    if (controltyp == 15 || controltyp == 16 ||
        controltyp == 19 || controltyp == 20 || controltyp == 21 || controltyp == 22 || controltyp == 25) {
        var viewstate = $get('__VIEWSTATE');

        if (viewstate != null) {
            viewstate.parentNode.removeChild(viewstate);
        }

        body += "controltyp=" + controltyp + "&";

        var form;
        if (formToPost == null) {
            form = document.forms[0];
        }
        else {
            form = formToPost;
        }
        for (i = 0; i < form.elements.length; i++) {

            if (form.elements[i].type == 'text' && form.elements[i].value != '') {
                body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
            }
            else if (form.elements[i].type == 'hidden' &&
                    (form.elements[i].value != '' || form.elements[i].name == 'av-rgebiet')) {
                if (form.elements[i].name != 'json')
                    body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
            }
            if (form.elements[i].type == 'password' && form.elements[i].value != '') {
                body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
            }
            else if (form.elements[i].type == 'radio' && form.elements[i].checked && form.elements[i].value != '') {
                body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
            }
            else if (form.elements[i].type == 'checkbox' && form.elements[i].checked) {
                body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
            }
            else if (form.elements[i].tagName == 'TEXTAREA') {
                body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
            }
            else if (form.elements[i].tagName == 'SELECT') {
                body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
            }
            else if (form.elements[i].tagName == 'SELECT') {
                body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
            }
        }
    }
    else {
        body += "controltyp=" + controltyp + "&";
    }

    if (json != null) {
        body += "json=" + Sys.Serialization.JavaScriptSerializer.serialize(json) + "&";
    }

    if (json2 != null) {
        body += "json2=" + Sys.Serialization.JavaScriptSerializer.serialize(json2) + "&";
    }

    if (refid != null)
        body += "refid=" + refid + "&";

    if (queryparams != null)
        body += queryparams + "&";

    if (body.endsWith("&"))
        body = body.substring(0, body.length - 1);


    wRequest.set_body(body);
    wRequest.get_headers()["Content-Length"] = body.length;
    wRequest.add_completed(OnSucceededXml);

    wRequest.invoke();

    if ($get('ajaxprocess') != null) {
        $get('ajaxprocess').style.visibility = 'visible';
    }
}

function OnSucceededXml(executor, eventArgs) {
    if (executor.get_responseAvailable()) {
        var doc = executor.get_xml();
        var id;
        var style;
        var innerHTML = '';

        if (doc != null)            //Response war XML-wohlgeformt
        {
            id = doc.documentElement.getAttribute('id');
            style = doc.documentElement.getAttribute('style');
            innerHTML = GetInnerXml(doc.documentElement);
        }
        else                       //Response war nicht XML-wohlgeformt 
        {
            var divhelp = document.createElement("div");                //Trick mit div
            divhelp.innerHTML = executor.get_responseData();
            if (divhelp.innerHTML != '') {
                // Problem mit FireFox: firstChild kann beim FireFox auch ein Textknoten sein; deshalb kann hier nicht firstChild verwendet werden.
                var firstchild;
                for (i = 0; i < divhelp.childNodes.length; i++) {
                    if (divhelp.childNodes[i].nodeType == 1) {
                        firstchild = divhelp.childNodes[i];
                        break;
                    }
                }

                id = firstchild.getAttribute('id');
                style = firstchild.getAttribute('style');
                innerHTML = firstchild.innerHTML;
            }

        }

        //doktochead ermitteln
        var doktochead = "";
        if (id == 'doktoc') {
            try {
                doktochead = $get('doktochead').innerHTML;
            }
            catch (e) { }
        }


        var target = $get(id);
        if (target != null && innerHTML != '') {
            target.innerHTML = innerHTML;
            if (style != null) {
                if (style.cssText == null) {
                    target.style.cssText = style;
                }
                else {
                    target.style.cssText = style.cssText;
                }
            }
        }
        else if (innerHTML != '')                //Das Element gibt es noch nicht auf der Seite, dann Erstellen und zur Form hinzufügen
        {
            var div = document.createElement("div");
            div.id = id;
            div.innerHTML = innerHTML;
            if (style != null) {
                if (style.cssText == null) {
                    div.style.cssText = style;
                }
                else {
                    div.style.cssText = style.cssText;
                }
            }

            if (id == 'sendmail')           //SendMail-Div als erstes Child von dokument
            {
                var dokument = $get('dokument');
                if (dokument != null)
                    dokument.insertBefore(div, dokument.firstChild);
            }
            else {
                document.forms[0].appendChild(div);
            }
        }

        // Bei LinkNote prüfen, ob Inhalt vorhanden ist
        // wenn nein, das Image des Buttons austauschen
        if (executor._webRequest._body.startsWith('controltyp=11'))
            TestLinkNoteContent();

        switch (id) {
            case 'PublicationControl':
                SetFocus('publicationcontrolsearch');

                //Bei der Rechtsprechungsübersicht muss das FacettenControl noch entsprechend positioniert werden.
                if (innerHTML.indexOf('FacettenControl') != -1) {
                    if ($get('FacettenControl1') != null && $get('FacettenControl') != null) {
                        $get('FacettenControl1').innerHTML = $get('FacettenControl').innerHTML;
                        RemoveNode('FacettenControl');              //Verstecktes Control entfernen
                    }
                }
                break;
            case 'printcontent':
                var print = $get('print');
                if (print != null && print.innerHTML == '')         //Per Ajax ist nichts zurückgekommen, dann den Inhalt von dreispaltencontent bzw. zweispaltencontent
                {
                    PrintControl.showPrintPage();
                }
                else
                    window.print();
                break;
            case 'verweiszettel':
                ShowLinkNoteAnnotation(0);
                break;
            case 'anmerkzettel':
                ShowLinkNoteAnnotation(1);
                break;

            case 'quickinfo':
                $get('quickinfo').style.cssText = style;
                //Drag & Drop-Funktionalität
                break;

            case 'doktoc':
                if (doktochead != "") {
                    try {
                        $get('doktochead').innerHTML = doktochead;
                    }
                    catch (e) { }
                }
                break;
        }

        if ($get('json') != null) {
            try {
                var value = $get('json').value;
                value = unescape(value);
                json = Sys.Serialization.JavaScriptSerializer.deserialize(value);
            }
            catch (e) {
                alert(e.message);
            }
        }
    }
    else {
        if (executor.get_timedOut())
            alert("Timed Out");
        else
            if (executor.get_aborted())
            alert("Aborted");
    }



    if (activeElement != "") {
        SetFocus(activeElement);
    }

    if ($get('ajaxprocess') != null) {
        $get('ajaxprocess').style.visibility = 'hidden';
    }
}

//Fügt eine Ajax-Grafik dem DOM hinzu
function AddAjaxProcessImage() {
    var img = document.createElement("img");
    img.id = 'ajaxprocess';
    img.src = './img/circle-ball-dark-antialiased.gif';
    img.style.visibility = 'hidden';
    img.style.position = 'absolute';
    img.style.zIndex = '500';
    img.style.top = '200px';
    img.style.left = '400px';
    document.forms[0].appendChild(img);
}

function ShowAjaxProcessImage() {
    if ($get('ajaxprocess') != null)
        $get('ajaxprocess').style.visibility = 'visible';
}

function HideAjaxProcessImage() {
    if ($get('ajaxprocess') != null)
        $get('ajaxprocess').style.visibility = 'hidden';
}

// Liefert das InnerXML eines Nodes als String zurück
function GetInnerXml(node) {
    var s = "";

    if (document.all) {
        for (i = 0; i < node.childNodes.length; i++) {
            s += node.childNodes[i].xml;
        }
    }
    else {
        for (i = 0; i < node.childNodes.length; i++) {
            var xmlSerializer = new XMLSerializer();
            s += xmlSerializer.serializeToString(node.childNodes[i]);
        }
    }

    return s;
}

//Simuliert einen Click
function simulateClick(elId) {
    //Notwendig für die Facetten auf der dokumentliste
    if (self.location.href.indexOf('typ=dokumentliste') != -1)
        AddHiddenField("typ", "dokumentliste");

    var evt;
    var el = $get(elId);
    if (document.createEvent) {
        evt = document.createEvent("MouseEvents");
        evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
    }
    (evt) ? el.dispatchEvent(evt) : (el.click && el.click());
}

//Fügt der Form ein verstecktes Feld hinzu; falls Inhalte vorhanden sind, so werden diese überschrieben
function AddHiddenField(name, value) {
    if ($get(name) != null) {
        $get(name).value = value;
    }
    else {
        var el = document.createElement("input");
        el.type = "hidden";
        el.id = name;
        el.name = name;
        el.value = value;
        document.forms[0].appendChild(el);
    }


}

//Fügt der Form ein verstecktes Feld hinzu; falls Inhalte vorhanden sind, so werden diese angehängt
function AppendHiddenField(name, value) {
    if ($get(name) != null) {
        $get(name).value += "|" + value + "|";
    }
    else {
        var el = document.createElement("input");
        el.type = "hidden";
        el.id = name;
        el.name = name;
        el.value += "|" + value + "|";
        document.forms[0].appendChild(el);
    }


}

function RemoveHiddenField(name, value) {
    var field = $get(name);
    if (field != null) {
        field.value = field.value.replace("|" + value + "|", "");
    }
}

//Löscht alle Kind-Knoten aus dem DOM
function RemoveAllChilds(nodeID) {
    var obj = $get(nodeID);
    if (obj == null) return;

    while (obj.hasChildNodes() == true)
        obj.removeChild(obj.firstChild);

    activeElement = "";             // Element mit Focus existiert nach Entfernung nicht mehr
}

//löscht das angegebene Element
function RemoveElement(id) {
    elem = $get(id);
    if (elem == null) return;

    var parent = elem.parentNode;
    parent.removeChild(elem);
}

function ClearAnspruchsartOptions() {
    var aOptions = document.getElementsByName("optAnspruchsart");

    for (i = 0; i < aOptions.length; i++) {
        aOptions[i].checked = (aOptions[i].value == "0");
    }
}


function RemoveNode(id) {
    var _node = $get(id);
    if (_node != null) _node.parentNode.removeChild(_node);
}

function ToggleMarking(element, docid, inHitlist) {
    scroll(0, 0);
    var wRequest = new Sys.Net.WebRequest();
    if (inHitlist) { //Trefferliste
        var href = $(element).parents('form:first').attr('action');
        href = href.substring(0, href.lastIndexOf("#"));

        if (element.src.indexOf('checkbox-breit-checked.png') != -1) {
            element.attributes["src"].value = "bilder/treffericons/checkbox-breit.png";
            href = href.replace(/marking=true/, "marking=false");
            wRequest.set_url(href);
        }
        else if (element.src.indexOf('checkbox-breit.png') != -1) {
            element.attributes["src"].value = "bilder/treffericons/checkbox-breit-checked.png";
            href = href.replace(/marking=false/, "marking=true");
            wRequest.set_url(href);
        }
    }
    else { //Dokumentansicht
        if (element.className == 'marklink') {
            wRequest.set_url(element.href);
        }
        else if (element.className == 'marklink_marked') {
            wRequest.set_url(element.href);
        }
    }
    
    wRequest.set_httpVerb("GET");
    wRequest.add_completed(OnSucceededSetMarking);
    wRequest.invoke();
}

// Der Handler für den ToggleMarking-Ajax-Request.
// Der Ajax-Request kommt mit den selben Parametern, wie auch ein GET-Request und es wird tatsächlich die komplette Seite auch zurückgegeben.
// Allerdings wird dann per Regex nur nach der toolleiste gesucht und diese ausgetauscht.
function OnSucceededSetMarking(executor, eventArgs) {
    try {
        if (executor.get_responseAvailable()) {
            var html = executor.get_responseData();
            var toolleiste = html.match('<div id=\"toolleiste\">(.*?)</div>');

            if (toolleiste != null && toolleiste[1] != null) {
                $get('toolleiste').innerHTML = toolleiste[1];
            }

            // Refresh der Page. Wird verwendet, da ansonsten in der Toolleiste der "Dokumentenliste"-Button nicht enabled/disabled wird
            window.location.reload();
        }
    }
    catch (e) { }
}

//Entfernt die im hidden-Field gespeicherten docid's aus der Sessioin
function RemoveMarkings() {
    var markeddocids = $get('markeddocids');

    if (markeddocids != null && markeddocids.value != '') {
        var wRequest = new Sys.Net.WebRequest();
        wRequest.set_url("default.aspx?markdocid=" + markeddocids.value + "&marking=false");
        wRequest.set_httpVerb("GET");
        wRequest.invoke();


        //Im Dom noch die tr löschen.
        var imgs = document.getElementsByTagName("img");
        var trs = new Array(imgs.length)
        var docIds = new Array(imgs.length)


        //Die relevanten tr's erst mal im Array speichern
        for (i = 0; i < imgs.length; i++) {
            if (imgs[i].src.indexOf('checkbox-breit-checked.png') != -1) {
                trs[i] = imgs[i].parentNode.parentNode;

                // Die DocId aus dem onclick-Event extrahieren                
                var onclickCmd = imgs[i].attributes['onclick'].value;
                var startIx = onclickCmd.indexOf(',');
                var endIx = onclickCmd.indexOf(',', startIx + 1);
                docIds[i] = onclickCmd.substring(startIx + 2, endIx);
            }
        }

        //tr's löschen
        for (i = 0; i < trs.length; i++) {
            if (trs[i] != null) {
                // Die DocId aus den markierten Dokumenten entfernen
                RemoveHiddenField("markeddocids", docIds[i]);
                // Den Eintrag aus der Hitlist löschen
                trs[i].parentNode.removeChild(trs[i]);
            }
        }

        ActivateToFile();
    }
}

//Wird für einen tocjump=yes wird per AJAX ausgetauscht.
function GetToc(vpath, contVPath) {
    if (vpath != null)
        GetXml(24, null, "vpath=" + vpath + "&contVPath=" + contVPath);
}


function SetFocus(id) {
    window.setTimeout(function(){SetTimedoutFoucs(id)},0);
}


function SetTimedoutFoucs(id) {
    try {
        $get('words').focus();              //wg. IE

        var object = $get(id);

        object.focus();

        if (object != null && object.type != null && object.type == 'text')
            object.value = object.value;        //Damit der Curser am Ende des Textes steht
        else if (object != null && object.tagName == 'TEXTAREA')
            object.value = object.value;
    }
    catch (e) { }
}

function Reload(executor, eventArgs) {
    window.location.href = window.location.href;        //Funktioniert nun, da in der beck.aspx das Caching deaktiviert ist.
    //document.location.reload();                       //Nachteil: POST wird nochmals durchgeführt.
}


function OpenWindowCopyDoc(url) {
    var F1 = window.open(url, "CopyDoc", "menubar=no,resizable=yes,screenX=150,screenY=150,scrollbars=yes,status=no,toolbar=no,width=600,height=600,left=0,top=0");
}

function GetDivIDs() {
    var divs = document.getElementsByTagName("div");
    var strdiv = '';
    for (i = 0; i < divs.length; i++) {
        if (divs[i].getAttribute('id') != null)
            strdiv += divs[i].getAttribute('id') + ",";
    }
    return strdiv;
}


// FK 12.11.08: Funktion wird nicht mehr verwendet
///Anzeige abhängig von dem Status
// 0 = Verweiszettel offen
// 1 = Annmerkungen offen
// 2 = beides geschlossen
function ShowLinkNoteAnnotation(state, defaultSite) {
    if (state != null) {
        var anmerkzettel = $get('anmerkzettel');
        var verweiszettel = $get('verweiszettel');
        var btannotation = $get('btannotation');
        var btlinknote = $get('btlinknote');
        var anmerktext = $get('anmerktext');

        var img1 = 'bilder/verweiszettel/sieheauch-main.png';
        if (btlinknote != null && btlinknote.attributes['src'].value.match(/-inaktiv.png/) != null)
            img1 = btlinknote.attributes['src'].value;

        var img2 = 'bilder/verweiszettel/sieheauch-over.png';
        var img3;
        var img4;
        if (anmerktext != null && anmerktext.value.match(/\S+/) != null) {
            img3 = 'bilder/verweiszettel/anmerkung-aktiv-main.png';
            img4 = 'bilder/verweiszettel/anmerkung-aktiv-over.png';
        }
        else {
            img3 = 'bilder/verweiszettel/anmerkung-main.png';
            img4 = 'bilder/verweiszettel/anmerkung-over.png';
        }

        if (IsIE6() == true) {
            img1 = 'bilder/verweiszettel-ie6/sieheauch-ie6.png';
            img2 = 'bilder/verweiszettel-ie6/blank-ie6.gif';

            if (anmerktext != null && anmerktext.value.match(/\S+/) != null)
                img3 = 'bilder/verweiszettel-ie6/anmerkung-aktiv-main-ie6.png'
            else
                img3 = 'bilder/verweiszettel-ie6/anmerkung-ie6.png';

            img4 = 'bilder/verweiszettel-ie6/blank-ie6.gif';
        }

        if ((state == 0 && verweiszettel == null) || (defaultSite != null)) {
            var queryparams = null;

            if (defaultSite != null && defaultSite == true)
                queryparams = "&defaultSite=true";
            else
                queryparams = "&defaultSite=false";

            GetXml(11, null, queryparams);
            return;
        }

        switch (state) {
            case 0:
                if (verweiszettel != null) {
                    verweiszettel.style.visibility = 'visible';

                    if (btlinknote != null) {
                        btlinknote.src = img2;
                        btlinknote.attributes['onclick'].value = 'ShowLinkNoteAnnotation(2);';
                    }
                }

                if (btannotation != null) {
                    btannotation.src = img3;
                    btannotation.attributes['onclick'].value = 'ShowLinkNoteAnnotation(1);';
                }

                if (anmerkzettel != null)
                    anmerkzettel.style.visibility = 'hidden';
                break;

            case 1:
                if (anmerkzettel != null) {
                    anmerkzettel.style.visibility = 'visible';
                    if (btannotation != null) {
                        btannotation.src = img4;
                        btannotation.attributes['onclick'].value = 'ShowLinkNoteAnnotation(2);';
                    }
                }

                if (btlinknote != null) {
                    btlinknote.src = img1;
                    btlinknote.attributes['onclick'].value = 'ShowLinkNoteAnnotation(0);';
                }

                if (verweiszettel != null)
                    verweiszettel.style.visibility = 'hidden';

                if (anmerkzettel != null && anmerkzettel.style.visibility == 'visible')
                    SetFocus('anmerktext');
                break;

            case 2:
                if (verweiszettel != null) {
                    verweiszettel.style.visibility = 'hidden';
                    btlinknote.src = img1;
                    btlinknote.attributes['onclick'].value = 'ShowLinkNoteAnnotation(0);';
                }

                if (anmerkzettel != null)
                    anmerkzettel.style.visibility = 'hidden';

                if (btannotation != null) {
                    btannotation.src = img3;
                    btannotation.attributes['onclick'].value = 'ShowLinkNoteAnnotation(1);';
                }

                break;
        }

        //Sonst merkt der IE nicht, dass sich am onclick was geändert hat
        if (btlinknote != null)
            btlinknote.parentNode.innerHTML = btlinknote.parentNode.innerHTML;


    }
}

function AnmerkungIE6MouseOver(obj) {
    obj.style.cursor = 'pointer';
    if (obj.src.indexOf('blank-ie6.gif') == -1) {
        if (obj.attributes['src'].value.match(/-aktiv-/) == null)
            obj.src = 'bilder/verweiszettel-ie6/anmerkung-ie6-over.png';
        else
            obj.src = 'bilder/verweiszettel-ie6/anmerkung-aktiv-over-ie6.png';
    }
}

function AnmerkungIE6MouseOut(obj) {
    obj.style.cursor = 'default';
    if (obj.src.indexOf('blank-ie6.gif') == -1) {
        if (obj.attributes['src'].value.match(/-aktiv-/) == null)
            obj.src = 'bilder/verweiszettel-ie6/anmerkung-ie6.png';
        else
            obj.src = 'bilder/verweiszettel-ie6/anmerkung-aktiv-main-ie6.png';
    }
}

function AnmerkungMouseOver(ctl) {
    ctl.style.cursor = 'pointer';
    var anmerkzettel = $get('anmerkzettel');
    if (anmerkzettel == null || anmerkzettel.style.visibility != "visible") {
        var anmerktext = $get('anmerktext');

        if (anmerktext.value.match(/\S+/) == null)
            ctl.attributes['src'].value = 'bilder/verweiszettel/anmerkung-over.png';
        else
            ctl.attributes['src'].value = 'bilder/verweiszettel/anmerkung-aktiv-over.png';
    }
}

function AnmerkungMouseOut(ctl) {
    ctl.style.cursor = 'default';
    var anmerkzettel = $get('anmerkzettel');
    if (anmerkzettel == null || anmerkzettel.style.visibility != "visible") {
        var anmerktext = $get('anmerktext');

        if (anmerktext.value.match(/\S+/) == null)
            ctl.attributes['src'].value = 'bilder/verweiszettel/anmerkung-main.png';
        else
            ctl.attributes['src'].value = 'bilder/verweiszettel/anmerkung-aktiv-main.png';
    }
}

function SieheAuchMouseOver(ctl) {
    ctl.style.cursor = 'pointer';
    var verweiszettel = $get('verweiszettel');

    if (verweiszettel == null || verweiszettel.style.visibility != "visible")
        ctl.attributes['src'].value = 'bilder/verweiszettel/sieheauch-over.png';
}

function SieheAuchMouseOut(ctl) {
    ctl.style.cursor = 'default';
    var verweiszettel = $get('verweiszettel');

    if (verweiszettel == null || verweiszettel.style.visibility != "visible")
        ctl.attributes['src'].value = 'bilder/verweiszettel/sieheauch-main.png';
}

function IsIE6() {
    var browserName = navigator.appName;

    if (browserName == 'Microsoft Internet Explorer') {
        var firstIndex = navigator.appVersion.indexOf('MSIE');
        var lastIndex = navigator.appVersion.indexOf(";", firstIndex);
        var browserVersion = parseInt(navigator.appVersion.substring(firstIndex + 5, lastIndex));

        if (browserVersion == 6)
            return true;
        else
            return false;
    }
    else
        return false;
}

function TestLinkNoteContent() {
    var verweiszettel = $get('verweiszettel');

    if (verweiszettel == null) {
        var btlinknote = $get('btlinknote');
        if (btlinknote != null) {
            btlinknote.attributes['onclick'].value = null;
            btlinknote.attributes['onmouseover'].value = null;
            btlinknote.attributes['onmouseout'].value = null;

            if (IsIE6()) {
                btlinknote.attributes['src'].value = 'bilder/verweiszettel-ie6/sieheauch-inaktiv-ie6.png';
            }
            else {
                btlinknote.attributes['src'].value = 'bilder/verweiszettel/sieheauchbutton-inaktiv.png';
            }
        }
    }
}

function modifyFilter(element, filtername, ControlNr, queryparams) {
    var insertCurrent = (element.parentNode.getElementsByTagName('input')[0].value == '');
    var level = element.parentNode.attributes['class'].value.replace('level', '');

    var entries = element.parentNode.parentNode.getElementsByTagName('P');

    for (i = 0; i < entries.length; i++) {
        try {
            if (entries[i].attributes["class"] != null) {
                var currentlevel = entries[i].attributes["class"].value.replace('level', '');

                if (currentlevel >= level) {
                    entries[i].getElementsByTagName('input')[0].value = '';
                }
            }
        }

        catch (e) { }

    }


    if (insertCurrent)
        element.parentNode.getElementsByTagName('input')[0].value = filtername;

    if (ControlNr == null)
        simulateClick('btsearch1');
    else {
        var filter = GetFilters();

        GetJsonObj2().Filter = filter;
        if (typeof (RSPRSummaryControl) != "undefined") {
            RSPRSummaryControl.getJson().Filter = filter;
        }
        if (typeof (VerwanSummaryControl) != "undefined") {
            VerwanSummaryControl.getJson().Filter = filter;
        }
        GetXml(ControlNr, null, queryparams);
    }

}

//Liefert die Werte aus allen Input-Feldern 'filter' zurück
function GetFilters() {
    var filter = "";

    for (i = 0; i < document.forms[0].elements.length; i++) {
        if (document.forms[0].elements[i].name == 'filter' && document.forms[0].elements[i].type == 'hidden' && document.forms[0].elements[i].value != '') {
            filter += UrlEncode(document.forms[0].elements[i].value) + "|,|";
        }
    }

    return filter;
}

function clearFilter(element) {
    var inputs;
    if (element == null) {
        inputs = document.getElementsByName('filter');
    }
    else {
        inputs = element.parentNode.parentNode.getElementsByTagName('input');
    }
    for (i = 0; i < inputs.length; i++) {
        inputs[i].value = '';
    }
}

function GetContext(filename, docid, words) {
    var targetname = "context_" + docid;

    var divob = $get(targetname);

    if (divob != null) {
        if (divob.style.display == "block") {
            // Kontext wird angezeigt -> // Ausblenden
            divob.innerHTML = "";
            divob.style.display = "none";
        }
        else {
            // Kontext soll angezeigt werden -> per Ajax abholen
            var img = document.createElement("img");
            img.id = 'ajaxprocess';
            img.src = './img/circle-ball-dark-antialiased.gif';



            divob.innerHTML = "";
            divob.appendChild(img);
            divob.style.display = "block";

            //GetXml(18, "", "filename=" + filename + "&words=" + words + "&docId=" + docid);
            GetXml(18, "", "filename=" + filename + "&hlwords=" + words + "&docId=" + docid);

        }
    }
}

//function ProofChangePassword()
//{
//    var newPassword = document.getElementsByName('NewPassword')[0];
//    var passwordConfirmation = document.getElementsByName('PasswordConfirmation')[0];
//    
//    if (newPassword.value != passwordConfirmation.value)
//    {
//        document.getElementById('pasMessage').innerHTML = 'Das neue Passwort stimmt nicht mit der Bestätigung überein.';
//        return false;
//    }
//    
//    var form = document.forms['changepassword'];
//    form.attributes["action"].value += '&pass=ändern';
//    form.submit();       //PasswordControl aufrufen
//    return false;
//}

//function ProofChangeForgottenPassword()
//{
//    var username = document.getElementsByName('Username')[0];
//    var check4User = document.getElementsByName('checkForUser')[0];
//    var newPassword = document.getElementsByName('NewPassword')[0];
//    var passwordConfirmation = document.getElementsByName('PasswordConfirmation')[0];
//    
//    if (username.value == '')
//    {
//        document.getElementById('pasMessage').innerHTML = 'Der Benutzername darf nicht leer sein.';
//        return false;
//    }
//    
//    if (username.value.toLowerCase() != check4User.value.toLowerCase())
//    {
//        document.getElementById('pasMessage').innerHTML = 'Das Passwort für diesen Benutzernamen kann nicht geändert werden.';
//        return false;
//    }
//    
//    if (newPassword.value != passwordConfirmation.value)
//    {
//        document.getElementById('pasMessage').innerHTML = 'Das neue Passwort stimmt nicht mit der Bestätigung überein.';
//        return false;
//    }
//    GetXml('20', '', 'pass=ändern&mode=forgotten&change=true&checkForUser=' + check4User.value);       //PasswordControl aufrufen
//    return false;
//}

//function ProofPasswordForgotten()
//{
//    var username = document.getElementsByName('Username')[0];
//    var email = document.getElementsByName('Email')[0];
//    
//    if ((username.value == "") && (email.value == ""))
//    {
//        document.getElementById('pasMessage').innerHTML = 'Geben Sie einen Benutzername oder eine E-Mail-Adresse ein!';
//        return false;
//    }
//    GetXml('20', '', 'mode=forgotten&pass=senden');       //PasswordControl aufrufen
//    return false;
//}

function calcAzPreview() {
    var yearFormat = 2;
    var options = document.getElementsByName('optYearFormat');
    for (i = 0; i < options.length; i++) {
        if (options[i].checked) {
            yearFormat = parseInt(options[i].attributes['value'].value);
            break;
        }
    }
    var initialen = $get('txtInitial').value;
    var autoNumber = $get('txtAutoNumber').value;
    var format = $get('txtFormat').value;
    var preview = $get('txtPreview');
    var jetzt = new Date();

    if (yearFormat == 2)
        format = format.replace('<jahr>', jetzt.getFullYear().toString().substring(2));
    else
        format = format.replace('<jahr>', jetzt.getFullYear().toString());

    format = format.replace('<nummer>', autoNumber);
    format = format.replace('<initial>', initialen);

    preview.value = format;
}

function ToggleSearchJob(params) {
    if ($get('suchauftrag') == null)
        GetXml('22', null, params);
    else
        ToggleElement('suchauftrag');
}

function ClearSearchJob() {
    $get('SearchJobTitle').value = "";
    $get('SearchJobDuration').selectedIndex = 0;
    $get('SearchJobNotification').checked = false;
    $get('SearchJobFormatText').checked = false;
    $get('SearchJobFormatHTML').checked = true;
}

function trim(t) {
    return t.replace(/^ *(.*?) *$/, "$1").replace(/ +/g, " ");
}

//Für die Nutzerverwaltung; Erstellt aus dem Vornamen und Nachnamen einen Loginnamen
function mkLogin() {

    var lname = $get("nv-loginname");
    var vname = $get("nv-vname");
    var nname = $get("nv-nname");

    if (vname != null)
        vname.value = trim(vname.value);

    if (nname != null)
        nname.value = trim(nname.value);

    if (lname != null && lname.value.length == 0 && vname != null && vname.value.length > 0 && nname != null && nname.value.length > 0)
        lname.value = (vname.value + "." + nname.value).replace(/ +/g, ".");
}

//Sprung zu einem Anker
function gotoAnker(ankerName) {
    try {
        var element = null;

        //FireFox behandelt die Anker key-sensitiv. Deshalb diese Lösung.
        var anchors = document.getElementsByTagName("a");
        for (i = 0; i < anchors.length; i++) {
            if (anchors[i].getAttribute('name') != null) {
                var name = anchors[i].getAttribute('name');

                if (name == '')
                    continue;

                if (ankerName.toLowerCase() == name.toLowerCase()) {
                    element = document.getElementsByName(name)[0];
                    break;
                }
            }
        }

        if (element != null) {
            //Sonderfall BeckOK der im HTML Daten Detailbereiche per JavaScript auf- und zuklappt.
            //Hier muss das Elternelement beim Ankersprung vorher aufgeklappt werden.
            if (element.parentNode != null && element.parentNode.tagName == 'DIV')
                element.parentNode.style.display = "";
            var top = Sys.UI.DomElement.getLocation(element).y;
            window.scrollTo(0, top);
        }
    }
    catch (e) { }
}

function replaceElement(sourceElement, target) {
    var newElement = document.createElement(sourceElement.tagName);
    for (attIndex = 0; attIndex < sourceElement.attributes.length; attIndex++) {
        newElement.setAttribute(sourceElement.attributes[attIndex].nodeName, sourceElement.attributes[attIndex].value);
    }
    newElement.innerHTML = GetInnerXml(sourceElement);

    target.parentNode.replaceChild(newElement, target);
}

function getDeleteEntries(groupName) {
    var i;
    var vPaths = new Array();
    var oCheckboxen = document.getElementsByName(groupName);

    for (i = 0; i < oCheckboxen.length; i++) {
        if (oCheckboxen[i].checked) {
            vPaths.push(oCheckboxen[i].value);
        }
    }

    if (vPaths.length == 0) {
        return false;
    }

    return vPaths.join(',');
}

function exclusiveRechtsgebietCheck(ctl) {
    if (ctl.checked == true) {
        var i;
        var master = ctl.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
        var masterDivs = master.getElementsByTagName('div');
        for (i = 0; i < masterDivs.length; i++) 
        {
            var j;        
            var aCheckboxes = masterDivs[i].getElementsByTagName('input');

            for (j = 0; j < aCheckboxes.length; j++) 
            {
                if (aCheckboxes[j].type == "checkbox" && aCheckboxes[j].id != ctl.id) 
                {
                    aCheckboxes[j].checked = false;
                }
            }
        }
    }
}

function DoReturn() {
}

function markiereAktuelleSuchOption(index) {
     entferneAktuelleSuchOption();
     var markierung = document.createElement('h6');
     markierung.className = 'out-of-viewport';
     markierung.appendChild(document.createTextNode('Aktuelle Suchoption:'));
     var detailsuchereiterul = $get('detailsuchereiterul');
     detailsuchereiterul.childNodes[index].insertBefore(markierung, detailsuchereiterul.childNodes[index].firstChild);
}

function entferneAktuelleSuchOption() {
      var elements = $get('detailsuchereiterul').getElementsByTagName('h6');
    
        if (elements != null && elements.length > 0) {
            var element = elements[0];
            element.parentNode.removeChild(element);
        }
}

function GetActiveElementID() {
    var targetid = "";
    if (document.activeElement != null)         //untestützt nur der IE
    {
        targetid = document.activeElement.id;
    }
    return targetid;
}

//Liefert den Wert aus dem verstecken VPATH-Feld zurück
function GetVPath() {
    var inputs = document.getElementsByTagName("input");
    for (i = 0; i < inputs.length; i++) {
        if (inputs[i].getAttribute('name') == 'vpath')
            return inputs[i].getAttribute('value');
    }
    return '';
}

function changeImages(id, path) {
    try {
        $get(id).src = path;
    }
    catch (e) { }
}


function GetPostString(form) {

    var body = "";

    for (i = 0; i < form.elements.length; i++) {

        if (form.elements[i].type == 'text' && form.elements[i].value != '') {
            body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
        }
        else if (form.elements[i].type == 'hidden' && form.elements[i].value != '') {
            body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
        }
        if (form.elements[i].type == 'password' && form.elements[i].value != '') {
            body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
        }
        else if (form.elements[i].type == 'radio' && form.elements[i].checked && form.elements[i].value != '') {
            body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
        }
        else if (form.elements[i].type == 'checkbox' && form.elements[i].checked) {
            body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
        }
        else if (form.elements[i].tagName == 'TEXTAREA') {
            body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
        }
        else if (form.elements[i].tagName == 'SELECT') {
            body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
        }
        else if (form.elements[i].tagName == 'SELECT') {
            body += form.elements[i].name + "=" + UrlEncode(form.elements[i].value) + "&";
        }
    }

    return body;
}

function GetBodyInnerHTML(html) {

    var __body = '';

    var __regexbody = new RegExp("<body[^>]*>");
    var __match = html.match(__regexbody);

    //06.05.2011 Matthias Szczygiol
    //lastIndex liefert einen undefinierten Wert zurück
    //var __start = __match.lastIndex;
    var __start = __match.index;
    var __end = html.indexOf('</body>');

    //var body = html.match('<body[^>]*>((.|\n)*)</body>')          //Funktioniert im Firefox nicht
    __body = html.substring(__start, __end);

    return __body;

}

function ConcatArrays(arr1, arr2){
    var result = new Array();

    for (var i = 0; i < arr1.length; i++) {
        result.push(arr1[i]);
    }
    for (var i = 0; i < arr2.length; i++) {
        result.push(arr2[i]);
    }

    return result;
}

//Ersetzt alle divs mit den angegebenen ID's
function ReplaceDivs(html, DivsToReplace) {
    var bodyinnerhtml = GetBodyInnerHTML(html);


    if (bodyinnerhtml != '') {
        var __help = document.createElement("body");
        __help.innerHTML = bodyinnerhtml;


        //alle angegebenen Divs zurücksetzen
        for (i = 0; i < DivsToReplace.length; i++) {
            var __div = $get(DivsToReplace[i]);

            if (__div != null)
                __div.innerHTML = '';
        }

        var __divs = __help.getElementsByTagName("div");
        var __fieldSets = __help.getElementsByTagName("fieldset");
        __divs = ConcatArrays(__divs, __fieldSets);
        //über alle divs laufen
        for (i = 0; i < __divs.length; i++) {
            var __div = __divs[i];
            var __id = __div.getAttribute('id');

            if (__id == null || __id == '')
                continue;




            //über das Array laufen
            if (DivsToReplace != null) {


                for (ii = 0; ii < DivsToReplace.length; ii++) {
                    var __idtoreplace = DivsToReplace[ii];

                    try {
                        if (__idtoreplace == __id) {
                            var __divstring = __div.innerHTML;

                            //__div.innerHTML = ''; // Wenn diese - eigentlich unnötige - Zeile entfernt wird, stürzt der IE8 ab

                            __divstring = replaceLineBreak(__divstring, '');        //Zeilenumbrüche raus, sonst gibt es ggf. Problem mit Bildern

                            var __target = $get(__idtoreplace);
                            __target.innerHTML = __divstring;
                            __target.style.cssText = __div.style.cssText;           //css aus dem Style-Attribut wird auch mit übernommen
                        }
                    }
                    catch (e) { }
                }



            }


        }

    }
}


// Funktionen zum Ein- und Ausblenden des "Siehe auch..."
var LinkNoteControl = new function()
{ }

LinkNoteControl.closeControl = function(href) {
    RemoveElement('verweiszettel');
    Ajax.DoHref(href, new Array('verweiszettelbutton'), CollapseLinknoteTree);
    return false;
}


// Funktionen zum Ein- und Ausblenden der Anmerkungen
var AnnotationControl = new function() {
}

AnnotationControl.closeControl = function(href) {
    RemoveElement('anmerkzettel');
    RemoveElement('ie6anmerkzettel');
    Ajax.DoHref(href, new Array('verweiszettelbutton'));
    return false;
}

AnnotationControl.clear = function() {
    $get("anmerktext").value = '';
    return this.save();
}

AnnotationControl.save = function() {
    Ajax.DoFormPost('annotation-form', new Array('verweiszettel', 'verweiszettelbutton', 'anmerkzettel'), 'save.x=100', AnnotationControl.ajaxCallback);
    return false;
}

AnnotationControl.ajaxCallback = function(executor, eventArgs) {
    Ajax.OnSucceededAjax(executor, eventArgs);
    CollapseLinknoteTree();
}



function getTblName(o) { return ((o.id).charAt(0) == "H") ? (o.id).substr(1) : o.id; }
function show(o) { document.getElementById(getTblName(o)).style.visibility = "visible"; }
function hide(o) { document.getElementById(getTblName(o)).style.visibility = "hidden"; }

function ShowLoader(coveringElementId) {

    var coveringElement = $get(coveringElementId);

    if (coveringElement == null)
        return;

    var loader = document.createElement("div");
    loader.id = "bo-loader";

    loader.style.display = "block";
    loader.style.height = coveringElement.offsetHeight + "px";
    loader.style.width = coveringElement.offsetWidth + "px";
    loader.style.left = "0px";
    loader.style.top = "0px";

    coveringElement.appendChild(loader);
}

function HideLoader() {
    RemoveElement("bo-loader")
}


function InsertFirstChildIntoZweispaltenContent(divId) {
    var div = document.createElement("div");
    div.id = divId;
    div.innerHTML = "";
    var zweispaltenContent = $get("zweispaltencontent");
    if (zweispaltenContent != null)
        zweispaltenContent.insertBefore(div, zweispaltenContent.firstChild);
    else {
        var dreispaltenContent = $get("dreispaltencontent");
        if (dreispaltenContent != null)
            dreispaltenContent.insertBefore(div, dreispaltenContent.firstChild);
    }
}


function CollapseLinknoteTree() {
    var __verweiszettelContent = $get('verweiszettel-content');
    if (__verweiszettelContent != null) {
        var __images = __verweiszettelContent.getElementsByTagName("img");
        for (i = 0; i < __images.length; i++) {
            var __currentImage = __images[i];
            if ((__currentImage.src.match('bilder/verweispfeile/minus.gif') != null) && (__currentImage.id.match('Kommentare') == null) && (__currentImage.id.match('Parallelfundstellen') == null) && (__currentImage.id.match('hnlicheDokumente') == null)) {
                simulateClick(__currentImage.id);
            }
        }
    }
}



function replaceLineBreak(input, replacestring) {
    return input.replace(/\r\n/g, replacestring);
}

var Aktenverwaltung = new function() {
}

Aktenverwaltung.ShowFieldOfLawSelector = function(ctl) {
RechtsgebieteControl.init('var rechtsgebiete = RechtsgebieteControl.getRechtsgebiete(); $get(\'av-rgebiet\').value = rechtsgebiete; $get(\'av-rgebiet-display\').value = rechtsgebiete; return false;', findParentForm(ctl), 'av-rgebiet-display_az');
    return false;
}

Aktenverwaltung.ShowKindOfClaimSelector = function() {
    ClearJsonObj();
    GetXml(27, '$get(\'av-anspruchsart\').value = GetJsonObj().Value; $get(\'av-anspruchsart-display\').value = GetJsonObj().Readable; RemoveAllChilds(\'AnspruchsartContainer\');ClearJsonObj();return false;');
    return false;
}

Aktenverwaltung.ShowProcedureStandSelector = function() {
    ClearJsonObj();
    GetXml(28, '$get(\'av-verfahrensstand\').value = GetJsonObj().Value; $get(\'av-verfahrensstand-display\').value = GetJsonObj().Readable; RemoveAllChilds(\'verfahrensstand\'); ClearJsonObj(); return false;');
    return false;
}

Aktenverwaltung.ShowCourtSelector = function(destCtl, anchorId) {
    GerichteControl.init(destCtl, false, anchorId);
    return false;
}

function findParentForm(ctl) {
    var parentCtl = ctl.parentNode;

    while (parentCtl != null) {
        if (parentCtl.tagName == "FORM")
            return parentCtl;

        parentCtl = parentCtl.parentNode;
    }
    return null;
}

function SerializeArray(array) {
    var _value = '';
    for (i = 0; i < array.length; i++) {
        _value += array[i];
        if (i != array.length - 1) {
            _value += ", ";
        }
    }
    return _value;
}

function SerializeArrayWithSeparator(array,separator) {
    var _value = '';
    for (i = 0; i < array.length; i++) {
        _value += array[i];
        if (i != array.length - 1) {
            _value += " "+separator+" ";
        }
    }
    return _value;
}


function ShowHelp(control, anchorId) {
    XmlLoader.loadXml('13', null, 'typ=' + control, null, null, null, onLoadedHelp, anchorId);
}

function onLoadedHelp(executor, eventArgs) {
    XmlLoader.onLoadedXml(executor, eventArgs);
//    $get('quickinfo').onmouseover = function() { addXY($get('quickinfo')); return false; }
//    $get('quickinfo').onmouseout = function() {removeXY();return false;}
}

function onLoadedSearchJob() {
    var obj = $get('SearchJobTitle');

    if (obj != null)
        obj.focus();
}

function numericInputFilter(sender, e) {
    if (e == null)
        e = window.event;

    if (e.charCode == null)
        e.charCode = e.keyCode;

    if (e.charCode == 0)
        return true;

    var validCharacters = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '.', ','];
    var currentChar = String.fromCharCode(e.charCode);

    var isCharValid = false;

    for (charIndex = 0; charIndex < validCharacters.length; charIndex++) {
        if (validCharacters[charIndex] == currentChar) {
            isCharValid = true;
            break;
        }
    }

    return isCharValid;
}

Aktenverwaltung.EvaulateHistPurchasedOnly = function() {

    var params = document.getElementsByName('onlyDocumentsWithPrice').item(0);
    ShowLoader('historyListLayer');
    XmlLoader.loadXml('32', null, params.value, null, null, true, Aktenverwaltung.OnLoadedXml, null);
    return false;
}

Aktenverwaltung.OnLoadedXml = function(executor, eventArgs) {
    XmlLoader.onLoadedXml(executor, eventArgs);
    HideLoader();
}

var AdministrationStatistic = new function() {
}
AdministrationStatistic.Init = function() {
    if ($get('AdministrationStatistic') == null)
        return;

    RemoveElement('refresh');

    $addHandler($get('kd_dokumente'), 'click', function() { this.form.submit(); });
    $addHandler($get('kd_kosten'), 'click', function() { this.form.submit(); });
    $addHandler($get('idSQL'), 'change', function() { this.form.submit(); });
    $addHandler($get('idOrg'), 'change', function() { this.form.submit(); });
}

$addHandler(window, 'load', AdministrationStatistic.Init);

function GetElementByIDandTAGNAME(tagname, id) {
    var elements = document.getElementsByTagName(tagname);
    for (i = 0; i < elements.length; i++) {
        var element = elements[i];
        var sID = element.id;
        if (element.id == id)
            return element;
    }
}

function ShowTrace() {
    var tracediv = $get('__asptrace');
    if (tracediv == null)
        return;
    win = window.open('Trace.html', 'Trace');
}

function GetTraceHTML() {
    var tracediv = $get('__asptrace');
    if (tracediv == null)
        return; return tracediv.innerHTML;
}
