/*
	Author: 	Daniel Budde
	Created:	6/29/2009
	Purpose:	It is meant to apply onmouseover and onmouseout classes to HTML objects acting as
				rows as well as handle onclick if the row element contains an Anchor using YUI.
*/
function RowManager(_rootElement, _rowElementType)
{
	var rootElementName = _rootElement;
	var rowElementType = "div";

	if (_rowElementType)
	{
		rowElemetnType = _rowElementType;	
	}


	function IsAnchor(element)
	{
		if (element.nodeName.toLowerCase() == "a")
		{
			return true;
		}
		
		return false;
	}


	function LoadRows()
	{
		var rowContainers = YAHOO.util.Dom.getElementsByClassName("rowHover", "div", rootElementName);

		var rowHighlight = function(e)
		{
			YAHOO.util.Dom.addClass(this, "highlight");	
		};

		var rowRemoveHighlight = function(e)
		{
			YAHOO.util.Dom.removeClass(this, "highlight");	
		};

		var rowClick = function(e, clickObj)
		{
			if (clickObj.fireOnclick)
			{
				clickObj.anchor.onclick();
			}
			else
			{
				if (clickObj.anchor.target == "")
				{
					location.href = clickObj.clickAction;
				}
				else
				{
					var newWindow = window.open(clickObj.clickAction, clickObj.anchor.target);
				}
			}
		};


		for (var i = 0; i < rowContainers.length; i++)
		{
			var rows = YAHOO.util.Dom.getElementsByClassName("row", rowElementType, rowContainers[i]);
			var setClick = YAHOO.util.Dom.hasClass(rowContainers[i], "rowClick");


			for (var j = 0; j < rows.length; j++)
			{
				YAHOO.util.Event.addListener(rows[j], "mouseover", rowHighlight);
				YAHOO.util.Event.addListener(rows[j], "mouseout", rowRemoveHighlight);

				if (setClick)
				{
					var clickObj = new Object();
					clickObj.clickAction = null;
					clickObj.fireOnclick = false;

					var anchors = YAHOO.util.Dom.getElementsBy(IsAnchor, "a", rows[j]);

					if (anchors.length > 0)
					{
						clickObj.anchor = anchors[0];

						if (anchors[0].href.length > 0 && anchors[0].href.search(/#/) == -1)
						{
							clickObj.clickAction = anchors[0].href;
						}
						else if (anchors[0].href.length > 0 && anchors[0].href.search(/#/) > -1)
						{
							clickObj.clickAction = anchors[0].onclick;
							clickObj.fireOnclick = true;
						}

						
						if (clickObj.clickAction != null)
						{
							YAHOO.util.Event.addListener(rows[j], "click", rowClick, clickObj);
						}
					}
				}
			}
		}
	}


	YAHOO.util.Event.addListener(window, "load", LoadRows);
}

var rowManager = new RowManager("mainContentCenter");
