function putExt(type,text){
    target = document.getElementById('postmessagebox_textarea');
    if(target){
        if(target.cursorPos){
            var cursorPos=target.cursorPos;
            if(type!='plain')
                text=cursorPos.text;
            
            cursorPos.text=det_replace(type,text)
        }
        else if(target.selectionStart!=undefined){
            var scrollTop=target.scrollTop,sStart=target.selectionStart,sEnd=target.selectionEnd;
            if(type!='plain')
                text=target.value.substring(sStart,sEnd);
            
            text=det_replace(type,text);
            target.value=target.value.substr(0,sStart)+text+target.value.substr(sEnd);
            var nStart=sStart==sEnd?sStart+text.length:sStart,nEnd=sStart+text.length;
            target.setSelectionRange(nStart,nEnd);
            target.scrollTop=scrollTop
        }
        else{
            if(type!='plain')
                text='';
                
            target.value+=det_replace(type,text)};
            target.focus();
            if(target.cursorPos)target.onselect()
    }
}


function det_replace(type, text) {
    var val = '';
    switch (type) {
    case 'plain':
        break;
    case 'AND':
        if (text != '') {
            text = text.replace(/(\w+)\s+/g, '$1 AND ')
        } else text = ' AND ';
        break;
    case 'OR':
        if (text != '') {
            text = text.replace(/(\w+)\s+/g, '$1 OR ')
        } else text = ' OR ';
        break;
    case 'brackets':
        if (text != '') {
            text = '(' + text + ')'
        } else text = '()';
        break;
    case 'title':
    case 'start':
    case 'tag':
        if (text != '') {
            text = type + ':(' + text + ')'
        } else text = type + ':';
        break;
    case 'bold':
        text = '[b]' + text + '[/b]';
        break;
    case 'italic':
        text = '[i]' + text + '[/i]';
        break;
    case 'underline':
        text = '[u]' + text + '[/u]';
        break;
    case 'strike':
        text = '[s]' + text + '[/s]';
        break;
    case 'sub':
    case 'sup':
    case 'small':
    case 'left':
    case 'center':
    case 'right':
        text = '[' + type + ']' + text + '[/' + type + ']';
        break;
    case 'listbullet':
        text = '[list]\r\n[*]' + (text.split(/\r?\n/).join('\r\n[*]')) + '\r\n[/list]';
        break;
    case 'listnum':
        text = '[list=1]\r\n[*]' + (text.split(/\r?\n/).join('\r\n[*]')) + '\r\n[/list]';
        break;
    case 'bgcolor':
        if ((val = prompt('Voer een hexadecimale kleurcode in:', '#'))) text = '[bgcolor=' + val + ']' + text + '[/bgcolor]';
        break;
    case 'color':
        if ((val = prompt('Voer een hexadecimale kleurcode in:', '#'))) text = '[color=' + val + ']' + text + '[/color]';
        break;
    case 'url':
        if (/^(http:\/\/|www\.)/i.test(text)) {
            if ((val = prompt('Voer omschrijving in:', text))) text = '[url=' + text.replace(/(["\\])/g, '\\$1') + ']' + val + '[/url]'
        } else {
            val = prompt('Voer de URL in:', 'http:\/\/');
            if (val && val != 'http:\/\/') if (text == '') {
                text = '[url]' + val + '[/url]'
            } else text = '[url=' + val.replace(/(["\\])/g, '\\$1') + ']' + text + '[/url]'
        };
        break;
    case 'img':
        if (text == '') {
            val = prompt('Voer de URL in:', 'http:\/\/');
            if (val && val != 'http:\/\/') text = '[img]' + val + '[/img]'
        } else text = '[img]' + text + '[/img]';
        break;
    case 'table':
        text = '[table border=1 width=350 cellpadding=2 bordercolor=#000000]\r\n[tr]\r\n[td]' + (text.split(/\r?\n/).join('[/td]\r\n[/tr]\r\n[tr]\r\n[td]')) + '[/td]\r\n[/tr]\r\n[/table]';
        break;
    case 'hr':
        text += '[hr]';
        break;
    case 'quote':
        text += '[/quote]\r\n[quote]';
        break
    };
    return text
}

function putStr(text){
    putExt('plain',text)
}

function more_smilies(a) {
    var m = document.getElementById('moresmilies');
    if (m) if (m.style.display == 'none') {
        m.style.display = 'block';
        a.style.display = 'none'
    }
}
