
$(function() {

	var filenamePattern = new RegExp("^(.*)(\\.[a-zA-Z]+)$");
	
	var preloadedImages = { };

	var navBar = $("table.nav .color-bar")[0];

	var defaultNavBarSrc = "images/nav2.jpg";

	var preloadImage = function(url) {
		var img = new Image();
		img.src = url;
		preloadedImages[url] = img;
	};

	var changeRolloverImage = function(element, over) {
		element.src = over ? element.HoverImage : element.NormalImage;

		if ($(element).attr("nav-rollover")) {
			navBar.src = over ? ("images/" + $(element).attr("nav-rollover")) : defaultNavBarSrc;
		}
	};

	var setupHoverImage = function(element) {
		var src = element.src;

		var pieces = filenamePattern.exec(src);

		element.NormalImage = src;
		element.HoverImage = pieces[1] + 'o' + pieces[2];
	};

	$("img.rollover").hover(function() {
			changeRolloverImage(this, true);
		}, function() {
			changeRolloverImage(this, false);
		})
		.each(function() {
			setupHoverImage(this);
			preloadImage(this.HoverImage);

			if ($(this).attr("nav-rollover"))
				preloadImage("images/" + $(this).attr("nav-rollover"));
		});

	$("a.nav-location").each(function() {
		if (this.pathname == location.pathname) {
			defaultNavBarSrc = "images/" + $("img.rollover", this).attr("nav-rollover");
			navBar.src = defaultNavBarSrc;
		}
	});

});