var aTermine = [];
var aGepruefteTermine = [];
var curTermin = null;
var numResults = 0;
var cntAllTermine = 0;
sortierung = 'preis';
var startposition = 0;
var isAlt = false;
var isOpenScroll = '-1';
var activeButtons = [];
var isVto = false;
var gAjaxObj = null;
var aBookingIds = [];

function zur_suche(showresult) {
    window.location.href=uebergabe+'&showresult='+showresult;
}

function zum_hotel(showresult, startposition_hotel, zielgebiets_kenner) {
    var showMoreOptions = document.bengine.showMoreOptions.value;
    window.location.href=uebergabe+'&detail=hotel&showresult='+showresult+'&startposition='+startposition_hotel+'&zielgebiets_kenner='+zielgebiets_kenner + '&showMoreOptions=' + showMoreOptions;
}

function zum_zielgebiet() {
    window.location.href=uebergabe+'&detail=zielgebiet&showresult=1';
}

function jetzt_buchen(kenner_ba, bookingId) {
    var form = document.forms['bengine'];
    var objGep = getTerminObject(bookingId, true);
    
    if (onlineR()) {
        form.detail.value = 'buchung';
        form.vakanz.value = objGep.vakData.join('|');
        form.method = 'POST';
        var tmpParam = '';
        if (typeof(ttSwiBoo) != 'undefined' && ttSwiBoo == '1'){
            tmpParam = '&ttSwiBoo=1';
        }
        form.action=sec_cluster_url+"/booking/weg_at2/index.php?KID="+KID+tmpParam;   
        form.submit();          
    }
}

function onlineR(){
    if(document.bengine.refresh.value=='1'){
        var errStr="Sie haben Ihre Suchparameter geändert.\nBitte klicken Sie auf 'aktualisieren' zum Aktualisieren der Ergebnisliste!"
        alert(errStr);
        return false;
    }
    return true;
}

function skippen(zaehler, tmp) {
    startposition = zaehler;
    link = '../ajax/get_termindaten.ajax.php' + uebergabe.replace('index.php', '') + '&startposition='+zaehler+'&sortierung='+sortierung+'&detail=termine'+skip_and_order + '&reloadList=1&IFF=' + IFF + '&port=' + port;   
    gAjaxObj = TTAjaxRequest(link, null, null, 'reloadList');    
}

function check_eingabe(kk, bookingId) {
    if (onlineR()) {
        buchungsanfrage(kk, bookingId);
    }
}

function baResult() {
    var result = xmlReq.responseText;
    var tmp = result.split('###');
    var crs_info = '';
    var preisVorBa = '';
    var anzahlPersonen = 0;
    var tmpPreisKorrektur = tmp[2];
    
    if (result == '') {
        return;
    }
    
    if (tmp && tmp[1]) {
        var data = tmp[1].split('|');
    }
    
    /* Ergebnis bearbeiten wenn Preisunterschied zu hoch */
    var str_message_e_found = data[0].split(';');
    if (data[16]) {
        crs_info = data[16].split(';');
    }
    
    if (tmp[0] == 'ERROR') {
        curTermin.result = 'ERROR';
        curTermin.errorMsg = tmp[1];
        curTermin.errorNr = tmp[2];
        var sortierung = '';
        var skip_and_order = '';
        link = '../ajax/get_termindaten.ajax.php' + uebergabe.replace('index.php', '') + '&startposition='+startposition+'&sortierung='+sortierung+'&detail=termine'+skip_and_order + '&reloadList=1&IFF=' + IFF + '&strecke=' + detail + '&port=' + port;
        gAjaxObj = TTAjaxRequest(link, null, null, 'reloadList');
        return;
    }
    
    var sHotelAttribut = data[0].split(';');
    
    if (sHotelAttribut[4]) {
        preisVorBa = sHotelAttribut[4];
    }
    
    if (sHotelAttribut[3]) {
        anzahlPersonen = sHotelAttribut[3];
    }
    
    var isPriceDiffTooHigh = preisUnterschiedZuHoch(data[7], str_message_e_found[4], mpersonen, str_message_e_found[3], port, str_message_e_found[2], crs_info[1]);
    
    if((str_message_e_found[2] == 'TUI' && data[12]=='NX') || isPriceDiffTooHigh) {
        curTermin.result = 'ERROR';
        curTermin.errorMsg = '';
        curTermin.errorNr = '-4';
        var sortierung = '';
        var skip_and_order = '';
        link = '../ajax/get_termindaten.ajax.php' + uebergabe.replace('index.php', '') + '&startposition='+startposition+'&sortierung='+sortierung+'&detail=termine'+skip_and_order + '&reloadList=1&IFF=' + IFF + '&strecke=' + detail + '&port=' + port + '&deleteSess=' + data[10];
        gAjaxObj = TTAjaxRequest(link, null, null, 'reloadList');
        return;
    }

    if (tmp && tmp[1]) {
        initGepruefteVakanz(tmp[0], data, null, tmpPreisKorrektur);        
    }
    
    /* Scrollbalken nach oben setzen */
    var elemTmp = document.getElementById('idBoxGepruefteVakanzen');  
    if (elemTmp) {
        var pos = getPosition(elemTmp);
        window.scrollTo(0, pos.y);
    } 
    writeGepruefteVakanzen();   
}

function loadGepruefteVakanzenAfterReload(data, aPreisKorrekturen) {
    var arrData = data.split('###');
    var arrPk = aPreisKorrekturen.split('###');
    var bookingId = '';
    var tmpData = [];
    if (arrData.length > 0) {
        for (var i = 0; i < 5; i++) {
            if (arrData[i]) {
                tmpData = arrData[i].split('|');
                bookingId = tmpData[10];
                initGepruefteVakanz('SUCCESS', tmpData, bookingId, arrPk[i]);                
            }
        }
    }
    
    writeGepruefteVakanzen();
}
    
function reloadList() {
    buildObjects(xmlReq.responseText);
    refreshTerminList();
    
    /* Skip-Navigation neu aufbauen */
    var tmp = xmlReq.responseText.split('|||');
    var seiten = parseInt(tmp[1] / numResults);
    var elemSkip = document.getElementById('idSkipPages');
    var elemSkip2 = document.getElementById('idSkipPages2');
    var apage = (parseInt(startposition) + parseInt(numResults)) / numResults;
    
    if (tmp[1] % numResults) {
        seiten++;
    }    
    
    if (apage > seiten) {
        apage = 1;
    }   
    
    elemSkip.innerHTML = getHtmlSkip(seiten, apage, sortierung, true, numResults, false);     
    elemSkip2.innerHTML = getHtmlSkip(seiten, apage, sortierung, true, numResults, true);     
}
    
/* Erstellt die Termin-Objekte, die sämtliche Daten enthalten */    
function buildObjects(str, vakanzen) {
    var tmp = str.split('|||');
    var result = tmp[0].split('###');
    var arrObjects = [];
    aBookingIds = [];
    
    for (var i = 0; i < result.length; i++) {
        if (result[i] == '') {
            continue;
        }
        
        var obj = {};
        var tmp = result[i].split('|');
        
        for (var j = 0; j < tmp.length; j++) {
            var keyValues = tmp[j].split('::');
            if (keyValues[0] != undefined && keyValues[0] != '') {
                obj[keyValues[0]] = keyValues[1];
            }
        }
        
        obj.buttons = {};
        obj.buttons.liste = 'angebot_waehlen.gif';
        obj.buttons.listeGeprueft = 'angebot_gewaehlt.gif';  
        obj.buttons.error = 'nicht_verfuegbar.gif';  
        arrObjects.push(obj);
        aBookingIds.push(obj.bookingId);
    }
     
    if (vakanzen) {
        aGepruefteTermine = arrObjects;
    } else {
        aTermine = arrObjects;
    }
 }
 
