// ---------------------------------------------------------------------------------------------------------------------
// OMG MOAR animations like USA Football!
// ---------------------------------------------------------------------------------------------------------------------
function animateTopNavigation()
{
	var uls = $$("div#header form#search ul, div#header ul#markets, div#header ul#nav");
	
	// find the <ul> with the most <li>s in it
	var max = 0;
	for (var i = 0; i < uls.length; i++)
	{
		var count = uls[i].childElements().length;
		if (count > max)
		{
			max = count;
		}
	}
	
	var delay = 0;
	for (var i = 0; i < max; i++)
	{
		for (var j = 0; j < uls.length; j++)
		{
			var lis = uls[j].childElements();
			if (lis[i])
			{
				new Effect.Opacity
				(
				 	lis[i],
					{
						from: 0.0,
						to: 1.0,
						duration: 0.8,
						delay: delay
					}
				);
				
				delay += 0.05;
			}
		}
	}
}

function prepareTopNavigationAnimation()
{
	var lis = $$("div#header form#search ul > li, div#header ul#markets > li, div#header ul#nav > li");
	for (var i = 0; i < lis.length; i++)
	{
		new Effect.Opacity
		(
		 	lis[i],
			{
				to: 0.0,
				duration: 0
			}
		);
	}
	
	Event.observe(window, "load", animateTopNavigation);
}

// ---------------------------------------------------------------------------------------------------------------------
// [rel="external"] also becomes [target="_blank"] (opens external links in new windows)
// ---------------------------------------------------------------------------------------------------------------------
function externalLinks()
{ 
	if (!document.getElementsByTagName)
	{
		return; 
	}
	var anchors = document.getElementsByTagName("a"); 
	for (var i = 0; i < anchors.length; i++)
	{ 
		var anchor = anchors[i];
		 
		if (anchor.getAttribute("href") && anchor.getAttribute("rel")) 
		{
			var rels = anchor.getAttribute("rel").split(/\s+/);
			for (var j = 0; j < rels.length; j++)
			{
				if (rels[j].toLowerCase() == "external")
				{
					anchor.setAttribute("target", "_blank");
				}
				break;
			} 
		}
	} 
}

Event.observe(window, "load", externalLinks);

// ---------------------------------------------------------------------------------------------------------------------
// Suckerfish
// ---------------------------------------------------------------------------------------------------------------------
function bindSuckerfish(target)
{
	target.attachEvent("onmouseover", function()
	{
		target.className += " sfhover";
	});
	
	target.attachEvent("onmouseout", function()
	{
		target.className = target.className.replace(new RegExp(" sfhover\\b"), "");
	});
}

// only IE7 has native XHR support; IE6 and below has attachEvent and no native XHR
if (window.attachEvent && !window.XMLHttpRequest)
{
	window.attachEvent("onload", function()
	{
		var lis = document.getElementsByTagName("li");
		for (var i = 0; i < lis.length; i++)
		{
			bindSuckerfish(lis[i]);
		}
	});
}
