/**
 * Kundenspezifische Terminklasse
 * 
 * @author: Daniel Lembicz
 */


/**
 * Konstruktor
 */
function TTTerminListCustomer () {
    this.bookedOutObj = null;
}

/**
 * Initialisierung der Klasse. Wird am Anfang jedes Listen-Ladevorganges aufgerufen
 */
TTTerminListCustomer.init = function() {
    $('#idTerminHeaderCloned' + (port == 653 ?  '_653' : '')).find('.ttHeadline3').html('Angebote, die zu 100% Ihren Urlaubswünschen entsprechen.');
    
    if (pStrecke.terminObjects.length > 0) {
        //$('#ttLisaTermine').show();
    }
}

/**
 * Hotelansicht erstellen
 * Template: /tpl/listElementTerminHotel.html
 * Template wird geklont und anschließend mit Daten gefüllt und als DOM-Objekt
 * zurückgegeben.
 * 
 * ACHTUNG: 
 * Um Elemente anzusprechen sollte immer die "find()" - Methode angewendet
 * werden. Diese sucht z.B. innerhalb des geklonten Elementes nach einer enthaltenen
 * Klasse und gibt genau dieses Element zurück
 * 
 * @return DOM-Objekt
 */
TTTerminListCustomer.getListHotel = function (newElem) {
    //--- Labels fuellen --------------------------------------------
    if ((flugdauer == '-1' || flugdauer == '') && 
        (topRegion == '-1' || topRegion == '') && 
        (zielgebiets_kenner == '-1' || zielgebiets_kenner == '') &&
        !ttCityIbe) {
            ttFlagSiteLoad = false;
            ttTopRegion = pStrecke.terminRegionData.topReg;
            printDestination('', '');
    }
    
    //--- Headline -------------------------------------------------
    var strAusgabeRegion = pStrecke.terminHotelData.region.replace(/Glückshotel/, 'Roulette Reisen');
    strAusgabeRegion     = strAusgabeRegion.replace(/Fly & Stay/, '2-GO');
    
    var strHeadline = strAusgabeRegion + ', ' + pStrecke.terminHotelData.country
                    + ' - Bitte wählen Sie Zimmer, Verpflegung' + (engine != 'erde' ? ', Flug ' : '') 
                    + ' und Reisedatum' + (strAusgabeRegion.search(/Roulette Reisen/) != '-1' ? '' : ' aus') + '.';
    
    //--- Bit-Icons -------------------------------------------------
    var bitIcons = 0;
    
    for (var i = 0; i < pStrecke.terminHotelData.hotelattribute.length; i ++) {
        bitIcons |= pStrecke.terminHotelData.hotelattribute[i][0];
    }
    
    var countIcons = 0;
    var strIcons   = '';
    
    if (HotelBit1 & 2097152) {
        strIcons += '<img src="' + imgPfad + '/icons/iconLti.png" id="iconLTI" onmouseover="ttShowIconTip(this.id, 1, this.width);" onmouseout="document.getElementById(\'hotelIconDescription\').style.display=\'none\';" alt="" class="ttHotelIcon" border="0" />';
        
        countIcons += 1;
    } else if (HotelBit1 & 1048576) {
        strIcons += '<img src="' + imgPfad + '/icons/iconCalimera.png" id="iconCalimera" onmouseover="ttShowIconTip(this.id, 2, this.width);" onmouseout="document.getElementById(\'hotelIconDescription\').style.display=\'none\';" alt="" class="ttHotelIcon" border="0" />';
        
        countIcons += 1;
    } else if (HotelBit1 & 131072) {
        strIcons += '<img src="' + imgPfad + '/icons/iconIberostar.png" id="iconIberostar" onmouseover="ttShowIconTip(this.id, 3, this.width);" onmouseout="document.getElementById(\'hotelIconDescription\').style.display=\'none\';" alt="" class="ttHotelIcon" border="0" />';
        
        countIcons += 1;
    }
    
    if (WellBit1 & 262144) {
        strIcons += '<img src="' + imgPfad + '/icons/iconRedstar.png" id="iconRedstar" onmouseover="ttShowIconTip(this.id, 8, this.width);" onmouseout="document.getElementById(\'hotelIconDescription\').style.display=\'none\';" alt="" class="ttHotelIcon" border="0" />';
    }
    
    if (WellBit1 & 524288) {
        strIcons += '<img src="' + imgPfad + '/icons/iconFruehbucher.png" id="iconFruehbucher" onmouseover="ttShowIconTip(this.id, 4, this.width);" onmouseout="document.getElementById(\'hotelIconDescription\').style.display=\'none\';" alt="" class="ttHotelIcon" border="0" />';
        
        countIcons += 1;
    }
    
    if (bitIcons & 1 || HotelBit1 & 33554432 || HotelBit1 & 67108864 || HotelBit1 & 134217728 || HotelBit1 & 268435456 || HotelBit1 & 536870912) {
        strIcons += '<img src="' + imgPfad + '/icons/iconFamilie.png" id="iconFamilie" onmouseover="ttShowIconTip(this.id, 5, this.width);" onmouseout="document.getElementById(\'hotelIconDescription\').style.display=\'none\';" alt="" class="ttHotelIcon" border="0" />';
        
        countIcons += 1;
    }
    
    if (bitIcons & 2 && countIcons <= 4) {
        strIcons += '<img src="' + imgPfad + '/icons/iconStrand.png" id="iconStrand" onmouseover="ttShowIconTip(this.id, 6, this.width);" onmouseout="document.getElementById(\'hotelIconDescription\').style.display=\'none\';" alt="" class="ttHotelIcon" border="0" />';
        
        countIcons += 1;
    }
    
    if (bitIcons & 4 && countIcons <= 4) {
        strIcons += '<img src="' + imgPfad + '/icons/iconSport.png" id="iconSport" onmouseover="ttShowIconTip(this.id, 7, this.width);" onmouseout="document.getElementById(\'hotelIconDescription\').style.display=\'none\';" alt="" class="ttHotelIcon" border="0" />';
        
        countIcons += 1;
    }
    
    //--- Thumb -----------------------------------------------------
    var np = String(parseInt(pStrecke.terminHotelData.iff / 5000) * 5000);
        
    while (np.length < 5) {
        np = '0' + np;
    }
    
    var strThumb = '<img src="/tools/image.php?pfad=' + imgservPfad + '/images/content/booking_thumbs_REWE/' + ttSeason + '_gr/' + np + '/THB_999_H' + pStrecke.terminHotelData.iff + '.jpg&b=206&h=142" width="206" height="142" alt="Informationen zu Hotel und Leistungen anzeigen" border="0" />';
    
    //--- Teaser-Text -----------------------------------------------
    var strTeaser = pStrecke.terminHotelData.teaserData.Text.substring(0, 110) + ' ...';
    
    //--- HBW -------------------------------------------------------
    if (pStrecke.terminHotelData.hbw.num >= 1) {
        var strEmpfHbw  = parseInt(pStrecke.terminHotelData.hbw.empf / 10) + ' %';
        var strNumHbw   = pStrecke.terminHotelData.hbw.num;
        var strScaleHbw = (pStrecke.terminHotelData.hbw.rating / 10).toString().replace('.', ',');
        var strHbw      = '<img src="' + imgPfad + '/hbw/scaleSmall/small_scale_' + pStrecke.terminHotelData.hbw.rating + '.gif" class="ttHotHbwScale" border="0" alt="Gesamtbewertung" title="Gesamtbewertung ' + ((pStrecke.terminHotelData.hbw.rating / 10).toString().replace('.', ',')) + '" />';
    }
    
    //--- Ausgabe der Daten -----------------------------------------
    $(newElem).find('.ttHeadline2').html(strHeadline);    
    
    var strAusgabeCity = pStrecke.terminHotelData.city;
    
    if (strAusgabeCity.length > 24) {
        strAusgabeCity = strAusgabeCity.substring(0, 22) + '...';
    }
    
    $(newElem).find('.ttTerGroupHeaderOrt').html(strAusgabeCity);
    
    var strAusgabeHotelname = pStrecke.terminHotelData.hotelName;
    
    if (strAusgabeHotelname.length > 18) {
        strAusgabeHotelname = strAusgabeHotelname.substring(0, 16) + '...';
    }
    
    var tmpStart = pStrecke.terminHotelData.stars.split('.');
    
    var strAusgabeSterne = '';
    
    for (var i = 0; i < parseInt(tmpStart[0]); i ++) {
        strAusgabeSterne += '<img src="' + imgPfad + '/1stern.gif" alt="" border="0" />';
    }
    
    if (tmpStart[1] == '5') {
        strAusgabeSterne += '<img src="' + imgPfad + '/stern_halb.gif" alt="" border="0" />';
    }
    
    $(newElem).find('.ttTerGroupHeaderHotelnameTxt').html(strAusgabeHotelname + ' &nbsp;' + strAusgabeSterne);
    $(newElem).find('.ttTerGroupHeaderHotelnameTxt').attr('title', pStrecke.terminHotelData.hotelName);
    $(newElem).find('.ttTopTerGroupHeaderAttribute').html(strIcons);
    
    $(newElem).find('.ttTopTerThumb').html(strThumb);
    
    $(newElem).find('.ttTopTerTeaserText').html(strTeaser);
    
    if (pStrecke.terminHotelData.hbw.num >= 1) {
        $(newElem).find('.ttTerHbwEmpfValue').html(strEmpfHbw);
        $(newElem).find('.ttTerHbwAnzValue').html(strNumHbw);
        $(newElem).find('.ttTerHbwScaleText').html(strHbw);
        $(newElem).find('.ttTerHbwScaleValue').html(strScaleHbw);
    } else {
        $(newElem).find('.ttTopTerHbwScales').html('Es liegt zur Zeit noch keine Hotelbewertung durch G&auml;ste vor.');
    }
    
    //--- Hidden-Felder belegen -------------------------------------
    document.bengine.ttHotelAttribut.value    = HotelBit1;
    document.bengine.WellBit1.value           = WellBit1;
    document.bengine.ttHotelIcons.value       = bitIcons;
    document.bengine.ttHotelBewertungen.value = pStrecke.terminHotelData.hbw.num;
    
    return newElem[0];
}