function buchungsanfrage(kenner_id, bookingId) {
    var bookingIdMain = '&bookingIdMain=' + bookingId;
    var link = '';
    var obj = getTerminObject(bookingId); 
    var hotelattribute = '';
    curTermin = obj;
    hotelattribute = curTermin.ha;
    
    /* Weitere Flüge */
    if (obj.bookingId != obj.bookingIdTmp && obj.bookingIdTmp != '' && obj.bookingIdTmp != undefined) {
        bookingIdMain = '&bookingIdMain=' + obj.bookingId;
        bookingId = obj.bookingIdTmp;
        hotelattribute = obj.hotelattsMoreFlights;
    }
    
    link = vakanz.replace('vakanz_div', 'vakanz_div_ajax');
    link = link+'&ap=' + curTermin.preisEinzel + '&Buchungs_ID='+ bookingId +'&hotel_attribut='+hotelattribute + '&pfadKunde=booking/' + ordner_name + '&id=' + kenner_id + '&detail=' + detail + bookingIdMain + '&kennerStrecke=' + kennerStrecke;
    gAjaxObj = TTAjaxRequest(link, null, null, 'baResult');
}

function vakanz_abbrechen() {
    var sortierung = '';
    var skip_and_order = '';
    var zaehler = '';
    link = '../ajax/get_termindaten.ajax.php' + uebergabe.replace('index.php', '') + '&startposition='+startposition+'&sortierung='+sortierung+'&detail=termine'+skip_and_order + '&reloadList=1&IFF=' + IFF + '&port=' + port;
    gAjaxObj = TTAjaxRequest(link, null, null, 'reloadList');
}

function s_termin_tabelle(str){
    buildObjects(str);
    refreshTerminList();
}

function getVaLogo(data) {
    var tmp = data.split('-');
    var logo = tmp[1] ? KID + '-' + tmp[0] : tmp[0];
    return logo;  
}

function showLegende () {
    var elemLegende = document.getElementById('idLegende');
        
    /*if (elemLegende && isVto) {
        elemLegende.firstChild.nodeValue = '*Vtours';
    }*/    
}

function getAngebotsIcon(data, veranstalter, bookingId) {
    var va_logo = veranstalter.split('-');
    var alt_attribut = '';
    var malt_attribut = '';      
    
    switch(data) {
        case '0': break;
        case '1':
            if ((bookingId.substring(0, 3) <= 41 || va_logo[0] == 'TSYS') && port == 654) {
                alt_attribut = 'Lastminute Angebot';
                malt_attribut = 'lm';
                break;
            }
        case '2':
        case '3':
            alt_attribut = 'Frühbucherangebot';
            malt_attribut = 'fb';
            break;
        case '4':
            alt_attribut = 'Kinderermäßigung';
            malt_attribut = 'ke';
            break;
        case '5':
            if ((bookingId.substring(0, 3) <= 41 || va_logo[0] == 'TSYS') && port == 654) {
                alt_attribut = 'Lastminute Angebot<br />Kinderermäßigung';
                malt_attribut = 'lm_ke';
            }
            
            break;
        case '6':
        case '7':
            alt_attribut = 'Frühbucherangebot<br />Kinderermäßigung';
            malt_attribut = 'fb_ke';
            break;
    }   
    
    return new Array(alt_attribut, malt_attribut); ; 
}

