﻿/// <reference path="../jquery.js" />
/// <reference path="../UC/zw_History.js" />

(function ($) {

    $.fn.extend({

        zwTabs: function () {

            /// функция активирует вкладку tabIndex в группе вкладок tabGroupIndex
            var _activateTab = function (tabGroupIndex, tabIndex) {
                var tabGroup = $("div[id='zw_tabcontainer'][index='" + tabGroupIndex + "']");


                var activeTabTitleClass = tabGroup.attr("activeTabTitleClass");
                var inactiveTabTitleClass = tabGroup.attr("inactiveTabTitleClass");

                var link = tabGroup.find(".zwtab_tabtitles").find("li[id='tab" + tabGroupIndex + "_" + tabIndex + "']");
                tabGroup.find(".zwtab_activetabclass").removeClass("zwtab_activetabclass").removeClass(activeTabTitleClass)
                                                       .addClass("zwtab_tabclass").addClass(inactiveTabTitleClass);
                link.removeClass("zwtab_tabclass").removeClass(inactiveTabTitleClass)
                    .addClass("zwtab_activetabclass").addClass(activeTabTitleClass);

                tabGroup.find(".zwtab_tabcontentactive").removeClass("zwtab_tabcontentactive").addClass("zwtab_tabcontent");

                var activeTabId = link.attr("id");
                tabGroup.find(".zwtab_tabscontent").find("div[for='" + activeTabId + "']").removeClass("zwtab_tabcontent").addClass("zwtab_tabcontentactive");
            };

            /// функция-обработчик изменения таба в URL
            var _changeTabParameterHandler = function (changedParameterName, parameters) {
                var tabGroupIndex = changedParameterName.replace("tab", "");
                var tabIndex = parameters[changedParameterName];
                if (tabIndex == undefined)
                    tabIndex = 1;

                _activateTab(tabGroupIndex, tabIndex);
            };

            var _changeTabInUrl = function (clickedElement, tabGroupIndex) {
                var params = {};
                var activeTabId = clickedElement.attr("id").split("_").pop();
                params["tab" + tabGroupIndex] = activeTabId;
                ZetaHistory.setParameters(params, false);
            };

            return this.each(function () {
                var tabGroup = $(this);
                var tabGroupIndex = tabGroup.attr("index");

                ZetaHistory.registerHandler("tab" + tabGroupIndex, _changeTabParameterHandler);

                var tabTitles = tabGroup.find(".zwtab_tabtitles").find("li");
                tabTitles.find("a").click(function () {
                    _changeTabInUrl($(this).parents("li"), tabGroupIndex);
                    return false;
                });
                tabTitles.click(function () {
                    _changeTabInUrl($(this), tabGroupIndex);
                    return false;
                });
            });
        }
    });
})(jQuery);
