// JavaScript Document

function updateSelected(targetListID, targetHiddenID){
	var listObject = document.getElementById(targetListID);
	var targetHiddenObject = document.getElementById(targetHiddenID);

	targetHiddenObject.value = "";
	for (var i=0; i<listObject.options.length; i++){
		targetHiddenObject.value = targetHiddenObject.value + "," + listObject.options[i].value;
	}
	targetHiddenObject.value = targetHiddenObject.value.substring(1);
	//alert(targetHiddenObject.value);
}

function moveValue(sourceObjectID, targetObjectID, sortBy){
	var sourceObject = document.getElementById(sourceObjectID);
	var targetObject = document.getElementById(targetObjectID);
	
	for (var i=sourceObject.options.length-1; i >= 0;i--) {
		if (sourceObject.options[i].selected) {
			addOption(targetObject, sourceObject.options[i].text, sourceObject.options[i].value);
			sourceObject.remove(i);
		}
	}
	
	sortlist(sourceObject, sortBy);
	sortlist(targetObject, sortBy);
}

function moveAll(sourceObjectID, targetObjectID, sortBy){
	var sourceObject = document.getElementById(sourceObjectID);
	for (var i=sourceObject.options.length-1; i >= 0;i--) {
		sourceObject.options[i].selected = true;
	}
	moveValue(sourceObjectID, targetObjectID, sortBy);
}

function addOption(selectbox,text,value ){
	var optn = document.createElement("option");
	optn.text = text;
	optn.value = value;
	selectbox.options.add(optn);
}

function sortlist(selElem, sortBy) {
	var tmpAry = new Array();
	for (var i=0;i<selElem.options.length;i++) {
			tmpAry[i] = new Array();
			if (sortBy == "value") {
				tmpAry[i][0] = selElem.options[i].value;
				tmpAry[i][1] = selElem.options[i].text;
			}else{
				tmpAry[i][0] = selElem.options[i].text;
				tmpAry[i][1] = selElem.options[i].value;
			}
	}
	tmpAry.sort();
	while (selElem.options.length > 0) {
		selElem.options[0] = null;
	}
	for (var i=0;i<tmpAry.length;i++) {
			if (sortBy == "value") var op = new Option(tmpAry[i][1], tmpAry[i][0]); else var op = new Option(tmpAry[i][0], tmpAry[i][1]);
			selElem.options[i] = op;
	}
	return;
}

