/**
 * Merkzettel Instanz
 */
var merkzettel = new TTMerkzettel(5);
var entfMz = '<div id="mzSchließenButton1" onclick="merkzettel.close();">SCHLIESSEN</div>';

/**
 * erweitert Merkzettel um kundenspezifische Methoden zur
 * Behandlung des Merkzettel
 */
TTMerkzettel.elementToFill = '#merkzettelTemplate';
TTMerkzettel.heightMz = '630px';
TTMerkzettel.heightMzSent = '217px';
TTMerkzettel.heightMzSendForm = '530px';
TTMerkzettel.minContentHeight = 1200;
TTMerkzettel.actualContentHeight = null;
TTMerkzettel.prototype.changeFiller = function(name) {
    if (typeof name == 'undefined') {
        TTMerkzettel.elementToFill = '#merkzettelTemplate';
    } else {
        TTMerkzettel.elementToFill = name.toString();
    }
}
TTMerkzettel.prototype.show = function(show) {
    jQuery.ajax({
        url: this.mzUrl,
        data: {url:url,ons:dirIBE,onkp:dirKparam,KID:KID,HID:HID,KSIDN:sessName,KC:sessCookie,merkzettel_aktion:'show'},
        async: false,
        success: function(data){
            jQuery(TTMerkzettel.elementToFill).show("slow");
            jQuery(TTMerkzettel.elementToFill).height(TTMerkzettel.heightMz);
            jQuery(TTMerkzettel.elementToFill).html('');
            jQuery(TTMerkzettel.elementToFill).html(data);
            jQuery(TTMerkzettel.elementToFill).prepend(entfMz);
            if (parseInt(jQuery('#content').height()) < TTMerkzettel.minContentHeight) {
                TTMerkzettel.actualContentHeight = jQuery('#content').height();
                jQuery('#content').animate({
                   height: (TTMerkzettel.minContentHeight.toString()) + "px"
                },
                {
                    duration: "slow"
                });
            }
            if (jQuery("#merkzettelInhaltHeight").height() > parseInt((TTMerkzettel.heightMz.replace("px","")))) {
                jQuery(TTMerkzettel.elementToFill).height(jQuery("#merkzettelInhaltHeight").height());
            }
        }
    });
}
TTMerkzettel.prototype.close = function() {
    jQuery(TTMerkzettel.elementToFill).hide("slow",function() {
        jQuery(TTMerkzettel.elementToFill).height(TTMerkzettel.heightMz)
        if (TTMerkzettel.actualContentHeight != null) {
            jQuery('#content').animate({
               height: TTMerkzettel.actualContentHeight.toString() + "px"
            },
            {
                duration: 800
            });
            TTMerkzettel.actualContentHeight = null;
        }
        if (typeof toggleMerkzettelLink != 'undefined') {
            toggleMerkzettelLink('merkzettelTemplateHead');
        }
    });
}
TTMerkzettel.prototype.gotoTermin = function(mzBid,mzIff) {
    mzData = this.getData(KID,sessName,sessCookie,mzBid,mzIff);

    window.location.href = mzData.str_pruef;
}
TTMerkzettel.prototype.deleteFromList = function(id) {

}
var heightContent = null;
TTMerkzettel.prototype.deleteOnMz = function(bid,iff,id,showMz) {
    var showMzI = null;
    if (bid == null || typeof bid == 'undefined') {
        bid = "";
    }
    if (iff == null || typeof iff == 'undefined') {
        iff = "";
    }
    if (id == null || typeof id == 'undefined') {
        id = "";
    }
    if (typeof showMz == "undefined") {
        showMzI = null;
    } else {
        showMzI = showMz;
    }
//    jQuery.ajaxSetup({async:false})
    jQuery.get(this.mzUrl,
        {bid:bid,iff:iff,id:id,KID:KID,KSIDN:sessName,KC:sessCookie,merkzettel_aktion:'delete'},
        function(data) {
            merkzettel.refresh();
            if (showMzI == 1) {
                if (parseInt(data) == 0) {
                    merkzettel.close();
                    jQuery('#merkzettelTeaser').hide();
                } else {
                    merkzettel.refreshMz(showMzI);
                }
            }
        }
    );
    this.setHeaderMerkzettelAnzahl();
//    jQuery.ajaxSetup({async:true})
}
TTMerkzettel.prototype.setHeaderMerkzettelAnzahl = function()  {
    if (typeof setHeaderMerkzettelAnzahl != 'undefined') {
        setHeaderMerkzettelAnzahl();
    }
}
TTMerkzettel.prototype.refreshMz = function(show) {
    this.show(show);
}
TTMerkzettel.prototype.refresh = function(show) {
    var mzData = this.getData(KID,sessName,sessCookie);
    if (typeof show == 'undefined' && parseInt(show) != "0") {
        jQuery('#merkzettelTeaser').show("slow");
    }
    jQuery('#merkzettelTeaserText').nextAll().remove();
    if (mzData != false) {
        if (mzData.length > 0) {
            var hotNameNR = "";
            for (c=(mzData.length-1);c>=0;c--) {
                hotNameNR = mzData[c].hotelname;
                hotNameNR = hotNameNR.replace(/\\/g,"");
                jQuery('#merkzettelTeaserText').after('<div id="bookingId_'+mzData[c].BID+'" onclick="merkzettel.gotoTermin(\''+mzData[c].BID+'\',\''+mzData[c].iff+'\');" class="merkzettelEintragTermin">'+(c+1)+' '+hotNameNR+'</div>')
            }
        } else {
            this.close();
            jQuery('#merkzettelTeaser').hide("slow");
        }
    }
}
TTMerkzettel.prototype.addToMerkzettel = function(obj,dataType) {
    var i = this.merkzettelData.length-1 || 0;
    var objHbw = "";
    if (pStrecke.terminHotelData.hbw.num > 1) {
        objHbw = pStrecke.terminHotelData.hbw.num + '_' + pStrecke.terminHotelData.hbw.empf + '_' + pStrecke.terminHotelData.hbw.rating;
    }
    this.merkzettelData.entries[i] = {
        mzLength:           this.merkzettelLength,
        dataType:           dataType,
        mzFlag:             'termin',
        uebergabe:          muebergabe,
        url:                mzUrl,
        engine:             engine,
        strecke:            engine=="pauschal"?"pauschal":"lami",
        IFF:                pStrecke.iff,
        KID:                KID,
        CRS:                obj.hotelcodex,
        TVA:                obj.tva==null?"":obj.tva,
        hn:                 pStrecke.objects.hotelData.hotelName,
        zielgebiet:         pStrecke.objects.hotelData.zgk,
        ort:                pStrecke.objects.hotelData.city,
        region:             pStrecke.objects.hotelData.region,
        land:               pStrecke.objects.hotelData.country,
        kategorie:          pStrecke.objects.hotelData.stars,
        Laender_Ref_ID:     pStrecke.objects.regionData.laenderRefId,
        port:               pStrecke.objects.port,
        dlcabflug:          obj.vakanz.data[1],
        dlcankunft:         obj.vakanz.data[2],
        termin:             obj.vakanz.data[3],
        ruecktermin:        obj.vakanz.data[4],
        BID:                obj.bookingId,
        leistungscode:      obj.hotelcodex,
        personen:           obj.hotelattribute.personenUnparsed,
        abflughafen:        obj.airport.nameLong,
        anflughafen:        '*todo*',
        hindatum:           obj.dateFromDay + '.' + obj.dateFromMonth + '.' + obj.dateFromYear,
        rueckdatum:         obj.dateToDay + '.' + obj.dateToMonth + '.' + obj.dateToYear,
        dauer:              obj.dauer,
        gesamtpreis:        obj.vakanz.priceAll,
        abpreis:            '',
        preise:             obj.vakanz.data[7],
        veranstalter:       obj.tourOperator,
        veranstalter_lang:  obj.longNameVa,
        hotelbewertung:     objHbw,
        hbit:               '*todo*',
        vbit:               '',
        zbit:               '',
        agent:              agent,
        detail:             pStrecke.step,
        Zimmercode:         obj.zimmercodex,
        zimmer:             obj.zimmer,
        leistung:           obj.leistung,
        angebot:           obj.angebot,
        verpflegung:       obj.verpflegungFull,
        Room:              obj.zimmer,
        RoomShort:         obj.unterkunft,
        Board:             obj.verpflegungFull,
        BoardShort:        obj.verpflegung,
        zusatz:            obj.zusatzleistung,
        dirIBE:            dirIBE,
        dirKparam:         dirKparam,
        sessName:          sessName,
        sessCookie:        sessCookie
    };

    this.createLink(i);

    this.returnFromSave = this.save(i,this);

    this.setHeaderMerkzettelAnzahl();
    
    return this.returnFromSave;
}
TTMerkzettel.prototype.addToMerkzettelHotel = function(obj,dataType) {
    var i = this.merkzettelData.length-1 || 0;

    this.merkzettelData.entries[i] = {
        mzLength:           this.merkzettelLength,
        dataType:           obj.dataType,
        mzFlag:             obj.mzFlag,
        strecke:            obj.strecke,
        uebergabe:          muebergabe,
        url:                obj.url,
        IFF:                obj.iff,
        engine:             engine,
        KID:                KID,
        CRS:                obj.crs,
        TVA:                obj.tva,
        hn:                 obj.hotelName,
        zielgebiet:         obj.zielgebiet,
        ort:                obj.ort,
        region:             obj.region,
        land:               obj.land,
        kategorie:          obj.kategorie,
        Laender_Ref_ID:     obj.Laender_Ref_ID,
        port:               obj.port,
        dlcabflug:          obj.dlcabflug,
        dlcankunft:         obj.dlcabflug,
        termin:             obj.termin,
        ruecktermin:        obj.ruecktermin,
        BID:                '',
        personen:           obj.personen,
        abflughafen:        obj.abflughafen,
        anflughafen:        obj.anflughafen,
        hindatum:           obj.hindatum,
        rueckdatum:         obj.rueckdatum,
        dauer:              obj.dauer,
        abpreis:            obj.abpreis,
        veranstalter:       obj.veranstalter,
        veranstalter_lang:  obj.veranstalter_lang,
        hotelbewertung:     obj.hotelbewertung,
        hbit:               obj.hbit,
        vbit:               obj.vbit,
        zbit:               obj.zbit,
        agent:              obj.agent,
        detail:             obj.detail,
        dirIBE:             obj.dirIBE,
        dirKparam:          obj.dirKparam,
        sessName:           obj.sessName,
        sessCookie:         obj.sessCookie
    };

    this.createLink(i);

    this.returnFromSave = this.save(i,this);

    this.setHeaderMerkzettelAnzahl();
    
    return this.returnFromSave;
}
TTMerkzettel.prototype.sendForm = function() {
//    KID:KID,KSIDN:sessName,KC:sessCookie
 jQuery.ajaxSetup({async:false});
 jQuery(TTMerkzettel.elementToFill).load(this.mzUrl, {url:url,ons:dirIBE,onkp:dirKparam,KID:KID,HID:HID,KSIDN:sessName,KC:sessCookie,merkzettel_aktion:'send'});
 jQuery(TTMerkzettel.elementToFill).height(TTMerkzettel.heightMzSendForm);
 jQuery.ajaxSetup({async:true});
}
TTMerkzettel.prototype.sendMzMail = function(obj) {
 jQuery.ajaxSetup({async:false});
 jQuery(TTMerkzettel.elementToFill).load(this.mzUrl, {
     url:url,
     ons:dirIBE,
     onkp:dirKparam,
     KID:KID,
     merkzettel_aktion:'send',
     emt:obj.to.value,
     sm: "1",
     emts:encodeURI(obj.tosender.value),
     emaeab:obj.absemail.value,
     emaab:encodeURI(obj.absender.value),
     txt:encodeURI(obj.msmitteilung.value),
     KSIDN:sessName,
     KC:sessCookie
 });
 jQuery(TTMerkzettel.elementToFill).height(TTMerkzettel.heightMzSent);
 jQuery.ajaxSetup({async:true});
}