/*
--------------------------------------------------------------------------------
 JavaScript: Tabs Library v2.0.0.
 Requires: JQuery
--------------------------------------------------------------------------------
*/

var Tabs = Class.extend({
    tabOptionLinks: null,
    tabPanes: null,
    lastTabOptionIndex: null,
    init: function (my_container) {
        this.tabOptionLinks = $('#' + my_container + ' ul.tabOptions li a');
        this.tabPanes = $('#' + my_container + ' .tabPane');

        var thisTabObj = this;
        this.tabOptionLinks.each(function (i) {
            $(this).click(function (e) {
                thisTabObj.selectTab(i);
            });
        });

        this.tabOptionLinks.each(function (i) {
            var optionLink = $(this);
            optionLink.removeClass('tabOption_on');
            optionLink.addClass('tabOption_off');
        });

        this.tabPanes.each(function (i) {
            var pane = $(this);
            pane.removeClass('tabPane_on');
            pane.addClass('tabPane_off');
        });
        this.selectTab(0);
    },
    selectTab: function (tabOptionIndex) {
        if (tabOptionIndex == this.lastTabOptionIndex) return;
        if (this.lastTabOptionIndex != null) {
            var lastOptionLink = $(this.tabOptionLinks[this.lastTabOptionIndex]);
            lastOptionLink.removeClass('tabOption_on');
            lastOptionLink.addClass('tabOption_off');

            var lastPane = $(this.tabPanes[this.lastTabOptionIndex]);
            lastPane.removeClass('tabPane_on');
            lastPane.addClass('tabPane_off');
        } // End if.

        var nextOptionLink = $(this.tabOptionLinks[tabOptionIndex]);
        nextOptionLink.removeClass('tabOption_off');
        nextOptionLink.addClass('tabOption_on');

        var nextPane = $(this.tabPanes[tabOptionIndex]);
        nextPane.removeClass('tabPane_off');
        nextPane.addClass('tabPane_on');

        this.lastTabOptionIndex = tabOptionIndex;
    } // End selectTab().
});