/**
 * SortierungsHeader
 */
TTTerminListCustomer.getListHeadSortierung = function (elem) {
    if (port == '653') {
        var strNavColB = '<div id="ttTerNavArrow2" class="ttTerNavArrow' + (ttHighlightSortItemsFlag == 2 ? 'Active' : '') + '" onclick="ttHighlightSortItemsFlag = 2; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'termin\');" title="Liste nach Reisedatum sortieren">&nbsp;</div>'
                       + '<div id="ttTerNavText2" class="ttTerNavTxtB" onclick="ttHighlightSortItemsFlag = 2; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'termin\');">Reisedatum</div>';
            
        var strNavColC = '<div id="ttTerNavArrow3" class="ttTerNavArrow' + (ttHighlightSortItemsFlag == 3 ? 'Active' : '') + '" onclick="ttHighlightSortItemsFlag = 3; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'dauer\');" title="Liste nach Reisedauer sortieren">&nbsp;</div>'
                       + '<div id="ttTerNavText3" class="ttTerNavTxtC" onclick="ttHighlightSortItemsFlag = 3; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'dauer\');">Dauer</div>';
            
        var strNavColD = '<div class="ttTerNavTxtD">Anbieter und Leistungen</div>';
            
        var strNavColE = '<div id="ttTerNavArrow4" class="ttTerNavArrow' + (ttHighlightSortItemsFlag == 4 ? 'Active' : '') + '" onclick="ttHighlightSortItemsFlag = 4; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'preis\');" title="Liste nach Reisepreis sortieren">&nbsp;</div>'
                       + '<div id="ttTerNavText4" class="ttTerNavTxtE" onclick="ttHighlightSortItemsFlag = 4; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'preis\');">Reisepreis</div>';
            
        $(elem).find('.ttTerNavColB').html(strNavColB);
        $(elem).find('.ttTerNavColC').html(strNavColC);
        $(elem).find('.ttTerNavColD').html(strNavColD);
        $(elem).find('.ttTerNavColE').html(strNavColE);
        
        for (var i = 2; i <= 4; i ++) {
            if (ttHighlightSortItemsFlag != i) {
                $(elem).find('#ttTerNavArrow' + i).bind('mouseover', function() {
                    this.className = 'ttTerNavArrowActive';
                });
                
                $(elem).find('#ttTerNavArrow' + i).bind('mouseout', function() {
                    this.className = 'ttTerNavArrow';
                });
                
                $(elem).find('#ttTerNavArrow' + i).bind('click', function() {
                    TTTerminListCustomer.getListHeadSortierung(elem);
                });
                
                $(elem).find('#ttTerNavText' + i).bind('click', function() {
                    TTTerminListCustomer.getListHeadSortierung(elem);
                });
            }        
        }
    } else {
        var strNavColA = '<div id="ttTerNavArrow1" class="ttTerNavArrow' + (ttHighlightSortItemsFlag == 1 ? 'Active' : '') + '" onclick="ttHighlightSortItemsFlag = 1; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'abflug\');" title="Liste nach Abflughafen sortieren">&nbsp;</div>'
                       + '<div id="ttTerNavText1" class="ttTerNavTxtA" onclick="ttHighlightSortItemsFlag = 1; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'abflug\');">Abflughafen</div>';
        
        var strNavColB = '<div id="ttTerNavArrow2" class="ttTerNavArrow' + (ttHighlightSortItemsFlag == 2 ? 'Active' : '') + '" onclick="ttHighlightSortItemsFlag = 2; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'termin\');" title="Liste nach Reisedatum sortieren">&nbsp;</div>'
                       + '<div id="ttTerNavText2" class="ttTerNavTxtB" onclick="ttHighlightSortItemsFlag = 2; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'termin\');">Reisedatum</div>';
            
        var strNavColC = '<div id="ttTerNavArrow3" class="ttTerNavArrow' + (ttHighlightSortItemsFlag == 3 ? 'Active' : '') + '" onclick="ttHighlightSortItemsFlag = 3; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'dauer\');" title="Liste nach Reisedauer sortieren">&nbsp;</div>'
                       + '<div id="ttTerNavText3" class="ttTerNavTxtC" onclick="ttHighlightSortItemsFlag = 3; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'dauer\');">Dauer</div>';
            
        var strNavColD = '<div class="ttTerNavTxtD">Anbieter und Leistungen</div>';
            
        var strNavColE = '<div id="ttTerNavArrow4" class="ttTerNavArrow' + (ttHighlightSortItemsFlag == 4 ? 'Active' : '') + '" onclick="ttHighlightSortItemsFlag = 4; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'preis\');" title="Liste nach Reisepreis sortieren">&nbsp;</div>'
                       + '<div id="ttTerNavText4" class="ttTerNavTxtE" onclick="ttHighlightSortItemsFlag = 4; ttFlagTabReiterActive = 0; pTermine.sortTerminList(\'preis\');">Reisepreis</div>';
            
        $(elem).find('.ttTerNavColA').html(strNavColA);
        $(elem).find('.ttTerNavColB').html(strNavColB);
        $(elem).find('.ttTerNavColC').html(strNavColC);
        $(elem).find('.ttTerNavColD').html(strNavColD);
        $(elem).find('.ttTerNavColE').html(strNavColE);
        
        for (var i = 1; i <= 4; i ++) {
            if (ttHighlightSortItemsFlag != i) {
                $(elem).find('#ttTerNavArrow' + i).bind('mouseover', function() {
                    this.className = 'ttTerNavArrowActive';
                });
                
                $(elem).find('#ttTerNavArrow' + i).bind('mouseout', function() {
                    this.className = 'ttTerNavArrow';
                });
                
                $(elem).find('#ttTerNavArrow' + i).bind('click', function() {
                    TTTerminListCustomer.getListHeadSortierung(elem);
                });
                
                $(elem).find('#ttTerNavText' + i).bind('click', function() {
                    TTTerminListCustomer.getListHeadSortierung(elem);
                });
            }        
        }
    }
    
    return;
}

