    /**
    *@fileoverview In dieser Datei werden Hilfsfunktionen für das LMPS Suchformular definiert
    */
    var IBE = new TTIBE("IBE",port,"startengine");
    IBE.jsFiles = ['../../../../booking/jslib/formulare/selectopt654.js','../../../../booking/jslib/core/datehelper.js',
                   '../../../../booking/jslib/core/zeitraum.js','../../../../booking/jslib/formulare/terminauswahl.js',
                   '../../../../booking/jslib/formulare/formbase.js','../../../../booking/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','optDauer'];
        var injObj   = {SucheCN:[],Zeitraum:[],Reisende:[this.req['personen']]};
        mustHave = mustHave.concat(['Zielauswahl','TTREGS_'+this.port]);
        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 optReisendeBH = {
        erw:["Erwachsener","Erwachsene"],
        kinder:["J.","J."]
    };
    
    //___________________________________________________________________
    
    /**
    *@constructor
    *@extends FormBase
    *@requires Terminauswahl
    *@requires Zielauswahl
    *@requires Reisende
    *@requires Kalender
    */
    
    function SucheCN(){
        FormBase.apply(this);
        Terminauswahl.apply(this);
        
        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;
            }
            bform.submit();
            return false;
        };
        
        //_______________________________________________________________
        
        this.RZC = function(ds){
            var zielSel = document.forms[this.formname].elements["ziel"];
            var kenner  = zielSel.value;
            this.valZiel = kenner;
            
            // globale Variable "g_strZiel" updaten
            if(zielSel.selectedIndex>0){
                this.strZiel=zielSel[zielSel.selectedIndex].text;
            }
            else{
                this.strZiel="";
            }
            
            // Filter auf true setzen wenn Ziel ausgewählt ist
            this.gfilt = kenner!=-1;
            var opt = document.forms[this.formname].elements["region"].options;
            
            while(opt.length>1)
                opt[opt.length-1] = null;
              
            for(var i in this.Regionen){
                var sr = this.Regionen[i].split("|");
                if(sr[1]<10000 && (kenner<0 || sr[2]==kenner)){
                    opt[opt.length]=new Option(sr[0],sr[1]+"|"+sr[2]);
                }
            }
            
            if(ds){
                opt.selectedIndex=0;
                this.strReg="";
                this.valReg=-1;
            }
        };
        
        //_______________________________________________________________
        
        this.FixRSel = function(){
            var opt=document.forms[this.formname].elements["ziel"].options;
            // ist das richtige Ziel ausgewählt?
            if((opt.selectedIndex<0 || opt.value!=this.valZiel) && this.valZiel!=0){
                try{
                    document.forms[this.formname].elements["ziel"].value = this.valZiel;
                }
                catch(e){
                    if(this.strZiel!="")
                        opt[opt.length]=new Option(this.strZiel,this.valZiel,true,true);
                    else{
                        opt.selectedIndex=0;this.RZC();return;
                    }
                }
            }
            this.RZC();
            
            opt=document.forms[this.formname].elements["region"].options;
            if(opt.selectedIndex<0 || opt[opt.selectedIndex].value.split("|")[0]!=this.valReg){
                for(i=0;i<opt.length;i++)
                    if(opt[i].value.split("|")[0]==this.valReg){
                        opt.selectedIndex=i;break;
                    }
                    
                if(i==opt.length){
                    if(this.strReg!="")
                        opt[opt.length]=new Option(this.strReg+" (keine Ang.)",this.valReg+"|"+this.valZiel,true,true);
                    else{
                        opt.selectedIndex=0;this.valReg=-1;this.strReg="";
                    }
                }
            }
        };
        
        //_______________________________________________________________
        
        this.UpdateRegionen = function(){
            // Erstes Element der Regionauswahlbox erstellen
            document.forms[this.formname].elements["region"].options[0] = new Option(this.optFirstRegSelect['region'],"-1");
            
            // Erstes Element der Zielauswahl erstellen
            var opt=document.forms[this.formname].elements["ziel"].options;
            while(opt.length>0)
                opt[opt.length-1] = null;
            opt[0] = new Option(this.optFirstRegSelect['ziel'],"-1");
            
            for(var i in this.Regionen){
                var sr=this.Regionen[i].split("|");
                if(sr[1]>=10000)
                    opt[opt.length]=new Option(sr[0],sr[1]);
            }
            this.FixRSel();
        };
        
        //_______________________________________________________________
        
        /**
        *Wird nach dem Laden der Seite ausgeführt
        */
        
        this.init = function(){
            if(!document.forms[this.formname]) return;
            // Formularfelder füllen
            with(this){
                if(port == 653){
                    dauert();
                }
                else{
                    fillSels({"dauer":optDauer});
                }
                fillSelFromArray('abflughafen',TTAFH);
                fillReisende(optReisendeBH);
                InitDays(1);
                InitMonth(1);
                InitDays(0);
                InitMonth(0);
                UpdateDate('k');
                UpdateDate('rueckk');
                UpdateRegionen();
            }
            
            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+"/button_angebote_finden.gif");
                }
                catch(e){}
            }
        };        
    }
    
