/**************************************
* Copyright 2005-2008 Web Site Tech
* http://www.wstech.net
***************************************/

// Popup Menu functions

var offSetX = 160;
var offSetY = 0;
var hideDelay = 300; //ms
var timeId;
var layers = new Array(10);
var timeIds = new Array(10);

function getObj(name)
{
  if (document.getElementById)
  {
    return document.getElementById(name);
  }
  else if (document.all)
  {
    return document.all[name];
  }
  else if (document.layers)
  {
    return document.layers[name];
  }
}
function showAndPlaceLayer(obj, layerName)
{
  storeLayer(layerName);
  clearTimeoutForLayer(layerName);
  doTimeoutsNow();
  
  var x = new getObj(layerName);
  if(x.style != null)
  {
    x.style.visibility = 'visible';
    setLyr(obj,layerName);
  }
}
function showLayer(layerName)
{
  storeLayer(layerName);
  clearTimeoutForLayer(layerName);
  doTimeoutsNow();
  
  var x = new getObj(layerName);
  if(x.style != null)
  {
    x.style.visibility = 'visible';
  }
}
function hideLayer(layerName)
{
  timeId = setTimeout("doHideLayer('" + layerName + "')",hideDelay);
  timeIds[getIndex(layers, layerName)] = timeId;
}
function doHideLayer(layerName)
{
  layers[getIndex(layers, layerName)] = null;
  var x = new getObj(layerName);
  if(x.style != null)
  {
    x.style.visibility = 'hidden';
  }
}
function setLyr(obj,lyr)
{
  var newX = obj.offsetLeft + offSetX;
  var newY = obj.offsetTop + offSetY;
  var x = new getObj(lyr);
  x.style.top = newY + 'px';
  x.style.left = newX + 'px';
}
function storeLayer(layerName)
{
  var index = getIndex(layers, layerName);
  if(index < 0)
  {
    layers.push(layerName);
  }
}
function clearTimeoutForLayer(layerName)
{
  var layerIndex = getIndex(layers, layerName);
  if(layerIndex >= 0 && timeIds.length > layerIndex && timeIds[layerIndex] != null)
  {
    clearTimeout(timeIds[layerIndex]);
    timeIds[layerIndex] = null;
  }
}
function doTimeoutsNow()
{
  for(var i=0; i < timeIds.length; i++)
  {
    if(timeIds[i] != null)
    {
      clearTimeout(timeIds[i]);
      if(layers.length > i)
      {
	      var layer = layers[i];
	      if(layer != null)
	      {
	        doHideLayer(layer);
	      }
      }
      timeIds[i] = null;
    }
  }
}
function getIndex(arr, value)
{
  for(var i=0; i < arr.length; i++)
  {
    if(arr[i] == value)
      return i;
  }
  return -1;
}
