///----------------------------------------------------------------
/// Begin : NisTech ToolBar Web Control client side script

///////////////////////////////////////////////////////////////////
// NTToolBarButton Constants
BS_CHECKED = 1;
BS_ENABLED = 2;
BS_VISIBLE = 4;
BS_EXPANDED = 8;
BS_SELECTED = 16;
BS_SEPARATOR = 128;

///////////////////////////////////////////////////////////////////
// NTToolBar State Constants
TS_SHOWBUTTONIMAGE = 1;
TS_INHERITSHOWBUTTONIMAGE = 2;
TS_SHOWBUTTONTEXT = 4;
TS_INHERITSHOWBUTTONTEXT = 8;
TS_DYNAMICTOOLBAR = 16;
TS_INHERITDYNAMICTOOLBAR = 32;

///////////////////////////////////////////////////////////////////
// NTToolBar Root State Constants
TRS_CHECKBOXES = 1;
TRS_MULTISELECT = 2;
TRS_AUTOPOSTBACK = 4;
TRS_EXPANDONACTION = 8;
TRS_DOUBLECLICKING = 16;
TRS_CALLBACKENABLED = 32;
TRS_POSTBACKONDEFAULTACTION = 64;
TRS_LOADONDEMAND = 128;

///////////////////////////////////////////////////////////////////
// NTToolBar lifetime variables
var g_CurrentPopup = null;
var g_bResized = false;
var g_ScrollLeft = 0;
var g_ScrollTop = 0;

function NTToolBar(nLevel, nWidth, nHeight, objTemplate, strContainerCssClass, strHotCssClass, strNormalCssClass, strHotCheckedCssClass, strCheckedCssClass, strDisabledCssClass, strSelectedCssClass, strHotTextCssClass, strNormalTextCssClass, strHotCheckedTextCssClass, strCheckedTextCssClass, strDisabledTextCssClass, strSelectedTextCssClass, nButtonSpacing, strButtonWidth, strButtonHeight, nToolBarState, arrButtons)
{	
	this.Level = nLevel;
	this.Width = nWidth;
	this.Height = nHeight;
	if (objTemplate != null)
	{
		this.TemplateObj = objTemplate;
		this.TemplateObj.ToolBar = this;
	}
	this.ContainerCssClass = strContainerCssClass;
	
	this.HotCssClass = strHotCssClass;
	this.NormalCssClass = strNormalCssClass;
	this.HotCheckedCssClass = strHotCheckedCssClass;
	this.CheckedCssClass = strCheckedCssClass;
	this.DisabledCssClass = strDisabledCssClass;
	this.SelectedCssClass = strSelectedCssClass;
	
	this.HotTextCssClass = strHotTextCssClass;
	this.NormalTextCssClass = strNormalTextCssClass;
	this.HotCheckedTextCssClass = strHotCheckedTextCssClass;
	this.CheckedTextCssClass = strCheckedTextCssClass;
	this.DisabledTextCssClass = strDisabledTextCssClass;
	this.SelectedTextCssClass = strSelectedTextCssClass;
	
	this.ButtonSpacing = nButtonSpacing;
	this.ButtonWidth = strButtonWidth;
	this.ButtonHeight = strButtonHeight;
	
	this.ToolBarState = nToolBarState;
	
	if (nToolBarState & TS_SHOWBUTTONIMAGE)
		this.ShowButtonImage = true;
	else if (!(nToolBarState & TS_INHERITSHOWBUTTONIMAGE))
		this.ShowButtonImage = false;
	else if (nLevel == 0)
		this.ShowButtonImage = true;
		
	if (nToolBarState & TS_SHOWBUTTONTEXT)
		this.ShowButtonText = true;
	else if (!(nToolBarState & TS_INHERITSHOWBUTTONTEXT))
		this.ShowButtonText = false;
	else if (nLevel == 0)
		this.ShowButtonText = true;
		
	if (nToolBarState & TS_DYNAMICTOOLBAR)
		this.DynamicToolBar = true;
	else if (!(nToolBarState & TS_INHERITDYNAMICTOOLBAR))
		this.DynamicToolBar = false;
	else if (nLevel == 0)
		this.DynamicToolBar = true;
	
	this.Buttons = new Array(arrButtons.length);	
	for (var i = 0; i < arrButtons.length; i++)
	{
		arr = arrButtons[i];
		this.Buttons[i] = new NTToolBarButton(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9], arr[10],arr[11]);
		this.Buttons[i].OwnerToolBar = this;
	}
	
	if (i)
	{
		this.Buttons[0].FirstItem = true;
		this.Buttons[i - 1].LastItem = true;
	}
	
	this.ControlID = null;
	this.Control = null;
	this.MouseOver = false;
	
	this.HotButton = null;
	this.Display = false;
}