/**
 * Gibt ein Element zurück, dass über der Liste hinzugefügt wird. Enthält somit den 
 * gesamten Listenkopf. Je nach Konfiguration wird dieser Header bei Listenaktualisierungen
 * ebenfalls aktualisiert.
 */

TTTerminListCustomer.getListHeader = function () {
    var newElem = document.createElement('div');
    
    if (port == 653) {
        var elem = getClonedTemplate('idTerminHeader_653', 'idTerminHeaderCloned_653');
    } else {
        var elem = getClonedTemplate('idTerminHeader', 'idTerminHeaderCloned');  
    }
    
    // Hotelansicht hinzufügen
    jQuery(newElem).append(TTTerminListCustomer.getListHotel(elem));
    
    // Sortierungs-Leiste hinzufügen
    jQuery(newElem).append(TTTerminListCustomer.getListHeadSortierung(elem));
    
    return newElem;
}

/**
 * Footer der Terminliste. Wird unterhalb der Liste hinzugefügt und bei Listen-
 * aktualisierungen nicht aktualisiert
 */
TTTerminListCustomer.getListFooter = function () {
    var newElem = getClonedTemplate('idTerminFooter', 'idTerminFooterCloned');
    
    //--- Skip-Leiste darstellen ------------------------------------
    $(newElem).find('.ttTdSkip').attr('id', 'idListContentNavi');
    if (ttIntern != 1) {
        $(newElem).append(TTTerminListCustomer.getTracking());
    }
    
    return newElem[0];
}

/**
 * Handling, wenn keine Termine aus der Engine kommen
 */
var ttFlagTermineResults = true;

TTTerminListCustomer.noResults = function () {
    ttFlagTermineResults = false;
    
    var strError = '<div class="tt_errorBox">'
                     +     '<div style="float: left; width: 34px; height: 30px; padding: 22px 0 20px 20px;">'
                     +         '<img src="' + imgPfad + '/Fehlermeldung.gif" alt="" border="0" style="vertical-align: middle; margin: 0 10px 4px 0;" />'
                     +     '</div>'
                     +     '<div style="float: left; width: 830px; padding: 24px 0 40px 6px;">'
                     +         'Leider sind momentan keine St&auml;dtereisen-Angebote f&uuml;r Ihr gew&uuml;nschtes '
                     +         'Reiseziel verf&uuml;gbar oder die Kriterien wurden zu stark eingeschr&auml;nkt. '
                     +         'W&auml;hlen Sie ein anderes Ziel, &auml;ndern Sie Ihre Suchkriterien oder suchen Sie in der Rubrik '
                     +         '<a href="http://buchen.its.de/booking/its/erde/index.php?KID=430700&formular=4&engine=erde&detail=hotel&showresult=1&topRegion=' + topRegion + '&personen=' + (personen != '' ? personen : '25;25;') + '&AID=hurra&AKID=google_sem">"Eigene Anreise"</a> '
                     +         'nach Ihrem gew&uuml;nschten Reiseziel.'
                     +     '</div>'
                     + '</div>';
    
    $('#idListHeader').html('<div style="height: 16px;">&nbsp;</div>');
    $('#idListFooter').html('');
    
    $_('idListContent').style.marginLeft = '-15px';
    $('#idListContent').html(strError);
}

/**
 * Vakanz Warte Div
 */
TTTerminListCustomer.getCheckVakanzDiv = function (elem, data) {
    var elemLoading = document.createElement('div');
    
    $(elemLoading).attr('class', 'terminOfferVakanzLoading');
    
    var strHTML  = '<div class="terminOfferVakanzLoadingBg">&nbsp;</div>'
                 + '<div class="terminOfferVakanzLoadingContent">'
                 + '    <div class="terminOfferVakanzLoadingTxt">Das Angebot wird gepr&uuml;ft.</div>'
                 + '    <div class="terminOfferVakanzLoadingPic"></div>'
                 + '    <div class="terminOfferVakanzLoadingCancel" onclick="pStrecke.reqGetVacancy.abort();$(\'.terminOfferVakanzLoading\').remove();">Abbrechen</div>'
                 + '</div>';
        
    $(elemLoading).html(strHTML);
    $(elemLoading).appendTo(elem);
    
    $('.terminOfferVakanzLoadingCancel').hover(
        function() {
            $(this).css('color', '#3F82B8');
        },
        
        function() {
            $(this).css('color', '#777');
        }
    );
}

/**
 * Wird nach der Vakanzprüfung aufgerufen
 */
