function eingabenloeschen()
{
    if(document.forms[0].txtDatumAnreise.value!='' && document.forms[0].elements['Aufenthalt'].options[0].value=='0')
    {
        document.forms[0].elements['Region'].options[0].selected=true;
        document.forms[0].elements['Kalenderauswahl'].options[0].selected=true;
        document.forms[0].txtDatumAnreise.value='';
        document.forms[0].txtDatumAnreise2.value='';
        DLInit('Ort,Ferienanlage,Wohnungsnummer,Schlafplaetze,Raumzahl');
        document.forms[0].elements['Raucheregal'].checked=true;
        document.forms[0].elements['Haustiernein'].checked=true;
    }
}

function datumeintragen(anreisedatum)
{
    
    SZ_Array = SZ_Uebergabe;
    
    //Variablendeklaration--------------------------------------------------------------------------
    var AD_Date;            // AnreiseDatum
    var MA_String;            // MindestAufenthalt
    var SZB_Date;           // SaisonZeitBeginn
    var SZE_Date;           // SaisonZeitEnde
    var AT_String;          // AnreiseTag (Montag,Dienstag,usw.)
    var MA_String_next;       // MindestAufenthalt in der nächsten SZ
    var SZB_Date_next;      // SaisonZeitBeginn der nächsten SZ
    var SZE_Date_next;      // SaisonZeitEnde der nächsten SZ
    var AT_String_next;     // AnreiseTag (Montag,Dienstag,usw.) der nächsten SZ
    var MaxAuf_Date;        // Maximaler Aufenthalt(Datum)
    var MaxDate_String = MaxDate_Uebergabe; // letzter möglicher Abreisetag(String) aus der web.config
    WE_Bool = new Boolean(); //so lange false bis der Mindestaufenthalt bei WE+Feiertag erreicht ist
    
    //Hilfsvariablen(Zaehler)
    var DAZ_Date;     // DatumAufenthaltZaehler
    var DAZ_Int;      // DatumAufenthaltZaehler
    var i1 = 1;       // Zaehlt die eingefügten Einträge in die DL Aufenthalt
    var iSZ_Array=0   // Zaehler zum Auslesen der aktuellen Werte(Saisonzeiten, usw.)
        
    //Funktionen------------------------------------------------------------------------------------
    function varinit(werte_String)
    {
        var werte_Array = werte_String.split(',');
        AD_Date = datumerstellen(anreisedatum);
        MA_String = werte_Array[0];
        SZB_Date = datumerstellen(werte_Array[1]);
        SZE_Date = addDays(datumerstellen(werte_Array[2]),1);
        AT_String = werte_Array[3];
    }

    function varinit_next(werte_String) {
        var werte_Array = werte_String.split(',');
        MA_String_next = werte_Array[0];
        SZB_Date_next = datumerstellen(werte_Array[1]);
        SZE_Date_next = addDays(datumerstellen(werte_Array[2]), 1);
        AT_String_next = werte_Array[3];
    }
    
    function datumerstellen(datum_String)
    {
        var werte_Array = datum_String.split('.');
        var Tag = (werte_Array[0]);
        var Monat = werte_Array[1]-1;
        var Jahr = werte_Array[2];
        return new Date(Jahr,Monat,Tag);
    }
    
    function stringerstellen(Datum)
    {
        var ausgabe="";
        if (Datum.getDate()<10)
            ausgabe="0"
        ausgabe+=Datum.getDate()+"."
        if (Datum.getMonth()<9)
            ausgabe+="0"
        ausgabe+=(Datum.getMonth()+1)+"."+Datum.getFullYear();
        return ausgabe;
    }
    
    function addDays(date,days)
    {
        return new Date(date.getFullYear(),date.getMonth(),date.getDate()+(days-0));
    }
    
    function DLAufenthalteintragen() {
        NeuerEintrag = new Option(stringerstellen(DAZ_Date), DAZ_Int, false, false);
        document.forms[0].Aufenthalt.options[i1] = NeuerEintrag;
        i1++;
    }

    function DLAufenthalteintragenTest(value) {
        NeuerEintrag = new Option(value, DAZ_Int, false, false);
        document.forms[0].Aufenthalt.options[i1] = NeuerEintrag;
        i1++;
    }
    
    //Ausführen-------------------------------------------------------------------------------------
    // Werte werden den Variablen zugewiesen
    varinit(SZ_Array[iSZ_Array]);
    //Daten der nächsten Saisonzeit, damit bei einem gesperrten Zeitraum keine Abreise möglich ist
    try {
        varinit_next(SZ_Array[iSZ_Array + 1]);
    }
    catch (e) {
        varinit_next(SZ_Array[iSZ_Array]);
    }

    MaxAuf_Date = addDays(AD_Date, 22); //buchbarer Zeitraum
    DAZ_Int = (MA_String - 0);
    DAZ_Date = addDays(AD_Date, MA_String);

    document.forms[0].txtDatumAnreise.value = stringerstellen(AD_Date); //gewähltes Anreisedatum wird in das Textfeld eingetragen
    document.forms[0].txtDatumAnreise2.value = document.forms[0].txtDatumAnreise.value; //gewähltes Anreisedatum wird in das HiddenField eingetragen

    DLLeeren("Aufenthalt"); //DropDownList mit den Abreiseterminen wird geleert
    NeuerEintrag = new Option('--Bitte ausw' + unescape('%E4') + 'hlen--', 0, true, false);
    document.forms[0].Aufenthalt.options[0] = NeuerEintrag;
    
 
    //passt bei einem Wechsel in eine neue Saisonzeit den Mindestaufenthalt(DAZ_Int)und das früheste Abreisedatum(DAZ_Date) an
    while (SZE_Date <= AD_Date) {
        iSZ_Array++;
        varinit(SZ_Array[iSZ_Array]);
        try {
            varinit_next(SZ_Array[iSZ_Array + 1]);
        }
        catch(e) {}
        DAZ_Int = (MA_String - 0);
        DAZ_Date = addDays(AD_Date, MA_String);
    }

    //füllt die DropDownListe bis der maximale Aufenthalt erreicht ist
    while (DAZ_Date < MaxAuf_Date) {
        //da nach MaxDate keine Daten mehr vorliegen, werden bei varinit_next keine Werte zurück gegeben
        //catch behandelt die letzte SZ vor MaxDate, da nach Maxdate keine Werte mehr eingetragen sind
        try {
            
            if (DAZ_Date > datumerstellen(MaxDate_String)) {
                break;
            }
            else
            //wenn der Zeitraum gesperrt ist, ist keine Abreise möglich
            if (AT_String_next == 10 && DAZ_Date >= addDays(SZB_Date_next, +1) && DAZ_Date <= addDays(SZE_Date_next, -1)) {
                DAZ_Date = addDays(DAZ_Date, 1);
                DAZ_Int++;
            }

            else
            //damit bei WE+Feiertag der Mindestaufenthalt eingehalten, wenn die Abreise in diesen Zeitraum fällt
            if (AT_String_next == 11 && DAZ_Date >= addDays(SZB_Date_next, +1) && DAZ_Date <= addDays(SZE_Date_next, -1) && WE_Bool == false) {
                if (DAZ_Int < MA_String_next) {
                    DAZ_Date = addDays(DAZ_Date, 1);
                    DAZ_Int++;
                }
                else {
                    DLAufenthalteintragen();
                    DAZ_Date = addDays(DAZ_Date, 1);
                    DAZ_Int++;
                    WE_Bool = true;
                }
            }
            
            else {
                //kontrolliert, ob der nächste Anreisetag in einer neuen SZ liegt
                //für gesperrte Zeiträume müssen dann die neuen Werte abgefragt werden
                if (DAZ_Date > SZE_Date) {
                    iSZ_Array++;
                    varinit(SZ_Array[iSZ_Array]);
                    varinit_next(SZ_Array[iSZ_Array + 1]);
                }
                else {
                    DLAufenthalteintragen();
                    DAZ_Date = addDays(DAZ_Date, 1);
                    DAZ_Int++;
                }
            }
        }
        catch (err) {
            if (DAZ_Date > datumerstellen(MaxDate_String)) {
                break;
            }

            else {
                DLAufenthalteintragen();
                DAZ_Date = addDays(DAZ_Date, 1);
                DAZ_Int++;
            }
        }       
    }    
}

