var smile_faces = new Array(
    "<_<", ":\\(", ":\\)", ":D", ":P", ":angrly:", ":aq:", ":at:", ":beer2:", ":beer:", ":blink:", ":bm:", 
    ":bt:", ":cry2:", ":down:", ":dx:", ":dz:", ":eek:", ":flower:", ":gj:", ":gw:", ":hg:", ":ht:", 
    ":hu:", ":hug:", ":huh:", ":cool1:", ":lol2:", ":lol:", ":maniac:", ":mellow:", ":mol:", ":o", 
    ":rolleyes:", ":shuffle:", ":super:", ":umnik:", ":unsure:", ":up:", ";\\)", "B\\)"
);

var additional_smile_faces = new Array(
    ":-\\)", ";\\-\\)", ":\\-\\("
);

var smile_images = new Array(
    '<img src=\'../res/img/smiles/dry.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/sad.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/smile.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/biggrin.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/tongue.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/mad.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/aq.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/at.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/beer2.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/beer.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/blink.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/bm.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/bt.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/cry2.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/down.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/dx.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/dz.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/eek.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/flower.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/gj.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/gw.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/hg.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/ht.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/hu.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/hug.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/huh.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/cool1.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/lol.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/laugh.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/maniac.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/mellow.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/mol.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/ohmy.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/rolleyes.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/shuffle.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/super.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/umnik.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/unsure.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/up.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/wink.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/cool.gif\' align=\'absmiddle\' border=\'0\'>'
);

var additional_smile_images = new Array(
    '<img src=\'../res/img/smiles/smile.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/wink.gif\' align=\'absmiddle\' border=\'0\'>', 
    '<img src=\'../res/img/smiles/sad.gif\' align=\'absmiddle\' border=\'0\'>'
);

function repl_bbcodes() {
    
    for(var l=0; l<arguments.length; l++) {
        
        var id = arguments[l];
        var to_process = new String (document.getElementById(id).innerHTML);
        
        for(var i=0; i<smile_faces.length; i++) {
            var rexp = new RegExp(smile_faces[i], "img");
            to_process = to_process.replace(rexp, smile_images[i]);
        }
        
        for(var i=0; i<additional_smile_faces.length; i++) {
            var rexp = new RegExp(additional_smile_faces[i], "img");
            to_process = to_process.replace(rexp, additional_smile_images[i]);
        }

        // replace bbcodes - BOLD
        var rexp = new RegExp('\\[b\\]((a|[^a])*?)\\[/b\\]', "img");
        to_process = to_process.replace(rexp, '<b>$1</b>');

        // replace bbcodes - ITALIC
        var rexp = new RegExp('\\[i\\]((a|[^a])*?)\\[/i\\]', "img");
        to_process = to_process.replace(rexp, '<i>$1</i>');

        // replace bbcodes - UNDERLINE
        var rexp = new RegExp('\\[u\\]((a|[^a])*?)\\[/u\\]', "img");
        to_process = to_process.replace(rexp, '<u>$1</u>');

        // replace bbcodes - HR
        var rexp = new RegExp('\\[hr /\\]', "img");
        to_process = to_process.replace(rexp, '<hr />');

        // replace bbcodes - HREF
        var rexp = new RegExp('\\[url\\](http://)?((a|[^a])*?)\\[/url\\]', "img");
        to_process = to_process.replace(rexp, '<a href="http://$2">$2</a>');

        // replace bbcodes - MAILTO
        var rexp = new RegExp('\\[email\\](mailto:)?((a|[^a])*?)\\[/email\\]', "img");
        to_process = to_process.replace(rexp, '<a href="mailto:$2">$2</a>');

        // replace bbcodes - QUOTE
        var rexp = new RegExp('\\[quote\\]((a|[^a])*?)\\[/quote\\]', "img");
        to_process = to_process.replace(rexp, '<p class="citate"><i>$1</i></p>');
        
        if((typeof(strWrote) != 'undefined') && (typeof(strUnknown) != 'undefined')) {
            
            var rexp = new RegExp("\\[quote=('|&#039;)(.*)('|&#039;)\\]((a|[^a])*?)\\[/quote\\]", "img");
            to_process = to_process.replace(rexp, '<p class="citate"><b><span>$2</span> '+strWrote+':</b><br><i>$4</i></p>');

            var rexp = new RegExp("<span></span>", "img");
            to_process = to_process.replace(rexp, strUnknown);
        }
        
        // replace bbcodes - COLOR
        var rexp = new RegExp('\\[color=([^\\]]+)\\]((a|[^a])*?)\\[/color\\]', "img");
        to_process = to_process.replace(rexp, '<font color="$1">$2</font>');

        // replace bbcodes - SIZE
        var rexp = new RegExp('\\[size=([^\\]]+)\\]((a|[^a])*?)\\[/size\\]', "img");
        to_process = to_process.replace(rexp, '<font size="$1">$2</font>');

        // replace bbcodes - IMG
        var rexp = new RegExp('\\[img=([^\\]]+)\\]\\[/img\\]', "img");
        to_process = to_process.replace(rexp, '<img src="../res/forum/$1">');

        document.getElementById(id).innerHTML = to_process;
    }
}

