﻿/// <reference path="jquery-1.3.2-vsdoc2.js" />
/// <reference path="jquery-cookie.js" />

function TabContainer(_containerId, OnActiveTabChange)
{
    var containerId = _containerId;
    var OnActiveTabChange = OnActiveTabChange;

    function setTabs()
    {
        var siteSo = $("#" + containerId);

        var titleTabs = siteSo.find(".site_so_title span:not(.split)");
        var minTitleWidth = siteSo.attr("minTitleWidth");
        if (minTitleWidth)
        {
            titleTabs.each(function(i)
            {
                if ($(this).width() < minTitleWidth)
                {
                    $(this).width(minTitleWidth + "px");
                }
            });
        }

        titleTabs.mousemove(function() { siteSo.css("cursor", "pointer") });
        titleTabs.mouseout(function() { siteSo.css("cursor", "auto") });
        titleTabs.click(function()
        {
            titleTabs.removeClass("active");
            $(this).addClass("active");

            var titleTabIndex = titleTabs.index($(this));
            $.cookie("activeTabIndex", titleTabIndex);

            var oldActiveObj = siteSo.find(".site_so_content .active");
            oldActiveObj.removeClass("active");
            oldActiveObj.addClass("normal");

            var newActiveObj = siteSo.find(".site_so_content>div:eq(" + titleTabIndex + ")");
            newActiveObj.removeClass("normal");
            newActiveObj.addClass("active");

            if (OnActiveTabChange)
                OnActiveTabChange(titleTabs, $(this));
        });

        var defaultActiveIndex = siteSo.attr("defaultActiveIndex");
        var defaultActiveCookiIndex = $.cookie("activeTabIndex");
        if (defaultActiveCookiIndex)
            $(titleTabs[defaultActiveCookiIndex]).click();
        else
            if (defaultActiveIndex) $(titleTabs[defaultActiveIndex]).click();
    }

    this.init = function()
    {
        var container = $("#" + containerId);
        var html = '';

        var tabTitles = container.attr("tabTitle");
        if (!tabTitles) { alert("没有标题！"); return; }
        if (tabTitles)
        {
            tabTitles = tabTitles.split(",");

            html += '<div class="site_so_title">'
            for (var i = 0; i < tabTitles.length; i++)
            {
                if (i == 0)
                    html += '<span class="active">' + tabTitles[i] + '</span><span class="split"></span>';
                else
                    html += '<span>' + tabTitles[i] + '</span><span class="split"></span>';
            }
            html += '</div>';

            var oTitle = document.createElement("div");
            $(oTitle).insertBefore(container.children(":first"));
            $(oTitle).replaceWith(html);

            var addin = container.attr("tabAddin");
            if (addin !== "")
            {
                $("#" + addin).appendTo(container.find(".site_so_title"));
            }

            html = '';
        }

        html += '<div class="site_so_content">';
        html += '</div>';

        var oContent = document.createElement("div");
        $(oContent).insertAfter(container.children(":first"));
        $(oContent).replaceWith(html);
        oContent = container.find(".site_so_content");

        var tabIds = container.attr("tabs");
        if (tabIds)
        {
            tabIds = tabIds.split(",");
            for (var i = 0; i < tabIds.length; i++)
            {
                var tab = $("#" + tabIds[i]);
                if (i == 0) tab.addClass("active");
                else tab.addClass("normal");

                oContent.append(tab);
            }
        }
        else
        {
            container.find(">div:gt(1)").each(function(i)
            {
                tab = $(this);
                if (i == 0) tab.addClass("active");
                else tab.addClass("normal");

                oContent.append(tab);
            });
        }

        setTabs();
    }

    var tabItems = [];
    var tabItem = function(title, content)
    {
        this.title = title;
        this.content = content;
    }

    this.add = new function(title, content)
    {
        tabItems.push(new tabItem(title, content));
    }
}

$(document).ready(function()
{
    $.getScript("http://user.gyfc.net.cn/js/jquery-cookie.js", function()
    {
        $(".site_so").each(function(i)
        {
            var containerId = $(this).attr("id");
            if (!containerId)
            {
                containerId = "tabContainer" + i;
                $(this).attr("id", containerId)
            }
            var _OnActiveTabChange;
            eval("_OnActiveTabChange = " + $(this).attr("OnActiveTabChange"));
            var tabContainer1 = new TabContainer(containerId, _OnActiveTabChange);
            tabContainer1.init();
        });
    });
});
    
