﻿/**
 * Konstruktor
 */
var RechtsgebieteControl = new function() {
}

/******************************************************************************
***                              Hauptfunktionen                            ***
******************************************************************************/

/**
 * Gibt alle ausgewählten Rechtsgebiete zurück
 * @return string Alle ausgewählten Rechtsgebiete mit Komma separiert.
 */
RechtsgebieteControl.getRechtsgebiete = function() {
    var ret = "";
    var inputs = document.getElementsByTagName("input");

    for (i = 0; i < inputs.length; ++i) {
        if (inputs[i].getAttribute("type") == "checkbox" & inputs[i].getAttribute("name") == "chkRechtsgebiet" & inputs[i].checked) {
            if (ret.indexOf(inputs[i].value) != -1) continue;

            if (ret.length == 0) {
                ret += inputs[i].value;
            } else {
                ret += ", " + inputs[i].value;
            }
        }
    }
    this.close();
    
    return ret;
}

/**
 * In der Detailsuche soll, wenn alle Unterrechtsgebiete selektiert wurden, nur das Oberrechtsgebiet in die Suche aufgenommen werden.
 */
RechtsgebieteControl.entferneUnterrechtsgebiete = function() {
    var divs = document.getElementsByTagName("div");

    for (i = 0; i < divs.length; i++) {
        if (divs[i].getAttribute('id') != null && divs[i].getAttribute('id').indexOf('oberrechtsgebiet_') != -1) {
            var inputs = divs[i].getElementsByTagName("input");

            var allchecked = true; 	//alle Checkboxen an?

            for (ii = inputs.length - 1; ii >= 0; ii--) {
                if (allchecked == true && inputs[ii].checked == false)
                    allchecked = false;
            }

            if (allchecked == true) {
                //alle deaktivieren
                for (ii = inputs.length - 1; ii >= 0; ii--) {
                    inputs[ii].checked = false;
                }

                //außer die erste Checkbox
                inputs[0].checked = true;
            }
        }
    }
}

/******************************************************************************
***                          Funktionen der Buttons                         ***
******************************************************************************/

/**
 * Der Hilfe Button
 */
RechtsgebieteControl.showHelp = function() {
    ShowHelp('rechtsgebietecontrol');
}

/**
* Der Reset Button
*/
RechtsgebieteControl.reset = function() {
    for (i = 0; i < document.getElementsByName("chkRechtsgebiet").length; i++) {
        document.getElementsByName("chkRechtsgebiet")[i].checked = false;
    }
}

/**
 * Der Schließen Button
 */
RechtsgebieteControl.close = function() {
    RemoveAllChilds('RechtsgebieteControl');
}

/**
 * Der Übernehmen Button
 */
RechtsgebieteControl.uebernehmen = function() {
    var txtrgebiet = $get("txtrgebiet");
    txtrgebiet.value = '';

    this.entferneUnterrechtsgebiete();
    
    txtrgebiet.value = this.getRechtsgebiete();
}

/******************************************************************************
***                              Hilfsmethoden                              ***
******************************************************************************/

/**
 * Zeigt das Control erstmalig an
 * @param string refid Die JavaScript-Anweisung die mit dem drücken des "Übernehmen"-Buttons ausgeführt werden soll.
 * @param FORM form Das Formular, aus dem evtl. bereits gesetzte Rechtsgebiete ausgelesen werden sollen.
 */
RechtsgebieteControl.init = function(refid, form) {
    LoadXml('2', (refid != null ? refid : null), null, (form != null ? form : null), null, true, RechtsgebieteControl.onLoadedXml);
}


/**
* Wird nach dem fertig ausgeführten Ajax-Request ausgeführt
*/
RechtsgebieteControl.onLoadedXml = function(executor, eventArgs) {
    OnLoadedXml(executor, eventArgs);
}