var activeDiv = null;
var currDiv = null;
var currImg = null;
var timerID = 0;

var imgTabOn = new Array();
var imgTabOff = new Array();

function addImage(key, pathOn, pathOff)
{
	imgTabOn[key] = pathOn;
	imgTabOff[key] = pathOff;
}

function setCurrent(name)
{
	activeDiv = name;
}

function openMenu( img, idDiv, right )
{
  if( currDiv != null && timerID != 0 )
  {
    clearTimer();
    if( idDiv != currDiv ) closeMenu();
    else return;
  }

  img.src=imgTabOn[idDiv];
  var divElem = document.getElementById( idDiv );
//  var cacheMenu = document.getElementById( "cacheMenu" );
  
  var tc = calcpos( img );
  
  if( right ){
    divElem.style.left = (tc[0] + img.offsetWidth - divElem.offsetWidth) + "px";
//    cacheMenu.style.left = (tc[0] + img.offsetWidth - divElem.offsetWidth) + "px";
//    cacheMenu.style.visibility = 'visible';
  }
  else
    divElem.style.left = tc[0]  + "px";
   
  divElem.style.top = tc[1] + 40 + "px";
  divElem.style.visibility = 'visible';

  currDiv = idDiv;
  currImg = img;
  
  	// hide select boxes in IE
	if(document.all) {
		for (i = 0; i < document.all.tags('SELECT').length; i++)
		{
			obj = document.all.tags('SELECT')[i];
			if (! obj)
				continue;

			obj.style.visibility = "hidden";
		}
	}
	

}

function closeMenu()
{
	if(currDiv != activeDiv) currImg.src=imgTabOff[currDiv];
  
  var elem = document.getElementById( currDiv );
//  var cacheMenu = document.getElementById( "cacheMenu" );
  elem.style.visibility = 'hidden';
//  cacheMenu.style.visibility = 'hidden';
  
  currDiv = null;
  
	// put select boxes back
	if(document.all) {
		for (i = 0; i < document.all.tags('SELECT').length; i++)
		{
			obj = document.all.tags('SELECT')[i];
			if (! obj)
				continue;
				
			obj.style.visibility = "";
		}
	}
}
  
function startTimer()
{
  timerID = setTimeout("closeMenu()", 100);
}
  
function clearTimer()
{
  clearTimeout( timerID );
  timerID = 0;
}
  
function calcpos( obj )
{
  x=0;
  y=0;
  
  w = obj.offsetWidth;
  h = obj.offsetHeight;

  var aTag = obj;
  do
  {
    x += aTag.offsetLeft;
    y += aTag.offsetTop;
    aTag = aTag.offsetParent;
  } while(aTag.tagName!="BODY");

  return new Array( x, y );
}
