/**
*@fileoverview In dieser Datei werden Hilfsfunktionen für das LMPS Suchformular definiert
*@author Guido Fünders, fuenders@traveltainment.de
*/
var IBE = new TTIBE("IBE",port,"bengine",(typeof isXMLHybrid != 'undefined' && isXMLHybrid == 1)?true:false);
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',
                  'optSportangebot','optDauerExt','arrMarke_'+this.port];
  var injObj   = {SucheLMPS:[],Zeitraum:[],Reisende:[this.req['personen']]};
  if (this.req['formular']=='4') {
	  if (typeof ibeType != 'undefined') {
	    if (ibeType == 'city') {
	         mustHave = mustHave.concat(['Zielauswahl','ttUDF_'+this.port,'optZimmer2']);
	    } else  {
	        mustHave = mustHave.concat(['Zielauswahl','TTREGS_'+this.port,'optZimmer2']);
	    }
	  } else {    
        mustHave = mustHave.concat(['Zielauswahl','TTREGS_'+this.port,'optZimmer2']);
      }
  } else {
    mustHave.push('TTFDRZ');
  }
  if (typeof ibeType != 'undefined') {
    if (ibeType == 'city') {
        mustHave.push('ttHotelBits');
    }
  }    
  if(typeof(this.req['abflughafen2']) != 'undefined') {
     mustHave.push('TTAFHDLC'); 
  } else {
     mustHave.push('TTAFH');
  }   

  for(var i=0;i<mustHave.length; ++i){
    if(typeof(window[mustHave[i]])=='undefined'){
      window.setTimeout("IBE.initOnLoad()",20);return;
    }
  }
  this.inject(injObj); this.init();
};
//_______________________________________________________________

function setFlexTime(elem) {
    var bform = document.forms['bengine'];
    var value = elem.value;
    if (value == 0) {
        bform.flextime.value = 2; 
    } else {
        bform.flextime.value = ''; 
    }
}


function addOptionFlex() {
    var bform = document.forms['bengine'];
    var newDauer = new Array();
    for (var i = 0; i < optDauerExt.length; i++) {    
        if (i == 1) {
            newDauer.push("wie o.g. Datum;0");
        } 
        newDauer.push(optDauerExt[i]);       
    }  
    return newDauer;
}

// DLC-Abflughafen Select zusammenstellen
function makeTTAFHDLC() {
    var TTAFHCust = new Array();
    for (var nr = 0; nr < TTAFHDLC.length; nr++) {
        TTAFHCust.push(TTAFHDLC[nr]['label'] + ';' + TTAFHDLC[nr]['dlc']);
    }
    TTAFHCust.push('Mehrfachauswahl' + ';' + '-2');
    document.forms['bengine'].abflughafen2.length = 1;   
    return TTAFHCust;
}

/**
*@constructor
*@extends FormBase
*@requires Terminauswahl
*@requires Zielauswahl
*@requires Reisende
*@requires Kalender
*/
function SucheLMPS(){
  FormBase.apply(this);
  Terminauswahl.apply(this);


  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'];
    
	if (typeof ibeType != 'undefined') {
		if (ibeType == 'city') {
		    ttHotelBits.save();
		    this.manipulateDetailValue();
		    bform.udfForm.value = bform.udf.value;
		}
	}    
    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){
      if(typeof(flexInfo) != 'undefined') {
         if(flexInfo == 1)
            optDauerExt = addOptionFlex();
       } 
      fillSels({"sportangebot":optSportangebot,"dauer":optDauerExt,"marke":window["arrMarke_"+this.port]});
      if(typeof(optHbfges)!='undefined'){
        fillSels({"hbfges":optHbfges,"hbfanz":optHbfanz,"hbfempf":optHbfempf});
      }
      if(typeof(this.req['abflughafen2']) != 'undefined') { 
            setTexts(['abflughafen']);  
            TTAFHCust = makeTTAFHDLC();
            fillSelFromArray('abflughafen2',TTAFHCust);
            window.setTimeout("setAfhSelect('abflughafen2')",50);
      } else {
            fillSelFromArray('abflughafen',TTAFH);
      }   
	  if (typeof ibeType != 'undefined') {
	    if (ibeType == 'city') {   
	       ttHotelBits.init(['parkplatz', 'hallenbad', 'fitness', 'internet', 'nichtraucher', 'wellness'], '_dis');
	     }
	  }   
            
      fillReisende();
      InitDays(1);
      InitMonth(1);
      InitDays(0);
      InitMonth(0);
      UpdateDate('k');
      UpdateDate('rueckk');
      setRadios(['verpflegung','zimmer','kategorie']);
      setChecks(['strand','wellness','familie_kinder']);
      if(this.req['formular']=='2'){
        fillSelFromArray('flugdauer',TTFDRZ);
        setRadios(['typ']);
        setChecks(['sportmoeglichkeiten']);
        setTexts(['shotel']);
      }else if(this.req['formular']=='4'){
        fillBitSels({"zimmer2":optZimmer2});
        setChecks(['typ']);
        setBitChecks(['meer','zfilter']);
        setTexts(['shotel','preis']);
        if(typeof(this.req['lcfilter']) != 'undefined') {
          setFormsForLcfilter(MyOptLcfilter); 
        }        
        UpdateRegionen();
      }
      if (typeof ibeType != 'undefined') {
        if (ibeType == 'city') {     
            document.forms[this.formname].elements["udf"].options[0].text = 'beliebig';
        }
       }
    }

    try{
      document.getElementById('erster_termin').innerHTML  = this.erster_termin;
      document.getElementById('letzter_termin').innerHTML = this.letzter_termin;
    }catch(e){}

    try{
      var buttons = document.getElementsByName('btnFinden');
      var imgname = this.req['formular']==4?"form4submit":"formsubmit";
      for(var i=0;i<buttons.length;i++){
        buttons[i].setAttribute("src",imgPfad+"/forms/"+imgname+".gif");
      }
    }catch(e){}
  };
}
