/*
http://www.alistapart.com/articles/sprites2
*/

function generateSprites(parent, selectedPrefix, setActive, hoverSpeed, style) {
	var parentClass = $(parent).attr("class");

	$(parent).children("li").each(function() {
		var myClass = ($(this).attr("class"))
		var current = parent.substring(1) + " current-" + ($(this).attr("class"));

		attachNavEvents(parent, myClass, setActive, hoverSpeed, style);
	
		if (parentClass != current) {
			$(this).children("a").css({backgroundImage:"none"});
		}
	});
}


function attachNavEvents(parent, myClass, setActive, hoverSpeed, style) {
	$(parent + " ." + myClass).mouseover(function() {
		$(this).append('<div class="nav-' + myClass + '"></div>');
		if (style == "slide") {
			$("div.nav-" + myClass).css({display:"none"}).slideDown(hoverSpeed);
		} else {
			$("div.nav-" + myClass).css({display:"none"}).fadeIn(hoverSpeed);
		}
	}).mouseout(function() {
		if (style == "slide") {
			$("div.nav-" + myClass).slideUp(hoverSpeed, function() {
				$(this).remove();
			});
		} else {
			$("div.nav-" + myClass).fadeOut(hoverSpeed, function() {
				$(this).remove();
			});
		}
	});

	if (setActive) {
		$(parent + " ." + myClass).mousedown(function() {
			$("div.nav-" + myClass).attr("class", "nav-" + myClass + "-click");
		}).mouseup(function() {
			$("div.nav-" + myClass + "-click").attr("class", "nav-" + myClass);
		});
	}
}

$(document).ready(function(){
// generateSprites arguments: 
// 1st - parent class (the main class on the parent ul), with preceding period
// 2nd - selected prefix (eg. for a selected class of "selected-about", use "selected-" as the value)
// 3rd - :active state toggle, set to true if you've defined :active states (and the jQuery equivalent) in your CSS
// 4th - animation speed, in milliseconds (eg. 300 = 0.3 seconds)
// 5th - animation style, as a string. Set to "slide" or "fade" (defaults to "fade")

// example usage:
// generateSprites(".navigation", "selected-", true, 300, "fade");
// generateSprites(".top-nav", "position-", true, 200, "slide");
// generateSprites(".sidebar-nav", "current-", false, 150, "fade");
	generateSprites(".nav", "current-", true, 250, "fade");

	Cufon.replace("#main h1", { 
		fontFamily: "Belwe", 
		textShadow: "#ccc 0 1px 0"
	});
	Cufon.replace("h2", { fontFamily: "Helvetica Neue LT Std" });
	Cufon.replace("h3", { 
		fontFamily: "Belwe", 
		textShadow: "#ccc 0 1px 0"
	});

	$('ul.productList').equalHeights();
});


