function setCaret (textObj) {
if (textObj.createTextRange) {
textObj.caretPos = document.selection.createRange().duplicate();
}
}

function insertAtCaret (textObj, textFeildValue, closetag, link) {

if(document.all){

if (textObj.createTextRange && textObj.caretPos) {

var caretPos = textObj.caretPos;
var highlighted = caretPos.text;

//if it's already tagged, untag it
    if (highlighted.indexOf("<"+textFeildValue+">") != -1 )
       {
       var teststr = "<"+textFeildValue+">";
       var teststr2 = "</"+textFeildValue+">";

       highlighted = highlighted.replace(teststr,"");
       highlighted = highlighted.replace(teststr2,"");
       }
       else if ( highlighted.indexOf("<a") != -1 )
       {
       var teststr = "<"+textFeildValue+"'"+link+"'>";
       teststr = highlighted.substr(highlighted.indexOf("<a"),((highlighted.indexOf("'>")+2) - highlighted.indexOf("<a")))
       var teststr2 = "</a>";
       highlighted = highlighted.replace(teststr,"");
       highlighted = highlighted.replace(teststr2,"");
       }
       else
       {
           if (!link && closetag != 'a')
           {
           highlighted = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?textFeildValue + ' ' : "<"+textFeildValue+">"+caretPos.text+"</"+closetag+">";
           //caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?textFeildValue + ' ' : "<"+textFeildValue+">"+caretPos.text+"</"+closetag+">";
           }
           else
           {
           highlighted =  caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?textFeildValue + ' ' : "<"+textFeildValue+"'"+link+"'>"+caretPos.text+"</"+closetag+">";
           //caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ?textFeildValue + ' ' : "<"+textFeildValue+"'"+link+"'>"+caretPos.text+"</"+closetag+">";
           }
       }

caretPos.text = highlighted;
}
else{
textObj.value = "<error>";
}
}else{
if(textObj.setSelectionRange){
var rangeStart = textObj.selectionStart;
var rangeEnd = textObj.selectionEnd;
var tempStr1 = textObj.value.substring(0,rangeStart);
var highlighted = textObj.value.substring(rangeStart,rangeEnd);
var tempStr2 = textObj.value.substring(rangeEnd);
//if it's already tagged, untag it
    if (highlighted.indexOf("<"+textFeildValue+">") != -1 )
       {
       var teststr = "<"+textFeildValue+">";
       var teststr2 = "</"+textFeildValue+">";

       highlighted = highlighted.replace(teststr,"")
       highlighted = highlighted.replace(teststr2,"")
       textObj.value = tempStr1 + highlighted + tempStr2;
       }
       else if ( highlighted.indexOf("<a") != -1 )
       {
       var teststr = "<"+textFeildValue+"'"+link+"'>";
       teststr = highlighted.substr(highlighted.indexOf("<a"),((highlighted.indexOf("'>")+2) - highlighted.indexOf("<a")))
       var teststr2 = "</a>";
       highlighted = highlighted.replace(teststr,"")
       highlighted = highlighted.replace(teststr2,"")

       textObj.value = tempStr1 + highlighted + tempStr2;
       }
       else
       {
       if (!link && closetag != 'a')
          {
          textObj.value = tempStr1 + "<"+textFeildValue+">"+highlighted+"</"+closetag+">" + tempStr2;
          }
          else
          {
          textObj.value = tempStr1 + "<"+textFeildValue+"'"+link+"'>"+highlighted+"</"+closetag+">" + tempStr2;
          }
       }
    }else{
alert("This version of Mozilla based browser does not support setSelectionRange");
}
}
}

function setCaretPosition(ctrl, pos)
{
alert ("Four");
  if(ctrl.setSelectionRange)
  {
    ctrl.focus();
    ctrl.setSelectionRange(pos,pos);
  }
  else if (ctrl.createTextRange) {
    var range = ctrl.createTextRange();
    range.collapse(true);
    range.moveEnd('character', pos);
    range.moveStart('character', pos);
    range.select();
  }
}