function DoSmiley(addSmilie, textarea) {
	textarea = (textarea == undefined) ? document.REPLIER.message : textarea;
	replaceSelection(textarea, getSelection(textarea)+addSmilie, 0);
	return;
}

function nothing() {
  return;
}

function setSelectionRange(input, selectionStart, selectionEnd) {
	if (input.setSelectionRange) {
		input.focus();
		input.setSelectionRange(selectionStart, selectionEnd); 
	}
	else if (input.createTextRange) {
		var range = input.createTextRange();
		range.collapse(true);
		range.moveEnd('character', selectionEnd);
		range.moveStart('character', selectionStart);
		range.select(); 
	}
}

function setCaretToPos (input, pos) {
	setSelectionRange(input, pos, pos);
}

function selectString (input, string) {
	var match = new RegExp(string, "i").exec(input.value);
	if (match) {
		setSelectionRange (input, match.index, match.index + match
		[0].length);
	}
}

function getSelection(input) {
	if (input.setSelectionRange) {
		var selectionStart = input.selectionStart;
		var selectionEnd = input.selectionEnd;
		return input.value.substring(selectionStart, selectionEnd);
	}
	else return ((document.all)? document.selection.createRange() : document.getSelection()).text; 
}

function replaceSelection (input, replaceString, flag) {
	if (!replaceString) return;
	if (input.setSelectionRange) {
		var selectionStart = input.selectionStart;
		var selectionEnd = flag?input.selectionStart:input.selectionEnd;
		input.value = input.value.substring(0, selectionStart)
			+ replaceString
			+ input.value.substring(selectionEnd);
		if (selectionStart != selectionEnd)
			setSelectionRange(input, selectionStart, selectionStart + replaceString.length);
		else
		  setCaretToPos(input, selectionStart + replaceString.length); }
	else if (document.selection) {
		input.focus();
	  insertAtCaret(input, replaceString);
/*		var range = document.selection.createRange();
		input.value+=replaceString;
		if (range.parentElement() == input) {
		  var isCollapsed = range.text == '';
			range.text = replaceString;
			if (!isCollapsed)  {
				range.moveStart('character', -replaceString.length);
				range.select(); } } */ 
	}
}