﻿//benchtabs.js

var m_bBenchTabsLoaded = false;
var m_strSelectedBenchTabID = "";
var m_strSelectedBenchTabClass = "benchTabSelected";
var m_strBenchTabClass = "benchTab";
var m_strBenchTabHilightClass = "benchTabHilight";

var m_strBenchTabDivClass = "divBenchTabs";
var m_strBenchTabImageClass = "benchTabImage";
var m_strBenchTabTextClass = "benchTabText";
var m_strBenchTabsHTML = "<div class='" + m_strBenchTabDivClass + "' >";

var m_strBenchHeaderCurrentTabset = "";
var m_strBenchTabsID = "";
var m_aTabSets = null;
var m_nTabSetIndex = 0;



Type.registerNamespace('TabDocWebLib');

TabDocWebLib.BenchTabs = function(element)
{
    TabDocWebLib.BenchTabs.initializeBase(this, [element]);

    //    this._highlightCssClass = null;
    //    this._nohighlightCssClass = null;




};

TabDocWebLib.BenchTabs.prototype = {


    initialize: function()
    {
        TabDocWebLib.BenchTabs.callBaseMethod(this, 'initialize');

        var e = this.get_element();

        SetClientSideBenchTabsId(e.id);
        ControllerSetBenchTabsID(e.id);




        //        this._onfocusHandler = Function.createDelegate(this, this._onFocus);
        //        this._onblurHandler = Function.createDelegate(this, this._onBlur);

        //        $addHandlers(this.get_element(),
        //                     { 'focus': this._onFocus,
        //                         'blur': this._onBlur
        //                     },
        //                     this);

        //        this.get_element().className = this._nohighlightCssClass;
    },

    dispose: function()
    {
        $clearHandlers(this.get_element());

        TabDocWebLib.BenchTabs.callBaseMethod(this, 'dispose');
    },

    BenchTabsAssertTabSet: function(tabSetName)
    {
        //    if( m_strBenchHeaderCurrentTabset != tabSetName )
        //    {
        m_strBenchHeaderCurrentTabset = tabSetName;

        ResetBenchTabs();

        var tabSet = GetTabSet(tabSetName);

        if (!IsNullOrEmpty(tabSet))
        {
            for (var i = 0; i < tabSet.TabCount; i++)
            {
                var tabSetItem = tabSet.TabInfo[i];
                if (!IsNullOrEmpty(tabSetItem))
                {
                    SetBenchTabItem(tabSetItem.Name, tabSetItem.Text, tabSetItem.Image);
                }
            }
        }
        //    }
        DoDrawBenchTabs();
    },

    SetSelectedTabItem: function(tabID)
    {

        if (!IsNullOrEmpty(tabID))
        {


            if (tabID !== m_strSelectedBenchTabID)
            {
                SetUnselectedTabItem(m_strSelectedBenchTabID);
                m_strSelectedBenchTabID = tabID;
            }
            var element = document.getElementById(tabID);
            if (!IsNullOrEmpty(element))
            {
                element.className = m_strSelectedBenchTabClass;
            }
        }
    }

    //
    // Event delegates
    //

    //    _onFocus: function(e)
    //    {
    //        if (this.get_element() && !this.get_element().disabled)
    //        {
    //            this.get_element().className = this._highlightCssClass;
    //        }
    //    },

    //    _onBlur: function(e)
    //    {
    //        if (this.get_element() && !this.get_element().disabled)
    //        {
    //            this.get_element().className = this._nohighlightCssClass;
    //        }
    //    },


    //    //
    //    // Control properties
    //    //

    //    get_highlightCssClass: function()
    //    {
    //        return this._highlightCssClass;
    //    },

    //    set_highlightCssClass: function(value)
    //    {
    //        if (this._highlightCssClass !== value)
    //        {
    //            this._highlightCssClass = value;
    //            this.raisePropertyChanged('highlightCssClass');
    //        }
    //    },

    //    get_nohighlightCssClass: function()
    //    {
    //        return this._nohighlightCssClass;
    //    },

    //    set_nohighlightCssClass: function(value)
    //    {
    //        if (this._nohighlightCssClass !== value)
    //        {
    //            this._nohighlightCssClass = value;
    //            this.raisePropertyChanged('nohighlightCssClass');
    //        }
    //    }


};

TabDocWebLib.BenchTabs.registerClass('TabDocWebLib.BenchTabs', Sys.UI.Control);










