/**
*@fileoverview In dieser Datei werden Hilfsfunktionen für die Suchformulare definiert
*/

/* Einstellungen Kalender */
var g_oTermine     = {};
var oKalHin, oKalRueck;

var oDefInfoText = {
    hin_kurz:["Frühester Hinflug"],  // Header Anreise
    rueck_kurz:["Spätester Rückflug"],  // Header Rückreise
    hin_lang:["Frühester Hinflug korrigieren<br>oder Daten übernehmen."],  // Header Anreise
    rueck_lang:["Spätester Rückflug korrigieren<br>oder Daten übernehmen."],  // Header Rückreise
    bl_text:["Wählen Sie Ihr Bundesland"]  // Text Bundesland-Info
};

/* ---------------------------- */

var IBE = new TTIBE('IBE',port,'bengine');
IBE.jsFiles = [file_path + 'booking/jslib/formulare/selectopt654.js',
               file_path + 'booking/jslib/core/datehelper.js',
               file_path + 'booking/jslib/core/zeitraum.js',
               file_path + 'booking/jslib/formulare/terminauswahl.js',
               file_path + 'booking/jslib/formulare/formbase.js',
               file_path + 'booking/jslib/core/reisende.js',
               file_path + 'booking/jslib/ttkalender/ferien.js'
               ];

IBE.initOnLoad = function() {
    var bform    = document.forms[this.formname];
    var mustHave = ['FormBase','DateHelperLoaded','termin_min_' + this.port,'termin_max_' + this.port,'Zeitraum','Reisende','Terminauswahl','optDauer','g_oFerien'];
    var injObj   = {SucheLMPS:[],Zeitraum:[],Reisende:[this.req['personen']]};
    if (this.req['formular'] == '4') {
        mustHave = mustHave.concat(['Zielauswahl','TTREGS_' + this.port,'optZimmer2']);
    } else {
        mustHave.push('TTFDRZ');
    }
    for (var i = 0; i < mustHave.length; i++) {
        if (typeof(window[mustHave[i]]) == 'undefined') {
            window.setTimeout('IBE.initOnLoad()',20);
            return;
        }
    }
    this.inject(injObj);
    this.init();
};

/**
*eigene Optionsfelder
*/
var optKategorieEX=[
    "beliebig;-1",
    "mind. 2 Sterne;0",
    "mind. 3 Sterne;1",
    "mind. 4 Sterne;2",
    "mind. 5 Sterne;3"
];

var optVerpflegungEX = [
    "beliebig;-1",
    "mind. \xDCbernachtung;0",
    "mind. Fr\xFChst\xFCck;1",
    "mind. Halbpension;2",
    "mind. Vollpension;3",
    "All Inclusive;4"
];

var optUsrLblEX = {
    erw:["Erwachsener","Erwachsene"], // "normal"
    erw_short:["",""], // Nur Flug
    pers:["",""], // Fewo
    kinder:["J.","J."]
};

var optHbfgesEX=[
    "beliebig;0",
    "mind. 2.0 von 6.0;20",
    "mind. 3.0 von 6.0;30",
    "mind. 4.0 von 6.0;40",
    "mind. 5.0 von 6.0;50",
    "6.0 von 6.0;60"
];

var optHbfanzEX=[
    "beliebig;0",
    "mind. 5;5",
    "mind. 10;10",
    "mind. 25;25",
    "mind. 50;50",
    "mind. 100;100"
];

var optHbfempfEX=[
    "beliebig;0",
    "mind. 80%;800",
    "mind. 90%;900",
    "100%;1000"
];

