var kalInputWidth = 140;
var topDistanceHin = 1;
var leftDistanceHin = 0;
var topDistanceRueck = 1;
var leftDistanceRueck = 0;

var g_Pfad_KAL_IMG = "/kunden_parameter/" + ordner_name + "/ibe_v2/images/kalender/";
var g_oTermine     = {};
var oKalHin, oKalRueck;
var oImages = {
  '/kalender/pfeil_links'       : new Image(),
  '/kalender/pfeil_links_over'  : new Image(),
  '/kalender/pfeil_rechts'      : new Image(),
  '/kalender/pfeil_rechts_over' : new Image()
};
for(var imgName in oImages) {
  oImages[imgName].src = imgPfad + imgName + ".gif";
}

/**
*@fileoverview In dieser Datei werden Hilfsfunktionen für das Fewo-Suchformular definiert
*@author Guido Fünders, fuenders@traveltainment.de
*/
var IBE = new TTIBE("IBE",port,"bengine");
IBE.jsFiles = ['../../jslib/formulare/selectopt655.js','../../jslib/core/datehelper.js','../../jslib/core/zeitraum.js',
               '../../jslib/formulare/terminauswahl.js','../../jslib/formulare/formbase.js',
               '../../jslib/core/reisende.js','../../jslib/formulare/zielauswahlfewo.js',
               '../../jslib/ttkalender/ferien.js', '../js/search/ttkalender.js'];

IBE.initOnLoad = function(){
  var mustHave = ['FormBase','termin_min_'+this.port,'termin_max_'+this.port,'Zeitraum','Reisende','Terminauswahl','Zielauswahl','TTREGS_'+this.port,
                  'optZimmer','optSchlafzimmer','optDauer','arrMarke_'+this.port,'optEntfMeer','optEntfLift',
                  'DateHelperLoaded','g_oFerien', 'Kalender'];
  var injObj   = {SucheFeWo:[],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 optPreis = [
        "beliebig;-1",
        "bis 300 €;1",
        "bis 500 €;2",
        "bis 750 €;3",
        "bis 1000 €;4"
    ];
    
    var optKategorie=[
        "egal;-1",
        "2 Häuser;0",
        "3 Häuser;1",
        "4 Häuser;2",
        "5 Häuser;3"
    ];    

var optDauerComvel = [
    "beliebig;-1",
    "exakt wie angegeben;0",
    "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"
];

/**
*@constructor
*@extends FormBase
*@requires Terminauswahl
*@requires Zielauswahl
*@requires Reisende
*@requires Kalender
*/
function SucheFeWo(){
  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      = parseInt(getTimestampFromString(bform.oKalHin_input.value) / 1000);
    bform.ruecktermin.value = parseInt(getTimestampFromString(bform.oKalRueck_input.value) / 1000);
    
    if(bform.snach){
      if(bform.snach[1].checked==true && bform.shotel.value!="" && bform.shotel.value.substring(0,1)!=":")
        bform.shotel.value=':'+bform.shotel.value;
    }
    return this.chkFormular();
  };

  this.chkFormular = function(){
    var bform=document.forms[this.formname];
    if(bform.termin.value > bform.ruecktermin.value){
      alert("Ihr Rückreisedatum liegt vor dem Hinreisedatum");
      return false;
    }
    bform.submit();
    return false;
  };

  /**
  *Wird nach dem Laden der Seite ausgeführt
  */
  this.init = function(){
    if(!document.forms[this.formname]) return;
    
    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');
    oKalRueck = new Kalender('oKalRueck', 'rueck');
    oKalHin.init();
    oKalRueck.init();
    
    var oVoid = {'':'beliebig'};
    // Formularfelder füllen
    with(this){
      fillSels({"zimmer":optZimmer,"preis":optPreis,"typ":optSchlafzimmer,"dauer":optDauerComvel,"marke":window["arrMarke_"+this.port],"entf_meer":optEntfMeer,"entf_lift":optEntfLift,"kategorie":optKategorie});
      fillReisende();
      setChecks(['schwimmbad','sauna','tv','kamin','rollstuhl','angeln','kinderbett','haustiere','geschirrspueler','waschmaschine','boot','tennis','garage']);      
      setRadios(['snach']);
      setTexts(['shotel']);      
      UpdateRegionen();
    }

    var buttons = document.getElementsByName('btnFinden');
    for(var i=0;i<buttons.length;i++){
        try{
          buttons[i].setAttribute("src",imgPfad+"/angebote_finden.gif");
        }catch(e){}
    }
    
    isTTIBEready = true;
    
  };
}

function ferienOnChange(selBox){
  g_strFerienSelect = selBox.value;
  oKalHin.updateCalendar();
  oKalRueck.updateCalendar();
}

function txtOptionOneLess(element, targetTxt) {
    var selIndex = element.selectedIndex;

    if (selIndex > 0) {
        element.selectedIndex = selIndex - 1;
    }

    document.getElementById(targetTxt).innerHTML = element.options[element.selectedIndex].text;
}
function txtOptionOneMore(element, targetTxt) {
    var selIndex = element.selectedIndex;

    if (selIndex < element.length-1) {
        element.selectedIndex = selIndex + 1;
    }

    document.getElementById(targetTxt).innerHTML = element.options[element.selectedIndex].text;
}

function katOneLess() {
    var element = document.bengine.kategorie;
    var selIndex = element.selectedIndex;

    if (selIndex >= 0) {
        if (selIndex == 1) {
            element.selectedIndex = selIndex - 2;
        }
        else {
            element.selectedIndex = selIndex - 1;
        }        
    }
        
    document.getElementById('katTxt').innerHTML = (element.selectedIndex + 1) == 0 ? 'beliebig' : (element.selectedIndex + 1) == 5 ? 'ab 5 Häuser' : 'ab ' + (element.selectedIndex + 1) + ' Häuser';
    document.getElementById('katImg').src = imgPfad + '/sterne_fewo/' + (element.selectedIndex + 1) + '.gif';
}
function katOneMore(element, targetTxt) {
    var element = document.bengine.kategorie;
    var selIndex = element.selectedIndex;

    if (selIndex < element.length-1) {
        if (selIndex < 0) {
            element.selectedIndex = selIndex + 2;
        }
        else {
            element.selectedIndex = selIndex + 1;
        }
    }
    
    document.getElementById('katTxt').innerHTML = (element.selectedIndex + 1) == 1 ? 'beliebig' : (element.selectedIndex + 1) == 5 ? 'ab 5 Häuser' : 'ab ' + (element.selectedIndex + 1) + ' Häuser';
    document.getElementById('katImg').src = imgPfad + '/sterne_fewo/' + (element.selectedIndex + 1) + '.gif';
}

function setKatByClick(kat) {
    var element = document.bengine.kategorie;
    element.selectedIndex = kat;
    document.getElementById('katTxt').innerHTML = (element.selectedIndex + 1) == 0 ? 'beliebig' : (element.selectedIndex + 1) == 5 ? 'ab 5 Häuser' : 'ab ' + (element.selectedIndex + 1) + ' Häuser';
    document.getElementById('katImg').src = imgPfad + '/sterne_fewo/' + (element.selectedIndex + 1) + '.gif';
}

function setFlexTime(elem) {
    var bform = document.forms['bengine'];
    var value = elem.value;
    if (value == 0) {
        bform.flextime.value = 2; 
    } else {
        bform.flextime.value = ""; 
    }
}

