var
	E = YAHOO.util.Event,
	D = YAHOO.util.Dom;

function FaderMenu(parentDivID, cls)
{
	this.init(parentDivID, cls);
}

FaderMenu.prototype = {
	init: function(parentDivID, cls)
	{
		var thisOne = this,
			qry = "#" + parentDivID + " ." + cls,
			found,
			filter = function(el) {
				return thisOne.findIt(el);
			};
	
		this.divs = [];
		this.parentDivID = parentDivID;
		this.cls = cls;
		
		var found = YAHOO.util.Selector.query(qry);
		if (found.length == 0) found = this.findDivs(cls);
		for (var i=0; i<found.length; i++)
			this.divs[this.divs.length] = found[i];

		E.delegate(this.parentDivID, "mouseover", function(e) {
			var tgt = thisOne.findIt(E.getTarget(e));
			if (!D.hasClass(tgt, "hot"))
				{
					for (var i=0; i<thisOne.divs.length; i++)
						if (thisOne.divs[i] == tgt)
							{
								D.addClass(thisOne.divs[i], "hot");
								D.removeClass(thisOne.divs[i], "faded");
							}
						else
							{
								D.addClass(thisOne.divs[i], "faded");
								D.removeClass(thisOne.divs[i], "hot");
							}
				}
		}, filter);
		E.delegate(this.parentDivID, "mouseout", function(e) {
			var tgt = thisOne.findIt(E.getTarget(e));
			if (D.hasClass(tgt, "hot"))
				{
					for (var i=0; i<thisOne.divs.length; i++)
						{
							D.removeClass(thisOne.divs[i], "hot");
							D.removeClass(thisOne.divs[i], "faded");
						}
				}
		}, filter);
	},
	
	isMine: function(e)
	{
		for (var i=0; i<this.divs.length; i++)
			if (this.divs[i] == e)
				return true;
		return false;
	},
	
	findIt: function(e) {
		while (e && !this.isMine(e))
			e = e.parentNode;
		return e;
	},
	
	findDivs: function(cls)
	{
		var tmp = document.getElementsByTagName("DIV"), ret = [];
		for (var i=0; i<tmp.length; i++)
			if (YAHOO.util.Dom.hasClass(tmp[i], cls))
				ret[ret.length] = tmp[i];
		return ret;
	}
}

