/*
|--------------------------------------------------------------------------
| --- > Carousel
|--------------------------------------------------------------------------
|
| @package		---
| @subpackage	Frontend - Multiselect
| @company		---
| @phone		---
| @fax			---
| @author		---
| @email		---
| @link			---
| @copyright	---
| @requires		mootools.1.2.js
| @version		1.0
|
*/

/*
|--------------------------------------------------------------------------
| --- > Multiselect > CORE JAVASCRIPT
|--------------------------------------------------------------------------
|
| NOTE: This file is setup to work without requiring edits.
| All items can be called from the external file.
|
*/


	/**
	* Function to activate the multiselect section once it's been initialized from external
	*
	* @name 	New Multiselect Class
	* @access 	public
	* @param 	var-type none
	* @return 	none
	* @author 	Joey Avino
	* @email	---
	*/
	var Multiselect = new Class({

		Implements: Options, options: {

			mouse_event: 'click',
			button_item: '.check_object',
			check_class: '.multiselect_checkbox',
			left_selected_class: 'left_selected',
			mid_selected_class: 'mid_selected',
			right_selected_class: 'right_selected',
			default_check: null,
			radio: false

		},

		/**
		* Function to activate the JavaScript
		*
		* @name 	Initialize
		* @access 	public
		* @param 	var-type none
		* @return 	none
		* @author 	Joey Avino
		* @email	---
		*/
		initialize: function(multiselect, options) {

			this.setOptions(options);

			var list = $$(this.options.button_item);		
			var check_class = $$(this.options.check_class);	
			var mouse_event = this.options.mouse_event;
			var default_check = this.options.default_check;
			var radio = this.options.radio;

			var left_selected_class = this.options.left_selected_class;
			var mid_selected_class = this.options.mid_selected_class;
			var right_selected_class = this.options.right_selected_class;

			var i = 0;
			list.each(function(element) {

				var left = element.getElement('.left');
				var mid = element.getElement('.mid');
				var right = element.getElement('.right');

				if (default_check == i) {

					left.toggleClass(left_selected_class);
					mid.toggleClass(mid_selected_class);
					right.toggleClass(right_selected_class);

				}

				var n = 0;
				check_class.each(function(remove_check_element) {

					if (default_check != n) {

						check_class[i].checked = false;
						n++;

					}

					check_class[default_check].checked = true;

				});

				i++;

				element.addEvent(mouse_event, function() {

					if (radio) {

						list.each(function(remove_element) {

							var left_swap = remove_element.getElement('.left');
							var mid_swap = remove_element.getElement('.mid');
							var right_swap = remove_element.getElement('.right');

							left_swap.removeClass(left_selected_class);
							mid_swap.removeClass(mid_selected_class);
							right_swap.removeClass(right_selected_class);

						});
						

						left.toggleClass(left_selected_class);
						mid.toggleClass(mid_selected_class);
						right.toggleClass(right_selected_class);

					}

					object_id = element.get('id');
					object_array = object_id.split('_');
					object_index = object_array[object_array.length - 1];

					check_class.each(function(element) {

						check_id = element.get('id');

						check_array = check_id.split('_');
						check_index = check_array[object_array.length - 1];

						if (radio)
							element.checked = false;

						if (check_index == object_index) {

							if (check_class[object_index - 1].checked == false)
								check_class[object_index - 1].checked = true;

							else
								check_class[object_index - 1].checked = false;

						}
					});
				});
			});
		},

		remove_all: function() {

				alert('gone');

		}
	});