var ImageZoom = new Class({
	Implements: [Options, Events],
	options: {
		resizeDuration:		1000
	},
	initialize: function(options) {
		if(options) {
			this.setOptions(options);
		}
		this.zoomContainerElement = $('imageZoom');
		this.zoomableImages = this.zoomContainerElement.getElements('img');
		this.assignImageEvents();
	},
	assignImageEvents: function() {
		this.zoomableImages.each(function(element) {
			var zoomFx = new Fx.Morph(element, {duration: 400, transition: Fx.Transitions.sine});
			element.addEvent('mouseenter', function() {
				zoomFx.cancel();
				zoomFx.start('.large');
			});
			element.addEvent('mouseleave', function() {
				zoomFx.cancel();
				zoomFx.start('.small');
			});
		});
	}
});

var ImageZoomInstance;
window.addEvent('domready', function() {
	ImageZoomInstance = new ImageZoom({
		resizeDuration: 500
	});
});