// Liefert Zeitstempel; Format
function DateTimeFormat( oDate, iMode, iLanguage )
{
    switch( iLanguage )
    {
        case 0: // german
            var aWeekdays = new Array( 'So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa' );
            var aSeasons = new Array( 'Frühjahr', 'Sommer', 'Herbst', 'Winter' );
            break;

        default:
            var aWeekdays = new Array( 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' );
            var aSeasons = new Array( 'Spring', 'Summer', 'Fall', 'Winter' );
//            alert( 'DateTimeFormat: Ungültiger Parameter iLanguage' );
            break;
    }

    var sWeekday = aWeekdays[ oDate.getDay() ];

    var iMonth = oDate.getMonth() + 1;
    var iDay = oDate.getDate();

    // Frühling: 21.03 bis 23.06
    if ( ( ( iDay >= 21 && iMonth == 3 ) || iMonth > 3 ) && ( ( iDay < 24 && iMonth == 6 ) || iMonth < 6 ) )
        sSeason = aSeasons[ 0 ];

    // Sommer: 24.06 bis 20.09
    if ( ( ( iDay >= 24 && iMonth == 6 ) || iMonth > 6 ) && ( ( iDay < 21 && iMonth == 9 ) || iMonth < 9 ) )
        sSeason = aSeasons[ 1 ];

    // Herbst: 21.09 bis 20.12
    if ( ( ( iDay >= 21 && iMonth == 9 ) || iMonth > 9 ) && ( ( iDay < 21 && iMonth == 12 ) || iMonth < 12 ) )
        sSeason = aSeasons[ 2 ];

    // Winter: 21.12 bis 31.12. oder 01.01. bis 20.03
    if ( ( iDay >= 21 && iMonth == 12 ) ||
         ( ( ( iDay >= 1 && iMonth == 1 ) || iMonth > 1 ) && ( ( iDay < 21 && iMonth == 3 ) || iMonth < 3 ) ) )
        sSeason = aSeasons[ 3 ];

    sYear = oDate.getYear();
    if ( sYear < 1000 ) sYear += 1900;
    sMonth = oDate.getMonth() + 1;
    if ( sMonth < 10 )
        sMonth = '0' + sMonth;
    sDay = oDate.getDate();
    if ( sDay < 10 )
        sDay = '0' + sDay;

    sHour = oDate.getHours();
    if ( sHour < 10 )
        sHour = '0' + sHour;
    sMinutes = oDate.getMinutes();
    if ( sMinutes < 10 )
        sMinutes = '0' + sMinutes;
    sSeconds = oDate.getSeconds();
    if ( sSeconds < 10 )
        sSeconds = '0' + sSeconds;

    switch( iMode )
    {
        // Tag, dd.mm.yyyy, hh:mm:ss
        case 1:
            sBuffer = sWeekday + ', ' + sDay + '.' + sMonth + '.' + sYear + ', ' + sHour + ':' + sMinutes + ':' + sSeconds;
            break;

        // yyyy-mm-dd hh:ii:ss
        case 2:
            sBuffer = sYear + '-' + sMonth + '-' + sDay + ' ' + sHour + ':' + sMinutes + ':' + sSeconds
            break;

        // Season yyyy
        case 3:
            sBuffer = sSeason + ' ' + sYear;
            break;

        // dd.mm.yyyy
        case 4:
            sBuffer = sDay + '.' + sMonth + '.' + sYear;
            break;

        default:
            alert( 'DateTimeFormat: Ungültiger Parameter iMode' );
            break;
    }

    return( sBuffer );
}
