/**
 * ibe-controls-1.0.js, Version 1.0, 2010/04/12
 * (c) 2010 Olaf Nix, Airport Service 2000 GmbH
**/
var Helpers = {
  Version: '1.0',
  Revision: '1',
  GET_Vars: new Array(),

  explodeGETVars: function() {
    var querystring = decodeURI(location.search.substr(1, location.search.length));
    querystring = querystring.replace(/\+/g, ' ');

    if (querystring != '') {
      var pairs = querystring.split('&');
      for(var i = 0; i < pairs.length; i++) {
        var val='';
        var data = pairs[i].split('=');
        if(data.length > 1) {
          val = unescape(data[1]);
        }
        this.GET_Vars[data[0]] = val;
      }
    }
  },

  getParamValue: function(name, fallback) {
    if (this.GET_Vars[name]) {
      return this.GET_Vars[name];
    }
    return fallback;
  },

  Popup: function(href,top,left,width,height,style) {
    if (style==1) {
      var win = window.open(href, 'POPUP', "status=no,resizable=no,scrollbars=yes,menubar=no,toolbar=no,location=no,directories=no,copyhistory=no,width="+width+",height="+height+",top="+top+",left="+left);
    } else if (style==2) {
      var win = window.open(href, 'POPUP', "status=no,resizable=no,scrollbars=no,menubar=no,toolbar=no,location=no,directories=no,copyhistory=no,width="+width+",height="+height+",top="+top+",left="+left);
    }
    if (win.window) { win.window.focus(); } else { win.focus(); }
  },

  Hotelinfo: function(id,vc,oc,date) {
    var url = 'http://www.ferienknaller.de/site/hotelinfobox.html?id='+id+'&vc='+vc+'&oc='+escape(oc)+'&date='+date;
    if (arguments.length == 5) {
      url += '&tab=' + arguments[4];
    }
    if (id == 0 || (vc == '' && oc == '')) {
      alert('Zu diesem Angebot liegen uns momentan keine weiteren Details vor!');
    } else {
      var win = window.open(url,'HINFO', 'width=780,height=585,scrollbars=no,toolbar=no,location=no,status=no,menubar=no,resizable=no,directories=no,copyhistory=no');
      if (win.window) { win.window.focus(); } else { win.focus(); }
    }
  },

  // IE sucks sooo much
  toggleTr: function(id) {
    if ($(id).css('display')=='none') {
      $(id).show();
    } else {
      $(id).hide();
    }
  },

  // IE8 cannot handle nextAll().toggle() with table rows
  toggleTrNextAll: function(id) {
    $(id).nextAll('tr').each(function() {
      if ($(this).css('display')=='none') {
        $(this).show();
      } else {
        $(this).hide();
      }
    });
  }
}

