
/**  CrossSelect
 *  (c) 2007 Damon Toal-Rossi
 *
 *  Moves items from one multi-select screen to another.
 *  Requires prototype.js library
 *
/*--------------------------------------------------------------------------*/
var CrossSelect = {
updateRealField:function (realFieldID, updateFromSelectId) {
	var realField = $(realFieldID);
	var updateFromSelect = $(updateFromSelectId);
	realField.value = "";
	for (i = 0; i < updateFromSelect.options.length; i++) {
		realField.value += updateFromSelect.options[i].value + ",";
	}
	realField.value = realField.value.substr(0, realField.value.length - 1);
}, 
reOrderSelectList:function (selectList) {
	var arrTexts = new Array();
	var arrValues = new Array();
	var arrOldTexts = new Array();
	for (i = 0; i < selectList.length; i++) {
		arrTexts[i] = selectList.options[i].text;
		arrValues[i] = selectList.options[i].value;
		arrOldTexts[i] = selectList.options[i].text;
	}
	arrTexts.sort();
	for (i = 0; i < selectList.length; i++) {
		selectList.options[i].text = arrTexts[i];
		for (j = 0; j < selectList.length; j++) {
			if (arrTexts[i] == arrOldTexts[j]) {
				selectList.options[i].value = arrValues[j];
				j = selectList.length;
			}
		}
	}
}, 
addSelectedItems:function (fromSelectID, toSelectID, realFieldID) {
	var fromSelect = $(fromSelectID);
	var toSelect = $(toSelectID);
	for (i = 0; i < fromSelect.options.length; i++) {
		if (fromSelect.options[i].selected == true) {
			toSelect.options[toSelect.options.length] = new Option(fromSelect.options[i].text, fromSelect.options[i].value);
		}
	}
	while (fromSelect.selectedIndex != -1) {
		fromSelect.options[fromSelect.selectedIndex] = null;
	}
	this.updateRealField(realFieldID, toSelectID);
	this.reOrderSelectList(toSelect);
	this.reOrderSelectList(fromSelect);
}, 
removeSelectedItems:function (fromSelectID, toSelectID, realFieldID) {
	var fromSelect = $(fromSelectID);
	var toSelect = $(toSelectID);
	for (i = 0; i < toSelect.options.length; i++) {
		if (toSelect.options[i].selected == true) {
			fromSelect.options[fromSelect.options.length] = new Option(toSelect.options[i].text, toSelect.options[i].value);
		}
	}
	while (toSelect.selectedIndex != -1) {
		toSelect.options[toSelect.selectedIndex] = null;
	}
	this.updateRealField(realFieldID, toSelectID);
	this.reOrderSelectList(toSelect);
	this.reOrderSelectList(fromSelect);
}};

