    /**
    *@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 in mustHave){
            if(typeof(window[mustHave[i]])=='undefined'){
                window.setTimeout("IBE.initOnLoad()",20);return;
            }
        }
        this.inject(injObj); this.init();
    };
    
    //___________________________________________________________________
    
    /**
    *eigene Optionsfelder
    */
    
    var optReisendeBR = {
        erw:["Erwachsener","Erwachsene"],
        kinder:["J.","J."]
    };
    
    
    var optDauerML=[
    "beliebig;-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"
    ];
    
    //___________________________________________________________________
    
    /**
    *@constructor
    *@extends FormBase
    *@requires Terminauswahl
    *@requires Zielauswahl
    *@requires Reisende
    *@requires Kalender
    */
    
    function SucheLMPS(){
        FormBase.apply(this);
        Terminauswahl.apply(this);

        /*
            Maximales Enddatum auf heute +30 Tage setzen für Port 650 (Lami-Angebote)
            13.05.2009 | hst
        */
        if (this.port == 650) {
            var jetzt = new Date();
            jetzt.setHours(0,0,0,0);
            var jetztTS = jetzt.getTime() / 1000;
            termin_max_650 = jetztTS + (30 * 86400);
        }
        
        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;
            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[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){
                fillSels({"sportangebot":optSportangebot,"dauer":optDauerML,"marke":window["arrMarke_"+this.port]});
                fillSelFromArray('abflughafen',TTAFH);
                fillReisende(optReisendeBR);
                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','preis']);
                //UpdateRegionen(); //Land / Region fuellen 
            }
            
            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+"/angebote_finden.gif");
                }
                catch(e){}
            }
        };        
    }

    /**
    * Regionen fuellen
    */
    this.REGU = function(mRegion){    
      if(mRegion != -1){
        var tmpLand = mLand.split("|");
        var tmpRegion = mRegion.split("|");
        var optLength =document.bengine.ziel.options.length;
        try{
         document.bengine.ziel.innerHTML = '';
         document.bengine.ziel.options[0] = new Option("<Alle Reiseziele>",-1,true,false);
         var tmpVal = '', tmpL = '', rm=1;
         for (var rk=0;rk<tmpLand.length-1;rk++){
           tmpVal = tmpLand[rk].split("~");
           if(tmpVal[1]!=tmpL){ // Jedes Land nur 1x
            tmpVal[2] = tmpVal[2].replace("&Auml;","%C4"); 
            tmpVal[2] = tmpVal[2].replace("&uuml;","%FC"); 
            if(tmpRegion[1] != tmpVal[1]){ 
              document.bengine.ziel.options[rm] = new Option(unescape(tmpVal[2]),tmpVal[1],true,false);
            }else{ //active land
              document.bengine.ziel.options[rm] = new Option(unescape(tmpVal[2]),tmpVal[1],true,true);
            }
           rm++;
           }
           tmpL = tmpVal[1];
         } 
        }
        catch(e){alert("Folgender Fehler ist aufgetreten:\n"+e);}
      }
    };

    this.RZCM = function(aLand){
      if(aLand == -1){
        document.bengine.region.options[0] = new Option("<Alle Regionen>",-1,true,false);
        var regTmp = aRegionen.split("#");
        for(var ri=0;ri<regTmp.length-1;ri++){
          try{
            var regPart = regTmp[ri].split("~");
            document.bengine.region.options[ri+1] = new Option(regPart[1],regPart[0],true,false);
          }
          catch(e){alert("Folgender Fehler ist aufgetreten:\n"+e);}
        }        
      }else{
        var rczTmp = mRegionen.split("|");
        for(var ri=0;ri<rczTmp.length;ri++){
          try{
           var tmpTopRegion = rczTmp[ri].split("=");
           if(tmpTopRegion[0] == aLand){ //Entsprechende Regionen gefunden
           document.getElementById("tt_regionen").innerHTML = '';
             var tmpRegions = rczTmp[ri].split("%"), tmpRegionsOpt = '', RegionDuplicate = '0', ro = 0;
             for(var rj=0;rj<tmpRegions.length;rj++){ 
               if(ro==0)
                document.bengine.region.options[ro] = new Option("<Alle Regionen>",-1,true,false);
               tmpRegions[rj]  = tmpRegions[rj].replace(/^\d*\=/, ''); //Am Anfang beliebige Zahlen und '=' rausfiltern
               tmpRegions[rj]  = tmpRegions[rj].split("!");
               if(tmpRegions[rj][0] != RegionDuplicate){ //Doppelte vermeiden  
                 var tmpRegio = tmpRegions[rj][0].replace('+','|');
                 document.bengine.region.options[ro+1] = new Option(tmpRegions[rj][1],tmpRegio,true,false);
                 RegionDuplicate = tmpRegions[rj][0];
                 ro++;
               }
             }
           } 
          }
          catch(e){alert("Folgender Fehler ist aufgetreten:\n"+e);}
        }
      }
    };
    
