/**
 * Datei zum Handlen der Formular-Lables 
 *
 * LICENSE: ...
 *
 * @copyright  2010 Traveltainment
 * @author     Guido Buchholz
 * @version    1.1
 * @link       http://www.vidado.com/booking/its/js/serach/ttLabels.js
 * @since      Datei vorhanden seit 19.02.2010
 * @license    ...
 */
 
/**
 * Globale Variablen
 * @ TTAFHDLC {Array} Abflughaefen (Quelle ttafh.js), muss evtl. angepasst werden 
 * @ tmpErw {String} Zwischenspeicher fuer Erwachsenen-Berechnung
 * @ tmpChild {Array} Zwischenspeicher fuer Kinder-Berechnung
 * @ flagShowDiv {String} Kenner, ob ein Div geoeffnet ist
 * @ flagLoad {String} Kenner, ob die Regionen geladen sind
 */
var TTAFHDLC = new Array (
    'Nord;NORD',
    'Süd;SUED',
    'West;WEST',
    'Ost;OST',
    'Altenburg-Nobitz;AOC',
    'Amsterdam (NL);AMS',
    'Basel-Mulhouse (CH);BSL',
    'Berlin Brandenburg;BER',
    'Berlin-Schönefeld;SXF',
    'Berlin-Tegel;TXL',
    'Billund (DK);BLL',
    'Bremen;BRE',
    'Brüssel (B);BRU',
    'Dortmund;DTM',
    'Dresden;DRS',
    'Düsseldorf;DUS',
    'Eindhoven (NL);EIN',
    'Enschede (NL);ENS',
    'Erfurt;ERF',
    'Frankfurt;FRA',
    'Frankfurt-Hahn;HNH',
    'Friedrichshafen;FDH',
    'Genf (CH);GVA',
    'Graz (A);GRZ',
    'Groningen (NL);GRQ',
    'Hamburg;HAM',
    'Hannover;HAJ',
    'Innsbruck (A);INN',
    'Karlsruhe;FKB',
    'Klagenfurt (A);KLU',
    'Köln-Bonn;CGN',
    'Leipzig/Halle;LEJ',
    'Linz (A);LNZ',
    'Lübeck;LBC',
    'Lüttich (B);LGG',
    'Luxemburg;LUX',
    'Maastricht - Aachen (NL);MST',
    'Memmingen;FMM',
    'München;MUC',
    'Münster-Osnabrück;FMO',
    'Niederrhein (Weeze);NRN',
    'Nürnberg;NUE',
    'Paderborn;PAD',
    'Rostock;ROS',
    'Saarbrücken;SCN',
    'Salzburg (A);SZG',
    'Schwerin;SZW',
    'Strasbourg (F);SXB',
    'Stuttgart;STR',
    'Warschau (PL);WAW',
    'Wien (A);VIE',
    'Zürich (CH);ZRH',
    'Zweibrücken;ZQW'
);

var tmpErw;
var tmpChild          = new Array();
var flagShowDiv       = false;
var flagLoad          = false;
var ttFlagLoad        = false;
var ttFlagWroteRegion = false;


var ttLabels = {
    cats : new Array(
        '-1|beliebig',
        '0|mind. 2 Sterne',
        '1|mind. 3 Sterne',
        '2|mind. 4 Sterne',
        '3|mind. 5 Sterne'
    ),
    boards : new Array(
        '-1|beliebig',
        '0|Übernachtung',
        '1|Frühstück',
        '2|Halbpension',
        '3|Vollpension',
        '4|Alles inklusive'
    ),
    duration : new Array(
        '0|exakt wie angegeben',
        '-1|beliebig',
        '9|1 - 4 Tage',
        '10|5 - 8 Tage',
        '6_7|1 Woche',
        '7|9 - 12 Tage',
        '3|13 - 15 Tage',
        '6_14|2 Wochen',
        '12|16 - 22 Tage',
        '6_21|3 Wochen',
        '13|&gt; 22 Tage'
    ),
    zimmer : new Array(
        '-1|beliebig',
        '5|Einzelzimmer',
        '6|Doppelzimmer',
        '2|Familienzimmer',
        '0|Bungalow',
        '7|Studio/Apartment'
    ),
    hotelmarke : new Array(
        '-1|beliebig',
        '20|CLUB CALIMERA',
        '21|LTI Hotels',
        '17|Iberostar'
    ),
    preis : new Array(
        '-1|egal',
        '8_350|bis 350 Euro',
        '8_500|bis 500 Euro',
        '8_750|bis 750 Euro',
        '8_1000|bis 1000 Euro'
    ),    
    hbfges : new Array(
        '40|mind. 4.0 von 6.0',
        '50|mind. 5.0 von 6.0',
        '60|mind. 6.0 von 6.0'
    ),
    hbfanz : new Array(
        '2|mind. 2',
        '5|mind. 5',
        '10|mind. 10'
    ),
    hbfempf : new Array(
        '800|mind. 80 %',
        '900|mind. 90 %',
        '1000|mind. 100 %'
    ),
    hdetails : new Array(
        '19|Frühbucher-Vorteil',
        '5|Mit Meerblick',
        '0|Familienfreundlich',
        '3|Cluburlaub',
        '1|Direkt am Strand',
        '2|Wellness / Fitness'
    ),

    getLabel: function (src, value) {
        var firstVal = null;
        for (var i = 0; i < src.length; i++) {
            var tmp = src[i].split('|');
            if (tmp[0] == value) {
                if (src.toString().search(/exakt wie angegeben/) != '-1' && 
                    tmp[0].search(/6_/) != '-1' && flextime == '2') {
                    return 'exakt wie angegeben';
                } else {
                    return tmp[1];
                }
            } else if (i == 0) {
                firstVal = tmp[1];
            }
        }
        return firstVal;
    }
};


/**
 * Funktion zur Ermittlung der DLCs
 * @ str {String} Name des Abflughafens
 * @ return {String} Ermittelter DLC
 */
function getDLC(str) {
    var tmpArr = new Array()
    
    for (i = 0; i < TTAFHDLC.length; i ++) {
        tmpArr = TTAFHDLC[i].split(';');
        
        if (str == tmpArr[0]) {
            return tmpArr[1];
            break;        
        }  
    }
}

/**
 * Funktion zum Checken des Formular-Elements 'mafh'
 */
function fillAFH() {
    var c,cc;
    
    var tmp_afhArr = new Array();
    tmp_afhArr     = abflughafen.split(',');
      
    for (c = 0; c < document.bengine.mafh.length; c ++) {
        for (cc = 0; cc < tmp_afhArr.length; cc ++) {
            var tmp = document.bengine.mafh[c].value.split(';')[0] || '';
            
            if (tmp_afhArr[cc] == tmp) {
                document.bengine.mafh[c].checked = true;
                
                break;
            }
        }
    }
}

/**
 * Funktion zum Unchecken des Formular-Elements 'mafh'
 */
function killAFH() {
    for (c = 1; c < document.bengine.mafh.length; c ++) {
        document.bengine.mafh[c].checked = false;
    }
    
    //document.bengine.abflughafen.value = strAbflughaefen;
}

function checkKillBeliebig(id) {
    if (id.checked) {
        document.bengine.mafh[0].checked = false;
    }
}

/**
 * Funktion zum Fuellen des Formular-Elements 'abflughafen'
 * und zum Ausblenden des AFH-Divs
 */