TTTerminListCustomer.callbackVakanz = function (obj) {
    this.bookedOutObj = null;
    var status        = obj.vakanz.status;
    var bookingId     = obj.vakanz.bookingId;
    var rowId         = obj.counter;
    
    var elem = $("div[bookingId='" + obj.bookingId + "']");
    
    $('.terminOfferVakanzLoading').remove();
    
    if (status == 'SUCCESS') {
        //--- Lisa-Video aendern ------------------------------------
        $('#ttLisaTermine').unbind();
        
        ttLisaVideo = ttLisaVideoDir + '/Suchstrecke_4_1.flv';
        
        $('#ttLisaTermine').bind('click', function() {  
            ttPlayVideo(ttLisaVideo);
        });
        
        if (engine == 'erde') {
            if ((typeof(sessionLisaTerminErde1) == 'undefined' || sessionLisaTerminErde1 != '1') && sessionLisaOff != '1') {
                setTimeout(function() {
                    ttPlayVideo(ttLisaVideo);
                    sendPostRequest(pathDevAbsolute + 'booking/' + ordner_name + '/teaser/writeLisaSession.php?lisa=1&engine=' + engine, pStrecke.config.idForm);
                    
                    sessionLisaTerminErde1 = '1';
                }, 100);
            }
        } else {
            if ((typeof(sessionLisaTermin1) == 'undefined' || sessionLisaTermin1 != '1') && sessionLisaOff != '1') {
                setTimeout(function() {
                    ttPlayVideo(ttLisaVideo);
                    sendPostRequest(pathDevAbsolute + 'booking/' + ordner_name + '/teaser/writeLisaSession.php?lisa=1&engine=' + engine, pStrecke.config.idForm);
                    
                    sessionLisaTermin1 = '1';
                }, 100);
            }
        }
            
        //--- Erwachsene und alter1-3 ins Formularfeld schreiben ----
        var tmpPer    = obj.vakanz.data[20].split(';');
        var strErw    = '';
        var countKind = 1;
        
        for (var i = 0; i < tmpPer.length; i ++) {
            if (tmpPer[i] == '25') {
                strErw += '25;';
            } else {
                if (countKind == 1) {
                    document.bengine.alter1.value = tmpPer[i] == '' ? '-1' : tmpPer[i];
                } else if (countKind == 2) {
                    document.bengine.alter2.value = tmpPer[i] == '' ? '-1' : tmpPer[i];
                } else if (countKind == 3) {
                    document.bengine.alter3.value = tmpPer[i] == '' ? '-1' : tmpPer[i];
                }
                
                countKind += 1;
            }
        }
        
        
        strErw = strErw.substring(0, strErw.length - 1);
        
        document.bengine.erwachsene.value = strErw;
        
        //--- Events loesen -----------------------------------------
        $(elem).find('.terminOfferPreis').unbind();
        $(elem).find('.ttTerPreisRight').unbind();
        $(elem).find('.ttTerPreisRight').unbind();
        
        //--- Preis-Div umgestalten -------------------------------------
        var strPreisBuchen = '<div class="ttTerPreisBuchenLeft">'
                           + '    <div class="ttTerPreisBuchenLeftTxt1">Angebot jetzt buchen!</div>'
                           + '    <div class="ttTerPreisBuchenLeftTxt2">Gesamtpreis EUR ' + obj.vakanz.priceAll + ',-</div>'
                           + '</div>'
                           + '<div class="ttTerPreisBuchenRight"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>'
                           + '<div class="clearBoth">&nbsp;</div>';
                           
        $(elem).find('.terminOfferPreis').html(strPreisBuchen);
        
        $(elem).css('background', '#ecf5fa');
        
        //--- Mouse-Events ----------------------------------------------
        $(elem).find('.terminOfferPreis').bind('click', function() {
            var ttCrs                       = obj.vakanz.data[17].split(';')[0] || '';
            document.bengine.CRS_CODE.value = ttCrs;
        
            pTermine.goToBooking(bookingId); // zum Buchungsformular
        });
        
        $(elem).find('.ttTerPreisBuchenRight').bind('mouseover', function() {
            this.className = 'ttTerPreisBuchenRightActive'; // Hightlighten des Buttons
        });
        
        $(elem).find('.ttTerPreisBuchenRight').bind('mouseout', function() {
            this.className = 'ttTerPreisBuchenRight'; // Hightlighten des Buttons entfernen
        });
        
        scrollTo(0, 400);
    } else {
        //--- Lisa-Video aendern ------------------------------------
        $('#ttLisaTermine').unbind();
        
        ttLisaVideo = ttLisaVideoDir + '/Suchstrecke_4_2.flv';
        
        $('#ttLisaTermine').bind('click', function() {
            ttPlayVideo(ttLisaVideo);
        });
        
        if (engine == 'erde') {
            if ((typeof(sessionLisaTerminErde2) == 'undefined' || sessionLisaTerminErde2 != '1') && sessionLisaOff != '1') {
                setTimeout(function() {
                    ttPlayVideo(ttLisaVideo);
                    sendPostRequest(pathDevAbsolute + 'booking/' + ordner_name + '/teaser/writeLisaSession.php?lisa=1&engine=' + engine, pStrecke.config.idForm);
                    
                    sessionLisaTerminErde2 = '1';
                }, 100);
            }
        } else {
            if ((typeof(sessionLisaTermin2) == 'undefined' || sessionLisaTermin2 != '1') && sessionLisaOff != '1') {
                setTimeout(function() {
                    ttPlayVideo(ttLisaVideo);
                    sendPostRequest(pathDevAbsolute + 'booking/' + ordner_name + '/teaser/writeLisaSession.php?lisa=1&engine=' + engine, pStrecke.config.idForm);
                    
                    sessionLisaTermin2 = '1';
                }, 100);
            }
        }
            
        
        
        var elemLoading = document.createElement('div');
        
        $(elemLoading).attr('class', 'terminOfferVakanzLoadingError');
        
        var strHTML  = '<div class="terminOfferVakanzLoadingBg">&nbsp;</div>'
                     + '<div class="terminOfferVakanzLoadingContent">'
                     +     '<br /><span style="background: #EFF7FA; color: #777;">' + obj.vakanz.message + '</span>'
                     //+     '<div class="terminOfferVakanzLoadingCancel" onclick="$(\'.terminOfferVakanzLoadingError\').hide(); $(\'.terminOfferVakanzLoadingContent\').hide();">Abbrechen</div>'
                     + '</div>';
            
        $(elemLoading).html(strHTML);
        $(elemLoading).appendTo(elem);
    }
    
    return;
}

/**
 * Schreibt den CRS-CODE ins hiddenfield
 */
function ttSetCrsCode(data) {
    var ttCrs                       = data.split(';')[0] || '';
    document.bengine.CRS_CODE.value = ttCrs;
}


/**
 * Zeigt alle gesammelten Angebote an
 */
var flagFlightime = new Array();

