﻿//traylist.js

var m_strTrayListHTML = "<div>";
var m_bTrayLoaded = false;
var m_strSelectedTrayListItemID = "";


var m_strSelectedTrayListClass = "trayListSelected";
var m_strTrayListClass = "trayList";
var m_strTrayListHilightClass = "trayListHilight";
var m_strTrayListDivClass = "divTrayList";
var m_strTrayListImageClass = "trayListImage";
var m_strTrayListTextClass = "trayListText";




var m_strTrayListCurrentTraySet = "";
var m_strTrayListID = null;
var m_aTraySets = null;
var m_nTraySetIndex = 0;

Type.registerNamespace('TabDocWebLib');

TabDocWebLib.TrayList = function(element)
{
    TabDocWebLib.TrayList.initializeBase(this, [element]);
};

TabDocWebLib.TrayList.prototype = {
    initialize: function()
    {
        TabDocWebLib.TrayList.callBaseMethod(this, 'initialize');
        var e = this.get_element();
        SetClientSideTrayListId(e.id);
        ControllerSetTrayListID(e.id);

    },

    dispose: function()
    {
        $clearHandlers(this.get_element());
        TabDocWebLib.TrayList.callBaseMethod(this, 'dispose');
    },

    SetSelectedTrayItem: function(trayItemID)
    {
        if (!IsNullOrEmpty(trayItemID))
        {
            SetUnselectedTrayItem(m_strSelectedTrayListItemID);
            m_strSelectedTrayListItemID = trayItemID;
            var element = document.getElementById(trayItemID);
            if (!IsNullOrEmpty(element))
            {
                element.className = m_strSelectedTrayListClass;
            }
        }
    },

    GetTraySetItem: function(name)
    {
        var traySetReturn = null;

        if (!IsNullOrEmpty(name))
        {
            if (!IsNullOrEmpty(m_aTraySets))
            {

                var traySet = null;

                for (var i = 0; i < m_aTraySets.length; i++)
                {
                    traySet = m_aTraySets[i];
                    if (!IsNullOrEmpty(traySet))
                    {
                        for (var j = 0; i < traySet.TrayCount; j++)
                        {
                            var traySetItem = traySet.TrayInfo[j];
                            if (!IsNullOrEmpty(traySetItem))
                            {
                                if (traySetItem.Name == name)
                                {
                                    traySetReturn = traySetItem;
                                    break;
                                }
                            }
                        }
                    }
                    if (!IsNullOrEmpty(traySetReturn))
                    {
                        break;
                    }
                }
            }
        }
        return traySetReturn;
    }
};

TabDocWebLib.TrayList.registerClass('TabDocWebLib.TrayList', Sys.UI.Control);




function ResetTrayList()
{
    m_strTrayListHTML = "<div class='" + m_strTrayListDivClass + "' >";
    m_bTrayLoaded = false;
}

function SetTrayListItem( strId, strText, strImgUrl)
{
    m_strTrayListHTML += "<div " +
   "id='" + strId + "' " +
   "class='" + m_strTrayListClass + "' " +
   "onclick='TrayItemClicked( &quot;" + strId + "&quot;, event );' " +
   "onmouseover='TrayItemMouseOver( &quot;" + strId + "&quot;, event );' " +
   "onmouseout='TrayItemMouseOut( &quot;" + strId + "&quot;, event );'> " +
    "<img id='" + "img" + strId + "' src='" + strImgUrl + "'  alt='" + strText + "'  class='" + m_strTrayListImageClass + "' />" +
   "<span  class='" + m_strTrayListTextClass + "' >" + strText + " </span>" +
    "</div>";
}

function DrawTrayList(elementID)
{
    m_strTrayListHTML += "</div>";

    var element = document.getElementById(elementID);
    if ( !IsNullOrEmpty(element ))
    {
        element.innerHTML = m_strTrayListHTML;
        m_bTrayLoaded = true;
    }
     ResizeModeTray();
}

function SetUnselectedTrayItem(trayItemID)
{
    if ( !IsNullOrEmpty(trayItemID  ))
    {
        var element = document.getElementById(trayItemID);
        if ( !IsNullOrEmpty(element ))
        {
            element.className = m_strTrayListClass;
        }
    }
}

function TrayItemClicked(trayItemID, evtObj)
{
    var src = evtObj.srcElement;
    if ( !IsNullOrEmpty(src ))
    {

        InitializeTrayListItem(trayItemID);
        ProcessDefaultTrayListItem(trayItemID);
    }
}