function sendAFH(status) {
    var strAbflughaefen = '';
    
    var cc = 0;
    
    for (var c = 1; c < document.bengine.mafh.length; c ++) {
        if (document.bengine.mafh[c].checked == true) {
            var tmp          = document.bengine.mafh[c].value.split(';')[0] || '';
            strAbflughaefen += tmp + ','; 
            
            cc ++;
        }
    }
    
    if (strAbflughaefen == '') {
        strAbflughaefen = '-1';
        
        if (document.bengine.abflughafen.value != strAbflughaefen && detail == 'termine') {
            document.bengine.refresh.value = 1;
        }
        
        document.bengine.abflughafen.value = strAbflughaefen;
    } else {
        var len         = strAbflughaefen.length - 1;
        strAbflughaefen = strAbflughaefen.substr(0, len);
        
        if (cc > 1) {
            if (document.bengine.abflughafen.value != strAbflughaefen && detail == 'termine') {
                document.bengine.refresh.value = 1;
            }
            
            document.bengine.abflughafen.value = strAbflughaefen;
        } else if (cc == 1) {
            for (i = 0; i < TTAFHDLC.length; i ++) {
                tmpArr = TTAFHDLC[i].split(';');
                
                if (tmpArr[1] == strAbflughaefen) {
                    for (ii = 0; ii < TTAFH.length; ii ++) {
                        tmpArr2 = TTAFH[ii].split(';');
                        
                        if (tmpArr2[0] == tmpArr[0]) {
                            xx = ii + 2;
                            
                            if (document.bengine.abflughafen.value != strAbflughaefen && detail == 'termine') {
                                document.bengine.refresh.value = 1;
                            }
                            
                            document.bengine.abflughafen.value = strAbflughaefen;
                            
                            var flagAFH = tmpArr[0].replace(/ - /g, '-');
                            
                            break;
                        }
                    }
                }
            }
        }
    }
    
    if (strAbflughaefen != '-1' && strAbflughaefen.length > 12) {
        strAbflughaefen = strAbflughaefen.substring(0, 12) + '...';
    }
    
    if (flagAFH) {
        flagAFH = flagAFH.replace('Luxemburg', 'Luxemburg (L)');
    }
    
    document.getElementById('ttQuicksearchAfh').innerHTML = strAbflughaefen == '-1' ? 'beliebig' : (strAbflughaefen.search(/,/) == '-1' && flagAFH ? flagAFH : strAbflughaefen);
    
    if (typeof(status) == 'undefined') {
        document.getElementById('ttDiv1').style.display = 'none';
    }
}

/**
 * Generiert ein Dropdown
 * @param int    divId      Die ID des umschliessenden Divs für den Schliessen-Button
 * @param int    divClassNr Die Zahl der Klasse der Rahmenelemente
 * @param string divName    Name der Klasse der inneren Elemente des Dropdowns
 * @param string title      Der Titel des Dropdowns
 * @param string content    Der HTML-Content des Dropdowns
 */
function generateDropdown(divId, divClassNr, divName, title, content, fixedHeight) {
    var ttClass   = 'ttDiv' + divClassNr;
    var boxHeight = typeof fixedHeight != undefined && fixedHeight != '' ? ' style="height: ' + fixedHeight + ';"' : '';
    var frmHeight = typeof fixedHeight != undefined && fixedHeight != '' ? 'height: ' + fixedHeight + ';' : '';
    
    if (divName == '') {
        divName = 'Dropdown';
    }

    var strAusgabe = '';
    strAusgabe += '<div class="ttDiv1LT ttIePngFix"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>';
    strAusgabe += '<div class="' + ttClass + 'CT ttIePngFix"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>';
    strAusgabe += '<div class="ttDiv1RT ttIePngFix"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>';
    strAusgabe += clearBothDiv;
    strAusgabe += '<div class="' + ttClass + 'LM ttIePngFix"' + boxHeight + '><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>';
    strAusgabe += '<div class="' + ttClass + 'CM ttIePngFix"' + boxHeight + '>';
    strAusgabe +=     '<div class="tt' + divName + 'Container">';
    strAusgabe +=         '<div class="tt' + divName + 'Iframe">';
    strAusgabe +=             '<iframe src="about:blank" border="0" frameborder="0" style="background-color: #fff;' + frmHeight + '"></iframe>';
    strAusgabe +=         '</div>';
    strAusgabe +=         '<div class="tt' + divName + 'Body">';
    strAusgabe +=             '<div class="tt' + divName + 'Headline">';
    strAusgabe +=                 '<div class="tt' + divName + 'HeadlineTitle">' + title + '</div>';
    strAusgabe +=                 '<div class="tt' + divName + 'HeadlineClose" onclick="flagShowDiv=false;document.getElementById(\'ttDiv' + divId + '\').style.display=\'none\';" title="schließen">x</div>';
    strAusgabe +=                 clearBothDiv;
    strAusgabe +=             '</div>';
    
    strAusgabe += content;
    
    if (title == 'Hotelbewertung' || title == 'Familienurlaub' || title == 'Sonstiges' || title == 'Hoteldetails') {
        strAusgabe +=         '<div class="ttUebernehmenArrow" onclick="flagShowDiv = false; document.getElementById(\'ttDiv' + divId + '\').style.display=\'none\';" onmouseover="this.className=\'ttUebernehmenArrowActive\'" onmouseout="this.className=\'ttUebernehmenArrow\'">';
        strAusgabe +=             '<img src="/images/spacer.gif" alt="" border="0" width="1" height="1">';
        strAusgabe +=         '</div>';
        strAusgabe +=         '<div class="ttUebernehmenTxt" onclick="flagShowDiv = false; document.getElementById(\'ttDiv' + divId + '\').style.display=\'none\';">';
        strAusgabe +=             '&Uuml;bernehmen';
        strAusgabe +=         '</div>';
        strAusgabe +=             clearBothDiv;
    }
    
    strAusgabe +=         '</div>';
    strAusgabe +=     '</div>';
    strAusgabe += '</div>';
    strAusgabe += '<div class="' + ttClass + 'RM ttIePngFix"' + boxHeight + '><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>';
    strAusgabe += clearBothDiv;
    strAusgabe += '<div class="ttDiv1LB ttIePngFix"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>';
    strAusgabe += '<div class="' + ttClass + 'CB ttIePngFix"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>';
    strAusgabe += '<div class="ttDiv1RB ttIePngFix"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>';
    strAusgabe += clearBothDiv;
    
    return strAusgabe;
}

function generateRadioSelect(title, inputName, inputId, inputValue, onChange, checked) {
    var strAusgabe = '';
    strAusgabe += '<div class="ttDropdownCB"><input type="radio" name="' + inputName + '" id="' + inputId + '" value="' + inputValue + '" onchange="' + onChange + '" ' + (checked ? 'checked="checked" ' : '') + '/></div>';
    strAusgabe += '<div class="ttDropdownTxt"><label for="' + inputId + '">' + title + '</label></div>';
    strAusgabe += clearBothDiv;
    return strAusgabe;
}

function generateCheckboxSelect(title, inputName, inputId, inputValue, onChange, checked) {
    var strAusgabe = '';
    strAusgabe += '<div class="ttDropdownCB"><input type="checkbox" name="' + inputName + '" id="' + inputId + '" value="' + inputValue + '" onchange="' + onChange + '" ' + (checked ? 'checked="checked" ' : '') + '/></div>';
    strAusgabe += '<div class="ttDropdownTxt"><label for="' + inputId + '">' + title + '</label></div>';
    strAusgabe += clearBothDiv;
    return strAusgabe;
}

/**
 * Funktion zum Schreiben des AFH-Divs
 */
