/**
*@fileoverview In dieser Datei werden Hilfsfunktionen für das Erde-Suchformular definiert
*/
var IBE = new TTIBE("IBE",port,"bengine");
var arrOrte = [];
IBE.jsFiles = [file_path+'booking/jslib/formulare/selectopt653.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'];

IBE.initOnLoad = function(){
    var mustHave = ['FormBase','DateHelperLoaded','termin_min_'+this.port,'termin_max_'+this.port,'Zeitraum','Reisende','Terminauswahl'];
    if(this.req['formular']=='5')
        var injObj   = {SucheERDE:[],Zeitraum:[],Reisende:[this.req['personen']]};
    else
        var injObj   = {Zielauswahl:[],SucheERDE:[],Zeitraum:[],Reisende:[this.req['personen']]};
    if(this.req['formular']=='4')
        mustHave = mustHave.concat(['Zielauswahl','TTREGS_'+this.port,'optZielOrt','optThemes']);
    else if(this.req['formular']=='5')
        mustHave.push('arrLaender');
    else
        mustHave = mustHave.concat(['Zielauswahl','TTRZ_ERDE','optZielOrt','optThemes']);

    for(var i in mustHave){
        if(typeof(window[mustHave[i]])=='undefined'){
            window.setTimeout("IBE.initOnLoad()",20);return;
        }
    }
    this.inject(injObj); this.init();
};

//___________________________________________________________________

/**
*eigene Optionsfelder
*/
/*var optZimmerEX = [
    "beliebig;-1",
    "Einzelzimmer;5",
    "Doppelzimmer;6",
    "Familienzimmer;2",
    "Bungalow;0",
    "Studio/Apartment/Suite;7"
];*/     

var optUsrLblEX = {
  erw:["",""], // "normal"
  erw_short:["",""], // Nur Flug
  pers:["",""], // Fewo
  kinder:["J.","J."]
};

//___________________________________________________________________

/**
*Wird nur bei Formular 5 verwendet. Wird aufgerufen, nachdem eine Javascript-Ortsdatei
*in den Iframe geladen wurde aktualisiert die Ortsauswahlbox entsprechend
*/

function showOrte(){
    var i,lbl,val;
    var tmp  = [];
    var expr = new RegExp(" "+IBE.req['orte_IFF'],"");
    var selectbox = document.getElementById("selOrte");
    if(selectbox){
        for(i=selectbox.length-1;i>0;i--)
            selectbox.options[i] = null;
        for(i=0;i<arrOrte.length;i++){
            tmp = arrOrte[i].split('#');
            val = tmp[0];lbl = tmp[1];
            selectbox.options[i+1] = new Option(lbl,val);
            if(IBE.req['orte_IFF']!="" && expr.exec(val)!=null){
                selectbox.options[i+1].selected =true;
            }
        }
    }
}

//___________________________________________________________________

/**
*@constructor
*@extends FormBase
*@requires Terminauswahl
*@requires Zielauswahl
*@requires Reisende
*@requires Kalender
*/

