/**
 * @author www.daynos.net
 * @version 0.1
 *
 * Inspired by :
 * - alexander.farkas' "ui.selectbox.js" 
 * - Giovanni Casassa (senamion.com - senamion.it) "jListbox jQuery plugin"
 */

jQuery.fn.selectBox = function(opts) {

	opts = jQuery.extend({
		selectText: "No option",
		viewText: true,
		autoWidth:true
	}, opts);

	return this.each(function() {
		var $select = $(this);
		
		name = ($select.attr('name') || $select.attr('id') || 'internalName') + '_mba';
		title = $select.attr('title');
		
		this.visualElement = $('<div />')
				.attr ("id", name)
				.addClass('ui-selectbox')
				.append (
						$('<a />')
						.attr ("id", "i"+name)
						.attr ("title", title)
						.val ("")
						)
				.append ($('<ul />'))
				;
				

		$select
		
			.addClass('ui-helper-hidden-accessible')
			.after(this.visualElement)
			;
							

		var $a = $("a", this.visualElement);
		var $ul = $("ul", this.visualElement);
		
		$ul.css ({left:0, top:$('#'+name).innerHeight()})
		
		if (opts.autoWidth) {
			$('div', this.visualElement).css ({width:$select.width()});
			$a.css ({width:$select.width()});
			$ul.css ({width:$select.width()});
		}
		
		$select.children("option").each(function(i,n) {
			var $li = $('<li />').html ($(n).text());
			$ul.append ($li);
		}); 

		$a.click(function(){
			//$(".ui-selectbox ul").slideToggle("fast");
			$ul.stop().slideToggle("fast");
		});

		var $li = $("li", this.visualElement);
		$li.click(function(){
			//alert ('clic '+$(this).html());
			$select.val ($(this).html()).change ();
		});

		$select.change (function(){
			$a.html ($(this).val());
			$(".ui-selectbox ul").slideUp("fast");
		}).change ();

	});
};    
