User:Rical/commons.js

/* === Projet de Worker HTML5 pour integrer du JS à toute page de wiki === voir : http://www.w3schools.com/html/html5_webworkers.asp Pour des modèles ou des fonctions controlables selon ou par l'utilisateur. Usages : adaptation aux navigateurs, infos ponctuelles, statistiques à jour à chaque affichage, fonctions pour modèles, formatage complexe, numéroter des vers... Risques : surcharger les serveurs, un worker unique pour coordonner tous les workers ? /* Masquer ici le code HTML de base pour Worker, boutons et champ d'affichage <!DOCTYPE html> Count numbers: Start Worker Stop Worker var w;

function startWorker { if(typeof(Worker)!=="undefined") { if(typeof(w)=="undefined") { w=new Worker("demo_workers.js"); }   w.onmessage = function (event) { document.getElementById("result").innerHTML=event.data; }; } else { document.getElementById("result").innerHTML="Sorry, your browser does not support Web Workers..."; } }

function stopWorker { w.terminate; } /* Masquer ici la fin du code HTML de base pour Worker, boutons et champ d'affichage

// === MathRoman : Conversion de nombre romain en decimal et vice-versa === */ // exemples d'appels : valeurDeRomain('MCXI'); testerDesRomains('span.vueromains'); /* */ function valeurDeRomain(r) { var v=0; var v1=0; var v2=0; var v3=0; // valeurs totale, derniere lettre et precedentes var x='-'; var i=0; // caractere courant et son numéro var e1=; var e2=; var e3=''; var lst='-MDCLXVIJ'; // erreur si hors lst while (x!='') { v3=v2; v2=v1; v1=0; x=r.substr(i,1); if ( x=='M' ) { v1=1000 }; if ( x=='D' ) { v1=500 }; if ( x=='C' ) { v1=100 }; if ( x=='L' ) { v1=50 }; if ( x=='X' ) { v1=10 }; if ( x=='V' ) { v1=5 }; if ( x=='I' ) { v1=1 }; if ( x=='J' ) { v1=1; if ( i < (r.length-1) ) {e3=' erreur caractere J avant la fin.';} };		v+=v1; if ( (v1==5*v2) | (v1==10*v2) ) {v-=2*v2}; // pour ajuster 4, 9, 40, 90 ... if ( lst.indexOf(x) < 1 ) {e2=' erreur caractere '+x+' en '+(i+1)+'.';}; if ( (v1>v2) & (v2>v3) ) {e1=' erreur caracteres croissants.';}; if ( v>4999) {e1=' erreur > 4999.';}; i+=1; x=r.substr(i,1); };	// if ( lst.indexOf('J') < (lst.length-1) ) {e3=' erreur caractere J avant la fin.';}; return ''+v+e1+e2+e3; // v+e1+e2 pour test des erreurs }

function testerUnRomain(r1, vue) { $(vue).append(' '+r1+'='+valeurDeRomain(r1) ); }

function testerDesRomains(vue) { vue = '#vueRomains'; testerUnRomain('XIJ', vue); testerUnRomain('MCXI', vue); testerUnRomain('MCDXLIV', vue); testerUnRomain('MDCLXVI', vue); testerUnRomain('MCMXCIX', vue); testerUnRomain('MMCCXXII', vue); testerUnRomain('MMMMCMXCIX', vue); testerUnRomain('ERREURS', vue); testerUnRomain('XIA', vue); testerUnRomain('XJI', vue); testerUnRomain('IXC', vue); testerUnRomain('VLD', vue); testerUnRomain('MMMMM', vue); testerUnRomain('MMMMMYJXC', vue); }

// La function testerDesRomains(vue) ci-dessus donne le resultat suivant : // [ bouton Calculs de romains ] Nombres romains : XIJ=12 MCXI=1111 MCDXLIV=1444 MDCLXVI=1666 MCMXCIX=1999 MMCCXXII=2222 MMMMCMXCIX=4999 ERREURS=0 erreur caractere S en 7. XIA=11 erreur caractere A en 3. XJI=12 erreur caractere J avant la fin. IXC=89 erreur caracteres croissants. VLD=445 erreur caracteres croissants. MMMMM=5000 erreur > 4999. MMMMMYJXC=5089 erreur > 4999. erreur caractere Y en 6. erreur caractere J avant la fin.

// === MathRoman : Creer des boutons pour tester la conversion de nombre romain === function razRomains { $('#mw-content-text').attr('margin-left', '10em'); // #id $('#mw-content-text').attr('padding', '55px'); // #id $('#mw-content-text').attr('background-color', '#bbddff'); // #id $('#flow-ui-load-overlay').attr('background-color', '#bbddff'); // #id $('#flow-ui-load-overlay').attr('width', '10em'); // #id $('#flow-ui-load-overlay').attr('padding', '55px'); // #id

$('flow-ui-load-overlay').attr('background-color', '#bbddff'); // $('flow-ui-load-overlay').attr('width', '10em'); // $('.flow-ui-load-overlay').attr('background-color', '#bbddff'); // .class $('.flow-ui-load-overlay').attr('width', '10em'); // .class

$('#vueRomains').remove; }; function initRomains { $('#mw-content-text').attr('margin-left', '1em'); // #id $('#mw-content-text').attr('padding', '5px'); // #id $('#mw-content-text').attr('background-color', '#ffddbb'); // #id $('#flow-ui-load-overlay').attr('background-color', '#ffddbb'); // #id $('#flow-ui-load-overlay').attr('width', '1em'); // #id $('#flow-ui-load-overlay').attr('padding', '55px'); // #id

$('flow-ui-load-overlay').attr('background-color', 'red'); // $('flow-ui-load-overlay').attr('width', '1em'); // $('.flow-ui-load-overlay').attr('background-color', '#ffddbb'); // .class $('.flow-ui-load-overlay').attr('width', '1em'); // .class

$('#mw-content-text').prepend(" vueRomains : "); testerDesRomains('#vueRomains'); }; $('#p-personal').prepend('razRomains '); $('#p-personal').prepend('calculsRomains '); /* */ // === Gadget-ImgSynchro : Projet de gadget pour synchroniser l'image sur le texte dans Page: === /* Importer wikiEditor/contentCollector.js en mode debug=true pour Gadget-ImgSynchro.js */ /* document.write(' '); // */

/* // Importer Gadget-ImgSynchro comme simple script, le gadget Utilisateur:Rical/Gadget-ImgSynchro.js document.write(' '); // */