// 2010 Arthur Zielinski
(function($)
{
	$.fn.listbox_bind_to = function( params ) 
	{
	    var defaults =
		{
   			listbox: '',
			button_add: '',
			button_remove: ''
		};
		var config = $.extend( defaults, params );
		var self = $(this);
		
		config.listbox.parents('form').submit(function()
		{		
			config.listbox.attr('multiple', 'multiple').each(function()
			{
				$(this).children('option').attr('selected', 'selected');
			});			
		});
			    
		self.dblclick(function()
		{
			var item = $(this).children('option:selected');
			config.listbox.append(item);
		}); 
	    	
		config.listbox.dblclick(function()
		{                            
			var item = $(this).children('option:selected');
			self.append(item);
			
			var items = self.children('option');
			items.sort(function(a, b) 
			{
	   			var compA = $(a).text().toUpperCase();
	   			var compB = $(b).text().toUpperCase();
	   			return (compA < compB) ? -1 : (compA > compB) ? 1 : 0;
			});
			$.each(items, function(idx, itm) { self.append(itm); });
		});
			
		config.button_add.click(function(){ self.trigger('dblclick'); return false; });
		config.button_remove.click(function(){ config.listbox.trigger('dblclick'); return false; });
	}       
})(jQuery);
