var preloadedImages = new Array();
var imageExt = 'jpg';
var lastBGColor;

function preloadImages(locationFolder) {
  if(document.images) {
    var i, args = preloadImages.arguments;
    for(i=1; i<args.length; i++) {
      preloadedImages[args[i]] = new Image();
      preloadedImages[args[i]].src = locationFolder + '/' + args[i] + '_passive.' + imageExt;
      preloadedImages[args[i] + '_active'] = new Image();
      preloadedImages[args[i] + '_active'].src = locationFolder + '/' + args[i] + '_active.' + imageExt;
    }
  }
}

function rollOn(imageName) {
  if(document.images)
    document.images[imageName].src = preloadedImages[imageName + '_active'].src;
}

function rollOff(imageName) {
  if(document.images)
    document.images[imageName].src = preloadedImages[imageName].src;
}

function mOver(cell) {
//  lastBGColor = cell.bgColor;
  cell.bgColor = '#e8e8e8';
}

function mOut(cell) {
//  cell.bgColor = lastBGColor;
  cell.bgColor = '#ffffff';
}

function encloseSelection(textarea, prefix, suffix)
{
  textarea.focus();
  var start, end, sel, scrollPos, subst;
  if (typeof(document["selection"]) != "undefined")
  {
    sel = document.selection.createRange().text;
  }
  else
    if (typeof(textarea["setSelectionRange"]) != "undefined")
    {
      start = textarea.selectionStart;
      end = textarea.selectionEnd;
      scrollPos = textarea.scrollTop;
      sel = textarea.value.substring(start, end);
    }
  if (sel.match(/ $/))
  {
    sel = sel.substring(0, sel.length - 1);
    suffix = suffix + " ";
  }
  subst = prefix + sel + suffix;
  if (typeof(document["selection"]) != "undefined")
  {
    var range = document.selection.createRange().text = subst;
    textarea.caretPos = textarea.caretPos - suffix.length;
  }
  else
    if (typeof(textarea["setSelectionRange"]) != "undefined")
    {
      textarea.value = textarea.value.substring(0, start) + subst + textarea.value.substring(end);
      if (sel)
      {
        textarea.setSelectionRange(start + subst.length, start + subst.length);
      }
      else
      {
        textarea.setSelectionRange(start + prefix.length, start + prefix.length);
      }
      textarea.scrollTop = scrollPos;
    }
}

function insTag(textarea, aTag)
{
  encloseSelection(textarea,'['+aTag+']','[/'+aTag+']')
}