function printAFH() {  
    var i;
    
    var d  = 0;
    var eu = 0;
    
    var strAusgabe = '';
    
    var tmpArr         = new Array();
    var afhNameArrD    = new Array();
    var afhKennerArrD  = new Array();
    var afhDLCArrD     = new Array();
    var afhNameArrEU   = new Array();
    var afhKennerArrEU = new Array();
    var afhDLCArrEU    = new Array();
    
    if (TTAFH[0] != '') {
        var mouseAfhEvents = '';
        
        if (ttIsIe6 == 1) {
            mouseAfhEvents = ' onmouseover="this.className = \'ttAfhTextlabelActive\';" onmouseout="this.className = \'ttAfhTextlabel\';"';
        }
        
        for (i = 0; i < TTAFH.length; i ++) {
            tmpArr = TTAFH[i].split(';');
            
            if (tmpArr[0].search(/\(NL\)/) != -1 || tmpArr[0].search(/\(CH\)/) != -1 || 
                tmpArr[0].search(/\(A\)/) != -1 || tmpArr[0].search(/\(B\)/) != -1 || 
                tmpArr[0].search(/\(DK\)/) != -1 || tmpArr[0].search(/\(F\)/) != -1 || 
                tmpArr[0].search(/\(PL\)/) != -1 || tmpArr[0].search(/Luxemburg/) != -1) {
                    
                    afhNameArrEU[eu]   = tmpArr[0].replace(/ - /g, '-');
                    afhKennerArrEU[eu] = tmpArr[1];
                    afhDLCArrEU[eu]    = getDLC(tmpArr[0]) + ';' + tmpArr[1];
                    
                    eu ++;
            } else {
                afhNameArrD[d]   = tmpArr[0].replace(/ - /g, '-');
                afhKennerArrD[d] = tmpArr[1];
                afhDLCArrD[d]    = getDLC(tmpArr[0]) + ';' + tmpArr[1];
                
                d ++;
            }
        }
        
        var countD  = afhNameArrD.length;
        var countEU = afhNameArrEU.length;
        
        var columns = 4;
        
        var maxD    = Math.ceil(countD / columns); 
        var maxEU   = Math.ceil(countEU / columns);
        
        strAusgabe += '        <div class="ttAfhContent">';
        strAusgabe += '            <div class="ttAfhCB"><input type="checkbox" class="ttAfhCheckbox" name="mafh" id="mafh_0" value="-1" onclick="killAFH(); sendAFH(1);"></div>';
        strAusgabe += '            <div class="ttAfhTxt"><label for="mafh_0" class="ttAfhTextlabel"' + mouseAfhEvents +'>beliebiger Abflughafen</label></div>';
        strAusgabe += '            <div class="clearBoth"><img src="/images/spacer.gif" alt="0" width="0" height="0"></div>';
        strAusgabe += '            <div class="ttAfhSubHead">Deutsche Abflugh&auml;fen</div>';
        
        var z,s;
        
        var akt  = 0;
        var akt2 = 1;
        
        for (z = 0; z < maxD; z ++) {
            for (s = 0; s < columns; s ++) {
                akt = z + (s * maxD);
                
                if (afhDLCArrD[akt] != '' && afhDLCArrD[akt] != undefined) {
                    afhNameArrD[akt] = afhNameArrD[akt].replace('Osnabrück', 'Osnab.');
                    afhNameArrD[akt] = afhNameArrD[akt].replace('Niederrhein', 'Niederr.');
                    strAusgabe += ' <div class="ttAfhCB"><input type="checkbox" class="ttAfhCheckbox" name="mafh" id="mafh_' + akt2 + '" value="' + afhDLCArrD[akt] + '" onclick="checkKillBeliebig(this); sendAFH(1);"></div>';
                    strAusgabe += ' <div class="ttAfhTxt"><label for="mafh_' + akt2 + '" class="ttAfhTextlabel"' + mouseAfhEvents +'>' + afhNameArrD[akt] + '</label></div>';
                    
                    akt2 += 1;
                }
            }
            
            strAusgabe += '         <div class="clearBoth"><img src="/images/spacer.gif" alt="0" width="0" height="0"></div>';
        }
        
        strAusgabe += '             <div class="ttAfhSpacer"><img src="/images/spacer.gif" alt="0" width="0" height="0"></div>';
        strAusgabe += '             <div class="ttAfhSubHead">Europ&auml;ische Abflugh&auml;fen</div>';
        
        for (z = 0; z < maxEU; z ++) {
            for (s = 0; s < columns; s ++) {
                akt = z + (s * maxEU);
                
                if (afhDLCArrEU[akt] != '' && afhDLCArrEU[akt] != undefined) {
                    afhNameArrEU[akt] = afhNameArrEU[akt].replace('Maastricht', 'Maastr.');
                    afhNameArrEU[akt] = afhNameArrEU[akt].replace('Luxemburg', 'Luxemburg (L)');
                    strAusgabe += ' <div class="ttAfhCB"><input type="checkbox" class="ttAfhCheckbox" name="mafh" id="mafh_' + akt2 + '" value="' + afhDLCArrEU[akt] + '" onclick="checkKillBeliebig(this); sendAFH(1);"></div>';
                    strAusgabe += ' <div class="ttAfhTxt"><label for="mafh_' + akt2 + '" class="ttAfhTextlabel"' + mouseAfhEvents +'>' + afhNameArrEU[akt] + '</label></div>';
                    akt2 += 1;
                }
            }
            
            strAusgabe += '         <div class="clearBoth"><img src="/images/spacer.gif" alt="0" width="0" height="0"></div>';
        }
        
        strAusgabe += '             <div class="ttAfhSpacer"><img src="/images/spacer.gif" alt="0" width="0" height="0"></div>';
        strAusgabe += '             <div class="ttAfhSenden">';
        strAusgabe += '                 <div class="ttAfhSendenText" onclick="flagShowDiv = false; sendAFH();">Auswahl &uuml;bernehmen</div>';
        strAusgabe += '                 <div class="ttAfhSendenArrow" onclick="flagShowDiv = false; sendAFH();" onmouseover="this.className=\'ttAfhSendenArrowActive\'" onmouseout="this.className=\'ttAfhSendenArrow\'"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>';
        strAusgabe += '                 <div class="clearBoth"><img src="/images/spacer.gif" alt="0" width="0" height="0"></div>';
        strAusgabe += '             </div>';
        strAusgabe += '         </div>';
        strAusgabe += '     </div>';
        strAusgabe +=       clearBothDiv;

        $('#ttDiv1').html(generateDropdown(1, 1, 'Afh', 'Abflughafen', strAusgabe));
        fillAFH();
    }
    return false;
}

/**
 * Funktion zum Ermitteln des Zielgebiets
 * @ zk {String} zielgebiets_kenner
 * @ fd {String} flugdauer
 */
function getDestination(zk, fd) {
    for (var i = 0 ; i < IBE.Regionen.length - 1; i ++) {
        var sr = IBE.Regionen[i].split('|');
        
        if (sr[1] == parseInt(fd)) {
            setDestination(sr[0], sr[1]);
            
            break;
        }
    }
}

/**
 * Funktion zum Setzen des Ziels
 * und zum Schreiben des Wertes in das Ziel-Label
 * @ destTxt {String} Name des Ziels
 * @ destValue {String} Wert des Ziels
 */
function setDestination(destTxt, destValue) {
    if (document.bengine.ziel.value && document.bengine.ziel.value != destValue && detail == 'termine') {
        document.bengine.refresh.value = 1;
    }
    
    if (document.bengine.ziel) {
        document.bengine.ziel.value = destValue ? destValue : '-1';
    }
    
    if( destValue != '-1') {
        var dest = unescape(destTxt);
        
        if (dest.length > 17) {
            dest = dest.substring(0, 15) + '...';
        }
    }
    
    $('#ttQuicksearchDestination').html(destValue != '-1' ? dest : 'Alle Reiseziele');
    
}

/**
 * Funktion zum Schreiben des Ziels-Divs
 * @ fd {String} flugdauer
 * @ txt {String} Name des Zielgebietes
 */
var ttFlagSiteLoad = false;
function printDestination(fd, txt) {
    if (zielgebiets_kenner != '' && zielgebiets_kenner != '-1' && (fd == '' || fd == '-1')) {
        for (var i = 0; i < IBE.Regionen.length; ++ i) {
            var tmpZk = IBE.Regionen[i].split('|')[1] || 0;
            
            if (tmpZk == zielgebiets_kenner) {
                fd = IBE.Regionen[i].split('|')[2] || 0;
            }
        }
    } else if (ttTopRegion != '' && (fd == '' || fd == '-1')) {
        for (var i = 0; i < IBE.Regionen.length; ++ i) {
            var tr = IBE.Regionen[i].split('|')[3] || 0;
            
            if (tr == ttTopRegion) {
                fd = IBE.Regionen[i].split('|')[2] || 0;
            }
        }
    }
    
    var countZiel  = 0;
    var strAusgabe = '';
    
    var mouseZielEvents = '';
    
    if (ttIsIe6 == 1) {
        mouseZielEvents = ' onmouseover="this.className = \'ttZielLabelActive\';" onmouseout="this.className = \'ttZielLabel\';"';
    }
    
    var countReg = 0;
    
    for (var i = 0; i < IBE.Regionen.length; i ++) {
        var sr = IBE.Regionen[i].split('|');
        
        if (sr[1] >= 10000) {
            countReg += 1;
        }
    }
    
    if (countReg > 10) {
        var boxHeight  = (14 * 21 + 81) + 'px';
        var boxHeight2 = (14 * 21 + 25) + 'px';
    } else {
        var boxHeight  = (countReg * 21 + 81) + 'px';
        var boxHeight2 = (countReg * 21 + 25) + 'px';
    }
        
    strAusgabe += '        <div class="ttRegionBodyContent" style="height: ' + boxHeight2 + ';">';
    strAusgabe += '            <div class="ttZielLabelBorderTop"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>';
    strAusgabe += '            <div class="ttZielLabel" onclick="printDestination(\'-1\', \'-1\'); setDestination(\'Alle Reiseziele\', -1); setRegion(\'-1\', \'-1\'); printRegion(\'-1\'); closeDivLabel(\'ttDiv2\');"' + (!fd || fd == '' || fd == '-1' ? '' : mouseZielEvents) + '>Alle Reiseziele</div>';
    
    for (var i = 0 ; i < IBE.Regionen.length; i ++) {
        var sr = IBE.Regionen[i].split('|');
        if (sr[1] >= 10000) {
            var classBG = (fd && fd == sr[1] || txt && escape(sr[0]) == txt) ? 'ttZielLabelActive' : 'ttZielLabel';
            
            strAusgabe += '<div class="' + classBG + '" onclick="printDestination(\'' + sr[2] + '\', \'' + escape(sr[0]) + '\'); setDestination(\'' + sr[0] + '\', ' + sr[1] + '); setRegion(\'' + sr[0] + '\', \'-1\'); printRegion(\'' + sr[1] + '\'); closeDivLabel(\'ttDiv2\');"' + (fd && fd == sr[1] || txt && escape(sr[0]) == txt ? '' : mouseZielEvents) + '>' + sr[0] + '</div>';
            
            if (fd && fd == sr[1] || txt && escape(sr[0]) == txt) {
                ttScrollTarget = countZiel;
            }
            
            if ((fd && fd == sr[1] || txt && escape(sr[0]) == txt) && sr[0].search('Mallorca') == '-1') {
                setDestination(sr[0], sr[1]);
                
                var strSr = sr[0];
                if (sr[0].length > 15) {
                     strSr = sr[0].substring(0, 13) + '...';
                }
                
                $('#ttQuicksearchDestination').html(strSr);
            }
            
            countZiel += 1;
        }
    }
    
    strAusgabe += '        </div>';
    
    $('#ttDiv2').html(generateDropdown(2, 2, 'Ziel', 'Reiseziel', strAusgabe, boxHeight));
    
    if (!ttFlagSiteLoad) {
        printRegion(fd, zielgebiets_kenner, ttTopRegion);
        
        ttTopRegion    = '';
        ttFlagSiteLoad = true;
    }
}

