var Rollover = Class.create({
	initialize: function(id, options) {
		this.id = id;
		this.origsource = $(this.id).src;
		this.setOptions(options);
		this.preloadRollover();
		this.rollbackImage();
		this.observeMouse();
	},

	setOptions: function(options) {
		this.options = {
			prefix: 'normal-'
		};
		Object.extend(this.options, options || {});
	},

	observeMouse: function() {
		$(this.id).observe('mouseover', this.rolloverImage.bindAsEventListener(this));
		$(this.id).observe('mouseout', this.rollbackImage.bindAsEventListener(this));
	},

	preloadRollover: function() {
		this.preload = new Image();
		this.preload.setAttribute('src',this.parseRollbackSource());
		this.preload_orig = new Image();
		this.preload_orig.setAttribute('src',this.origsource);
	},

	parseRollbackSource: function()
	{
		path = this.origsource.match(/(.*)\/(.*\.(png|gif|jpg))/)[1];
		filename = this.origsource.gsub(path, '').substr(1);
		return path + '/' + this.options.prefix + filename;
	},

	rolloverImage: function(e) {
		$(this.id).setAttribute('src',this.origsource);
	},

	rollbackImage: function(e) {
		$(this.id).setAttribute('src',this.parseRollbackSource());
	}
});
