
var globalCursorPos; // global variabe to keep track of where the cursor was

//sets the global variable to keep track of the cursor position
function setCursorPos(textarea) {
	globalCursorPos = getCursorPos(textarea);
}

//This function returns the index of the cursor location in
//the value of the input text element
//It is important to make sure that the sWeirdString variable contains
//a set of characters that will not be encountered normally in your
//text
function getCursorPos(textElement) {
  //save off the current value to restore it later,
  var sOldText = textElement.value;

//create a range object and save off it's text
  var objRange = document.selection.createRange();
  var sOldRange = objRange.text;

//set this string to a small string that will not normally be encountered
  var sWeirdString = '#%~';

//insert the weirdstring where the cursor is at
  objRange.text = sOldRange + sWeirdString; objRange.moveStart
('character', (0 - sOldRange.length - sWeirdString.length));

//save off the new string with the weirdstring in it
  var sNewText = textElement.value;

//set the actual text value back to how it was
  objRange.text = sOldRange;

//look through the new string we saved off and find the location of
//the weirdstring that was inserted and return that value
  for (i=0; i <= sNewText.length; i++) {
    var sTemp = sNewText.substring(i, i + sWeirdString.length);
    if (sTemp == sWeirdString) {
      var cursorPos = (i - sOldRange.length);
      return cursorPos;
    }
  }
}

//this function inserts the input string into the textarea
//where the cursor was at
function insertString(nr, myTextArea) {
   if (!globalCursorPos)
		globalCursorPos=0;

   var stringToInsert="";
  switch (nr){
	  case 1: stringToInsert="<a href='http://'></a>"; break;
	  case 2: stringToInsert="<strong></strong>"; break;
	  case 3: stringToInsert="<em></em>"; break;
	  case 4: stringToInsert="<h1></h1>"; break;
	  case 5: stringToInsert="<h2></h2>"; break;
	  case 6: stringToInsert="<h3></h3>"; break;
	  case 7: stringToInsert="<ul></ul>"; break;
	  case 8: stringToInsert="<ol></ol>"; break;
	  case 9: stringToInsert="<li></li>"; break;
	  case 10: stringToInsert="<table></table>"; break;
	  case 11: stringToInsert="<tr></tr>"; break;
	  case 12: stringToInsert="<td></td>"; break;
	  case 13: stringToInsert="<font color='' size='' face=''></font>"; break;

}
	

  var firstPart = myTextArea.value.substring(0, globalCursorPos);
  var secondPart = myTextArea.value.substring(globalCursorPos,
                                                     
  myTextArea.value.length);
  myTextArea.value = firstPart + stringToInsert + secondPart;

}