function ResetBenchTabs()
{
    m_strBenchTabsHTML = "<div class='" + m_strBenchTabDivClass + "' >";
    m_bBenchTabsLoaded = false;
}

function SetBenchTabItem( strId, strText, strImgUrl)
{

    m_strBenchTabsHTML += "<span " +
    "id='" + strId + "' " +
    "class='" + m_strBenchTabClass + "' " +
    "onclick='BenchTabsClicked( &quot;" + strId + "&quot;, event );' " +
    "onmouseover='BenchTabsMouseOver( &quot;" + strId + "&quot;, event );' " +
    "onmouseout='BenchTabsMouseOut( &quot;" + strId + "&quot;, event );'>" +
    "<img id='" + "img" + strId + "' src='" + strImgUrl + "'  alt='" + strText + "'  class='" + m_strBenchTabImageClass + "' />" +
	"<span  class='" + m_strBenchTabTextClass + "' >" + strText + " </span>" +
    "</span>";
}

function DrawBenchTabs(elementID)
{
    m_strBenchTabsHTML += "</div>";
    var element = document.getElementById(elementID);
    if ( !IsNullOrEmpty(element ))
    {
        element.innerHTML = m_strBenchTabsHTML;
        m_bBenchTabsLoaded = true;
    }
}

function SetUnselectedTabItem(tabID)
{
    if ( !IsNullOrEmpty( tabID  ))
    {
        var element = document.getElementById(tabID);
        if ( !IsNullOrEmpty(element ))
        {
            element.className = m_strBenchTabClass;
        }
    }
}

function BenchTabsClicked(tabID, evtObj)
{
    if (!IsNullOrEmpty(tabID))
    {
        if (m_strSelectedBenchTabID !== tabID)
        {
            var oBenchTabs = $find(m_strDivBenchTabsID);
            if (!IsNullOrEmpty(oBenchTabs))
            {

                oBenchTabs.SetSelectedTabItem(tabID);
            }
            FireBenchTrigger(tabID);
        }
    }
}

function BenchTabsMouseOver(tabID, evtObj)
{
    if (!IsNullOrEmpty(tabID))
    {

        if (tabID != m_strSelectedBenchTabID)
        {
            var tabItem = document.getElementById(tabID);
            if (!IsNullOrEmpty(tabItem))
            {

                tabItem.className = m_strBenchTabHilightClass;

            }
        }
    }

}

function BenchTabsMouseOut(tabID, evtObj)
{
    if (tabID != m_strSelectedBenchTabID)
    {
        var tabItem = document.getElementById(tabID);
        if ( !IsNullOrEmpty(tabItem ))
        {
            tabItem.className = m_strBenchTabClass;
        }
    }
}




function ControllerSetBenchTabsID(id)
{
    m_strBenchTabsID = id;
}

function SetTabSetCount(tabSetCount)
{
    m_nTabSetIndex = 0;
    m_aTabSets = new Array(tabSetCount);
}

function TabSet(name, tabCount)
{
    this.Name = name;
    this.TabCount = tabCount;
    this.TabInfo = new Array(tabCount);
}

function TabSetItem(name, text, image, formSets)
{
    this.Name = name;
    this.Text = text;
    this.Image = image;
    this.FormSets = formSets;
}

function DefineTabSet(name, tabCount)
{
    var tabSet = new TabSet(name, tabCount);
    m_aTabSets[m_nTabSetIndex] = tabSet;
    m_nTabSetIndex++;
}

function DefineTabSetItem(tabSetName, index, tabSetItemName, text, image, formSets)
{
    var tabSetItem = new TabSetItem(tabSetItemName, text, image, formSets);
    var tabSet = GetTabSet(tabSetName);
    if ( !IsNullOrEmpty(tabSet ))
    {
        tabSet.TabInfo[index] = tabSetItem;
    }
}

function GetCurrentTabSet()
{
    return GetTabSet(m_strBenchHeaderCurrentTabset);
}

function GetTabSet(name)
{
    var tabSet = null;
    if (!IsNullOrEmpty( name ))
    {
        if ( !IsNullOrEmpty(m_aTabSets ))
        {
            if (m_aTabSets.length > 0)
            {
                for (var i = 0; i < m_aTabSets.length; i++)
                {
                    var o = m_aTabSets[i];
                    if (o.Name == name)
                    {
                        tabSet = m_aTabSets[i];
                        break;
                    }
                }
            }
        }
    }
    return tabSet;
}


function DoDrawBenchTabs()
{
    DrawBenchTabs(m_strBenchTabsID);
}



if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();