/**
 * class	QAIC_PopupFilterSelection
 * author	Paul Kruijt
 */
var QAIC_PopupFilterSelection = new Class(
{
	// extend core popup class
	Extends: QAIC_Popup,
	
 	/**
	 * constructor
	 * @return void
	 */
	initialize: function()
	{
		// call parents constructor
		this.parent();
		
		// id's
		this.filter_id	= 'qaic_filter_alt';
		this.popup_id	= 'qaic_popup_alt';
		this.content_id	= 'qaic_popup_content_alt';
		this.loader_id	= 'qaic_popup_loader_alt';
		this.confirm_id	= 'qaic_popup_filter_selection_confirm';
		
		// classes
		this.class_item			= 'qaic_popup_filter_selection_item';
		this.class_disabled		= 'qaic_disabled';
		this.class_close		= 'close';
		this.class_show			= 'show';
		this.class_hide			= 'hide';
		this.class_active		= 'active';
		
		// settings
		this.active_item_node	= null;
		
		// prefixes
		this.prefix_filter_field		= 'qaic_filter_field_';
		this.prefix_filter_field_alt	= 'qaic_filter_field_alt_';
		this.prefix_filter_item_search	= 'qaic_popup_filter_item_search_';
		this.prefix_filter_item_thumb	= 'qaic_popup_filter_item_thumb_';
		this.prefix_article_alt			= 'qaic_article_alt_';
		
		// paths
		this.loader_img_path	= '../img/qaic_loader.gif';
	},
	
	/**
	 * set content events
	 * @return void
	 */
	setContentEvents: function()
	{
		// get active item node
		this.active_item_node = this.getActiveItemNode();
		
		// set item events
		this.setItemEvents();
		
		// set confirm event
		this.setConfirmEvent();
		
		// create scrollbar
		getScrollbar('qaic_popup_filter_selection');
	},
	
	/**
	 * get active item node
	 * @return object	active_item_node
	 */
	getActiveItemNode: function()
	{
		// set vars
		var _this				= this;
		var active_item_node	= null;
		
		// loop through all items
		if (this.content_node)
		{
			var item_nodes			= this.content_node.getElements('.'+this.class_item);
			var total_item_nodes	= item_nodes.length;
			
			if (total_item_nodes > 0)
			{
				for (var i=0; i<total_item_nodes; i++)
				{
					var item_node = item_nodes[i];
					
					if (item_node)
					{
						var item_handler_node = item_node.getElement('a');
						
						if (item_handler_node)
						{
							if (item_handler_node.get('class') == this.class_active)
							{
								active_item_node = item_handler_node;
								
								var confirm_node = $(this.confirm_id);
								
								if (confirm_node)
								{
									var button_confirm_node = confirm_node.getElement('a');
									
									if (button_confirm_node)
									{
										var button_confirm_class = button_confirm_node.get('class');
										
										if (button_confirm_class == this.class_disabled) button_confirm_node.set('class', '');
									}
								}
								
								break;
							}
						}
					}
				}
			}
		}
		
		return active_item_node;
	},
	
	/**
	 * set item events
	 * @return void
	 */
	setItemEvents: function()
	{
		// set vars
		var _this = this;
		
		if (this.content_node)
		{
			// set active item
			if (!this.active_item_node) this.active_item_node = this.content_node.getElement('.'+this.class_active);
			
			// loop through all items
			var item_nodes			= this.content_node.getElements('.'+this.class_item);
			var total_item_nodes	= item_nodes.length;
			
			if (total_item_nodes > 0)
			{
				item_nodes.each(function(item_node, index)
				{
					var item_handler_node = item_node.getElement('a');
					
					if (item_handler_node)
					{
						item_handler_node.removeEvents();
						item_handler_node.addEvents(
						{
							'click'	: function()
							{
								if (this != _this.active_item_node)
								{
									// de-activate node
									if (_this.active_item_node) _this.active_item_node.set('class', '');
									
									// set active node
									this.set('class', _this.class_active);
									_this.active_item_node = this;
									
									var confirm_node = $(_this.confirm_id);
									
									if (confirm_node)
									{
										var button_confirm_node = confirm_node.getElement('a');
										
										if (button_confirm_node)
										{
											var button_confirm_class = button_confirm_node.get('class');
											
											if (button_confirm_class == _this.class_disabled) button_confirm_node.set('class', '');
										}
									}
								}
								
								return false;
							}
						});
					}
				});
			}
		}
	},
	
	/**
	 * set confirm event
	 * @return void
	 */
	setConfirmEvent: function()
	{
		// set vars
		var _this = this;
		
		if (this.content_node)
		{
			var confirm_node = $(this.confirm_id);
			
			if (confirm_node)
			{
				var button_confirm_node = confirm_node.getElement('a');
				
				if (button_confirm_node)
				{
					button_confirm_node.removeEvents();
					button_confirm_node.addEvents(
					{
						'click'	: function()
						{
							var button_confirm_class = this.get('class');
							
							if (button_confirm_class != _this.class_disabled)
							{
								if (_this.active_item_node)
								{
									// set data in filter form
									var article_number		= _this.active_item_node.get('title');
									var href_item			= _this.active_item_node.get('href');
									var arr_href_item		= href_item.split('?');
									var filter_param		= arr_href_item[1];
									var arr_filter_param	= filter_param.split('=');
									var filter_type_id		= arr_filter_param[1].toInt();
									var image_path			= _this.active_item_node.getElement('img').get('src');
									var article_name		= _this.active_item_node.getElement('img').get('alt');
									
									// check if alternative article is clicked
									var article_image_node	= _this.active_item_node.getElement('img');
									
									if (article_image_node)
									{
										var article_image_class = article_image_node.get('class');
										
										if (article_image_class != '')
										{
											// get alt article number
											var article_number_alt = article_image_class.replace(_this.prefix_article_alt, '');
											
											if (article_number_alt)
											{
												var hidden_filter_field_alt	= $(_this.prefix_filter_field_alt + filter_type_id);
												
												if (hidden_filter_field_alt) hidden_filter_field_alt.set('value', article_number_alt);
											}
										}
									}
									
									if (article_number && filter_type_id && image_path && article_name)
									{
										// replace image dimensions
										image_path = image_path.replace('w=100', 'w=75');
										image_path = image_path.replace('h=100', 'h=50');
										
										// set hidden form field with article number
										var hidden_filter_field			= $(_this.prefix_filter_field + filter_type_id);
										var hidden_filter_item_search	= $(_this.prefix_filter_item_search + filter_type_id);
										var hidden_filter_item_thumb	= $(_this.prefix_filter_item_thumb + filter_type_id);
										
										// set article name in filter selection handler
										if (hidden_filter_field)		hidden_filter_field.set('value', article_number);
										if (hidden_filter_item_search)	hidden_filter_item_search.set('text', article_name);
										if (hidden_filter_item_thumb)	hidden_filter_item_thumb.set('src', image_path);
										
										// submit filters form
										qaic_popup.submitForm('qaic_form_filters', '../http/filter.php');
									}
								}
								
								// remove popup
								_this.remove();
							}
							
							return false;
						}
					});
				}
			}
		}
	}
});
