diff -r 902822492a68 -r fe660c52c48f includes/clientside/static/ajax.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/includes/clientside/static/ajax.js Wed Jun 13 16:07:17 2007 -0400
@@ -0,0 +1,571 @@
+/*
+ * AJAX applets
+ */
+
+function ajaxGet(uri, f) {
+ if (window.XMLHttpRequest) {
+ ajax = new XMLHttpRequest();
+ } else {
+ if (window.ActiveXObject) {
+ ajax = new ActiveXObject("Microsoft.XMLHTTP");
+ } else {
+ alert('Enano client-side runtime error: No AJAX support, unable to continue');
+ return;
+ }
+ }
+ ajax.onreadystatechange = f;
+ ajax.open('GET', uri, true);
+ ajax.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
+ ajax.send(null);
+}
+
+function ajaxPost(uri, parms, f) {
+ if (window.XMLHttpRequest) {
+ ajax = new XMLHttpRequest();
+ } else {
+ if (window.ActiveXObject) {
+ ajax = new ActiveXObject("Microsoft.XMLHTTP");
+ } else {
+ alert('Enano client-side runtime error: No AJAX support, unable to continue');
+ return;
+ }
+ }
+ ajax.onreadystatechange = f;
+ ajax.open('POST', uri, true);
+ ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
+ ajax.setRequestHeader("Content-length", parms.length);
+ ajax.setRequestHeader("Connection", "close");
+ ajax.send(parms);
+}
+
+function ajaxEscape(text)
+{
+ text = escape(text);
+ text = text.replace(/\+/g, '%2B', text);
+ return text;
+}
+
+// Page editor
+
+function ajaxEditor() {
+ setAjaxLoading();
+ ajaxGet(stdAjaxPrefix+'&_mode=getsource', function() {
+ if(ajax.readyState == 4) {
+ unsetAjaxLoading();
+ if(edit_open) {
+ c=confirm('Do you really want to revert your changes?');
+ if(!c) return;
+ }
+ edit_open = true;
+ selectButtonMajor('article');
+ selectButtonMinor('edit');
+ if(in_array('ajaxEditArea', grippied_textareas))
+ {
+ // Allow the textarea grippifier to re-create the resizer control on the textarea
+ grippied_textareas.pop(in_array('ajaxEditArea', grippied_textareas));
+ }
+ disableUnload('If you do, any changes that you have made to this page will be lost.');
+ var switcher = ( readCookie('enano_editor_mode') == 'tinymce' ) ?
+ 'wikitext editor | graphical editor' :
+ 'wikitext editor | graphical editor' ;
+ document.getElementById('ajaxEditContainer').innerHTML = '\
+
\
+ ' + switcher + '
\
+ ';
+ // initTextareas();
+ if(readCookie('enano_editor_mode') == 'tinymce')
+ {
+ $('ajaxEditArea').switchToMCE();
+ }
+ }
+ });
+}
+
+function setEditorMCE()
+{
+ $('ajaxEditArea').switchToMCE();
+ createCookie('enano_editor_mode', 'tinymce', 365);
+ $('switcher').object.innerHTML = 'wikitext editor | graphical editor';
+}
+
+function setEditorText()
+{
+ $('ajaxEditArea').destroyMCE();
+ createCookie('enano_editor_mode', 'text', 365);
+ $('switcher').object.innerHTML = 'wikitext editor | graphical editor';
+}
+
+function ajaxViewSource() {
+ setAjaxLoading();
+ ajaxGet(stdAjaxPrefix+'&_mode=getsource', function() {
+ if(ajax.readyState == 4) {
+ unsetAjaxLoading();
+ if(edit_open) {
+ c=confirm('Do you really want to revert your changes?');
+ if(!c) return;
+ }
+ edit_open = true;
+ selectButtonMajor('article');
+ selectButtonMinor('edit');
+ if(in_array('ajaxEditArea', grippied_textareas))
+ {
+ // Allow the textarea grippifier to re-create the resizer control on the textarea
+ grippied_textareas.pop(in_array('ajaxEditArea', grippied_textareas));
+ }
+ document.getElementById('ajaxEditContainer').innerHTML = '\
+ ';
+ initTextareas();
+ }
+ });
+}
+
+function ajaxShowPreview()
+{
+ goBusy('Loading preview...');
+ var text = ajaxEscape($('ajaxEditArea').getContent());
+ if(document.mdgAjaxEditor.minor.checked) minor='&minor';
+ else minor='';
+ ajaxPost(stdAjaxPrefix+'&_mode=preview', 'summary='+document.getElementById('ajaxEditSummary').value+minor+'&text='+text, function() {
+ if(ajax.readyState == 4) {
+ unBusy();
+ edit_open = false;
+ document.getElementById('mdgPreviewContainer').innerHTML = ajax.responseText;
+ }
+ });
+}
+
+function ajaxSavePage() {
+ goBusy('Saving page...');
+ var text = ajaxEscape($('ajaxEditArea').getContent());
+ if(document.mdgAjaxEditor.minor.checked) minor='&minor';
+ else minor='';
+ ajaxPost(stdAjaxPrefix+'&_mode=savepage', 'summary='+document.getElementById('ajaxEditSummary').value+minor+'&text='+text, function() {
+ if(ajax.readyState == 4) {
+ unBusy();
+ edit_open = false;
+ document.getElementById('ajaxEditContainer').innerHTML = ajax.responseText;
+ enableUnload();
+ unselectAllButtonsMinor();
+ }
+ });
+}
+
+function ajaxDiscard() {
+ c = confirm('Do you really want to discard your changes?');
+ if(!c) return;
+ ajaxReset();
+}
+
+function ajaxReset() {
+ enableUnload();
+ setAjaxLoading();
+ ajaxGet(stdAjaxPrefix+'&_mode=getpage&noheaders', function() {
+ if(ajax.readyState == 4) {
+ unsetAjaxLoading();
+ edit_open = false;
+ document.getElementById('ajaxEditContainer').innerHTML = ajax.responseText;
+ selectButtonMajor('article');
+ unselectAllButtonsMinor();
+ }
+ });
+}
+
+// Miscellaneous AJAX applets
+
+function ajaxProtect(l) {
+ if(shift) {
+ r = 'NO_REASON';
+ } else {
+ r = prompt('Reason for (un)protecting:');
+ if(!r || r=='') return;
+ }
+ setAjaxLoading();
+ document.getElementById('protbtn_0').style.textDecoration = 'none';
+ document.getElementById('protbtn_1').style.textDecoration = 'none';
+ document.getElementById('protbtn_2').style.textDecoration = 'none';
+ document.getElementById('protbtn_'+l).style.textDecoration = 'underline';
+ ajaxPost(stdAjaxPrefix+'&_mode=protect', 'reason='+escape(r)+'&level='+l, function() {
+ if(ajax.readyState == 4) {
+ unsetAjaxLoading();
+ if(ajax.responseText != 'good')
+ alert(ajax.responseText);
+ }
+ });
+}
+
+function ajaxRename() {
+ 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.');
+ if(!r || r=='') return;
+ setAjaxLoading();
+ ajaxPost(stdAjaxPrefix+'&_mode=rename', 'newtitle='+escape(r), function() {
+ if(ajax.readyState == 4) {
+ unsetAjaxLoading();
+ alert(ajax.responseText);
+ }
+ });
+}
+
+function ajaxMakePage() {
+ setAjaxLoading();
+ ajaxPost(ENANO_SPECIAL_CREATEPAGE, ENANO_CREATEPAGE_PARAMS, function() {
+ if(ajax.readyState == 4) {
+ unsetAjaxLoading();
+ window.location.reload();
+ }
+ });
+}
+
+function ajaxDeletePage() {
+ c = confirm('You are about to DESTROY this page. Do you REALLY want to do this?');
+ if(!c) return;
+ c = confirm('You\'re ABSOLUTELY sure???');
+ if(!c) return;
+ setAjaxLoading();
+ ajaxGet(stdAjaxPrefix+'&_mode=deletepage', function() {
+ if(ajax.readyState == 4) {
+ unsetAjaxLoading();
+ alert(ajax.responseText);
+ window.location.reload();
+ }
+ });
+}
+
+function ajaxDelVote() {
+ c = confirm('Are you sure that you want to vote that this page be deleted?');
+ if(!c) return;
+ setAjaxLoading();
+ ajaxGet(stdAjaxPrefix+'&_mode=delvote', function() {
+ if(ajax.readyState == 4) {
+ unsetAjaxLoading();
+ alert(ajax.responseText);
+ }
+ });
+}
+
+function ajaxResetDelVotes() {
+ c = confirm('This will reset the number of votes against this page to zero. Do you really want to do this?');
+ if(!c) return;
+ setAjaxLoading();
+ ajaxGet(stdAjaxPrefix+'&_mode=resetdelvotes', function() {
+ if(ajax.readyState == 4) {
+ unsetAjaxLoading();
+ alert(ajax.responseText);
+ item = document.getElementById('mdgDeleteVoteNoticeBox');
+ if(item)
+ {
+ opacity('mdgDeleteVoteNoticeBox', 100, 0, 1000);
+ setTimeout("document.getElementById('mdgDeleteVoteNoticeBox').style.display = 'none';", 1000);
+ }
+ }
+ });
+}
+
+function ajaxSetWikiMode(val) {
+ setAjaxLoading();
+ document.getElementById('wikibtn_0').style.textDecoration = 'none';
+ document.getElementById('wikibtn_1').style.textDecoration = 'none';
+ document.getElementById('wikibtn_2').style.textDecoration = 'none';
+ document.getElementById('wikibtn_'+val).style.textDecoration = 'underline';
+ ajaxGet(stdAjaxPrefix+'&_mode=setwikimode&mode='+val, function() {
+ if(ajax.readyState == 4) {
+ unsetAjaxLoading();
+ if(ajax.responseText!='GOOD')
+ {
+ alert(ajax.responseText);
+ }
+ }
+ });
+}
+
+// Editing/saving category information
+// This was not easy to write, I hope enjoy it, and dang I swear I'm gonna
+// find someone to work on just the Javascript part of Enano...
+
+function ajaxCatEdit() {
+ setAjaxLoading();
+ ajaxGet(stdAjaxPrefix+'&_mode=catedit', function() {
+ if(ajax.readyState == 4) {
+ unsetAjaxLoading();
+ edit_open = false;
+ eval(ajax.responseText);
+ }
+ });
+}
+
+function ajaxCatSave()
+{
+ if(!catlist)
+ {
+ alert('Var catlist has no properties');
+ return;
+ }
+ query='';
+ for(i=0;i= timelist.length ) break;
+ arrDiff2Buttons[i].style.display = 'none';
+ }
+}
+
+function selectDiff1Button(obj)
+{
+ var this_time = obj.id.substr(6);
+ var index = parseInt(in_array(this_time, timelist));
+ for ( var i = 0; i < timelist.length - 1; i++ )
+ {
+ if ( i < timelist.length - 1 )
+ {
+ var state = ( i < index ) ? 'inline' : 'none';
+ var id = 'diff2_' + timelist[i];
+ document.getElementById(id).style.display = state;
+
+ // alert("Debug:\nIndex: "+index+"\nState: "+state+"\ni: "+i);
+ }
+ }
+}
+
+function selectDiff2Button(obj)
+{
+ var this_time = obj.id.substr(6);
+ var index = parseInt(in_array(this_time, timelist));
+ for ( var i = 1; i < timelist.length; i++ )
+ {
+ if ( i < timelist.length - 1 )
+ {
+ var state = ( i > index ) ? 'inline' : 'none';
+ var id = 'diff1_' + timelist[i];
+ document.getElementById(id).style.display = state;
+
+ // alert("Debug:\nIndex: "+index+"\nState: "+state+"\ni: "+i);
+ }
+ }
+}
+
+function ajaxHistDiff()
+{
+ var id1=false;
+ var id2=false;
+ for ( i = 0; i < arrDiff1Buttons.length; i++ )
+ {
+ k = i + '';
+ kpp = i + 1;
+ kpp = kpp + '';
+ if(arrDiff1Buttons[k].checked) id1 = arrDiff1Buttons[k].id.substr(6);
+ if(arrDiff2Buttons[k].checked) id2 = arrDiff2Buttons[k].id.substr(6);
+ }
+ if(!id1 || !id2) { alert('BUG: Couldn\'t get checked radiobutton state'); return; }
+ setAjaxLoading();
+ ajaxGet(stdAjaxPrefix+'&_mode=pagediff&diff1='+id1+'&diff2='+id2, function()
+ {
+ if(ajax.readyState==4)
+ {
+ unsetAjaxLoading();
+ document.getElementById('ajaxEditContainer').innerHTML = ajax.responseText;
+ }
+ });
+}
+
+// Change the user's preferred style/theme
+
+function ajaxChangeStyle()
+{
+ var win = document.getElementById("cn2");
+ win.innerHTML = ' \
+ \
+ ';
+ ajaxGetStyles(ENANO_CURRENT_THEME);
+ jws.openWin('root2', 340, 300);
+}
+
+function ajaxGetStyles(id) {
+ setAjaxLoading();
+ ajaxGet(stdAjaxPrefix+'&_mode=getstyles&id='+id, function() {
+ if(ajax.readyState == 4) {
+ unsetAjaxLoading();
+ eval(ajax.responseText);
+ html = 'And a style...
';
+ document.getElementById('styleSelector').innerHTML = html;
+ document.getElementById('styleSubmitter').style.display = 'inline';
+ }
+ });
+}
+
+function ajaxSwapCSS() {
+ setAjaxLoading();
+ if(_css) {
+ document.getElementById('mdgCss').href = main_css;
+ _css = false;
+ } else {
+ document.getElementById('mdgCss').href = print_css;
+ _css = true;
+ }
+ unsetAjaxLoading();
+ menuOff();
+}
+
+function ajaxSetPassword()
+{
+ pass = hex_sha1(document.getElementById('mdgPassSetField').value);
+ setAjaxLoading();
+ ajaxPost(stdAjaxPrefix+'&_mode=setpass', 'password='+pass, function()
+ {
+ unsetAjaxLoading();
+ if(ajax.readyState==4)
+ {
+ alert(ajax.responseText);
+ }
+ }
+ );
+}
+
+function ajaxWikiEditHelp()
+{
+ jws.openWin('root3', 640, 480);
+ setAjaxLoading();
+ ajaxGet(stdAjaxPrefix+'&_mode=wikihelp', function() {
+ if(ajax.readyState==4)
+ {
+ unsetAjaxLoading();
+ document.getElementById('cn3').innerHTML = ajax.responseText;
+ }
+ });
+}
+
+function ajaxStartLogin()
+{
+ ajaxPromptAdminAuth(function(k) {
+ window.location.reload();
+ }, 2);
+}
+
+function ajaxAdminPage()
+{
+ if ( auth_level < USER_LEVEL_ADMIN )
+ {
+ ajaxPromptAdminAuth(function(k) {
+ ENANO_SID = k;
+ auth_level = USER_LEVEL_ADMIN;
+ var loc = String(window.location + '');
+ window.location = append_sid(loc);
+ var loc = makeUrlNS('Special', 'Administration', 'module=' + namespace_list['Admin'] + 'PageManager&source=ajax&page_id=' + ajaxEscape(title));
+ if ( (ENANO_SID + ' ').length > 1 )
+ window.location = loc;
+ }, 9);
+ return false;
+ }
+ var loc = makeUrlNS('Special', 'Administration', 'module=' + namespace_list['Admin'] + 'PageManager&source=ajax&page_id=' + ajaxEscape(title));
+ window.location = loc;
+}
+