(function($) {
	$.fn.imageareazoom = function( options ) {
		var settings = {
			"zoomTriggerSelector"	: ".imageareazoom",
			"areas"	: []
		};
		return this.each(function(){
			if ( options ) { 
				$.extend( settings, options );
			}
			var areas = new Object();
			$.each(settings.areas, function(index, value) { 
				 areas[value.id] = value;
			});
			var image = $(this);
			var initWidth = image.width();
			var initHeight = image.height();
			$(settings.zoomTriggerSelector).hover(function(){
				var area = areas[$(this).attr('rel')];
				if(area){
					image.stop(true, false).animate(
						{
							height: area.zoomHeight,
							width: area.zoomWidth,
							top: area.yOffset*-1,
							left: area.xOffset*-1
						}, 2000
					);
				}
			},function(){
				image.stop(true, false).animate(
					{
						height: initHeight,
						width: initWidth,
						top: 0,
						left: 0
					}, 2000
				);
			});
		});
	};
})(jQuery);
