// $Id: nice_menus.js,v 1.1.2.1 2006/03/30 09:57:19 jakeg Exp $
//We only add the javascript to IE.
var nice_menus_data = {
	selects:null
}

if (document.all) {

	function getFirstNodeByName(n,name) {
		for (var c= n.firstChild; c!=null; c=c.nextSibling) {
			if (c.nodeName==name)
				return c
		}
		return null
	}
function findPosXY(obj)
{
	var curleft = 0;
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.x) {
		curleft += obj.x;
		curtop += obj.y;
	}
	return {x:curleft, y:curtop};
}

  function IEHoverPseudo() {

    var ulNodes = getElementsByClass("nice-menu");
    var j = 0;
    var liNodes = null;

    for(var i = 0; i < ulNodes.length; i++) { 
      liNodes = ulNodes[i].getElementsByTagName("li");
      for(j = 0; j < liNodes.length; j++) {
        if(liNodes[j].className == "menuparent") {
          liNodes[j].onmouseover=function() {
			  var nmd = nice_menus_data
			  var fn = document.getElementById("footer")
			  var bh = document.body.offsetHeight
		  	var ful = getFirstNodeByName(this,'UL')
			if (ful) {
				var pos = findPosXY(ful)
				var mh = pos.y+ful.clientHeight
				if (mh>bh) {
					var c = document.createElement("<div style='visibility:none;height:"+(mh-bh+20)+"px'></div>")
					document.body.appendChild(c)
				}
			}
		  	
			if (nmd.selects==null)
				nmd.selects=document.getElementsByTagName("SELECT")
			var sa = nmd.selects
			for (var i=0; i<sa.length; ++i) {
				sa[i].style.visibility="hidden";
			}
		  	this.className += " over"; 
		  }
          liNodes[j].onmouseout=function() { 
			  
			if (nice_menus_data.selects==null)
				nice_menus_data.selects=document.getElementsByTagName("SELECT")
			var sa = nice_menus_data.selects
			for (var i=0; i<sa.length; ++i) {
				sa[i].style.visibility="visible";
			}
			  this.className = "menuparent"; 
		  }
        }
      }
    }
  }

  function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	  if ( node == null )
        node = document;
	  if ( tag == null )
		tag = '*';
	  var els = node.getElementsByTagName(tag);
	  var elsLen = els.length;
	  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	  for (i = 0, j = 0; i < elsLen; i++) {
		  if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		  }
	  }
	return classElements;
  }

  //This is the Drupal method of adding a function to the BODY onload event.  (See misc/drupal.js)
  // TODO: see http://drupal.org/node/50443
  addLoadEvent(IEHoverPseudo);
}