NTToolBar.prototype.Initialize = function(strID, arrImageList, strSystemImagePath, strImagePath, nToolBarRootState, bOnLoadEvent)
{
	this.ImageList = arrImageList;
	this.SystemImagePath = strSystemImagePath;
	this.ImagePath = strImagePath;

	this.CheckBoxes = nToolBarRootState & TRS_CHECKBOXES;
	this.MultiSelect = nToolBarRootState & TRS_MULTISELECT;
	this.AutoPostBack = nToolBarRootState & TRS_AUTOPOSTBACK;
	this.ExpandOnAction = nToolBarRootState & TRS_EXPANDONACTION;	
	this.DoubleClicking = nToolBarRootState & TRS_DOUBLECLICKING;
	this.CallBackEnabled = nToolBarRootState & TRS_CALLBACKENABLED;
	this.PostBackOnDefaultAction = nToolBarRootState & TRS_POSTBACKONDEFAULTACTION;
	this.LoadOnDemand = nToolBarRootState & TRS_LOADONDEMAND;
	
	this.CreatedElements = new Array();
	
	this.AttachControl(strID);		
}

NTToolBar.prototype.Merge = function(tb)
{
	if (!this.Width && tb.Width)
		this.Width = tb.Width;
		
	if (!this.Height && tb.Height)
		this.Height = tb.Height;
		
	if (!this.TemplateObj && tb.TemplateObj)
	{
		this.TemplateObj = tb.TemplateObj;
		this.TemplateObj.ToolBar = this;
	}
		
	if (!this.ContainerCssClass && tb.ContainerCssClass)
		this.ContainerCssClass = tb.ContainerCssClass;
		
	if (!this.HotCssClass && tb.HotCssClass)
		this.HotCssClass = tb.HotCssClass;
		
	if (!this.NormalCssClass && tb.NormalCssClass)
		this.NormalCssClass = tb.NormalCssClass;
		
	if (!this.HotCheckedCssClass && tb.HotCheckedCssClass)
		this.HotCheckedCssClass = tb.HotCheckedCssClass;
		
	if (!this.CheckedCssClass && tb.CheckedCssClass)
		this.CheckedCssClass = tb.CheckedCssClass;
		
	if (!this.DisabledCssClass && tb.DisabledCssClass)
		this.DisabledCssClass = tb.DisabledCssClass;
		
	if (!this.SelectedCssClass && tb.SelectedCssClass)
		this.SelectedCssClass = tb.SelectedCssClass;
		
	
	if (!this.HotTextCssClass && tb.HotTextCssClass)
		this.HotTextCssClass = tb.HotTextCssClass;
		
	if (!this.NormalTextCssClass && tb.NormalTextCssClass)
		this.NormalTextCssClass = tb.NormalTextCssClass;
		
	if (!this.HotCheckedTextCssClass && tb.HotCheckedTextCssClass)
		this.HotCheckedTextCssClass = tb.HotCheckedTextCssClass;
		
	if (!this.CheckedTextCssClass && tb.CheckedTextCssClass)
		this.CheckedTextCssClass = tb.CheckedTextCssClass;
		
	if (!this.DisabledTextCssClass && tb.DisabledTextCssClass)
		this.DisabledTextCssClass = tb.DisabledTextCssClass;
		
	if (!this.SelectedTextCssClass && tb.SelectedTextCssClass)
		this.SelectedTextCssClass = tb.SelectedTextCssClass;
		
		
	if (!this.ButtonSpacing && tb.ButtonSpacing)
		this.ButtonSpacing = tb.ButtonSpacing;
		
	if (!this.ButtonWidth && tb.ButtonWidth)
		this.ButtonWidth = tb.ButtonWidth;
		
	if (!this.ButtonHeight && tb.ButtonHeight)
		this.ButtonHeight = tb.ButtonHeight;
		
	if (this.ShowButtonText == null && tb.ShowButtonText)
		this.ShowButtonText = tb.ShowButtonText;
		
	if (this.ShowButtonImage == null && tb.ShowButtonImage)
		this.ShowButtonImage = tb.ShowButtonImage;
}