/**
 * Funktion zum Setzen der Region
 * und zum Schreiben des Wertes in das Regions-Label
 * @ regTxt {String} Name der Region
 * @ regValue {String} Wert der Region
 */
function setRegion(regTxt, regValue) {
    var ttTmpRegion = document.bengine.region.value;
    
    if (ttTmpRegion != regValue && detail == 'termine' && ttFlagSiteLoad) {
        document.bengine.refresh.value = 1;
    }
    
    
    if (document.bengine.region) {
        document.bengine.region.value = regValue ? regValue : '-1';
    }
    
    if (ttTmpRegion != document.bengine.region.value) {
        if (typeof(document.bengine.changeReg) != 'undefined' && detail == 'termine' && ttFlagSiteLoad) {
            document.bengine.changeReg.value = 1;
        }
    }
    
    if (regValue != '-1') {
        var reg = unescape(regTxt);
        
        if (reg.length > 15) {
            reg = reg.substring(0, 13) + '...';
        }
    }
    
    $('#ttQuicksearchRegion').html(regValue && regValue != '-1' ? reg : 'Alle Reiseregionen');
}

/**
 * Funktion zum Schreiben des Regions-Divs
 * @ fd {String} flugdauer
 * @ zk {String} zielgebiets_kenner
 */
function printRegion(fd, zk, tr) {
    var strAusgabe      = '';
    var mouseZielEvents = '';
    var countReg        = 0;
    var countZiel       = 0;
    
    if (typeof(zk) == 'undefined' || zk == '-1' || zk == '') {
        if (typeof(tr) != 'undefined' && tr != '-1' && tr != '') {
            for (var i = 0; i < IBE.Regionen.length; ++ i) {
                var tmpTr = IBE.Regionen[i].split('|')[3] || 0;
                
                if (tr == tmpTr) {
                    zk          = IBE.Regionen[i].split('|')[1] || 0;
                    var strZiel = IBE.Regionen[i].split('|')[0] || 0;
                    
                    if (detail != 'zielgebiet') {
                        if (strZiel.length > 17) {
                            strZiel = strZiel.substring(0, 15) + '...';
                        }
                        
                        $('#ttQuicksearchRegion').html(strZiel && strZiel != '-1' ? strZiel : 'Alle Reiseregionen');
                    }
                }
            }
        } else if (typeof(fd) != 'undefined' && fd != '-1' && fd != '' && !ttFlagSiteLoad) {
            for (var i = 0; i < IBE.Regionen.length; ++ i) {
                var tmpFd = IBE.Regionen[i].split('|')[2] || 0;
                
                if (fd == tmpFd) {
                    zk          = IBE.Regionen[i].split('|')[1] || 0;
                    var strZiel = IBE.Regionen[i].split('|')[0] || 0;
                    
                    if (detail != 'zielgebiet') {
                        if (strZiel.length > 15) {
                            strZiel = strZiel.substring(0, 13) + '...';
                        }
                        
                        $('#ttQuicksearchRegion').html(strZiel && strZiel != '-1' ? strZiel : 'Alle Reiseregionen');
                    }
                }
            }
        }
    }
    
    if (ttIsIe6 == 1) {
        mouseZielEvents = ' onmouseover="this.className = \'ttZielLabelActive\';" onmouseout="this.className = \'ttZielLabel\';"';
    }
    
    if (fd != '' && fd != '-1') {
        for (var i = 0 ; i < IBE.Regionen.length - 1; i ++) {
            var sr = IBE.Regionen[i].split('|');
            
            if (sr[2] == parseInt(fd) && sr[1] < 10000) {
                countReg += 1;
            }
        }
    } else {
        countReg += 14;
    }
    
    var boxHeight  = (countReg * 21 + 81) + 'px';
    var boxHeight2 = (countReg * 21 + 25) + 'px';
    
    strAusgabe +=        '<div class="ttRegionBodyContent" style="height: ' + boxHeight2 + ';">';
    strAusgabe +=             '<div class="ttZielLabelBorderTop"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>';
    
    var classBG = zk == '-1' || typeof(zk) == 'undefined' ? ' ttZielLabelActive' : 'ttZielLabel';
    
    strAusgabe +=             '<div class="' + classBG + '" onclick="setRegion(\'-1\', \'-1\'); closeDivLabel(\'ttDiv3\');"' + mouseZielEvents + '>Alle Reiseregionen</div>';
        
    if (fd != '' && fd != '-1') {
        var tmpSr0, tmpSr1, tmpSr2; 
        
        for (var i = 0 ; i < IBE.Regionen.length - 1; i ++) {
            var sr = IBE.Regionen[i].split('|');
            
            if (sr[2] == parseInt(fd) && sr[1] < 10000) {
                var classBG = (parseInt(zk) && sr[1] == parseInt(zk)) && detail != 'zielgebiet' ? ' ttZielLabelActive' : 'ttZielLabel';
            
                strAusgabe += '<div class="' + classBG + '" onclick="setRegion(\'' + escape(sr[0]) + '\', \'' + sr[1] + '\'); printRegion(\'' + sr[2] + '\', \'' + sr[1] + '\'); getDestination(\'' + sr[1] + '\', \'' + sr[2] + '\'); printDestination(\'' + sr[2] + '\', \'' + escape(sr[0]) + '\'); closeDivLabel(\'ttDiv3\');"' + (parseInt(zk) && sr[1] == parseInt(zk) ? '' : mouseZielEvents) + '>' + sr[0] + '</div>';
                
                if (sr[1] && sr[1] == parseInt(zk)) {
                    tmpSr0 =  sr[0];
                    tmpSr1 =  sr[1];
                    tmpSr2 =  sr[2];
                }
                
                if ((parseInt(zk) && sr[1] == parseInt(zk)) && detail != 'zielgebiet') {
                    if (typeof(document.bengine.zielgebiets_kenner) != 'undefined') {
                        document.bengine.zielgebiets_kenner.value = sr[1];
                        setRegion(escape(sr[0]), sr[1]);
                    }
                    
                    var strSr = sr[0];
                    if (sr[0].length > 15) {
                        var strSr = sr[0].substring(0, 13) + '...';
                    }
                    
                    $('#ttQuicksearchRegion').html(strSr);
                }
                
                countZiel += 1;
            }
        }
        
        if ((fd != '' && fd != '-1' || zk != '' && zk != '-1') && !flagLoad) {
            flagLoad = true;
            
            getDestination(tmpSr1, fd);
        }
    } else {
        for (var i = 0 ; i < IBE.Regionen.length - 1; i ++) {
            var sr = IBE.Regionen[i].split('|');
            
            if (sr[1] < 10000) {
                var classBG = (parseInt(zk) && sr[1] == parseInt(zk)) && detail != 'zielgebiet' ? ' ttZielLabelActive' : 'ttZielLabel';
                
                strAusgabe += '<div class="' + classBG + '" onclick="setRegion(\'' + escape(sr[0]) + '\', \'' + sr[1] + '\'); printRegion(\'' + sr[2] + '\', \'' + sr[1] + '\'); getDestination(\'' + sr[1] + '\', \'' + sr[2] + '\'); printDestination(\'' + sr[2] + '\', \'' + escape(sr[0]) + '\'); closeDivLabel(\'ttDiv3\');"' + (parseInt(zk) && sr[1] == parseInt(zk) ? '' : mouseZielEvents) + '>' + sr[0] + '</div>';
                
                if ((parseInt(zk) && sr[1] == parseInt(zk)) && detail != 'zielgebiet') {
                    if (typeof(document.bengine.zielgebiets_kenner) != 'undefined') {
                        document.bengine.zielgebiets_kenner.value = sr[1];
                        setRegion(escape(sr[0]), sr[1]);
                    }
                    
                    var strSr = sr[0];
                    if (sr[0].length > 15) {
                        var strSr = sr[0].substring(0, 13) + '...';
                    }
                    
                    $('#ttQuicksearchRegion').html(strSr);
                }
                
                countZiel += 1;
            }
        }
    }
    
    strAusgabe +=         '</div>';
    
    $('#ttDiv3').html(generateDropdown(3, 3, 'Region', 'Reiseregion', strAusgabe, boxHeight));
    
    window.setTimeout('showSubmit();', 20);
}

 /* Funktion zum Schreiben des Veranstalters ins Label
 * @ value {String} Wert des Veranstalters
 */
