2 var aesEnabled
= false;
4 var encryptPassword
= null;
5 var www_url
= location
.href
.replace(/admin\/.*$/, 'admin/');
14 var s
= document
.createElement('script');
15 s
.type
= 'text/javascript';
16 s
.src
= www_url
+ 'static/gibberish-aes.min.js';
18 document
.head
.appendChild(s
);
22 function formatContent(content
)
24 // htmlspecialchars ENT_QUOTES
25 content
= content
.replace(/&/g, '&').replace(/</g, '<').replace(/>/g
, '>')
26 .replace(/'/g, ''').replace(/"/g, '"');
29 content = content.replace(/<(\/?(del|pre|ins|b|i|strong|em|h\d|code|samp|tt))>/g, '<$1>');
33 content = content.replace(/\{{3}([^\n]*)\}{3}/g, '<h3>$1</h3>');
36 content = content.replace(/\{{2}([^\n]*)\}{2}/g, '<strong>$1</strong>');
39 content = content.replace(/\{([^\n]*)\}/g, '<em>$1</em>');
41 // Espaces typograhiques
42 content = content.replace(/\h*([?!;:»])(\s+|$)/g, ' $1$2');
43 content = content.replace(/(^|\s+)([«])\h*/g, '$1$2 ');
46 content = content.replace(/\[([^-]+)->([^\]]+)\]/g, '<a href="$2">$1</a>');
47 content = content.replace(/\[([^\]]+)\]/g, '<a href="$1">$1</a>');
50 content = content.replace(/\r/g, '').replace(/\n/g, '<br />');
55 window.wikiDecrypt = function (edit)
59 encryptPassword = window.prompt('Mot de passe ?');
63 encryptPassword = null;
67 if (window.confirm("Aucun mot de passe entr
é.\nDésactiver le chiffrement et effacer le contenu
?"))
69 document.getElementById('f_contenu').value = '';
70 document.getElementById('f_chiffrement').checked = false;
71 checkEncryption(document.getElementById('f_chiffrement'));
86 var decrypt = function (edit)
88 if (typeof GibberishAES == 'undefined')
93 encryptPassword = null;
94 window.alert("Impossible de charger la biblioth
èque AES
, emp
êchant le d
échiffrement de la page
.\nAttendez quelques instants avant de recommencer ou rechargez la page
.");
99 window.setTimeout(decrypt, 500);
103 var content = document.getElementById(edit ? 'f_contenu' : 'wikiEncryptedContent');
104 var wikiContent = !edit ? (content.textContent ? content.textContent : content.innerText) : content.value;
105 wikiContent = wikiContent.replace(/\s+/g, '');
108 wikiContent = GibberishAES.dec(wikiContent, encryptPassword);
112 encryptPassword = null;
113 window.alert('Impossible de déchiffrer. Mauvais mot de passe ?');
117 // Redemander le mot de passe
125 content.style.display = 'block';
126 document.getElementById('wikiEncryptedMessage').style.display = 'none';
127 content.innerHTML = formatContent(wikiContent);
131 content.value = wikiContent;
132 checkEncryption(document.getElementById('f_chiffrement'));
136 window.checkEncryption = function(elm)
138 String.prototype.repeat = function(num)
140 return new Array(num + 1).join(this);
145 if (!encryptPassword)
147 encryptPassword = window.prompt('Mot de passe à utiliser ?');
150 if (!encryptPassword)
153 encryptPassword = null;
160 var d = document.getElementById('encryptPasswordDisplay');
161 d.innerHTML = '•'.repeat(encryptPassword.length);
162 d.title = 'Cliquer pour voir le mot de passe';
163 d.onclick = function () {
166 this.innerHTML = encryptPassword;
167 this.title = 'Cliquer pour cacher le mot de passe.';
171 this.innerHTML = '•'.repeat(encryptPassword.length);
172 this.title = 'Cliquer pour voir le mot de passe';
177 document.getElementById('f_form').onsubmit = function ()
179 if (typeof GibberishAES == 'undefined')
181 alert("Le chargement de la biblioth
èque AES n
'est pas terminé.\nLe chiffrement est impossible pour le moment, recommencez dans quelques instants ou désactivez le chiffrement.");
185 var content = document.getElementById('f_contenu
');
186 content.value = GibberishAES.enc(content.value, encryptPassword);
187 content.readOnly = true;
193 encryptPassword = null;
194 var d = document.getElementById('encryptPasswordDisplay
');
195 d.innerHTML = 'd
ésactiv
é';
196 d.title = 'Chiffrement d
ésactiv
é';
198 document.getElementById('f_form
').onsubmit = null;