﻿function Tabs(ElementClass) {
    this.SelectedClass = "Selected";
    this.SelectedTab = 0;
    this.TabsPath = "." + ElementClass + " .Tabs li";
    this.TabsContent = "." + ElementClass + " .Content li.SingleView";
    this.Tabs = $(this.TabsPath);
    this.Content = $(this.TabsContent);
    this.ClickElement = this.TabsPath + " a";

    this.Init = function() {
        $(this.Tabs[this.SelectedTab]).addClass(this.SelectedClass);
        $(this.Content).hide();
        $(this.Content[this.SelectedTab]).show();
    };

    this.Init();

    this.GetCurrentSelectedIndex = function() {
        var index = 0;
        for (i = 0; i < this.Tabs.length; i++) {
            if ($(this.Tabs[i]).hasClass(this.SelectedClass)) {
                index = i;
                return index;
            }
        }
    };

    this.ChangeTab = function(ClickedTab) {
       $(this.Tabs[this.SelectedTab]).removeClass(this.SelectedClass);
       $(this.Content[this.SelectedTab]).hide();
       $(ClickedTab).parent().addClass(this.SelectedClass);
       this.SelectedTab = this.GetCurrentSelectedIndex();
       $(this.Content[this.SelectedTab]).show();
    }

    this.SelectActiveTab = function(tabToActive) {
        if (tabToActive >= 0 && tabToActive < this.Content.length) {
            $(this.Tabs[this.SelectedTab]).removeClass(this.SelectedClass);
            $(this.Content[this.SelectedTab]).hide();
            this.SelectedTab = tabToActive;
            $(this.Tabs[this.SelectedTab]).addClass(this.SelectedClass);
            $(this.Content[this.SelectedTab]).show();
        }
    }
}

function TabsView(ElementClass) {
    var tabs = new Tabs(ElementClass);

    this.SetUp = function() {
        $(tabs.ClickElement).click(function() {
            tabs.ChangeTab(this);
        });
    }

    this.Init = function() {
        tabs.Init();
    }

    this.SelectActiveTab = function(tabToActive) {
        tabs.SelectActiveTab(tabToActive);
    }
}
