/*
TO DO
Change variable names?
	Or mention inspired by...
*/

window.addEvent('domready', function(){
	$$('.kwicks').each(function(kwicksContainer, i) {
		new MultiItemScrunchUnscrunch({
			kwicksArray: kwicksContainer.getElements('li')
		});
	});
}); 	


var MultiItemScrunchUnscrunch = new Class({
	//Implements: [Options, Events],
	options: {
		szSmall: 227,
		szNormal: 310,
		szFull: 476,
		kwicksArray: []
	},
	initialize: function(options){
		this.setOptions(options);
		this.setitup(this.options.kwicksArray); // GET AND PASS THE ARRAY
	},
	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)

/*
function setitup(kwicks) {
	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);
	});
}
*/