TTTerminListCustomer.writeCollectedItems = function() {
    if (pTermine.checkedTermineOk.length > 0) {
        
        var strCollectedOffer = '';
        
        for (var i = 0; i < pTermine.checkedTermineOk.length; i ++) {
            //--- Headline Reisedaten -------------------------------
            if (port == 653) {
                var elem = $('#idTerminHeaderCloned_653');
            } else {
                var elem = $('#idTerminHeaderCloned');
            }
            
            if (pTermine.checkedTermineOk.length == 1) {
                var strHeadlineCollected = 'Diese Reise ist gepr&uuml;ft und verf&uuml;gbar.';
            } else {
                var strHeadlineCollected = 'Vergleichen Sie die Angebote. Die Reisen sind gepr&uuml;ft und verf&uuml;gbar.';
            }
            
            if (i == 0) {
                $(elem).find('#ttHeadlineCollected').html(strHeadlineCollected);
            }
            
            //--- Gepruefte Angebote aufbereiten --------------------
            strCollectedOffer += '<div class="ttTerminCollectedContainer">'
                              +      '<table border="0" cellspacing="0" cellpadding="0">'
                              +          '<tr>';
            
            if (port != 653) {
                //--- Flugzeiten per AJAX ermitteln ---------------------
                var ftArr = {
                    "port"           : 654,
                    "Buchungs_ID"    : pTermine.checkedTermineOk[i].data.vakanz.bookingId,
                    "abflughafen"    : pTermine.checkedTermineOk[i].data.vakanz.data[1],
                    "zielflughafen"  : pTermine.checkedTermineOk[i].data.vakanz.data[2],
                    "veranstalter"   : pTermine.checkedTermineOk[i].data.tourOperator,
                    "KID"            : KID,
                    "detail"         : detail,
                    "personen"       : personen,
                    "url"            : url,
                    "errorMsg"       : "Es konnten keine Flugzeiten ermittelt werden.",
                    "dateString"     : "%d.%m.%g",
                    "flightString"   : " / %n / %d <br >ab: %a / %t Uhr<br>an: %A / %T Uhr",
                    "fillString"     : "<br>",
                    "outputDivId"    : "flightTimes_" + i,
                    "outputDivErrId" : "flightTimesError_" + i,
                    "debug"          : "0",
                    "templateFile"   : "\/home\/httpd\/html\/kunden_parameter\/its\/ibe_v2\/tpl\/flighttmpl.inc.php"
                }; 
                
                getFlightTimes(ftArr);
                
                strCollectedOffer +=         '<td class="ttTerminCollectedTdBorder ttTerminCollectedTdA">'
                                  +              '<div class="ttTerminCollectedHeadline" id="ttTerminCollectedHeadline_' + i + '">'
                                  +                  'Ihre vorl&auml;ufigen Flugdaten '
                                  +                  '<img src="' + imgPfad + '/info.gif" width="16" height="16" alt="" border="0" style="vertical-align: middle; cursor: pointer;" '
                                  +                      'onclick="TTTerminListCustomer.ttShowFlugdaten('
                                  +                          '\'' + pTermine.checkedTermineOk[i].data.vakanz.bookingId + '\', '
                                  +                          '\'' + pTermine.checkedTermineOk[i].data.vakanz.data[1] + '\', '
                                  +                          '\'' + pTermine.checkedTermineOk[i].data.vakanz.data[2] + '\', '
                                  +                          '\'' + pTermine.checkedTermineOk[i].data.tourOperator + '\', '
                                  +                          '\'ttTerminCollectedHeadline_' + i + '\');" '
                                  +                  '/>'
                                  +              '</div>'
                                  +              '<div class="ttTerminCollectedAfh">'
                                  +                  '<div id="flightTimes_' + i + '"><img src="' + imgPfad + '/vakanzLoader.gif" alt="" border="0" /></div>'
                                  +                  '<div id="flightTimesError_' + i + '"></div>'
                                  +              '</div>'
                                  +          '</td>';
            }
            
            strCollectedOffer +=             '<td class="ttTerminCollectedTdBorder ttTerminCollectedTdB">'
                              +                  '<div class="ttTerminCollectedTime">'
                              +                      '<div class="ttTerminCollectedHeadline">Reisezeit <span style="font-weight: normal;">/ ' + pTermine.checkedTermineOk[i].data.dauer + ' Tag' + (parseInt(pTermine.checkedTermineOk[i].data.dauer) > 1 ? 'e' : '') + '</span></div>'
                              +                      '<div class="ttTerDateLeft">Von</div>'
                              +                      '<div class="ttTerDateRightFromDay">' + pTermine.checkedTermineOk[i].data.dateFromWeekShort + '</div>'
                              +                      '<div class="ttTerDateRightFromDate">' + pTermine.checkedTermineOk[i].data.dateFromDay + '.' + pTermine.checkedTermineOk[i].data.dateFromMonth + '.' + pTermine.checkedTermineOk[i].data.dateFromYear + '</div>'
                              +                      clearBothDiv
                              +                      '<div class="ttTerDateLeft">Bis</div>'
                              +                      '<div class="ttTerDateRightToDay">' + pTermine.checkedTermineOk[i].data.dateToWeek.substring(0, 2) + '</div>'
                              +                      '<div class="ttTerDateRightToDate">' + pTermine.checkedTermineOk[i].data.dateToDay + '.' + pTermine.checkedTermineOk[i].data.dateToMonth + '.' + pTermine.checkedTermineOk[i].data.dateToYear + '</div>'
                              +                      clearBothDiv
                              +                  '</div>'
                              +              '</td>'
                              +              '<td class="ttTerminCollectedTdBorder ttTerminCollectedTdC">'
                              +                  '<div class="ttTerminCollectedLeistung">'
                              +                      '<div class="ttTerminCollectedHeadline">Leistung</div>'
                              +                      '<div class="ttTerminCollectedLeistungTxt">- ' + pTermine.checkedTermineOk[i].data.zimmer + '</div>'
                              +                      '<div class="ttTerminCollectedLeistungTxt">- ' + pTermine.checkedTermineOk[i].data.verpflegungFull + '</div>';
                              
            if (pTermine.checkedTermineOk[i].data.zusatzleistung != '') {
                strCollectedOffer +=                 '<div class="ttTerminCollectedLeistungTxt">- ' + pTermine.checkedTermineOk[i].data.zusatzleistung + '</div>';
            }
                              
            strCollectedOffer +=                '</div>'   
                              +              '</td>'
                              +              '<td class="ttTerminCollectedTd ttTerminCollectedTdD">'
                              +                  '<div class="ttTerminCollectedPreis">'
                              +                      '<div class="ttTerminCollectedHeadline">Reisepreis</div>';
                              
            var temPers   = personen.split(';');
            var countErw  = 0;
            var countKind = 0;
                
            for (var p = 0; p < pTermine.checkedTermineOk[i].data.vakanz.prices.length - 1; p ++) {
                if (pTermine.checkedTermineOk[i].data.vakanz.prices[p] != '') {
                    if (temPers[p] == '25') {
                        countErw += 1;
                        
                        var strPersonen = countErw + '. Erwachsener';
                    } else {
                        countKind += 1;
                        
                        var strPersonen = countKind + '. Kind';
                    }
                    
                    strCollectedOffer +=                 '<div class="ttTerminCollectedPreisLeft">' + strPersonen + '</div>'
                                      +                  '<div class="ttTerminCollectedPreisRight">EUR ' + pTermine.checkedTermineOk[i].data.vakanz.prices[p] + ',-</div>'
                                      +                  clearBothDiv;
                }
            }
            
            strCollectedOffer += clearBothDiv;
            
            strCollectedOffer +=                     '<div class="ttTerminCollectedPreisLeftAll">Gesamt</div>'
                              +                      '<div class="ttTerminCollectedPreisRightAll">EUR ' + pTermine.checkedTermineOk[i].data.vakanz.priceAll + ',-</div>'
                              +                      clearBothDiv
                              +                      '<div class="ttTerminCollectedZurBuchung" onclick="ttSetCrsCode(\'' + pTermine.checkedTermineOk[i].data.vakanz.data[17] + '\'); pTermine.goToBooking(\'' + pTermine.checkedTermineOk[i].data.vakanz.bookingId + '\', null, true);">&nbsp;</div>'
                              +                  '</div>'
                              +              '</td>'
                              +          '</tr>'
                              +          '<tr>';
            
            if (port != 653) {
                strCollectedOffer +=             '<td class="ttTerminCollectedTdBorder">'
                                  +                  '<div class="ttTerminCollectedAfhLink"><a href="http://cp.traveltainment.de/content_page_premium/abflughafen/mainWS.php?KID=430700&START=6&AF=' + pTermine.checkedTermineOk[i].data.airport.kuerzel + '&KeepThis=true&TB_iframe=true&height=609&width=959" class="thickbox"><img src="' + imgPfad + '/arrowRightBlue.gif" alt="" border="0" /> Flughafeninfo ' + pTermine.checkedTermineOk[i].data.airport.name + '</a></div>'
                                  +              '</td>';
            }
            
            //--- Zusammenbau der HIB-Links -------------------------
            var strVa = pTermine.checkedTermineOk[i].data.tourOperator.split('-')[0] || 'ITS';
            
            var itsSeason = getWSdate(pTermine.checkedTermineOk[i].data.dateFromTimestamp);
        
            if (itsSeason.month > 3 && itsSeason.month < 10) {
                var strItsSeason = 'S' + itsSeason.year.toString().substring(2, 4);
            } else {
                var strItsSeason = 'W' + itsSeason.year.toString().substring(2, 4);
            }
            
            var ttHasReview = pStrecke.terminHotelData.hbw.num >= 1 ? '1' : '0';
            
            var strLinkHib = 'http://www.its.de/hotelinformation/index.php?'
                           + 'marke=' + strVa
                           + '&code=' + pTermine.checkedTermineOk[i].data.hotelcodex
                           + '&saison=' + strItsSeason
                           + '&hasReview=' + ttHasReview
                           + '&KeepThis=true'
                           + '&TB_iframe=true'
                           + '&height=609'
                           + '&width=959'
            
            strCollectedOffer +=             '<td class="ttTerminCollectedTdBorder">'
                              +                  '&nbsp;'
                              +              '</td>'
                              +              '<td class="ttTerminCollectedTdBorder">'
                              +                  '<a href="' + strLinkHib + '" class="thickbox"><img src="' + imgPfad + '/arrowRightBlue.gif" alt="" border="0" /> Hotelinfo</a>'
                              +              '</td>'
                              +              '<td class="ttTerminCollectedTd">'
                              +                  '&nbsp;'
                              +              '</td>'
                              +          '</tr>'
                              +      '</table>'
                              +  '</div>';
        }
        
        $(elem).find('.ttCollectedPrice').html(strCollectedOffer);
    }
    
    $(elem).find('#ttTermineCollected').show();
    
    $(elem).find('.ttTerminCollectedHibLink').bind('mouseover', function() {
        this.style.color = '#777';
        this.innerHTML = '<img src="' + imgPfad + '/arrowRightGrey.gif" alt="" border="0" /> Hotelinfo';
    });
    
    $(elem).find('.ttTerminCollectedHibLink').bind('mouseout', function() {
        this.style.color = '#0C83B7';
        this.innerHTML = '<img src="' + imgPfad + '/arrowRightBlue.gif" alt="" border="0" /> Hotelinfo';
    });
    
    $(elem).find('.ttTerminCollectedZurBuchung').bind('mouseover', function() {
        this.className = 'ttTerminCollectedZurBuchungActive'; // Hightlighten des Buttons
    });
    
    $(elem).find('.ttTerminCollectedZurBuchung').bind('mouseout', function() {
        this.className = 'ttTerminCollectedZurBuchung'; // Hightlighten des Buttons
    });
    
    if (agent != 'noItsHeader') {
        tb_init('.ttTerminCollectedContainer a.thickbox');
    }
    
    return;
}

