function moveRight(maxNum) {
    var selSource = document.getElementById("leftbox");
    var selTo = document.getElementById("rightbox");
	if (selTo.options.length < maxNum) {
	    for (var i = 0; i < selSource.options.length; i++) {
	        if (selSource.options[i].selected && selTo.options.length < maxNum) {
	      	    var newOption = new Option(selSource.options[i].text, selSource.options[i].value);
				var lastVal = selSource.options[i].value;
	            selTo.options[selTo.options.length] = newOption; 
				if (lastVal != 0) {
					selSource.options[i] = null;
				}
				var curSel = document.getElementById("numSel");
				curSel = curSel.innerHTML;
				curSel++;
			    document.getElementById("numSel").innerHTML = curSel;
			} 
		}
	} else {
		alert ("You have a maximum of "+maxNum+" sources selected.");
	}
}

function moveLeft() {
    var selSource = document.getElementById("rightbox");
    var selTo = document.getElementById("leftbox");
    for (var i = 0; i < selSource.options.length; i++) {
        if (selSource.options[i].selected) {
      	    var newOption = new Option(selSource.options[i].text, selSource.options[i].value);
			var lastVal = selSource.options[i].value;
			if (lastVal != 0) {
            	selTo.options[selTo.options.length] = newOption;
			}
			var curSel = document.getElementById("numSel");
			curSel = curSel.innerHTML;
			curSel = curSel-1;
			document.getElementById("numSel").innerHTML = curSel;
		} 
	}
	listsort('leftbox',0, false, true);
    deleteOptions(selSource)
}

function deleteOptions(selDelete) {
    for (var i = 0; i < selDelete.options.length; i++) {  	
        if (selDelete.options[i].selected) {        		
	    	selDelete.options[i] = null;
	    	i=-1 
		} 
	} 
}


/*Portions of script by Babvailiica www.babailiica.com*/
function selectAll(theSelect) {
	for ( var i=0,n=theSelect.options.length; i<n; i++)
	theSelect.options[i].selected = true;
	return true;
}

function selectnone(obj) { /* NEW added from version 1.1 */
	obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
	if (obj.tagName.toLowerCase() != "select")
		return;
	for (i=0; i<obj.length; i++) {
		obj[i].selected = false;
	}
}


function sort2d(arrayName, element, num, cs) {
	if (num) {
		for (var i=0; i<(arrayName.length-1); i++) {
			for (var j=i+1; j<arrayName.length; j++) {
				if (parseInt(arrayName[j][element],10) < parseInt(arrayName[i][element],10)) {
					var dummy = arrayName[i];
					arrayName[i] = arrayName[j];
					arrayName[j] = dummy;
				}
			}
		}
	} else {
		for (var i=0; i<(arrayName.length-1); i++) {
			for (var j=i+1; j<arrayName.length; j++) {
				if (cs) {
					if (arrayName[j][element].toLowerCase() < arrayName[i][element].toLowerCase()) {
						var dummy = arrayName[i];
						arrayName[i] = arrayName[j];
						arrayName[j] = dummy;
					}
				} else {
					if (arrayName[j][element] < arrayName[i][element]) {
						var dummy = arrayName[i];
						arrayName[i] = arrayName[j];
						arrayName[j] = dummy;
					}
				}
			}
		}
	}
}

function listsort(obj, by, num, cs) {
	obj = (typeof obj == "string") ? document.getElementById(obj) : obj;
	by = (parseInt("0" + by) > 5) ? 0 : parseInt("0" + by);
	if (obj.tagName.toLowerCase() != "select" && obj.length < 2)
		return false;
	var elements = new Array();
	for (i=0; i<obj.length; i++) {
		elements[elements.length] = new Array(obj[i].text, obj[i].value, obj[i].className, obj[i].id, obj[i].selected);
	}
	sort2d(elements, by, num, cs);
	for (i=0; i<obj.length; i++) {
		obj[i].text = elements[i][0];
		obj[i].value = elements[i][1];
		obj[i].id = elements[i][2];
		obj[i].selected = elements[i][3];
	}
}