NTToolBar.prototype.RemoveToolBar = function()
{	
	for (var i = 0; i < this.CreatedElements.length; i++)
	{
		this.RootToolBar.Control.removeChild(this.CreatedElements[i]);
	}
}

NTToolBar.prototype.AttachControl = function(id)
{		
	if (this.ControlID == null)
	{
		this.ControlID = id;
		this.LayoutControlID = id + "_LC";
		this.Control = document.getElementById(id);
		
		var root = this;			
		while (root.OwnerButton != null)
		{
			root = root.OwnerButton.OwnerToolBar;
		}
		this.RootToolBar = root;
		
		if (this.OwnerButton)
			this.Merge(this.OwnerButton.OwnerToolBar);		
		
		var strButtonsHTML = "";
		var strSelectedKey = NTGetVar(root.ControlID + ":c");
		var btn;
		
		for (var i = 0; i < this.Buttons.length; i++)
		{
			btn = this.Buttons[i];
			if (btn.Separator)
			{
				strButtonsHTML += this.TemplateObj.GetSeparatorHTML();
			}
			else
			{
				if (!root.SelectedButton && (strSelectedKey == btn.Key || btn.Selected))
				{
					root.SelectedButton = btn;
					if (!strSelectedKey)
					{
						strSelectedKey = btn.Key;
						NTSetVar(root.ControlID + ":c", strSelectedKey);
					}
				}
				btn.ClientID = id + "_" + i;//btn.Key;
				btn.ImageID = btn.ClientID + "_img";
				btn.TextID = btn.ClientID + "_txt";
				
				if (this.RootToolBar.ImageList)
				{
					btn.HotImage = this.RootToolBar.ImageList[btn.HotImage];
					btn.NormalImage = this.RootToolBar.ImageList[btn.NormalImage];
					btn.DisabledImage = this.RootToolBar.ImageList[btn.DisabledImage];
					btn.CheckedImage = this.RootToolBar.ImageList[btn.CheckedImage];
					btn.ExpandedImage = this.RootToolBar.ImageList[btn.ExpandedImage];
				}
				
				strButtonsHTML += this.TemplateObj.GetButtonHTML(btn);
				//if (i < this.Buttons.length - 1 && this.ButtonSpacing)
				if (this.ButtonSpacing && i < this.Buttons.length - 1 && !this.Buttons[i + 1].Separator)
					strButtonsHTML += this.TemplateObj.GetSpaceHTML(this.ButtonSpacing);
				if (btn.SubToolBar)
				{
					if (btn.SubToolBar.DynamicToolBar == null)
						btn.SubToolBar.DynamicToolBar = this.DynamicToolBar;
					btn.SubToolBarClientID = btn.ClientID + "_sub";
					if (!btn.SubToolBar.DynamicToolBar)
					{				
						strButtonsHTML += this.TemplateObj.GetEmptyItemHTML(btn.SubToolBarClientID);
					}
					else
						btn.NavigateUrl = null;
				}
			}			
		}
		this.Control.innerHTML = this.TemplateObj.GetToolBarLayoutHTML(strButtonsHTML);
		this.LayoutControl = document.getElementById(this.LayoutControlID);
		this.LayoutControl.ToolBar = this;
		this.Control.ToolBar = this;		
		
		var objCtl;
		for (var i = 0; i < this.Buttons.length; i++)
		{
			if (!this.Buttons[i].Separator)
			{
				objCtl = document.getElementById(this.Buttons[i].ClientID);
				
				objCtl.Button = this.Buttons[i];
				objCtl.Button.Control = objCtl;
				
				if (objCtl.Button.SubToolBar && !objCtl.Button.SubToolBar.DynamicToolBar)
				{
					objCtl.Button.SubToolBar.Display = objCtl.Button.Expanded;
					objCtl.Button.SubToolBar.AttachControl(objCtl.Button.SubToolBarClientID);
					if (!objCtl.Button.Expanded)
						objCtl.Button.SubToolBar.Control.style.display = 'none';
				}
				
				objCtl.Button.TextControl = document.getElementById(objCtl.Button.TextID);
				objCtl.Button.ImageControl = document.getElementById(objCtl.Button.ImageID);
				if (objCtl.Button.ToolTip && objCtl.Button.ImageControl)
					objCtl.Button.ImageControl.ToolTip =  objCtl.Button.ToolTip;
				
				NTToolBarButton_RenderButton(objCtl.Button);
			}
		}
	}
}

