
var dropdownOffsetX;
var	dropdownOffsetY;
				
dropdownOffsetX = Array();
dropdownOffsetY = Array();


// This is a simplified version of the JavaScript Client Sniffer code 
// found at http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html

function Is ()
{   // convert all characters to lowercase to simplify testing
    var agt=navigator.userAgent.toLowerCase()

    // --- BROWSER VERSION ---
    this.major = stringToNumber(navigator.appVersion)
    this.minor = parseFloat(navigator.appVersion)

    this.nav  = ((agt.indexOf('mozilla')!=-1) && ((agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1)))
    this.nav2 = (this.nav && (this.major == 2))
    this.nav3 = (this.nav && (this.major == 3))
    this.nav4 = (this.nav && (this.major == 4))

	//Netscape 6
	this.nav5 =	(this.nav && (this.major == 5))
	this.nav6 = (this.nav && (this.major == 5))
	this.gecko = (this.nav && (this.major >= 5))

    this.ie   = (agt.indexOf("msie") != -1)
    this.ie3  = (this.ie && (this.major == 2))
    this.ie4  = (this.ie && (this.major == 3))
    this.ie5  = (this.ie && (this.major == 4))


    this.opera = (agt.indexOf("opera") != -1)
     
    this.nav4up = this.nav && (this.major >= 4)
    this.ie4up  = this.ie  && (this.major >= 4)
}
var is = new Is();

function stringToNumber(s)
{
        return parseInt(('0' + s), 10)
}

/* xbrowser pageX equivalent*/
function getEltPageLeft(elt) {
  var x;

  if (is.nav4)
    return elt.pageX;
  if (is.ie4up) {
    x = 0;
    while (elt.offsetParent != null) {
      x += elt.offsetLeft;
      elt = elt.offsetParent;
    }
    x += elt.offsetLeft;
    return x;
  }
  if (is.gecko) {
    x = 0;
    while (elt.offsetParent != null) {
      x += elt.offsetLeft;
      elt = elt.offsetParent;
    }
    x += elt.offsetLeft;
    return x;
  }
  return -1;
}

/* xbrowser pageY equivalent */
function getEltPageTop(elt) {
  var y = 0;

  if (is.nav4)

    return elt.pageY;
  if (is.ie4up) {

    while (elt.offsetParent != null) {
      y += elt.offsetTop;
      elt = elt.offsetParent;
    }
    y += elt.offsetTop;
    return y;
  }

  /* ie5/mac modification added per comment from David Weingard */
  if (is.mac && is.ie5)
  {
    y += stringToNumber(document.body.currentStyle.marginTop);
  }

  if (is.gecko) {
    while (elt.offsetParent != null) {
      y += elt.offsetTop;
      elt = elt.offsetParent;
    }
    y += elt.offsetTop;
    return y;
  }
  return -1;
}
var g_timeouts = Array();
var g_overStatus = Array();

function showPopup(ukey)
{
	g_overStatus[ukey] = true;
	
	var menuID 		= 'menu_' 		+ ukey;
	var submenuID = 'submenu_' 	+ ukey;
	
//	alert(dump(dropdownoffsets[ukey]));
//	alert(ukey);
	var menuElement 		= document.getElementById(menuID);
	var left						= getEltPageLeft(menuElement) + parseInt(dropdownoffsets[ukey][0]);
	var top							= getEltPageTop(menuElement)	+ parseInt(dropdownoffsets[ukey][1]);	
	if(dropdownoffsets[ukey]['imageid'])
	{
		var imageElt = document.getElementById(dropdownoffsets[ukey]['imageid']);
		imageElt.src = dropdownoffsets[ukey]['rollurl'];
	}

		
	var parent 		= ukey;
	while(parent)
	{
		if(g_timeouts[parent])
		{
			clearTimeout(g_timeouts[parent]);	
			g_timeouts[parent] = 0;
		}	
		if(dropdownoffsets[parent])
		{
			parent = parseInt(dropdownoffsets[parent]['parent']);
		}
		else
		{
			parent = 0;				
		}
	}
	
	var submenuElement 	= document.getElementById(submenuID);
	if(submenuElement)
	{
		submenuElement.style.left 			= left + 'px';
		submenuElement.style.top 				= top  + 'px';
		submenuElement.style.visibility = 'visible';
	}
}
function hidePopup(ukey)
{
	g_overStatus[ukey] = false;
		
	if(dropdownoffsets[ukey]['imageid'])
	{
		var imageElt = document.getElementById(dropdownoffsets[ukey]['imageid']);
		imageElt.src = dropdownoffsets[ukey]['normalurl'];
	}
	if(dropdownoffsets[ukey]['delay'])
	{
		var delay = dropdownoffsets[ukey]['delay'];
	}
	else
	{
		var delay = 1000;
	}
	
	

	var hideCommand 	= 'hidePopupLater(\'' + ukey + '\');';
	g_timeouts[ukey] 	= setTimeout(hideCommand,delay);
	
}
function hidePopupLater(ukey)
{
	
	while(ukey)
	{
		var submenuID 			= 'submenu_' 	+ ukey;	
		var submenuElement 	= document.getElementById(submenuID);	
		if(submenuElement && g_overStatus[ukey] != true)
		{
			submenuElement.style.visibility = 'hidden';		
		}	
//		ukey = 0;

		if(dropdownoffsets[ukey])
		{
			ukey = dropdownoffsets[ukey]['parent'];
		}
		else
		{
			ukey = 0;
		}
	}
}



