(function($) {

    $.duallistbox = function(options) {
    
    	var s = $('#' + options['source']);
    	var t = $('#' + options['target']);
    	
    	function Refresh() {
    		if(t.children().size() < 1)
    			t.append('<option value="" class="tous">Tous</option>');
    		else
    			$('option.tous',t).remove();
		};
    	

		s.click( function(event) {
			event.stopPropagation();
			
			var opt = $('option:selected',s);
			
			if(!opt.hasClass('selected')) {
				opt.addClass('selected').clone().removeClass('selected').appendTo(t);
			}
			
			Refresh();
		});
		
		t.click( function(event) {
		
			var opt = $('option:selected',t);
			opt.each( function(i,o) {
				$("option[value='"+o.value+"']",s).removeClass('selected');
			}).remove();
		
			Refresh();
		});
		
		$('option',t).each( function(i,o) {
			$("option[value='"+o.value+"']",s).addClass('selected');
		});
		
		Refresh();		
    };
    
})(jQuery);