NTToolBar.prototype.ClearButtonStates = function()
{
	for (var i = 0; i < this.Buttons.length; i++)
	{
		if (!this.Buttons[i].Separator)
		{
			this.Buttons[i].MouseOver = false;
			NTToolBarButton_RenderButton(this.Buttons[i]);
		}
	}
}

NTToolBar.prototype.ShowToolBar = function(bShow, objToToolBar)
{	
	var strState = bShow ? '' : 'none';
	
	if (objToToolBar == null)
	{
		this.Control.style.display = strState;
		if (this.Control.MaskFrame)
			this.Control.MaskFrame.style.display = strState;
		this.ClearTimeOut();
	}
	else
	{
		var tbl = this;
		var btn;
		
		do
		{			
			for (var i = 0; i < tbl.Buttons.length; i++)
			{	
				if (tbl.Buttons[i].SubToolBar && tbl.Buttons[i].SubToolBar.Display != bShow)
				{	
					tbl.Buttons[i].SubToolBar.ShowToolBar(bShow, tbl);
				}
			}
			
			btn = tbl.OwnerButton;	// parent button			
			
			if (btn)	
			{	
				tbl.Control.style.display = strState;
				if (tbl.Control.MaskFrame)
					tbl.Control.MaskFrame.style.display = strState;
				// Clear button state
				btn.MouseOver = false;	// Clear Hot state of the button
				NTToolBarButton_RenderButton(btn);	// Repaint the button
				tbl.ClearTimeOut();
				tbl = btn.OwnerToolBar;			// parent toolbar
			}
		} while ((objToToolBar == -1 || tbl != objToToolBar) && btn != null);
		this.HotButton = null;
	}
	
	this.Display = bShow;
}

NTToolBar.prototype.SetTimeOut = function()
{
	this.TimerID = setTimeout("document.getElementById('" + this.ControlID + "').ToolBar.ShowToolBar(false, -1);", 800);
}

NTToolBar.prototype.ClearTimeOut = function()
{
	if (this.TimerID)
	{
		clearTimeout(this.TimerID);
		this.TimerID = null;	
	}
}

// NTToolBar Event handers

function NTToolBar_WindowResize(evt)
{	
	g_bResized = true;
}

function NTToolBar_OnMouseOver(id, evt)
{
	if (g_CurrentPopup)
	{
		document.getElementById(id).ToolBar.ClearTimeOut();
	}
}

function NTToolBar_OnMouseOut(id, evt)
{
	if (g_CurrentPopup)
	{	
		var tb = document.getElementById(id).ToolBar;
		
		if (tb == g_CurrentPopup)
		{
			tb.SetTimeOut();
		}
		else
			tb.ClearTimeOut();
	}
}

