function	InsertFCK ( text ) {

	var fck = FCKeditorAPI.GetInstance('message');
	fck.InsertHtml(text);

}

function setCaretTo(obj, pos) { 

	if(obj.createTextRange) { 

		var range = obj.createTextRange(); 
		range.move("character", pos); 
		range.select(); 

	} else if(obj.selectionStart) { 

		obj.focus(); 
		obj.setSelectionRange(pos, pos);

	}
}

function InsertText ( insertField, text ) { 

	if(insertField.value.length == 0) {

		insertField.value = text;

		setCaretTo(insertField, text.length);
	} else {

	if(document.selection) { 
		insertField.focus(); 
		var range = document.selection.createRange(); 

		if(range.parentElement() != insertField) { 
			return false; 
		} 

		var orig = insertField.value.replace(/rn/g, "n"); 
		range.text = text; 
		var actual = tmp = insertField.value.replace(/rn/g, "n"); 

		for(var diff = 0; diff < orig.length; diff++) { 
			if(orig.charAt(diff) != actual.charAt(diff)) break; 
		}

		for(var index = 0, start = 0; tmp.match(text) && (tmp = tmp.replace(text, "")) && index <= diff; index = start + text.length ) { 
			start = actual.indexOf(text, index); 
		}

	} else if(insertField.selectionStart) { 

		var start = insertField.selectionStart; 
		var end   = insertField.selectionEnd; 
		insertField.value = insertField.value.substr(0, start) + text  + insertField.value.substr(end, insertField.value.length); 

	}

	setCaretTo(insertField, (start + text.length));

	}
}