function SucheERDE(){
    FormBase.apply(this);
    Terminauswahl.apply(this);

    /**
    *Ändert die Bilder entsprechend der Thema-Auswahl (Formular 4)
    */

    //_______________________________________________________________

    this.chgImg=function(){
        var val= imgThemeId[document.forms[this.formname].uthema.value];
        if(document.images["f1"].src!=window.location.protocol+'//'+window.location.hostname+this.req['imgPfad']+"/forms/theme/"+val+"_1."+this.req['imgFormat']){
            fImg1 = new Image();fImg2 = new Image();
            fImg1.src = this.req['imgPfad']+"/forms/theme/"+val+"_1."+this.req['imgFormat'];
            fImg2.src = this.req['imgPfad']+"/forms/theme/"+val+"_2."+this.req['imgFormat'];
            document.images["f1"].src= fImg1.src;
            document.images["f2"].src= fImg2.src;
            document.forms[this.formname].ziel.focus();
        }
    };

    //_______________________________________________________________

    /**
    *Prüft auf gültige LänderID
    */

    this.is_land = function(idland){
        var expr = new RegExp(idland+"#","");
        for(var i=0;i<arrLaender.length;i++){
            if(expr.exec(arrLaender[i])!=null) return true;
        }
        return false;
    }

    //_______________________________________________________________

    /**
    *Nur bei Formular 5: Füllt die Land-Selectbox
    */

    this.showLaender = function(){
        var i,lbl,val,sel;
        var tmp= [];
        var selectbox = document.getElementById("selLaender");
        for(i=selectbox.length-1;i>=0;i--)
            selectbox.options[i] = null;
        for(i=0;i<arrLaender.length;i++){
            tmp = arrLaender[i].split('#');
            val = tmp[0];lbl = tmp[1];
            selectbox.options[i] = new Option(lbl,val);
            if(IBE.req['selLand']==val){
                selectbox.options[i].selected = true;
                this.req['orte_max']=tmp[2];
            }
        }
    }

    //_______________________________________________________________

    /**
    *nur bei Formular 5 verwendet. Läd eine neue Orte-Javascript Datei in den Iframe
    *nachdem die Datei geladen ist wird die globale Funktion "showOrte()" aufgerufen,
    *die die Ortsauswahlbox entsprechend aktualisiert
    */

    this.updateOrte = function(){
        var aktLand    = document.getElementById("selLaender").value;
        var tmp  = arrLaender[document.getElementById("selLaender").selectedIndex].split('#');
        this.req['orte_max'] = tmp[2];
        var iFrameOrte = document.getElementById("iframeOrte");
        iFrameOrte.src = file_path+"booking/js/iff_orte/getOrte_js.php?selLand="+aktLand;
    }

    //_______________________________________________________________

    /**
    *booking_action
    */

    this.booking_action = function(){
        var bform=document.forms[this.formname];
        if(this.req['orte_IFF']!=0 && bform.formular.value=='4'){
            if(document.forms[this.formname].zielOrt.value != '-1'){
                var splitter = document.forms[this.formname].zielOrt.value.split(' ');
                bform.topRegion.value = splitter[0];
                bform.IFFOrt.value    = splitter[1];
                this.BookingAction('hotel');
            }
            else{
                bform.topRegion.value = '';
                bform.IFFOrt.value = '-1';
                this.BookingAction('zielgebiet');
            }
        }
        else if(bform.formular.value=='5'){
            if(document.forms[this.formname].zielOrt.value!=""){
                var tmp = document.forms[this.formname].zielOrt.value.split(' ');
                bform.topRegion.value = tmp[0];
                bform.IFFOrt.value = tmp[1];
                this.BookingAction('hotel');
            }
            else{
                alert("Bitte wählen Sie einen Ort aus.");
            }
        }
        else
            this.BookingAction('zielgebiet');
    };

    //_______________________________________________________________

    /**
    *BookingAction
    */

    this.BookingAction = function(detail){
        var bform=document.forms[this.formname];
        bform.showresult.value='1';
        if(detail)
            bform.detail.value=detail;
        bform.termin.value=this.req['termin'];
        bform.ruecktermin.value=this.req['ruecktermin'];
        return this.chkFormular();
    };

    //_______________________________________________________________

    /**
    *Formularchecker
    */

    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;
            }
        }
        */
        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){
            dauert();
            fillSels({'zimmer':optZimmer,'verpflegung':optVerpflegung});
            fillReisende(optUsrLblEX);
            InitDays(1);
            InitMonth(1);
            InitDays(0);
            InitMonth(0);
            UpdateDate('k');
            UpdateDate('rueckk');
            setRadios(['kategorie']);
            if(this.req['formular']=='4'){
                fillSels({'zielOrt':optZielOrt,'uthema':optThemes});
                setTexts(['shotel','preis']);
                UpdateRegionen();
            }
            else if(this.req['formular']=='5'){
                if(!this.is_land(this.req['selLand'])){this.req['selLand']="39";}
                fillSels({'marke':window['arrMarke_'+this.port]});
                showLaender();
                updateOrte();
                setTexts(['shotel','preis']);
            }
        }
        var buttons = document.getElementsByName('btnFinden');
        try{
            for(var i=0;i<buttons.length;i++){
                buttons[i].setAttribute("src",imgPfad+"/button_jetztfinden.gif");
            }
        }
        catch(e){}
    };
}

