function insertAtCursor( tag, myField ) {
    var ftag = "[/" + tag.substr(1);
    var obj = document.getElementById( myField );
    //IE support
    if (document.selection) {
        obj.focus();
        sel = document.selection.createRange();
        sel.text = tag + sel.text + ftag;
        // sel.moveStart( 'character', - ( tag.length ) );
        // sel.moveEnd( 'character', ftag.length );
        // sel.select();
    }
    //MOZILLA/NETSCAPE support
    else if (obj.selectionStart || obj.selectionStart == '0') {
        var startPos = obj.selectionStart;
        var endPos = obj.selectionEnd;
        var sel = obj.value.substring( startPos, endPos );
        
        if( obj.value.substring( startPos - tag.length, startPos ) == tag && obj.value.substring( endPos, endPos + ftag.length == ftag ) )
        {
          obj.value = obj.value.substring( 0, startPos - tag.length ) + obj.value.substring( startPos, endPos ) + obj.value.substring(endPos + ftag.length, obj.value.length);
          obj.selectionStart = startPos - tag.length;
          obj.selectionEnd = endPos - tag.length;
          obj.focus;
        }
        else
        {
          obj.value = obj.value.substring( 0, startPos ) + tag + sel + ftag + obj.value.substring(endPos, obj.value.length);

          obj.selectionStart = startPos + tag.length;
          obj.selectionEnd = startPos + tag.length + sel.length;
          obj.focus;
        }
    } else {
        obj.value += tag + ftag;
    }
}
// 
// function select(e, start, end){
//      e.focus();
//      if(e.setSelectionRange)
//         e.setSelectionRange(start, end);
//      else if(e.createTextRange) {
//         e = e.createTextRange();
//         e.collapse(true);
//         e.moveEnd('character', end);
//         e.moveStart('character', start);
//         e.select();
//      }
// }
// select(document.getElementById('textarea_id'), 5, 10);