function insert_char(my_text_area, char_to_insert) {
	cursorPosition = insertAtCursor(my_text_area, char_to_insert);
	my_text_area.focus();
	setCursor(my_text_area, cursorPosition + char_to_insert.length, cursorPosition + char_to_insert.length);
}	

function insertAtCursor(myField, myValue) {
	//IE support
	if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		position = sel.text.length;
		sel.text = myValue;
		return position;
	}
	//MOZILLA/NETSCAPE support
	else if (myField.selectionStart || myField.selectionStart == '0') {
		startPos = myField.selectionStart;
		endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
		return startPos;
	} 
	else {
		myField.value += myValue;
		return myField.value.length;
	}
}

function setCursor(el,st,end) {
	if(el.setSelectionRange) {
		el.focus();
		el.setSelectionRange(st,end);
	}
	else {
		if(el.createTextRange) {
			range=el.createTextRange();
			range.collapse(true);
			range.moveEnd('character',end);
			range.moveStart('character',st);
			range.select();
		}
	}
}

function select_all(text_area) {
	setCursor(text_area, 0, text_area.value.length);
}

function clear_all(text_area) {
	text_area.value = '';
	text_area.focus();
}