function ubb(field, tag) {
    obj_txtarea = document.getElementById(field);

    obj_field = document.getElementById(field);

    function mozilla(obj_txtarea, open, close) {
        var selLength = obj_txtarea.textLength;
        var selStart = obj_txtarea.selectionStart;
        var selEnd = obj_txtarea.selectionEnd;
        if (selEnd == 1 || selEnd == 2)
        {
            selEnd = selLength;
        }
        var s1 = (obj_txtarea.value).substring(0,selStart);
        var s2 = (obj_txtarea.value).substring(selStart, selEnd)
        var s3 = (obj_txtarea.value).substring(selEnd, selLength);
        obj_txtarea.value = s1 + open + s2 + close + s3;
        return;
    }

    if (document.selection) {
        if (tag == 'url') {
            var link = prompt('Enter URL', 'http://');

      if(link != null && link != false) {
        selected = document.selection.createRange().text;
        document.selection.createRange().text = '[' + tag + '=' + link  + ']' + selected + '[/' + tag +  ']';
        selected = '';
      }
      
            return;
        }
        else if (tag == 'img') {            
            var link = prompt('Enter the url of the image', 'http://');
            
            if(link != null && link != false) {
              mozilla(obj_txtarea, '[' + tag + ']' + link, '[/' + tag + ']');
          }
        }
        else {
            selected = document.selection.createRange().text;
            if (selected == '') {
                obj_txtarea.value = obj_txtarea.value + ' [' + tag + '][/' + tag + '] ';
            }
            else {
                document.selection.createRange().text = '[' + tag + ']' + selected + '[/' + tag +  ']';
                selected = '';
            }
            return;
        }
    }
    else if (obj_txtarea.selectionEnd && (obj_txtarea.selectionEnd - obj_txtarea.selectionStart > 0)) {
      if (tag == 'url') {
            var link = prompt('Voer de url in:', 'http://');
            
            if(link != null && link != false) {
              mozilla(obj_txtarea, '[' + tag + '=' + link + ']', '[/' + tag + ']');
          }
        }
        else {
            mozilla(obj_txtarea, '[' + tag + ']', '[/' + tag + ']');
        }
        return;
    }
    else {
        if (tag == 'img') {            
            var link = prompt('Enter the url of the image', 'http://');
            
            if(link != null) {
              mozilla(obj_txtarea, '[' + tag + ']' + link, '[/' + tag + ']');
          }
        }
        else if (tag != 'url') {
            obj_txtarea.value = obj_txtarea.value + ' [' + tag + '][/' + tag + '] ';
        }
    }

    obj_field.focus();
    return;
}

function ubbSmiley(field, tag) {
  obj_txtarea = document.getElementById(field);
  insertAtCursor(obj_txtarea, tag);
}

function ubbSmiley2(field, tag) {
    obj_txtarea = document.getElementById(field);

    obj_field = document.getElementById(field);

    function mozilla(obj_txtarea, open)
    {
        var selLength = obj_txtarea.textLength;
        var selStart = obj_txtarea.selectionStart;
        var selEnd = obj_txtarea.selectionEnd;
        if (selEnd == 1 || selEnd == 2)
        {
            selEnd = selLength;
        }
        var s1 = (obj_txtarea.value).substring(0,selStart);
        var s2 = (obj_txtarea.value).substring(selStart, selLength);
        obj_txtarea.value = s1 + open + s2;
        return;
    }

    if (document.selection)
    {
        selected = document.selection.createRange().text;
        if (selected == '')
        {
            obj_txtarea.value = obj_txtarea.value + tag;
        }
        else
        {
            document.selection.createRange().text = tag + selected;
            selected = '';
        }
        return; 
    }
    else if (obj_txtarea.selectionEnd && (obj_txtarea.selectionEnd - obj_txtarea.selectionStart > 0))
    {
        mozilla(obj_txtarea, tag);
        return;
    }
    else
    {
        if (tag != 'url')
        {
            obj_txtarea.value = obj_txtarea.value + tag ;
        }
    }

    obj_field.focus();
    return;

}

function addQuote(id)
{
    obj_txt = document.getElementById(id);
    obj_textbox = document.getElementById('user_comments');
    obj_commentsdiv = document.getElementById('commentsForm');
    
    RegExp.multiline = true;
    
    obj_quote = obj_txt.innerHTML.replace(/\[quote\](.*)\[\/quote\]/gm, '');
    obj_quote2 = obj_quote.replace(/\[quote\](.*)\[\/quote\]/gm, '');

    obj_textbox.value = '[quote]' + obj_quote2 + '[/quote]';
    obj_commentsdiv.style.display = 'block';
}

function showBlocker(targetElm,type,message) {
    // Creates a blocker element that covers the complete target element
    // Available types: busy
    var blockerElm = document.createElement("div");
    blockerElm.className = "blockerElm";
    blockerElm.id = targetElm.id + "blockerElm";
    var bgElm = document.createElement("div");
    bgElm.className = "bgElm";
    blockerElm.appendChild(bgElm);
    var msgPosElm = document.createElement("div");
    msgPosElm.className = "msgPosElm";
    blockerElm.appendChild(msgPosElm);
    var msgElm = document.createElement("div");
    msgElm.className = "msgElm";
    msgPosElm.appendChild(msgElm);
    var msgConElm = document.createElement("div");
    msgConElm.className = "  " + type;
    msgElm.appendChild(msgConElm);
    var blockerMsg = document.createTextNode(message);
    msgConElm.appendChild(blockerMsg);
    targetElm.insertBefore(blockerElm,document.getElementById("editbodyframe"));
}

function hideBlocker(targetElm) {
    var blockerElm = document.getElementById(targetElm.id + "blockerElm");
    targetElm.removeChild(blockerElm);
}


//myField accepts an object reference, myValue accepts the text strint to add 
function insertAtCursor(myField, myValue) { 

  //IE support 
  if (document.selection) { 
    myField.focus(); 
    sel = document.selection.createRange(); 
    sel.text = myValue; 
  } else if (myField.selectionStart || myField.selectionStart == '0') { 
    var startPos = myField.selectionStart; 
    var endPos = myField.selectionEnd; 
    myField.value = myField.value.substring(0, startPos)+ myValue+ myField.value.substring(endPos, myField.value.length); 
    myField.setSelectionRange(startPos, endPos);
  } else { 
    myField.value += myValue; 
  } 
} 