function NTToolBarButton(strKey, strNavigateUrl, strClickActionScript, nHotImage, nNormalImage, nDisabledImage, nCheckedImage, nExpandedImage, strText, strToolTip, nButtonState, objSubToolBar)
{
	this.Key = strKey;
	if (strNavigateUrl && strNavigateUrl.substr(0, 1) == '?')	// Decided to open a new window
	{
		strNavigateUrl = strNavigateUrl.substr(1, strNavigateUrl.length - 1);
		this.OpenWindow = true;
	}
	
	this.NavigateUrl = strNavigateUrl;
	this.ClickActionScript = strClickActionScript;
	this.HotImage = nHotImage;
	this.NormalImage = nNormalImage;
	this.DisabledImage = nDisabledImage;
	this.CheckedImage = nCheckedImage;
	this.ExpandedImage = nExpandedImage;
	this.Text = strText;
	this.ToolTip = strToolTip ? strToolTip : strText;
	this.SubToolBar = objSubToolBar;
	
	this.Separator = nButtonState & BS_SEPARATOR;
	this.Enabled = nButtonState & BS_ENABLED;
	this.Checked = nButtonState & BS_CHECKED;
	this.Expanded = nButtonState & BS_EXPANDED;
	this.Selected = nButtonState & BS_SELECTED;
	
	if (this.SubToolBar != null)		
		this.SubToolBar.OwnerButton = this;
}

NTToolBarButton.prototype.Expand = function(bExpand)
{	
	if (this.SubToolBar)
	{
		if (bExpand == null)
			bExpand = !this.Expanded;
		
		var	str = NTGetVar(this.OwnerToolBar.RootToolBar.ControlID + ":e");
		if (str == null)
			str = '';
		if (bExpand)
			str += '@' + this.Key + ',';
		else
		{
			strSearch = '@' + this.Key + ',';
			var n = str.indexOf(strSearch);
			if (n != -1)
			{
				str = str.substr(0, n) + str.substr(n + strSearch.length);
			}
			str += '!' + this.Key + ',';
		}
		NTSetVar(this.OwnerToolBar.RootToolBar.ControlID + ":e", str);
		
		this.Expanded = bExpand;
		this.SubToolBar.Control.style.display = bExpand ? '' : 'none';
		NTToolBarButton_RenderButton(this);
	}
}

NTToolBarButton.prototype.RaiseToolBarEvent = function(strEventName)
{
	if (this.OwnerToolBar.RootToolBar.CallBackEnabled && !this.OwnerToolBar.RootToolBar.PostBackOnDefaultAction)
	{
		///////////////////////////////////////////////
		// Do CallBack
		NTAJAXControl_LookupRegion(this.OwnerToolBar.RootToolBar.Control);
		NTAJAXFireEvent(this.OwnerToolBar.RootToolBar.Control.getAttribute('name'), strEventName + "," + this.Key, null, null, true, true, 1);
	}
	else
	{
		///////////////////////////////////////////////
		// Do PostBack
		form = document.forms[0];
		form.__EVENTTARGET.value = this.OwnerToolBar.RootToolBar.Control.getAttribute('name').split("$").join(":");
		form.__EVENTARGUMENT.value = strEventName + "," + this.Key;
		form.submit();
	}
}

