var MultiItemScrunchUnscrunch = new Class({
	//Implements: [Options, Events],
	options: {
		szSmall: 100,
		szNormal: 200,
		szFull: 300,
		kwicksArray: []
	},
	initialize: function(options){
		this.setOptions(options);
		this.setitup(this.options.kwicksArray);
	},
	setitup: function(kwicks) {
		var szSmall = this.options.szSmall;
		var szNormal = this.options.szNormal;
		var szFull = this.options.szFull;
		var fx = new Fx.Elements(kwicks, {wait: false, duration: 1200, transition: Fx.Transitions.Back.easeOut});
		kwicks.each(function(kwick, i) {
			kwick.addEvent("mouseenter", function(event) {
				var o = {};
				o[i] = {width: [kwick.getStyle("width").toInt(), szFull]}
				kwicks.each(function(other, j) {
					if(i != j) {
						var w = other.getStyle("width").toInt();
						if(w != szSmall) o[j] = {width: [w, szSmall]};
					}
				});
				fx.start(o);
			});
		});
		$(kwicks[0].getParent()).addEvent("mouseleave", function(event) {
			//alert("out " +  kwicks[0].getParent().getProperty('class'));
			var o = {};
			kwicks.each(function(kwick, i) {
				o[i] = {width: [kwick.getStyle("width").toInt(), szNormal]}
			});
			fx.start(o);
		});
	}
});
MultiItemScrunchUnscrunch.implement(new Events); // Implements addEvent(type, fn), fireEvent(type, [args], delay) and removeEvent(type, fn)
MultiItemScrunchUnscrunch.implement(new Options); // Implements setOptions(defaults, options)