function setOperator(value) {
    if (marke != value && detail == 'termine') {
        document.bengine.refresh.value = 1;
    }
    
    marke = value;
    
    if (value == '' || value == '-1') {
        $('#ttQuicksearchMarke').html('beliebig');
    }
    
    var operator  = window["arrMarke_"+port];

    if (operator == "undefined") {
         window.setTimeout(function() { setOperator(value);}, 50);
    }
    for (var i = 0; i < operator.length; ++i) {
        tourOperator = operator[i].split(';');
        if (value == tourOperator[1]) {    
            $('#ttQuicksearchMarke').html(substrOperator(tourOperator[0]));
        }
    }
    printOperator();
}

function substrOperator(value) {
    if(value.length > 21) {
        return value.substr(0, 18) + '...';
    }
    return value;
}

function printOperator() {
    
    var strAusgabe = '';
   
    var operator  = window["arrMarke_"+port];
    
    strAusgabe += '<div class="ttTOpContentScroll">';

    strAusgabe += generateRadioSelect('beliebig', 'marke', 'marke_' + -1, '-1', 'setOperator(\'-1\');closeDivLabel(\'ttDiv14\');', marke == '-1'); 
     
    for (var i = 0; i < operator.length; ++i) {
        
        tourOperator = operator[i].split(';');        
        strAusgabe += generateRadioSelect(tourOperator[0], 'marke', 'marke_' + i, tourOperator[1], 'setOperator(\'' + tourOperator[1] + '\');closeDivLabel(\'ttDiv14\');', marke == tourOperator[1]);
        
       
    }
    
    strAusgabe += '</div>';
    
    $('#ttDiv14').html(generateDropdown(14, 5, 'TOp', 'Veranstalter', strAusgabe, '260px')); 
}

/**
 * Funktion zum Schreiben der Ziel-Labels
 */
function ttWriteZielLabels() {
    //--- Nachtraegliches Schreiben der Labels
    if (!ttFlagWroteRegion && (detail == 'hotel' || detail == 'termine')) {
        if (detail == 'hotel') {
            if (typeof(HLand) != 'undefined' && typeof(HRegion) != 'undefined') {
                var strAusgabeLand   = HLand;
                var strAusgabeRegion = HRegion;
            } else {
                window.setTimeout('ttWriteZielLabels()', 100);
                return;
            }
        } else {
            if (pStrecke.terminHotelData != null && typeof(pStrecke.terminHotelData.country) != 'undefined' && typeof(pStrecke.terminHotelData.region) != 'undefined') {
                var strAusgabeLand   = pStrecke.terminHotelData.country;
                var strAusgabeRegion = pStrecke.terminHotelData.region;
            } else {
                window.setTimeout('ttWriteZielLabels()', 100);
                return;
            }
            
        }        
        
        if (strAusgabeLand.length > 15) {
            var strAusgabeLand = strAusgabeLand.substring(0, 13) + '...';
        }
        
        $('#ttQuicksearchDestination').html(strAusgabeLand);
        
        if (strAusgabeRegion.length > 15) {
            var strAusgabeRegion = strAusgabeRegion.substring(0, 13) + '...';
        }
        
        $('#ttQuicksearchRegion').html(strAusgabeRegion);
        
        ttFlagWroteRegion = true;
    }
}

/**
 * Funktion zum Schreiben der Erwachsenen ins Label
 * @ anz {String} anzahl Erwachsene
 */
function setAdults(anz) {
    var erwValue = '25';
    
    for (var i = 1; i < anz; i++) {
        erwValue += ';25';
    }
    
    if (document.bengine.erwachsene && document.bengine.erwachsene.value != erwValue && detail == 'termine') {
        document.bengine.refresh.value = 1;
    }
     
    if (document.bengine.erwachsene) {
        document.bengine.erwachsene.value = erwValue;
    }
    
    // Problem der Search (max 8 Personen) handeln
    handle8PersProblem(anz);

    document.getElementById('ttQuicksearchAdults').innerHTML = anz + ' Pers.';
    
    tmpErw = anz;
    
    printAdults();
}

/**
 * Da die Search nur maximal 8 Personen suchen kann, muss bei 6 gewaehlten Erwachsenen
 * die Zahl der Kinder von 3 auf 2 beschränkt werden
 */
function handle8PersProblem(anz) {
    var id          =   '#ttQuicksearchChild3';
    var cls_act     =   'ttQuicksearchSel66';
    var cls_act_in  =   cls_act + 'Inactive';
    
    if(anz == 6) {
        // Altersauswahl des dritten Kindes zuruecksetzen
        if(document.bengine.alter3.value != '-1' && document.bengine.alter3.value != '') {
            setchildren('3', -1);
        }
        
        // drittes Kind deaktivieren:
        
        // aktive CSS-Klasse entfernen
        $(id).removeClass(cls_act);
        // inaktive CSS-Klasse hinzufuegen
        $(id).addClass(cls_act_in);
        // Click-Event zum Anzeigen der Labels entfernen
        $(id).unbind('click');
    } else {
        // drittes Kind aktivieren:
        
        if(!$(id).hasClass(cls_act)) {
            // aktive CSS-Klasse hinzufuegen
            $(id).addClass(cls_act);
        }
        if($(id).hasClass(cls_act_in)) {
            // inaktive CSS-Klasse entfernen
            $(id).removeClass(cls_act_in);
        }
        $(id).click(function() {
            // Click-Event zum Anzeigen der Labels hinzufuegen
            showDivLabel('ttDiv8');
        });
    }
}

/**
 * Funktion zum Schreiben der Erwachsenen ins Div
 */
function printAdults() {
    var strAusgabe = '';

    strAusgabe += '<div class="ttErwSubline">';
    strAusgabe += '    Bei mehr als 6 Teilnehmern erstellt Ihnen das <a href="http://www.its.de/service-hilfe/kontakt/reiseberatung.php" target="_blank">Online-Service-Center</a> gerne ein individuelles Angebot.<br>Kinder unter 2 Jahren werden dabei nicht als Reiseteilnehmer gezählt und reisen kostenlos.';
    strAusgabe += '</div>';

    var val      = '';
    var per      = personen.split(';');
    var countPer = 0;
    
    for (var i = 0; i < per.length; ++i) {
        if (per[i] != '' && per[i] > 16) {
            countPer += 1;
        }
    }
    
    for (var i = 1; i <= 6; ++i) {
        if (i % 3 == 1) {
            strAusgabe += '<div class="ttDoubleCol' + (i == 1 ? 'Left' : 'Right') + '">';
        }
    
        var classBG = i == countPer && !tmpErw || tmpErw && parseInt(tmpErw) == i || countPer == 0 && i == 2 ? ' ttPersonLabelActive' : 'ttPersonLabel';
        strAusgabe += '<div class="' + classBG + '" onclick="setAdults(' + i + ');closeDivLabel(\'ttDiv5\');">' + i + '</div>';
        
        if (i % 3 == 0) {
            strAusgabe += '</div>';
        }
    }
    
    $('#ttDiv5').html(generateDropdown(5, 5, 'Erw', 'Erwachsene', strAusgabe)); 
}

/**
 * Funktion zum Schreiben der Kinder in die Labels
 * @ child {String} Kind
 * @ age {String} Alter des Kindes
 */
