function echanger() {
    if(document.getElementById('pageTexte').style.display=='none') {
        document.getElementById('pageTexte').style.display='block';
        document.getElementById('pageFormulaire').style.display='none';
    } else {
        document.getElementById('pageTexte').style.display='none';
        document.getElementById('pageFormulaire').style.display='block';
    }
}

function envoyer() {
    genererTexte(document.getElementById('texte').value);
    colorerTexte(document.getElementById('textecolore'));
    echanger();
}

function comparerStyles(style1,style2) {
    if(style1.fontWeight==style2.fontWeight &&
       style1.fontSize==style2.fontSize &&
       style1.font==style2.font &&
       style1.fontStyle==style2.fontStyle &&
       style1.color==style2.color) {
        return true;
    } else {
        return false;
    }
}

var Bordure=true;

function colorerComme(obj) {

    if(Bordure) {
      
    var styleref=obj.style;

    var spans=document.getElementById('textecolore').getElementsByTagName('span');
    var nspans=spans.length;
    for(i=0; i<nspans; i++) {
        styleact=spans[i].style;
        if(comparerStyles(styleref,styleact)) {
            styleact.border='1px dashed black';
        } else {
            styleact.border='0px';
        }
    }

    }
}

function activerBordure(idlien) {
    if(Bordure) {
        document.getElementById(idlien).innerHTML="Activer le surlignage";
        Bordure=false;

        var spans=document.getElementById('textecolore').getElementsByTagName('span');
        var nspans=spans.length;
        for(i=0; i<nspans; i++) {
            spans[i].style.border='0px';
        }

    } else {
        document.getElementById(idlien).innerHTML="Désactiver le surlignage";
        Bordure=true;
    }
}

function genererTexte(texte) {

    var base = document.getElementById('textecolore');
    base.innerHTML="";
    var tbmots=new Array();

    var tbparag = texte.split("\n");
    var p = tbparag.length;
    for(i=0;i<p;i++) {
        tbmots=tbmots.concat(tbparag[i].split(" "));
        tbmots.push("\n");
    }

    var n = tbmots.length;

    for(i=0;i<n;i++) {
        var m = tbmots[i];
        if(m=="\n") {
            base.appendChild(document.createElement('br'));
        } else if(m!=' ') {
            mot=document.createElement('span');
            mot.setAttribute("onmouseover","javascript:colorerComme(this);");
            if(m.substr(0,2)=='{{' && m.substr(-2)=='}}') {
                mot.setAttribute("class","styleref");
                mot.appendChild(document.createTextNode(m.substr(2,m.length-4)));
            } else {
                mot.appendChild(document.createTextNode(m));
            }
            base.appendChild(mot);
            base.appendChild(document.createTextNode(' '));
        }
    }
}

function colorerTexte(conteneur) {

    var couleurs = new Array('#95fafc','#ab95fc','#fc95d1','#fcd495','#a8fc95');
    var tailles = new Array('0.75em','1em','1.2em');
    var polices = new Array('sans-serif');
    var gras = new Array('bold','normal');
    var italiques = new Array('normal','italic');

    var tableaumots = conteneur.getElementsByTagName('span');
    var n = tableaumots.length;

    var styleref = document.getElementById('styleref').style;
    styleref.color=couleurs[Math.floor(Math.random()*couleurs.length)]
    styleref.fontWeight=gras[Math.floor(Math.random()*gras.length)];
    styleref.fontSize=tailles[Math.floor(Math.random()*tailles.length)];
    styleref.fontStyle=italiques[Math.floor(Math.random()*italiques.length)];
    styleref.fontFamily=polices[Math.floor(Math.random()*polices.length)];

    for(i=0;i<n;i++) {
        if(tableaumots[i].className=='styleref') {
            tableaumots[i].style.color=styleref.color;
            tableaumots[i].style.fontWeight=styleref.fontWeight;
            tableaumots[i].style.fontSize=styleref.fontSize;
            tableaumots[i].style.fontStyle=styleref.fontStyle;
            tableaumots[i].style.fontFamily=styleref.fontFamily;
        } else {
            tableaumots[i].style.color=couleurs[Math.floor(Math.random()*couleurs.length)]
            tableaumots[i].style.fontWeight=gras[Math.floor(Math.random()*gras.length)];
            tableaumots[i].style.fontSize=tailles[Math.floor(Math.random()*tailles.length)];
            tableaumots[i].style.fontStyle=italiques[Math.floor(Math.random()*italiques.length)];
            tableaumots[i].style.fontFamily=polices[Math.floor(Math.random()*polices.length)];
            if(comparerStyles(tableaumots[i].style,styleref)) i--;
        }
    }
}

function remplir() {

    var xhr;
    if(window.XMLHttpRequest) xhr = new XMLHttpRequest();
    else if (window.ActiveXObject) xhr = new ActiveXObject('Microsoft.XMLHTTP');
    else {
        document.getElementById('texte').value=('Le remplissage a échoué... dommage :D !');
        return;
    }
    xhr.open('GET',"aragon.txt",true);
    xhr.onreadystatechange = function() {
        if(xhr.readyState == 4) {
            document.getElementById('texte').value=xhr.responseText;
        }
    }
    xhr.send(null);
}