<!--

function hasOptions(obj) {
	if (obj!=null && obj.options!=null)  
		return true; 
	return false;
}

function selectAllOptions(obj) {
	if (!hasOptions(obj))  
		return; 

	for (var i=0; i<obj.options.length; i++) 
		obj.options[i].selected = true;
}

function copySelectedOptions(from,to) {
	var options = new Object();
	if (hasOptions(to)) {
		for (var i=0; i<to.options.length; i++) 
			options[to.options[i].value] = to.options[i].text;
	}

	if (!hasOptions(from))  
		return; 

	for (var i=0; i<from.options.length; i++) {
		var o = from.options[i];

		if (o.selected) {
			if (options[o.value] == null || options[o.value] == "undefined" || options[o.value]!=o.text) {
				if (!hasOptions(to)) 
					var index = 0; 
				else 
					var index=to.options.length; 

				to.options[index] = new Option( o.text, o.value, false, false);
			}
		}
	}

	from.selectedIndex = 0;
	to.selectedIndex = 0;
}	

function moveSelectedOptions(from,to) {

	// Move them over
	if (!hasOptions(from))  
		return; 
	for (var i=0; i<from.options.length; i++) {
		var o = from.options[i];
		if (o.selected) {
			if (!hasOptions(to))  
				var index = 0;  
			else  
				var index=to.options.length; 

			to.options[index] = new Option( o.text, o.value, false, false);
		}
	}
	// Delete them from original
	for (var i=(from.options.length-1); i>=0; i--) {
		var o = from.options[i];
		if (o.selected) 
			from.options[i] = null;
	}

	from.selectedIndex = -1;
	to.selectedIndex = -1;
}

function moveAllOptions(from,to) {
	selectAllOptions(from);
	if (arguments.length==2) 
		moveSelectedOptions(from,to);
	else if (arguments.length==3) 
		moveSelectedOptions(from,to,arguments[2]);
	else if (arguments.length==4) 
		moveSelectedOptions(from,to,arguments[2],arguments[3]);
}

function copyAllOptions(from,to) {
	selectAllOptions(from);

	if (arguments.length==2) 
		copySelectedOptions(from,to);

	else if (arguments.length==3) 
		copySelectedOptions(from,to,arguments[2]);
}

function swapOptions(obj,i,j) {
	var o = obj.options;
	var i_selected = o[i].selected;
	var j_selected = o[j].selected;
	var temp = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	var temp2= new Option(o[j].text, o[j].value, o[j].defaultSelected, o[j].selected);
	o[i] = temp2;
	o[j] = temp;
	o[i].selected = j_selected;
	o[j].selected = i_selected;
}
	
function moveOptionUp(obj) {
	if (!hasOptions(obj)) 
		return;
	for (i=0; i<obj.options.length; i++) {
		if (obj.options[i].selected) {
			if (i != 0 && !obj.options[i-1].selected) {
				swapOptions(obj,i,i-1);
				obj.options[i-1].selected = true;
			}
		}
	}
}

function moveOptionDown(obj) {
	if (!hasOptions(obj)) 
		return; 
	for (i=obj.options.length-1; i>=0; i--) {
		if (obj.options[i].selected) {
			if (i != (obj.options.length-1) && ! obj.options[i+1].selected) {
				swapOptions(obj,i,i+1);
				obj.options[i+1].selected = true;
			}
		}
	}
}

function removeSelectedOptions(from) { 
	if (!hasOptions(from)) 
		return; 
	for (var i=(from.options.length-1); i>=0; i--) { 
		var o=from.options[i]; 
		if (o.selected) 
			from.options[i] = null; 
		} 
	from.selectedIndex = -1; 
} 

function removeAllOptions(from) { 
	if (!hasOptions(from)) 
		return; 

	for (var i=(from.options.length-1); i>=0; i--) 
		from.options[i] = null; 

	from.selectedIndex = -1; 
} 

function removeOptionbyText(obj,text) {
	if (obj!=null && obj.options!=null) { 
		for(i = 0; i < obj.options.length; i++) {
			if(obj.options[i] && obj.options[i].text == text)
				obj.options[i] = null;
		}
	}
}

function explodeOptions(from, to){
	if (!hasOptions(from)) 
		return; 

	to.value = '';

	for(i = 0; i < from.options.length; i++) {
		from.selectedIndex = i; 
		str		= from.options[i].value;
		str 	= str.replace(/\|/gi, '&#124'); 
		to.value = (to.value != '') ? to.value + '|' + str : str;
	}
}

function addOption(obj,text,value,selected) {
	if (obj!=null && obj.options!=null) 
		obj.options[obj.options.length] = new Option(text, value, false, selected);
}

function text_counter(field, count, max) {
	if (field.value.length > max) // if too long...trim it!
		field.value = field.value.substring(0, max);
	else
		count.value = max - field.value.length;
}

//-->
