/* (c) 2009 Jean Luc BIELLMANN - GR - contact@grouperessources.com */

var SelectExtendedMethods = {
	has : function (list,value) {
		var opts=list.select('option');
		while (opts.length) {
			if (opts.pop().value.toString()==value.toString())
				return true;
		}
		return false;
	},
	add : function (list,value) {
		if (value.length && !list.has(value)) {
			var opt = new Option(value,value);
			A(list,opt);
		}
		return list;
	},
	del : function (list,value) {
		if (value.length) {
			var opts=list.select('option');
			while (opts.length) {
				var opt = opts.pop();
				if (opt.value.toString()==value.toString())
					opt.remove();
			}
		}
		return list;
	},
	getSel : function (list) {
		var sel = new Array();
		var opts=list.select('option');
		while (opts.length) {
			var opt = opts.pop();
			if (opt.selected)
				sel.push(opt);
		}
		return sel;
	},	
	delSel : function (list) {
		var opts=list.select('option');
		while (opts.length) {
			var opt = opts.pop();
			if (opt.selected)
				opt.remove();
		}
		return list;
	},	
	copy : function (list,to) {
		$(list).select('option').each(function (opt) {
			if (opt.selected && !to.has(opt.value)) {
				to.add(opt.value);
				opt.parentNode.removeChild(opt);
			}
		});
		return list;
	},
	all : function (list) {
		$(list).select('option').each(function (opt) {
			opt.selected=true;
		});
		return list;
	},
	none : function (list) {
		$(list).select('option').each(function (opt) {
			opt.selected=false;
		});
		return list;
	}	
}

Event.observe(window,'load', function () {
	Element.addMethods('SELECT',SelectExtendedMethods);
});