//Funktionen zum anzeige der richtigen Tabellen
var DHTML = (document.getElementById || document.all);

function getObj(name)
{
    if (document.getElementById)
    {
        this.obj = document.getElementById(name);
        this.style = document.getElementById(name).style;
    }
    else if (document.all)
    {
        this.obj = document.all[name];
        this.style = document.all[name].style;
    }
    
    // Methoden,die zum Objekt gehören
    this.schreiben=schreiben;
    function schreiben(text)
    {
        
        if (document.all)
        {
            this.obj.innerHTML=text;
        }
        else if (document.getElementById)
        {
           this.obj.firstChild.nodeValue=text;
        }
    }
}

function show(obj,wert)
{
    if (!DHTML) return;
    var x = new getObj(obj);
    x.style.display = wert;
}

function aktuelleAnzeige()
{
    switch(document.forms[0].VSchritt.value)
    {
        case "1":
            show("AWUZ","block");
            show("AZUZ","none");
            show("HWRT","block");
            show("AZRT","none");
            show("AWRT","none");
            show("HWWA","block");
            show("AWWA","none");
            show("AWRTFehler","none");
            break;
        case "2":
            show("AWUZ","none");
            show("AZUZ","block");
            show("HWRT","none");
            show("AZRT","none");
            show("AWRT","block");
            show("HWWA","block");
            show("AWWA","none");
            show("AZUZFehler","none");
            break;
        case "3":
            show("AWUZ","none");
            show("AZUZ","block");
            show("HWRT","none");
            show("AZRT","block");
            show("AWRT","none");
            show("HWWA","none");
            show("AWWA","block");
            show("AWRTFehler","none");
            if(document.forms[0].Wohnungsnummer.options[0].selected==true)
            {
                show('RBHT','block');
                show('LBHT','none');
                show('RBRW','block');
                show('LBRW','none');
                show('LBRZ','none');
                show('Raumzahl','block');
            }
            else
            {
                show('RBHT','none');
                show('LBHT','block');
                show('RBRW','none');
                show('LBRW','block');
                show('LBRZ','block');
                show('Raumzahl','none');
                
                x = new getObj('LBHT');
                var ht;
                if (document.forms[0].VHaustier.value=="True")
                {
                    ht = "Haustiere erlaubt";
                    document.forms[0].Haustierja.checked=true;
                }
                else
                {
                    ht = "Haustiere nicht gestattet";
                    document.forms[0].Haustiernein.checked=true;    
                }
                x.schreiben(ht);
                
                x = new getObj('LBRW');
                var rw;
                if (document.forms[0].VRaucher.value=="True")
                  rw = "Rauchen erlaubt";
                else
                  rw = "Nichtraucherwohnung";
                x.schreiben(rw);
                
                x = new getObj('LBRZ');
                var rz;
                if (document.forms[0].Raumzahl.options[1].value=="1")
                  rw = " Raum";
                else
                  rw = " R"+unescape('%E4')+"ume";
                x.schreiben(document.forms[0].Raumzahl.options[1].value+rw);
            }
            break;
        default:
            break;
    }
}

