/*
requires jquery
*/
var AWCIMGHover;

(function($){
	AWCIMGHover = $.extend({},{

		activateHover: function(classname, img_src) {
			var img_el = $('img.'+classname);
			img_el.hover(
				function() {
					img_el.data('hover', true);
					
					if (img_el.data('down')) { return; }

					// hover in
					this.src = img_src;
				},
				function() {
					img_el.data('hover', false);

					if (img_el.data('down')) { return; }

					// hover out
					this.src = img_el.data('orig-src');
				}
			);

			// save src
			img_el.data('orig-src',img_el.attr('src'));
			img_el.data('hover-src',img_src);

			// preload the hover img src
			var img = new Image();
			img.src = img_src;
		},


		activateDown: function(classname, img_src) {
			var img_el = $('img.'+classname);
			img_el.mousedown(function(e) {
				// cancel FF image drag
				e.preventDefault();
				
				var img = this;

				// activate down
				img.src = img_src;
				img_el.data('down', true);
				
				// listen for the next mouseup event anywhere in the document
				$(document).mouseup(function() {
					img.src = (img_el.data('hover') ? img_el.data('hover-src') : img_el.data('orig-src'));
					img_el.data('down', false);
				});
			});

			// preload the down img src
			var img = new Image();
			img.src = img_src;

			// save src
			img_el.data('orig-src',img_el.attr('src'));
			img_el.data('down-src',img_src);
		},

		__end: null
	});
})(jQuery);