var TIT_Controls = {
  initCalendar: function(displayId, displayFormat, transportId, transportFormat, minDate, maxDate) {
    var showCurrentAtPos = 0;
    $(displayId).datepick($.extend({},
      $.datepick.regional['de'], {
        minDate: minDate,
        maxDate: maxDate,
        firstDay: 1,
        changeFirstDay: false,
        duration: 0,
        dateFormat: displayFormat,
        showDefault: true,
        gotoCurrent: true,
        numberOfMonths: 3,
        stepMonths: 3,
        prevText: '&#x25c4;',
        nextText: '&#x25ba;',
        showCurrentAtPos: showCurrentAtPos,
        showOn: 'both',
        buttonImage: '/site/images/cal.gif',
        buttonImageOnly: true,
        buttonText: 'Kalender',
        changeMonth: false,
        changeYear: false,
        altField: transportId,
        altFormat: transportFormat
      }
    ));
  },

  setAdults: function(selected, mode) {
    if (mode == 'long') {
      var options = ['1|1 Erwachsener','2|2 Erwachsene','3|3 Erw/1 Zimmer','4|4 Erw/1 Zimmer'];
    } else {
      var options = ['1|1 Erw.','2|2 Erw.','3|3 Erw.','4|4 Erw.'];
    }
    for(var i = 0; i < options.length; i++) {
      var option = options[i].split('|');
      if (selected == option[0]) {
        document.write('<option value="'+option[0]+'" selected="selected">'+option[1]+'</option>');
      } else {
        document.write('<option value="'+option[0]+'">'+option[1]+'</option>');
      }
    }
  },

  setChild: function(blank, selected) {
    var mode = 'long';
    if (arguments.length == 3) {
      mode = arguments[2];
    }

    if (selected == '') {
      document.write('<option value="18" selected="selected">'+blank+'</option>');
    } else {
      document.write('<option value="18">'+blank+'</option>');
    }

    if (mode == 'long') {
      if (selected == 1) {
        document.write('<option value="1" selected="selected">Baby</option>');
      } else {
        document.write('<option value="1">Baby</option>');
      }
      for(var i = 2; i < 15; i++) {
        if (selected == i) {
          document.write('<option value="'+i+'" selected="selected">'+i+' Jahre</option>');
        } else {
          document.write('<option value="'+i+'">'+i+' Jahre</option>');
        }
      }
    } else if (mode == 'short') {
      if (selected == 1) {
        document.write('<option value="1" selected="selected">&lt;2 J.</option>');
      } else {
        document.write('<option value="1">&lt;2 J.</option>');
      }
      for(var i = 2; i < 15; i++) {
        if (selected == i) {
          document.write('<option value="'+i+'" selected="selected">'+i+' J.</option>');
        } else {
          document.write('<option value="'+i+'">'+i+' J.</option>');
        }
      }
    }
  },

  setDestinations: function(blank, selected) {
    var select_str = '';
    var selected_found = false;

    if (selected == '') {
      selected_found = true;
      document.write('<option value="" selected="selected">'+blank+'</option>');
    } else {
      document.write('<option value="">'+blank+'</option>');
    }

    // var favorites = ['PMI|Mallorca','AYT|Türkische Riviera','/HRG/SSH/|Ägypten','LPA|Gran Canaria','FUE|Fuerteventura','TEN|Teneriffa','ACE|Lanzarote','KRE|Kreta','RHO|Rhodos','MIR|Tunesien','DXB|Dubai','PUJ|Dom. Republik'];
    var favorites = ['AYT|Türkische Riviera','PMI|Mallorca','/HRG/SSH/|Ägypten','LPA|Gran Canaria','FUE|Fuerteventura','TEN|Teneriffa','ACE|Lanzarote','FNC|Madeira','/VRA/HOG/|Kuba','CUN|Mexiko (Cancun)','PUJ|Dom. Republik','HKT|Thailand','DPS|Bali'];

    document.write('<optgroup label="Beliebte Reiseziele">');
    for(var i = 0; i < favorites.length; i++) {
      var option = favorites[i].split('|');
      if (!selected_found && (option[0] == selected)) {
        select_str = ' selected="selected"';
        selected_found = true;
      }
      document.write('<option value="'+option[0]+'"'+select_str+'>'+option[1]+'</option>');
      if (selected_found) {
        select_str = '';
      }
    }
    document.write('</optgroup>');

    select_str = '';
    var destinations = [
      'B|Balearen|R','PMI|Mallorca|Z','IBZ|Ibiza|Z','MAH|Menorca|Z','FOM|Formentera|Z',
      'C|Kanaren|R','LPA|Gran Canaria|Z','FUE|Fuerteventura|Z','TEN|Teneriffa|Z','ACE|Lanzarote|Z','SPC|La Palma|Z','GOM|La Gomera|Z','VDE|El Hierro|Z',
      'F|Türkei|R','BJV|Bodrum|Z','IST|Istanbul|Z','DLM|Lykische Küste|Z','ADB|Türkische Ägäis|Z','AYT|Türkische Riviera|Z','TXX|Türkei Spezial|Z',
      'M|Ägypten|R','HRG|Hurghada|Z','SSH|Sharm El Sheikh|Z','RMF|Marsa Alam|Z','LXR|Luxor|Z','ALY|Alexandria|Z','ASW|Assuan|Z','CAI|Cairo|Z','NIL|Nilkreuzfahrten|Z','TCP|Taba|Z',
      'E|Spanisches Festland|R','ALC|Costa Blanca|Z','CBR|Costa Brava|Z','XRY|Costa de la Luz|Z','AGP|Costa del Sol|Z','LEI|Golf von Almeria|Z','BCN|Barcelona|Z','SVQ|Sevilla|Z','MAD|Madrid|Z',
      'D|Portugal und Madeira|R','FAO|Algarve|Z','LIS|Lissabon|Z','LIU|Lissabons Küste|Z','FNC|Madeira|Z','PDL|Azoren|Z',
      'J|Tunesien und Marokko|R','MIR|Monastir (Tunesien)|Z','DJE|Insel Djerba (Tunesien)|Z','TUN|Tunis (Tunesien)|Z','AGA|Agadir (Marokko)|Z','RAK|Marrakesch (Marokko)|Z',
      'G|Griechische Inseln|R','AOK|Karpathos|Z','EFL|Kefalonia|Z','CFU|Korfu|Z','KGS|Kos|Z','KRE|Kreta|Z','MJT|Lesbos|Z','JMK|Mykonos|Z','JNX|Naxos|Z','PAS|Paros|Z','RHO|Rhodos|Z','SMI|Samos|Z','JTR|Santorini|Z','THS|Thassos|Z','ZTH|Zakynthos|Z',
      'H|Griechenland|R','SKG|Chalkidiki|Z','KVA|Kavala|Z','/KLX/GPA/|Peloponnes|Z',
      'I|Italien|R','SUF|Kalabrien|Z','NAP|Neapel|Z','FCO|Rom|Z','OLB|Sardinien|Z','CTA|Sizilien|Z','MXP|Mailand (Malpensa)|Z',
      'L|Europ&auml;ische St&auml;dte|R','TXL|Berlin (Tegel)|Z','KLU|Klagenfurt|Z','LJU|Llubljana|Z','STN|London (Stansted)|Z','MUC|M&uuml;nchen|Z','CDG|Paris (Charles de Gaulle)|Z','PRG|Prag|Z','LED|St. Pertersburg|Z','VIE|Wien|Z',
      'Y|Sonstige Mittelmeerziele|R','DBV|Dubrovnik (Kroatien)|Z','SPU|Split (Kroatien)|Z','MLA|Malta|Z','ZYP|Zypern|Z',
      'K|Bulgarien und Rum&auml;nien|R','VAR|Goldstrand (Bulgarien)|Z','BOJ|Sonnenstrand (Bulgarien)|Z','CND|Constanza (Rum&auml;nien)|Z',
      'N|Vorderer Orient|R','DXB|Dubai|Z','AUH|Abu Dhabi|Z','QAJ|Ajman|Z','FJR|Fujeirah|Z','RKT|Ras-Al-Khaimah|Z','SHJ|Sharjah|Z','UML|Um-Al-Quwain|Z','AMM|Amman (Jordanien)|Z','MCT|Maskat (Oman)|Z','BEY|Libanon|Z','TLV|Tel Aviv (Israel)|Z',
      'X|Afrika|R','BVC|Boa Vista (Kapverden)|Z','SID|Sal (Kapverden)|Z','MBA|Kenia|Z','ZNZ|Sansibar|Z',
      'O|Kuba|R','HAV|Havanna|Z','HOG|Holguin|Z','VRA|Varadero|',
      'P|Dominikanische Republik|R','POP|Puerto Plata|Z','PUJ|Punta Cana|Z','AZS|Samana|Z','SDQ|Santo Domingo|Z',
      'Q|Karibische Inseln|R','ANU|Antigua|Z','NAS|Bahamas|Z','BGI|Barbados|Z','GND|Grenada|Z','MBJ|Jamaika|Z','PMV|Isla Margarita (Venezuela)|Z',
      'R|USA und Kanada|R','RSW|Fort Myers (FL)|Z','MIA|Miami (FL)|Z','JFK|New York (JFK)|Z','EWR|Newark (NY)|Z','YVR|Vancouver (Kanada)|Z',
      'S|Mexiko und S&uuml;damerika|R','REC|Recife (Brasilien)|Z','GIG|Rio de Janeiro (Brasilien)|Z','SJO|Costa Rica|Z','CUN|Cancun (Mexiko)|Z',
      'T|Thailand|R','BKK|Bangkok|Z','CNX|Chiang Mai|Z','UTP|Golf von Thailand|Z','TKL|Khao Lak|Z','TDX|Ko Chang / Ko Kood|Z','USM|Koh Samui|Z','KBV|Krabi|Z','HKT|Phuket|Z',
      'U|Indischer Ozean|R','DPS|Bali|Z','MLE|Malediven|Z','MRU|Mauritius|Z','SEZ|Seychellen|Z','CMB|Sri Lanka|Z',
      'V|Asien und China|R','PEK|Peking (China)|Z','PVG|China (Shanghai-D.Pong)|Z','SGN|Ho-Chi-Minh (Vietnam)|Z'
    ];
    for(var i = 0; i < destinations.length; i++) {
      var option = destinations[i].split('|');
      if (option[2] == 'R') {
        if (i > 0) {
          select_str = '';
          if (!selected_found && (ref == selected)) {
            select_str = ' selected="selected"';
            selected_found = true;
          }
          document.write('<option value="'+ref+'"'+select_str+'>Gesamte Region</option></optgroup>');
          if (selected_found) {
            select_str = '';
          }
        }
        var ref  = option[0];
        var name = option[1];
        document.write('<optgroup label="'+name+'">');
      } else {
        select_str = '';
        if (!selected_found && (option[0] == selected)) {
          select_str = ' selected="selected"';
          selected_found = true;
        }
        document.write('<option value="'+option[0]+'"'+select_str+'>'+option[1]+'</option>');
        if (selected_found) {
          select_str = '';
        }
      }
    }
    document.write('<option value="'+ref+'"'+select_str+'>Gesamte Region</option></optgroup>');
  },

  setAirports: function(blank, selected) {
    if (selected == '') {
      document.write('<option value="" selected="selected">'+blank+'</option>');
    } else {
      document.write('<option value="">'+blank+'</option>');
    }
    var options = ['N|Nord','O|Ost','S|S&uuml;d','W|West','M|Mitte','B|Berlin'];
    document.write('<optgroup label="Abflugregion">');
    for(var i = 0; i < options.length; i++) {
      var option = options[i].split('|');
      if (selected == option[0]) {
        document.write('<option value="'+option[0]+'" selected="selected">'+option[1]+'</option>');
      } else {
        document.write('<option value="'+option[0]+'">'+option[1]+'</option>');
      }
    }
    document.write('</optgroup>');
    var options = ['AOC|Altenburg','AMS|Amsterdam (NL)','AGB|Augsburg','MLHxBSL|Basel (CH)','SXF|Berlin Sch&ouml;nefeld','TXL|Berlin Tegel','BLL|Billund (DK)','BRE|Bremen','BRU|Br&uuml;ssel','DTM|Dortmund','DRS|Dresden','DUS|D&uuml;sseldorf','EIN|Eindhoven (NL)','ENS|Enschede (NL)','ERF|Erfurt','FRA|Frankfurt/Main','HHN|Frankfurt/Hahn','FDH|Friedrichshafen','GDN|Gdansk (PL)','GVA|Genf (CH)','GRZ|Graz (A)','GRQ|Groningen (NL)','HAM|Hamburg','HAJ|Hannover','HOQ|Hof','INN|Innsbruck (A)','FKB|Karlsruhe','KTW|Katowice (PL)','CGN|K&ouml;ln/Bonn','CPH|K&oslash;benhavn (DK)','KLU|Klagenfurt (A)','LEJ|Leipzig','LNZ|Linz (A)','LUX|Luxemburg (L)','LBC|L&uuml;beck','LGG|L&uuml;ttich (B)','MST|Maastricht (NL)','MUC|M&uuml;nchen','FMO|M&uuml;nster','FNB|Neubrandenburg','NRN|Niederrhein/Weeze','NUE|N&uuml;rnberg','PAD|Paderborn','RLG|Rostock','SCN|Saarbr&uuml;cken','SZG|Salzburg (A)','SZW|Schwerin','STR|Stuttgart','SXB|Strasbourg (F)','WAW|Warszawa (PL)','VIE|Wien (A)','WRO|Wroclaw (PL)','ZRH|Z&uuml;rich (CH)','ZQW|Zweibr&uuml;cken'];
    document.write('<optgroup label="Abflughafen">');
    for(var i = 0; i < options.length; i++) {
      var option = options[i].split('|');
      if (selected == option[0]) {
        document.write('<option value="'+option[0]+'" selected="selected">'+option[1]+'</option>');
      } else {
        document.write('<option value="'+option[0]+'">'+option[1]+'</option>');
      }
    }
    document.write('</optgroup>');
    document.write('<optgroup label="Weitere Regionen">');
    var options = ['AMSxENSxEINxGRQ|Niederlande','INNxLNZxSZGxVIE|&Ouml;sterreich','MLHxZRHxBSL|Schweiz','LUXxLGGxMST|Belgien/Luxemburg','CPHxBLL|Dankmark','GDNxWROxKTWxWAW|Polska'];
    for(var i = 0; i < options.length; i++) {
      var option = options[i].split('|');
      if (selected == option[0]) {
        document.write('<option value="'+option[0]+'" selected="selected">'+option[1]+'</option>');
      } else {
        document.write('<option value="'+option[0]+'">'+option[1]+'</option>');
      }
    }
    document.write('</optgroup>');
  },

  setTravelDuration: function(blank, selected) {
    var html = '';
    var options = ['7,7|1 Woche','14,14|2 Wochen','21,21|3 Wochen'];
    if (selected == '') {
      html += '<option value="" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="">'+blank+'</option>';
    }
    
    for(var i = 0; i < options.length; i++) {
      var option = options[i].split('|');
      if (selected == option[0]) {
        html += '<option value="'+option[0]+'" selected="selected">'+option[1]+'</option>';
      } else {
        html += '<option value="'+option[0]+'">'+option[1]+'</option>';
      }
    }

    for(var i = 3; i < 22; i++) {
      var compare = i +',0';
      if (selected == compare) {
        html += '<option value="'+i+',0" selected="selected">ab '+i+' Tage</option>';
      } else {
        html += '<option value="'+i+',0">ab '+i+' Tage</option>';
      }
    }
    document.write(html);
  },

  setCategory: function(blank, selected, style) {
    if (style == 'list') {
      if (selected == '') {
        document.write('<option value="" selected="selected">'+blank+'</option>');
      } else {
        document.write('<option value="">'+blank+'</option>');
      }
      for(var i = 2; i < 6; i++) {
        if (selected == i) {
          document.write('<option value="'+i+'" selected="selected">min. '+i+' Sterne</option>');
        } else {
          document.write('<option value="'+i+'">min. '+i+' Sterne</option>');
        }
      }
    }
    if (style == 'checkboxes') {
      if (selected == '') {
        document.write('<input type="radio" name="ST" value="" checked="checked">&nbsp;'+blank+'<br>');
      } else {
        document.write('<input type="radio" name="ST" value="">&nbsp;'+blank+'<br>');
      }
      var BR = '<br>';
      for(var i = 2; i < 6; i++) {
        if (selected == i) {
          document.write('<input type="radio" name="ST" value="'+i+'" checked="checked">&nbsp;<img src="/site/images/stars/'+i+'_search.gif" alt="" border="0"><br>');
        } else {
          document.write('<input type="radio" name="ST" value="'+i+'">&nbsp;<img src="/site/images/stars/'+i+'_search.gif" alt="" border="0"><br>');
        }
      }
    }
  },

  setBoarding: function(blank, selected, style) {
    // '4|Vollpension'
    var options = ['2|&Uuml;bernachtung','3|Fr&uuml;hst&uuml;ck','1|Halbpension','6|All Inclusive'];
    if (style == 'list') {
      if (selected == '') {
        document.write('<option value="" selected="selected">'+blank+'</option>');
      } else {
        document.write('<option value="">'+blank+'</option>');
      }
      for(var i = 0; i < options.length; i++) {
        var option = options[i].split('|');
        if (selected == option[0]) {
          document.write('<option value="'+option[0]+'" selected="selected">'+option[1]+'</option>');
        } else {
          document.write('<option value="'+option[0]+'">'+option[1]+'</option>');
        }
      }
    }
    if (style == 'checkboxes') {
      if (selected == '') {
        document.write('<input type="radio" name="VA" value="" checked="checked">&nbsp;'+blank+'<br>');
      } else {
        document.write('<input type="radio" name="VA" value="">&nbsp;'+blank+'<br>');
      }
      for(var i = 0; i < options.length; i++) {
        var option = options[i].split('|');
        if (selected == option[0]) {
          document.write('<input type="radio" name="VA" value="'+option[0]+'" checked="checked">&nbsp;'+option[1]+'<br>');
        } else {
          document.write('<input type="radio" name="VA" value="'+option[0]+'">&nbsp;'+option[1]+'<br>');
        }
      }
    }
  },

  setRoomtypes: function(blank, selected) {
    var options = ['2|Einzelzimmer','1|Doppelzimmer','9|Familienzimmer','3|Appartement','4|Studio','5|Bungalow','6|Suite','7|Fly &amp; Drive'];
  
    if (selected == '') {
      document.write('<option value="" selected="selected">'+blank+'</option>');
    } else {
      document.write('<option value="">'+blank+'</option>');
    }
    for(var i = 0; i < options.length; i++) {
      var option = options[i].split('|');
      if (selected == option[0]) {
        document.write('<option value="'+option[0]+'" selected="selected">'+option[1]+'</option>');
      } else {
        document.write('<option value="'+option[0]+'">'+option[1]+'</option>');
      }
    }
  },

  setPriceRange: function(blank, selected) {
    var options = ['0,300|bis 300 &euro; pro Person','0,400|bis 400 &euro; pro Person','0,500|bis 500 &euro; pro Person','0,600|bis 600 &euro; pro Person','0,700|bis 700 &euro; pro Person','0,800|bis 800 &euro; pro Person','0,900|bis 900 &euro; pro Person','0,1000|bis 1.000 &euro; pro Person'];
    if (selected == '') {
      document.write('<option value="" selected="selected">'+blank+'</option>');
    } else {
      document.write('<option value="">'+blank+'</option>');
    }
    for(var i = 0; i < options.length; i++) {
      var option = options[i].split('|');
      if (selected == option[0]) {
        document.write('<option value="'+option[0]+'" selected="selected">'+option[1]+'</option>');
      } else {
        document.write('<option value="'+option[0]+'">'+option[1]+'</option>');
      }
    }
  },

  setAttributes: function(blank, selected) {
    // '3|kinderfreundlich','6|gr. Sportangebot','7|Wellness'
    if (arguments.length == 2) {
      var selected = arguments[1];
    } else {
      var selected = App.getParamValue('HA', '');
    }
    var options = ['1|direkt am Strand','2|strandnah'];
    if (selected == '') {
      document.write('<option value="" selected="selected">'+blank+'</option>');
    } else {
      document.write('<option value="">'+blank+'</option>');
    }
    for(var i = 0; i < options.length; i++) {
      var option = options[i].split('|');
      if (selected == option[0]) {
        document.write('<option value="'+option[0]+'" selected="selected">'+option[1]+'</option>');
      } else {
        document.write('<option value="'+option[0]+'">'+option[1]+'</option>');
      }
    }
  },

  setBrands: function(blank, selected) {
    var vendors = ['FLY|1-2 Fly','5VF|5 vor Flug','ALL|Alltours','ARD|Arado Tours','ATT|ATT','ATK|Attika Reisen','BEN|BENTOUR','BGT|BGtours','BIG|BigXtra','BU|Bucher Reisen','CLT|Classic Tours','CBM|Club Blaues Meer','DEM|Demed','DIS|Discount Travel','ECC|ECCO Reisen','ER|Engel Reisen','ETI|Express Travel Int.','PACK|Ferienknaller.de','FLC|fly consult','FTI|FTI Touristik','GLA|Glauch Reisen','GTI|GTI Travel','HHT|H&H Tur','HERM|Hermes','HUC|Holiday & Co.','ITS|ITS','ITT|Internet Tele Touristik','JAHN|Jahn Reisen','MED|Medina','MWR|Meiers Weltreisen','MISR|MISR Travel','MOT|monorama Touristik','NAZ|Nazar','NEC|Neckermann Reisen','OFT|OFT Reisen','OGER|&Ouml;ger Tours','OLI|Olimar','PHX|Phoenix Reisen','PLR|Pl&auml;rrer','ROY|Royal Holidays','SLR|Schauinsland Reisen','SPAR|Spartip Reisen','ST|SunTrips','TOC|Thomas Cook Reisen','TJAE|Tjaereborg','TUI|TUI'];
    var brands = ['10|Barcel&#243;','14|Blau','21|Calimera','4|Dunas','16|Grupotel','7|H10','5|Hesperia','15|Hipotel','13|Iberostar','9|Ifa','6|LTI','12|Meli&#225;','8|Occidental','1|Princess','17|RIU','18|Red Sea Hotels','19|Riva','11|Seaside','20|Sheraton','2|Sol','3|Sunrise Beach'];
    if (selected == '') {
      document.write('<option value="" selected="selected">'+blank+'</option>');
    } else {
      document.write('<option value="">'+blank+'</option>');
    }
  
    document.write('<optgroup label="Veranstalter">');
    for(var i = 0; i < vendors.length; i++) {
      var option = vendors[i].split('|');
      if (selected == option[0]) {
        document.write('<option value="'+option[0]+'" selected="selected">'+option[1]+'</option>');
      } else {
        document.write('<option value="'+option[0]+'">'+option[1]+'</option>');
      }
    }
    document.write('</optgroup>');
    document.write('<optgroup label="Hotelmarke">');
    for(var i = 0; i < brands.length; i++) {
      var option = brands[i].split('|');
      if (selected == option[0]) {
        document.write('<option value="'+option[0]+'" selected="selected">'+option[1]+'</option>');
      } else {
        document.write('<option value="'+option[0]+'">'+option[1]+'</option>');
      }
    }
    document.write('</optgroup>');
  }
}