function getHtmlTerminListRow(obj, type, dataGeprueft, contentId) {
    var preis = obj.preisEinzel;
    var wsDate = getWSdate(obj.datum);
    var elemLegende = btnWeitereFluege = htmlBgTop = hiButton = classAlt = '';
    var htmlFlughafenInfos = htmlAbreise = html = htmlError = onclickPreis = vaName = '';
    var classPreis = 'tt_terLRPreis';
    var elemHlGeprueft = document.getElementById('idGepHl');
    var htmlZusatzleistung = '';
    var htmlHlReisende = '';
    
    if (contentId == undefined && contentId == null) {
        contentId = obj.nr;
    }
    
    var aLogo = obj.haVeranstalter.split('-');
    vaName = aLogo[1] ? aLogo[0] : obj.haVeranstalter;
    isVto = vaName == 'VTO' ? true : false;
    var foundTermin = findTermin(obj.bookingId, aGepruefteTermine);  
    
    /* Flughafen-Button anzeigen */
    if (obj.ahStatus&1 && type == 'LIST') {
        var func = 'navigate(\'idContent=' + contentId + '&time=' + wsDate + '&VA=' + vaName + '&DLC=' + obj.ahKuerzel + '\',\'scrollContentAfh_' + contentId + '\',\'\',\'reqAfhInfo\');';
        htmlFlughafenInfos = 
            '<div id=\'scrollTitleAfh_' + contentId + '\' class=\'tt_terLRFH\' type=\'afh\'>' + 
                getHtmlButton('afh', contentId, func) + 
            '</div>';
    }
    
    /* Obere Ansicht der geprüften Angebote */
    if (type == 'GEPRUEFT') {
        elemHlGeprueft.style.display = 'block';
        preis = obj.preisGesamt;
        classLR = 'tt_terGepLR';   
        classPreis = 'tt_terLRPreisGep';       
        htmlHlReisende = '<div class="tt_terGepHlReisende">alle Reisenden:</div>'; 
        onclickPreis = 'onclick="jetzt_buchen(null, \'' + obj.bookingId + '\');"';
        htmlAbreise = 
            '<div class=\'tt_terLRC2Abreise\'>Rückreise</div>' +
            '<div>' + obj.abreiseWeek + ', ' + obj.abreiseDay + '.' + obj.abreiseMonth + '.' + '</div>';
    } else {
        if (foundTermin) {
            var gepObj = getTerminObject(obj.bookingId, true);
            preis = '<span class="tt_terListPriceHl">Gesamtpreis für alle Reisenden:</span>' + gepObj.preisGesamt;
            onclickPreis = 'onclick="jetzt_buchen(null, \'' + gepObj.bookingId + '\');"';
        } else {
            onclickPreis = 
                'onclick="javascript:showWait(this, null, \'' + obj.bookingId + '\');check_eingabe(\'' + obj.nr + '\', \'' + obj.bookingId + '\');"';            
        }
        
        classLR = 'tt_terLR';  
        func = 'navigate(\'idContent=' + contentId + '&time=' + wsDate + '&VA=' + vaName + '&CRS_CODE=' + obj.hotelcodex + '&hideVA=1&programType=' + obj.programmart + '&travelType=' + obj.reiseart + '&roomCode=' + obj.zimmercodex + '&IFF=' + obj.iff + '\',\'scrollContent_' + contentId + '\',\'\',\'reqAllHbs\');';
        funcMf = 'navigate(\'idContent=' + contentId + '&time=' + wsDate + '&VA=' + vaName + '&CRS_CODE=' + obj.hotelcodex + '&hideVA=1&programType=' + obj.programmart + '&travelType=' + obj.reiseart + '&personen=' + obj.personen + '&IFF=' + obj.iff + '&port=' + port + '&bookingId=' + obj.bookingId + '&datum=' + obj.datum + '&dauer=' + obj.dauer + '&abflughafen=' + obj.ahKuerzel + '&zielgebiets_kenner=' + getData['zielgebiets_kenner'] + '&sportmoeglichkeiten=' + getData['sportmoeglichkeiten'] + '&reiseziel=' + getData['reiseziel'] + '&formatierung=' + getData['formatierung'] + '&hotelcodex=' + obj.hotelcodex + '&reiseart=' + obj.reiseart + '&zimmercodex=' + obj.zimmercodex + '&programmart=' + obj.programmart + '\',\'scrollContentMf_' + contentId + '\',\'\',\'reqMf\');';
//        htmlBgTop = 
//            '<div id=\'idListBgTop_' + contentId + '\' style=\'visibility:hidden\'>' + 
//                '<div class=\'floatLeft\'><img src=\'' + imgPfad + '/ecke_grau_ol.gif\'></div>' +
//                '<div class=\'tt_terListBgCenter\'><img src=\'' + imgPfad + '/spacer.gif\'></div>' +
//                '<div class=\'floatLeft\'><img src=\'' + imgPfad + '/ecke_grau_or.gif\'></div>' + 
//                '<div class=\'tt_terClearBoth\'><img src=\'' + imgPfad + '/spacer.gif\'></div>' + 
//            '</div>';
        hiButton =                 
            '<div id=\'scrollTitle_' + contentId + '\' class=\'tt_terLRHI\' type=\'his\'>' + 
                getHtmlButton('his', contentId, func) + 
            '</div>';
         
        if (aLogo[1] != '' && aLogo[1] != undefined && in_array(obj.bookingId, aBookingIds)) {
            btnWeitereFluege =                 
                '<div id=\'scrollTitleMf_' + contentId + '\' class=\'tt_terLRMF\' type=\'mf\'>' + 
                    getHtmlButton('mf', contentId, funcMf) + 
                '</div>';                  
        }
    }
    
    if (obj.result == 'ERROR') {
        var errorText = '';
        
        if (vakErrorTexte != '') {
            var tmpErrorText = vakErrorTexte.split('###');
            
            for (var iTmp in tmpErrorText) {
                var aTmpError = tmpErrorText[iTmp].split('||');
                
                if (aTmpError[0] == obj.errorNr) {
                    errorText = aTmpError[1];
                    break;
                }
            }
        } else {
            errorText = obj.errorMsg;
        }
        
        onclickPreis = '';
        classPreis = 'tt_terLRPreisNoLink';
        htmlError = '<div class="tt_error_msg">' + errorText.replace('<br>', '&nbsp;') + '</div><div class=\'tt_terClearBoth\'><img src=\'' + imgPfad + '/spacer.gif\'></div>';
    }
    
    var dauer = obj.dauer == 1 ? obj.dauer + ' Tag' : obj.dauer + ' Tage';
    var tmpAngebot = getAngebotsIcon(obj.icon, obj.veranstalter, obj.bookingId);
    
    if (tmpAngebot[0] != '') {
        tmpAngebot[0] = '<br>' + tmpAngebot[0];
    }
    
    /* Alternative Termine */
    if (obj.alternativTermin == '0') {
        isAlt = true;
    }
    else {
        classAlt = '';
        
        if (isAlt) {
            isAlt = false;
            var tmpElem = document.getElementById('idTermineListeHl');
            html += '<div class=\'tt_terLHlImg\'>Alternative Angebote</div>';
        }        
    }
    
    if (obj.zusatzleistung != '') {
        htmlZusatzleistung = '<br>' + obj.zusatzleistung;
    }
    
    //---Angebote mit besonderen Transfers
    var strTransferText = "";
    if (obj.haFilter > 0) {
        var transferTextArr = new Array();
        if (obj.haFilter & 512){
            transferTextArr.push("Ohne Transfer");
        }
        if (obj.haFilter & 2) {
            transferTextArr.push("Zug zum Flug");
        }
        if (obj.haFilter & 1) {
            transferTextArr.push("inkl. Mietwagen");
        }
        strTransferText = '<br/>' + transferTextArr.join('<br/>');
    }
    
    /* Hauptgerüst einer Listen-Zeile (und auch Zeile für geprüfte Angebote) */
    html += 
        htmlBgTop +
        htmlError +
        '<div isActive=\'0\' class=\'' + classLR + classAlt + '\' id=\'scrollLine_' + contentId + '\' onmouseover="highlightBox(this, true, \'' + contentId + '\', \'' + type + '\');" onmouseout="highlightBox(this, false, \'' + contentId + '\', \'' + type + '\');" isAlt=\'' + isAlt + '\'>' +
            '<div class=\'tt_terLRC1\'>' + 
                obj.ahName + htmlFlughafenInfos +
            '</div>' +
            '<div class=\'tt_terLRC2\' id=\'idHinreise_' + contentId + '\'>' +
                obj.anreiseWeek + ', ' + obj.anreiseDay + '.' + obj.anreiseMonth + '.' + 
                htmlAbreise + btnWeitereFluege +
            '</div>' +
            '<div class=\'tt_terLRC3\' id=\'idDauer_' + contentId + '\'>' + dauer + '</div>' +
            '<div class=\'tt_terLRC4\'>' + obj.zimmer + ',<br>' + getvf(obj.haVerpflegung) + htmlZusatzleistung + tmpAngebot[0] + strTransferText + '</div>' +
            '<div class=\'tt_terLRC5\'>' +
                '<div class=\'tt_terLRLogo\'>' +
                    '<img ' + 
                        'src="' + imgservPfad + '/images/content/va_logos/small/' + getVaLogo(obj.haVeranstalter) + '.gif"' +
                        'border="0" width="75" height="21" ' +
                        'style="margin-bottom:2px;"' +
                    '>' + 
                '</div>' +
               hiButton +               
            '</div>' +
            '<div class=\'tt_terLRC6\' id=\'idTerRowPrice_' + contentId + '\'>' + htmlHlReisende +
                '<div class=\'' + classPreis + '\' ' + onclickPreis + '>' + preis + ',- &euro;</div>';
     
    /* Prüfen-Button anzeigen wenn Listen-Termin */   
    if (type == 'LIST') {   
        var btnName = foundTermin ? obj.buttons.listeGeprueft : obj.buttons.liste;
        var onclick = '';
        var className = foundTermin ? 'tt_terLRBtn' : 'tt_terLRBtn';
        
        if (obj.result == 'ERROR') {
            btnName = obj.buttons.error;
            foundTermin = true;
            className = 'tt_terLRBtnNo';
        } else {
            onclick = foundTermin ? 'jetzt_buchen(null, \'' + obj.bookingId + '\');' : 'showWait(this, null, \'' + obj.bookingId + '\');check_eingabe(\'' + obj.nr + '\', \'' + obj.bookingId + '\')';
        }
        
        html = html +
                '<div onclick="' + onclick + '" class=\'' + className + '\'>' +
                    '<img src=\'' + imgPfad + '/' + btnName + '\' alt=\'prüfen\' />' +
                '</div></div>';
    } else {
        html += '</div><div class=\'tt_terClearBoth\'><img src=\'' + imgPfad + '/spacer.gif\'></div>' + getHtmlTerminGepruefteVakanzFooter(obj, dataGeprueft, contentId);        
    }
    
    /* Scroll-Divs */
    html = html + '<div class=\'tt_terClearBoth\'><img src=\'' + imgPfad + '/spacer.gif\'></div></div>';
    html = html + '<div id=\'scrollContent_' + contentId + '\' class=\'tt_boxContent\'></div>';
    html = html + '<div id="scrollContentBottom_' + contentId + '" class="boxContentBottom"><div id="scrollCloseLink_' + contentId + '" class="arrowUpLink"></div></div>';
    html = html + '<div id=\'scrollContentAfh_' + contentId + '\' class=\'tt_boxContent\'></div>';
    html = html + '<div id="scrollContentBottomAfh_' + contentId + '" class="boxContentBottom"><div id="scrollCloseLinkAfh_' + contentId + '" class="arrowUpLink"></div></div>';
    html = html + '<div id=\'scrollContentMf_' + contentId + '\' class=\'tt_boxContent\'></div>';
    html = html + '<div id="scrollContentBottomMf_' + contentId + '" class="boxContentBottom"><div id="scrollCloseLinkMf_' + contentId + '" class="arrowUpLink"></div></div>';
    html = html + '<div id=\'scrollContentFz_' + contentId + '\' class=\'tt_boxContent\'></div>';
    html = html + '<div id="scrollContentBottomFz_' + contentId + '" class="boxContentBottom"><div id="scrollCloseLinkFz_' + contentId + '" class="arrowUpLink"></div></div>'; 
   
    /* unterer Rahmen für Highlighting */     
//    html += 
//        '<div class=\'tt_terClearBoth\'><img src=\'' + imgPfad + '/spacer.gif\'></div></div>' +
//        '<div id=\'idListBgBottom_' + contentId + '\' style=\'visibility:hidden\'>' + 
//            '<div class=\'floatLeft\'><img src=\'' + imgPfad + '/ecke_grau_ul.gif\'></div>' +
//            '<div class=\'tt_terListBgCenter\'><img src=\'' + imgPfad + '/spacer.gif\'></div>' +
//            '<div class=\'floatLeft\'><img src=\'' + imgPfad + '/ecke_grau_ur.gif\'></div>' + 
//            '<div class=\'tt_terClearBoth\'><img src=\'' + imgPfad + '/spacer.gif\'></div>' +
//        '</div>';   
    
    return html;
}