function UrlaubszielWeiter()
{
    if(document.forms[0].Wohnungsnummer.options[0].selected == false)
    {
    	change_Wohnungsnummer();
    	change_Wohnungsnummer2();
    }
    
    var Reg = new getObj("Region");
    if (Reg.obj.options[0].selected == false)
    {
        document.getElementById("AZUZRegion").childNodes[0].nodeValue=document.forms[0].elements["Region"].options[document.forms[0].elements["Region"].selectedIndex].value;
        var array1 = new Array("Ort","Ferienanlage","Wohnungsnummer");
        var array2 = new Array("AZUZOrt","AZUZFerienanlage","AZUZWohnungsnummer");
        
        for (var i = 0; i < array1.length; ++i)
        {
            var x = new getObj(array1[i]);
            var y = new getObj(array2[i]);
            if (x.obj.options[0].selected == false)
                y.schreiben(document.forms[0].elements[array1[i]].options[document.forms[0].elements[array1[i]].selectedIndex].value);      
            else
                y.schreiben("---");
        }
        
        document.forms[0].VSchritt.value=2;
        aktuelleAnzeige();
    }
    else
    {
        show("AZUZFehler","block");
    }
}

function ReiseterminZurueck()
{
    document.forms[0].VSchritt.value=1;
    aktuelleAnzeige();
}