function remove_bbcodes() {
    
    for(var l=0; l<arguments.length; l++) {
        
        var id = arguments[l];
        var to_process = new String (document.getElementById(id).innerHTML);
        
        for(var i=0; i<smile_faces.length; i++) {
            var rexp = new RegExp(smile_faces[i], "img");
            to_process = to_process.replace(rexp, '');
        }
        
        for(var i=0; i<additional_smile_faces.length; i++) {
            var rexp = new RegExp(additional_smile_faces[i], "img");
            to_process = to_process.replace(rexp, '');
        }

        // replace bbcodes - BOLD
        var rexp = new RegExp('\\[b\\]((a|[^a])*?)\\[/b\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - ITALIC
        var rexp = new RegExp('\\[i\\]((a|[^a])*?)\\[/i\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - UNDERLINE
        var rexp = new RegExp('\\[u\\]((a|[^a])*?)\\[/u\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - HR
        var rexp = new RegExp('\\[hr /\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - HREF
        var rexp = new RegExp('\\[url\\](http://)?((a|[^a])*?)\\[/url\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - MAILTO
        var rexp = new RegExp('\\[email\\](mailto:)?((a|[^a])*?)\\[/email\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - QUOTE
        var rexp = new RegExp('\\[quote([^\\]]*)\\]((a|[^a])*?)\\[/quote\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - COLOR
        var rexp = new RegExp('\\[color=([^\\]]+)\\]((a|[^a])*?)\\[/color\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - SIZE
        var rexp = new RegExp('\\[size=([^\\]]+)\\]((a|[^a])*?)\\[/size\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - IMG
        var rexp = new RegExp('\\[img=([^\\]]+)\\]\\[/img\\]', "img");
        to_process = to_process.replace(rexp, '');

        document.getElementById(id).innerHTML = to_process;
    }
}

function del_bbcodes(array_to_process) {
    
    for(var l=0; l<array_to_process.length; l++) {
        
        var to_process = new String (array_to_process[l]);
        
        for(var i=0; i<smile_faces.length; i++) {
            var rexp = new RegExp(smile_faces[i], "img");
            to_process = to_process.replace(rexp, '');
        }

        // replace bbcodes - BOLD
        var rexp = new RegExp('\\[b\\]((a|[^a])*?)\\[/b\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - ITALIC
        var rexp = new RegExp('\\[i\\]((a|[^a])*?)\\[/i\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - UNDERLINE
        var rexp = new RegExp('\\[u\\]((a|[^a])*?)\\[/u\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - HR
        var rexp = new RegExp('\\[hr /\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - HREF
        var rexp = new RegExp('\\[url\\](http://)?((a|[^a])*?)\\[/url\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - MAILTO
        var rexp = new RegExp('\\[email\\](mailto:)?((a|[^a])*?)\\[/email\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - QUOTE
        var rexp = new RegExp('\\[quote([^\\]]*)\\]((a|[^a])*?)\\[/quote\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - COLOR
        var rexp = new RegExp('\\[color=([^\\]]+)\\]((a|[^a])*?)\\[/color\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - SIZE
        var rexp = new RegExp('\\[size=([^\\]]+)\\]((a|[^a])*?)\\[/size\\]', "img");
        to_process = to_process.replace(rexp, '');

        // replace bbcodes - IMG
        var rexp = new RegExp('\\[img=([^\\]]+)\\]\\[/img\\]', "img");
        to_process = to_process.replace(rexp, '');

        array_to_process[l] = to_process;
    }
    
    return array_to_process;
}

