﻿/**
 * Konstruktor
 */
var DatePicker = new function() {
}

/** Das JSON-Objekt */
DatePicker.json = null;

/******************************************************************************
***                              Hauptfunktionen                            ***
******************************************************************************/

DatePicker.datePickerSelect = function(element) {

    var selected = document.getElementById('zellen-kalender-highlighted');

    if (selected == null) {
        alert('NULL');
    }
    else {
        selected.attributes['id'].value = '';
        selected.attributes['class'].value = 'zellen-kalender';
        element.attributes['class'].value = 'zellen-kalender-highlighted';
        element.attributes['id'].value = 'zellen-kalender-highlighted';
    }
}

//Liefert die Werte des DatePickerControls zurück
DatePicker.getDatePickerValue = function() {
    if ($get('ctl01_selecteddate') != null) {
        return $get('ctl01_selecteddate').value;
    }
    else {
        return "";
    }
}

/******************************************************************************
***                          Funktionen der Buttons                         ***
******************************************************************************/

/**
 * Der Hilfe Button
 */
DatePicker.showHelp = function() {
    ShowHelp('DatePickerControl');
}

/**
 * Der Schließen Button
 */
DatePicker.close = function() {
    RemoveAllChilds('DatePickerControl');
    this.resetJson();
}

/**
 * Der Übernehmen Button
 */
DatePicker.uebernehmen = function(clientID) {
    var selecteddatum = document.getElementById(clientID).value;
    var txtdatum = document.getElementById('txtdatum').value;

    if (txtdatum != "")
        txtdatum = txtdatum + "-";

    document.getElementById('txtdatum').value = txtdatum + document.getElementById(clientID).value;

    RemoveAllChilds('DatePickerControl');    
    this.resetJson();
}

/******************************************************************************
***                              Hilfsmethoden                              ***
******************************************************************************/

/**
 * Zeigt das Control erstmalig an
 * @param string refid Die JavaScript-Anweisung die mit dem drücken des "Übernehmen"-Buttons ausgeführt werden soll.
 */
DatePicker.init = function(refid) {
    this.refresh(refid);
}

/**
 * Aktualisiert das Control
 * @param string refid Die JavaScript-Anweisung die mit dem drücken des "Übernehmen"-Buttons ausgeführt werden soll.
*/
DatePicker.refresh = function(refid) {
    LoadXml('6', (refid != null ? refid : null), null, null, this.json, false, DatePicker.onLoadedXml);
}

/**
 * Setzt das JSON-Objekt zurück
 */
DatePicker.resetJson = function() {
    this.json = null;
}

/**
 * Wird nach dem fertig ausgeführten Ajax-Request ausgeführt
 */
DatePicker.onLoadedXml = function(executor, eventArgs) {
    OnLoadedXml(executor, eventArgs);
    if ($get('json') != null) {
        try {
            var value = $get('json').value;
            value = unescape(value);
            DatePicker.json = Sys.Serialization.JavaScriptSerializer.deserialize(value);
        }
        catch (e) {
            alert(e.message);
        }
    }
}