var BoxHovers = function()
{
	this.init=function(imgSelector, titleSelector)
	{
		this.is = (imgSelector)?imgSelector:null;
		this.ts = (titleSelector)?titleSelector:".feature-title a";
		this.boxes = document.getElementsBySelector(imgSelector);
		this.links = document.getElementsBySelector(this.ts);
		
		this.generateDimmers();
		this.setHoverEvents();
	};
	this.setHoverEvents=function()
	{
		for(var box=0; box<this.boxes.length; box++)
		{
			/* this does the images...  */
			this.boxes[box].onmouseover = boxHovers.dim;
			this.boxes[box].onmouseout = boxHovers.clear;
			/* need to hook up the links too */
			this.links[box].onmouseover = boxHovers.dimfromtitle;
			this.links[box].onmouseout = boxHovers.clearfromtitle;
		}
	};
	this.generateDimmers=function()
	{
		var dimmer = document.createElement("div");
		dimmer.className = "dimmer";
		var dmr = null;
		for(var box=0; box<this.boxes.length; box++)
		{
			dmr = dimmer.cloneNode(true);
			if(this.is==".portal-box")
			{
				dmr.style.width = ((box==0)?122:121)+"px";
				dmr.style.height = "100px";
				lnk = this.boxes[box].getElementsByTagName("a")[0];
				if(lnk && lnk.href.indexOf("javascript")==-1)
				{
					lnk.insertBefore(dmr, lnk.firstChild);
				}
			}
			else
			{
				dmr.style.width = ((getElementWidth(this.boxes[box])!=0)?getElementWidth(this.boxes[box]):100)+"px";
				dmr.style.height = ((getElementHeight(this.boxes[box])!=0)?getElementHeight(this.boxes[box]):100)+"px";
				this.boxes[box].appendChild(dmr);
			}
		}
	};
	this.dim = function()
	{
		var d = null;
		if(boxHovers.is==".portal-box")
		{
			d = this.getElementsByTagName("a")[0].getElementsByTagName("div")[0];
			if(d) d.style.visibility = "visible";
		}
		else
		{
			this.getElementsByTagName("div")[0].style.visibility = "visible";
		}
	};
	this.dimfromtitle = function()
	{
		var t = null;
		switch(boxHovers.ts)
		{
			case "h3":
				t = this.parentNode.parentNode.getElementsByTagName("div")[0].getElementsByTagName("a")[0].getElementsByTagName("div")[0];
				if(t) t.style.visibility = "visible";
				break;
			case ".col-title":
				this.parentNode.getElementsByTagName("div")[3].style.visibility = "visible";
				break;
			default:
				t = this.parentNode.parentNode;
				t.getElementsByTagName("a")[1].getElementsByTagName("div")[0].getElementsByTagName("div")[0].style.visibility = "visible";
				break;
		}
	};
	this.clearfromtitle=function()
	{
		var t = null;
		switch(boxHovers.ts)
		{
			case "h3":
				t = this.parentNode.parentNode.getElementsByTagName("div")[0].getElementsByTagName("a")[0].getElementsByTagName("div")[0];
				if(t) t.style.visibility = "hidden";
				break;
			case ".col-title":
				this.parentNode.getElementsByTagName("div")[3].style.visibility = "hidden";
				break;
			default:
				t = this.parentNode.parentNode;
				t.getElementsByTagName("a")[1].getElementsByTagName("div")[0].getElementsByTagName("div")[0].style.visibility = "hidden";
				break;
		}
	};
	this.clear = function()
	{
		if(boxHovers.is==".portal-box")
		{
			d = this.getElementsByTagName("a")[0].getElementsByTagName("div")[0];
			if(d) d.style.visibility = "hidden";
		}
		else
			this.getElementsByTagName("div")[0].style.visibility = "hidden";
	};
};
boxHovers = new BoxHovers();