function NTToolBarButton_RenderButton(btn)
{
	var strImage = (btn.Expanded && btn.ExpandedImage) ? btn.ExpandedImage : null;
	var strCssClass;
	var strTextCssClass;
	
	if (btn.Enabled)	
	{
		if (btn.Selected && btn.OwnerToolBar.SelectedCssClass)
		{
			btn.Control.className = btn.OwnerToolBar.SelectedCssClass;
			if (btn.TextControl && btn.OwnerToolBar.SelectedTextCssClass)
				btn.TextControl.className = btn.OwnerToolBar.SelectedTextCssClass;
			if (!strImage) strImage = btn.NormalImage;
		}
		else if (btn.MouseOver)
		{
			if (btn.Checked)
			{
				btn.Control.className = btn.OwnerToolBar.HotCheckedCssClass;			
				if (btn.TextControl && btn.OwnerToolBar.HotCheckedTextCssClass)
					btn.TextControl.className = btn.OwnerToolBar.HotCheckedTextCssClass;
				if (!strImage)
				{
					if (btn.CheckedImage)
						strImage = btn.CheckedImage;
					else
						strImage = btn.HotImage;
				}
			}
			else
			{
				btn.Control.className = btn.OwnerToolBar.HotCssClass;
				if (btn.TextControl && btn.OwnerToolBar.HotTextCssClass)
					btn.TextControl.className = btn.OwnerToolBar.HotTextCssClass;
				if (!strImage) strImage = btn.HotImage;
			}
		}		
		else		
		{
			if (btn.Checked)
			{
				btn.Control.className = btn.OwnerToolBar.CheckedCssClass;
				if (btn.TextControl && btn.OwnerToolBar.CheckedTextCssClass)
					btn.TextControl.className = btn.OwnerToolBar.CheckedTextCssClass;
				if (!strImage) strImage = btn.CheckedImage;
			}
			else
			{
				btn.Control.className = btn.OwnerToolBar.NormalCssClass;
				if (btn.TextControl && btn.OwnerToolBar.NormalTextCssClass)
					btn.TextControl.className = btn.OwnerToolBar.NormalTextCssClass;
				if (!strImage) strImage = btn.NormalImage;
			}
		}
	}
	else
	{
		btn.Control.className = btn.OwnerToolBar.DisabledCssClass;
		if (btn.TextControl && btn.OwnerToolBar.DisabledTextCssClass)
			btn.TextControl.className = btn.OwnerToolBar.DisabledTextCssClass;
		strImage = btn.DisabledImage;
	}
	/*if (btn.Disabled)
	{
		strImage = btn.DisabledImage;
		strCssClass = btn.OwnerToolBar.DisabledCssClass;
		strTextCssClass = btn.OwnerToolBar.DisabledTextCssClass;
	}
	else if (btn.Selected)
	{
		strImage = btn.Expanded ? btn.ExpandedImage : btn.NormalImage;
		strCssClass = btn.OwnerToolBar.SelectedCssClass;
		strTextCssClass = btn.OwnerToolBar.SelectedTextCssClass;
	}
	else if (btn.MouseOver)
	{
		if (btn.Checked)
		{
			strImage = btn.Expanded ? btn.ExpandedImage : btn.HotCheckedImage;
			strCssClass = btn.OwnerToolBar.HotCheckedCssClass;
			strTextCssClass = btn.OwnerToolBar.HotCheckedTextCssClass;
		}
		else
		{
			strImage = btn.Expanded ? btn.ExpandedImage : btn.HotImage;
			strCssClass = btn.OwnerToolBar.HotCssClass;
			strTextCssClass = btn.OwnerToolBar.HotTextCssClass;
		}
	}
	else
	{
		if (btn.Checked)
		{
			strImage = btn.Expanded ? btn.ExpandedImage : btn.CheckedImage;
			strCssClass = btn.OwnerToolBar.CheckedCssClass;
			strTextCssClass = btn.OwnerToolBar.CheckedTextCssClass;
		}
		else
		{
			strImage = btn.Expanded ? btn.ExpandedImage : btn.NormalImage;
			strCssClass = btn.OwnerToolBar.NormalCssClass;
			strTextCssClass = btn.OwnerToolBar.NormalTextCssClass;
		}
	}
			
	if (!strImage)
		strImage = btn.NormalImage;
	if (!strCssClass)
		strCssClass = btn.OwnerToolBar.NormalCssClass;
	if (!strTextCssClass)
		strTextCssClass = btn.OwnerToolBar.NormalTextCssClass;
		
	if (strCssClass)
		btn.Control.className = strCssClass;
	if (btn.TextControl && strTextCssClass)
		btn.TextControl.className = strTextCssClass;*/
		
	if (!strImage && btn.ImageControl)
	{		
		strImage = btn.NormalImage;
		if (!strImage)
			btn.ImageControl.src = btn.OwnerToolBar.RootToolBar.SystemImagePath + "space.gif";
	}	
	
	if (strImage && btn.CurrentImage != strImage && btn.ImageControl)
	{		
		btn.CurrentImage = strImage;
		btn.ImageControl.src = btn.OwnerToolBar.RootToolBar.ImagePath + strImage;
	}
	
	if (btn.OwnerToolBar.TemplateObj.RenderButton)
		btn.OwnerToolBar.TemplateObj.RenderButton(btn);		
}

