(function () {

$(document).ready(function () {
	setupNavbar();
	setupRoundedCorners();
});


//
// Navigation bar
//

function setupNavbar() {
	$('#navbar li').each(function(){
		// Avoiding event delegation by sticking events directly
		// into elements, nevermind good practices.
		this.onmouseover=function() {
			$(this).addClass('hover');
		}
		this.onmouseout=function() {
			$(this).removeClass('hover');
		}
	});
}


//
// Featured products
//

FeaturedProducts = function() {
}
FeaturedProducts.products = null;
FeaturedProducts.current_product = 0;
FeaturedProducts.interval = null;

FeaturedProducts.init = function() {
	FeaturedProducts.setFeaturedProduct(FeaturedProducts.products[FeaturedProducts.current_product])
	$('#featured-right').click(FeaturedProducts.nextFeaturedProduct)
	$('#featured-right').click(function() {	window.clearInterval(FeaturedProducts.interval) });
	$('#featured-left').click(FeaturedProducts.previousFeaturedProduct)
	$('#featured-left').click(function() { window.clearInterval(FeaturedProducts.interval) });
	FeaturedProducts.interval = window.setInterval(FeaturedProducts.nextFeaturedProduct, 4000);
}

FeaturedProducts.nextFeaturedProduct = function() {
	var p = FeaturedProducts.products[++FeaturedProducts.current_product];
	if ( ! p) {
		FeaturedProducts.current_product = 0;
		p = FeaturedProducts.products[FeaturedProducts.current_product]
	}
	FeaturedProducts.setFeaturedProduct(p);
}

FeaturedProducts.previousFeaturedProduct = function() {
	var p = FeaturedProducts.products[--FeaturedProducts.current_product];
	if ( ! p) {
		FeaturedProducts.current_product = FeaturedProducts.products.length-1;
		p = FeaturedProducts.products[FeaturedProducts.current_product]
	}
	FeaturedProducts.setFeaturedProduct(p);
}

FeaturedProducts.setFeaturedProduct = function(p) {
	var $product = $('#featured-products .product');
	$product.fadeOut(500, function(){
		$('#featured-products .product').html('<a href="/products/' + p.id + '"><h3>' + p.name + '</h3></a><div class="image-wrap"><div class="image" style="background: url(' + p.image + ') center no-repeat;"><a href="/products/' + p.id + '"></a></div></div><p class="shortdesc">' + p.shortdesc + '</p></a>');
		$product.fadeIn(500);
	});
}


//
// Rounded corners
//

function setupRoundedCorners() {
	var toRound = ['.brand-info', '.brand-image-wrap', '.products-table-wrap', 'table.products .product-image'];
	jQuery.each(toRound, function(){
		var $this = $('' + this); // jQuery does something funny there, so I have to explicitly cast to string
		$this.corner('5px');
	});
}

})();