Aller au contenu

Utilisateur:Dr Brains/Calculette.js

Une page de Wikipédia, l'encyclopédie libre.
Note : après avoir enregistré la page, vous devrez forcer le rechargement complet du cache de votre navigateur pour voir les changements.

Mozilla / Firefox / Konqueror / Safari : maintenez la touche Majuscule (Shift) en cliquant sur le bouton Actualiser (Reload) ou pressez Maj-Ctrl-R (Cmd-R sur Apple Mac) ;

Chrome / Internet Explorer / Opera : maintenez la touche Ctrl en cliquant sur le bouton Actualiser ou pressez Ctrl-F5.
$(AjouterLeLien);

function AjouterLeLien(){
    var BoiteAOutils = document.getElementById('p-tb');
    if(!BoiteAOutils) return;
    var ContenuBoiteAOutils = BoiteAOutils.getElementsByTagName('ul')[0];
    if(!ContenuBoiteAOutils) return;

    var LigneCalculette = document.createElement('li');

    var LienCalculette = document.createElement('a');
    LienCalculette.innerHTML = "Calculette";
    LienCalculette.title = "Afficher la calculette";
    LienCalculette.href = "javascript:AfficherCalculette();";

    LigneCalculette.appendChild(LienCalculette);

    ContenuBoiteAOutils.appendChild(LigneCalculette);
}

function AfficherCalculette(){
    var Calculette = document.createElement('form');
    Calculette.id = "Calculette";
    Calculette.setAttribute('style', 'position:fixed;top:200px;left:150px;z-index:150;background-color:white;border:1px solid grey;padding:1em;text-align:center;');
    document.body.insertBefore(Calculette, document.body.firstChild);

    var PremierTerme = document.createElement('input');
    PremierTerme.id = "Terme_1";
    PremierTerme.type = "text";
    Calculette.appendChild(PremierTerme);

    var Operateur = document.createElement('select');
    Operateur.id = "Operateur";
    var ListeOperateurs = new Array("+", "-", "*", "/");
    for(var a=0,l=ListeOperateurs.length;a<l;a++){
        var Option = document.createElement('option');
        Option.value = ListeOperateurs[a];
        Option.appendChild(document.createTextNode(ListeOperateurs[a]));
        Operateur.appendChild(Option);
    }
    Calculette.appendChild(Operateur);

    var DeuxiemeTerme = document.createElement('input');
    DeuxiemeTerme.type = "text";
    DeuxiemeTerme.id = "Terme_2";
    Calculette.appendChild(DeuxiemeTerme);

    var BoutonEgale = document.createElement('input');
    BoutonEgale.type = "button";
    BoutonEgale.value = "=";
    BoutonEgale.onclick = function(){ FaireOperation(); };
    BoutonEgale.onselect = function(){ FaireOperation(); };
    Calculette.appendChild(BoutonEgale);

    var Resultat = document.createElement('input');
    Resultat.type = "text";
    Resultat.id = "Resultat";
    Calculette.appendChild(Resultat);

    Calculette.appendChild(document.createElement('hr'));
    var BoutonFermer = document.createElement('input');
    BoutonFermer.type = "button";
    BoutonFermer.value = "Fermer";
    BoutonFermer.onclick = function(){ FermerCalculette(); };
    BoutonFermer.onselect = function(){ FermerCalculette(); };
    Calculette.appendChild(BoutonFermer);
}

function FermerCalculette(){
    var Calculette = document.getElementById("Calculette");
    if(Calculette) Calculette.parentNode.removeChild(Calculette);
}

function FaireOperation(){
    var PremierTerme = document.getElementById("Terme_1");
    var Operateur = document.getElementById("Operateur");
    var DeuxiemeTerme = document.getElementById("Terme_2");
    var Resultat = document.getElementById("Resultat");
    if(!PremierTerme || !Operateur || !DeuxiemeTerme || !Resultat ) return;
    var ValeurPremierTerme = parseFloat(PremierTerme.value);
    var ValeurDeuxiemeTerme = parseFloat(DeuxiemeTerme.value);
    var ValeurOperateur = Operateur.value;
    var ValeurResultat;
    switch(ValeurOperateur){
        case "+" : ValeurResultat = ValeurPremierTerme+ValeurDeuxiemeTerme;
                   break;
        case "-" : ValeurResultat = ValeurPremierTerme-ValeurDeuxiemeTerme;
                   break;
        case "*" : ValeurResultat = ValeurPremierTerme*ValeurDeuxiemeTerme;
                   break;
        case "/" : ValeurResultat = ValeurPremierTerme/ValeurDeuxiemeTerme;
                   break;
    }
    Resultat.value = (""+ValeurResultat).replace(/0000.*/, "");
}