var pre001 = false;
function previ2()
{
    hide_show('prev3');
    if(pre001 == true)
    {
        pre001 = false;
        previsulisation();
    }
    else
    {
        pre001 = true;
    }
}

function switch_spoiler(div2)
{
    var divs = div2.getElementsByTagName('div');
    var div3 = divs[0];
    if (div3.style.visibility == 'visible') div3.style.visibility = 'hidden';
    else div3.style.visibility = 'visible';
    return true;
}

function ajouter_citation(id, nom)
{
    document.getElementById('message_bbcode').value = document.getElementById('message_bbcode').value + "[quote="+nom+"]" + document.getElementById('message_'+id).innerHTML + "[/quote]";
}

function previsulisation()
{
    if(pre001 == true)
    {
        var contenu = document.getElementById('message_bbcode').value;
        
        contenu = contenu.replace(/\(\>\<\)/g, '<img src="design/images/smilies/idiot.gif"/>');
        contenu = contenu.replace(/\:\)/g, '<img src="design/images/smilies/sourire.png"/>');
        contenu = contenu.replace(/\:colere\:/g, '<img src="design/images/smilies/mechant.png"/>');
        contenu = contenu.replace(/\:\(/g, '<img src="design/images/smilies/sad.gif"/>');
        contenu = contenu.replace(/\:lol\:/g, '<img src="design/images/smilies/rire.gif"/>');
        contenu = contenu.replace(/\;\)/g, '<img src="design/images/smilies/clin.gif"/>');
        contenu = contenu.replace(/\:cool\:/g, '<img src="design/images/smilies/cool.gif"/>');
        contenu = contenu.replace(/\:°/g, '<img src="design/images/smilies/siffle.gif"/>');
        contenu = contenu.replace(/\:super\:/g, '<img src="design/images/smilies/super.gif"/>');
        contenu = contenu.replace(/xD/g, '<img src="design/images/smilies/xD.gif"/>');
        contenu = contenu.replace(/\:rolleyes\:/g, '<img src="design/images/smilies/rolleyes.gif"/>');
        contenu = contenu.replace(/\:euh\:/g, '<img src="design/images/smilies/euh.gif"/>');
        contenu = contenu.replace(/\:D/g, '<img src="design/images/smilies/content.gif"/>');
        contenu = contenu.replace(/\:mad\:/g, '<img src="design/images/smilies/colere.gif"/>');
        contenu = contenu.replace(/\:haha\:/g, '<img src="design/images/smilies/haha.gif"/>');
        contenu = contenu.replace(/0o/g, '<img src="design/images/smilies/blink.gif"/>');
        contenu = contenu.replace(/\:P/g, '<img src="design/images/smilies/langue.png"/>');
        contenu = contenu.replace(/\:\|/g, '<img src="design/images/smilies/neutre.gif"/>');
        contenu = contenu.replace(/\=\//g, '<img src="design/images/smilies/hum.gif"/>');
        contenu = contenu.replace(/\:rougit\:/g, '<img src="design/images/smilies/rougit.gif"/>');
        contenu = contenu.replace(/xP/g, '<img src="design/images/smilies/grimace.gif"/>');
        contenu = contenu.replace(/\:S/g, '<img src="design/images/smilies/triste.gif"/>');
        contenu = contenu.replace(/\:omg:/g, '<img src="design/images/smilies/omg.gif"/>');
        contenu = contenu.replace(/\:pirate:/g, '<img src="design/images/smilies/pirate.gif"/>');
        contenu = contenu.replace(/\^\^'/g, '<img src="design/images/smilies/goute.gif"/>');
        contenu = contenu.replace(/\:erk:/g, '<img src="design/images/smilies/bataille.gif"/>');
        contenu = contenu.replace(/\:prosterne:/g, '<img src="design/images/smilies/prosterne.gif"/>');
        contenu = contenu.replace(/\^\^/g, '<img src="design/images/smilies/hihi.gif"/>');
        
        contenu = contenu.replace(/\[code\]([\s\S]*?)\[([\s\S]*?)\]([\s\S]*?)\[\/([\s\S]*?)\]([\s\S]*?)\[\/code\]/g, '[code]$1<!--crochetouvrant--!>$2<!--crochetfermant--!>$3<!--crochetouvrant--!>$4<!--crochetfermant--!>$5[/code]');
        
        
        contenu = contenu.replace(/\[html\]([\s\S]*?)\[\/html\]/g, '$1');
        
        contenu = contenu.replace(/\[code\]([\s\S]*?)\[\/code\]/g, '<div class="codebox"><div class="incqbox"><h4>Code :</h4><div class="scrollbox"><pre>$1</pre></div></div></div>');
        
        contenu = contenu.replace(/\[quote\]([\s\S]*?)\[\/quote\]/g, '<blockquote><div class="bbcode_citation"><h4>Citation :</h4>$1</blockquote></div>');
        contenu = contenu.replace(/\[quote=([\s\S]*?)\]([\s\S]*?)\[\/quote\]/g, '<blockquote><div class="bbcode_citation"><h4>$1 a écrit :</h4>$2</blockquote></div>');
        
        contenu = contenu.replace(/\[b\]([\s\S]*?)\[\/b\]/g, '<strong>$1</strong>');
        
        contenu = contenu.replace(/\[u\]([\s\S]*?)\[\/u\]/g, '<span style="text-decoration:underline;">$1</span>');
        
        contenu = contenu.replace(/\[i\]([\s\S]*?)\[\/i\]/g, '<em>$1</em>');
        
        contenu = contenu.replace(/\[acronym=([\s\S]*?)\]([\s\S]*?)\[\/acronym\]/g, '<acronym title="$1">$2</acronym>');
        
        contenu = contenu.replace(/\[s\]([\s\S]*?)\[\/s\]/g, '<span style="text-decoration:line-through;">$1</span>');
        
        contenu = contenu.replace(/\[overline\]([\s\S]*?)\[\/overline\]/g, '<span style="text-decoration:overline;">$1</span>');
        
        contenu = contenu.replace(/\[quote\]([\s\S]*?)\[\/quote\]/g, '<div class="bbcode_citation">$1</div>');
        
        contenu = contenu.replace(/\[sup\]([\s\S]*?)\[\/sup\]/g, '<sup>$1</sup>');
        
        contenu = contenu.replace(/\[sub\]([\s\S]*?)\[\/sub\]/g, '<sub>$1</sub>');
        
        contenu = contenu.replace(/\[spoil\]([\s\S]*?)\[\/spoil\]/g, '<div class="bbcode_spoil" onclick="switch_spoiler(this)"><h4>Texte caché : </h4><div style="visibility: hidden;">$1</div></div>');
        
        contenu = contenu.replace(/\[scrol\]([\s\S]*?)\[\/scrol\]/g, '<marquee>$1</marquee>');
        
        contenu = contenu.replace(/\[left\]([\s\S]*?)\[\/left\]/g, '<div style="text-align:left;">$1</div>');
        contenu = contenu.replace(/\[center\]([\s\S]*?)\[\/center\]/g, '<div style="text-align:center;">$1</div>');
        contenu = contenu.replace(/\[right\]([\s\S]*?)\[\/right\]/g, '<div style="text-align:right;">$1</div>');
        contenu = contenu.replace(/\[justify\]([\s\S]*?)\[\/justify\]/g, '<div style="text-align:justify;">$1</div>');
        
        contenu = contenu.replace(/\[color=(#[\s\S]*?)\]([\s\S]*?)\[\/color\]/g, '<span style="color:$1;">$2</span>');
        
        contenu = contenu.replace(/\[url=([\s\S]*?)\]([\s\S]*?)\[\/url\]/g, '<a href="$1">$2</a>');
        
        contenu = contenu.replace(/\[img\]([\s\S]*?)\[\/img\]/g, '<img src="$1" />');
        
        contenu = contenu.replace(/\[---\]/g, '<hr />');
        
        contenu = contenu.replace(/\[size=([\s\S]*?)\]([\s\S]*?)\[\/size\]/g, '<span style="font-size: $1px;">$2</span>');
        
        contenu = contenu.replace(/<!--crochetouvrant--!>/g, '[');
        contenu = contenu.replace(/<!--crochetfermant--!>/g, ']');
        
        while(contenu.match(/\n/))
            contenu = contenu.replace(/\n/, '<br/>')
        
        
        document.getElementById('previsualisation').innerHTML = contenu;
    }
    else
    {
        document.getElementById('previsualisation').innerHTML = "";
    }
}

function remplace(data, search, replace)
{
    var temp = data;
    var longueur = search.length;
    while (temp.indexOf(search) > -1)
    {
        pos = temp.indexOf(search);
        temp = (temp.substring(0, pos) + replace + temp.substring((pos + longueur), temp.length));
    }
    return temp;
}

function storeCaret()
{
    champ = document.getElementById('message_bbcode');
    if (champ.createTextRange) champ.curseur = document.selection.createRange().duplicate();
}

function ajoute_balise(balise_debut, balise_fin)
{
    var champ = document.getElementById('message_bbcode');
    var scroll = champ.scrollTop;
    balise_debut = remplace(balise_debut, '<br />', "\n");

    if(champ.curseur)
    {
        champ.curseur.text = balise_debut + champ.curseur.text + balise_fin;
    }
    else if (champ.selectionStart >= 0 && champ.selectionEnd >= 0)
    {
        var debut = champ.value.substring(0, champ.selectionStart);
        var entre = champ.value.substring(champ.selectionStart, champ.selectionEnd);
        var fin = champ.value.substring(champ.selectionEnd);
        if(balise_fin == '') champ.value = debut + balise_debut + fin;
        else champ.value = debut + balise_debut + entre + balise_fin + fin;
        champ.focus();
        champ.setSelectionRange(debut.length + balise_debut.length, champ.value.length - fin.length - balise_fin.length);
    }
    else
    {
        champ.value += balise_debut + balise_fin;
        champ.focus();
    }
    champ.scrollTop = scroll;
}

function ajoute_balise_conteneur(nom)
{
    var champ = document.getElementById('message_bbcode');
    if (nom == 'quote')
    {
        bal = prompt('Veuillez renseigner l\'auteur de la citation');
        if (!bal)
        {
            ajout = '';
        }
        else
        {
            ajout = '='+bal;
        }
        
        ajoute_balise('['+nom+ajout+']', '[/'+nom+']');
    }
    else if(nom == 'url')
    {
        if(champ.curseur) txt_selectionne = champ.curseur.text;
        else if(champ.selectionStart >= 0 && champ.selectionEnd >= 0) txt_selectionne = champ.value.substring(champ.selectionStart, champ.selectionEnd);
        else txt_selectionne = '';

        if (txt_selectionne.indexOf('http://') == 0
        || txt_selectionne.indexOf('https://') == 0
        || txt_selectionne.indexOf('ftp://') == 0
        || txt_selectionne.indexOf('apt://') == 0)
        {
            if(bal2 = prompt('Veuillez indiquer le texte du lien'))
            {
                balise_debut = '['+nom+'=';
                balise_fin = ']'+bal2+'[/'+nom+']';
                
                ajoute_balise(balise_debut, balise_fin);
            }
        }
        else if (txt_selectionne == '')
        {
            if(bal = prompt('Veuillez indiquer le lien'))
            {
                if(bal2 = prompt('Veuillez indiquer le texte du lien'))
                {
                    balise_debut = '['+nom+'='+bal+']'+bal2;
                    balise_fin = '[/'+nom+']';
                }
                else
                {
                    balise_debut = '['+nom+']'+bal;
                    balise_fin = '[/'+nom+']';
                }
                
                ajoute_balise(balise_debut, balise_fin);
            }
        }
        else
        {
            if(bal = prompt('Veuillez indiquer le lien'))
            {
                balise_debut = '['+nom+'='+bal+']';
                balise_fin = '[/'+nom+']';
                
                ajoute_balise(balise_debut, balise_fin);
            }
        }
    }
    else if(nom == 'acronym')
    {
        if(acronyme = prompt('Acronyme ?'))
        {
            text = prompt('Désignation complète de l\'acronyme ?');
            ajoute_balise('['+nom+'='+text+']'+acronyme, '[/'+nom+']');
        }
    }
}

function palette()
{
    document.write("<table style='border:0px;border-collapse:collapse;'border='0' cellpadding='0' cellspacing='0'>");
    var h = new Array('00','11','22','33','44','55', '66', '77', '88', '99', 'AA', 'BB', 'CC', 'DD', 'EE', 'FF');
    var col = "";
    for(var i = 0; i < 16; i++)
    {
        document.write("<tr>");
        for(var j = 0; j < 16; j++)
        {
            for(var k = 0; k < 16; k++)
            {
                col = "#"+h[i]+h[j]+h[k];
                document.write("<td width='5' height='5' bgcolor='"+col+"' onMouseOver=\"hexa('"+col+"')\" style='width:5px; height:5px; background-color:"+col+";' onclick='ajoute_balise(\"[color="+col+"]\",\"[/color]\"); hide_show(\"couleur\")'></td>");
            }
        }
        document.write("</tr>");
    }
    document.write("</table>");
}

function hide(n)
{
    document.getElementById(n).style.display = 'none';
}

function show(m)
{
    document.getElementById(m).style.display = '';
}

function hide_show(n)
{
    if(document.getElementById(n).style.display == 'none')
    {
        show(n);
    }
    else
    {
        hide(n);
    }
}

function switch_spoiler(div2)
{
    var divs = div2.getElementsByTagName('div');
    var div3 = divs[0];
    if (div3.style.visibility == 'visible') div3.style.visibility = 'hidden';
    else div3.style.visibility = 'visible';
    return true;
}

function ajouter_smilies(smilies)
{
    ajoute_balise(smilies, '');
}

function popup(action, fenetre, id_message)
{
    if(action == 'ouvrir')
    {
        document.getElementById(fenetre).style.visibility = 'visible';
        if(fenetre == 'editer')
        {
            var identifier_message = 'message_'+id_message;
            var message = document.getElementById(identifier_message).value;
            document.getElementById('message_bbcode').value = message;
        }
        else if(fenetre == 'signaler')
        {
            document.getElementById('id_signaler').value = id_message;
        }
    }
    else
    {
        document.getElementById(fenetre).style.visibility = 'hidden';
    }
}