var TT_Controls = {
  libsLoaded: false,

  loadExternalLibs: function() {
    var now = new Date();
    var ts = '' + now.getFullYear() + now.getMonth() + now.getDay();
    $.getScripts(
      ['http://www.vidado.com/booking/js/ttafh.js?ts='+ts,'http://images.traveltainment.de/booking/cache/615000/654/cachefiles_654_js.php?getCacheFiles=1&ts='+ts],
      function() {
        var TTVAT_file = 'http://images.traveltainment.de/booking/cache/615000/654/'+cacheFiles_654[0] + '?ts='+ts;
        var TTREGS_file = 'http://images.traveltainment.de/booking/cache/615000/654/'+cacheFiles_654[1] + '?ts='+ts;
        $.getScripts([TTVAT_file, TTREGS_file], function() {
          TT_Controls.libsLoaded = true;
        });
    });
  },

  initCalendar: function(displayId, displayFormat, transportId, transportFormat, minDate, maxDate) {
    var showCurrentAtPos = 0;
    $(displayId).datepick($.extend({},
      $.datepick.regional['de'], {
        minDate: minDate,
        maxDate: maxDate,
        firstDay: 1,
        changeFirstDay: false,
        duration: 0,
        dateFormat: displayFormat,
        showDefault: true,
        gotoCurrent: true,
        numberOfMonths: 3,
        stepMonths: 3,
        prevText: '&#x25c4;',
        nextText: '&#x25ba;',
        showCurrentAtPos: showCurrentAtPos,
        showOn: 'both',
        buttonImage: '/site/images/cal.gif',
        buttonImageOnly: true,
        buttonText: 'Kalender',
        changeMonth: false,
        changeYear: false,
        altField: transportId,
        altFormat: transportFormat
      }
    ));
  },

  setDestinations: function(elem, blank, selected, src) {
    var html = '';
    if (selected == '-1') {
      html += '<option value="-1" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="-1">'+blank+'</option>';
    }
    if (src == 'remote') {
      for(var i = 1; i < TTREGS_654.length; i++) {
        var option = TTREGS_654[i].split('|');
        if (option[3] > 9999) {
          if (i > 1) { html += '</optgroup>'; }
          html += '<optgroup label="'+option[0]+'">';
        } else {
          if (selected == option[3]) {
            html += '<option value="'+option[3]+'" selected="selected">'+option[0]+'</option>';
          } else {
            html += '<option value="'+option[3]+'">'+option[0]+'</option>';
          }
        }
      }
      html += '</optgroup>';
    } else {
      var options = [
        'Balearen|10000|10000|#',
        'Formentera|93|10000|627','Ibiza|123|10000|32','Mallorca|205|10000|35','Menorca|214|10000|630',
        'Kanaren|10001|10001|#',
        'Gran Canaria|106|10001|345','Fuerteventura|96|10001|832','Teneriffa|351|10001|56','Lanzarote|185|10001|676','La Palma|182|10001|675','La Gomera|181|10001|50','El Hierro|81|10001|59',
        'T\xFCrkei|10004|10004|#',
        'Antalya & Belek|17|10004|434','Side & Alanya|324|10004|643','Kemer & Beldibi|168|10004|644','Bodrum|112|10004|648','Marmaris & Icmeler|207|10004|647','Dalaman,Fethiye,Oeludeniz|70|10004|646','Mersin, Adana, Antakya|689|10004|542','Kusadasi, Didyma|178|10004|651','Ayvalik, Cesme, Izmir|53|10004|652','Istanbul & Umgebung|150|10004|373','T\xFCrkei Inland|126|10004|526',
        'Aegypten|10010|10010|#',
        'Hurghada & Safaga|121|10010|350','Marsa Alam & Quseir|287|10010|330','Sharm el Sheikh, Nuweiba, Taba|327|10010|351','Luxor & Assuan|198|10010|349','Kairo, Gizeh, Memphis|158|10010|348',
        'Spanisches Festland|10003|10003|#',
        'Costa Brava|60|10003|2013','Costa del Sol|64|10003|62','Costa Blanca|59|10003|64','Costa Dorada|66|10003|2054','Costa Azahar|58|10003|2014','Costa de la Luz|62|10003|61','Golf von Almeria|104|10003|63','Barcelona & Umgebung|32|10003|2068','Madrid & Umgebung|202|10003|794','Zentral Spanien|388|10003|793','Nordspanien/Atlantikk\xFCste|98|10003|505',
        'Portugal|10002|10002|#',
        'Algarve|12|10002|637','Costa Verde|68|10002|494','Costa do Estoril|65|10002|695','Costa de Prata|63|10002|457','Costa da Caparica|61|10002|636','Porto|281|10002|467','Festland|89|10002|338','Alentejo|11|10002|339','Lissabon & Umgebung|194|10002|674','Azoren|25|10002|664','Madeira|201|10002|639',
        'Griechische Inseln|10005|10005|#',
        'Rhodos|295|10005|655','Kos|174|10005|7','Zakynthos|387|10005|14','Lefkas & Meganissi|187|10005|395','Santorin|310|10005|12','Lesbos|189|10005|8','Mykonos|228|10005|9','Patmos|270|10005|401','Amorgos|15|10005|549','Andros|16|10005|391','Chios|56|10005|527','Thassos|357|10005|16','Ikaria|124|10005|399','Alonissos|14|10005|387','Samos|308|10005|11','Eub\xF6a (Evia)|672|10005|383','Naxos|230|10005|393','Hydra, Spetses|122|10005|535','Symi|347|10005|404','Leros|188|10005|402','Skiathos & Skopelos|331|10005|13','Tilos|361|10005|554','Kalymnos|161|10005|403','Syros|329|10005|390','Tinos|362|10005|389','Folegandros|92|10005|491','Karpathos|164|10005|15','Paros, Serifos, Sifnos|269|10005|392','Kreta|175|10005|616','Aegina|5|10005|558','Poros|280|10005|546','Kefalonia|167|10005|396','Korfu|172|10005|6',
        'Griechenland Festland|10006|10006|#',
        'Chalkidiki|54|10006|534','Thessalien|747|10006|4103','Epiros|87|10006|553','Athen & Umgebung|23|10006|18','Pilion|113|10006|734','Makedonien|748|10006|4104','Olympische Riviera|673|10006|733','Peloponnes|271|10006|382','Thessaloniki|358|10006|625','Thrakien|674|10006|277',
        'Italien, Malta|10007|10007|#',
        'Gardasee|100|10007|2048','Umbrien|369|10007|817','Toscana|365|10007|537','Aostatal & Piemont & Lombardei|276|10007|845','Apulien|21|10007|464','Sardinien|311|10007|78','Emilia Romagna|85|10007|81','Elba|82|10007|80','Sizilien|330|10007|77','Kalabrien|159|10007|536','Oberitalienische Seen|256|10007|2012','S\xFCdtirol & Norditalien|344|10007|844','Venetien|374|10007|82','Ischia|147|10007|75','Ligurien|192|10007|818','Marken|685|10007|296','Friaul, Venetien|686|10007|297','Neapel & Umgebung|231|10007|76','Malta|206|10007|595','Capri|50|10007|79','Abruzzen|0|10007|891','Rom & Umgebung|299|10007|560',
        'Zypern|10019|10019|#',
        'Zypern (Norden)|736|10019|99','Zypern (S\xFCden)|390|10019|620',
        'Tunesien, Marokko|10008|10008|#',
        'Insel Djerba|133|10008|133','Monastir|221|10008|614','Agadir|6|10008|125','Tunesien Inland|129|10008|136','Oase Zarzis|254|10008|135','Oase Tozeur|253|10008|134','Tunesien Norden|246|10008|131','Marrakesch|208|10008|126','Marokko Norden|404|10008|482','Hammamet|115|10008|132',
        'Dom. Republik|10013|10013|#',
        'Punta Cana (Osten)|401|10013|367','Puerto Plata, Samana (Norden)|400|10013|366','Santo Domingo (S\xFCden)|75|10013|368',
        'Karibik|10014|10014|#',
        'Antigua & Barbuda|18|10014|250','Turks, Caicos Inseln|368|10014|574','Grenada|108|10014|377','Guadeloupe|109|10014|572','Barbados|31|10014|245','Curacao, Aruba, Bonaire|240|10014|582','Tobago|363|10014|378','St. Marteen, St.Eustatius, Saba|754|10014|4110','Jamaika|153|10014|247','St. Martin|741|10014|4098','Isla Margarita|148|10014|440','Puerto Rico|284|10014|251','St.Lucia|337|10014|249','Martinique|209|10014|571','Cayman Inseln|52|10014|581','Bermuda|38|10014|437','Bahamas|27|10014|566',
        'Mexiko|10016|10016|#',
        'Yucatan / Cancun|386|10016|282','Acapulco / Oaxaca|2|10016|701','Mexiko|215|10016|704','Mexiko Stadt & Umgebung|216|10016|541',
        'Kuba|10012|10012|#',
        'Varadero & Havanna|373|10012|369','Holguin|118|10012|371',
        'V.A.E.|10020|10020|#',
        'Dubai|76|10020|353','Ras Al-Khaimah|288|10020|723','Abu Dhabi|1|10020|354','Katar|166|10020|720','Umm Al Quwain|449|10020|725','Ajman|7|10020|724','Al Ain|8|10020|884','Fujairah|97|10020|722','Oman|258|10020|532','Bahrain|28|10020|721','Sharjah|323|10020|352',
        'Naher Osten|10026|10026|#',
        'Totes Meer|366|10026|727','Eilat|80|10026|225','Jordanien|157|10026|515','Tel Aviv & Umgebung|350|10026|510','Israel|682|10026|511','Jerusalem & Umgebung|155|10026|509','Libanon|191|10026|979',
        'Thailand|10027|10027|#',
        'Insel Phuket|142|10027|322','Pattaya, Jomtien|781|10027|4131','Khao Lak & Umgebung|169|10027|846','Krabi & Umgebung|783|10027|4133','Golf von Thailand|356|10027|323','Chiang Mai, Chiang Rai, Sukhothai|778|10027|4128','Hua Hin, Cha Am, River Kwai|780|10027|4130','Bangkok & Umgebung|30|10027|321','Insel Ko Samui|136|10027|325','Surat Thani, Trang|782|10027|4132','Koh Pee Pee, Koh Lanta|355|10027|327',
        'Indischer Ozean|10036|10036|#',
        'Seychellen|322|10036|719','Malediven|204|10036|342','Mauritius|210|10036|143','La R\xE9union|291|10036|163',
        'USA|10015|10015|#',
        'Rundreise USA|640|10015|2560','Alaska|9|10015|781','Nevada|186|10015|692','New Jersey|235|10015|782','New York|237|10015|697','Kalifornien|160|10015|688','Florida Westk\xFCste|384|10015|522','Hawaii - Insel Oahu|141|10015|430','Florida Ostk\xFCste|263|10015|521','Orlando (Florida)|260|10015|524',
        'Kanada|10024|10024|#',
        'Nova Scotia|252|10024|790','Ontario|259|10024|766','Quebec|285|10024|765','British Columbia|46|10024|768','Alberta|10|10024|767',
        'Mittelamerika|10037|10037|#',
        'Honduras|486|10037|443','Guatemala|110|10037|441','Costa Rica|67|10037|563','Panama|267|10037|446',
        'S\xFCdamerika|10023|10023|#',
        'Rio de Janeiro & Umgebung|298|10023|375','Brasilien|660|10023|286','Kolumbien|665|10023|376','Peru|470|10023|787','Ecuador|469|10023|783','Argentinien|443|10023|450','Recife|289|10023|374',
        'Afrika|10011|10011|#',
        'Sal (Kap Verde)|305|10011|585','Kenia Nordk\xFCste|248|10011|358','Kenia S\xFCdk\xFCste|342|10011|359','Mozambique|520|10011|859','Nordwesten|495|10011|876','Tansania - Sansibar|349|10011|454','Johannesburg & Umgebung|156|10011|883','Malawi|737|10011|1019','Santiago (Kap Verde)|309|10011|586','Madagaskar|584|10011|161','Kapstadt & Umgebung|163|10011|873','Sao Vicente & Santa Luzia (Kap Verde)|444|10011|587','Gambia|99|10011|137','Namibia|229|10011|453','Boavista (Kap Verde)|40|10011|280','Aethiopien|756|10011|4112',
        'Asien|10017|10017|#',
        'Sunda-Inseln|345|10017|528','Nepal|232|10017|461','Myanmar|227|10017|645','Singapur|328|10017|473','Philippinen|274|10017|314','Indonesien: Bali|29|10017|311','Sri Lanka|334|10017|361','China|55|10017|439','Taipeh & Umgebung|480|10017|489','Insel Bintan|131|10017|871','Indonesien|687|10017|592','Indien|679|10017|197','Indien: Goa|102|10017|360','Malaysia|203|10017|425','Cebu & Borocay|488|10017|683','Vietnam|376|10017|448','Hongkong & Umgebung|119|10017|474','Luzon & Manila|487|10017|681','Usbekistan|496|10017|862',
        'Australien|10018|10018|#',
        'Australien Westen|383|10018|800',
        /**
        'Deutschland|10029|10029|#',
        'Hessen|117|10029|114','Spessart & Odenwald|451|10029|2070','Eifel & Westerwald|79|10029|2052','Allg\xE4u|13|10029|2026','D\xFCsseldorf & Umgebung|78|10029|2019','M\xFCnchen|656|10029|264','Baden-W\xFCrttemberg|26|10029|104','Hamburg|114|10029|113','K\xF6ln & Umgebung|171|10029|2020','Mecklenburg Ostseek\xFCste|211|10029|2035','Brandenburg|43|10029|107','Niederbayern|239|10029|2063','Niedersachsen|242|10029|116','Berchtesgadener Land|396|10029|2069','Bayerische Alpen|33|10029|2058','Nordrhein-Westfalen|249|10029|117','Oberbayern|255|10029|2008','Th\xFCringen|359|10029|128','Berlin|37|10029|106','Bayerischer Wald|34|10029|2025','Insel R\xFCgen|143|10029|2032','Schwarzwald|317|10029|2002','Sauerland|313|10029|2038','Sachsen-Anhalt|304|10029|123','Sachsen|303|10029|121','Franken|94|10029|2060','Ruhrgebiet|300|10029|2059','Rheinland-Pfalz|294|10029|118',
        'Frankreich|10021|10021|#',
        'Monaco|220|10021|880','Disneyland Paris|73|10021|2041','Paris & Umgebung|268|10021|495','C\xF4te d\'Azur|69|10021|2055','Elsass / Lothringen|84|10021|2043','Korsika|173|10021|23','Franz\xF6sische Alpen|95|10021|2042','Provence-Alpes-C\xF4te d\'Azur|283|10021|2056','Midi Pyrenees|774|10021|4127','Normandie & Nordk\xFCste|742|10021|1023',
        'Nordeuropa|10022|10022|#',
        'Norwegen|251|10022|813','Finnland|91|10022|490','Island|149|10022|449','Schweden|456|10022|851','D\xE4nemark|72|10022|902',
        'Osteuropa|10030|10030|#',
        'Rum\xE4nien|301|10030|110','Polen|278|10030|852','Bukarest & Umgebung|502|10030|816','Insel Krk|137|10030|507','Sankt Petersburg & Umgebung|499|10030|821','S\xFCddalmatien|339|10030|635','Estland|348|10030|838','Tschechien|367|10030|853','Ungarn|370|10030|849','Norddalmatien|244|10030|2011','Insel Hvar|134|10030|500','Insel Brac|132|10030|501','Istrien|151|10030|483','Bulgarien (Sonnenstrand)|333|10030|102','Bulgarien (Goldstrand)|103|10030|103','Mitteldalmatien|218|10030|877','Mittelkroatien|675|10030|301','Ukraine & Krim|176|10030|751','Moskau & Umgebung|225|10030|820','Bulgarien (Landesinnere)|183|10030|539','Kvarner Bucht|180|10030|480','Serbien, Montenegro|223|10030|455','Adria|4|10030|628','Kroatische Inseln|177|10030|504','Slowenien Inland|128|10030|497',
        'Mitteleuropa|10028|10028|#',
        'Ober\xF6sterreich|407|10028|953','Steiermark|409|10028|955','K\xE4rnten|405|10028|951','Westtirol & Oetztal|266|10028|2009','Mittel- & Nordengland|498|10028|179','Burgenland|403|10028|950','Salzburg|402|10028|954','Region Seefeld|320|10028|2001','Schweiz|319|10028|928','Schottland|315|10028|901','Wien & Umgebung|395|10028|958','Belgien|36|10028|855','Z\xFCrich|394|10028|936','Waadt|393|10028|933','Basel|392|10028|915','London & S\xFCdengland|391|10028|178','St.Gallen|335|10028|926','Zillertal|389|10028|2004','Salzburger Land|306|10028|2007','Stubaital|338|10028|2005','Niederlande|241|10028|854','Genf|462|10028|918','Irland|146|10028|503','Tessin|352|10028|930','Nordirland|508|10028|905','Uri|371|10028|932','Innsbruck|408|10028|956',
        **/
        'Gl\xFCckshotels|10032|10032|#',
        'Gl\xFCckshotel Spanische K\xFCste - Festland|560|10032|60','Gl\xFCckshotel Costa del Sol|561|10032|2108','Gl\xFCckshotel Costa de la Luz|563|10032|2156','Gl\xFCckshotel Fuerteventura|553|10032|2095','Gl\xFCckshotel La Palma|555|10032|2101','Gl\xFCckshotel Kreta|571|10032|2113','Gl\xFCckshotel T\xFCrkische Riviera|548|10032|2153','Gl\xFCckshotel Marokko|577|10032|2088','Gl\xFCckshotel Aegypten|581|10032|4002','Gl\xFCckshotel Gardasee|290|10032|506','Gl\xFCckshotel Kroatien|135|10032|2141','Gl\xFCckshotel V.A.E.|591|10032|2142','Gl\xFCckshotel Madeira|593|10032|2094','Gl\xFCckshotel Mallorca|411|10032|2107','Gl\xFCckshotel Malediven|667|10032|4040','Gl\xFCckshotel Kuba|419|10032|2087','Gl\xFCckshotel Gran Canaria|554|10032|2098','Gl\xFCckshotel Griechenland|613|10032|2112','Gl\xFCckshotel Mexiko|630|10032|2239','Gl\xFCckshotel Italien|621|10032|2140','Gl\xFCckshotel Ischia|625|10032|2157',
        'Rundreisen|10033|10033|#',
        'Rundreise Kalabrien|620|10033|2133','Rundreise Mexiko|629|10033|2242','Rundreise Italien|618|10033|2513','Rundreise Bulgarien|631|10033|2206','Rundreise Sardinien|617|10033|2278','Rundreise Polen|633|10033|2558','Rundreise Peru - S\xFCdamerika|636|10033|4017','Rundreise Malta|616|10033|2235','Rundreise Sizilien|615|10033|2222','Rundreise Griechenland|612|10033|2214','Rundreise Costa Rica|641|10033|2208','Rundreise Marokko|642|10033|2237','Rundreise Namibia|644|10033|2541','Rundreise Djerba|653|10033|4021','Rundreise Australien & Neuseeland|608|10033|2545','Rundreise Burma|604|10033|2553','Rundreise Baltikum|658|10033|4025','Rundreise Asien|602|10033|2527','Rundreise China|601|10033|2128','Rundreise Skandinavien|663|10033|4037','Rundreise Russland|600|10033|2150','Rundreise Kanada|599|10033|2548','Rundreise Vietnam|597|10033|2144','Rundreise Japan|596|10033|2146','Rundreise Ecuador|668|10033|4042','Rundreise Azoren|595|10033|2246','Rundreise Madeira|592|10033|2244','Rundreise Indien|590|10033|2551','Rundreise Thailand|588|10033|2257','Rundreise Jordanien|587|10033|2136','Rundreise Kenia|585|10033|2229','Rundreise S\xFCdafrika|583|10033|2115','Rundreise Spanien|677|10033|4055','Rundreise Kreta|567|10033|2215','Rundreise Rum\xE4nien|566|10033|4015','Rundreise Andalusien|564|10033|2253','Rundreise T\xFCrkei|545|10033|946','Rundreise Tunesien|542|10033|959','Rundreise Aegypten|540|10033|2204','Rundreise Brasilien|523|10033|2546','Rundreise Venezuela|522|10033|2543','Rundreise Island|326|10033|2167','Rundreise Portugal|412|10033|2529','Rundreise Kuba|413|10033|2234','Rundreise Indonesien|418|10033|2110','Rundreise La Reunion|421|10033|2559','Rundreise Jamaika|424|10033|2226','Rundreise Zypern|429|10033|2276','Rundreise Arabische Halbinsel|430|10033|2273','Rundreise S\xFCdamerika|433|10033|2556','Rundreise Naher Osten|740|10033|2080','Rundreise Afrika|739|10033|2075','Rundreise Sri Lanka|453|10033|948','Rundreise Oman|455|10033|2164',
        'Kreuzfahrten|10034|10034|#',
        'Kreuzfahrten Mallorca|764|10034|4118','Kreuzfahrt Region Karibik|543|10034|2149','Kreuzfahrt T\xFCrkei|544|10034|2280','Kreuzfahrt & Hotel T\xFCrkei|550|10034|2281','Nilkreuzfahrten|539|10034|2202','Kreuzfahrt Region Mittelmeer|669|10034|4005','Flu\xDF- & Kreuzfahrten Russland|776|10034|4140','Kreuzfahrten Nordland|770|10034|4123','weitere Kreuzfahrten|524|10034|4006',
        'Fly & Drive|10035|10035|#',
        'Fly & Drive Kuba|730|10035|4094','Fly & Drive Spanien|733|10035|4093','Fly & Drive Golf von Almeria|703|10035|4066','Fly & Drive Florida|700|10035|4063','Fly & Drive Costa del Sol|699|10035|4062','Fly & Drive Costa de la Luz|698|10035|4061','Fly & Drive Costa Blanca|697|10035|4060','Fly & Drive Algarve|694|10035|4057','Fly & Drive Teneriffa|726|10035|4089','Fly & Drive Italien|721|10035|4084','Fly & Drive Menorca|714|10035|4077','Fly & Drive Mallorca|712|10035|4075','Fly & Drive Madeira|711|10035|4074','Fly & Drive Lissabon & Umgebung|710|10035|4073','Fly & Drive Lanzarote|709|10035|4072','Fly & Drive La Palma|708|10035|4071','Fly & Drive Kalabrien|705|10035|4068','Fly & Drive Fuerteventura|701|10035|4064','Fly & Drive Gran Canaria|704|10035|4067',
        'Fly & Stay|10038|10038|#',
        'Fly & Stay Asien|785|10038|4135','Fly & Stay Europa|786|10038|4136','Fly & Stay Amerika & Kanada|787|10038|4137','Fly & Stay Afrika|784|10038|4134'
      ];
      html += this.getOptionsHTML(options, '|', '#', selected, 3, 0);
    }
    $(elem).html(html);
  },

  setAirports: function(elem, blank, selected, src) {
    var html = '';
    if (selected == '-1') {
      html += '<option value="-1" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="-1">'+blank+'</option>';
    }
    if (src == 'remote') {
      html += this.getOptionsHTML(TTAFH, ';', '#', selected, 1, 0);
    } else {
      var options = [
        'Abflugregionen;#',
        'Nord;5000','S\xFCd;5001','West;5002','Ost;5003',
        'Deutschland;#',
        'Altenburg (Nobitz);0','Berlin (Sch\xF6nefeld);4','Berlin (Tegel);5','Bremen;8','Dortmund;10','Dresden;11','D\xFCsseldorf;12','Erfurt;14',
        'Frankfurt am Main;15','Frankfurt (Hahn);16','Friedrichshafen;17','Hamburg;20','Hannover;21','Karlsruhe;24','K\xF6ln/Bonn;28',
        'Leipzig/Halle;29','L\xFCbeck;31','Memmingen;90','M\xFCnchen;36','M\xFCnster;37','Niederrhein (Weeze);49',
        'N\xFCrnberg;38','Paderborn;39','Rostock;40','Saarbr\xFCcken;41','Schwerin;43','Stuttgart;45','Zweibr\xFCcken;48',
        'Niederlande;#',
        'Amsterdam;1','Eindhoven;73','Enschede;13','Groningen;81','Maastricht;34',
        '\xD6sterreich;#',
        'Graz;19','Innsbruck;23','Klagenfurt;27','Linz;30','Salzburg;42','Wien;46',
        'Schweiz;#',
        'Basel (Mulhouse);3','Genf;18','Z\xFCrich;47',
        'Belgien, Luxemburg;#',
        'Br\xFCssel;9','L\xFCttich;32','Luxemburg;33',
        'Weitere Flugh\xE4fen;#',
        'Billund (DK);94','Strasbourg (F);44','Warschau (PL);77'
      ];
      html += this.getOptionsHTML(options, ';', '#', selected, 1, 0);
    }
    $(elem).html(html);
  },

  setAdults: function(elem, selected, mode) {
    var html = '';
    if (mode == 'long') {
      var options = ['25|1 Erwachsener','25;25|2 Erwachsene','25;25;25|3 Erw. / 1 Zimmer','25;25;25;25|4 Erw. / 1 Zimmer'];
    } else {
      var options = ['25|1 Erw.','25;25|2 Erw.','25;25;25|3 Erw.','25;25;25;25|4 Erw.'];
    }
    html += this.getOptionsHTML(options, '|', '#', selected, 0, 1);
    $(elem).html(html);
  },

  setChild: function(elem, blank, selected, mode) {
    var html = '';
    if (selected == '-1') {
      html += '<option value="-1" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="-1">'+blank+'</option>';
    }

    if (mode == 'long') {
      if (selected == 1) {
        html += '<option value="1" selected="selected">Baby</option>';
      } else {
        html += '<option value="1">Baby</option>';
      }
      for(var i = 2; i < 15; i++) {
        if (selected == i) {
          html += '<option value="'+i+'" selected="selected">'+i+' Jahre</option>';
        } else {
          html += '<option value="'+i+'">'+i+' Jahre</option>';
        }
      }
    } else if (mode == 'short') {
      if (selected == 1) {
        html += '<option value="1" selected="selected">&lt;2 J.</option>';
      } else {
        html += '<option value="1">&lt;2 J.</option>';
      }
      for(var i = 2; i < 17; i++) {
        if (selected == i) {
          html += '<option value="'+i+'" selected="selected">'+i+' J.</option>';
        } else {
          html += '<option value="'+i+'">'+i+' J.</option>';
        }
      }
    }
    $(elem).html(html);
  },

  setCategory: function(elem, blank, selected) {
    var html = '';
    var options = ['0|ab 2 Sterne','1|ab 3 Sterne','2|ab 4 Sterne','3|ab 5 Sterne'];
    if (selected == '-1') {
      html += '<option value="-1" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="-1">'+blank+'</option>';
    }
    html += this.getOptionsHTML(options, '|', '#', selected, 0, 1);
    $(elem).html(html);
  },

  setBoarding: function(elem, blank, selected) {
    var html = '';
    var options = ['0|nur &Uuml;bernachtung','1|Fr&uuml;hst&uuml;ck','2|Halbpension','3|Vollpension','4|All Inclusive','6|Halbpension Plus','5|Vollpension Plus','7|All Inclusive Plus'];
    if (selected == '-1') {
      html += '<option value="-1" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="-1">'+blank+'</option>';
    }
    html += this.getOptionsHTML(options, '|', '#', selected, 0, 1);
    $(elem).html(html);
  },

  setRoomtypes: function(elem, blank, selected) {
    var html = '';
    var options = ['5|Einzelzimmer','6|Doppelzimmer','2|Familienzimmer','0|Bungalow','7|Appartement'];
    if (selected == '-1') {
      html += '<option value="-1" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="-1">'+blank+'</option>';
    }
    html += this.getOptionsHTML(options, '|', '#', selected, 0, 1);
    $(elem).html(html);
  },

  setTravelDuration: function(elem, blank, selected) {
    var html = '';
    var options = ['#|genau','6_7|1 Woche','6_14|2 Wochen','6_21|3 Wochen','#|flexibel','9|1 - 4 Tage','10|5 - 8 Tage','7|9 - 12 Tage','3|13 - 15 Tage','12|16 - 22 Tage','13|&gt; 22 Tage'];
    if (selected == '-1') {
      html += '<option value="-1" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="-1">'+blank+'</option>';
    }
    html += this.getOptionsHTML(options, '|', '#', selected, 0, 1);
    $(elem).html(html);
  },

  setPriceRange: function(elem, blank, selected) {
    var html = '';
    if (selected == '-1') {
      html += '<option value="-1" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="-1">'+blank+'</option>';
    }

    for(var i = 200; i <= 1000; i+=50) {
      if (selected == i) {
        html += '<option value="'+i+'" selected="selected">bis '+i+' &euro; pro Person</option>';
      } else {
        html += '<option value="'+i+'">bis '+i+' &euro; pro Person</option>';
      }
    }
    $(elem).html(html);
  },

  setActivityFacilities: function(elem, blank, selected) {
    var html = '';
    var options = ['0|Tennis','1|Golf','2|Squash','3|Radsport','4|Wassersport','5|Tauchen','6|Reiten','7|Wandern','8|Surfen'];
    if (selected == '-1') {
      html += '<option value="-1" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="-1">'+blank+'</option>';
    }
    html += this.getOptionsHTML(options, '|', '#', selected, 0, 1);
    $(elem).html(html);
  },

  setTourOperator: function(elem, blank, selected) {
    var html = '';
    if (selected == '-1') {
      html += '<option value="-1" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="-1">'+blank+'</option>';
    }
    html += this.getOptionsHTML(arrMarke_654, ';', '#', selected, 1, 0);
    $(elem).html(html);
  },

  setHotelReviews: function(elem, blank, selected) {
    var html = '';
    var options = ['30|min. 3.0 (befriedigend)','40|min. 4.0 (gut)','50|min. 5.0 (sehr gut)','60|6.0 (ausgezeichnet)'];
    if (selected == '0') {
      html += '<option value="0" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="0">'+blank+'</option>';
    }
    html += this.getOptionsHTML(options, '|', '#', selected, 0, 1);
    $(elem).html(html);
  },

  setHotelReviewsAmount: function(elem, blank, selected) {
    var html = '';
    var options = ['5|min. 5','10|min. 10','25|min. 25','50|min. 50','100|mehr als 100'];
    if (selected == '0') {
      html += '<option value="0" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="0">'+blank+'</option>';
    }
    html += this.getOptionsHTML(options, '|', '#', selected, 0, 1);
    $(elem).html(html);
  },

  setRecommendationRates: function(elem, blank, selected) {
    var html = '';
    var options = ['700|min. 70%', '800|min. 80%','900|min. 90%','100|100%'];
    if (selected == '0') {
      html += '<option value="0" selected="selected">'+blank+'</option>';
    } else {
      html += '<option value="0">'+blank+'</option>';
    }
    html += this.getOptionsHTML(options, '|', '#', selected, 0, 1);
    $(elem).html(html);
  },

  getOptionsHTML: function(options, itemSeparator, groupSeparator, selected, indexData, indexLabel) {
    var html = '';
    var hasGroups = false;
    for(var i = 0; i < options.length; i++) {
      var option = options[i].split(itemSeparator);
      if (option[indexData] == groupSeparator) {
        hasGroups = true;
        if (i > 0) { html += '</optgroup>'; }
        html += '<optgroup label="'+ option[indexLabel] + '">';
      } else {
        if (selected == option[indexData]) {
          html += '<option value="'+option[indexData]+'" selected="selected">'+option[indexLabel]+'</option>';
        } else {
          html += '<option value="'+option[indexData]+'">'+option[indexLabel]+'</option>';
        }
      }
    }
    if (hasGroups) { html += '</optgroup>'; }
    return html;
  }
}

/**
 * Simple jQuery function for loading several JS files at once
**/
jQuery.getScripts = function(scripts, onComplete) {
  var i = 1;
  var ii = scripts.length;
  var onScriptLoaded = function(data, response) {
    if (i++ == ii) onComplete();
  };
  for(var s in scripts) {
    $.getScript(scripts[s], onScriptLoaded);
  };
}

/**
 * Opens a popup window (compatibility function)
**/
function __FK_popup(windowTop, windowLeft, windowWidth, windowHeight, urlString, windowTitle, windowOptions) {
  var win   = window.open(urlString, windowTitle, windowOptions+",width="+windowWidth+",height="+windowHeight+",top="+windowTop+",left="+windowLeft);
  if (win.window) {
    win.window.focus();
    return win;
  } else {
    win.focus();
    return win;
  }
}

