/**
*@fileoverview In dieser Datei werden Hilfsfunktionen für das LMPS Suchformular definiert
*@author Guido Fünders, fuenders@traveltainment.de
*/

/*
var optFirstRegSelectFTI = {
  ziel:"Beliebig",
  region:"Beliebig"
}
*/

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',
               '../jslib/ttkalender/ferien.js', 'js/search/ttkalender.js'];

IBE.initOnLoad = function(){
  var bform = document.forms[this.formname];
  var mustHave = ['Zielauswahl','TTREGS_'+this.port,'FormBase','termin_min_'+this.port,'termin_max_'+this.port,'Zeitraum','Reisende','Terminauswahl','TTAFH',
                  'optSportangebot','optDauer','arrMarke_'+this.port,'DateHelperLoaded','g_oFerien', 'TTKalender'];
  var injObj   = {Zielauswahl:[],SucheLMPS:[],Zeitraum:[],Reisende:[this.req['personen']]};

  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();
};

/**
*eigene Optionsfelder
*/

var optDauerFTI = [
    "Beliebig;-1",
    "1 Tag;6_1",
    "2 Tage;6_2",
    "3 Tage;6_3",
    "4 Tage;6_4",
    "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 optReisendeFTI = {
    erw:["",""],
    kinder:["",""]
};

var optPreisFTI = [
    "Beliebig;-1",
    "bis 300 €;300",
    "bis 500 €;500",
    "bis 750 €;750",
    "bis 1000 €;1000"
];

var MyOptHbwAnz = [
    "beliebig;0",
    "mind. 2;2",
    "mind. 3;3",
    "mind. 5;5",
    "mind. 10;10",
    "mind. 20;20",
    "mind. 30;30"
];

var MyOptHbwGes = [
    "beliebig;0",
    "mind. 3.0/6.0;30",
    "mind. 4.0/6.0;40",
    "mind. 5.0/6.0;50",
    "mind. 6.0/6.0;60"
];

var MyOptHbwEmpf = [
    "beliebig;0",
    "mind. 80%;800",
    "mind. 90%;900",
    "mind. 100%;1000"
];

/**
*@constructor
*@extends FormBase
*@requires Terminauswahl
*@requires Zielauswahl
*@requires Reisende
*@requires Kalender
*/
function SucheLMPS(){
  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;
    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({"preis":optPreisFTI,"sportangebot":optSportangebot,"dauer":optDauerFTI,"marke":window["arrMarke_"+this.port],'ferientermineKalHin':optBundeslaender,'ferientermineKalRueck':optBundeslaender});
      if(typeof(MyOptHbwGes)!='undefined'){
        fillSels({"hbfges":MyOptHbwGes,"hbfanz":MyOptHbwAnz,"hbfempf":MyOptHbwEmpf});
      }
      fillSelFromArray('abflughafen',TTAFH);
      fillReisende(optReisendeFTI);
      InitDays(1);
      InitMonth(1);
      InitDays(0);
      InitMonth(0);
      //UpdateDate('k');
      //UpdateDate('rueckk');
      setRadios(['kategorie','zimmer','verpflegung']);
      setChecks(['familie_kinder','strand','wellness','typ','sportmoeglichkeiten']);
      fillBitSels();
      setBitChecks(['meer','zfilter']);
      setTexts(['shotel']);
      UpdateRegionen();
    }

    g_strFerienSelect = document.forms[this.formname].ferientermineKalHin.value;

    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 TTKalender('oKalHin', 'hin');
    oKalRueck = new TTKalender('oKalRueck', 'rueck');
    oKalHin.init();
    oKalRueck.init();

    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 = "btn_angebote_finden";
      for(var i=0;i<buttons.length;i++){
        buttons[i].setAttribute("src",imgPfad+"/forms/"+imgname+".gif");
      }
    }catch(e){}
      
    setSels();  
    print_afh_mauswahl("right")
        
    isTTIBEready = true;
        
  };
}

function ferienOnChange(selBox){
  g_strFerienSelect = selBox.value;
  document.bengine.ferientermine.value = selBox.value;
  if (selBox.id == 'ferientermineKalHin') {
      //alert("document.bengine.ferientermineKalRueck.options[selBox.value]: " + document.bengine.ferientermineKalHin.selectedIndex + document.bengine.ferientermineKalRueck.options[2]);
      document.bengine.ferientermineKalRueck.options[document.bengine.ferientermineKalHin.selectedIndex].selected = 'selected';
  } else {
      document.bengine.ferientermineKalHin.options[document.bengine.ferientermineKalRueck.selectedIndex].selected = 'selected';
  }
  oKalHin.updateCalendar();
  oKalRueck.updateCalendar();
}