function TrayItemMouseOver( trayItemID, evtObj )
{
    if (!IsNullOrEmpty(trayItemID))
    {

        if (trayItemID !== m_strSelectedTrayListItemID)
        {
            var trayItem = document.getElementById(trayItemID);
            if (!IsNullOrEmpty(trayItem))
            {

                trayItem.className = m_strTrayListHilightClass;

            }
        }
    }

}

function TrayItemMouseOut(trayItemID, evtObj)
{
    if (!IsNullOrEmpty(trayItemID))
    {
        if (trayItemID !== m_strSelectedTrayListItemID)
        {
            var trayItem = document.getElementById(trayItemID);
            if (!IsNullOrEmpty(trayItem))
            {
                trayItem.className = m_strTrayListClass;
            }
        }
    }
}





function ControllerSetTrayListID(id)
{
    m_strTrayListID = id;
}

function TraySetItem(name, text, image, tabSet, tabSetItem, toolbar, formSet)
{
    this.Name = name;
    this.Text = text;
    this.Image = image;
    this.TabSet = tabSet;
    this.TabSetItem = tabSetItem;
    this.Toolbar = toolbar;
    this.FormSet = formSet;
}

function TraySet(name, trayCount)
{
    this.Name = name;
    this.TrayCount = trayCount;
    this.TrayInfo = new Array(trayCount);
}

function SetTraySetCount(traySetCount)
{
    m_nTraySetIndex = 0;
    m_aTraySets = new Array(traySetCount);
}

function DefineTraySet(name, trayCount)
{
    var traySet = new TraySet(name, trayCount);
    m_aTraySets[m_nTraySetIndex] = traySet;
    m_nTraySetIndex++;
}

function DefineTraySetItem(traySetName, index, traySetItemName, text, image, tabSet, tabSetItem, toolbar, formSet)
{
    var traySetItem = new TraySetItem(traySetItemName, text, image, tabSet, tabSetItem, toolbar, formSet);
    var traySet = GetTraySet(traySetName);

    if ( !IsNullOrEmpty(traySet ))
    {
        traySet.TrayInfo[index] = traySetItem;
    }
}

//function GetTraySetItem(name)
//{
//    var traySetReturn = null;

//    var traySet;
//    for (var i = 0; i < m_aTraySets.length; i++)
//    {
//        traySet = m_aTraySets[i];
//        if ( !IsNullOrEmpty(traySet ))
//        {
//            for (var j = 0; i < traySet.TrayCount; j++)
//            {
//                var traySetItem = traySet.TrayInfo[j];
//                if ( !IsNullOrEmpty(traySetItem ))
//                {
//                    if (traySetItem.Name == name)
//                    {
//                        traySetReturn = traySetItem;
//                        break;
//                    }
//                }
//            }
//        }
//        if ( !IsNullOrEmpty(traySetReturn ))
//        {
//            break;
//        }
//    }
//    return traySetReturn;
//}

function GetTraySet( name )
{
    var traySet = null;
    
    

    if ( !IsNullOrEmpty(m_aTraySets)  && !IsNullOrEmpty(name) )
    {
        for (var i = 0; i < m_aTraySets.length; i++)
        {
            var o = m_aTraySets[i];
            if (o.Name === name)
            {
                traySet = m_aTraySets[i];
                break;
            }
        }
    }
    return traySet;
}


function GetTrayListItemCount()
{
    var nReturn = 0;

    if ( !IsNullOrEmpty(m_strTrayListCurrentTraySet) )
    {
        var traySet = GetTraySet(m_strTrayListCurrentTraySet);
        if ( !IsNullOrEmpty(traySet ))
        {
            nReturn = traySet.TrayCount;
        }

    }
    return nReturn;
}

function TrayListAssertTraySet(traySetName)
{
    if (!IsNullOrEmpty(traySetName))
    {
        if (m_strTrayListCurrentTraySet !== traySetName)
        {
            m_strTrayListCurrentTraySet = traySetName;

            ResetTrayList();

            var traySet = GetTraySet(traySetName);

            if (!IsNullOrEmpty( traySet ))
            {
                for (var i = 0; i < traySet.TrayCount; i++)
                {
                    var traySetItem = traySet.TrayInfo[i];
                    if (!IsNullOrEmpty(traySetItem))
                    {
                        SetTrayListItem(traySetItem.Name, traySetItem.Text, traySetItem.Image);
                    }
                }
                DoDrawTrayList();
            }
        }
    }
}



function DoDrawTrayList()
{
    if (!IsNullOrEmpty( m_strTrayListID ))
    {
        DrawTrayList(m_strTrayListID);
    }
}









if(typeof(Sys)!=='undefined')Sys.Application.notifyScriptLoaded();