function setchildren(child, age) {
    var strAge;
    
    // uebermitteltes Alter speichern
    if((child == 1 || child == 2 || child == 3) && document.bengine['alter' + child]) {
        if(document.bengine['alter' + child].value != age && detail == 'termine') {
            document.bengine.refresh.value = child;
        }
        document.bengine['alter' + child].value = (age != '' ? age : '-1');
    }
    
    // pruefen ob alle Kinderaltersangaben gesetzt sind
    for(var i = 1; i < 4; ++i) {
        if(document.bengine['alter' + i].value == '') {
            document.bengine['alter' + i].value = '-1';
        }
        tmpChild[i] = document.bengine['alter' + i].value;
        // Ausgabe Label
        if (tmpChild[i] == -1) {
            strAge = 'Alter';
        } else if (tmpChild[i] == 1) {
            strAge = '< 2 J.';
        } else {
            strAge = tmpChild[i]+' J.';
        }
        document.getElementById('ttQuicksearchChild' + i).innerHTML = strAge;
    }

    var c = children.split(';');
    for (var i = 0; i <= c.length; i ++) {
        if (i + 1 == child) {
            c[i] = age;
        }
    }
    children = '';
    for (var i = 0; i < c.length; i ++) {
        children += c[i] + ';';
    }
    children = children.substring(0, children.length - 1);
    
    // Aufbau Labels
    printChildren();
}

/**
 * Funktion zum Schreiben der Kinder in die Divs
 */
function printChildren() {
    var val        = '';
    var child      = children.split(";");
    var countChild = 0;
    var ageChild   = new Array();
    var flagChild  = new Array();
    
    for (var i = 0; i < child.length; i ++) {
        if (child[i] != 25) {
            ageChild[countChild] = child[i];
            countChild += 1;
        }
    }
    
    for(var i = 0; i < 3; i ++) {
        flagChild[i] = ageChild[i] ? ageChild[i] : '-1';
    }
    
    for (var k = 1; k <= 3; k ++) {
        var numK = k + 5;
        var strAusgabe = '';

        for (var i = 1; i <= 16; i ++) {
            if (i == 1 || i == 9) strAusgabe += '<div class="ttDoubleCol' + (i == 1 ? 'Left' : 'Right ttDoubleColRightChild') + '">';
	        if (i == 1) {
	            // Kein Kind
	            var classBG = !tmpChild[k] && (!ageChild[k - 1] || -1 == ageChild[k - 1]) || tmpChild[k] == -1 ? ' ttPersonLabelActive' : 'ttPersonLabel';
                strAusgabe += '<div class="' + classBG + '" onclick="setchildren(\'' + k + '\', -1);closeDivLabel(\'ttDiv' + numK + '\');">---</div>';
	        }
	    
            var classBG = !tmpChild[k] && ageChild[k - 1] && i == ageChild[k - 1] || tmpChild[k] == i ? ' ttPersonLabelActive' : 'ttPersonLabel';
	        strAusgabe += '<div class="' + classBG + '" onclick="setchildren(\'' + k + '\', ' + i + ');closeDivLabel(\'ttDiv' + numK + '\');">' + (i == 1 ? '&lt; 2' : i) + ' Jahre</div>';
	
	        if (i == 8 || i == 16) strAusgabe += '</div>';
        }
        $('#ttDiv' + numK).html(generateDropdown(numK, 6, 'Kind', 'Kind ' + k, strAusgabe)); 
    }
}

function setFlexTime(elem) {
    var bform = document.forms['bengine'];
    
    if (elem == "0") {
        bform.flextime.value = '2'; 
    } else if (ttFlagLoad) {
        bform.flextime.value = ''; 
    }
}  
/**
 * Funktion zum Schreiben der Reisedauer ins Label
 * @ dur {String} Wert der Reisedauer
 */
function setDuration(dur) {
    if (document.bengine.dauer.value != dur && detail == 'termine') {
        document.bengine.refresh.value = 1;
    }
    
    if (document.bengine.dauer) {
        if (dur != "0") {
            document.bengine.dauer.value = dur;
        }
    }
    
    setFlexTime(dur);
    
    var strDuration = ttLabels.getLabel(ttLabels.duration, dur);
    
    if (strDuration.length > 15) {
        strDuration = strDuration.substring(0, 13) + '...';
    }
    
    $('#ttQuicksearchDuration').html(strDuration);
    
    printDuration();
}

/**
 * Funktion zum Schreiben der Reisedauer ins Div
 */
function printDuration() {
    var strAusgabe = '';
    
    var tmpDurTop = ttLabels.duration[0].split('|');
    
    var classBGTop = flextime == 2 ? ' ttStdLabelActive ttStdLabelFirst' : 'ttStdLabel ttStdLabelFirst';
    strAusgabe += '<div class="' + classBGTop + '" onclick="setDuration(\'' + tmpDurTop[0] + '\');closeDivLabel(\'ttDiv4\');">' + tmpDurTop[1] + '</div>';
    
    for (var i = 1; i < ttLabels.duration.length; i ++) {
        var tmpDur = ttLabels.duration[i].split('|');
        if (i == 1 || i == 6) strAusgabe += '<div class="ttDoubleCol' + (i == 1 ? 'Left' : 'Right') + '">';
        
        var classBG = dauer == tmpDur[0] || i == 1 && (!dauer || dauer == '') ? ' ttStdLabelActive' : 'ttStdLabel';
        strAusgabe += '<div class="' + classBG + '" onclick="setDuration(\'' + tmpDur[0] + '\');closeDivLabel(\'ttDiv4\');">' + tmpDur[1] + '</div>';
        
        if (i == 5 || i == 10) strAusgabe += '</div>';
    }

    $('#ttDiv4').html(generateDropdown(4, 4, 'Dauer', 'Reisedauer', strAusgabe, '184px')); 
    //$('#ttDiv4').html(generateDropdown(4, 4, 'Dauer', 'Reisedauer', strAusgabe)); 
}

/**
 * Funktion zum Schreiben der Hoteldetails ins Label
 * @ value {String} Wert des Details
 */
function setHDetails(value) {
    if(value == 4) {
        wellbit = toggleBit(wellbit, 19);
        if (document.bengine.WellBit1.value != wellbit && detail == 'termine') {
            document.bengine.refresh.value = 1;
        }
        document.bengine.WellBit1.value = wellbit;
    }
    hdetails_kenner = toggleBit(hdetails_kenner, value);
    if (document.bengine.hdetails_kenner.value != hdetails_kenner && detail == 'termine') {
        document.bengine.refresh.value = 1;
    }
    document.bengine.hdetails_kenner.value = hdetails_kenner;
    if(hdetails_kenner & 16) {
        printLabelText('ttQuicksearchHDetails', (ttLabels.hdetails[0].split('|'))[1]);
    } else {
        if (getSelectedBitText(hdetails_kenner, ttLabels.hdetails) == '') {
            $('#ttQuicksearchHDetails').html('Hoteldetails');
        } else {
            printLabelText('ttQuicksearchHDetails', getSelectedBitText(hdetails_kenner, ttLabels.hdetails));
        }
    }

    printHDetails();
}

/**
 * Funktion zum Schreiben der Hoteldetails ins Div
 */
function printHDetails() {
    var strAusgabe = '';
    
    for (var i = 0; i < ttLabels.hdetails.length; i ++) {
        var tmp = ttLabels.hdetails[i].split('|');
        if(tmp[0] == 19) {
            var url_param = hdetails[4][1];
            var url_value = Number(hdetails[4][2]);
            if(hdetails_kenner & 32) {
                // Meerblick ist gewaehlt
                url_value += Number(hdetails[5][2]);
            }
            strAusgabe += generateCheckboxSelect(tmp[1], url_param, 'cbHDetails_' + tmp[0], url_value, 'setHDetails(' + 4 + ');', (hdetails_kenner & 16));
        } else {
            var url_param = hdetails[tmp[0]][1];
            var url_value = Number(hdetails[tmp[0]][2]);
            if(tmp[0] == 5 && hdetails_kenner & 16) {
                // Fruehbucher ist gewaehlt
                url_value += Number(hdetails[4][2]);
            }
            strAusgabe += generateCheckboxSelect(tmp[1], url_param, 'cbHDetails_' + tmp[0], url_value, 'setHDetails(' + tmp[0] + ');', checkBit(hdetails_kenner, tmp[0]));
        }
    }
    
    $('#ttDiv40').html(generateDropdown(40, 40, 'Hoteldetails', 'Hoteldetails', strAusgabe));
}

/**
 * Funktion zum Schreiben der Kategorie ins Label
 * @ value {String} Wert der Kategorie
 */
function setCategory(value) {
    if (category != value && detail == 'termine') {
        document.bengine.refresh.value = 1;
    }
    
    category = value;
    
    $('#ttQuicksearchKategorie').html(ttLabels.getLabel(ttLabels.cats, value));
    
    printCategory();
}

