/**
 * main javascript for app
 */
if (!zoo) zoo = {};
zoo.app = {};

zoo.app.TabContent = function() {
    var TabContent = function(tabMenu) {
        // ul element
        this.tabsList      = tabMenu;
        // div that contains bg img of tabs
        this.tabs          = tabMenu.parentNode;
        // div that wrapps tabs and content
        this.tabBox        = $(this.tabs.parentNode);
        this.selectedTab   = this.getDefaultSelected();
        this.tabIndex      = 'tab-1';
    }
    TabContent.init = function() {
        var tabList = $$('ul.tab-list');
        if (tabList.length && tabList.length > 0) {
            tabList.each(function(tabMenu) {
               var tabContent = new TabContent(tabMenu);
               tabMenu.observe('click', tabContent.tabClick.bindAsEventListener(tabContent));
            });
        }
        return true;
    }   
    return TabContent;   
}();
zoo.app.TabContent.prototype = function() {
    return {
        tabClick: function(e) {
            this.selectedTab.removeClassName('selected');
            var link = e.element();
            var id = this.getContentId(link);
            this.selectTab($(id), link.parentNode)
            e.stop();
        },
        selectTab: function(contentTab, tab) {
            this.selectedTab = contentTab;
            this.selectedTab.addClassName('selected');
            this.tabs.removeClassName(this.tabIndex);
            this.tabIndex = tab.getAttribute('id');
            this.tabs.addClassName(this.tabIndex);
        },
        getContentId: function(link) {
            var hrefValues = link.href.split('#');
            if (hrefValues.length && hrefValues.length > 1) {
                return hrefValues[1];
            }
            return '';
        },
        getDefaultSelected: function() {
            var selectedTab = this.tabBox.select('.tab-content.selected');
            if (selectedTab && selectedTab.length && selectedTab.length > 0) {
                return selectedTab[0];
            }
            return false;
        }
    }    
}();
