
function wcode_afficher_code(id){ wcode_div("code_"+id,true); }
function wcode_masquer_code(id){ wcode_div("code_"+id,false); }

function wcode_afficher_citation(id){ wcode_div("citation_"+id,true); }
function wcode_masquer_citation(id){ wcode_div("citation_"+id,false); }


var est_mozilla = (navigator.userAgent.toLowerCase().indexOf('gecko')!=-1) ? true : false;
var wcode_liste_panneaux = ["smileys","taille","couleur","citation","code","liste", "url", "mail", "img"];

function wcode_encadrer(formulaire,champ,nom,valeur){
        // Si c'est Mozilla
        if (valeur==''){ balise_ouverture = "["+nom+"]"; }
        else{ balise_ouverture = "["+nom+"="+valeur+"]"; }
        balise_fermeture = "[/"+nom+"]";

        if (est_mozilla){
                champ = document.forms[formulaire].elements[champ];
                valeur = champ.value;
                debut = champ.selectionStart;
                fin = champ.selectionEnd;
                valeur_avant = valeur.substring(0,debut);
                valeur_dedans = valeur.substring(debut,fin);
                valeur_apres = valeur.substring(fin,champ.textLength);
                champ.value = valeur_avant+balise_ouverture+valeur_dedans+balise_fermeture+valeur_apres;
                champ.selectionStart = strlen(valeur_avant);
                champ.selectionEnd = strlen(valeur_avant+balise_ouverture+valeur_dedans+balise_fermeture);
                champ.focus();
                x = valeur_avant.length + balise_ouverture.length;
                champ.setSelectionRange(x,x);
        } else {
                champ = document.forms[formulaire].elements[champ];
                selection = document.selection.createRange().text;
                if (selection.length>0){
                        var obj_selection = document.selection.createRange();
                        obj_selection.text = balise_ouverture + selection + balise_fermeture;
                        obj_selection.collapse();
                        obj_selection.select();
                } else {
                        champ.focus(champ.caretPos);
                        champ.focus(champ.value.length);
                        champ.caretPos = document.selection.createRange().duplicate();
                        var bidon = "%~%";
                        var valeur = champ.value;
                        champ.caretPos.text = bidon;
                        var i = champ.value.search(bidon);
                        var valeur_avant = valeur.substr(0,i);
                        var valeur_apres = valeur.substr(i,valeur.length);
                        champ.value = valeur_avant + balise_ouverture + balise_fermeture + valeur_apres;
                        var retours = 0;
                        for (var j=0;j<valeur_avant.length;j++) if (valeur_avant.charAt(j)=="\n") retours++;
                        position = i + balise_ouverture.length - retours;
                        var obj = champ.createTextRange();
                        obj.moveStart('character',position);
                        obj.collapse();
                        obj.select();
                }


        }
}


function wcode_inserer(formulaire,champ,quoi){
        // Si c'est Mozilla
        if (est_mozilla){
                champ = document.forms[formulaire].elements[champ];
                valeur = champ.value;
                debut = champ.selectionStart;
                fin = champ.selectionEnd;
                valeur_avant = valeur.substring(0,debut);
                valeur_apres = valeur.substring(fin,champ.textLength);
                champ.value = valeur_avant+quoi+valeur_apres;
                champ.selectionStart = strlen(valeur_avant);
                champ.selectionEnd = strlen(valeur_avant+quoi);
                champ.focus();
                x = valeur_avant.length + quoi.length;
                champ.setSelectionRange(x,x);
        } else {
                champ = document.forms[formulaire].elements[champ];
                selection = document.selection.createRange().text;
                if (selection.length>0){
                        var obj_selection = document.selection.createRange();
                        obj_selection.text = quoi;
                        obj_selection.collapse();
                        obj_selection.select();
                } else {
                        champ.focus(champ.caretPos);
                        champ.focus(champ.value.length);
                        champ.caretPos = document.selection.createRange().duplicate();
                        var bidon = "%~%";
                        var valeur = champ.value;
                        champ.caretPos.text = bidon;
                        var i = champ.value.search(bidon);
                        var valeur_avant = valeur.substr(0,i);
                        var valeur_apres = valeur.substr(i,valeur.length);
                        champ.value = valeur_avant + quoi + valeur_apres;
                        var retours = 0;
                        for (var j=0;j<valeur_avant.length;j++) if (valeur_avant.charAt(j)=="\n") retours++;
                        position = i + quoi.length - retours;
                        var obj = champ.createTextRange();
                        r.moveStart('character',position);
                        r.collapse();
                        r.select();
                }


        }
}
<!-- Script créé par KevBrok ;-) -->
<!-- Un pti peu adapté...        -->

