// JavaScript Document

// Decide browser version
var isMac = (navigator.userAgent.indexOf("Mac") != -1);
var olOp = (navigator.userAgent.toLowerCase().indexOf('opera') > -1 && document.createTextNode);  // Opera 7
var olNs4 = (navigator.appName=='Netscape' && parseInt(navigator.appVersion) == 4);
var olNs6 = (document.getElementById) ? true : false;
var olKq = (olNs6 && /konqueror/i.test(navigator.userAgent));
var olIe4 = (document.all) ? true : false;
var olIe5 = false; 
var olIe55 = false; // Added additional variable to identify IE5.5+
var docRoot = 'document.body';
var o3_frame=self;

   var displayId = null;
   function select(id)
   {
      if (displayId != null)
         document.getElementById(displayId).style.display = "none";
      document.getElementById(id).style.display = "block";
      displayId = id;
   }

var activeMenuId = null;
var activeMenu = null;


function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}


function showMenu(evt, menuId, obj)
{
   hideMenu(evt, menuId);
   
   if ( document.getElementById(menuId) )
   {
      activeMenu = document.getElementById(menuId);
      //alert(activeMenu.style.posLeft);
      activeMenu.style.left = findPosX(obj) + 'px';
      //alert(activeMenu.style.top);
      activeMenu.style.top = findPosY(obj) + 30 + 'px';
      activeMenu.style.display = "block";
		hideSelectBox();
   }

   if (evt.stopPropagation)
      evt.stopPropagation();
   else
      evt.cancelBubble = true;
   document.body.onmouseover = hideMenu;
}

function isDescendant(ancestor, element)
{
   while (element != null && element != ancestor)
      element = element.parentNode;
   return element != null;
}


function hideMenu(evt, menuId)
{  
   if ( document.getElementById(menuId) ) {
      
      if (activeMenu != document.getElementById(menuId) )
      {
         hidemenu();
      }
   }
}

function hideMenu(evt)
{
   if (activeMenu != null)
   {
      if (evt == null)
         evt = event;
      var target = evt.target;
      if (target == null)
         target = evt.srcElement;

      if (!isDescendant(activeMenu,target))
      {
         activeMenu.style.display = "none";
         activeMenu = null;
         showSelectBox();
      }
   }
}

   function getPosition(elm)
   {
      var pos = new Object();
      pos.x = 0;
      pos.y = 0;
      if (elm.offsetParent)
      {
         while (elm.offsetParent)
         {
            pos.x += elm.offsetLeft;
            pos.y += elm.offsetTop;
            elm = elm.offsetParent;
         }
      }
      else
      {
         if (elm.x)
         {
            pos.x = elm.x;
            pos.y = elm.y;
         }
      }
      return pos;
   }
   function showMap()
   {
      var map = document.getElementById("map");
      if (map.style.display == "none")
      {
         var mapLink = document.getElementById("mapLink");
         var offset = getPosition(mapLink);
         var height = parseInt(map.style.height,10);
         map.style.left = offset.x + "px";
         map.style.top = (offset.y - height) + "px";
         map.style.display = "block";
      }
      else
         map.style.display = "none";
   }


// Hides SELECT boxes that will be under the popup
// Checking Gecko version number to try to include other browsers based on the Gecko engine
function hideSelectBox() {

	if(olNs4 || olOp || olIe55) return;
	var px, py, pw, ph, sx, sw, sy, sh, selEl, v;

	if(olIe4) v = 0;
	else {
		v = navigator.userAgent.match(/Gecko\/(\d{8})/i);
		if(!v) return;   // return if no string match
		v = parseInt(v[1]);
	}

	if (v < 20030624) {  // versions less than June 24, 2003 were earlier Netscape browsers
		//px = parseInt(over.style.left);
		//py = parseInt(over.style.top);
		//pw = o3_width;
		//ph = (o3_aboveheight ? parseInt(o3_aboveheight) : over.offsetHeight);
		selEl = (olIe4) ? o3_frame.document.all.tags("SELECT") : o3_frame.document.getElementsByTagName("SELECT");
		for (var i=0; i<selEl.length; i++) {
			if(!olIe4 && selEl[i].size < 2) continue;  // Not IE and SELECT size is 1 or not specified
			//sx = pageLocation(selEl[i],'Left');
			//sy = pageLocation(selEl[i],'Top');
			//sw = selEl[i].offsetWidth;
			//sh = selEl[i].offsetHeight;
			//if((px+pw) < sx || px > (sx+sw) || (py+ph) < sy || py > (sy+sh)) continue;
			selEl[i].isHidden = 1;
			selEl[i].style.visibility = 'hidden';
		}
	}
}

// Shows previously hidden SELECT Boxes
function showSelectBox() {
	if(olNs4 || olOp || olIe55) return;
	var selEl, v;

	if(olIe4) v = 0;
	else {
		v = navigator.userAgent.match(/Gecko\/(\d{8})/i);
		if(!v) return; 
		v = parseInt(v[1]);
	}

	if(v < 20030624) {
		selEl = (olIe4) ? o3_frame.document.all.tags("SELECT") : o3_frame.document.getElementsByTagName("SELECT");
		for (var i=0; i<selEl.length; i++) {
			if(typeof selEl[i].isHidden !=  'undefined' && selEl[i].isHidden) {
				selEl[i].isHidden = 0;
				selEl[i].style.visibility = 'visible';
			}
		}
	}
}