var optSportangebotEX = [
   "beliebig;-1",
   "großes Sportangebot;10",
   "Tennis;0",
   "Golf;1",
   "Squash;2",
   "Radsport;3",
   "Wassersport;4",
   "Tauchen;5",
   "Reiten;6",
   "Wandern;7",
   "Surfen;8"
];
/**
*@constructor
*@extends FormBase
*@requires Terminauswahl
*@requires Zielauswahl
*@requires Reisende
*@requires Kalender
*/
function SucheLMPS() {
    FormBase.apply(this);
    Terminauswahl.apply(this);
    
    if(this.req['formular'] == '4') {
        Zielauswahl.apply(this,[]);
    }
    
    this.BookingAction = function(detail) {
        var bform = document.forms[this.formname];
        bform.showresult.value = '1';
        if (detail) {
            bform.detail.value = detail;
        }
        return this.chkFormular();
    };
    
    this.chkFormular = function() {
        var bform = document.forms[this.formname];
        if (this.req['termin'] > this.req['ruecktermin']) {
            alert('Ihr Rückreisedatum liegt vor dem Hinreisedatum!');
            return false;
        }
        var tmpy = bform.zimmer2;
        if (typeof(tmpy) != 'undefined') {
            if (bform.zimmer[6].checked == true && bform.zimmer2.selectedIndex == 0) {
                alert('Bitte wählen Sie ein Zimmertypen aus.');
                bform.zimmer2.focus()
                return false;
            }
        }
        
        // der Button "Erweiterte Suche" muss auf die entsprechenden Seiten geleitet werden
        if (bform.engine.value == '' || typoId == 35) {
            if (bform.detail.value == '') {
                bform.id.value = typo3IbeIds.lami.search;
            } else {
                bform.id.value = typo3IbeIds.lami.ibe;
            }
        } else if (bform.engine.value == 'pauschal' || typoId == 34) {
            if (bform.detail.value == '') {
                bform.id.value = typo3IbeIds.pa.search;
            } else {
                bform.id.value = typo3IbeIds.pa.ibe;
            }
        }
        
        if (IBE.req['detail'] == 'termine') {
            bform.refresh.value = '1';
        }
        
        bform.submit();
        return false;
    };
    
    /**
    *Wird nach dem Laden der Seite ausgeführt
    */
    this.init = function() {
        if (!document.forms[this.formname]) {
            return;
        }
        // Formularfelder füllen
        with (this) {
     
            fillSels({'dauer':optDauer,'hbfges':optHbfgesEX,'hbfges_dis':optHbfgesEX,'hbfanz':optHbfanzEX,'hbfanz_dis':optHbfanzEX,
                      'hbfempf':optHbfempfEX,'hbfempf_dis':optHbfempfEX,'preis':optPreis,'sportangebot':optSportangebotEX,
                      'sportangebot_dis':optSportangebotEX});
            if (detail == '') {
                setRadios(['kategorie','zimmer','verpflegung']);
            } else {
                fillSels({'kategorie':optKategorieEX,'kategorie_dis':optKategorieEX,'verpflegung':optVerpflegungEX,'zimmer':optZimmer});
            }
            fillReisende(optUsrLblEX);
            
            document.forms[this.formname].alter1.options[0].text = "Kind 1";
            document.forms[this.formname].alter2.options[0].text = "Kind 2";
            document.forms[this.formname].alter3.options[0].text = "Kind 3";

            setChecks(['strand','strand_dis','wellness','wellness_dis','familie_kinder','familie_kinder_dis','sportmoeglichkeiten','sportmoeglichkeiten_dis','typ','typ_dis']);
            setBitChecks(['meer','zfilter']);
            setTexts(['shotel','shotel_dis']);
            UpdateRegionen();
        }
        
        try {
            document.getElementById('erster_termin').innerHTML  = this.erster_termin;
            document.getElementById('letzter_termin').innerHTML = this.letzter_termin;
        } catch(e) {}
        
        try {
            var buttons = document.getElementsByName('btnFinden');
            var imgname = this.req['formular'] == 4 ? 'button_suchen' : 'button_suchen';
            for (var i = 0; i < buttons.length; i++) {
                buttons[i].setAttribute('src',imgPfad + '/' + imgname + '.gif');         
            }      
        } catch(e) {}
    };
}