/**
 * Funktion zum Schreiben der Kategorie ins Div
 */
function printCategory() {
    var strAusgabe = '';
    
    for (var i = 0; i < ttLabels.cats.length; i ++) {
        var tmp = ttLabels.cats[i].split('|');
        strAusgabe += generateRadioSelect(tmp[1], 'kategorie', 'cbCategory_' + tmp[0], tmp[0], 'setCategory(' + tmp[0] + ');closeDivLabel(\'ttDiv9\');', category == tmp[0]);
    }
    
    $('#ttDiv9').html(generateDropdown(9, 9, 'Kategorie', 'Hotelkategorie', strAusgabe));
}

/**
 * Funktion zum Schreiben der Verpflegung ins Label
 * @ value {String} Wert der Verpflegung
 */
function setBoard(value) {
    if (verpflegung != value && detail == 'termine') {
        document.bengine.refresh.value = 1;
    }
    
    verpflegung = value;
    
    $('#ttQuicksearchVerpflegung').html(ttLabels.getLabel(ttLabels.boards, value));
    
    printBoard();
}

/**
 * Funktion zum Schreiben der Verpflegung ins Div
 */
function printBoard() {
    var strAusgabe = '';
    
    for (var i = 0; i < ttLabels.boards.length; i ++) {
        var tmp = ttLabels.boards[i].split('|');
        strAusgabe += generateRadioSelect(tmp[1], 'verpflegung', 'cbBoard_' + tmp[0], tmp[0], 'setBoard(' + tmp[0] + ');closeDivLabel(\'ttDiv10\');', verpflegung == tmp[0]);
    }
    
    $('#ttDiv10').html(generateDropdown(10, 10, 'Verpf', 'Verpflegung', strAusgabe));
}

/**
 * Funktion zum Schreiben der Zimmertypen ins Label
 * @value {String} Wert des Zimmertyps
 */
function setRoom(value) {
    if (zimmer != value && detail == 'termine') {
        document.bengine.refresh.value = 1;
    }
    
    zimmer = value;
    
    $('#ttQuicksearchZimmer').html(ttLabels.getLabel(ttLabels.zimmer, value));
    
    printRoom();
}

/**
 * Funktion zum Schreiben der Zimmertypen ins Div
 */
function printRoom() {
    var strAusgabe = '';
    
    for (var i = 0; i < ttLabels.zimmer.length; i ++) {
        var tmp = ttLabels.zimmer[i].split('|');
        strAusgabe += generateRadioSelect(tmp[1], 'zimmer', 'cbRoom_' + tmp[0], tmp[0], 'setRoom(' + tmp[0] + ');closeDivLabel(\'ttDiv11\');', zimmer == tmp[0]);
    }
    
    $('#ttDiv11').html(generateDropdown(11, 11, 'Zimmer', 'Zimmertyp', strAusgabe));
}

/**
 * Funktion zum Schreiben der Hotelmarke ins Label
 * @value {String} Wert der Hotelmarke
 */
function setHotelmarke(value) {
    if (hotelbit != value && detail == 'termine') {
        document.bengine.refresh.value = 1;
    }
    
    //hotelbit = value == '-1' ? 0 : Math.pow(2, value);
    hotelbit = value == '-1' ? '' : Math.pow(2, value);
    document.bengine.HotelBit1.value = hotelbit;
    
    printLabelText('ttQuicksearchHotelmarke', getSelectedBitText(hotelbit, ttLabels.hotelmarke) || 'Hotelmarke');
    
    printHotelmarke();
}

/**
 * Funktion zum Schreiben der Hotelmarks ins Div
 */
function printHotelmarke() {
    var strAusgabe = '';

    for (var i = 0; i < ttLabels.hotelmarke.length; i ++) {
        var tmp = ttLabels.hotelmarke[i].split('|');
        strAusgabe += generateRadioSelect(tmp[1], 'hotelmarke', 'cbHMarke_' + tmp[0], tmp[0], 'setHotelmarke(' + tmp[0] + ');closeDivLabel(\'ttDiv33\');', (hotelbit == 0 && tmp[0] == '-1') || checkBit(hotelbit, tmp[0]));
    }
    
    $('#ttDiv33').html(generateDropdown(33, 33, 'HMarke', 'Hotelmarke', strAusgabe));
}

/**
 * Funktion zum Schreiben des Preises ins Label
 * @value {String} Wert des Preises 
 */
function setPreis(value) {
     if (preis != value && detail == 'termine') {
        document.bengine.refresh.value = 1;
    } 
     
    preis = value; 
      
    $('#ttQuicksearchPreis').html(ttLabels.getLabel(ttLabels.preis, value));

    printPreis();
}

/**
 * Funktion zum Schreiben der Preises ins Div
 */
function printPreis() {
    var strAusgabe = '';

    for (var i = 0; i < ttLabels.preis.length; i ++) {
        var tmp = ttLabels.preis[i].split('|');
        if(preis == "") preis = "-1";
        strAusgabe += generateRadioSelect(tmp[1], 'preis', 'cbPreis_' + tmp[0], tmp[0], 'setPreis(\'' + tmp[0] + '\');closeDivLabel(\'ttDiv12\');', preis == tmp[0]); 
    }
    
    $('#ttDiv12').html(generateDropdown(12, 12, 'Preis', 'Reisebudget', strAusgabe));
}

/**
 * Funktion zum Schreiben der HBW ins Label
 */
function setHBW(_hbfges, _hbfanz, _hbfempf) {
    if ((hbfges != _hbfges || hbfanz != _hbfanz || hbfempf != _hbfempf) && detail == 'termine') {
        document.bengine.refresh.value = 1;
    }
    
    hbfges  = _hbfges;
    hbfanz  = _hbfanz;
    hbfempf = _hbfempf;
    
    if (hbfges == 0 && hbfanz == 0 && hbfempf == 0) {
        $('#ttQuicksearchHbw').html('beliebig');
    } else {
        var ltext = new Array();
        if (hbfges != 0)  ltext.push('Gesamtbewertung');
        if (hbfanz != 0)  ltext.push('Anzahl der Bewertungen');
        if (hbfempf != 0) ltext.push('Weiterempfehlungen');
        printLabelText('ttQuicksearchHbw', ltext.join(', '))
    }
    
    printHBW();
}

/**
 * Funktion zum Schreiben der HBW ins Div
 */
function printHBW() {
    var strAusgabe = '';
    if (hbfges == '') hbfges = 0;
    if (hbfanz == '') hbfanz = 0;
    if (hbfempf == '') hbfempf = 0;
    
    strAusgabe += '<div class="ttHbwBeliebig">';
    //strAusgabe += generateRadioSelect('beliebig', 'hbfreset', 'cbHBWreset', 0, 'setHBW(0, 0, 0);closeDivLabel(\'ttDiv13\');', hbfges == 0 && hbfanz == 0 && hbfempf == 0);
    strAusgabe += generateRadioSelect('beliebig', 'hbfreset', 'cbHBWreset', 0, 'setHBW(0, 0, 0);', hbfges == 0 && hbfanz == 0 && hbfempf == 0);
    strAusgabe += '</div>';

    strAusgabe += '<div class="ttHbwGroupLabel">Gesamtbewertung</div>'; 
    for (var i = 0; i < ttLabels.hbfges.length; i ++) {
        var tmp = ttLabels.hbfges[i].split('|');
        strAusgabe += generateRadioSelect(tmp[1], 'hbfges', 'cbHbfGes_' + tmp[0], tmp[0], 'setHBW(' + tmp[0] + ', ' + hbfanz + ', ' + hbfempf + ');', hbfges == tmp[0]);
    }
    
    strAusgabe += '<div class="ttHbwGroupLabel">Anzahl der Bewertungen</div>'; 
    for (var i = 0; i < ttLabels.hbfanz.length; i ++) {
        var tmp = ttLabels.hbfanz[i].split('|');
        strAusgabe += generateRadioSelect(tmp[1], 'hbfanz', 'cbHbfAnz_' + tmp[0], tmp[0], 'setHBW(' + hbfges + ', ' + tmp[0] + ', ' + hbfempf + ');', hbfanz == tmp[0]);
    }

    strAusgabe += '<div class="ttHbwGroupLabel">Weiterempfehlungen</div>'; 
    for (var i = 0; i < ttLabels.hbfempf.length; i ++) {
        var tmp = ttLabels.hbfempf[i].split('|');
        strAusgabe += generateRadioSelect(tmp[1], 'hbfempf', 'cbHbfEmpf_' + tmp[0], tmp[0], 'setHBW(' + hbfges + ', ' + hbfanz + ', ' + tmp[0]+ ');', hbfempf == tmp[0]);
    }

    $('#ttDiv13').html(generateDropdown(13, 13, 'Hbw', 'Hotelbewertung', strAusgabe, '428px'));
}

