/**
 * Klasse eines Termines
 * 
 * @author Daniel Lembicz
 */

/**
 * Konstruktor
 */
function TTTerminElement (obj) {
    this.data = obj;
}

/**
 * Daten des Objektes zurückgeben
 */
TTTerminElement.prototype.getData  = function() {
    return this.data;
}

/**
 * Einzelne Zeile als HTML zurückgeben
 */
TTTerminElement.prototype.getRow  = function(i) {
    if (port == 653) {
        var newElem = getClonedTemplate('idTerminRow_653', 'idTerminRowCloned_653');
    } else {
        var newElem = getClonedTemplate('idTerminRow', 'idTerminRowCloned');
    }
    
    //--- Abflughafen -----------------------------------------------
    var strAfh = this.data.airport.nameLong
               + '<div class="ttTerLink">'
               +     '<a class="thickbox" href="http://cp.traveltainment.de/content_page_premium/abflughafen/mainWS.php?KID=430700&START=6&AF=' + this.data.airport.kuerzel + '&KeepThis=true&TB_iframe=true&height=609&width=959"><img src="' + imgPfad + '/arrowRightBlue.png" width="5" height="7" alt="" border="0" /> Flughafeninfos</a>'
               + '</div>';
    
    //--- Dauer -----------------------------------------------------
    var strDauer = this.data.dauer + ' Tag' + (parseInt(this.data.dauer) > 1 ? 'e' : '');
    
    //--- VA | HIB-Link --------------------------------------------
    var itsSeason = getWSdate(this.data.dateFromTimestamp);

    if (itsSeason.month >= 5 && itsSeason.month <= 10) {
        var strItsSeason = 'S' + itsSeason.year.toString().substring(2, 4);
    } else {
        if (itsSeason.month < 5) {
            var winterSeason = (itsSeason.year - 1).toString().substring(2, 4);
        } else {
            var winterSeason = itsSeason.year.toString().substring(2, 4);
        }
        var strItsSeason = 'W' + winterSeason;
    }
    
    var ttHasReview = pStrecke.terminHotelData.hbw.num >= 1 ? '1' : '0';
    
    var tmpVa = this.data.tourOperator.split('-');
    
    var strLinkHib = 'http://www.its.de/hotelinformation/index.php?'
                   + 'marke=' + tmpVa[0]
                   + '&code=' + this.data.hotelcodex
                   + '&saison=' + strItsSeason
                   + '&hasReview=' + ttHasReview
                   + '&KeepThis=true'
                   + '&TB_iframe=true'
                   + '&height=609'
                   + '&width=959';
    
    if (i == 0) {
        var strLinkHibHbw = 'http://www.its.de/hotelinformation/index.php?'
                          + 'marke=' + tmpVa[0]
                          + '&code=' + this.data.hotelcodex
                          + '&saison=' + strItsSeason
                          + '&sec=review'
                          + '&hasReview=' + ttHasReview
                          + '&KeepThis=true'
                          + '&TB_iframe=true'
                          + '&height=609'
                          + '&width=959';
        
        var strLinkHbwAusgabe = '<a href=' + strLinkHibHbw + ' class="thickbox">'
                              + '<img src="' + imgPfad + '/arrowRightBlue.png" width="5" height="7" alt="" border="0" /> '
                              + 'Hotelbewertungen lesen'
                              + '</a>';
        
        if (ttHasReview == '0') {
            strLinkHbwAusgabe = '';
        }
    
        //---  HBW-Link für Hotelthumb ----------------------------------
        $('#idTerminHeaderCloned' + (port == '653' ? '_653' : '')).find('.ttTerLink').html(strLinkHbwAusgabe);
    }
    
    var strVa = '<img src="' + imgservPfad + '/images/content/va_logos/small/' + tmpVa[0] + '.gif" alt="" title="Veranstalter ' + this.data.longNameVa + '" border="0" class="ttTerVaImg" />'
              + (tmpVa[0] == 'XITS' ? '<img src="' + imgPfad + '/info.gif" alt="" border="0" class="ttTerInfoImg" title="" onclick="ttShowXITSTip(this);" />' : '')
              + clearBothDiv
              +     '<a href="' + strLinkHib + '" class="thickbox"><img src="' + imgPfad + '/arrowRightBlue.png" width="5" height="7" alt="" border="0" /> Hotelinfo</a>';
    

    //--- Schreiben der Terminliste ---------------------------------
    $(newElem).find('.terminOfferAfh').html(strAfh);
    
    $(newElem).find('.ttTerDateRightFromDay').html(this.data.dateFromWeekShort);
    $(newElem).find('.ttTerDateRightFromDate').html(this.data.dateFromDay + '.' + this.data.dateFromMonth + '.' + this.data.dateFromYear);
    $(newElem).find('.ttTerDateRightToDay').html(this.data.dateToWeek.substring(0, 2));
    $(newElem).find('.ttTerDateRightToDate').html(this.data.dateToDay + '.' + this.data.dateToMonth + '.' + this.data.dateToYear);
    
    $(newElem).find('.terminOfferDauer').html(strDauer);
    
    $(newElem).find('.terminOfferVa').html(strVa);
    
    $(newElem).find('.ttTerLeistungRightZimmer').html(this.data.zimmer);
    $(newElem).find('.ttTerLeistungRightVerpflegung').html(this.data.verpflegungFull);
    
    if (this.data.zusatzleistung != '') {
        $(newElem).find('.ttTerLeistungRightZusatzleistungen').html(this.data.zusatzleistung);
        $(newElem).find('.ttTerLeistungLeftZusatzleistungen').show();
        $(newElem).find('.ttTerLeistungRightZusatzleistungen').show();
    }
    
    $(newElem).find('.ttTerPreisLeft').html('EUR ' + this.data.price + ',-');
    
    //--- Events auf Elemente der Terminliste -----------------------
    var bookingId = this.data.bookingId; // muss bei jQuery vorher definiert werden (da Klasse mehrfach vorhanden)
    
    $(newElem).find('.ttTerInfoAfh').bind('mouseover', function() {
        this.className   = 'ttTerInfoAfhActive';
        this.style.color = '#777';
        this.innerHTML   = '<img src="' + imgPfad + '/arrowRightGrey.gif" width="5" height="7" alt="" border="0" /> Flughafeninfos';
    });

    $(newElem).find('.ttTerInfoAfh').bind('mouseout', function() {
        this.className = 'ttTerInfoAfh';
        this.style.color = '#0d82b8';
        this.innerHTML = '<img src="' + imgPfad + '/arrowRightBlue.gif" width="5" height="7" alt="" border="0" /> Flughafeninfos';
    });
    
    /*
    $(newElem).find('.thickbox').bind('mouseover', function() {
        this.className   = 'ttTerInfoHibActive';
        this.style.color = '#777';
        this.innerHTML   = '<img src="' + imgPfad + '/arrowRightGrey.gif" width="5" height="7" alt="" border="0" /> Hotelinfo';
    });

    $(newElem).find('.thickbox').bind('mouseout', function() {
        this.className = 'ttTerInfoHib';
        this.style.color = '#0d82b8';
        this.innerHTML = '<img src="' + imgPfad + '/arrowRightBlue.gif" width="5" height="7" alt="" border="0" /> Hotelinfo';
    });
    */
    
    $(newElem).find('.ttTerPreisRight').bind('mouseover', function() {
        this.className = 'ttTerPreisRightIE6'; // Hightlighten des Buttons
    });

    $(newElem).find('.ttTerPreisRight').bind('mouseout', function() {
        this.className = 'ttTerPreisRight'; // Hightlighten des Buttons entfernen
    });
    
    //--- Vakanzpruefung anstossen ----------------------------------
    var clickBookingId = this.data.bookingId;
    var aktData        = this.data;
    
    $(newElem).find('.terminOfferPreis').bind('click', function() {
        if (document.bengine.refresh.value == '1') {
            alert('Sie haben Ihre Suchparameter geändert. Bitte klicken Sie auf \'Aktualisieren\' zum Aktualisieren der Ergebnisliste!');
            
            return false;
        }
        
        TTTerminListCustomer.getCheckVakanzDiv(newElem, aktData);
        
        pTermine.vakanz(clickBookingId);   
    });
    
    //--- Ausgabe der Terminliste -----------------------------------
    return newElem[0];
}

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;
}