function initGepruefteVakanz(result, data, bookingId, tmpPreisKorrektur) {
    var statusGepVak = true;
    if (bookingId == null) {
        var bookingId = data[10];
        statusGepVak = false;
    }
    
    var preisKorrektur = tmpPreisKorrektur;
    var tmp = data[7];
    var hotel_attribut = data[0];
    var tmp_var_2 = hotel_attribut.split(';');
    var tmpPreis = tmp.split(';');
    var preisGesamt = tmpPreis[tmp_var_2[3]];
    var obj = getTerminObject(bookingId, statusGepVak);
    
    /* Wenn das Objekt der geprüften Vakanz nicht gefunden wird (weil nicht in Liste vorhanden -> weiterer Flug),
     * dann hole das Haupt-Objekt (HauptTermin) und kopiere dieses
     */
    if (!obj.bookingId) {
        for (var i in aTermine) {
            if (aTermine[i].bookingIdTmp == bookingId) {
                for (var j in aTermine[i]) {
                    obj[j] = aTermine[i][j];
                }
                
                obj.bookingId = bookingId;
                aTermine[i].bookingIdTmp = '';
            }
        }
    }
    
    if (!obj.bookingId || obj.bookingId == undefined) {
        return;
    }
    
    obj.preisGesamt = preisGesamt;
    obj.result = result;
    obj.preisKorrektur = preisKorrektur;
    obj.tmpPreisKorrektur = tmpPreisKorrektur;
    obj.vakData = data;   
    obj.bookingId = bookingId;
    
    if (!statusGepVak) {
        var foundTermin = false;
        for (var j in aGepruefteTermine) {
            if (aGepruefteTermine[j].bookingId == obj.bookingId) {
                aGepruefteTermine[j] = obj;
                foundTermin = true;
            }
        }
        
        if (!foundTermin) {
            aGepruefteTermine.unshift(obj);
        }
    }
    
    if (aGepruefteTermine.length > 5) {
        aGepruefteTermine.pop();
    }
}

function writeGepruefteVakanzen () {
    var elemBoxGepruefteVakanzen = document.getElementById('idBoxGepruefteVakanzen');
    var elemNewGepruefteVakanz;
    var html;
    var sortedGepTermine = [];
    
    elemBoxGepruefteVakanzen.innerHTML = '';
    refreshTerminList();
    
    for (var i = 0; i < aGepruefteTermine.length; i++) {
        elemNewGepruefteVakanz = document.createElement('div');
        html = 
            getHtmlTerminGepruefteVakanzHeader(aGepruefteTermine[i].result, aGepruefteTermine[i].vakData, aGepruefteTermine[i], parseInt(i) + 100) +
            getHtmlTerminListRow(aGepruefteTermine[i], 'GEPRUEFT', aGepruefteTermine[i].vakData, parseInt(i) + 100);
        elemNewGepruefteVakanz.innerHTML = html;
        elemBoxGepruefteVakanzen.appendChild(elemNewGepruefteVakanz);   
        
        aktOpenBoxId = -1;
        initSingleBox(parseInt(i) + 100, 'termine');    
    }
}

function getTerminObject(bookingId, vakanzen) {
    retObj = {};
    
    if (vakanzen) {
        for (i in aGepruefteTermine) {
            if (aGepruefteTermine[i].bookingId == bookingId) {
                retObj = aGepruefteTermine[i];
            }
        }
    } else {
        for (i in aTermine) {
            if (aTermine[i].bookingId == bookingId) {
                retObj = aTermine[i];
            }
        }
    }
    
    return retObj;
}

function getHtmlTerminGepruefteVakanzHeader(result, data, obj, contentId) {
    var msg = '';
    var color = '#04AE00';
    var classHaken = '';
    
    if (obj.preisKorrektur != '1' && obj.vakData) {
        obj.preisKorrektur = obj.tmpPreisKorrektur;
    }
    
    if (result != 'SUCCESS') {
        msg = 'Leider war schon jemand schneller. Der Preis für dieses Angebot ist ';
        msg += 'nicht mehr verfügbar. Sie sehen nun den günstigsten, noch ';
        msg += 'verfügbaren Preis für Ihre Reise';
    }
    else if (obj.preisKorrektur == '1') {
        msg = 'Leider war schon jemand schneller. Der Preis für dieses Angebot ist nicht mehr verfügbar. Sie sehen nun den günstigsten, noch verfügbaren Preis für Ihre Reise.';
        color = '#04AE00';
    }    
    else if (obj.preisKorrektur == '2') {
        msg = 'Sie haben Glück! Ihre ausgewählte Reise ist kurzfristig günstiger geworden. Buchen Sie schnell und nutzen Sie diesen Vorteil.';
        color = '#04AE00';
    }     
    else if (data[9] == '-1') {
        msg = 'Prüfung auf freie Plätze und Ermittlung des Reisepreises nicht möglich.';
        color = '#EB8F00';
    }
    else {
        msg = data[12] == 'BQ' ? 
            'Die von Ihnen ausgewählte Reise ist auf Anfrage buchbar!' : 
            'Diese Reise ist noch frei - es sind noch Restplätze verfügbar';
            
        classHaken = data[12] == 'BQ' ? 
            '' : 
            ' tt_terHakenGruen';
    }
    
    var html =
        '<div class=\'tt_terListBgCenter\'></div>' +
        '<div class=\'tt_terClearBoth\'><img src=\'' + imgPfad + '/spacer.gif\'></div>' +
        '<div id=\'idTerGepMsgTop_' + contentId + '\' class=\'tt_terVGTop\'>' +
            '<div class=\'tt_terVGTopLeft' + classHaken + '\'>' +
                '<div style=\'width:580px; padding:5px; color: ' + color + '\'>' + msg + '</div>' +
                '<div class=\'tt_terClearBoth\'><img src=\'' + imgPfad + '/spacer.gif\'></div>' + 
            '</div>' +
            '<div class=\'tt_terVGTopRight\'>' +
                '<img src=\'' + imgPfad + '/schliessen_klein.gif\' onclick="closeTermin(\'' + obj.bookingId + '\', this);">' +
            '</div>' +            
        '</div>' + 
        '<div class=\'tt_terVG\'>' +
            '<div class=\'tt_terVG1\'>Abflughafen</div>' +
            '<div class=\'tt_terVG2\'>Hinreise</div>' +
            '<div class=\'tt_terVG3\'>Dauer</div>' +
            '<div class=\'tt_terVG4\'>Leistung</div>' +
            '<div class=\'tt_terVG5\'>Veranstalter</div>' +
            '<div class=\'tt_terVG6\'>Gesamtpreis für</div>' +     
            '<div class=\'tt_terClearBoth\'><img src=\'' + imgPfad + '/spacer.gif\'></div>' +                                                       
        '</div>';
        
    return html;
}
function openMerkzettel() {
    var ttMerkWin = window.open('teaser/merkzettel/merkzettel.php?KID=' + KID + '&agent=', 'merkzettelWegde', 'dependent=yes,menubar=no,scrollbars=yes,resizable=yes,status=no,toolbar=no,top=100,left=100,width=750,height=720');
}
function setMerkzettel(mMerkActType, mMerkParam) {
    link = 'teaser/merkzettel/merkzettel.php?merkActionType=' + mMerkActType + mMerkParam;
    gAjaxObj = TTAjaxRequest(link, null, null, doOpenMerkzettel(link));
    
}
function doOpenMerkzettel (link) {
    setTimeout('openMerkzettel("' + link + '")', 200);
}