var g_liveTimeout;
var g_liveLastup = Array();
var g_liveLastupCount = 0;
var g_levelStack = Array();			

function LivePopUp(menuName,level,on) {
	if (on) {
		clearTimeout(g_liveTimeout);

		if(level == 0)
		{					
			LiveCloseLastPopup()										
		}
							
		g_liveLastup[g_liveLastupCount] = menuName;
		g_liveLastupCount++;

		g_levelStack[level] = menuName;		


		if (document.getElementById) 
		{
   		// Standards Compliant code fork...
 			divel=document.getElementById(menuName);
			divel.style.visibility="visible";      		
 		}
 		else if (document.all) 
 		{
   		// IE 4/5 code fork...
			document.all[menuName].style.visibility = "visible";      		
 		}
 		else if (document.layers) 
 		{
   		// Nav 4.x code fork...
			document.layers[menuName].visibility = "show";      		
 		}
 		else 
 		{
			// other browsers
 		}			
	} else {
		if (document.getElementById) 
		{
   		// Standards Compliant code fork...
 			divel=document.getElementById(menuName);
			divel.style.visibility="hidden";      		      		
 		}
 		else if (document.all) 
 		{
   		// IE 4/5 code fork...
			document.all[menuName].style.visibility = "hidden";      		
 		}
 		else if (document.layers) 
 		{
   		// Nav 4.x code fork...
			document.layers[menuName].visibility = "hide";      		
 		}
 		else 
 		{
   		// other browsers
 		}			
	}
}
function LivePositionMenu(menuName,level)
{
	var eltID;
	var elt;
	var divel;
	var edElt;
	
//				alert('LivePostitionMenu');
	eltID = 'h_' + menuName;
	elt = document.getElementById(eltID);

	var left 		= getEltPageLeft(elt);
	var top 		= getEltPageTop(elt);

	left 	+= dropdownOffsetX[menuName];
	top 	+= dropdownOffsetY[menuName];	

	divel=document.getElementById(menuName);
	
	if(divel == null)
	{
//		alert(menuName);
	}
	else
	{
		divel.style.top 	= top 	+ 'px';
		divel.style.left 	= left 	+ 'px';
	}
}			
function LiveCloseLastPopup()
{
	for(i = 0; i < g_liveLastupCount; i++)
	{
		LivePopUp(g_liveLastup[i],0,0);
	}
	g_liveLastupCount = 0;
}
function LiveClosePopUpTimer(delay)
{
	if (delay==undefined)
	{
		delay = 1200;
	}
	g_liveTimeout = setTimeout("LiveCloseLastPopup();",delay);
}

function LiveCloseChildren(level)
{
	if(g_levelStack[level])
	{
		LivePopUp(g_levelStack[level],level,false);
	}
}
function setBackgroundAlignment(id,x,y)
{
	var innerDiv = document.getElementById(id);
	var outerDiv = innerDiv.parentNode;

//	alert(innerDiv.offsetWidth);
	
	
	if(x == 'right')
	{
//		innerDiv.style.left = (outerDiv.style.width.match(/[0-9]+/) - innerDiv.style.width.match(/[0-9]+/)) + 'px';
		innerDiv.style.left = (outerDiv.offsetWidth - innerDiv.offsetWidth) + 'px';		
	}
	else
	{
		innerDiv.style.left = 0;
	}
	
	if(y == 'bottom')
	{
//		innerDiv.style.top = (outerDiv.style.height.match(/[0-9]+/) - innerDiv.style.height.match(/[0-9]+/)) + 'px';
		innerDiv.style.top = (outerDiv.offsetHeight - innerDiv.offsetHeight) + 'px';
	}
	else
	{
		innerDiv.style.top = 0;
	}

//	alert(id + ' ' + x + ' ' + y + ' ' + outerDiv.offsetWidth + ' ' + innerDiv.style.left);	
}