function moveTop(obj) {
	var obj = document.getElementById("rightbox");

	if (obj.tagName.toLowerCase() != "select" && obj.length < 2) { return false; }
	var elements = new Array();
	for (var i=0; i<obj.length; i++) {
		if (obj[i].selected) {
			elements[elements.length] = new Array(obj[i].text, obj[i].value, obj[i].id, obj[i].selected);
		}
	}
	for (i=0; i<obj.length; i++) {
		if (!obj[i].selected) {
			elements[elements.length] = new Array(obj[i].text, obj[i].value, obj[i].id, obj[i].selected);
		}
	}
	for (i=0; i<obj.length; i++) {
		obj[i].text = elements[i][0];
		obj[i].value = elements[i][1];
		obj[i].id = elements[i][2];
		obj[i].selected = elements[i][3];
	}
}

function moveBottom() {
	var obj = document.getElementById("rightbox");

	if (obj.tagName.toLowerCase() != "select" && obj.length < 2) { return false; }
	var elements = new Array();
	for (var i=0; i<obj.length; i++) {
		if (!obj[i].selected) {
			elements[elements.length] = new Array(obj[i].text, obj[i].value, obj[i].id, obj[i].selected);
		}
	}
	for (i=0; i<obj.length; i++) {
		if (obj[i].selected) {
			elements[elements.length] = new Array(obj[i].text, obj[i].value, obj[i].id, obj[i].selected);
		}
	}
	for (i=obj.length-1; i>-1; i--) {
		obj[i].text = elements[i][0];
		obj[i].value = elements[i][1];
		obj[i].id = elements[i][2];
		obj[i].selected = elements[i][3];
	}
}

function moveUp() {
	var obj = document.getElementById("rightbox");
	if (obj.tagName.toLowerCase() != "select" && obj.length < 2) { return false; }

	var sel = new Array();
	for (var i=0; i<obj.length; i++) {
		if (obj[i].selected == true) { sel[sel.length] = i; }
		}

	for (i in sel) {
		if (sel[i] != 0 && !isNaN(i) && !obj[sel[i]-1].selected) {
			var tmp = new Array(obj[sel[i]-1].text, obj[sel[i]-1].value, obj[sel[i]-1].id);
			obj[sel[i]-1].text = obj[sel[i]].text;
			obj[sel[i]-1].value = obj[sel[i]].value;
			obj[sel[i]-1].id = obj[sel[i]].id;
			obj[sel[i]].text = tmp[0];
			obj[sel[i]].value = tmp[1];
			obj[sel[i]].id = tmp[2];
			obj[sel[i]-1].selected = true;
			obj[sel[i]].selected = false;
		}
	}
}

function moveDown() {
	var obj = document.getElementById("rightbox");

	if (obj.tagName.toLowerCase() != "select" && obj.length < 2) { return false; }

	var sel = new Array();
	for (var i=obj.length-1; i>-1; i--) {
		if (obj[i].selected == true) { sel[sel.length] = i; }
		}

	for (i in sel) {
		if (sel[i] != obj.length-1 && !isNaN(i) && !obj[sel[i]+1].selected) {
			var tmp = new Array(obj[sel[i]+1].text, obj[sel[i]+1].value, obj[sel[i]+1].id);
			obj[sel[i]+1].text = obj[sel[i]].text;
			obj[sel[i]+1].value = obj[sel[i]].value;
			obj[sel[i]+1].id = obj[sel[i]].id;
			obj[sel[i]].text = tmp[0];
			obj[sel[i]].value = tmp[1];
			obj[sel[i]].id = tmp[2];
			obj[sel[i]+1].selected = true;
			obj[sel[i]].selected = false;
		}
	}
}

