/*
|--------------------------------------------------------------------------
| Amedia Creative Frontend Framework > Kwick
|--------------------------------------------------------------------------
|
| @package		Amedia Creative
| @subpackage	Frontend Framework
| @company		Amedia Creative, Inc.
| @phone		310/651/8733
| @fax			310/388/1210
| @author		Joey Avino
| @email		joey@amediacreative.com 
| @link			http://www.amediacreative.com
| @copyright	2008 Amedia Creative, Inc.
| @requires 	mootools.1.2.js
|
*/

/*
|--------------------------------------------------------------------------
| Amedia Creative Frontend Framework > Kwick > Core JavaScript
|--------------------------------------------------------------------------
|
*/

	/**
	* Function to make the accordion active.
	*
	* @name 	Kwick
	* @access 	public
	* @param 	var-type none
	* @return 	none
	* @author 	Joey Avino
	* @email	joey@amediacreative.com
	*/
	var Kwick = new Class({
						  
		Implements: Options, options: {
			
			obj_id: '#kwicks',
			obj_class: '.kwick',
			obj_expand: '.expand',
			obj_compress: '.compress',
			event_start: 'mouseenter',
			event_end: 'mouseleave',
			transition: Fx.Transitions.Back.easeOut,
			duration: 300
		
		},
		
		initialize: function(options) {

			this.setOptions(options);

			var sz_normal = $$(this.options.obj_id+" "+this.options.obj_class).getWidth();
			var sz_small = $$(this.options.obj_id+" "+this.options.obj_compress).getWidth();
			var sz_full = $$(this.options.obj_id+" "+this.options.obj_expand).getWidth();

			sz_normal = sz_normal[0];
			sz_small = sz_small[0];
			sz_full = sz_full[0];

			var event_start = this.options.event_start;
			var event_end = this.options.event_end;
			var kwicks = $$(this.options.obj_id+" "+this.options.obj_class);

			var fx = new Fx.Elements(kwicks, {wait: false, duration: this.options.duration, transition: this.options.transition});

			kwicks.each(function(kwick, element) {

				kwick.addEvent(event_start, function(event) {

					var o = {};
					o[element] = {width: [kwick.getStyle("width").toInt(), sz_full]}

					kwicks.each(function(other, e) {

						if(element != e) {

							var w = other.getStyle("width").toInt();
							if(w != sz_small) o[e] = {width: [w, sz_small]};

						}
					});
					fx.start(o);
				});
			});

			kwicks.addEvent(event_end, function(event) {
		
				var o = {};

				kwicks.each(function(kwick, i) {

					o[i] = {width: [kwick.getStyle("width").toInt(), sz_normal]}

				});
				fx.start(o);
			});

		}
	});