function cur_ins(field, startTag, endTag, offset)
{
	field.focus();
	
	if (document.getSelection)
	{
		var scrollTop, scrollLeft;
		
		if (field.type == 'textarea' && typeof field.scrollTop != 'undefined')
		{
			scrollTop = field.scrollTop;
			scrollLeft = field.scrollLeft;
		}
		
		selStart = field.selectionStart;
		selEnd = field.selectionEnd;
		text = field.value.substring(selStart, selEnd);
		field.value = field.value.substring(0, selStart) + startTag + text + endTag + field.value.substring(selEnd);

		if (typeof scrollTop != 'undefined')
		{
			field.scrollTop = scrollTop;
			field.scrollLeft = scrollLeft;
		}
		
		if (text.length > 0)
		{
			if (offset != 0)
				field.selectionEnd = selStart + startTag.length /* + text.length */ - offset;
			else
				field.selectionEnd = selStart + startTag.length + text.length + endTag.length;
		}
		else
			field.selectionEnd = selStart + startTag.length;
		
		field.selectionStart = field.selectionEnd;
	}
	else if (document.selection)
	{
		marker = document.selection.createRange();
		text = marker.text;
		marker.text = startTag+text+endTag;
		marker = document.selection.createRange();
		
		if (text.length > 0)
		{
			if (offset != 0)
				marker.move('character', startTag.length /* + text.length */ - offset);
			else
				marker.move('character', startTag.length + text.length + endTag.length + offset);
		}
		else
			marker.move('character', -(endTag.length));

		marker.select();
	}
}