function MCCategory()
{
	YAHOO.MCCategory = new YAHOO.widget.Overlay('MCCategoryDiv', { 
		context: [
			"ctx", "tl", "bl", [
				"beforeShow", "windowResize"
			]
		],
		visible:false,
		width:"260px" 
	});
	YAHOO.MCCategory.render(document.body);		

	// HIDE CATEGORY
	this.hide = function()
	{
		if(MCMenu == false && MCSubmenu == false)
		{
			YAHOO.MCCategory.hide();
		}
	}

	// MENU LINK MAGIC
	this.linkMagic = function(link)
	{
		var new_link = link.substring(link.indexOf('/coupons/'));
		window.location = new_link;
		return false;
	}

	// SHOW SUBMENU
	this.show = function()
	{
		YAHOO.MCCategory.hide();
		YAHOO.MCCategory.show();
	}

	// LOAD SUBCATEGORIES
	this.subcategoriesLoad = function(el)
	{
		if(MCMenu == false)
		{
			return;
		}
		YAHOO.MCCategory.hide();
		var region = YAHOO.util.Dom.getRegion(el);
		YAHOO.MCCategory.moveTo((region.right - 15), region.top);
		YAHOO.MCCategory.setBody('');
		var new_menu = '';
		var menu_id = el.getAttribute('category_id');
		for(var index in MCSubcategories)
		{
			var C = MCSubcategories[index];
			if(C.pid == menu_id)
			{
				for(var index2 in C.sc)
				{
					var S = C.sc[index2];
					if(S.n && S.n != '')
					{
						var link_url = '';
						// SEND LOCAL GROCERY URLS TO THE PRINTABLE PAGE
						if (MCLocal.match(/local/) && S.n.match(/groceries/i))
						{
							link_url += '/coupons/'+S.u+'/print';
						}
						// ELSE IF tips PAGE, DON'T ADD /COUPONS/
						else if (S.n.match(/Tips Article Available/i)){
							link_url += '/'+S.u;
						}
						// ELSE SEND TO DEFAULT URL (LOCAL PAGE IF SYNDICATION)
						else 
						{
							link_url += '/coupons/'+S.u+MCLocal;
						}
						new_menu += '<li><a href='+link_url+' />'+S.n+'</a></li>';
					}
				}
			}
		}
		if(new_menu != '')
		{
			new_menu = '<ul id="MCSubmenu">'+new_menu+'</ul>';
			YAHOO.MCCategory.setBody(new_menu);
			setTimeout('MCCategory.show()', MCDelay);

			// MOVE SUBCATEGORY UP IF DISPLAYING TOO LOW OFF THE SCREEN
			var el = YAHOO.util.Dom.get('MCSubmenu'); 
			var region = YAHOO.util.Dom.getRegion(el);
			var top = YAHOO.util.Dom.getDocumentScrollTop();
			var height = YAHOO.util.Dom.getViewportHeight();
			if(region.bottom > (top + height))
			{
				var new_top = (top + height) - region.height - 3;
				if(new_top < top)
				{
					new_top = top + 3;
				}
				YAHOO.MCCategory.moveTo(region.left, new_top);
			}
		}
	}

	// UNLOAD SUBCATEGORIES
	this.subcategoriesUnload = function()
	{
		setTimeout('MCCategory.hide()', MCDelay);
	}
}
var MCCategoryThis = null;
var MCCategory = new MCCategory;
YAHOO.util.Event.onDOMReady(MCCategory);
var divs = YAHOO.util.Dom.getElementsByClassName('MCCategoryLink');
YAHOO.util.Event.on(divs, 'mouseenter', function(e)
{
	MCCategoryThis = this;
	MCMenu = true;
	setTimeout('MCCategory.subcategoriesLoad(MCCategoryThis);', 300);
});
YAHOO.util.Event.on(divs, 'mouseleave', function(e)
{
	MCMenu = false;
	MCCategory.subcategoriesUnload();
});
YAHOO.util.Event.on('MCCategoryDiv', 'mouseenter', function(e)
{
	MCSubmenu = true;
});
YAHOO.util.Event.on('MCCategoryDiv', 'mouseleave', function(e)
{
	MCSubmenu = false;
	MCCategory.subcategoriesUnload();
});
