$(function() {

	$("div.imagemap > div.list-container ul div").hide().css('position','absolute');

	var $map		= $("div.map-container img"),
		$list		= $("div.list-container ul"),
		orgSrc		= $("div.map-container img").attr("src"),
		curSrc		= orgSrc,
		curExt		= curSrc.substring(curSrc.lastIndexOf(".")),
		highlight	= function(obj, newSrc) {
			var $obj = $(obj);

			$obj.bind("mouseenter", function(e) {
				$map.attr("src", newSrc || orgSrc);
				(e.currentTarget.nodeName.toLowerCase() != "a") ?
					$list.find("a[href=" + $obj.attr("href") + "]").addClass("hover") :
					$obj.addClass("focus");
			});

			$obj.bind("mouseleave blur", function(e) {
				$map.attr("src", curSrc);
				(e.currentTarget.nodeName.toLowerCase() != "a") ?
					$list.find("a.hover").removeClass("hover") :
					$obj.removeClass("focus");
			});
		},
		activate	= function(obj, newSrc) {
			var $obj = $(obj);

			if (obj.href.indexOf("#") == -1) {
				return;
			}

			$obj.click(function(e) {
				$list.find("a.current").removeClass("current");
				(e.currentTarget.nodeName.toLowerCase() != "a") ?
					$list.find("a[href=" + $obj.attr("href") + "]").addClass("current") :
					$obj.addClass("current");

				curSrc = newSrc ? newSrc : orgSrc;
				$map.attr("src", newSrc || orgSrc);

				$list.find("div:visible").hide();
				$($obj.attr("href")).show();

				e.preventDefault();
			});
		};

	$("div.imagemap map > area").each(function(i, obj) {
		var id		= obj.id,
			newId	= (id.search(/\d/g) > -1) ? id.substring(0, id.length-1) : id,
			newSrc	= curSrc.substring(0, curSrc.length - 4) + "-" + newId + curExt;

		highlight(obj, newSrc);
		activate(obj, newSrc);
	});

	$("div.list-container > ul > li > a").each(function(i, obj) {
		var id		= (obj.id.indexOf("item") > -1) ? obj.id.substring(5) : null,
			newSrc	= (id) ? curSrc.substring(0, curSrc.length - 4) + "-" + id + curExt : null;

		highlight(obj, newSrc);
		activate(obj, newSrc);
	})

});
