var basename = function(filename) {
	var result = filename.match(/[\/|\\]([^\\\/]+)$/);
	if (result) {
		return(result[1]);
	}
}

var Revisited = {
	init: function() {
		$('.pf-panel').each(function() {
			var links = $('.image-nav a');
			var imgSrc = $('img', this).attr('src');
			links.each(function() {
				if (basename($(this).attr('href')) == basename(imgSrc)) {
					$(this.parentNode).addClass('active');
				}
			});
			links.bind('click', Revisited.changeImage);
		});
	},

	changeImage: function(event, obj) {
		if (typeof(obj) == "undefined") obj = this;
		var li = obj.parentNode;
		var img = $('img', obj.parentNode.parentNode.parentNode);
		var prevOrNext;
		if (prevOrNext = li.className.match(/(prev|next)/)) {
			Revisited.prevOrNext(prevOrNext[1], obj.parentNode.parentNode.parentNode);
		} else {
			img.attr('src', $(obj).attr('href'));
			$('li', obj.parentNode.parentNode).removeClass('active');
			$(obj.parentNode).addClass('active');
		}
		return(false);
	},

	prevOrNext: function(action, panel) {
		var imgSrc = $('img', panel).attr('src');
		var links = $('.image-nav.nav1 a', panel);
		var total = links.length;
		var current = 0;
		links.each(function(i) {
			if (basename($(this).attr('href')) == basename(imgSrc)) {
				current = i;
			}
		});
		if (action == "prev") {
			if (current > 0) {
				Revisited.changeImage(null, links.get(current-1));
			} else {
				Revisited.changeImage(null, links.get(total-1));
			}
		} else {
			if (current+1 == total) {
				Revisited.changeImage(null, links.get(0));
			} else {
				Revisited.changeImage(null, links.get(current+1));
			}
		}
	}
}

$(document).ready(Revisited.init);