function getHtmlTerminGepruefteVakanzFooter(obj, data, contentId) {    
    var tmp = obj.haVeranstalter.split('-');
    var vaName = tmp[1] ? tmp[0] : obj.haVeranstalter;
    
    if (obj.vakData) {
        var bId = obj.bookingIdNew != '' ? obj.bookingIdNew : obj.bookingId;
        var func = 'navigate(\'idContent=' + contentId + '&time=' + getWSdate(obj.datum) + '&VA=' + vaName + '&DLC=' + obj.ahKuerzel + '\',\'scrollContentAfh_' + contentId + '\',\'\',\'reqAfhInfo\');';
        var funcHi = 'navigate(\'idContent=' + contentId + '&time=' + getWSdate(obj.datum) + '&VA=' + vaName + '&CRS_CODE=' + obj.hotelcodex + '&hideVA=1&programType=' + obj.programmart + '&travelType=' + obj.reiseart + '&roomCode=' + obj.zimmercodex + '&IFF=' + obj.iff + '\',\'scrollContent_' + contentId + '\',\'\',\'reqAllHbs\');';
        var funcFz = 'navigate(\'idContent=' + contentId + '&port=' + port + '&fhStart=' + obj.ahKuerzel + '&fhZiel=' + obj.vakData[2] + '&Buchungs_ID=' + obj.bookingId + '&veranstalter=' + vaName + '&personen=' + obj.personen + '&detail=termine\',\'scrollContentFz_' + contentId + '\',\'\',\'reqFZ\');';
        // --- Merkzettel Uebergabe Termin --------------------------------------------
        var anreiseData = obj.anreiseWeek + ',' + obj.anreiseDay + '.' + obj.anreiseMonth;        
        var abreiseData = obj.abreiseWeek + ',' + obj.abreiseDay + '.' + obj.abreiseMonth;
        // --- Gesamtpreis Berechnung ---
        var tmp = data[7];
        var hotel_attribut = data[0];
        var tmp_var_2 = hotel_attribut.split(';');        
        var tmpPreis = tmp.split(';');
        var preisGesamt = tmpPreis[tmp_var_2[3]];
        
        var strMerklink = str_merklink
                        + '&mveranstalter_lang=' + escape(obj.viewVeranstalter)
                        + '&buchid=' + obj.bookingId
                        + '&VA=' + vaName
                        + '&programType=' + escape(obj.programmart)
                        + '&travelType=' + escape(obj.reiseart)
                        + '&anreise=' + anreiseData
                        + '&abreise=' + abreiseData
                        + '&dauer=' + obj.dauer
                        + '&afh=' + escape(obj.ahName)
                        + '&fhStart=' + obj.ahKuerzel
                        + '&fhZiel=' + obj.vakData[2]
                        + '&engine=' + engine
                        + '&zusatzleistung=' + escape(obj.zusatzleistung)
                        + '&verpflegung=' + escape(obj.haVerpflegung)
                        + '&mgesamtpreis=' + preisGesamt
                        + '&zimmer=' + escape(obj.zimmer)
                        + '&season=' + getWSdate(obj.datum)
                        + '&mhin_termin=' + obj.datum;
                        
        var funcMkz = 'setMerkzettel(\'ajaSetMerkTermin\', \'' + strMerklink + '\');';
        
        var html =
            '<div class=\'tt_terVGBottom\'>' +
                '<div class=\'tt_terVGBottomC1\' id=\'scrollTitleAfh_' + contentId + '\' type=\'afh\'>' + getHtmlButton('afh', contentId, func) + '</div>' +
                '<div class=\'tt_terVGBottomC2\' id=\'scrollTitleFz_' + contentId + '\' type=\'fz\'>' + getHtmlButton('fz', contentId, funcFz) + '</div>' +
                '<div class=\'tt_terVGBottomC3\' id=\'scrollTitle_' + contentId + '\' type=\'hi\'>' + getHtmlButton('hi', contentId, funcHi) + '</div>' +
                '<div class=\'tt_terVGBottomC4\' id=\'scrollTitleMkz_' + contentId + '\' type=\'mkz\'>' + getHtmlButton('mkz', contentId, funcMkz) + '</div>' +
                '<div class=\'tt_terVGBottomC5\'><img src=\'' + imgPfad + '/zur_buchung.gif\' onclick="jetzt_buchen(\'' + contentId + '\', \'' + obj.bookingId + '\')"></div>' +
            '</div>';
            
        return html;        
    }
}

function refreshTerminList() {
    var html = '';
    var elemTerminList = document.getElementById('idTerminList');
    var elem = document.getElementById('idTerminListHlLabel');
    var counter = 0;
    
    if (!elem) {
        return;
    }    
    
    /* Wenn nur alternative Angebote vorhanden sind, dann ändere den Header */  
    if (aTermine.length > 0) {
        elem.firstChild.nodeValue = aTermine[0].alternativTermin == '1' ?
            'Alternative Angebote' :
            'Mögliche Abflughäfen und Termine für Ihre Reise';        
    }  
        
    for (var i in aTermine) {
        aTermine[i].nr = counter;
        
        if (counter < 10) {
            /* Fehlerfall anzeigen */
            if (curTermin != null && curTermin.result == 'ERROR' && curTermin.nr == aTermine[i].nr) {
                html += getHtmlTerminListRow(curTermin, 'LIST');
                counter++;
                curTermin.result = 'ERROR_CHECKED';
            }
            
            if (curTermin != null && curTermin.result == 'ERROR_CHECKED' && curTermin.bookingId == aTermine[i].bookingId) {
                continue;
            }        
            
            aTermine[i].nr = counter;
            html += getHtmlTerminListRow(aTermine[i], 'LIST');
            counter++;            
        }
    }
    
    if (counter == 0) {
        html = '<div class="tt_errorBox">Zu Ihren W&uuml;nschen k&ouml;nnen wir Ihnen leider keine Angebote oder Alternativen vorschlagen.<div>';
    }
    
    elemTerminList.innerHTML = html;
    setTimeout('initBoxes()', 100);
}

function findTermin(bookingId, objects) {
    for (i in objects) {
        if (objects[i] != null && objects[i].bookingId == bookingId) {
            return true;
        }
    }
    
    return false;
}

function closeTermin(bookingId, elem) {
    var elemParent = elem.parentNode.parentNode.parentNode;
    var elemHlGeprueft = document.getElementById('idGepHl');
    var elemGepVak = document.getElementById('idBoxGepruefteVakanzen');
    var newArr = [];
    
    for (var i in aGepruefteTermine) {
        if (aGepruefteTermine[i].bookingId != bookingId) {
            newArr.push(aGepruefteTermine[i]);
        }
    }    
    
    aGepruefteTermine = new Array().concat(newArr);
    refreshTerminList(); 
    elemParent.parentNode.removeChild(elemParent);
    
    if (elemGepVak.innerHTML == '') {
        elemHlGeprueft.style.display = 'none';
    }
    
    link = vakanz.replace('vakanz_div', 'vakanz_div_ajax');
    link = '../' + ordner_name + '/ba_submit_ajax?action=clearTermin&Buchungs_ID=' + bookingId;
    gAjaxObj = TTAjaxRequest(link, null, null, '');    
}

