function storeCaret (textEl) {
	if (textEl.createTextRange)
		textEl.caretPos = document.selection.createRange().duplicate();
} // end fn

function insertAtCaret (textEl, text) {
	if (textEl.createTextRange && textEl.caretPos) {
		var caretPos = textEl.caretPos;
		caretPos.text =
			caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?
			text + ' ' : text;
}
	// Mozilla text range replace.
	else if (typeof(textEl.selectionStart) != "undefined")
	{
		var begin = textEl.value.substr(0, textEl.selectionStart);
		var end = textEl.value.substr(textEl.selectionEnd);
		var scrollPos = textEl.scrollTop;

		textEl.value = begin + text + end;

		if (textEl.setSelectionRange)
		{
			textEl.focus();
			textEl.setSelectionRange(begin.length + text.length, begin.length + text.length);
		}
		textEl.scrollTop = scrollPos;
	}

	// Just put them on the end, then.
	else{
			textEl.value += text;
			textEl.focus(textEl.value.length - 1);
	}

	return true;
}// fn