/**
 * Funktion zum Schreiben des Orte-Sortierungs-Divs
 */
function printVillageOrder() {
    var strAusgabe = '';
    var classBG;
    
    var mouseZielEvents = '';
    
    if (ttIsIe6 == 1) {
        mouseZielEvents = ' onmouseover="this.className = \'ttZielLabelActive\';" onmouseout="this.className = \'ttZielLabel\';"';
    }
    
    var countVillages = 0;
    
	if (typeof anzahl_treffer_orte == 'undefined') {
	     anzahl_treffer_orte = 0;
	}
    
    for (var i = 0; i < anzahl_treffer_orte; i ++) {
        countVillages += 1;
    }
    
    if (countVillages > 10) {
        var boxHeight  = (14 * 21 + 81) + 'px';
        var boxHeight2 = (14 * 21 + 25) + 'px';
    } else {
        var boxHeight  = (countVillages * 21 + 81) + 'px';
        var boxHeight2 = (countVillages * 21 + 25) + 'px';
    }
        
    strAusgabe +=   '<div class="ttRegionBodyContent" style="height: ' + boxHeight2 + ';">';
    strAusgabe +=       '<div class="ttZielLabelBorderTop"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>';
    strAusgabe +=       '<div class="ttZielLabel' + (s_ort == '' ? 'Active' : '') + '" onclick="ortsucher(\'\'); closeDivLabel(\'ttDiv16\');">beliebig</div>';
    
    
    for (var t = 0; t < anzahl_treffer_orte; t++) {
        classBG = s_ort == Orte[t] ? 'ttZielLabelActive' : 'ttZielLabel';
        
        strAusgabe += '<div class="' + classBG + '" onclick="ortsucher(\'' + escape(Orte[t]) + '\'); closeDivLabel(\'ttDiv16\');"' + (s_ort == Orte[t] ? mouseZielEvents : '') + '>' + Orte[t] + '</div>';
    }

    strAusgabe +=   '</div>';
    
    $('#ttDiv16').html(generateDropdown(16, 16, 'Ort', 'Einschränken nach Ort', strAusgabe, boxHeight));
}

function getSelectedBitText(bit, values) {
    var res = new Array();
    for (var i = 0; i < values.length; i ++) {
        var tmp = values[i].split('|');
        if (checkBit(bit, tmp[0])) {
            res.push(tmp[1]);
        }
    }
    return res.join(', ');    
}

function printLabelText(elemId, value) {
    if (value.length < 13) {
        $('#' + elemId).html(value);
    } else {
        var short = value.substring(0, 12) + '...';
        $('#' + elemId).html(short);
        $('#' + elemId).attr('title', value);
    }
}

/**
 * Toggelt das angegebene Bit.
 * @param int bit   Der Bitwert
 * @param int value Das Bit das umgesetzt werden soll (wenn vorher 1 dann 0, ansonsten 1).
 */
function toggleBit(bit, value) {
    return bit ^ Math.pow(2, value);
}

/**
 * Prüft ob das angegebene Bit gesetzt ist.
 * @param int bit   Der Bitwert
 * @param int value Das Bit das im Bitwert geprüft werden soll.
 */
function checkBit(bit, value) {
    return bit & Math.pow(2, value);
}

/**
 * Funktion zum initialen Schreiben der Labels
 */
function setLabels() {
    //--- ABFLUGHAEFEN ----------------------------------------
    if (abflughafen.search(/;/) == '-1') {
        if (abflughafen == '' || abflughafen == '-1') {
            document.getElementById('ttQuicksearchAfh').innerHTML = 'beliebig';
        } else {
            if (abflughafen.search(',') != '-1') {
                var strAbflughafen = abflughafen;
                
                if (abflughafen.length > 12) {
                    var strAbflughafen = abflughafen.substring(0, 12) + '...';
                }
                
                document.getElementById('ttQuicksearchAfh').innerHTML = strAbflughafen;
            } else {
                for (var i = 0; i < TTAFHDLC.length; i ++) {
                    var tmp = TTAFHDLC[i].split(';');
                    
                    if (abflughafen == tmp[1]) {
                        document.getElementById('ttQuicksearchAfh').innerHTML = tmp[0];
                        
                        break;
                    }
                }
            }
        }
    }
    
    //--- REISEDAUER ------------------------------------------
    setDuration(dauer);

    //--- ERWACHSENE ------------------------------------------
    var per      = personen.split(';');
    var countPer = 0;
    
    for (var i = 0; i < per.length; i ++) {
        if (per[i] != '' && per[i] > 16) {
            countPer += 1;
        }
    }
    
    document.getElementById('ttQuicksearchAdults').innerHTML = (countPer > 0 ? (countPer) : '2') + ' Pers.';
    
    //--- KINDER ----------------------------------------------
    setchildren();

    // Problem der Search (max 8 Personen) handeln
    handle8PersProblem(countPer);

    //--- KATEGORIE -------------------------------------------------
    setCategory(category);

    //--- HOTELDETAILS-------------------------------------------------
    setHDetails();

    //--- VERPFLEGUNG -----------------------------------------------
    setBoard(verpflegung);

    //--- ZIMMERTYP -------------------------------------------------
    setRoom(zimmer);
    
    //--- PREIS -------------------------------------------------
    setPreis(preis);    
    
    //--- VERANSTALTER -------------------------------------------------
    setOperator(marke);     

    //--- HBW -------------------------------------------------------
    setHBW(hbfges, hbfanz, hbfempf);
    
    ttFlagLoad = true;
}

/**
 * Funktion zum Einblenden eines Divs
 * @ div {Int} Index des Divs
 */
function showDivLabel(div) {
    hideKal();
    
    if (div == flagShowDiv) {
        $('#' + div).hide();
        
        flagShowDiv = false;
    } else {
        var i = 1;
        
        while (document.getElementById('ttDiv' + i)) {
            $('#ttDiv' + i).hide();
            i++;
        }
        $('#ttDiv40').hide(); // Hoteldetails
        $('#ttDiv16').hide(); // Einschraenkung nach Ort
        
        $('#' + div).slideDown();
        
        flagShowDiv = div;
    }
}

/**
 * Funktion zum Ausblenden eines Divs
 * @ div {Int} Index des Divs
 */
function closeDivLabel(div) {
    if (div == 'cal') {
        var i = 1;
        
        while (document.getElementById('ttDiv' + i)) {
            document.getElementById('ttDiv' + i).style.display = 'none';
            
            i += 1;
        }
    } else {
        document.getElementById(div).style.display = 'none';
    }
    
    flagShowDiv = false;
}

/**
 * Funktion zum Einbleden deds Submit-Buttons
 */
function showSubmit() {
    if (extendedSearch != '1') {
        document.getElementById('ttQuicksearchSubmitButton').style.display = 'block';
    }
}

/**
 * Funktion zum Aufrufen der print-Funktionen der Divs
 */
function writeLabels() {
    //---------------------------------------------------------------
    //--- Regionen manipulieren und neu sortieren -------------------
    //---------------------------------------------------------------
    for (var i = 0 ; i < IBE.Regionen.length - 1; i ++) {
        if (IBE.Regionen[i].search(/Fly & Stay/) != '-1') {
            IBE.Regionen[i] = IBE.Regionen[i].replace(/Fly & Stay/, '2-GO');
        }
        
        if (IBE.Regionen[i].search(/Glückshotel/) != '-1') {
            IBE.Regionen[i] = IBE.Regionen[i].replace(/Glückshotels/, 'Roulette Reisen');
            IBE.Regionen[i] = IBE.Regionen[i].replace(/Glückshotel/, 'Roulette Reisen');
        }
    }
    
    IBE.Regionen.sort();
    //---------------------------------------------------------------
    //--- ENDE Regionen manipulieren und neu sortieren -------------
    //---------------------------------------------------------------
    
    printAFH();
    
    if (detail != 'termine' || detail == 'termine' && (flugdauer != '-1' || flugdauer != '')) {
            printDestination(flugdauer, zielgebiets_kenner);
    }
    
    printAdults();
    printChildren();
    

    printHotelmarke();
    printLabelText('ttQuicksearchHotelmarke', getSelectedBitText(hotelbit, ttLabels.hotelmarke) || 'Hotelmarke');

    printHDetails();
    
    if (detail == 'hotel') {
        printVillageOrder();
    }
    
     printOperator();
    
}

