/**
*@fileoverview In dieser Datei werden Hilfsfunktionen für das Fewo-Suchformular definiert
*/

/* Einstellungen Kalender */
var g_Pfad_KAL_IMG = "/kunden_parameter/"+ordner_name+"/ibe_v2/images/kalender/";
var g_oTermine     = {};
var oKalHin, oKalRueck;
var oImages = {
  'pfeil_links'       : new Image(),
  'pfeil_links_over'  : new Image(),
  'pfeil_rechts'      : new Image(),
  'pfeil_rechts_over' : new Image()
};
var oDefInfoText = {
  hin_kurz:["Früheste Hinreise"],  // Header Anreise
  rueck_kurz:["Späteste Rückreise"],  // Header Rückreise
  hin_lang:["Früheste Hinreise korrigieren<br>oder Daten übernehmen."],  // Header Anreise
  rueck_lang:["Späteste Rückreise korrigieren<br>oder Daten übernehmen."],  // Header Rückreise
  bl_text:["Wählen Sie Ihr Bundesland"]  // Text Bundesland-Info
};

for(var imgName in oImages) {
  oImages[imgName].src = g_Pfad_KAL_IMG + imgName + ".gif";
}
/* ---------------------------- */

var defAuswahlEX = {
    ziel:"alle Reiseziele",
    region:"alle Regionen"
};

var IBE = new TTIBE("IBE",port,"bengine");
IBE.jsFiles = [file_path+'booking/jslib/formulare/selectopt655.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/formulare/zielauswahlfewo.js',file_path+'booking/'+ordner_name+'/js/tt_kalender.js'];

IBE.initOnLoad = function(){
    var mustHave = ['FormBase','DateHelperLoaded','termin_min_'+this.port,'termin_max_'+this.port,'Zeitraum','Reisende','Terminauswahl','Zielauswahl','TTREGS_'+this.port,
                    'optZimmerEX','optSchlafzimmerEX','optDauerEX','arrMarke_'+this.port,'optEntfMeerEX','optEntfLiftEX'];
    var injObj   = {Zielauswahl:[defAuswahlEX],SucheFeWo:[],Zeitraum:[],Reisende:[this.req['personen']]};
    for(var i in mustHave){
        if(typeof(window[mustHave[i]])=='undefined'){
            window.setTimeout("IBE.initOnLoad()",20);return;
        }
    }
    this.inject(injObj); this.init();
};

//___________________________________________________________________

var optDauerEX=[
"Reisedauer;-1",
"1 - 4 Tage;9",
"5 - 8 Tage;10",
"1 Woche;6_7",
"9 - 12 Tage;7",
"13 - 15 Tage;3",
"2 Wochen;6_14",
"16 - 22 Tage;12",
"3 Wochen;6_21",
"> 22 Tage;13"
];

var optSchlafzimmerEX = [
"Schlafzimmer;-1",
"1;1",
"2;2",
"3;3",
"4;4",
"5;5"
];

var optZimmerEX = [
"Objektart;-1",
"Haus;0",
"Ferienhaus;1",
"Anlage;2",
"Ferienwohnung;3"
];

var optEntfMeerEX = [
"Entf. zum See/Meer;-1",
"direkt;1",
"100-200m;2",
"200-500m;3",
"500-1000m;4",
"1000-2000m;5",
"2000-5000m;6"
];


var optEntfLiftEX = [
"Entf. zum Skilift;-1",
"direkt;1",
"100-200m;2",
"200-500m;3",
"500-1000m;4",
"1000-2000m;5",
"2000-5000m;6"
];


/**
*@constructor
*@extends FormBase
*@requires Terminauswahl
*@requires Zielauswahl
*@requires Reisende
*@requires Kalender
*/

//___________________________________________________________________

function SucheFeWo(){
    FormBase.apply(this);
    Terminauswahl.apply(this);

    //_______________________________________________________________

    this.BookingAction = function(detail){
        var bform=document.forms[this.formname];
        bform.showresult.value='1';
        if(detail)
            bform.detail.value=detail;
        else
            detail = bform.detail.value;
        bform.termin.value      = parseInt(getTimestampFromString(bform.oKalHin_input.value) / 1000);
        bform.ruecktermin.value = parseInt(getTimestampFromString(bform.oKalRueck_input.value) / 1000);

        if(typeof(bform.preis) != 'undefined' && (bform.preis.value=='Objektpreis in &euro;' || bform.preis.value=='Objektpreis in €'))
            bform.preis.value='';
        if(typeof(bform.shotel) != 'undefined' && bform.shotel.value=='Suche nach ...')
            bform.shotel.value='';        
        if(typeof(bform.snach[1]) != 'undefined'){
            if(bform.snach[1].checked==true && bform.shotel.value!="" && bform.shotel.value!='Suche nach ...' && bform.shotel.value.substring(0,1)!=":")
                bform.shotel.value=':'+bform.shotel.value;
        }
        
        return this.chkFormular();
    };

    //_______________________________________________________________

    this.chkFormular = function(){
        var bform=document.forms[this.formname];
            //if(this.req['termin']>this.req['ruecktermin']){
            if(bform.termin.value > bform.ruecktermin.value){
            alert("Ihr Rückreisedatum liegt vor dem Hinreisedatum");
            return false;
        }
        bform.submit();
        return false;
    };

    //_______________________________________________________________

    /**
    *Wird nach dem Laden der Seite ausgeführt
    */
    this.init = function(){
        if(!document.forms[this.formname]) return;

        /* --- Kalender starten --- */
        g_oTermine.tsTerminMin      = this.termin_min * 1000;
        g_oTermine.tsTerminMax      = this.termin_max * 1000;
        g_oTermine.tsSelTerminHin   = getTimestampFromString(this.termin_hin);
        g_oTermine.tsSelTerminRueck = getTimestampFromString(this.termin_rueck);

        oKalHin   = new Kalender('oKalHin', 'hin', '-1', 1, 1); //'div-Name(nicht ändern!)', 'typ(hin/rück)', 'Ferien(-1=nein/all=alle Bundesländer), Anzahl sichtbarer Monate, Termin-Wahl-Art(1=klassisch,2=Zeitraum)'
        oKalRueck = new Kalender('oKalRueck', 'rueck', '-1', 1, 1);
        oKalHin.init();
        oKalRueck.init();
        /* ------------------------ */

        var oVoid = {'':'beliebig'};
        // Formularfelder füllen
        with(this){
            fillSels({"zimmer":optZimmerEX,"typ":optSchlafzimmerEX,"dauer":optDauerEX,"marke":window["arrMarke_"+this.port],"entf_meer":optEntfMeerEX,"entf_lift":optEntfLiftEX});
            fillReisende();
            setChecks(['schwimmbad','sauna','tv','kamin','rollstuhl','angeln','haustiere','geschirrspueler','waschmaschine','boot','tennis','garage','kinderbett']);
            setRadios(['snach']);
            setTexts(['preis','shotel']);
            UpdateRegionen();
        }

        try{
          var buttons = document.getElementsByName('btnFinden');
          var imgname = this.req['formular']==4?"formsubmit":"formsubmit";
          for(var i=0;i<buttons.length;i++){
            buttons[i].setAttribute("src",imgPfad+"/"+imgname+".gif");         
          }      
        }catch(e){}
    };

}