function showWait(elem, isMoreFlights, bookingId) {
    if (document.bengine.refresh.value != '1') {
        var elemParent = elem.parentNode.parentNode;
        
        if (isMoreFlights) {
            var classBox = 'tt_waitBoxShort';              
            var classImg = 'tt_waitBoxImgShort';   
            var elemMain = elem.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
            var curHeight = parseInt(elemMain.style.height);
            elemMain.style.height = (curHeight + 40) + 'px';
            elem.parentNode.parentNode.style.height = '60px';
        } else {
            var classBox = 'tt_waitBox';              
            var classImg = 'tt_waitBoxImg';              
        }
        
        elemParent.innerHTML = 
            '<div><div style="display:none">' + elemParent.innerHTML + '</div>' + 
            '<div class="' + classBox + '">' + 
                '<img src=\'' + imgPfad + '/balken_bitte_warten.gif\' class="' + classImg + '" />' + 
                '<img src=\'' + imgPfad + '/angebot_pruefen.gif\' class="tt_waitBoxButton" onclick="cancelBaRequest(this, \'' + bookingId + '\', ' + isMoreFlights + ');" />' + 
                '<div class=\'tt_terClearBoth\'><img src=\'' + imgPfad + '/spacer.gif\'></div>' + 
            '</div>';
    }
}

function getHtmlSkip(seiten, apage, sortierung, ajax, ergebnisse, topSkip) {
    var html = '';
    var countSkip = 1;
    var skpipLink;
    numResults = ergebnisse;
    
    var postFix = topSkip ? '_top' : '';
    
    for (t = 1; t <= seiten; t++) {
        zaehler = (t - 1) * 10;
        
        if (t == 1) {
            html += apage - 2 < 0 ? 
               '<div class="tt_SkipBox' + postFix + '">&lt;</div>' : 
               '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen('+((apage - 2 < 0 ? '0' : apage - 2) * 10)+',\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '">&lt;</a></div>';
        }
    
        if (seiten <= 6) {
            html += t != apage ? 
                '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen('+zaehler+',\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '" title="Angebote der Seite '+t+' abrufen">'+t+'</a></div>' :
                '<div class="tt_SkipBoxActive' + postFix + '"><span class="tt_SkipActive">'+t+'</span></div>';
        } else {
            if (apage <= 4 && t <= 4) {
                html += t != apage ?
                    '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen('+zaehler+',\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '" title="Angebote der Seite '+t+' abrufen">'+t+'</a></div>' :
                    '<div class="tt_SkipBoxActive' + postFix + '"><span class="tt_SkipActive">'+t+'</span></div>';               
                
                if (t == 4) {
                    if (t + 4 < seiten) {
                        html += '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen(40,\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '">...</a></div>';
                    }
                    
                    html += '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen('+((seiten - 1) * 10)+',\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '">'+(seiten)+'</a></div>';
                }
            } else if (apage > 4 && apage <= 8 && t > 4 && t <= 8) {
                if(t != apage){
                    html += '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen('+zaehler+',\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '" title="Angebote der Seite '+t+' abrufen">'+t+'</a></div>';
                } else{
                    html += '<div class="tt_SkipBoxActive' + postFix + '"><span class="tt_SkipActive">'+t+'</span></div>';
                }
                if (t == 8) {
                    if (t + 4 < seiten) {
                        html += '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen(80,\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '">...</a></div>';
                    }
                    html += '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen('+((seiten - 1) * 10)+',\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '">'+(seiten)+'</a></div>';
                }
            } else if (apage > 8 && apage <= 12 && t > 8 && t <= 12) {
                if (t == 9) {
                    html += '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen(0,\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '">1</a></div>';
                    html += '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen(40,\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '">...</a></div>';
                }
                if(t != apage){
                    html += '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen('+zaehler+',\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '" title="Angebote der Seite '+t+' abrufen">'+t+'</a></div>';
                } else{
                    html += '<div class="tt_SkipBoxActive' + postFix + '"><span class="tt_SkipActive">'+t+'</span></div>';
                }
            } else if (apage > 12 && apage <= 15 && t > 12 && t <= 15) {
                if (t == 13) {
                    html += '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen(0,\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '">1</a></div>';
                    html += '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen(80,\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '">...</a></div>';
                }
                
                html += t != apage ?
                    '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen('+zaehler+',\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '" title="Angebote der Seite '+t+' abrufen">'+t+'</a></div>' :
                    '<div class="tt_SkipBoxActive' + postFix + '"><span class="tt_SkipActive">'+t+'</span></div>';
            }
        }
    }
        
    if (apage * 10 < seiten * 10) {
        html += '<div class="tt_SkipBox' + postFix + '"><a href="javascript:skippen('+(apage * 10)+',\''+sortierung+'\');" class="tt_SkipLinkB' + postFix + '">&gt;</a></div>';
    } else {
        html += '<div class="tt_SkipBox' + postFix + '">&gt;</div>';
    }
    
    if (ajax) {
        return html;
    } else {
        document.write(html);
    }  
}

function sortTerminList(elem, type) {
    var children = elem.parentNode.childNodes;
    sortierung = type;
    
    for (var i = 0; i < children.length; i++) {
        if (children[i].nodeName == 'DIV' && children[i].getAttribute('hasLink') == '1') {
            children[i].style.backgroundImage = 'url(\'/kunden_parameter/weg_at2/ibe_v2/images/auswahlbox_altern.gif\')';
        }
    }
    
    elem.style.backgroundImage = 'url(\'/kunden_parameter/weg_at2/ibe_v2/images/auswahlbox_altern_aktiv.gif\')';
    link = '../ajax/get_termindaten.ajax.php' + uebergabe.replace('index.php', '') + '&startposition='+startposition+'&sortierung='+type+'&detail=termine'+skip_and_order + '&reloadList=1&IFF=' + IFF + '&port=' + port;
    gAjaxObj = TTAjaxRequest(link, null, null, 'reloadList');  
}

function highlightBox(elem, status, id, rowType) {
    highlightAllButtonsInRow(id, status);
    
    if (id >= 100) {
        return;
    }
    
    if (elem == null) {
        elem = document.getElementById('scrollLine_' + id);
    }
    
    /// Alternative Klasse ?! Dann entsprechend handeln...
    var tmpIsAlt = elem.getAttribute('isAlt') != 'true' ? true : false;        
    var oldClass = tmpIsAlt ? 'tt_terLRAlt' : 'tt_terLR';
    elem.style.className = oldClass;
    elem.style.backgroundColor = status ? '#FEF9CF' : '';
    
//    var elemBgTop = document.getElementById('idListBgTop_' + id);
//    var elemBgBottom = document.getElementById('idListBgBottom_' + id);
    var elemBgGepMsgTop = document.getElementById('idTerGepMsgTop_' + id);
    
//    if (elemBgTop && elemBgBottom) {
        if (status || elem.getAttribute('isActive') == '1') {
//            elemBgTop.style.visibility = 'visible';
//            elemBgBottom.style.visibility = 'visible';
//            elem.style.borderBottom = '1px solid #f0f0f0';
            elem.style.backgroundColor = '#FEF9CF';
//            elem.style.borderColor = '#FEF9CF';
            
            if (elemBgGepMsgTop) {
                elemBgGepMsgTop.parentNode.style.backgroundColor = '#FEF9CF';
            }
        }
        else {
//            elemBgTop.style.visibility = 'hidden';
//            elemBgBottom.style.visibility = 'hidden';
//            elem.style.borderBottom = '1px solid #CCC';
            elem.style.backgroundColor = tmpIsAlt ? '' : '#FFF';
//            elem.style.borderColor = '#CCC';
            
            if (elemBgGepMsgTop) {
                elemBgGepMsgTop.parentNode.style.backgroundColor = '#FFF';
            }            
        }        
//    }    
}