<!-- Et MERCI A TOI KEVBROK !!!! -->
function wcode_div( nom, quoi ){
        if (document.getElementById && document.getElementById(nom)){
                Pdiv = document.getElementById( nom );
                PcH = true;
        } else if ( document.all && document.all[ divID ] ){
                Pdiv = document.all[ nom ];
                PcH = true;
        } else if ( document.layers && document.layers[ divID ] ){
                Pdiv = document.layers[ nom ];
                PcH = true;
        } else {
                PcH = false;
        }
        if ( PcH ){
         Pdiv.className = ( quoi ) ? '' : 'cachediv';
        }

}

function wcode_tout_masquer(){
        for(var i=0;i<wcode_liste_panneaux.length;i++){
                wcode_div("panneau_"+wcode_liste_panneaux[i],false);
        }
}

function wcode_panneau(nom){
        wcode_tout_masquer();
        wcode_div("panneau_"+nom,true);
}

function wcode_inserer_citation(f,c){

        wcode_cite = document.forms[f].elements['ci_cite'].value;
        wcode_cite = wcode_cite.replace(/\\/g,'\\\\');
        wcode_cite = wcode_cite.replace(/\]/g,'\\]');
        wcode_cite = wcode_cite.replace(/\[/g,'\\[');
        wcode_cita = document.forms[f].elements['ci_citation'].value;
        wcode_cita = wcode_cita.replace(/\\/g,'\\\\');
        wcode_cita = wcode_cita.replace(/\]/g,'\\]');
        wcode_cita = wcode_cita.replace(/\[/g,'\\[');
        wcode_code = '[citation='+wcode_cite+"]"+wcode_cita+'[/citation]';
        wcode_inserer(f,c,wcode_code);
}

function wcode_inserer_code(f,c){

        wcode_code = document.forms[f].elements['co_code'].value;
        wcode_code = wcode_code.replace(/\\/g,'\\\\');
        wcode_code = wcode_code.replace(/\]/g,'\\]');
        wcode_code = wcode_code.replace(/\[/g,'\\[');
        wcode_code = '[code]'+wcode_code+'[/code]';
        wcode_inserer(f,c,wcode_code);
}

function wcode_lien(f,c){
 lien = document.forms[f].elements['url'].value;
 wcode_encadrer(f,c,'lien',lien);
}


function wcode_inserer_mail(f,c){

        wcode_mail = document.forms[f].elements['email'].value;
        wcode_mail = '[email='+wcode_mail+']';
        wcode_inserer(f,c,wcode_mail);
}

function wcode_inserer_img(f,c){

        wcode_img = document.forms[f].elements['img'].value;
        wcode_img = '[img='+wcode_img+']'
        wcode_inserer(f,c,wcode_img);
}
		
function wcode_inserer_liste(f,c){
        type_liste = document.forms[f].elements['wcode_tliste'].value;
        cont_liste = document.forms[f].elements['wcode_eliste'].value;
        cont_liste = cont_liste.replace(/\\/g,'\\\\');
        cont_liste = cont_liste.replace(/\]/g,'\\]');
        cont_liste = cont_liste.replace(/\[/g,'\\[');
        cont_liste = '[*]' + cont_liste.replace(/\n/g,'\n[*]');
        if (type_liste=='') { cont_liste = '[liste]\n' + cont_liste + '\n[/liste]'; }
        else { cont_liste = '[liste='+type_liste+']\n' + cont_liste + '\n[/liste]'; }
        wcode_inserer(f,c,cont_liste);
}