// Event handlers
function NTToolBarButton_OnClick(id, evt)
{
	var btn = document.getElementById(id).Button;	
	if (btn.Enabled)
	{
		if (btn.ClickActionScript)
		{
			eval("function action(){" + btn.ClickActionScript + "}");
			if (!action())
			{
				return false;
			}
		}				
		
		if (btn.NavigateUrl)
		{
			if (btn.OpenWindow)
				window.open(btn.NavigateUrl);
			else
			{
				window.location.href = btn.NavigateUrl;
				//window.navigate(btn.NavigateUrl);
			}
		}
		else 
		{
			if (btn.OwnerToolBar.MultiSelect)
			{
			}
			else
			{
				if (btn != btn.OwnerToolBar.RootToolBar.SelectedButton)
				{
					var str = '@' + btn.Key + ',';
					
					btn.Selected = true;
					if (btn.OwnerToolBar.RootToolBar.SelectedButton)
					{
						btn.OwnerToolBar.RootToolBar.SelectedButton.Selected = false;
						NTToolBarButton_RenderButton(btn.OwnerToolBar.RootToolBar.SelectedButton);
						str += '!' + btn.OwnerToolBar.RootToolBar.SelectedButton.Key + ',';
					}									
					
					NTSetVar(btn.OwnerToolBar.RootToolBar.ControlID + ":s", str);
					NTSetVar(btn.OwnerToolBar.RootToolBar.ControlID + ":c", btn.Key);	// selected button key
					
					btn.OwnerToolBar.RootToolBar.SelectedButton = btn;
					NTToolBarButton_RenderButton(btn);
				}
			}				
					
			if (btn.SubToolBar && !btn.SubToolBar.DynamicToolBar && btn.OwnerToolBar.RootToolBar.ExpandOnAction)
				btn.Expand(true);
			
			if (btn.OwnerToolBar.RootToolBar.AutoPostBack)
				btn.RaiseToolBarEvent("click");
		}
	}
}

