function countInstances(string, word) 
{
  var substrings = string.split(word);
  return substrings.length - 1;
}

function doUBB(elementid, tag)
{
 var obj = document.getElementById(elementid);
 
 if (document.selection) // IE
  {
   var selectedText = document.selection;
   if (selectedText.type == 'Text') 
   {
    var newRange = selectedText.createRange(); 
    var seltext = newRange.text;
   
    //check seltext on 'open' ubb tags
    opencount  = countInstances(seltext, "[");
    closecount = countInstances(seltext, "]");  
    
    if (opencount==closecount) newRange.text = "["+tag+"]"+seltext+"[/"+tag+"]";
   } 
  }
 
 if (obj.selectionStart) // FF
 {
  if (obj.selectionStart!=obj.selectionEnd) var seltext = obj.value.substring(obj.selectionStart, obj.selectionEnd);
 
   var iStart = obj.selectionStart;
   var iEnd   = obj.selectionEnd;
   
    //check seltext on 'open' ubb tags
    opencount  = countInstances(seltext, "[");
    closecount = countInstances(seltext, "]");  
    
    if (opencount==closecount)
    {
     seltext = "["+tag+"]"+seltext+"[/"+tag+"]";
   
     obj.value = obj.value.substring(0, iStart) + seltext + obj.value.substring(iEnd, obj.value.length);
     obj.setSelectionRange(iStart + seltext.length, iStart + seltext.length);
    }
 }
  
 obj.focus();
}


function stripHTML(oldString) 
{
  return oldString.replace(/<&#91;^>&#93;*>/g, "");
}

function previewUBB(elementid, previewid)
{
 var obj = document.getElementById(elementid);
 var previewobj = document.getElementById(previewid);
 
 var previewtext = stripHTML(obj.value);
 previewtext = previewtext.replace(/\[b\]/, "<b>");
 previewtext = previewtext.replace(/\[\/b\]/, "</b>");
 previewtext = previewtext.replace(/\[i\]/, "<i>");
 previewtext = previewtext.replace(/\[\/i\]/, "</i>");
 previewtext = previewtext.replace(/\[u\]/, "<u>");
 previewtext = previewtext.replace(/\[\/u\]/, "</u>");
 previewtext = previewtext.replace(/\n/g, "<BR/>");
 
 previewobj.innerHTML = "<H1>Preview</H1>"+previewtext;
 previewobj.className = "";
}