function ReiseterminWeiter()
{
    if (document.forms[0].txtDatumAnreise.value != "" && document.forms[0].Aufenthalt.options[0].selected==false)
    {
        x = new getObj('AZRTAnreise');
        x.schreiben(document.forms[0].txtDatumAnreise.value);
        
        x = new getObj('AZRTAbreise');
        x.schreiben(document.forms[0].Aufenthalt.options[document.forms[0].Aufenthalt.options.selectedIndex].text);
        
        document.forms[0].VSchritt.value=3;
        aktuelleAnzeige();
    }
    else
    {
        show("AWRTFehler","block");
    }
}

function WeitereAngabenZurueck()
{
    document.forms[0].VSchritt.value=2;
    aktuelleAnzeige();
}

function awfehler()
{
    if(document.forms[0].Schlafplaetze.options[0].selected==true)
    {
        show('AWWAFehler','block');
    }
}

function change_Region2()
{
    document.forms[0].txtDatumAnreise.value='';
    document.forms[0].txtDatumAnreise2.value='';
    DLLeeren('Aufenthalt');
    NeuerEintrag = new Option('- - -', '- - -', false, false);
    document.forms[0].Aufenthalt.options[0] = NeuerEintrag;
    show('AWRTEF','none');
    show('AWRTKA','none');
    show('KalenderblattWeiter','block');
    show('AWRTButtonWeiter','none');
    show('AWWAButtonWeitereEingaben','block');
    show('erweitertesuche','none');
    show('AWWAButtonSuche','block');
    show('suchen','none');
}

function change_Ort2()
{
    show('AWWAButtonWeitereEingaben','block');
    show('erweitertesuche','none');
    show('AWWAButtonSuche','block');
    show('suchen','none');
}

function change_Ferienanlage2()
{
    show('AWWAButtonWeitereEingaben','block');
    show('erweitertesuche','none');
    show('AWWAButtonSuche','block');
    show('suchen','none');
}

function change_Wohnungsnummer2()
{
    show('AWWAButtonWeitereEingaben','block');
    show('erweitertesuche','none');
    show('AWWAButtonSuche','block');
    show('suchen','none');
}

function change_Person2()
{
    if(document.forms[0].Schlafplaetze.options[0].selected==true)
    {
        show('AWWAButtonWeitereEingaben','block');
        show('erweitertesuche','none');
        show('AWWAButtonSuche','block');
        show('suchen','none');
    }
    else
    {
        show('AWWAButtonWeitereEingaben','none');
        show('erweitertesuche','block');
        show('AWWAButtonSuche','none');
        show('suchen','block');
        show('AWWAFehler','none');
    }
}

function change_Aufenthalt2()
{
    document.forms[0].VAufenthaltIndex.value = document.forms[0].Aufenthalt.options.selectedIndex;
}

function start()
{
    if (document.forms[0].VSchritt.value=="3")
    {
        x = new getObj('AZRTAnreise');
        x.schreiben(document.forms[0].txtDatumAnreise.value);
    }
    
    if (document.forms[0].txtDatumAnreise.value!="")
    {
        datumeintragen(document.forms[0].txtDatumAnreise.value);
        document.forms[0].Aufenthalt.options.selectedIndex = document.forms[0].VAufenthaltIndex.value;
        
        x = new getObj('AZRTAbreise');
        x.schreiben(document.forms[0].Aufenthalt.options[document.forms[0].Aufenthalt.options.selectedIndex].text);
    }
    
    var array1 = new Array("Ort","Ferienanlage","Wohnungsnummer");
    var array2 = new Array("AZUZOrt","AZUZFerienanlage","AZUZWohnungsnummer");
    
    for (var i = 0; i < array1.length; ++i)
    {
    var x = new getObj(array1[i]);
    var y = new getObj(array2[i]);
    if (x.obj.options[0].selected == false)
    y.schreiben(DLWert(array1[i]));
    else
    y.schreiben("---");
    }
    if(document.forms[0].Wohnungsnummer.options[0].selected == false)
    {
        show("BTES","none");
        
    }
    else
    {
        show("BTES","block");
    }
}
