(function($){
	$.fn.swapImage = function(opt){
		opt = $.extend({
			suffix_off: '_off',
			suffix_on: '_on'
		},opt);
		return this.each(function(){
			var img = this;
			var preload = {};
			var src = $(img).attr('src');
			if(src.indexOf(opt.suffix_off) !== -1){
				var srcOn = src.replace(opt.suffix_off+'.',opt.suffix_on+'.');
				if(typeof(preload[srcOn])){
					preload[srcOn] = 1;
					(new Image()).src = srcOn;
				}
				$(img).hover(
					function(){
						$(img).attr('src',srcOn);
					},
					function(){
						$(img).attr('src',src);
					}
				);
				$(img).parent().filter('a')
				.focus(function(){
					$(img).attr('src',srcOn);
				}).blur(function(){
					$(img).attr('src',src);
				});
			}
		});
	};
})(jQuery);