/**
 * Fügt ein Angebot dem Merkzettel hinzu
 */

TTTerminListCustomer.addToMkz = function(obj) {
    pStrecke.addToMerkzettel(obj);
}

/**
 * Terminliste wurde geladen
 */
var ttFlagTabReiterActive = 0;
TTTerminListCustomer.onload = function() {
    $_('ttNavHotelVisitedId').innerHTML = '<img src="/images/spacer.gif" onclick="zum_hotel(1, ' + startposition_hotel + ', \'' + pStrecke.terminRegionData.zgk + '\');" alt="" border="0" class="spacerImg2" id="ttNavHotelVisitedSpacer" title="zur&uuml;ck zu Ihrer Hotelauswahl" />';
    
    var strGruppierung = '';
        
    // Angebote sollen auf der Terminseite gruppiert werden
    if (pStrecke.config.groupByServicesAjaxTermin) {
        // Schleife über alle Reiter
        for (var i = 0; i < pStrecke.terminObjectsGroupedTabs.length; i++) {
            // neues Element zum Einfügen über der Terminliste
            var TabElem = document.createElement('div');
            // kompletter Name der Verpflegung
            var board = pStrecke.terminObjectsGroupedTabs[i].board;
            // kompletter Name des Zimmers
            var room = pStrecke.terminObjectsGroupedTabs[i].room;
            // Zusammenfassung (billigste Angebote)
            var summation = pStrecke.terminObjectsGroupedTabs[i].summation;
            // Anzeige auf dem Reiter
            
            //---  --------------------------------------------------
            if(i == ttFlagTabReiterActive) {
                var ttClassTab = 'Active';
            } else {
                var ttClassTab = '';
            }
            
            if (pStrecke.terminObjectsGroupedTabs[i].summation && pStrecke.terminObjectsGroupedTabs.length > 1) {
                /*
                strGruppierung += '<div id="ttTerTabReiter" class="ttTerTabReiter' + ttClassTab + '" '
                               +  'onclick="ttFlagTabReiterActive = ' + i + '; pTermine.showListGroupedOnAjaxTerminPage(\'\', \'\', \'true\');" '
                               +  'title="Vergleichen Sie die günstigsten Angebote aller Gruppen">'
                               +      '<div class="ttTerTabReiterLeft' + ttClassTab + (i == 0 ? 'First' : '') + '">'
                               +          spacerImg
                               +      '</div>'
                               +      '<div class="ttTerTabReiterContent' + ttClassTab + (i == 0 ? 'First' : '') + '">'
                               +          'Gruppen-<br />Vergleich'
                               +      '</div>'
                               +      '<div class="ttTerTabReiterRight' + ttClassTab + '">'
                               +          spacerImg
                               +      '</div>'
                               +  '</div>';
                
                TabElem.innerHTML = 'Vergleich';
                */
            } else {
                strGruppierung += '<div id="ttTerTabReiter_' + i + '" class="ttTerTabReiter' + ttClassTab + '" '
                               +  'onclick="ttFlagTabReiterActive = ' + i + '; pTermine.showListGroupedOnAjaxTerminPage(\'' + board + '\', \'' + room + '\', \'' + summation  + '\');" '
                               +  'title="' + room + ' - ' + pStrecke.terminObjectsGroupedTabs[i].data.verpflegungFull + '">'
                               +      '<div class="ttTerTabReiterLeft' + ttClassTab + (i == 0 ? 'First' : '') + '">'
                               +          spacerImg
                               +      '</div>'
                               +      '<div class="ttTerTabReiterContent' + ttClassTab + '' + (i == 0 ? 'First' : '') + '">'
                               +          room + ' - ' + pStrecke.terminObjectsGroupedTabs[i].data.verpflegung
                               +          '<br />ab EUR ' +pStrecke.terminObjectsGroupedTabs[i].data.price + ',-'
                               +      '</div>'
                               +      '<div class="ttTerTabReiterRight' + ttClassTab + '">'
                               +          spacerImg
                               +      '</div>'
                               +  '</div>';
                
                TabElem.innerHTML = board + ' ' + room;
            }
        }        
    }
    
    if (pStrecke.config.groupByServicesAjaxTermin) {
        // Reiter-DIV im Header der Terminseite einfügen
        strGruppierung += clearBothDiv;
        
        $('#idTerminHeaderCloned').find('.ttTerReiterContainer').html(strGruppierung);
    }
    
    if (pStrecke.objects.port == 653 || ttSwitchIbe == 1) {
        if (pStrecke.objects.port == 654) {
            var ttClassTabErde = '';
            var ttClassTabLapa = 'Aktiv';
            var ttClickErde    = ' onclick="ttSwitchToErde();"'
            var ttClickLapa    = ''
        } else {
            var ttClassTabErde = 'Aktiv';
            var ttClassTabLapa = '';
            var ttClickErde    = ''
            var ttClickLapa    = ' onclick="ttSwitchToLapa();"'
        }
        var strIbeSwitch = '<div id="ttTerTabReiter_0" class="ttTerTabReiterCCLeft' + ttClassTabErde + '"' + ttClickErde + ' title="Angebote ohne Flug">'
                         +     '<div class="ttTerTabReiterCCContent' + ttClassTabErde + '">'
                         +         'Angebote ohne Flug'
                         +     '</div>'
                         + '</div>'
                         + '<div id="ttTerTabReiter_1" class="ttTerTabReiterCCRight' + ttClassTabLapa + '"' + ttClickLapa + ' title="Angebote inklusive Flug">'
                         +     '<div class="ttTerTabReiterCCContent' + ttClassTabLapa + '">'
                         +         'Angebote inklusive Flug'
                         +     '</div>'
                         + '</div>'
                         + clearBothDiv;
        
        var headContainer = pStrecke.objects.port == 654 ? '#idTerminHeaderCloned' : '#idTerminHeaderCloned_653';
        $(headContainer).find('.ttTerReiterContainer').html(strIbeSwitch);
    }
    
    //--- Skip-Leiste darstellen ------------------------------------
    $('#idListContentNavi').html('');
    var pSkip = new TTListSkip();
    var oSkipConfig = {
        numToShow: 10
    };
    var elemSkip = pSkip.getSkipRotationExtended(oSkipConfig);
    $(elemSkip).appendTo($('#idListContentNavi'));   

    if (agent != 'noItsHeader') {
        tb_init('.ttTopTerHbw a.thickbox');
    }
}

