﻿/**
 * Konstruktor
 */
var DatePicker = new function() {
}

/** Das JSON-Objekt */
DatePicker.json = null;

/** 
 * Die JavaScript-Anweisung die mit dem Drücken des "Übernehmen"-Buttons ausgeführt werden soll.
 * Dient dem Zwischenspeichern der Anweisung, da diese ansonsten nach einem Refresh des Controls
 * (bei Änderung des Monats, des Jahres oder Klick auf "Heute") verloren ginge.
 */
DatePicker.finishAction = 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', 'DatePickerControlHelp');
}

/**
 * Der Schließen Button
 */
DatePicker.close = function() {
    RemoveElement('DatePickerControl');
    this.resetJson();
}

/**
 * Der Übernehmen Button
 */
DatePicker.uebernehmen = function(clientID, target) {
    if (target == null) {
        target = 'txtdatum';
    }

    if (document.getElementById(target) != null) {
        var txtdatum = document.getElementById(target).value;

        if (txtdatum != "")
            txtdatum = txtdatum + "-";

        document.getElementById(target).value = txtdatum + document.getElementById(clientID).value;
    }

    RemoveElement('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, anchorId) {
    this.finishAction = refid;
    this.refresh(refid, anchorId);
}

/**
 * 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, anchorId) {
    var __actionRefid = this.finishAction != null ? this.finishAction : null;
    if (refid != null)
        __actionRefid = refid;

    XmlLoader.loadXml('6', __actionRefid, null, null, this.json, false, DatePicker.onLoadedXml, anchorId);
}

/**
 * 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) {
    XmlLoader.onLoadedXml(executor, eventArgs);

    if (executor.get_responseAvailable()) {
        var __html = executor.get_responseData();
    }

    if ($get('jsonDate') != null) {
        try {
            var value = $get('jsonDate').value;
            value = unescape(value);
            DatePicker.json = Sys.Serialization.JavaScriptSerializer.deserialize(value);
        }
        catch (e) {
            alert(e.message);
        }
    }
}
