|
1 /* |
|
2 * AJAX applets |
|
3 */ |
|
4 |
|
5 function ajaxGet(uri, f) { |
|
6 if (window.XMLHttpRequest) { |
|
7 ajax = new XMLHttpRequest(); |
|
8 } else { |
|
9 if (window.ActiveXObject) { |
|
10 ajax = new ActiveXObject("Microsoft.XMLHTTP"); |
|
11 } else { |
|
12 alert('Enano client-side runtime error: No AJAX support, unable to continue'); |
|
13 return; |
|
14 } |
|
15 } |
|
16 ajax.onreadystatechange = f; |
|
17 ajax.open('GET', uri, true); |
|
18 ajax.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" ); |
|
19 ajax.send(null); |
|
20 } |
|
21 |
|
22 function ajaxPost(uri, parms, f) { |
|
23 if (window.XMLHttpRequest) { |
|
24 ajax = new XMLHttpRequest(); |
|
25 } else { |
|
26 if (window.ActiveXObject) { |
|
27 ajax = new ActiveXObject("Microsoft.XMLHTTP"); |
|
28 } else { |
|
29 alert('Enano client-side runtime error: No AJAX support, unable to continue'); |
|
30 return; |
|
31 } |
|
32 } |
|
33 ajax.onreadystatechange = f; |
|
34 ajax.open('POST', uri, true); |
|
35 ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); |
|
36 ajax.setRequestHeader("Content-length", parms.length); |
|
37 ajax.setRequestHeader("Connection", "close"); |
|
38 ajax.send(parms); |
|
39 } |
|
40 |
|
41 function ajaxEscape(text) |
|
42 { |
|
43 text = escape(text); |
|
44 text = text.replace(/\+/g, '%2B', text); |
|
45 return text; |
|
46 } |
|
47 |
|
48 // Page editor |
|
49 |
|
50 function ajaxEditor() { |
|
51 setAjaxLoading(); |
|
52 ajaxGet(stdAjaxPrefix+'&_mode=getsource', function() { |
|
53 if(ajax.readyState == 4) { |
|
54 unsetAjaxLoading(); |
|
55 if(edit_open) { |
|
56 c=confirm('Do you really want to revert your changes?'); |
|
57 if(!c) return; |
|
58 } |
|
59 edit_open = true; |
|
60 selectButtonMajor('article'); |
|
61 selectButtonMinor('edit'); |
|
62 if(in_array('ajaxEditArea', grippied_textareas)) |
|
63 { |
|
64 // Allow the textarea grippifier to re-create the resizer control on the textarea |
|
65 grippied_textareas.pop(in_array('ajaxEditArea', grippied_textareas)); |
|
66 } |
|
67 disableUnload('If you do, any changes that you have made to this page will be lost.'); |
|
68 var switcher = ( readCookie('enano_editor_mode') == 'tinymce' ) ? |
|
69 '<a href="#" onclick="setEditorText(); return false;">wikitext editor</a> | graphical editor' : |
|
70 'wikitext editor | <a href="#" onclick="setEditorMCE(); return false;">graphical editor</a>' ; |
|
71 document.getElementById('ajaxEditContainer').innerHTML = '\ |
|
72 <div id="mdgPreviewContainer"></div> \ |
|
73 <span id="switcher">' + switcher + '</span><br />\ |
|
74 <form name="mdgAjaxEditor" method="get" action="#" onsubmit="ajaxSavePage(); return false;">\ |
|
75 <textarea id="ajaxEditArea" rows="20" cols="60" style="display: block; margin: 1em 0 1em 1em; width: 96.5%;">'+ajax.responseText+'</textarea><br />\ |
|
76 Edit summary: <input id="ajaxEditSummary" size="40" /><br />\ |
|
77 <input id="ajaxEditMinor" name="minor" type="checkbox" /> <label for="ajaxEditMinor">This is a minor edit</label><br />\ |
|
78 <a href="#" onclick="void(ajaxSavePage()); return false;">save changes</a> | <a href="#" onclick="void(ajaxShowPreview()); return false;">preview changes</a> | <a href="#" onclick="void(ajaxEditor()); return false;">revert changes</a> | <a href="#" onclick="void(ajaxDiscard()); return false;">discard changes</a> | <a href="#" onclick="ajaxWikiEditHelp(); return false;">formatting help</a>\ |
|
79 <br />\ |
|
80 '+editNotice+'\ |
|
81 </form>'; |
|
82 // initTextareas(); |
|
83 if(readCookie('enano_editor_mode') == 'tinymce') |
|
84 { |
|
85 $('ajaxEditArea').switchToMCE(); |
|
86 } |
|
87 } |
|
88 }); |
|
89 } |
|
90 |
|
91 function setEditorMCE() |
|
92 { |
|
93 $('ajaxEditArea').switchToMCE(); |
|
94 createCookie('enano_editor_mode', 'tinymce', 365); |
|
95 $('switcher').object.innerHTML = '<a href="#" onclick="setEditorText(); return false;">wikitext editor</a> | graphical editor'; |
|
96 } |
|
97 |
|
98 function setEditorText() |
|
99 { |
|
100 $('ajaxEditArea').destroyMCE(); |
|
101 createCookie('enano_editor_mode', 'text', 365); |
|
102 $('switcher').object.innerHTML = 'wikitext editor | <a href="#" onclick="setEditorMCE(); return false;">graphical editor</a>'; |
|
103 } |
|
104 |
|
105 function ajaxViewSource() { |
|
106 setAjaxLoading(); |
|
107 ajaxGet(stdAjaxPrefix+'&_mode=getsource', function() { |
|
108 if(ajax.readyState == 4) { |
|
109 unsetAjaxLoading(); |
|
110 if(edit_open) { |
|
111 c=confirm('Do you really want to revert your changes?'); |
|
112 if(!c) return; |
|
113 } |
|
114 edit_open = true; |
|
115 selectButtonMajor('article'); |
|
116 selectButtonMinor('edit'); |
|
117 if(in_array('ajaxEditArea', grippied_textareas)) |
|
118 { |
|
119 // Allow the textarea grippifier to re-create the resizer control on the textarea |
|
120 grippied_textareas.pop(in_array('ajaxEditArea', grippied_textareas)); |
|
121 } |
|
122 document.getElementById('ajaxEditContainer').innerHTML = '\ |
|
123 <form method="get" action="#" onsubmit="ajaxSavePage(); return false;">\ |
|
124 <textarea readonly="readonly" id="ajaxEditArea" rows="20" cols="60" style="display: block; margin: 1em 0 1em 1em; width: 96.5%;">'+ajax.responseText+'</textarea><br />\ |
|
125 <a href="#" onclick="void(ajaxReset()); return false;">close viewer</a>\ |
|
126 </form>'; |
|
127 initTextareas(); |
|
128 } |
|
129 }); |
|
130 } |
|
131 |
|
132 function ajaxShowPreview() |
|
133 { |
|
134 goBusy('Loading preview...'); |
|
135 var text = ajaxEscape($('ajaxEditArea').getContent()); |
|
136 if(document.mdgAjaxEditor.minor.checked) minor='&minor'; |
|
137 else minor=''; |
|
138 ajaxPost(stdAjaxPrefix+'&_mode=preview', 'summary='+document.getElementById('ajaxEditSummary').value+minor+'&text='+text, function() { |
|
139 if(ajax.readyState == 4) { |
|
140 unBusy(); |
|
141 edit_open = false; |
|
142 document.getElementById('mdgPreviewContainer').innerHTML = ajax.responseText; |
|
143 } |
|
144 }); |
|
145 } |
|
146 |
|
147 function ajaxSavePage() { |
|
148 goBusy('Saving page...'); |
|
149 var text = ajaxEscape($('ajaxEditArea').getContent()); |
|
150 if(document.mdgAjaxEditor.minor.checked) minor='&minor'; |
|
151 else minor=''; |
|
152 ajaxPost(stdAjaxPrefix+'&_mode=savepage', 'summary='+document.getElementById('ajaxEditSummary').value+minor+'&text='+text, function() { |
|
153 if(ajax.readyState == 4) { |
|
154 unBusy(); |
|
155 edit_open = false; |
|
156 document.getElementById('ajaxEditContainer').innerHTML = ajax.responseText; |
|
157 enableUnload(); |
|
158 unselectAllButtonsMinor(); |
|
159 } |
|
160 }); |
|
161 } |
|
162 |
|
163 function ajaxDiscard() { |
|
164 c = confirm('Do you really want to discard your changes?'); |
|
165 if(!c) return; |
|
166 ajaxReset(); |
|
167 } |
|
168 |
|
169 function ajaxReset() { |
|
170 enableUnload(); |
|
171 setAjaxLoading(); |
|
172 ajaxGet(stdAjaxPrefix+'&_mode=getpage&noheaders', function() { |
|
173 if(ajax.readyState == 4) { |
|
174 unsetAjaxLoading(); |
|
175 edit_open = false; |
|
176 document.getElementById('ajaxEditContainer').innerHTML = ajax.responseText; |
|
177 selectButtonMajor('article'); |
|
178 unselectAllButtonsMinor(); |
|
179 } |
|
180 }); |
|
181 } |
|
182 |
|
183 // Miscellaneous AJAX applets |
|
184 |
|
185 function ajaxProtect(l) { |
|
186 if(shift) { |
|
187 r = 'NO_REASON'; |
|
188 } else { |
|
189 r = prompt('Reason for (un)protecting:'); |
|
190 if(!r || r=='') return; |
|
191 } |
|
192 setAjaxLoading(); |
|
193 document.getElementById('protbtn_0').style.textDecoration = 'none'; |
|
194 document.getElementById('protbtn_1').style.textDecoration = 'none'; |
|
195 document.getElementById('protbtn_2').style.textDecoration = 'none'; |
|
196 document.getElementById('protbtn_'+l).style.textDecoration = 'underline'; |
|
197 ajaxPost(stdAjaxPrefix+'&_mode=protect', 'reason='+escape(r)+'&level='+l, function() { |
|
198 if(ajax.readyState == 4) { |
|
199 unsetAjaxLoading(); |
|
200 if(ajax.responseText != 'good') |
|
201 alert(ajax.responseText); |
|
202 } |
|
203 }); |
|
204 } |
|
205 |
|
206 function ajaxRename() { |
|
207 r = prompt('What title should this page be renamed to?\nNote: This does not and will never change the URL of this page, that must be done from the admin panel.'); |
|
208 if(!r || r=='') return; |
|
209 setAjaxLoading(); |
|
210 ajaxPost(stdAjaxPrefix+'&_mode=rename', 'newtitle='+escape(r), function() { |
|
211 if(ajax.readyState == 4) { |
|
212 unsetAjaxLoading(); |
|
213 alert(ajax.responseText); |
|
214 } |
|
215 }); |
|
216 } |
|
217 |
|
218 function ajaxMakePage() { |
|
219 setAjaxLoading(); |
|
220 ajaxPost(ENANO_SPECIAL_CREATEPAGE, ENANO_CREATEPAGE_PARAMS, function() { |
|
221 if(ajax.readyState == 4) { |
|
222 unsetAjaxLoading(); |
|
223 window.location.reload(); |
|
224 } |
|
225 }); |
|
226 } |
|
227 |
|
228 function ajaxDeletePage() { |
|
229 c = confirm('You are about to DESTROY this page. Do you REALLY want to do this?'); |
|
230 if(!c) return; |
|
231 c = confirm('You\'re ABSOLUTELY sure???'); |
|
232 if(!c) return; |
|
233 setAjaxLoading(); |
|
234 ajaxGet(stdAjaxPrefix+'&_mode=deletepage', function() { |
|
235 if(ajax.readyState == 4) { |
|
236 unsetAjaxLoading(); |
|
237 alert(ajax.responseText); |
|
238 window.location.reload(); |
|
239 } |
|
240 }); |
|
241 } |
|
242 |
|
243 function ajaxDelVote() { |
|
244 c = confirm('Are you sure that you want to vote that this page be deleted?'); |
|
245 if(!c) return; |
|
246 setAjaxLoading(); |
|
247 ajaxGet(stdAjaxPrefix+'&_mode=delvote', function() { |
|
248 if(ajax.readyState == 4) { |
|
249 unsetAjaxLoading(); |
|
250 alert(ajax.responseText); |
|
251 } |
|
252 }); |
|
253 } |
|
254 |
|
255 function ajaxResetDelVotes() { |
|
256 c = confirm('This will reset the number of votes against this page to zero. Do you really want to do this?'); |
|
257 if(!c) return; |
|
258 setAjaxLoading(); |
|
259 ajaxGet(stdAjaxPrefix+'&_mode=resetdelvotes', function() { |
|
260 if(ajax.readyState == 4) { |
|
261 unsetAjaxLoading(); |
|
262 alert(ajax.responseText); |
|
263 item = document.getElementById('mdgDeleteVoteNoticeBox'); |
|
264 if(item) |
|
265 { |
|
266 opacity('mdgDeleteVoteNoticeBox', 100, 0, 1000); |
|
267 setTimeout("document.getElementById('mdgDeleteVoteNoticeBox').style.display = 'none';", 1000); |
|
268 } |
|
269 } |
|
270 }); |
|
271 } |
|
272 |
|
273 function ajaxSetWikiMode(val) { |
|
274 setAjaxLoading(); |
|
275 document.getElementById('wikibtn_0').style.textDecoration = 'none'; |
|
276 document.getElementById('wikibtn_1').style.textDecoration = 'none'; |
|
277 document.getElementById('wikibtn_2').style.textDecoration = 'none'; |
|
278 document.getElementById('wikibtn_'+val).style.textDecoration = 'underline'; |
|
279 ajaxGet(stdAjaxPrefix+'&_mode=setwikimode&mode='+val, function() { |
|
280 if(ajax.readyState == 4) { |
|
281 unsetAjaxLoading(); |
|
282 if(ajax.responseText!='GOOD') |
|
283 { |
|
284 alert(ajax.responseText); |
|
285 } |
|
286 } |
|
287 }); |
|
288 } |
|
289 |
|
290 // Editing/saving category information |
|
291 // This was not easy to write, I hope enjoy it, and dang I swear I'm gonna |
|
292 // find someone to work on just the Javascript part of Enano... |
|
293 |
|
294 function ajaxCatEdit() { |
|
295 setAjaxLoading(); |
|
296 ajaxGet(stdAjaxPrefix+'&_mode=catedit', function() { |
|
297 if(ajax.readyState == 4) { |
|
298 unsetAjaxLoading(); |
|
299 edit_open = false; |
|
300 eval(ajax.responseText); |
|
301 } |
|
302 }); |
|
303 } |
|
304 |
|
305 function ajaxCatSave() |
|
306 { |
|
307 if(!catlist) |
|
308 { |
|
309 alert('Var catlist has no properties'); |
|
310 return; |
|
311 } |
|
312 query=''; |
|
313 for(i=0;i<catlist.length;i++) |
|
314 { |
|
315 l = 'if(document.forms.mdgCatForm.mdgCat_'+catlist[i]+'.checked) s = true; else s = false;'; |
|
316 eval(l); |
|
317 if(s) query = query + '&' + catlist[i] + '=true'; |
|
318 } |
|
319 setAjaxLoading(); |
|
320 query = query.substring(1, query.length); |
|
321 ajaxPost(stdAjaxPrefix+'&_mode=catsave', query, function() { |
|
322 if(ajax.readyState == 4) { |
|
323 unsetAjaxLoading(); |
|
324 edit_open = false; |
|
325 if(ajax.responseText != 'GOOD') alert(ajax.responseText); |
|
326 ajaxReset(); |
|
327 } |
|
328 }); |
|
329 } |
|
330 |
|
331 // History stuff |
|
332 |
|
333 function ajaxHistory() { |
|
334 setAjaxLoading(); |
|
335 ajaxGet(stdAjaxPrefix+'&_mode=histlist', function() { |
|
336 if(ajax.readyState == 4) { |
|
337 unsetAjaxLoading(); |
|
338 edit_open = false; |
|
339 selectButtonMajor('article'); |
|
340 selectButtonMinor('history'); |
|
341 document.getElementById('ajaxEditContainer').innerHTML = ajax.responseText; |
|
342 buildDiffList(); |
|
343 } |
|
344 }); |
|
345 } |
|
346 |
|
347 function ajaxHistView(oldid, tit) { |
|
348 if(!tit) tit=title; |
|
349 setAjaxLoading(); |
|
350 ajaxGet(append_sid(scriptPath+'/ajax.php?title='+tit+'&_mode=getpage&oldid='+oldid), function() { |
|
351 if(ajax.readyState == 4) { |
|
352 unsetAjaxLoading(); |
|
353 edit_open = false; |
|
354 document.getElementById('ajaxEditContainer').innerHTML = ajax.responseText; |
|
355 } |
|
356 }); |
|
357 } |
|
358 |
|
359 function ajaxRollback(id) { |
|
360 setAjaxLoading(); |
|
361 ajaxGet(stdAjaxPrefix+'&_mode=rollback&id='+id, function() { |
|
362 if(ajax.readyState == 4) { |
|
363 unsetAjaxLoading(); |
|
364 alert(ajax.responseText); |
|
365 } |
|
366 }); |
|
367 } |
|
368 |
|
369 function ajaxClearLogs() { |
|
370 c = confirm('You are about to DESTROY all log entries for this page. As opposed to (example) deleting this page, this action is completely IRREVERSIBLE and should not be used except in dire circumstances. Do you REALLY want to do this?'); |
|
371 if(!c) return; |
|
372 c = confirm('You\'re ABSOLUTELY sure???'); |
|
373 if(!c) return; |
|
374 setAjaxLoading(); |
|
375 ajaxGet(stdAjaxPrefix+'&_mode=flushlogs', function() { |
|
376 if(ajax.readyState == 4) { |
|
377 unsetAjaxLoading(); |
|
378 alert(ajax.responseText); |
|
379 window.location.reload(); |
|
380 } |
|
381 }); |
|
382 } |
|
383 |
|
384 var timelist; |
|
385 |
|
386 function buildDiffList() |
|
387 { |
|
388 arrDiff1Buttons = getElementsByClassName(document, 'input', 'clsDiff1Radio'); |
|
389 arrDiff2Buttons = getElementsByClassName(document, 'input', 'clsDiff2Radio'); |
|
390 var len = arrDiff1Buttons.length; |
|
391 if ( len < 1 ) |
|
392 return false; |
|
393 timelist = new Array(); |
|
394 for ( var i = 0; i < len; i++ ) |
|
395 { |
|
396 timelist.push( arrDiff2Buttons[i].id.substr(6) ); |
|
397 } |
|
398 timelist.push( arrDiff1Buttons[len-1].id.substr(6) ); |
|
399 delete(timelist.toJSONString); |
|
400 for ( var i = 1; i < timelist.length-1; i++ ) |
|
401 { |
|
402 if ( i >= timelist.length ) break; |
|
403 arrDiff2Buttons[i].style.display = 'none'; |
|
404 } |
|
405 } |
|
406 |
|
407 function selectDiff1Button(obj) |
|
408 { |
|
409 var this_time = obj.id.substr(6); |
|
410 var index = parseInt(in_array(this_time, timelist)); |
|
411 for ( var i = 0; i < timelist.length - 1; i++ ) |
|
412 { |
|
413 if ( i < timelist.length - 1 ) |
|
414 { |
|
415 var state = ( i < index ) ? 'inline' : 'none'; |
|
416 var id = 'diff2_' + timelist[i]; |
|
417 document.getElementById(id).style.display = state; |
|
418 |
|
419 // alert("Debug:\nIndex: "+index+"\nState: "+state+"\ni: "+i); |
|
420 } |
|
421 } |
|
422 } |
|
423 |
|
424 function selectDiff2Button(obj) |
|
425 { |
|
426 var this_time = obj.id.substr(6); |
|
427 var index = parseInt(in_array(this_time, timelist)); |
|
428 for ( var i = 1; i < timelist.length; i++ ) |
|
429 { |
|
430 if ( i < timelist.length - 1 ) |
|
431 { |
|
432 var state = ( i > index ) ? 'inline' : 'none'; |
|
433 var id = 'diff1_' + timelist[i]; |
|
434 document.getElementById(id).style.display = state; |
|
435 |
|
436 // alert("Debug:\nIndex: "+index+"\nState: "+state+"\ni: "+i); |
|
437 } |
|
438 } |
|
439 } |
|
440 |
|
441 function ajaxHistDiff() |
|
442 { |
|
443 var id1=false; |
|
444 var id2=false; |
|
445 for ( i = 0; i < arrDiff1Buttons.length; i++ ) |
|
446 { |
|
447 k = i + ''; |
|
448 kpp = i + 1; |
|
449 kpp = kpp + ''; |
|
450 if(arrDiff1Buttons[k].checked) id1 = arrDiff1Buttons[k].id.substr(6); |
|
451 if(arrDiff2Buttons[k].checked) id2 = arrDiff2Buttons[k].id.substr(6); |
|
452 } |
|
453 if(!id1 || !id2) { alert('BUG: Couldn\'t get checked radiobutton state'); return; } |
|
454 setAjaxLoading(); |
|
455 ajaxGet(stdAjaxPrefix+'&_mode=pagediff&diff1='+id1+'&diff2='+id2, function() |
|
456 { |
|
457 if(ajax.readyState==4) |
|
458 { |
|
459 unsetAjaxLoading(); |
|
460 document.getElementById('ajaxEditContainer').innerHTML = ajax.responseText; |
|
461 } |
|
462 }); |
|
463 } |
|
464 |
|
465 // Change the user's preferred style/theme |
|
466 |
|
467 function ajaxChangeStyle() |
|
468 { |
|
469 var win = document.getElementById("cn2"); |
|
470 win.innerHTML = ' \ |
|
471 <form action="'+ENANO_SPECIAL_CHANGESTYLE+'" onsubmit="jws.closeWin(\'root2\');" method="post" style="text-align: center"> \ |
|
472 <h3>Select a theme...</h3>\ |
|
473 <select id="mdgThemeID" name="theme" onchange="ajaxGetStyles(this.value);"> \ |
|
474 '+ENANO_THEME_LIST+' \ |
|
475 </select> \ |
|
476 <div id="styleSelector"></div>\ |
|
477 <br /><br />\ |
|
478 <input type="hidden" name="return_to" value="'+title+'" />\ |
|
479 <input id="styleSubmitter" type="submit" style="display: none; font-weight: bold" value="Change theme" /> \ |
|
480 <input type="button" value="Cancel" onclick="jws.closeWin(\'root2\');" /> \ |
|
481 </form> \ |
|
482 '; |
|
483 ajaxGetStyles(ENANO_CURRENT_THEME); |
|
484 jws.openWin('root2', 340, 300); |
|
485 } |
|
486 |
|
487 function ajaxGetStyles(id) { |
|
488 setAjaxLoading(); |
|
489 ajaxGet(stdAjaxPrefix+'&_mode=getstyles&id='+id, function() { |
|
490 if(ajax.readyState == 4) { |
|
491 unsetAjaxLoading(); |
|
492 eval(ajax.responseText); |
|
493 html = '<h3>And a style...</h3><select id="mdgStyleID" name="style">'; |
|
494 for(i=0;i<list.length;i++) { |
|
495 lname = list[i].substr(0, 1).toUpperCase() + list[i].substr(1, list[i].length); |
|
496 html = html + '<option value="'+list[i]+'">'+lname+'</option>'; |
|
497 } |
|
498 html = html + '</select>'; |
|
499 document.getElementById('styleSelector').innerHTML = html; |
|
500 document.getElementById('styleSubmitter').style.display = 'inline'; |
|
501 } |
|
502 }); |
|
503 } |
|
504 |
|
505 function ajaxSwapCSS() { |
|
506 setAjaxLoading(); |
|
507 if(_css) { |
|
508 document.getElementById('mdgCss').href = main_css; |
|
509 _css = false; |
|
510 } else { |
|
511 document.getElementById('mdgCss').href = print_css; |
|
512 _css = true; |
|
513 } |
|
514 unsetAjaxLoading(); |
|
515 menuOff(); |
|
516 } |
|
517 |
|
518 function ajaxSetPassword() |
|
519 { |
|
520 pass = hex_sha1(document.getElementById('mdgPassSetField').value); |
|
521 setAjaxLoading(); |
|
522 ajaxPost(stdAjaxPrefix+'&_mode=setpass', 'password='+pass, function() |
|
523 { |
|
524 unsetAjaxLoading(); |
|
525 if(ajax.readyState==4) |
|
526 { |
|
527 alert(ajax.responseText); |
|
528 } |
|
529 } |
|
530 ); |
|
531 } |
|
532 |
|
533 function ajaxWikiEditHelp() |
|
534 { |
|
535 jws.openWin('root3', 640, 480); |
|
536 setAjaxLoading(); |
|
537 ajaxGet(stdAjaxPrefix+'&_mode=wikihelp', function() { |
|
538 if(ajax.readyState==4) |
|
539 { |
|
540 unsetAjaxLoading(); |
|
541 document.getElementById('cn3').innerHTML = ajax.responseText; |
|
542 } |
|
543 }); |
|
544 } |
|
545 |
|
546 function ajaxStartLogin() |
|
547 { |
|
548 ajaxPromptAdminAuth(function(k) { |
|
549 window.location.reload(); |
|
550 }, 2); |
|
551 } |
|
552 |
|
553 function ajaxAdminPage() |
|
554 { |
|
555 if ( auth_level < USER_LEVEL_ADMIN ) |
|
556 { |
|
557 ajaxPromptAdminAuth(function(k) { |
|
558 ENANO_SID = k; |
|
559 auth_level = USER_LEVEL_ADMIN; |
|
560 var loc = String(window.location + ''); |
|
561 window.location = append_sid(loc); |
|
562 var loc = makeUrlNS('Special', 'Administration', 'module=' + namespace_list['Admin'] + 'PageManager&source=ajax&page_id=' + ajaxEscape(title)); |
|
563 if ( (ENANO_SID + ' ').length > 1 ) |
|
564 window.location = loc; |
|
565 }, 9); |
|
566 return false; |
|
567 } |
|
568 var loc = makeUrlNS('Special', 'Administration', 'module=' + namespace_list['Admin'] + 'PageManager&source=ajax&page_id=' + ajaxEscape(title)); |
|
569 window.location = loc; |
|
570 } |
|
571 |