function getCursorPosition(id) {
	var textarea = document.getElementById(id);
	if (typeof textarea.selectionStart != 'undefined' )
		return textarea.selectionStart;
	textarea.focus();
	var range = textarea.createTextRange();
	range.moveToBookmark(document.selection.createRange().getBookmark());
	range.moveEnd('character', textarea.value.length);
	return textarea.value.length - range.text.length;
}

function setCursorPosition(id, start, end) {
	var textarea = document.getElementById(id);
	end = end || start;
	textarea.focus();
	if (textarea.setSelectionRange) textarea.setSelectionRange(start, end);
	else if (document.selection) {
		var range = textarea.createTextRange();
		range.moveStart('character', start);
		range.moveEnd('character', - textarea.value.length + end);
		range.select();
	}
}

function insertTextarea(id, string) {
	var text_value = document.getElementById(id).value;
	var position = getCursorPosition(id);

	var string_start = text_value.substring(0, position);
	var string_end = text_value.substring(position);

	document.getElementById(id).value = string_start + string + string_end;
	setCursorPosition(id, position + string.length, position + string.length);
}