/**
    *@fileoverview In dieser Datei werden Hilfsfunktionen für das LMPS Suchformular definiert
    */
var IBE = new TTIBE("IBE",port,"bengine");
IBE.jsFiles = ['../jslib/formulare/selectopt654.js','../jslib/core/datehelper.js',
    '../jslib/core/zeitraum.js','../jslib/formulare/terminauswahl.js',
    '../jslib/formulare/formbase.js','../jslib/core/reisende.js'];

IBE.initOnLoad = function(){
    var bform = document.forms[this.formname];
    var mustHave = ['FormBase','termin_min_'+this.port,'termin_max_'+this.port,'Zeitraum','Reisende','Terminauswahl','TTAFH',
    'optSportangebot','optDauer','arrMarke_'+this.port,'DateHelperLoaded'];
    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 optReisendeEBO = {
    erw:["Erwachsener","Erwachsene"],
    kinder:["Jah.","Jahre"]
};

if (KID == '842500') {
    var optPreisEBO = [
    "beliebig;-1",
    "bis 300 CHF;300",
    "bis 500 CHF;500",
    "bis 750 CHF;750",
    "bis 1000 CHF;1000"
    ];
}
else {
    var optPreisEBO = [
    "beliebig;-1",
    "bis € 300;300",
    "bis € 500;500",
    "bis € 750;750",
    "bis € 1000;1000"
    ];
}

var optSportangebotEBO=[
"großes Sportangeb.;10",
"Tennis;0",
"Golf;1",
"Squash;2",
"Radsport;3",
"Wassersport;4",
"Tauchen;5",
"Reiten;6",
"Wandern;7",
"Surfen;8",
"egal;-1"
];

var arrMarkePos = null;

// Marken Select neu zusammenstellen
function makeMarkeNew() {
    var fixedArrMarke = window["arrMarke_"+this.port];
    fixedMarkeCust = new Array();
    for (var i = 0; i < fixedArrMarke.length; i++) {
        valOpt = fixedArrMarke[i].split(";");
        if(valOpt[1] == "FLY" || valOpt[1] == "FLYS") {
            if(arrMarkePos === null) {
                arrMarkePos = i+1;
                fixedMarkeCust.push("1-2-Fly;FLY,FLYS");
            }
        } else {
            fixedMarkeCust.push(valOpt[0] + ';' + valOpt[1]);
        }
                
    } 
    return fixedMarkeCust;
}

//___________________________________________________________________

/**
    *@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.CRad = function(val){
        if(val==1) document.forms[this.formname].zimmer[4].checked=true;
        else document.forms[this.formname].zimmer2.selectedIndex=0;
    };

    this.BookingAction = function(detail){
        var bform = document.forms[this.formname];
        if (detail) {
            bform.showresult.value = '1';
            bform.detail.value = detail;
        } else {
            bform.showresult.value = ''; //#52424
        }
        bform.termin.value = this.req['termin'];
        bform.ruecktermin.value = this.req['ruecktermin'];
        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[4].checked==true && bform.zimmer2.selectedIndex==0){
                alert("Bitte wählen Sie ein Zimmertypen aus.");
                bform.zimmer2.focus()
                return false;
            }
        }
        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){

            if (country_kenner == 'ch') {
                optSportangebot[0] = 'grosses Sportangeb.,10';
            }

            if (country_kenner == 'at') {
                var at_va = new Array('DELP','FUNS','GULA','NAZ','ITSB','JAHN_AT');
                var tmpMarkeArr = new Array();
                var lauf = 0;
                var weiter = false;

                for (var x = 0; x < window["arrMarke_" + this.port].length; x++) {
                    var myTmp = window["arrMarke_" + this.port][x].split(";");
                    for (var xx = 0; xx < at_va.length; xx++) {
                        if (myTmp[1] == at_va[xx]) {
                            tmpMarkeArr[lauf] = window["arrMarke_" + this.port][x];
                            lauf++;
                        }
                    }
                }
                for (var x = 0; x < window["arrMarke_" + this.port].length; x++) {
                    var myTmp = window["arrMarke_" + this.port][x].split(";");
                    for (var xx = 0; xx < at_va.length; xx++) {
                        if (myTmp[1] == at_va[xx]) {
                            weiter = true;
                        }
                    }
                    if (weiter == true) {
                        weiter = false;
                        continue;
                    } else {
                        tmpMarkeArr[lauf] = window["arrMarke_" + this.port][x];
                        lauf++;
                    }
                }
                window["arrMarke_" + this.port] = tmpMarkeArr;
            }

            for (var x = 0; x < window["arrMarke_"+this.port].length; x++) {
                var myTmp = window["arrMarke_"+this.port][x].split(";");
                if (myTmp[1] == 'VTO') {
                    window["arrMarke_"+this.port][x] = this.req["klabelmarke"] + ";VTO";
                }
            }
            
            if(KID == "842500")
                var optMarkeEx = makeMarkeNew();
            else 
                var optMarkeEx =  window["arrMarke_"+this.port];
                
            
            // *** JSchmidt 11.03.09
            // für Hotelbewertung
            if(typeof(optHbfges)!='undefined'){
                fillSels({
                    "hbfges":optHbfges,
                    "hbfanz":optHbfanz,
                    "hbfempf":optHbfempf
                });
            }
            // ***

            fillSels({
                "sportangebot":optSportangebotEBO,
                "dauer":optDauer,
                'preis':optPreisEBO,
                "marke":optMarkeEx
                });
            fillSelFromArray('abflughafen',TTAFH);
            fillReisende(optReisendeEBO);
            InitDays(1);
            InitMonth(1);
            InitDays(0);
            InitMonth(0);
            UpdateDate('k');
            UpdateDate('rueckk');
            setRadios(['kategorie','zimmer','verpflegung']);
            setChecks(['familie_kinder','strand','wellness','typ']);
            fillBitSels({
                "zimmer2":optZimmer2
            });
            setBitChecks(['meer','zfilter']);
            setTexts(['shotel']);

            // --- lcfilter Elemente ---
            setFormsForLcfilter(optLcfilter); // Standard Namensdefinition            

            UpdateRegionen();
            
		                  // 1-2-Fly doppelter Veranstalter
		      if(arrMarkePos !== null && KID == "842500")
		        document.bengine.marke.options[arrMarkePos].value = "FLY;FLYS"; 
        }

        try{
            document.getElementById('erster_termin').innerHTML  = this.erster_termin;
            document.getElementById('letzter_termin').innerHTML = this.letzter_termin;
        }
        catch(e){}

        var buttons = document.getElementsByName('btnFinden');
        for(var i=0;i<buttons.length;i++){
            try{
                buttons[i].setAttribute("src",imgPfad+"/forms/form4submit.gif");
            }
            catch(e){}
        }
    };
}


