function preloadImages()
{
	var i,j;

	if(!document.preloadedImages)
		document.preloadedImages = new Array();

	for(i = 0, j = document.preloadedImages.length; i < preloadImages.arguments.length; i++, j++)
	{
		if(preloadImages.arguments[i].indexOf("#") != 0)
		{
			document.preloadedImages[j] = new Image;
			document.preloadedImages[j].src = preloadImages.arguments[i];
		}
	}
}

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;
}

var lastShownElement = false;
var lastTimeout = false;


window.onload = function()
{
	preloadImages("./images/img_dropdown-on.gif");
	
	var parent = document.getElementById("column");

	var sfEls = getElementsByClass("dropdown", parent, "div");
	for (var i = 0; i < sfEls.length; i++)
	{
		sfEls[i].onmouseover = function()
		{
			if(lastTimeout)
			{
				if(this == lastShownElement)
				{
					clearTimeout(lastTimeout);
					lastTimeout = false;
					return;
				}
				else
				{
					hideDropdown();
				}
			}
			if(this.className != "dropdown-on")
				this.className = "dropdown-on";
		}
		sfEls[i].onmouseout = function()
		{
			if(lastTimeout && this != lastShownElement)
				hideDropdown();
			lastShownElement = this;
			lastTimeout = setTimeout('hideDropdown()', 100);
		}
		var sfElsLi = sfEls[i].getElementsByTagName("a");
		if(sfElsLi.length > 16)
		{
			sfElsDiv = sfEls[i].getElementsByTagName("div");
			sfElsDiv[0].style.height = "400px";
			sfElsDiv[0].style.overflowX = "hidden";
			sfElsDiv[0].style.overflowY = "scroll";
		}
	}
}

function hideDropdown()
{
	if(lastShownElement)
	{
		if(lastShownElement.className != "dropdown")
			lastShownElement.className = "dropdown";
		lastShownElement = false;
	}
}

window.onunload = function()
{
	var parent = document.getElementById("column");
	var sfEls = getElementsByClass("dropdown-on", parent, "div");
	for (var i = 0; i < sfEls.length; i++)
		sfEls[i].className = "dropdown";
}
