
/// <summary>
///  Custom Global variables
///  Author - ARSHAD ABBAS
///  Updated by - ARSHAD ABAS
/// </summary>

var ToolTipOnMouseOverDelay = 500;
var ToolTipOffsetX = 10;
var ToolTipOffsetY = 10;

/// <summary>
///  These functions set global browser identification variables and include commonly used routines
///  
/// </summary>

function SetGlobalBrowserVariables ()
{
 try
 {
  if (typeof(GlobalBrowserVariablesSet) == "undefined")
  {
   GlobalBrowserVariablesSet = true;
   Opera = !!(window.opera && document.getElementById);
   Opera6 = Opera && !document.defaultView;
   Opera7 = Opera && !Opera6;
   InternetExplorer = navigator.userAgent.toLowerCase().indexOf("msie") != -1 && document.all && ((document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body? document.body : null) && !Opera;
   InternetExplorer6 = InternetExplorer && parseFloat(navigator.appVersion.substring(navigator.appVersion.indexOf("MSIE")+5)) >= 5.5;
   NetscapeNavigator4 = (document.layers && typeof document.classes != "undefined");
   NetscapeNavigator6 = (!Opera && document.defaultView && typeof document.defaultView.getComputedStyle != "undefined");
   W3CCompliant = !InternetExplorer && !NetscapeNavigator6 && !Opera && document.getElementById;
   DocumentBody = (((document.compatMode) && (document.compatMode != "BackCompat")) ? document.documentElement : ((document.body) ? document.body : null));
   PixelSuffix = (Opera6 || NetscapeNavigator4) ? "" : "px";
  }
 }
 catch (ExceptionObject)
 {
  //alert(ExceptionObject.name + "\n\n" + ExceptionObject.number + "\n\n" + ExceptionObject.message + "\n\n" + ExceptionObject.description);
 }
}

/// <summary>
///  These functions determine the abolute top and left position of an object
/// </summary>

function GetAbsoluteLeft (Tag)
{
 try
 {
  var ParentTag = Tag.offsetParent;
  var AbsoluteLeft = Tag.offsetLeft;
  while (ParentTag != null)
  {
   if (InternetExplorer)
   {
    if (ParentTag.tagName.toLowerCase() == "td")
    {
     AbsoluteLeft += ParentTag.clientLeft;
    }
   }
   AbsoluteLeft += ParentTag.offsetLeft;
   ParentTag = ParentTag.offsetParent;
  }
  return(AbsoluteLeft);
 }
 catch (ExceptionObject)
 {
  return(null);
 }
}

/// <summary>
///  These functions enable drop-down menus
/// </summary>

function ShowMenu (MenuNodeTag)
{
 try
 {
  if (MenuNodeTag.MenuChildNodeGroupTag)
  {
   MenuNodeTag.MenuChildNodeGroupTag.style.display = "block";
   if (GetParentTag(GetParentTag(GetParentTag(MenuNodeTag))).tagName.toLowerCase() != "ul")
   {
    MenuNodeTag.MenuChildNodeGroupTag.style.left = GetAbsoluteLeft(GetParentTag(MenuNodeTag)) + PixelSuffix;
   }
  }
  
 }
 catch (ExceptionObject)
 {
 }
}

function HideMenu (MenuNodeTag)
{
 try
 {
  if (MenuNodeTag.MenuChildNodeGroupTag)
  {
   MenuNodeTag.MenuChildNodeGroupTag.style.display = "none";
  }
  
 }
 catch (ExceptionObject)
 {
 }
}

function InitializeMenu (MenuRootNodeGroupTagId)
{
 try
 {
  SetGlobalBrowserVariables();
  var MenuRootNodeGroupTag = document.getElementById(MenuRootNodeGroupTagId);
  if (document.getElementById(MenuRootNodeGroupTagId))
  {
   var MenuNodeTag = MenuRootNodeGroupTag.getElementsByTagName("LI");
   for (var i = 0; i < MenuNodeTag.length; i++)
   {
    var MenuChildNodeGroupTag = MenuNodeTag[i].getElementsByTagName("UL");
    if (MenuChildNodeGroupTag.length > 0)
    {
     MenuNodeTag[i].MenuChildNodeGroupTag = MenuChildNodeGroupTag[0];
    }
    //MenuNodeTag[i] = new Function("ShowMenu(this);");
    MenuNodeTag[i].onmouseover = new Function("ShowMenu(this);");
    MenuNodeTag[i].onmouseout = new Function("HideMenu(this);");
   }
  }
  
 }
 catch (ExceptionObject)
 {
 }
}

/// <summary>
///  Functions used to Assign W3C Compatible Links
///  Portions of this code are based on Kokoska, T. (2003), "Proper way to append to a links onclick handler", thelist [http://lists.evolt.org/archive/Week-of-Mon-20031124/151971.html]
/// </summary>

function AppendOnClickFunction (AnchorTag, Commands)
{
	try
	{
		if (typeof(AnchorTag.onclick) == "function")
		{
			AnchorTag.OnClickFunction = AnchorTag.onclick;
			AnchorTag.onclick = new Function("event", ("this.OnClickFunction();" + Commands));
		}
		else
		{
			AnchorTag.onclick = new Function(Commands);
		}
	}
	catch (ExceptionObject)
	{
	}
}

function AssignLinks ()
{
	try
	{
		var LinkTag = document.getElementsByTagName("A");
		for (var i = 0; i < LinkTag.length; i++)
		{
			if (LinkTag[i].href.indexOf("#") == (LinkTag[i].href.length - 1))
			{
				AppendOnClickFunction(LinkTag[i], "return(false);");
			}
			else if ((typeof(LinkTag[i].rel) != "undefined") && (LinkTag[i].rel.toLowerCase() == "external"))
			{
				AppendOnClickFunction(LinkTag[i], "Popup(this.href);return(false);");
			}
		}
	}
	catch (ExceptionObject)
	{
	}
}