function highlightAllButtonsInRow(id, status) {
    /* Buttons highlighten */
    var elemBtnAfh = document.getElementById('idBtn_' + id + '_' + 'afh');
    var elemBtnHi = document.getElementById('idBtn_' + id + '_' + 'hi');
    var elemBtnHis = document.getElementById('idBtn_' + id + '_' + 'his');
    var elemBtnFz = document.getElementById('idBtn_' + id + '_' + 'fz');
    var elemBtnMf = document.getElementById('idBtn_' + id + '_' + 'mf');
    var elemBtnReg = document.getElementById('idBtn_' + id + '_' + 'reg');
    var elemBtnMkz = document.getElementById('idBtn_' + id + '_' + 'mkz');    
    var buttonExt;
    var buttons = [];
    var labels = [];
    buttons.push(elemBtnAfh);
    buttons.push(elemBtnHi);
    buttons.push(elemBtnHis);
    buttons.push(elemBtnFz);
    buttons.push(elemBtnReg);
    buttons.push(elemBtnMf);
    buttons.push(elemBtnMkz);    
    labels.push('Flughafen');
    labels.push('Hotelinfos & Bilder');
    labels.push('Hotelinfos');
    labels.push('Voraussichtliche Flugzeiten');
    labels.push('Umgebung & Regionsinfos');
    labels.push('Weitere Flüge');
    labels.push('Angebot merken');    
    
    for (var i = 0; i < buttons.length; i++) {
        if (buttons[i] != null) {
            var elemPrev = buttons[i].previousSibling; 
            var elemNext = buttons[i].nextSibling;
            var postIndex = status ? 'Over1' : 'Over';
            
            if (buttons[i].getAttribute('status') == 'active') {
                continue;
            }
                    
            if (labels[i] == 'Angebot merken') {
                buttonExt = 'Mkz';
            } else {
                buttonExt = '';
            }
            
            buttons[i].className = 'tt_terBtn' + buttonExt + 'Center' + postIndex;
            elemPrev.className   = 'tt_terBtn' + buttonExt + 'Left' + postIndex;
            elemNext.className   = 'tt_terBtn' + buttonExt + 'Right' + postIndex;                
            buttons[i].firstChild.nodeValue = labels[i];    
        }
    }    
}

function twoDigit(val) {
    return parseInt(val, 10) < 10 ? '0' + parseInt(val, 10) : parseInt(val, 10);
}

function getHtmlButton(name, id, func) {
    var html;
    var buttonExt;
    if (name == 'mkz') {
        buttonExt = 'Mkz';
    } else {
        buttonExt = '';
    }
  
    html = '<div class=\'tt_terBtn' + buttonExt + 'LeftOver\' onclick="' + func + 'highlightBtn(event, \'' + id + '\', \'' + name + '\', 2);" onmouseover="highlightBtn(event, \'' + id + '\', \'' + name + '\', 1);">&nbsp;</div>';
    if (name == 'mkz') {
        html += '<div status=\'none\' class=\'tt_terBtn' + buttonExt + 'CenterOver\' id=\'idBtn_' + id + '_' + name + '\' onclick="' + func + '" onmouseover="highlightBtn(event, \'' + id + '\', \'' + name + '\', 1);">' + getBtnName(name) + '</div>';
    } else {
        html += '<div status=\'none\' class=\'tt_terBtn' + buttonExt + 'CenterOver\' id=\'idBtn_' + id + '_' + name + '\' onclick="' + func + 'highlightBtn(event, \'' + id + '\', \'' + name + '\', 2);" onmouseover="highlightBtn(event, \'' + id + '\', \'' + name + '\', 1);">' + getBtnName(name) + '</div>';
    }
        html += '<div class=\'tt_terBtnRightOver\' id=\'idBtn_' + id + '_' + name + '_1\' onclick="' + func + 'highlightBtn(event, \'' + id + '\', \'' + name + '\', 2);" onmouseover="highlightBtn(event, \'' + id + '\', \'' + name + '\', 1);">&nbsp;</div>';
    html += '';
    
    return html;
}

/* Zustände eines einzelnen Buttons wechseln */
function highlightBtn(event, id, name, status){
    var elemBtn = document.getElementById('idBtn_' + id + '_' + name);
    var elemPrev;
    var elemNext;    
    var buttonExt;
    
    if (elemBtn) {
        elemPrev = elemBtn.previousSibling;
        elemNext = elemBtn.nextSibling;        
    }
    
    newTerminId = null;
    
    highlightAllButtonsInRow(id, status);
    highlightBox(null, true, id);
    
    if (elemBtn.getAttribute('status') == 'active') {
        return;
    }
    
    elemBtn.firstChild.nodeValue = getBtnName(name);
    
    if (name == 'mkz') {
        buttonExt = 'Mkz';
    } else {
        buttonExt = '';
    }           
    
    if (status == 1) {
        elemPrev.className = 'tt_terBtn' + buttonExt + 'LeftOver2';
        elemBtn.className = 'tt_terBtn' + buttonExt + 'CenterOver2';
        elemNext.className = 'tt_terBtn' + buttonExt + 'RightOver2';            

    }
    else if (status == 2) {
        elemPrev.className = 'tt_terBtn' + buttonExt + 'LeftOver3';
        elemBtn.className = 'tt_terBtn' + buttonExt + 'CenterOver3';
        elemNext.className = 'tt_terBtn' + buttonExt + 'RightOver3';            
        elemBtn.setAttribute('status', 'active');
        activeButtons.push(elemBtn);
        clearAllButtons(elemBtn);
        newTerminId = id;
    }
    
    if (status != 2) {
        event.cancelBubble = true;
    }
}

function getBtnName(kuerzel) {
    var name = '';
    
    switch (kuerzel) {
        case 'afh':
            name = 'Flughafen';
            break;
            
        case 'his':
            name = 'Hotelinfos';
            break;
            
        case 'hi':
            name = 'Hotelinfos & Bilder';
            break;
            
        case 'fz':
            name = 'Voraussichtliche Flugzeiten';
            break;     
            
        case 'mf':
            name = 'Weitere Flüge';
            break;              
            
        case 'reg':
            name = 'Umgebung & Regionsinfos';
            break;  
              
        case 'mkz':
            name = 'Angebot merken';
            break;                                    
    }  
    
    return name;  
}

function clearAllButtons(curElem) {
    for (var i = 0; i < activeButtons.length; i++) {
        if (activeButtons[i] != null && activeButtons[i] != curElem) {
            var elemPrev = activeButtons[i].previousSibling;
            var elemNext = activeButtons[i].nextSibling;
            
            if (elemPrev) {
                elemPrev.className = 'tt_terBtnLeft';
            }
            
            if (elemNext) {
                elemNext.className = 'tt_terBtnRight';
            }            
            
            activeButtons[i].className = 'tt_terBtnCenter';
            activeButtons[i].setAttribute('status', 'none');  
            
            if (activeButtons[i].firstChild) {
                activeButtons[i].firstChild.nodeValue = '';   
            }          
                     
            activeButtons[i] = null;
        }
    }
}

function onclickSetBtnActive(event) {
    var arr = this.id.split('_');
    refreshContent(arr[1], arr[2]); 
    highlightBtn(event, arr[1], arr[2], '2');
    setBorderAroundBox(arr[1], true);
    //soll nur bei 'weitere Flüge' zutreffen
    if (arr[2] == 'mf') {
        setBoxHeight(arr[1], null, 'idContent_' + arr[1] + '_4');
    }    
}

