// $Revision: 3 $ $Date: 2010-01-29 15:09:05+00:00 $ $Workfile: TT_Toolbar.js $

var tttb_state=[];
var ttooolbar_lastClientObject;

function tttb_initToolBar(id, tableId) 
{	
	var accessKeyData;
	try
	{
		accessKeyData =eval("tttb_"+id+"_Toolbar");
	}
	catch(e){}
	var ttstate = new tttb_toolBar(id,tableId,accessKeyData);	
}

function tttb_toolBar(id,tableId, props)
{
	tttb_state[id]=this;		
	this.TableId =tableId;	
	if(props !=null)
	{
		for(i=0;i<props[0].length;i++)
		{
			keys= new Array();
			controls = new Array();		
			for(k=0;k<props[0].length;k++)
			{
				keys[keys.length] = new tttb_key(props[0][k]);
				controls[controls.length] = new tttb_control(props[1][k]);
			}
			this.Keys= keys;	
			this.Controls =	controls;		
		}
    	this.Title = props[2];
        this.Header = props[3];
	}			

	this.ButtonVisbility =ButtonVisbility;
	this.GetLinkFromOperation = GetLinkFromOperation;
	
	function ButtonVisbility(operation, visibility)
	{
		var div =document.getElementById(this.TableId);
		//html structure: div > ul > li >. a
		if(div.childNodes.length ==1)
		{	
			for(var i=0;i<div.childNodes[0].childNodes.length;i++)
			{
				if(div.childNodes[0].childNodes[i].childNodes.length >0 &&
					div.childNodes[0].childNodes[i].childNodes[0].lo ==operation)
				{
					if(!visibility)
					{
						div.childNodes[0].childNodes[i].childNodes[0].style.visibility = "hidden";
						div.childNodes[0].childNodes[i].childNodes[0].style.display="none";
						
						div.childNodes[0].childNodes[i].style.visibility = "hidden";
						div.childNodes[0].childNodes[i].style.display="none";
					}
					else
					{
						div.childNodes[0].childNodes[i].childNodes[0].style.visibility = "visible";
						div.childNodes[0].childNodes[i].childNodes[0].style.display="";
						
						div.childNodes[0].childNodes[i].style.visibility = "visible";
						div.childNodes[0].childNodes[i].style.display="";
					}										
					break;
				}
			}
		}
		else
		{
		
		}
	}	
	
	function GetLinkFromOperation(operation)
	{
	    var lobj = null;
	    var upperOperation = String(operation).toUpperCase();
		var div =document.getElementById(this.TableId);
		//html structure: div > ul > li >. a
		if(div.childNodes.length ==1)
		{	
			for(var i=0;i<div.childNodes[0].childNodes.length;i++)
			{
				if(div.childNodes[0].childNodes[i].childNodes.length >0 && 
					div.childNodes[0].childNodes[i].childNodes[0].lo &&
					div.childNodes[0].childNodes[i].childNodes[0].lo.toUpperCase() ==upperOperation)
				{
				    lobj = div.childNodes[0].childNodes[i].childNodes[0]; 
				    break;
				}
	        }
	    }	
	    return lobj;
	}
}

function tttb_key(key)
{	
	this.Key = key;
}

function tttb_control(id)
{	
	this.Id = id;
}

function tttb_clientClick(evalFunction, linkId, linkObject, postBackId)
{
	ttooolbar_lastClientObject= postBackId; 
	var returnVal= eval(evalFunction);
	if(returnVal)
	{
		//Changed by AJM 12 Jan 06
		//linkId =linkId.replace(/_/g,"\$");
		//linkId =linkId.replace("$ct","_ct");
		//__doPostBack(linkId,'');		
		__doPostBack(postBackId,'');
		//tttb_raisePostBack(linkObject); 
	}
}

function tttb_getLastLinkClicked()
{
	return ttooolbar_lastClientObject;
}

function tttb_raisePostBack(linkObject)
{
	var href = linkObject.href;	
	
	if(href == undefined || href == null)
	{
		href = linkObject;
	}
	
	href= href.replace("javascript:__doPostBack(","");
	href= href.replace("javascript:__doPostBack(","");
	var split = href.split(",");
	split[0] =split[0].replace("'","");
	split[0] =split[0].replace("'","");
	__doPostBack(split[0],'');	
}

function tttb_pageClick(id)
{
	var ttstate =tttb_state[id];		
    var the_key = event.keyCode;    
    var test= String.fromCharCode ( the_key );
	if (window.event.altKey )
	{
		for(i=0;i<ttstate.Keys.length;i++)
		{
			if(ttstate.Keys[i].Key.toUpperCase() ==test)
			{
			    var clientFunction = "";
				var link = ttstate.Controls[i].Id;

				if(link.indexOf("javascript:tttb")!=-1)
				{   // 1. clientside links with access keys 
				    clientFunction = link;
				}
				else
				{
				    if(document.getElementById(link))
				    {   // 2. normal clientside link
				        if(document.getElementById(link).href.indexOf("javascript: tttb_clientClick") !=-1)
				        {
				            clientFunction = document.getElementById(link).href.replace("javascript:","");
				        }
				    }
				}
								
				if(clientFunction !="")
				{
			        try
			        {
			            //try and call the function
			            //Supress a failed attempt
			            eval(clientFunction);
			        }
			        catch(e){}
				}
				else
				{   // 3. Server function so raise an postback
				    link =link.replace(/_/g,"\$");
				    link =tttb_formatPostBack(link);// linkId.replace("$ct","_ct");								 
				    __doPostBack(link,'');
				}
				break;
			}
		}
	}	
}

function tttb_formatPostBack(linkId)
{
	var complete =false;
	while(!complete)
	{
		if(linkId.indexOf("$ct") !=-1)
			linkId =linkId.replace("$ct","_ct");								 
		else
			complete= true;
	}
	return linkId;
}

function tttb_getTitle(id)
{
	var tttbstate =tttb_state[id];	
    var strTitle = "";
	if(tttbstate)
	{
	    strTitle = tttbstate.Title;
	}
	return strTitle;
}

function tttb_onkeyDown(link)
{
	if(event.keyCode==13)
	{
		tttb_raisePostBack(link);
	}
}

function tttb_GetLink(id, operation)
{
	var tttbstate =tttb_state[id];	
	var objReturn = null;
	if(tttbstate)
	{
	    objReturn = tttbstate.GetLinkFromOperation(operation);
	}
	return objReturn;
}

function tttb_clientButton(evalFunction)
{
    try
    {
        var returnVal= eval(evalFunction);   
    }
    catch(e){}
}

