function NeoMenuLayerItem(item,element,radioBehaviour,hideOnDocumentClick,enabled,canAjax,depth,text,toolTip,navigateUrl,target,selectable,visible,imageUrl,isFading,isSliding,animationSpeed,itemClass,linkClass,elementClass,slidingDirection,sourceAnchor,targetAnchor)
{
	this.initMenuItem=NeoMenuItem_InitMenuItem;
	this.initMenuItem(item,element,radioBehaviour,hideOnDocumentClick,enabled,canAjax,depth,text,toolTip,navigateUrl,target,selectable,visible,imageUrl,isFading,isSliding,animationSpeed,itemClass,linkClass,elementClass);

	this.initSlidingLayer=SlidingLayer_Init;
	this.initSlidingLayer(isFading,isSliding,animationSpeed,slidingDirection,sourceAnchor,targetAnchor);
	
	this.baseMenuItemOver=this.menuItemOver;
	this.menuItemOver=NeoMenuLayerItem_MenuItemOver;
	this.baseMenuItemOut=this.menuItemOut;
	this.menuItemOut=NeoMenuLayerItem_MenuItemOut;
}

function NeoMenuLayerItem_MenuItemOver()
{
	var owner=this.getOwner();

	if (this.hasItems())
	{
		if (this._itemElement==null && owner.getInitialized())
		{
			var itemElement=this.createItemElement();
			itemElement.animatedItem=this;
			itemElement.style.position="absolute";
			this._itemElement=itemElement;
			this.appendItemElement();
		}
		
		var parent=this.getParentItem();
		if (!this.getVisible() && (this.isStatic() || (parent!=null && !parent.getIsInAnimation()))) this.startAnimation(true,this._itemSource);
	}
	
	this.baseMenuItemOver();
}

function NeoMenuLayerItem_MenuItemOut()
{
	this.baseMenuItemOut();
	if (this.hasItems() && !this.areItemsStatic() && !this.isInOverPath()) this.startAnimation(false,this._itemSource);
}

