$(document).ready( function() {
	imgHoverLighten();
	oAHoverSwapImage.init();
});
$(window).resize(function() {
	imgHoverLightenReposition();
});


// Image Darken (although it's called Lighten)
function imgHoverLighten() {	
	$("a.HoverLightenImg").each( function() {
		$(this).prepend("<div class='HoverLightenImg'></div>");
		$(this).mouseover( function() { 
			$(this).find('div.HoverLightenImg').show(); 
		} ); 
		$(this).mouseout( function() { 
			$(this).find("div.HoverLightenImg").hide(); 
		}); 
	});
	imgHoverLightenReposition();
}
function imgHoverLightenReposition() {	
	$("a.HoverLightenImg").each( function() {
		$(this).prepend("<div class='HoverLightenImg'></div>");
		$(this).find("img").each( function() { 
			var img = $(this); 
			var prev = img.prev(); 
			var pos = img.position(); 
			prev.css({ "position": "absolute", "height": img.height(), "width": img.width(), "top": pos.top, "left": pos.left, "background": "rgba(0, 0, 0, 0.2)", "z-index": "9999" }).hide();
	  }) 
	} ); 
}

// HoverImageSource
oHoverImage = {
	 sHoverSuffix: '-hvr'
	,getSrc: function(sSrc, bHvr) {
		var sHvrSuf = oHoverImage.sHoverSuffix;
		var re = new RegExp('('+sHvrSuf+')?\.(gif|jpg|png)$');
		sSrc = sSrc.replace(re, bHvr ? sHvrSuf+'.$2' : '.$2');
		return sSrc;
	}
	,preload: function(sSrc) {
		jQuery('<img>').attr('src', oHoverImage.getSrc(sSrc, true));
	}
}
// HoverSwapImage class
oAHoverSwapImage = {
	 init: function() {
		$('.HoverSwapImage').each(
			function() {
				$(this).hover(
					function(eventObj) {
						$(this).find('img').attr('src', oHoverImage.getSrc($(this).find('img').attr('src'), eventObj.type == 'mouseenter'));
					}
				);
				oHoverImage.preload($(this).find('img').attr('src'));
				jQuery('<img>').attr('src', oHoverImage.getSrc($(this).find('img').attr('src'), true));
			}
		);
	}
}