function setBorderAroundBox(id, type) {
    var elemScrollLine = document.getElementById('scrollLine_' + id);
    var elemScrollLinePrev = document.getElementById('scrollLine_' + (id - 1));
    var elemScrollContent = document.getElementById('scrollContent_' + id);
    var elemScrollContentAfh = document.getElementById('scrollContentAfh_' + id);
    var elemScrollContentFz = document.getElementById('scrollContentFz_' + id);
    var elemScrollContentMf = document.getElementById('scrollContentMf_' + id);
    var elemScrollContentHbw = document.getElementById('scrollContentHbw_' + id);
    var elemScrollContentBottomAfh = document.getElementById('scrollContentBottomAfh_' + id);
    var elemScrollContentBottomFz = document.getElementById('scrollContentBottomFz_' + id);
    var elemScrollContentBottomMf = document.getElementById('scrollContentBottomMf_' + id);
    var elemScrollContentBottomHbw = document.getElementById('scrollContentBottomHbw_' + id);
    var elemScrollContentBottom = document.getElementById('scrollContentBottom_' + id);
    
    var color = type ? '#E25B1B' : '#FEF9CF';
    var colorLineBottom = type ? '#FEF9CF' : '#CCC';
    var colorLineTop = id >= 100 ? '#FEF9CF' : color;
    color = id >= 100 ? '#E25B1B' : color;
    colorLineBottom = id >= 100 && !type ? '#E25B1B' : colorLineBottom;
    
    if (elemScrollLine) {
        if (id == 105) {
            if (type) {
                elemScrollContent.style.borderTop = '0px solid #FEF9CF';
            } else {
                elemScrollContent.style.borderTop = '0px solid #FEF9CF';
            }
        } else {
            elemScrollLine.style.border = '1px solid ' + color;
            elemScrollLine.style.borderBottomWidth = '1px'; 
            elemScrollLine.style.borderBottomStyle = 'solid'; 
            elemScrollLine.style.borderBottomColor = colorLineBottom;    
            elemScrollLine.style.borderTopWidth = '1px'; 
            elemScrollLine.style.borderTopStyle = 'solid'; 
            elemScrollLine.style.borderTopColor = colorLineTop;              
        }         
    }
    
    if (elemScrollLinePrev) {
        elemScrollLinePrev.style.borderBottomWidth = '1px'; 
        elemScrollLinePrev.style.borderBottomStyle = 'solid'; 
        elemScrollLinePrev.style.borderBottomColor = colorLineBottom;    
    }   
    
    if (elemScrollContent) {
        elemScrollContent.style.border = '1px solid ' + color; 
        elemScrollContent.style.borderTop = ''; 
        elemScrollContent.style.borderBottom = '';     
        
        if (id == 105) {
            if (type) {
                elemScrollContent.style.borderTop = '1px solid ' + color;
            } else {
                elemScrollContent.style.borderTop = '0px solid #FEF9CF';
            }
        }            
    } 
    
    if (elemScrollContentAfh) {
        elemScrollContentAfh.style.border = '1px solid ' + color; 
        elemScrollContentAfh.style.borderTop = ''; 
        elemScrollContentAfh.style.borderBottom = ''; 
    }     
    
    if (elemScrollContentMf) {
        elemScrollContentMf.style.border = '1px solid ' + color; 
        elemScrollContentMf.style.borderTop = ''; 
        elemScrollContentMf.style.borderBottom = ''; 
    }       
    
    if (elemScrollContentFz) {
        elemScrollContentFz.style.border = '1px solid ' + color; 
        elemScrollContentFz.style.borderTop = ''; 
        elemScrollContentFz.style.borderBottom = ''; 
    }  
    
    if (elemScrollContentBottomAfh) {
        elemScrollContentBottomAfh.style.border = '1px solid ' + color; 
        elemScrollContentBottomAfh.style.borderTop = ''; 
    } 
    
    if (elemScrollContentBottomMf) {
        elemScrollContentBottomMf.style.border = '1px solid ' + color; 
        elemScrollContentBottomMf.style.borderTop = ''; 
    }     
    
    if (elemScrollContentBottomFz) {
        elemScrollContentBottomFz.style.border = '1px solid ' + color; 
        elemScrollContentBottomFz.style.borderTop = ''; 
    }     
    
    if (elemScrollContentBottom) {
        elemScrollContentBottom.style.border = '1px solid ' + color; 
        elemScrollContentBottom.style.borderTop = ''; 
    }     
}

function onclickTextLinkRefresh(event) {
    var arr = this.id.split('_');
    refreshContent(arr[1], arr[2]); 
}

function addBookingId($newId, oldId, newPrice, hotelatts) {
    var obj = getTerminObject(oldId);
    obj.bookingIdTmp = $newId;
    obj.priceMoreFlights = newPrice;
    obj.hotelattsMoreFlights = hotelatts;
}

function showFlugInfo(va, bookingId){
    var top=screen.height;
    var left=screen.width;
    posx=((left/2)-190);
    posy=((top/2)-150);
    
    var obj = getTerminObject(bookingId);
    window.open(flugzeiten_url+'&action=30&veranstalter='+va+'&start='+obj.ahKuerzel+'&ziel=' + obj.zielflughafen + '&Buchungs_ID='+bookingId,'Flugzeiten','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=no,width=500,height=250,screenX='+posx+',screenY='+posy+',left='+posx+',top='+posy+'');
}

function preisUnterschiedZuHoch(preis_e, preis_vorBA, personen, anzahl_personen, port, veranstalter, reiseart){
    var arrPreis = preis_e.split(";");
    var arrPers = personen.split(";");
    var anzPers = anzahl_personen;
    var preisUnterschied = 0;
    var anzKinder = 0;
    var prozent = 0;
    if(port==655){
        preisUnterschied = arrPreis[anzPers] - preis_vorBA;
    }
    else{
        for(key in arrPers){
            if(arrPers[key] > 0 && arrPers[key] < 25) anzKinder++;
        }
        if(arrPreis[0] != '') {
            preisUnterschied = arrPreis[0] - preis_vorBA;

        }
        else if(anzKinder < 1 && anzPers < 3){
            preisUnterschied = (arrPreis[anzPers]/anzPers) - preis_vorBA;
        }
    }
    prozent = (preisUnterschied * 100) / preis_vorBA;
    if((prozent > 15) && (veranstalter=='MWR' || (veranstalter=='TOC' && reiseart=='FERN') || (veranstalter=='NEC' && reiseart=='FERN') || (veranstalter=='NEC' && reiseart=='PKF'))) {
        return true;
    }
    else if(preisUnterschied >= 100){
        return true;
    }
    else{
        return false;
    }
}

/* Vakanz-Prüfung abbrechen */
function cancelBaRequest(elem, bookingId, isMf) {
    if (isMf && isMf != null) {
        var elemMain = elem.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
        var curHeight = parseInt(elemMain.style.height);
        elemMain.style.height = (curHeight - 40) + 'px';
        elem.parentNode.parentNode.parentNode.style.height = '20px';
    }
    
    if (gAjaxObj) {
        gAjaxObj.abort();
    }
    
    var elemPrevious = elem.parentNode.previousSibling;
    
    while(elemPrevious.innerHTML == null) {
        elemPrevious = elemPrevious.previousSibling;
    }
    
    var elemContent = elemPrevious.innerHTML;
    elemPrevious.parentNode.parentNode.innerHTML = elemContent;
    
    link = '../' + ordner_name + '/ba_submit_ajax?action=clearTermin&Buchungs_ID=' + bookingId;
    gAjaxObj = TTAjaxRequest(link, null, null, '');       
}

function in_array(needle, haystack, argStrict) {
    // http://kevin.vanzonneveld.net
    // +   original by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // *     example 1: in_array('van', ['Kevin', 'van', 'Zonneveld']);
    // *     returns 1: true
 
    var found = false, key, strict = !!argStrict;
 
    for (key in haystack) {
        if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {
            found = true;
            break;
        }
    }
 
    return found;
}