TTTerminListCustomer.getTracking = function() {
    var sPageName = nurflug == '1' ? 'NF' : (engine == 'erde' ? 'PH' : (engine == 'pauschal' ? 'PF' : 'LM')) + ':Reisetermin_TT';
    var sChannel  = nurflug == '1' ? 'Nur Flug' : (engine == 'erde' ? 'Hotels Appartements' : (engine == 'pauschal' ? 'Pauschalreisen' : 'Lastminute')) + '_TT';
    
    var trackHTML  = '';
    // Omniture-Tracking
    trackHTML += '<!-- SiteCatalyst code version: H.14.	Copyright 1997-2007 Omniture, Inc. More info available at http://www.omniture.com -->' + "\n"
		      +  '<script type="text/javascript" language="JavaScript"><!--' + "\n"
		      +  '/* You may give each page an identifying name, server, and channel on	the next lines. */' + "\n"
		      +  's.pageName="' + sPageName + '"' + "\n"
		      +  's.server=""' + "\n"
		      +  's.channel="' + sChannel + '"' + "\n"
		      +  's.pageType=""' + "\n"
		      +  's.prop1="' + escape(pStrecke.terminHotelData.country) + '"' + "\n"
		      +  's.prop2="' + escape(pStrecke.terminHotelData.region) + '"' + "\n"
		      +  's.prop3=""' + "\n"
		      +  's.prop4=""' + "\n"
		      +  's.prop5=""' + "\n"
		      +  's.prop6=""' + "\n"
		      +  's.prop7=""' + "\n"
		      +  's.prop8="' + escape(pStrecke.terminHotelData.city) + '"' + "\n"
		      +  's.prop9=""' + "\n"
		      +  's.prop10=""' + "\n"
		      +  's.prop11="' + escape(pStrecke.terminHotelData.hotelName) + '"' + "\n"
		      +  's.prop12=""' + "\n"
		      +  's.prop13=""' + "\n"
		      +  's.prop14=""' + "\n"
		      +  's.prop15=""' + "\n"
		      +  's.prop16=""' + "\n"
		      +  's.prop17=""' + "\n"
		      +  's.prop18=""' + "\n"
		      +  's.prop19=""' + "\n"
		      +  's.prop20=""' + "\n"
		      +  '//************* DO NOT ALTER ANYTHING BELOW THIS LINE ! **************/' + "\n"
		      +  'var s_code=s.t();if(s_code)document.write(s_code)//--></script>' + "\n"
		      +  '<script type="text/javascript" language="JavaScript"><!--' + "\n"
		      +  'if(navigator.appVersion.indexOf(\'MSIE\')>=0)document.write(unescape(\'%3C\')+\'\!-\'+\'-\')' + "\n"
		      +  '//--></script><!--/DO NOT REMOVE/-->' + "\n"
		      +  '<!-- End SiteCatalyst code version: H.14. -->';

    return trackHTML;
}

/**
 * Das übergebene Element ist das erste Alternativangebot auf der angezeigten Liste
 * 
 * @param {Object} elem
 */
TTTerminListCustomer.callAlternative = function(elem) {
    var newElem = document.createElement('div');
    $(newElem).html('<div class="ttHeadline2">Alternative Angebote, die Ihren Urlaubswünschen nahe kommen.</div>'); 
    
    if (pStrecke.terminObjects[0].data.alternativTermin == '1') {
        $('#idTerminHeaderCloned' + (port == 653 ?  '_653' : '')).find('.ttHeadline3').html('Alternative Angebote, die Ihren Urlaubswünschen nahe kommen.');
    } else {
        $(newElem).insertBefore($(elem));
        $('#idTerminHeaderCloned' + (port == 653 ?  '_653' : '')).find('.ttHeadline3').html('Angebote, die zu 100% Ihren Urlaubswünschen entsprechen.');
    }
}

