var start=0;

function storeCaret (textEl) {
       if (textEl.createTextRange) 
         {
		   textEl.caretPos = document.selection.createRange().duplicate();
		   start=1;
         }
	 }

function insert_bbcode(textEl, lft, rgt)
{
     //if (!start) return;
     if (document.all)
     {
     insert_bbcode_ie(textEl,lft, rgt);
     }
     else if (document.getElementById)
     {
     insert_bbcode_mozilla(textEl, lft, rgt);
     }
}

function insert_bbcode_ie(textEl,text1,text2)
{

 var caretPos = textEl.caretPos, temp_length = caretPos.text.length;

		caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text1 + caretPos.text + text2 + ' ' : text1 + caretPos.text + text2;

		if (temp_length == 0)
		{
			caretPos.moveStart("character", -text2.length);
			caretPos.moveEnd("character", -text2.length);
			caretPos.select();
		}
		else
			textEl.focus(caretPos);


}


function insert_bbcode_mozilla(txtarea, lft, rgt)
{
     
	 var st = txtarea.scrollTop;

     var selLength = txtarea.textLength;
     var selStart = txtarea.selectionStart;
     var selEnd = txtarea.selectionEnd;
     if (selEnd == 1 || selEnd == 2) selEnd = selLength;
     var s1 = (txtarea.value).substring(0, selStart);
     var s2 = (txtarea.value).substring(selStart, selEnd)
     var s3 = (txtarea.value).substring(selEnd, selLength);
     txtarea.value = s1 + lft + s2 + rgt + s3;

if (selStart == selEnd)
     {
     var str = lft;
     txtarea.selectionStart = selStart + str.length;
     txtarea.selectionEnd = selStart + str.length;
     }
     else
     {
     var str = lft + s2 + rgt;
     txtarea.selectionStart = selStart + str.length;
     txtarea.selectionEnd = selStart + str.length;     
     } 

     txtarea.scrollTop = st;

//     txtarea.setSelectionRange(5,6);
     txtarea.focus();
	 
	 
	 
}
