var gMouseXY;

YAHOO.util.Event.addListener( window, 'load', function() {
	YAHOO.util.Event.on (document.body, 'mousemove', function(e){
	  gMouseXY = YAHOO.util.Event.getXY(e);
	})
});

function setLayerVisibleXY( LayerName, XPos, YPos )
{
	var Element = document.getElementById( LayerName );
	Element.style.top = YPos + "px";
	Element.style.left = XPos + "px";		
	Element.style.visibility = "visible";	
}

function setLayerHidden( LayerName )
{
	var Element = document.getElementById( LayerName );
	Element.style.visibility = "hidden";
}

function showEnhancedLink( 	oElement,
														DetailLink,
														DetailLayer )
{
	if ( DetailLink != "" )
		makeRequest( DetailLink, DetailLayer );

	var aXYPos = YAHOO.util.Dom.getXY( oElement );
	var iHeight = oElement.offsetHeight;
		
	setLayerVisibleXY( DetailLayer, aXYPos[0], aXYPos[1] + 82 ); 	
}

function hideEnhancedLink( 	oElement,
														oEvent,
														DetailLayer )
{
	if ( IsCurrentTarget( oElement, oEvent ) == false )
		return;

	cancelRequest();
	setLayerHidden( DetailLayer );
}

function InitHomeView()
{
	var Dom = YAHOO.util.Dom,
		Event = YAHOO.util.Event;
	
	var onCategoryEnter = function (event, matchedEl, container) {
		if ( matchedEl.className == "categorytitle" )
			showEnhancedLink( matchedEl, matchedEl.getAttribute( "link" ), "popup" );
	};

	var onCategoryLeave = function (event, matchedEl, container) {
		if ( matchedEl.className == "categorytitle" )
		{
			cancelRequest();
			setLayerHidden( "popup" );
		}
	};

	Event.delegate("categories", "mouseenter", onCategoryEnter, "div" );
	Event.delegate("categories", "mouseleave", onCategoryLeave, "div" );


//	Event.delegate( 'category1', 'mouseenter', onCategoryEnter );
//	Event.delegate( 'categories', 'mouseleave', onCategoryLeave );
}

/*********************************************************************
 * No onMouseOut event if the mouse pointer hovers a child element 
 * *** Please do not remove this header. ***
 * This code is working on my IE7, IE6, FireFox, Opera and Safari
 * 
 * Usage: 
 * <div onMouseOut="fixOnMouseOut(this, event, 'JavaScript Code');"> 
 *		So many childs 
 *	</div>
 *
 * @Author Hamid Alipour Codehead @ webmaster-forums.code-head.com		
**/
function is_child_of(parent, child) {
	if( child != null ) {			
		while( child.parentNode ) {
			if( child.parentNode == parent ) {
				return true;
			}
			child = child.parentNode;
		}
	}
	return false;
}

function IsCurrentTarget( element, event ) {
	var current_mouse_target = null;
	var bIsCurrent = false;

	if( event.toElement ) {				
		current_mouse_target 			 = event.toElement;
	} else if( event.relatedTarget ) {				
		current_mouse_target 			 = event.relatedTarget;
	}

	if ( !current_mouse_target )
		return bIsCurrent;

	if ( element == current_mouse_target )
	{
		bIsCurrent = true;		
	}
	else
	{
		if ( is_child_of( element, current_mouse_target ) == true )
			bIsCurrent = false;
		else		
			bIsCurrent = true;		
	}
	
	return bIsCurrent;
}