var ttFlagShowFlighttime = new Array();
TTTerminListCustomer.ttShowFlugdaten = function(bookingId, afh, zfh, tourOperator, item) {
    if (typeof(ttFlagShowFlighttime[bookingId]) != 'undefined' && ttFlagShowFlighttime[bookingId] == '1') {
        $_('terminFlighttimes_' + bookingId).style.display = 'block';
    } else {
        ttFlagShowFlighttime[bookingId] = '1';
        
        var strFlighString = '<div class=clearBoth><img src=/images/spacer.gif border=0 width=1 height=1 /></div>'
                           + '<div class=ttAfhInfoLeft>Datum:</div>'
                           + '<div class=ttAfhInfoRight>%d</div>'
                           + '<div class=clearBoth><img src=/images/spacer.gif border=0 width=1 height=1 /></div>'
                           + '<div class=ttAfhInfoLeft>Ab:</div>'
                           + '<div class=ttAfhInfoRight>%a (%s)</div>'
                           + '<div class=clearBoth><img src=/images/spacer.gif border=0 width=1 height=1 /></div>'
                           + '<div class=ttAfhInfoLeft>An:</div>'
                           + '<div class=ttAfhInfoRight>%A (%z)</div>'
                           + '<div class=clearBoth><img src=/images/spacer.gif border=0 width=1 height=1 /></div>'
                           + '<div class=ttAfhInfoLeft>Airline:</div>'
                           + '<div class=ttAfhInfoRight>%n (%c)</div>'
                           + '<div class=clearBoth><img src=/images/spacer.gif border=0 width=1 height=1 /></div>'
                           + '<div class=ttAfhInfoLeft>Flugnr.:</div>'
                           + '<div class=ttAfhInfoRight>%N</div>'
                           + '<div class=clearBoth><img src=/images/spacer.gif border=0 width=1 height=1 /></div>'
                           + '<div class=ttAfhInfoLeft>Abflug:</div>'
                           + '<div class=ttAfhInfoRight>%t Uhr</div>'
                           + '<div class=clearBoth><img src=/images/spacer.gif border=0 width=1 height=1 /></div>'
                           + '<div class=ttAfhInfoLeft>Ankunft:</div>'
                           + '<div class=ttAfhInfoRight>%T Uhr</div>'
                           + '<div class=clearBoth><img src=/images/spacer.gif border=0 width=1 height=1 /></div>';
        
        //--- Flugzeiten per AJAX ermitteln ---------------------
        var ftArr = {
            "port"           : 654,
            "Buchungs_ID"    : bookingId,
            "abflughafen"    : afh,
            "zielflughafen"  : zfh,
            "veranstalter"   : tourOperator,
            "KID"            : KID,
            "detail"         : detail,
            "personen"       : personen,
            "url"            : url,
            "errorMsg"       : "Es konnten keine Flugzeiten ermittelt werden.",
            "dateString"     : "%d.%m.%g",
            "flightString"   : strFlighString,
            "fillString"     : "<br>",
            "outputDivId"    : "flightTimes_" + bookingId,
            "outputDivErrId" : "flightTimesError_" + bookingId,
            "debug"          : "0",
            "templateFile"   : "\/home\/httpd\/html\/kunden_parameter\/its\/ibe_v2\/tpl\/flighttmpl.inc.php"
        }; 
        
        getFlightTimes(ftArr);
        
        strAusgabeFlugzeiten = '<div class="ttTerminFlighttimesHeadline">'
                             +     'Ihre vorl&auml;ufigen Flugdaten im &Uuml;berblick'
                             + '</div>'
                             + '<div class="ttTerminFlighttimesClose" onclick="document.getElementById(\'terminFlighttimes_' + bookingId + '\').style.display=\'none\';" title="schließen">'
                             +     'x'
                             + '</div>'
                             + clearBothDiv
                             + '<div class="ttTerminFlighttimesData">'
                             +     '<div id="flightTimes_' + bookingId + '"><img src="' + imgPfad + '/vakanzLoader.gif" alt="" border="0" /></div>'
                             +     '<div id="flightTimesError_' + bookingId + '"></div>'
                             + '</div>'
                             + '<div class="ttTerminFlighttimesTxt">'
                             +     'Wir weisen darauf hin, dass die Flugdaten der Reiseveanstalter '
                             +     'unverbindlich sind. Es gelten die mit den Reisedokumenten ausgegebenen '
                             +     'Flugpl&auml;ne und Flugzeiten der Reiseveranstalter. Auch kurzfristig'
                             +     'bleiben &Auml;nderungen der Flugzeiten, Streckenf&uuml;hrung sowie des '
                             +     'Flugger&auml;tes oder der Fluggesellschaft ausdr&uuml;cklich durch die '
                             +     'Reiseveranstalter vorbehalten. Bei besonders starker Nachfrage, beispielwseise zu '
                             +     'Ferienterminen, werden zus&auml;tzliche Kapazit&auml;ten eingerichtet. Dadurch '
                             +     'l&auml;sst es sich nicht vermeiden, dass Fl&uuml;ge auch am Abend oder als '
                             +     'Nachtflug durchgef&uuml;hrt werden. Bei mehreren angezeigten Flugpaarungen '
                             +     'werden wir versuchen, die bestmöglichen Fl&uuml;ge f&uuml;r Sie zu buchen. '
                             +     'Alternativfl&uuml;ge k&ouml;nnen gesonderte Geb&uuml;hren mit sich bringen!'
                             +     '<br /><br />'
                             +     'Bitte nehmen Sie zur Kenntnis, dass das Gewicht, die Gr&ouml;&szlig;e und Menge '
                             +     ' des aufgegebenen Gep&auml;cks (Freigep&auml;ck) sowie die Verpflegung '
                             +     'w&auml;hrend des Fluges bei den unterschiedlichen Fluggesellschaften variieren '
                             +     'k&ouml;nnen. Genaue Informationen dazu erhalten Sie bei der ausf&uuml;hrenden '
                             +     'Fluggesellschaft und / oder Ihrem Reiseveranstalter.'
                             +     '<br /><br />'
                             +     '<b>Bitte beachten Sie, dass unter Umst&auml;nden auch Flugkombinationen eingebucht '
                             +     'werden k&ouml;nnen, die obig nicht aufgef&uuml;hrt sind, da aus technischen '
                             +     'Gr&uuml;nden in seltenen F&auml;llen nicht alle m&ouml;lichen Flugkombinationen '
                             +     'hier aufgelistet werden k&ouml;nnen.</b>'
                             + '</div>'
                             + clearBothDiv;
    
        
        if($_('terminFlighttimes_' + bookingId) == null || typeof($_('terminFlighttimes_' + bookingId)) == 'undefined') {
            var offerTipDiv = document.createElement('div');
            var offerTipDiv_id = document.createAttribute('id');
            offerTipDiv_id.nodeValue = 'terminFlighttimes_' + bookingId;
            offerTipDiv.setAttributeNode(offerTipDiv_id);
            var offerTipDiv_class = document.createAttribute('class');
            offerTipDiv_class.nodeValue = 'terminFlighttimesClass';
            offerTipDiv.setAttributeNode(offerTipDiv_class);
            document.body.appendChild(offerTipDiv);
        }
        
        var strAusgabe = '';
        
        strAusgabe += '<div class="ttDiv1LT ttIePngFix"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>'
                   + '<div class="ttFlighttimeCT ttIePngFix"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>'
                   + '<div class="ttDiv1RT ttIePngFix"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>'
                   + clearBothDiv
                   + '<div class="ttDiv1LM ttIePngFix" style="height: 370px;"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>'
                   + '<div class="ttFlighttimeCM ttIePngFix" style="height: 370px;">'
                   +     '<div class="ttFlighttimeContainer">'
                   +         '<div class="ttFlighttimeBody">'
                   +             strAusgabeFlugzeiten
                   +         '</div>'
                   +     '</div>'
                   + '</div>'
                   + '<div class="ttDiv1RM ttIePngFix" style="height: 370px;"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>'
                   + clearBothDiv
                   + '<div class="ttDiv1LB ttIePngFix"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>'
                   + '<div class="ttFlighttimeCB ttIePngFix"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>'
                   + '<div class="ttDiv1RB ttIePngFix"><img src="/images/spacer.gif" alt="" border="0" width="1" height="1" /></div>'
                   + clearBothDiv;
        
        $_('terminFlighttimes_' + bookingId).innerHTML = strAusgabe;
        
        setTimeout(function() {
            var pos = getPosition($_(item));
            
            $_('terminFlighttimes_' + bookingId).style.left = (pos.x + 177) + 'px';
            $_('terminFlighttimes_' + bookingId).style.top  = (pos.y - 382) + 'px';
            
            $_('terminFlighttimes_' + bookingId).style.display = 'block';
        }, 10);
    }
}

function getWSdate(season){
    var d      = new Date();
    var wsDate = new Object();

    d.setTime(season * 1000);

    wsDate.year  = d.getFullYear();
    wsDate.month = twoDigit((d.getMonth() + 1));

    return wsDate;
}