/**
*@fileoverview In dieser Datei werden Hilfsfunktionen für das kleine LMPS-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ü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
};

for(var imgName in oImages) {
  oImages[imgName].src = g_Pfad_KAL_IMG + imgName + ".gif";
}
/* ---------------------------- */

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/'+ordner_name+'/js/tt_kalender.js'];

IBE.initOnLoad = function(){
    
    var mustHave = ['FormBase','DateHelperLoaded','termin_min_'+this.port,'termin_max_'+this.port,'Zeitraum','Reisende','Terminauswahl','TTAFH',
                    'optDauer','Kalender','optKategorieEX'];
    var injObj   = {SucheLMPSKlein:[],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();
};

//___________________________________________________________________

/**
*eigene Optionsfelder
*/

var optKategorieEX=[
"beliebig;-1",
"mind. 2 Sterne;0",
"mind. 3 Sterne;1",
"mind. 4 Sterne;2",
"mind. 5 Sterne;3"
];
  

//___________________________________________________________________

/**
*@constructor
*@extends FormBase
*@requires Terminauswahl
*@requires Zielauswahl
*@requires Reisende
*@requires Kalender
*/

function SucheLMPSKlein(){
    FormBase.apply(this);
    Terminauswahl.apply(this);
    
    /**
  *Füllt die Selectboxen für die Reisenden (Erwachsene + 3x Kinderalter)
  *EXTRA: Individuelle Options-Beschriftung  
  */
  this.fillReisende = function(optUsrPersLbl){
    var defPersLbl = {
      erw:["Erwachsener","Erwachsene"],  // "normal"
      erw_short:["Erwachsener","Erwachsene"],         // Formular 2 / Nur Flug
      pers:["Person","Personen"],        // Fewo
      kinder:["J.","J."]
    };
    var optPersLbl= optUsrPersLbl || defPersLbl;
    var strPers = this.Personen;
    var bform = document.forms[this.formname];
    var elems = ['alter1', 'alter2','alter3'];
    var erwSel = bform.erwachsene;       
    var strErw = "25";
    var erwMax = this.req['engine']=='fewo'?8:4;      
    if (typeof(bform.erwachsene) != 'undefined'){        
        for(var i=1;i<=erwMax;i++){
          if(this.req['engine']=='fewo')
            var lbl = i==1?optPersLbl['pers'][0]:optPersLbl['pers'][1];
          else if(this.req['formular']=='2' || this.req['formular']=='3' ||
                  typeof(window['SucheERDE'])!='undefined' ||
                  typeof(window['SucheLMPS'])!='undefined')
            var lbl = i==1?optPersLbl['erw_short'][0]:optPersLbl['erw_short'][1];        
          else
            var lbl = i==1?optPersLbl['erw'][0]:optPersLbl['erw'][1];
          erwSel.options[erwSel.options.length] = new Option(i+" "+lbl,strErw);
          strErw += ";25";
        }
        erwSel.options.selectedIndex = this.AnzErwachsene-1;
    
        for(var i=0;i<elems.length;++i){
          if(bform[elems[i]]){
            bform[elems[i]].options[0] = new Option("Kind "+(i+1),"-1");
            bform[elems[i]].options[1] = new Option("< 2 "+optPersLbl['kinder'][0],"1");
            for(var j=2;j<=16;j++)
              bform[elems[i]].options[j] = new Option(j+" "+optPersLbl['kinder'][1],j);
            if(this.AlterKinder[i] && this.AlterKinder[i]!="-1")
              bform[elems[i]].value=this.AlterKinder[i];
          }
        }
    }
    
  };
    
    //_______________________________________________________________
    
    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=='beliebig')
            bform.preis.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;
        }
        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;
            }
        }
        //Start: check Volltextsuche
        var theElm = document.getElementById('ftsSearchSimple');
        var theHid = document.getElementById('ftsSearchSimpleActive');         
        if (typeof(theElm)!='undefined' && typeof(theHid)!='undefined'){             
            if (theHid.value == 1){
                theHid.value = 0;
                if (theElm.value=='Suchbegriff' || theElm.value=='' || theElm.value.length <3){                    
                    alert("Bitte geben Sie einen Suchbegriff mit mind. 3 Buchstaben ein!");  
                    theElm.value='Suchbegriff';                                       
                    return false; 
                }
                else{
                    window.location.href=t3url+"index.php?id=72&ftsSearchSimple="+escape(theElm.value);
                    return false;                    
                }
            }
        }
        //Ende: check Volltextsuche
                
        bform.submit();
        return false;
    };
    
    //_______________________________________________________________
  
    this.init = function(){
        if(!document.bengine) 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(); 
        /* ------------------------ */
        
        // Formularfelder füllen
        with(this){            
            //dauert(); //Reisedauer 1-22 Tage
            fillSels({'dauer':optDauer,'kategorie':optKategorieEX,'kategorie_dis':optKategorieEX,'zimmer':optZimmer,'verpflegung':optVerpflegung});
            fillSelFromArray('abflughafen',TTAFH);
            fillReisende(); 
            setChecks(['strand','strand_dis','wellness','wellness_dis','familie_kinder','familie_kinder_dis','typ','typ_dis']);
            //setBitChecks(['meer','meer_dis','zfilter']);
            setTexts(['shotel','shotel_dis','preis']);            
        }
        try{
              var buttons = document.getElementsByName('btnFinden');
              var imgname = "neue_suche";
              for(var i=0;i<buttons.length;i++){
                    buttons[i].setAttribute("src",imgPfad+"/"+imgname+".gif");         
              }
        }
        catch(e){}
    };
    
}

//___________________________________________________________________

function BookingAction(param){
    IBE.BookingAction(param);
}