function NTToolBarButton_OnMouseOver(id, evt)
{	
	var btn = document.getElementById(id).Button;	
	if (GlobalEnable && btn.Enabled && !btn.MouseOver)
	{	
		if (btn.OwnerToolBar.HotButton && btn.OwnerToolBar.DynamicToolBar && btn.OwnerToolBar.HotButton.SubToolBar && btn.OwnerToolBar.HotButton.SubToolBar.Display)
		{
			btn.OwnerToolBar.HotButton.SubToolBar.ShowToolBar(false, btn.OwnerToolBar);
			g_CurrentPopup = btn.OwnerToolBar;
		}				
			
		btn.OwnerToolBar.HotButton = btn;
		btn.MouseOver = true;
		NTToolBarButton_RenderButton(btn);
		
		if (btn.SubToolBar && btn.SubToolBar.DynamicToolBar)
		{	
			var btnDim = new NTGetElementDims(btn.Control);
			var btnParentDim = new NTGetElementDims(btn.OwnerToolBar.Control);
			var strSubID = btn.ClientID + "_sub";
			var objCtl = document.getElementById(strSubID);
			
			g_ScrollLeft = document.body.scrollLeft;	// Save the current scrollLeft position
			g_ScrollTop = document.body.scrollTop;		// Save the current scrollTop position
			
			if (objCtl != null)							// If the ToolBar container control is already created
			{	
				objCtl.style.display = '';				// Show it
				if (objCtl.MaskFrame)
					objCtl.MaskFrame.style.display = '';// Show the Mask Frame
			}
			else
			{					
				if (!g_CurrentPopup)
				{
					if (document.attachEvent)
						window.attachEvent("onresize", NTToolBar_WindowResize);
					else
						window.addEventListener("resize", NTToolBar_WindowResize, true);
				}
				
				if (!btn.OwnerToolBar.RootToolBar.m_ctlRoot)
				{
					if (document.all)	// IE Bug, calculate real offset
					{
						var ctl = btn.OwnerToolBar.RootToolBar.Control.offsetParent;
						while (ctl)
						{
							if (ctl.style.position == 'absolute')
								break;
							ctl = ctl.offsetParent;
						}
						
						if (ctl)	// found a parent with an absolute position
						{
							btn.OwnerToolBar.RootToolBar.m_ctlRoot = document.body;
						}
						else
							btn.OwnerToolBar.RootToolBar.m_ctlRoot = btn.OwnerToolBar.RootToolBar.Control;
					}
					else
					{
						btn.OwnerToolBar.RootToolBar.m_ctlRoot = btn.OwnerToolBar.RootToolBar.Control;
					}
				}
			
				objCtl = document.createElement("div");	// Create a new DIV element
				objCtl.id = strSubID;						// Assign an ID
				objCtl.style.position = 'absolute';	
				objCtl.style.zIndex = 2;
				btn.OwnerToolBar.RootToolBar.m_ctlRoot.appendChild(objCtl);
				
				btn.OwnerToolBar.RootToolBar.CreatedElements.push(objCtl);
				
				if (document.all)
				{
					var oIFR = document.createElement('iframe');
					
					oIFR.id = strSubID + 'Frame';			
					oIFR.style.filter = "progid:DXImageTransform.Microsoft.Alpha(opacity=0)";
					oIFR.scrolling = 'no';
					oIFR.frameBorder = 'no';
					oIFR.style.position = 'absolute';
					oIFR.style.zIndex = 1;
					oIFR.style.display = '';
					btn.OwnerToolBar.RootToolBar.m_ctlRoot.appendChild(oIFR);
					objCtl.MaskFrame = oIFR;
					
					btn.OwnerToolBar.RootToolBar.CreatedElements.push(oIFR);
				}
				btn.SubToolBar.AttachControl(strSubID);
				btn.SubToolBar.ClearTimeOut();
			}									
			
			btn.SubToolBar.Display = true;
			g_CurrentPopup = btn.SubToolBar;			
			
			var tblDim = new NTGetElementDims(objCtl);
			
			if (btn.OwnerToolBar.TemplateObj.HorizontalButtons)
			{					
				objCtl.style.top = btnDim.Top;
				
				if (btnDim.Right + tblDim.Width - g_ScrollLeft > document.body.clientWidth)
					objCtl.style.left = btnParentDim.Left - tblDim.Width;
				else
					objCtl.style.left = btnDim.Right + 1;
			}
			else
			{					
				//objCtl.style.top = btnDim.Top + btnDim.Height;
				
				if (btnDim.Left + tblDim.Width - g_ScrollLeft > document.body.clientWidth)
					objCtl.style.left = g_ScrollLeft + document.body.clientWidth - tblDim.Width;
				else
					objCtl.style.left = btnDim.Left;
			}
			
			if (objCtl.MaskFrame)
			{
				objCtl.MaskFrame.style.width = tblDim.Width;
				objCtl.MaskFrame.style.height = tblDim.Height;
				objCtl.MaskFrame.style.left = objCtl.style.left;
				objCtl.MaskFrame.style.top = objCtl.style.top;					
			}
		}
	}

	if (btn.SubToolBar)
		btn.SubToolBar.ClearTimeOut();
	btn.OwnerToolBar.ClearTimeOut();
}

function NTToolBarButton_OnMouseOut(id, evt)
{	
	var btn = document.getElementById(id).Button;
	if (btn.Enabled && btn.MouseOver)
	{
		if (btn.SubToolBar && btn.SubToolBar.DynamicToolBar && btn.SubToolBar.Display)	// Subtoolbar has been poping up
		{
			if (btn.SubToolBar.TimerID == null)
				btn.SubToolBar.SetTimeOut();
		}
		else
		{
			btn.MouseOver = false;	// Clear Hot state of the button
			NTToolBarButton_RenderButton(btn);	// Repaint the button
			btn.OwnerToolBar.HotButton = null;
		}
	}
}

/// End : NisTech ToolBar Web Control client side script
///----------------------------------------------------------------
