if (typeof LBi == 'undefined') { 
	self.LBi = {}; 
}
if (typeof LBi != 'undefined') {
	$(document.body).addClass('hasJS');
}
LBi.tickets = {
    location_id: null,
    start_date: null,
    end_date: null,
    complete_race: null,
    complete_date: null,
    rfrr: '-49840',
    init: function() {
        LBi.tickets.set_currency();
        LBi.tickets.set_service();
        LBi.tickets.set_season();
        LBi.tickets.set_race();
    },
    set_currency: function() {
        var reset = document.getElementById("service-tickets-only");
        var disable = document.getElementById("service-tickets-other");
        var currency = document.getElementById("currency");
        currency.onchange = function() {
            return function(event) {
                var selected = 0;
                var selectedIndex = document.ticketstravel.currency.selectedIndex;
                for (var i = 0; i < aCurrency.length; i++) {
                    if (aCurrency[i][3] == document.ticketstravel.currency[selectedIndex].value) {
                        selected = i;
                        break;
                    }
                }
                document.ticketstravel.eapid.value = aCurrency[selected][0];
                document.ticketstravel.action = aCurrency[selected][1];
                document.ticketstravel.lang.value = aCurrency[selected][2];

                if (aCurrency[selected][3] == 'USD') {
                    LBi.tickets.formatDate = function(date) {
                        return date.substring(3, 6) + date.substring(0, 3) + date.substring(6);
                    };
                }
                else {
                    LBi.tickets.formatDate = function(date) {
                        return date;
                    };
                }

                if (disable.hasClass) {
                    LBi.tickets.set_chosen();

                    if (disable.hasClass('disabled')) {
                        disable.removeClass('disabled');
                    }
                    if (aCurrency[selected][3] == 'EUR') {
                        disable.addClass('disabled');
                        if (disable.hasClass('active')) {
                            disable.removeClass('active');
                            reset.addClass('active');
                            document.ticketstravel.GOTO[0].checked = true;
                        }
                    }
                }
                setServiceOptions(1);
            };
        } ();

        currency.onchange();
    },
    set_service: function() {
        var radio = $('service-radios').getElements('fieldset');
        for (var i = 0; i < document.ticketstravel.GOTO.length; i++) {
            document.ticketstravel.GOTO[i].onclick = function(i) {
                return function(event) {
                    var children = $('service').getElements('fieldset');
                    for (var j = 0; j < children.length; j++) {
                        children[j].removeClass('active');
                    }
                    radio[i].addClass('active');
                };
            } (i);
        }
    },
    set_season: function() {
        var seasons = $('race').getElements('div');
        var children = document.ticketstravel.seasonOptions ? $('seasonOptions').getElements('fieldset') : null;
        var radio = $('race').getElements('fieldset');
        var race = document.getElementById('complete-race');
        var date = document.getElementById('complete-date');
        for (var i = 1; i < seasons.length; i++) {
            seasons[i].addClass('hidden');
        }

        for (var i = 0; document.ticketstravel.seasonOption && i < document.ticketstravel.seasonOption.length; i++) {
            document.ticketstravel.seasonOption[i].onclick = function(i) {
                return function(event) {
                    if (aSeasonProvisional[i][1] != 0) {
                        $('provisional').removeClass('disabled');
                    }
                    else {
                        $('provisional').addClass('disabled');
                    }

                    if (aSeasonProvisional[i][2] == 1) {
                        $('complete').removeClass('disabled');
                    }
                    else {
                        $('complete').addClass('disabled');
                    }


                    for (var j = 0; j < seasons.length; j++) {
                        seasons[j].addClass('hidden');
                    }
                    seasons[i].removeClass('hidden');

                    for (var j = 0; j < children.length; j++) {
                        children[j].removeClass('active');
                    }

                    children[i].addClass('active');

                    for (var k = 0; k < document.ticketstravel.OfferingID.length; k++) {
                        document.ticketstravel.OfferingID[k].checked = false;
                    }
                    for (var l = 0; l < radio.length; l++) {
                        radio[l].removeClass('active');
                    }
                    var position = i + 1;
                    var checked = $('race-season' + position).getElements('fieldset');
                    var set = $('race-season' + position).getElements('input');

                    for (var m = 0; m < checked.length; m++) {
                        if (!checked[m].hasClass('completed') &&
                            !checked[m].hasClass('disabled') &&
                            !checked[m].hasClass('pending')) {
                            checked[m].addClass('active');
                            set[m].checked = true;

                            for (var n = 0; n < radio.length; n++) {
                                if (radio[n].hasClass('active')) {
                                    race.innerHTML = aRaceData[n][5];
                                    date.innerHTML = aRaceData[n][6];
                                    setServiceOptions(n);
                                }
                            }

                            return true;
                        }
                    }
                };
            } (i);
        }
    },
    set_race: function() {
        var race = document.getElementById('complete-race');
        var date = document.getElementById('complete-date');
        var radio = $('race').getElements('fieldset');
        for (var i = 0; i < document.ticketstravel.OfferingID.length; i++) {
            var offering = document.ticketstravel.OfferingID[i];

            if (offering) {
                offering.onclick = function(i) {
                    return function(event) {
                        setServiceOptions(aRaceData[i][8]);                        
                        LBi.tickets.location_id = aRaceData[i][2];
                        LBi.tickets.start_date = aRaceData[i][7];
                        LBi.tickets.end_date = aRaceData[i][0];
                        LBi.tickets.complete_race = aRaceData[i][5];
                        LBi.tickets.complete_date = aRaceData[i][6];
                        LBi.tickets.rfrr = aRaceData[i][9];
                        LBi.tickets.set_chosen();
                        race.innerHTML = aRaceData[i][5];
                        date.innerHTML = aRaceData[i][6];
                        for (var j = 0; j < radio.length; j++) {
                            radio[j].removeClass('active');
                        }
                        radio[i].className += " active";
                    };
                } (i);


                if (offering.checked) {
                    offering.onclick();
                }
            }
        }
    },
    set_chosen: function() {
        document.ticketstravel.LocationID.value = LBi.tickets.location_id;
        document.ticketstravel.CityID.value = LBi.tickets.location_id;
        document.ticketstravel.DestID.value = LBi.tickets.location_id;
        document.ticketstravel.StartDate.value = LBi.tickets.formatDate(LBi.tickets.start_date);
        document.ticketstravel.EndDate.value = LBi.tickets.formatDate(LBi.tickets.end_date);
        document.ticketstravel.InDate.value = LBi.tickets.formatDate(LBi.tickets.start_date);
        document.ticketstravel.OutDate.value = LBi.tickets.formatDate(LBi.tickets.end_date);
        document.ticketstravel.FromDate.value = LBi.tickets.formatDate(LBi.tickets.start_date);
        document.ticketstravel.ToDate.value = LBi.tickets.formatDate(LBi.tickets.end_date);
        document.ticketstravel.rfrr.value = LBi.tickets.rfrr;
    }
};
window.addEvent('domready', LBi.tickets.init);

function setServiceOptions(provisional) {
    var serviceFieldset = $('service-radios').getElements('fieldset');
    for (var k = 1; k < serviceFieldset.length; k++) {
        if (provisional == 0)
            serviceFieldset[k].removeClass('disabled');
        else
            serviceFieldset[k].addClass('disabled');
    }

    if (provisional != 0) {
        $('service-ticket').checked = true;
    }
}