var ns4 = document.layers;
var ns6 = document.getElementById && !document.all;
var ie4 = document.all;

function CreateCanvas(DefID,ColorScheme)
{
 canvas = "<table width=300 border=0 cellpadding=0 cellspacing=0>";
 canvas += "<tr>";
 canvas += "  <td width=\"6\"><img src=\"../../images/SpeechBubble/" + ColorScheme + "/SpeechBubble_01.gif\" width=6 height=9></td>";
 canvas += "  <td width=\"20\"><img src=\"../../images/SpeechBubble/" + ColorScheme + "/SpeechBubble_02.gif\" width=20 height=9></td>";
 canvas += "  <td background=\"../../images/SpeechBubble/" + ColorScheme + "/SpeechBubble_03.gif\" height=9><img src=\"../../images/misc/spacer.gif\" height=\"1\"></td>";
 canvas += "  <td width=\"23\"><img src=\"../../images/SpeechBubble/" + ColorScheme + "/SpeechBubble_04.gif\" width=23 height=9></td>";
 canvas += " </tr>";
 canvas += " <tr>";
 canvas += "  <td background=\"../../images/SpeechBubble/" + ColorScheme + "/SpeechBubble_05.gif\" width=6><img src=\"../../images/misc/spacer.gif\" height=\"1\"></td>";
 canvas += "  <td background=\"../../images/SpeechBubble/" + ColorScheme + "/SpeechBubble_06.gif\" colspan=2 valign=\"middle\" align=\"center\" bgcolor=\"#ffffff\"><font class=\"regularSmall\">" + DefinitionList[DefID][1] + "</font></td>";
 canvas += "  <td background=\"../../images/SpeechBubble/" + ColorScheme + "/SpeechBubble_07.gif\" width=23><img src=\"../../images/misc/spacer.gif\" height=\"1\"></td>";
 canvas += " </tr>";
 canvas += " <tr>";
 canvas += "  <td width=\"6\"><img src=\"../../images/SpeechBubble/" + ColorScheme + "/SpeechBubble_08.gif\" width=6 height=38></td>";
 canvas += "  <td width=\"20\"><img src=\"../../images/SpeechBubble/" + ColorScheme + "/SpeechBubble_09.gif\" width=20 height=38></td>";
 canvas += "  <td background=\"../../images/SpeechBubble/" + ColorScheme + "/SpeechBubble_10.gif\" height=38 width=\"100%\"><img src=\"../../images/misc/spacer.gif\" height=\"1\"></td>";
 canvas += "  <td width=\"23\"><img src=\"../../images/SpeechBubble/" + ColorScheme + "/SpeechBubble_11.gif\" width=23 height=38></td>";
 canvas += " </tr>";
 canvas += "</table>";

 return canvas;
}

function CreateDefinition(Layer, DefID, ColorScheme)
{
 if (ns4)
 {
   Layer.document.write(CreateCanvas(DefID, ColorScheme));
   Layer.document.close();
   Layer.visibility = "visible";
 }
 else if (ns6)
 {
   document.getElementById("DefinitionLayer").innerHTML = CreateCanvas(DefID, ColorScheme);
   Layer.display='block';
 }
 else if (ie4)
 {
   document.all("DefinitionLayer").innerHTML = CreateCanvas(DefID, ColorScheme);
   Layer.display='block';
 }
}

function GetDefinitionAnchor(AnchorID)
{
 if (ns4)
  return document.anchors[AnchorID];
 else if (ns6)
  return document.anchors[AnchorID];
 else if (ie4)
  return document.all(AnchorID);
 else
  return null;
}

function GetDefinitionLayer()
{
 if (ns4)
  return document.layers["DefinitionLayer"];
 else if (ns6)
  return document.getElementById("DefinitionLayer").style;
 else if (ie4)
  return document.all.DefinitionLayer.style;
 else
  return null;
}

function GetXCoordinate(Anchor)
{
 if (ns4)
  return (Anchor.x);// - (Anchor.x / 2) - 5);
 else
  return (LocateX(Anchor) + (Anchor.offsetWidth / 2) - 5);
}

function GetYCoordinate(Anchor)
{
 if (ns4)
  return (Anchor.y - document.layers["DefinitionLayer"].clip.height);
 else
  return (LocateY(Anchor) - (ns6 ? document.getElementById("DefinitionLayer").offsetHeight : document.all("DefinitionLayer").offsetHeight) + 5);
}

function HideDefinition()
{
 if (ns4)
  document.layers["DefinitionLayer"].visibility = "hidden";
 else if (ns6)
  document.getElementById("DefinitionLayer").style.visibility = "hidden";
 else if (ie4)
  document.all["DefinitionLayer"].style.visibility = "hidden";
}

function LocateX(item)
{
 if (item.offsetParent)
  return item.offsetLeft + LocateX(item.offsetParent);
 else
  return item.offsetLeft;
}

function LocateY(item)
{
 if (item.offsetParent)
  return item.offsetTop + LocateY(item.offsetParent);
 else
  return item.offsetTop;
}

function PreserveDefinition()
{
 if (ns4)
  document.layers["DefinitionLayer"].visibility = "visible";
 else if (ns6)
  document.getElementById("DefinitionLayer").style.visibility = "visible";
 else
  document.all.DefinitionLayer.style.visibility = "visible";
}

function ShowDefinition(DefID, AnchorID, ColorScheme, event)
{
 var anchor = GetDefinitionAnchor(AnchorID);
 var layer = GetDefinitionLayer();

 CreateDefinition(layer, DefID, ColorScheme);

 layer.left = GetXCoordinate(anchor);
 layer.top = GetYCoordinate(anchor);
 layer.visibility = "visible";
}
