diff -r de56132c008d -r bdac73ed481e includes/clientside/static/ajax.js --- a/includes/clientside/static/ajax.js Sun Mar 28 21:49:26 2010 -0400 +++ b/includes/clientside/static/ajax.js Sun Mar 28 23:10:46 2010 -0400 @@ -4,602 +4,602 @@ window.ajaxReset = function() { - // IE <6 pseudo-compatibility - if ( KILL_SWITCH ) - return true; - var ns_id = strToPageID(physical_title); - if ( ns_id[1] == 'Special' || ns_id[1] == 'Admin' ) - return false; - enableUnload(); - setAjaxLoading(); - var redir = ( disable_redirect ) ? '&redirect=no' : ''; - ajaxGet(append_sid(scriptPath + '/ajax.php?title=' + physical_title +'&_mode=getpage&noheaders' + redir), function(ajax) { - // Allow for 404 here, it's generated by the "page not found" error message - // (even with noheaders specified, probably should be fixed) - if ( ajax.readyState == 4 && ( ajax.status == 200 || ajax.status == 404 ) ) { - unsetAjaxLoading(); - document.getElementById('ajaxEditContainer').innerHTML = ajax.responseText; - selectButtonMajor('article'); - unselectAllButtonsMinor(); - // if we're on a userpage, call the onload function to rebuild the tabs - if ( typeof(userpage_onload) == 'function' ) - { - window.userpage_blocks = []; - userpage_onload(); - } - } - }); + // IE <6 pseudo-compatibility + if ( KILL_SWITCH ) + return true; + var ns_id = strToPageID(physical_title); + if ( ns_id[1] == 'Special' || ns_id[1] == 'Admin' ) + return false; + enableUnload(); + setAjaxLoading(); + var redir = ( disable_redirect ) ? '&redirect=no' : ''; + ajaxGet(append_sid(scriptPath + '/ajax.php?title=' + physical_title +'&_mode=getpage&noheaders' + redir), function(ajax) { + // Allow for 404 here, it's generated by the "page not found" error message + // (even with noheaders specified, probably should be fixed) + if ( ajax.readyState == 4 && ( ajax.status == 200 || ajax.status == 404 ) ) { + unsetAjaxLoading(); + document.getElementById('ajaxEditContainer').innerHTML = ajax.responseText; + selectButtonMajor('article'); + unselectAllButtonsMinor(); + // if we're on a userpage, call the onload function to rebuild the tabs + if ( typeof(userpage_onload) == 'function' ) + { + window.userpage_blocks = []; + userpage_onload(); + } + } + }); } // Miscellaneous AJAX applets window.ajaxProtect = function(existing_level) { - // IE <6 pseudo-compatibility - if ( KILL_SWITCH ) - return true; - - // touch this variable to allow it to be used in child functions - void(existing_level); - - // require re-auth - if ( auth_level <= USER_LEVEL_MEMBER ) - { - load_component(['login', 'fadefilter', 'flyin', 'jquery', 'jquery-ui', 'crypto', 'messagebox']); - ajaxDynamicReauth(function(key) - { - ajaxProtect(existing_level); - }, user_level); - - return false; - } - - load_component(['messagebox', 'jquery', 'jquery-ui', 'l10n', 'fadefilter', 'flyin']); - - // preload language - $lang.get('meta_meta'); - - var mp = miniPrompt(function(parent) - { - var icon_full = gen_sprite_html(cdnPath + '/images/protect-icons.png', 22, 22, 0, 0); - var icon_semi = gen_sprite_html(cdnPath + '/images/protect-icons.png', 22, 22, 22, 0); - var icon_none = gen_sprite_html(cdnPath + '/images/protect-icons.png', 22, 22, 44, 0); - - $(parent).append('

' + $lang.get('onpage_protect_heading') + '

'); - $(parent).append('

' + $lang.get('onpage_protect_msg_select_level') + '

'); - - $(parent).append('
'); - $(parent).append('
' + $lang.get('onpage_protect_btn_full_hint') + '
'); - $(parent).append('
'); - $(parent).append('
' + $lang.get('onpage_protect_btn_semi_hint') + '
'); - $(parent).append('
'); - $(parent).append('
' + $lang.get('onpage_protect_btn_none_hint') + '
'); - - $(parent).append('
' + $lang.get('onpage_protect_lbl_reason') + '
' + $lang.get('onpage_protect_lbl_reason_hint') + '
'); - - $(parent).append('

' + $lang.get('onpage_protect_btn_submit') + ' ' + $lang.get('etc_cancel') + '

'); - - $('.protectlevel', parent).css('line-height', '22px'); - $('h3', parent).css('text-align', 'center'); - $('.protectlevel_hint', parent) - .css('font-size', 'smaller') - .css('margin-left', '52px') - .hide(); - $('p.buttons', parent).css('margin-top', '15px').css('text-align', 'center'); - - if ( typeof(existing_level) == 'number' ) - { - $('#protect_level_' + existing_level, parent).attr('checked', 'checked'); - $('#protect_level_' + existing_level + '_hint', parent).show(); - $('#protect_level_' + existing_level, parent).parent().append(' ' + $lang.get('onpage_protect_lbl_current') + ''); - } - - $('input:radio', parent).click(function() - { - var mp = miniPromptGetParent(this); - $('.protectlevel_hint:visible', mp).hide('blind', 150); - $('#' + this.id + '_hint').show('blind', 150); - $('#protect_reason').focus(); - }); - $('input:text', parent).keyup(function(e) - { - if ( e.keyCode == 13 ) - ajaxProtectSubmit(this); - }); - }); + // IE <6 pseudo-compatibility + if ( KILL_SWITCH ) + return true; + + // touch this variable to allow it to be used in child functions + void(existing_level); + + // require re-auth + if ( auth_level <= USER_LEVEL_MEMBER ) + { + load_component(['login', 'fadefilter', 'flyin', 'jquery', 'jquery-ui', 'crypto', 'messagebox']); + ajaxDynamicReauth(function(key) + { + ajaxProtect(existing_level); + }, user_level); + + return false; + } + + load_component(['messagebox', 'jquery', 'jquery-ui', 'l10n', 'fadefilter', 'flyin']); + + // preload language + $lang.get('meta_meta'); + + var mp = miniPrompt(function(parent) + { + var icon_full = gen_sprite_html(cdnPath + '/images/protect-icons.png', 22, 22, 0, 0); + var icon_semi = gen_sprite_html(cdnPath + '/images/protect-icons.png', 22, 22, 22, 0); + var icon_none = gen_sprite_html(cdnPath + '/images/protect-icons.png', 22, 22, 44, 0); + + $(parent).append('

' + $lang.get('onpage_protect_heading') + '

'); + $(parent).append('

' + $lang.get('onpage_protect_msg_select_level') + '

'); + + $(parent).append('
'); + $(parent).append('
' + $lang.get('onpage_protect_btn_full_hint') + '
'); + $(parent).append('
'); + $(parent).append('
' + $lang.get('onpage_protect_btn_semi_hint') + '
'); + $(parent).append('
'); + $(parent).append('
' + $lang.get('onpage_protect_btn_none_hint') + '
'); + + $(parent).append('
' + $lang.get('onpage_protect_lbl_reason') + '
' + $lang.get('onpage_protect_lbl_reason_hint') + '
'); + + $(parent).append('

' + $lang.get('onpage_protect_btn_submit') + ' ' + $lang.get('etc_cancel') + '

'); + + $('.protectlevel', parent).css('line-height', '22px'); + $('h3', parent).css('text-align', 'center'); + $('.protectlevel_hint', parent) + .css('font-size', 'smaller') + .css('margin-left', '52px') + .hide(); + $('p.buttons', parent).css('margin-top', '15px').css('text-align', 'center'); + + if ( typeof(existing_level) == 'number' ) + { + $('#protect_level_' + existing_level, parent).attr('checked', 'checked'); + $('#protect_level_' + existing_level + '_hint', parent).show(); + $('#protect_level_' + existing_level, parent).parent().append(' ' + $lang.get('onpage_protect_lbl_current') + ''); + } + + $('input:radio', parent).click(function() + { + var mp = miniPromptGetParent(this); + $('.protectlevel_hint:visible', mp).hide('blind', 150); + $('#' + this.id + '_hint').show('blind', 150); + $('#protect_reason').focus(); + }); + $('input:text', parent).keyup(function(e) + { + if ( e.keyCode == 13 ) + ajaxProtectSubmit(this); + }); + }); } window.ajaxProtectSubmit = function(el) { - var mp = miniPromptGetParent(el); - - var reason = trim($('#protect_reason', mp).attr('value')); - if ( reason == '' ) - { - var oldbg = $('#protect_reason').css('background-color'); - if ( jQuery.fx.off ) - { - $('#protect_reason').css('background-color', '#a00'); - setTimeout(function() - { - $('#protect_reason').css('background-color', oldbg); - }, 1000); - } - else - { - $('#protect_reason').css('background-color', '#a00').animate({ backgroundColor: oldbg }, 1000); - } - return false; - } - - var level = 0; - if ( $('#protect_level_1', mp).attr('checked') ) - level = 1; - if ( $('#protect_level_2', mp).attr('checked') ) - level = 2; - - var whitey = whiteOutMiniPrompt(mp); - $.post(stdAjaxPrefix + '&_mode=protect', { level: level, reason: reason }, function(response, statustext) - { - if ( response.success ) - { - whiteOutReportSuccess(whitey); - // update protect button - var btn = $('#tb_ajax_protect_btn').get(0); - btn.level = level; - btn.setAttribute('onclick', null); - btn.onclick = null; - $(btn).click(function() - { - ajaxProtect(this.level); - return false; - }); - var status = ''; - switch(level) - { - case 1: status = $lang.get('onpage_btn_protect_on'); break; - case 0: status = $lang.get('onpage_btn_protect_off'); break; - case 2: status = $lang.get('onpage_btn_protect_semi'); break; - } - $('#tb_ajax_protect_status').text(status); - } - else - { - whiteOutReportFailure(whitey); - alert($lang.get('page_err_' + response.error)); - } - }, 'json'); + var mp = miniPromptGetParent(el); + + var reason = trim($('#protect_reason', mp).attr('value')); + if ( reason == '' ) + { + var oldbg = $('#protect_reason').css('background-color'); + if ( jQuery.fx.off ) + { + $('#protect_reason').css('background-color', '#a00'); + setTimeout(function() + { + $('#protect_reason').css('background-color', oldbg); + }, 1000); + } + else + { + $('#protect_reason').css('background-color', '#a00').animate({ backgroundColor: oldbg }, 1000); + } + return false; + } + + var level = 0; + if ( $('#protect_level_1', mp).attr('checked') ) + level = 1; + if ( $('#protect_level_2', mp).attr('checked') ) + level = 2; + + var whitey = whiteOutMiniPrompt(mp); + $.post(stdAjaxPrefix + '&_mode=protect', { level: level, reason: reason }, function(response, statustext) + { + if ( response.success ) + { + whiteOutReportSuccess(whitey); + // update protect button + var btn = $('#tb_ajax_protect_btn').get(0); + btn.level = level; + btn.setAttribute('onclick', null); + btn.onclick = null; + $(btn).click(function() + { + ajaxProtect(this.level); + return false; + }); + var status = ''; + switch(level) + { + case 1: status = $lang.get('onpage_btn_protect_on'); break; + case 0: status = $lang.get('onpage_btn_protect_off'); break; + case 2: status = $lang.get('onpage_btn_protect_semi'); break; + } + $('#tb_ajax_protect_status').text(status); + } + else + { + whiteOutReportFailure(whitey); + alert($lang.get('page_err_' + response.error)); + } + }, 'json'); } window.ajaxRename = function() { - // IE <6 pseudo-compatibility - if ( KILL_SWITCH ) - return true; - - // updated - 1.1.4 to use miniPrompt - load_component(['l10n', 'messagebox', 'flyin', 'fadefilter']); - miniPrompt(ajaxRenameConstructDialog); + // IE <6 pseudo-compatibility + if ( KILL_SWITCH ) + return true; + + // updated - 1.1.4 to use miniPrompt + load_component(['l10n', 'messagebox', 'flyin', 'fadefilter']); + miniPrompt(ajaxRenameConstructDialog); } var ajaxRenameConstructDialog = function(div) { - // title - var heading = document.createElement('h3'); - heading.appendChild(document.createTextNode($lang.get('ajax_rename_prompt_short'))); - div.appendChild(heading); - - // form - var form = document.createElement('form'); - form.action = 'javascript:void(0);'; - - // box - var box = document.createElement('input'); - box.size = '43'; - box.style.width = '100%'; - form.appendChild(box); - div.appendChild(form); - - // notice - var notice = document.createElement('small'); - notice.appendChild(document.createTextNode($lang.get('ajax_rename_notice'))); - div.appendChild(notice); - - // button area - var btndiv = document.createElement('div'); - btndiv.className = 'mp-buttons'; - - // buttons - var btn_submit = document.createElement('a'); - btn_submit.href = '#'; - btn_submit.appendChild(document.createTextNode($lang.get('etc_go'))); - btn_submit.className = 'abutton abutton_green'; - - var btn_cancel = document.createElement('a'); - btn_cancel.href = '#'; - btn_cancel.appendChild(document.createTextNode($lang.get('etc_cancel'))); - btn_cancel.className = 'abutton'; - - btndiv.appendChild(btn_submit); - btndiv.appendChild(document.createTextNode(' | ')); - btndiv.appendChild(btn_cancel); - div.appendChild(btndiv); - - // events - btn_submit.onclick = function() - { - ajaxRenameSubmit(this); - return false; - } - btn_cancel.onclick = function() - { - miniPromptDestroy(this); - return false; - } - form.onsubmit = function() - { - ajaxRenameSubmit(this); - return false; - } - - setTimeout(function() - { - box.focus(); - }, ( aclDisableTransitionFX ? 200 : 750 )); + // title + var heading = document.createElement('h3'); + heading.appendChild(document.createTextNode($lang.get('ajax_rename_prompt_short'))); + div.appendChild(heading); + + // form + var form = document.createElement('form'); + form.action = 'javascript:void(0);'; + + // box + var box = document.createElement('input'); + box.size = '43'; + box.style.width = '100%'; + form.appendChild(box); + div.appendChild(form); + + // notice + var notice = document.createElement('small'); + notice.appendChild(document.createTextNode($lang.get('ajax_rename_notice'))); + div.appendChild(notice); + + // button area + var btndiv = document.createElement('div'); + btndiv.className = 'mp-buttons'; + + // buttons + var btn_submit = document.createElement('a'); + btn_submit.href = '#'; + btn_submit.appendChild(document.createTextNode($lang.get('etc_go'))); + btn_submit.className = 'abutton abutton_green'; + + var btn_cancel = document.createElement('a'); + btn_cancel.href = '#'; + btn_cancel.appendChild(document.createTextNode($lang.get('etc_cancel'))); + btn_cancel.className = 'abutton'; + + btndiv.appendChild(btn_submit); + btndiv.appendChild(document.createTextNode(' | ')); + btndiv.appendChild(btn_cancel); + div.appendChild(btndiv); + + // events + btn_submit.onclick = function() + { + ajaxRenameSubmit(this); + return false; + } + btn_cancel.onclick = function() + { + miniPromptDestroy(this); + return false; + } + form.onsubmit = function() + { + ajaxRenameSubmit(this); + return false; + } + + setTimeout(function() + { + box.focus(); + }, ( aclDisableTransitionFX ? 200 : 750 )); } window.ajaxRenameSubmit = function(obj) { - var box = miniPromptGetParent(obj); - if ( !box ) - return false; - - var input = box.getElementsByTagName('input')[0]; - if ( !input ) - return false; - - var newname = input.value; - newname = trim(newname); - - if ( newname.length < 1 ) - { - alert($lang.get('ajax_rename_too_short')); - return false; - } - - if ( !newname ) - { - return false; - } - - var innerBox = getElementsByClassName(box, 'div', 'mp-body')[0]; - var whiteout = whiteOutElement(innerBox); - whiteout.style.width = ( $dynano(whiteout).Width() - 78 ) + 'px'; - whiteout.style.left = ( $dynano(whiteout).Left() + 44 ) + 'px'; - - ajaxPost(stdAjaxPrefix + '&_mode=rename', 'newtitle=' + ajaxEscape(newname), function(ajax) - { - if ( ajax.readyState == 4 && ajax.status == 200 ) - { - whiteout.parentNode.removeChild(whiteout); - var response = String(ajax.responseText); - if ( !check_json_response(response) ) - { - handle_invalid_json(response); - return false; - } - response = parseJSON(response); - if ( response.success ) - { - miniPromptDestroy(box, true); - ajaxRenameDoClientTransform(newname); - new MessageBox( MB_OK|MB_ICONINFORMATION, $lang.get('ajax_rename_success_title'), $lang.get('ajax_rename_success_body', { page_name_new: newname }) ); - mb_previously_had_darkener = false; - } - else - { - var errmsg = $lang.get('page_err_' + response.error); - alert(errmsg); - } - } - }, true); + var box = miniPromptGetParent(obj); + if ( !box ) + return false; + + var input = box.getElementsByTagName('input')[0]; + if ( !input ) + return false; + + var newname = input.value; + newname = trim(newname); + + if ( newname.length < 1 ) + { + alert($lang.get('ajax_rename_too_short')); + return false; + } + + if ( !newname ) + { + return false; + } + + var innerBox = getElementsByClassName(box, 'div', 'mp-body')[0]; + var whiteout = whiteOutElement(innerBox); + whiteout.style.width = ( $dynano(whiteout).Width() - 78 ) + 'px'; + whiteout.style.left = ( $dynano(whiteout).Left() + 44 ) + 'px'; + + ajaxPost(stdAjaxPrefix + '&_mode=rename', 'newtitle=' + ajaxEscape(newname), function(ajax) + { + if ( ajax.readyState == 4 && ajax.status == 200 ) + { + whiteout.parentNode.removeChild(whiteout); + var response = String(ajax.responseText); + if ( !check_json_response(response) ) + { + handle_invalid_json(response); + return false; + } + response = parseJSON(response); + if ( response.success ) + { + miniPromptDestroy(box, true); + ajaxRenameDoClientTransform(newname); + new MessageBox( MB_OK|MB_ICONINFORMATION, $lang.get('ajax_rename_success_title'), $lang.get('ajax_rename_success_body', { page_name_new: newname }) ); + mb_previously_had_darkener = false; + } + else + { + var errmsg = $lang.get('page_err_' + response.error); + alert(errmsg); + } + } + }, true); } window.ajaxRenameDoClientTransform = function(newname) { - var obj = document.getElementById('h2PageName'); - if ( obj ) - { - obj.firstChild.nodeValue = newname; - } - document.title = newname; + var obj = document.getElementById('h2PageName'); + if ( obj ) + { + obj.firstChild.nodeValue = newname; + } + document.title = newname; } window.ajaxDeletePage = function() { - // IE <6 pseudo-compatibility - if ( KILL_SWITCH ) - return true; - - // require re-auth - if ( auth_level <= USER_LEVEL_MEMBER ) - { - load_component(['login', 'fadefilter', 'flyin', 'jquery', 'jquery-ui', 'crypto', 'messagebox']); - ajaxDynamicReauth(function(key) - { - ajaxDeletePage(); - }, user_level); - - return false; - } - - load_component(['l10n', 'messagebox', 'jquery', 'jquery-ui', 'fadefilter', 'flyin']); - - // stage 1: prompt for reason and confirmation - miniPrompt(function(parent) - { - // heading/title - var h3 = document.createElement('h3'); - h3.appendChild(document.createTextNode($lang.get('ajax_delete_header'))); - parent.appendChild(h3); - - // "please enter your reason" - var p1 = document.createElement('p'); - p1.appendChild(document.createTextNode($lang.get('ajax_delete_prompt_reason'))); - parent.appendChild(p1); - - // textbox + label thereof - var p2 = document.createElement('p'); - var tb = document.createElement('input'); - var dl = document.createElement('label'); - - tb.type = 'text'; - tb.size = '30'; - tb.onkeyup = function(e) - { - if ( e ) - if ( e.keyCode ) - if ( e.keyCode == 13 ) - { - if ( ajaxDeletePageSubmit(this) ) - { - miniPromptDestroy(this); - } - } - else if ( e.keyCode == 27 ) - { - miniPromptDestroy(this); - } - } - - dl.appendChild(document.createTextNode($lang.get('ajax_delete_lbl_reason') + ' ')); - dl.appendChild(tb); - p2.appendChild(dl); - parent.appendChild(p2); - - // notice underneath - var p3 = document.createElement('p'); - p3.style.fontSize = 'smaller'; - p3.appendChild(document.createTextNode($lang.get('ajax_delete_msg_confirm'))); - parent.appendChild(p3); - - // confirmation + submit/cancel (structure) - var divleft = document.createElement('div'); - var divright = document.createElement('div'); - var divclear = document.createElement('div'); - - divleft.style.cssFloat = 'left'; - divleft.style.styleFloat = 'left'; - - divright.style.cssFloat = 'right'; - divright.style.styleFloat = 'right'; - - divclear.style.clear = 'both'; - - parent.appendChild(divleft); - parent.appendChild(divright); - parent.appendChild(divclear); - - // confirmation + submit/cancel (controls) - var cb = document.createElement('input'); - var cl = document.createElement('label'); - - cb.type = 'checkbox'; - cb.checked = false; - - // a bit of a hack here, doesn't seem to work in fx3 - cb.onblur = function(e) - { - var parent = this.parentNode.parentNode.parentNode; - var submitter = parent.getElementsByTagName('a')[0]; - if ( submitter ) - submitter.focus(); - } - - cl.appendChild(cb); - cl.appendChild(document.createTextNode(' ' + $lang.get('ajax_delete_lbl_confirm'))); - divleft.appendChild(cl); - - var btn_submit = document.createElement('a'); - btn_submit.className = 'abutton abutton_red'; - btn_submit.href = '#'; - btn_submit.appendChild(document.createTextNode($lang.get('ajax_delete_btn_delete'))); - btn_submit.onclick = function() - { - if ( ajaxDeletePageSubmit(this) ) - { - miniPromptDestroy(this); - } - return false; - } - - var btn_cancel = document.createElement('a'); - btn_cancel.className = 'abutton'; - btn_cancel.href = '#'; - btn_cancel.appendChild(document.createTextNode($lang.get('etc_cancel'))); - btn_cancel.onclick = function() - { - miniPromptDestroy(this); - return false; - } - - divright.appendChild(btn_submit); - divright.appendChild(document.createTextNode(' ')); - divright.appendChild(btn_cancel); - - var timeout = ( aclDisableTransitionFX ) ? 10 : 1000; - setTimeout(function() - { - tb.focus(); - }, timeout); - }); + // IE <6 pseudo-compatibility + if ( KILL_SWITCH ) + return true; + + // require re-auth + if ( auth_level <= USER_LEVEL_MEMBER ) + { + load_component(['login', 'fadefilter', 'flyin', 'jquery', 'jquery-ui', 'crypto', 'messagebox']); + ajaxDynamicReauth(function(key) + { + ajaxDeletePage(); + }, user_level); + + return false; + } + + load_component(['l10n', 'messagebox', 'jquery', 'jquery-ui', 'fadefilter', 'flyin']); + + // stage 1: prompt for reason and confirmation + miniPrompt(function(parent) + { + // heading/title + var h3 = document.createElement('h3'); + h3.appendChild(document.createTextNode($lang.get('ajax_delete_header'))); + parent.appendChild(h3); + + // "please enter your reason" + var p1 = document.createElement('p'); + p1.appendChild(document.createTextNode($lang.get('ajax_delete_prompt_reason'))); + parent.appendChild(p1); + + // textbox + label thereof + var p2 = document.createElement('p'); + var tb = document.createElement('input'); + var dl = document.createElement('label'); + + tb.type = 'text'; + tb.size = '30'; + tb.onkeyup = function(e) + { + if ( e ) + if ( e.keyCode ) + if ( e.keyCode == 13 ) + { + if ( ajaxDeletePageSubmit(this) ) + { + miniPromptDestroy(this); + } + } + else if ( e.keyCode == 27 ) + { + miniPromptDestroy(this); + } + } + + dl.appendChild(document.createTextNode($lang.get('ajax_delete_lbl_reason') + ' ')); + dl.appendChild(tb); + p2.appendChild(dl); + parent.appendChild(p2); + + // notice underneath + var p3 = document.createElement('p'); + p3.style.fontSize = 'smaller'; + p3.appendChild(document.createTextNode($lang.get('ajax_delete_msg_confirm'))); + parent.appendChild(p3); + + // confirmation + submit/cancel (structure) + var divleft = document.createElement('div'); + var divright = document.createElement('div'); + var divclear = document.createElement('div'); + + divleft.style.cssFloat = 'left'; + divleft.style.styleFloat = 'left'; + + divright.style.cssFloat = 'right'; + divright.style.styleFloat = 'right'; + + divclear.style.clear = 'both'; + + parent.appendChild(divleft); + parent.appendChild(divright); + parent.appendChild(divclear); + + // confirmation + submit/cancel (controls) + var cb = document.createElement('input'); + var cl = document.createElement('label'); + + cb.type = 'checkbox'; + cb.checked = false; + + // a bit of a hack here, doesn't seem to work in fx3 + cb.onblur = function(e) + { + var parent = this.parentNode.parentNode.parentNode; + var submitter = parent.getElementsByTagName('a')[0]; + if ( submitter ) + submitter.focus(); + } + + cl.appendChild(cb); + cl.appendChild(document.createTextNode(' ' + $lang.get('ajax_delete_lbl_confirm'))); + divleft.appendChild(cl); + + var btn_submit = document.createElement('a'); + btn_submit.className = 'abutton abutton_red'; + btn_submit.href = '#'; + btn_submit.appendChild(document.createTextNode($lang.get('ajax_delete_btn_delete'))); + btn_submit.onclick = function() + { + if ( ajaxDeletePageSubmit(this) ) + { + miniPromptDestroy(this); + } + return false; + } + + var btn_cancel = document.createElement('a'); + btn_cancel.className = 'abutton'; + btn_cancel.href = '#'; + btn_cancel.appendChild(document.createTextNode($lang.get('etc_cancel'))); + btn_cancel.onclick = function() + { + miniPromptDestroy(this); + return false; + } + + divright.appendChild(btn_submit); + divright.appendChild(document.createTextNode(' ')); + divright.appendChild(btn_cancel); + + var timeout = ( aclDisableTransitionFX ) ? 10 : 1000; + setTimeout(function() + { + tb.focus(); + }, timeout); + }); } window.ajaxDeletePageSubmit = function(prompt_obj) { - prompt_obj = miniPromptGetParent(prompt_obj).childNodes[1]; - var inputs = prompt_obj.getElementsByTagName('input'); - var reason = inputs[0]; - var confirm = inputs[1]; - - if ( trim(reason.value) == '' ) - { - // flash the background of the reason entry - $(reason.parentNode).effect("highlight", {}, 1000); - return false; - } - - if ( !confirm.checked ) - { - // flash the background of the confirm checkbox - $(confirm.parentNode).effect("highlight", {}, 1000); - return false; - } - - prompt_obj.innerHTML = 'loading'; - - // tenemos la confirmación y la razón - borre la página. - setAjaxLoading(); - ajaxPost(stdAjaxPrefix + '&_mode=deletepage', 'reason=' + ajaxEscape(trim(reason.value)), function(ajax) - { - if ( ajax.readyState == 4 && ajax.status == 200 ) - { - unsetAjaxLoading(); - - // show the response in the same prompt window - prompt_obj.style.textAlign = 'center'; - prompt_obj.innerHTML = ''; - - var p1 = document.createElement('div'); - p1.style.marginBottom = '15px'; - p1.appendChild(document.createTextNode(ajax.responseText)); - prompt_obj.appendChild(p1); - - var p2 = document.createElement('p'); - var a = document.createElement('a'); - a.className = 'abutton'; - a.href = '#'; - a.appendChild(document.createTextNode($lang.get('etc_close'))); - a.onclick = function() - { - miniPromptDestroy(this); - window.location.reload(); - return false; - } - p2.appendChild(a); - prompt_obj.appendChild(a); - - a.focus(); - } - }); - - return true; + prompt_obj = miniPromptGetParent(prompt_obj).childNodes[1]; + var inputs = prompt_obj.getElementsByTagName('input'); + var reason = inputs[0]; + var confirm = inputs[1]; + + if ( trim(reason.value) == '' ) + { + // flash the background of the reason entry + $(reason.parentNode).effect("highlight", {}, 1000); + return false; + } + + if ( !confirm.checked ) + { + // flash the background of the confirm checkbox + $(confirm.parentNode).effect("highlight", {}, 1000); + return false; + } + + prompt_obj.innerHTML = 'loading'; + + // tenemos la confirmación y la razón - borre la página. + setAjaxLoading(); + ajaxPost(stdAjaxPrefix + '&_mode=deletepage', 'reason=' + ajaxEscape(trim(reason.value)), function(ajax) + { + if ( ajax.readyState == 4 && ajax.status == 200 ) + { + unsetAjaxLoading(); + + // show the response in the same prompt window + prompt_obj.style.textAlign = 'center'; + prompt_obj.innerHTML = ''; + + var p1 = document.createElement('div'); + p1.style.marginBottom = '15px'; + p1.appendChild(document.createTextNode(ajax.responseText)); + prompt_obj.appendChild(p1); + + var p2 = document.createElement('p'); + var a = document.createElement('a'); + a.className = 'abutton'; + a.href = '#'; + a.appendChild(document.createTextNode($lang.get('etc_close'))); + a.onclick = function() + { + miniPromptDestroy(this); + window.location.reload(); + return false; + } + p2.appendChild(a); + prompt_obj.appendChild(a); + + a.focus(); + } + }); + + return true; } window.ajaxDelVote = function() { - load_component(['l10n', 'messagebox', 'flyin', 'fadefilter']); - - // IE <6 pseudo-compatibility - if ( KILL_SWITCH ) - return true; - miniPromptMessage({ - title: $lang.get('ajax_delvote_confirm_title'), - message: $lang.get('ajax_delvote_confirm_body'), - buttons: [ - { - text: $lang.get('ajax_delvote_btn_submit'), - color: 'red', - style: { - fontWeight: 'bold' - }, - onclick: function(e) - { - miniPromptDestroy(this); - setAjaxLoading(); - ajaxGet(stdAjaxPrefix+'&_mode=delvote', function(ajax) { - if ( ajax.readyState == 4 && ajax.status == 200 ) { - unsetAjaxLoading(); - alert(ajax.responseText); - } - }, true); - } - }, - { - text: $lang.get('etc_cancel'), - onclick: function(e) - { - miniPromptDestroy(this); - } - } - ] - }); + load_component(['l10n', 'messagebox', 'flyin', 'fadefilter']); + + // IE <6 pseudo-compatibility + if ( KILL_SWITCH ) + return true; + miniPromptMessage({ + title: $lang.get('ajax_delvote_confirm_title'), + message: $lang.get('ajax_delvote_confirm_body'), + buttons: [ + { + text: $lang.get('ajax_delvote_btn_submit'), + color: 'red', + style: { + fontWeight: 'bold' + }, + onclick: function(e) + { + miniPromptDestroy(this); + setAjaxLoading(); + ajaxGet(stdAjaxPrefix+'&_mode=delvote', function(ajax) { + if ( ajax.readyState == 4 && ajax.status == 200 ) { + unsetAjaxLoading(); + alert(ajax.responseText); + } + }, true); + } + }, + { + text: $lang.get('etc_cancel'), + onclick: function(e) + { + miniPromptDestroy(this); + } + } + ] + }); } window.ajaxResetDelVotes = function() { - load_component(['l10n', 'messagebox', 'flyin', 'fadefilter']); - - // IE <6 pseudo-compatibility - if ( KILL_SWITCH ) - return true; - miniPromptMessage({ - title: $lang.get('ajax_delvote_reset_confirm_title'), - message: $lang.get('ajax_delvote_reset_confirm_body'), - buttons: [ - { - text: $lang.get('ajax_delvote_reset_btn_submit'), - color: 'red', - style: { - fontWeight: 'bold' - }, - onclick: function(e) - { - var box = miniPromptGetParent(this); - var whitey = whiteOutMiniPrompt(box); - ajaxGet(stdAjaxPrefix+'&_mode=resetdelvotes', function(ajax) { - if ( ajax.readyState == 4 && ajax.status == 200 ) { - whiteOutReportSuccess(whitey); - - item = document.getElementById('mdgDeleteVoteNoticeBox'); - if(item) - { - opacity('mdgDeleteVoteNoticeBox', 100, 0, 1000); - setTimeout("document.getElementById('mdgDeleteVoteNoticeBox').style.display = 'none';", 1000); - } - } - }, true); - } - }, - { - text: $lang.get('etc_cancel'), - onclick: function(e) - { - miniPromptDestroy(this); - } - } - ] - }); + load_component(['l10n', 'messagebox', 'flyin', 'fadefilter']); + + // IE <6 pseudo-compatibility + if ( KILL_SWITCH ) + return true; + miniPromptMessage({ + title: $lang.get('ajax_delvote_reset_confirm_title'), + message: $lang.get('ajax_delvote_reset_confirm_body'), + buttons: [ + { + text: $lang.get('ajax_delvote_reset_btn_submit'), + color: 'red', + style: { + fontWeight: 'bold' + }, + onclick: function(e) + { + var box = miniPromptGetParent(this); + var whitey = whiteOutMiniPrompt(box); + ajaxGet(stdAjaxPrefix+'&_mode=resetdelvotes', function(ajax) { + if ( ajax.readyState == 4 && ajax.status == 200 ) { + whiteOutReportSuccess(whitey); + + item = document.getElementById('mdgDeleteVoteNoticeBox'); + if(item) + { + opacity('mdgDeleteVoteNoticeBox', 100, 0, 1000); + setTimeout("document.getElementById('mdgDeleteVoteNoticeBox').style.display = 'none';", 1000); + } + } + }, true); + } + }, + { + text: $lang.get('etc_cancel'), + onclick: function(e) + { + miniPromptDestroy(this); + } + } + ] + }); } // Editing/saving category information @@ -608,1181 +608,1181 @@ window.ajaxCatEdit = function() { - // IE <6 pseudo-compatibility - if ( KILL_SWITCH ) - return true; - setAjaxLoading(); - ajaxGet(stdAjaxPrefix+'&_mode=catedit', function(ajax) { - if ( ajax.readyState == 4 && ajax.status == 200 ) { - unsetAjaxLoading(); - edit_open = false; - eval(ajax.responseText); - } - }); + // IE <6 pseudo-compatibility + if ( KILL_SWITCH ) + return true; + setAjaxLoading(); + ajaxGet(stdAjaxPrefix+'&_mode=catedit', function(ajax) { + if ( ajax.readyState == 4 && ajax.status == 200 ) { + unsetAjaxLoading(); + edit_open = false; + eval(ajax.responseText); + } + }); } window.ajaxCatSave = function() { - // IE <6 pseudo-compatibility - if ( KILL_SWITCH ) - return true; - if(!catlist) - { - alert('Var catlist has no properties'); - return; - } - query=''; - for(i=0;i= timelist.length ) break; - arrDiff2Buttons[i].style.display = 'none'; - } + arrDiff1Buttons = getElementsByClassName(document, 'input', 'clsDiff1Radio'); + arrDiff2Buttons = getElementsByClassName(document, 'input', 'clsDiff2Radio'); + var len = arrDiff1Buttons.length; + if ( len < 1 ) + return false; + timelist = new Array(); + for ( var i = 0; i < len; i++ ) + { + timelist.push( arrDiff2Buttons[i].id.substr(6) ); + } + timelist.push( arrDiff1Buttons[len-1].id.substr(6) ); + delete(timelist.toJSONString); + for ( var i = 1; i < timelist.length-1; i++ ) + { + if ( i >= timelist.length ) break; + arrDiff2Buttons[i].style.display = 'none'; + } } window.selectDiff1Button = function(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); - } - } + 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); + } + } } window.selectDiff2Button = function(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); - } - } + 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); + } + } } window.ajaxHistDiff = function() { - // IE <6 pseudo-compatibility - if ( KILL_SWITCH ) - return true; - 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(ajax) - { - if ( ajax.readyState == 4 && ajax.status == 200 ) - { - unsetAjaxLoading(); - document.getElementById('ajaxEditContainer').innerHTML = ajax.responseText; - } - }); + // IE <6 pseudo-compatibility + if ( KILL_SWITCH ) + return true; + 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(ajax) + { + if ( ajax.readyState == 4 && ajax.status == 200 ) + { + unsetAjaxLoading(); + document.getElementById('ajaxEditContainer').innerHTML = ajax.responseText; + } + }); } // Change the user's preferred style/theme window.ajaxChangeStyle = function() { - // IE <6 pseudo-compatibility - if ( KILL_SWITCH ) - return true; - load_component(['l10n', 'fadefilter', 'jquery', 'jquery-ui']); - - // force string fetch - $lang.get('etc_cancel'); - - // preload some images - var i1 = new Image(); - i1.src = cdnPath + '/images/loading-big.gif'; - var i2 = new Image(); - i2.src = cdnPath + '/images/check-large.png'; - - darken(true, 70, 'theme-selector-shade'); - - $('body').append('
'); - $('#theme-selector-wrapper') - .css('top', String(getScrollOffset()) + 'px') - .css('left', 0) - .css('z-index', String( getHighestZ() + 20 )); - - $.get(stdAjaxPrefix + '&_mode=theme_list', {}, function(data, status) - { - $('#theme-selector-inner .theme-selector-spinner').fadeOut(650); - $('#theme-selector-body').animate({ width: 728 }, 600, function() - { - // avoiding jQuery's fade functions because they insist on toggling display as well - if ( !aclDisableTransitionFX ) - changeOpac(0, 'theme-selector-inner'); - $('#theme-selector-inner').html('

'); - $('#theme-selector-inner > h3').text($lang.get('ajax_thmsel_lbl_choosetheme')); - $('#theme-selector-inner').append(''); - for ( var i = 0; i < data.length; i++ ) - { - var bgi = data[i].have_thumb ? cdnPath + '/themes/' + data[i].theme_id + '/preview.png' : cdnPath + '/images/themepreview.png'; - var maxheight = getHeight() - 325; - $('#theme-selector-inner > ul') - .css('clip', 'rect(0px, auto, auto, 0px)') - .css('overflow', 'auto') - .css('max-height', maxheight) - .append('
  • '); - $('#theme-selector-inner li#theme_' + i + ' > a') - .css('background-image', 'url(' + bgi + ')') - .attr('enano:theme_id', data[i].theme_id); - $('#theme-selector-inner li#theme_' + i + ' > a > span') - .text(data[i].theme_name); - } - $('#theme-selector-inner').append(''); - $('#theme-selector-inner').append('
    ' + $lang.get('etc_cancel') + '
    '); - - $('#theme-selector-body').animate({ height: $('#theme-selector-inner').height() + 30 }, 600, function() - { - if ( !aclDisableTransitionFX ) - opacity('theme-selector-inner', 0, 100, 750); - }); - - $('#theme-selector-inner li a').click(function() - { - var theme_id = $(this).attr('enano:theme_id'); - $('span', this).html(' ').addClass('loading').fadeTo('fast', 0.6) - $.get(stdAjaxPrefix + '&_mode=get_styles', { theme_id: theme_id }, function(data, status) - { - if ( data.length > 1 ) - { - $('#theme-selector-inner').css('height', $('#theme-selector-inner').height()).fadeOut(600, function() - { - var div = document.createElement('div'); - if ( !aclDisableTransitionFX ) - domObjChangeOpac(0, div); - - $(div).attr('id', 'theme-selector-style-list').append('

    '); - $('h3', div).text($lang.get('ajax_thmsel_lbl_choosestyle')); - - for ( var i = 0; i < data.length; i++ ) - { - $(div).append('' + themeid_to_title(data[i]) + ''); - } - - $(div).append('
    ' + $lang.get('etc_cancel') + '
    '); - - if ( !aclDisableTransitionFX ) - changeOpac(0, 'theme-selector-style-list'); - $(this).html(div).show(); - - $('#theme-selector-body').animate({width: 300, height: $('#theme-selector-style-list').height() + 30}, 300, function() - { - if ( !aclDisableTransitionFX ) - opacity('theme-selector-style-list', 0, 100, 500); - }); - - $('.stylebtn').click(function() - { - ajaxChangeThemeSetLoading(); - $.post(stdAjaxPrefix + '&_mode=change_theme', { theme_id: theme_id, style_id: $(this).attr('enano:style_id') }, function(data, status) - { - if ( data.error ) - { - alert(data.error); - ajaxChangeStyleClose(); - return false; - } - ajaxChangeThemeShowSuccess(); - }, 2000); - - return false; - }); - }); - } - else - { - if ( !data[0] ) - { - alert('Didn\'t find any CSS files. :-/'); - ajaxChangeStyleClose(); - } - - $.post(stdAjaxPrefix + '&_mode=change_theme', { theme_id: theme_id, style_id: data[0] }, function(data, status) - { - if ( data.error ) - { - alert(data.error); - ajaxChangeStyleClose(); - return false; - } - ajaxChangeThemeShowSuccess(); - }, 'json'); - } - }, 'json'); - return false; - }); // click function - }); // animate - }, 'json'); // get + // IE <6 pseudo-compatibility + if ( KILL_SWITCH ) + return true; + load_component(['l10n', 'fadefilter', 'jquery', 'jquery-ui']); + + // force string fetch + $lang.get('etc_cancel'); + + // preload some images + var i1 = new Image(); + i1.src = cdnPath + '/images/loading-big.gif'; + var i2 = new Image(); + i2.src = cdnPath + '/images/check-large.png'; + + darken(true, 70, 'theme-selector-shade'); + + $('body').append('
    '); + $('#theme-selector-wrapper') + .css('top', String(getScrollOffset()) + 'px') + .css('left', 0) + .css('z-index', String( getHighestZ() + 20 )); + + $.get(stdAjaxPrefix + '&_mode=theme_list', {}, function(data, status) + { + $('#theme-selector-inner .theme-selector-spinner').fadeOut(650); + $('#theme-selector-body').animate({ width: 728 }, 600, function() + { + // avoiding jQuery's fade functions because they insist on toggling display as well + if ( !aclDisableTransitionFX ) + changeOpac(0, 'theme-selector-inner'); + $('#theme-selector-inner').html('

    '); + $('#theme-selector-inner > h3').text($lang.get('ajax_thmsel_lbl_choosetheme')); + $('#theme-selector-inner').append(''); + for ( var i = 0; i < data.length; i++ ) + { + var bgi = data[i].have_thumb ? cdnPath + '/themes/' + data[i].theme_id + '/preview.png' : cdnPath + '/images/themepreview.png'; + var maxheight = getHeight() - 325; + $('#theme-selector-inner > ul') + .css('clip', 'rect(0px, auto, auto, 0px)') + .css('overflow', 'auto') + .css('max-height', maxheight) + .append('
  • '); + $('#theme-selector-inner li#theme_' + i + ' > a') + .css('background-image', 'url(' + bgi + ')') + .attr('enano:theme_id', data[i].theme_id); + $('#theme-selector-inner li#theme_' + i + ' > a > span') + .text(data[i].theme_name); + } + $('#theme-selector-inner').append(''); + $('#theme-selector-inner').append('
    ' + $lang.get('etc_cancel') + '
    '); + + $('#theme-selector-body').animate({ height: $('#theme-selector-inner').height() + 30 }, 600, function() + { + if ( !aclDisableTransitionFX ) + opacity('theme-selector-inner', 0, 100, 750); + }); + + $('#theme-selector-inner li a').click(function() + { + var theme_id = $(this).attr('enano:theme_id'); + $('span', this).html(' ').addClass('loading').fadeTo('fast', 0.6) + $.get(stdAjaxPrefix + '&_mode=get_styles', { theme_id: theme_id }, function(data, status) + { + if ( data.length > 1 ) + { + $('#theme-selector-inner').css('height', $('#theme-selector-inner').height()).fadeOut(600, function() + { + var div = document.createElement('div'); + if ( !aclDisableTransitionFX ) + domObjChangeOpac(0, div); + + $(div).attr('id', 'theme-selector-style-list').append('

    '); + $('h3', div).text($lang.get('ajax_thmsel_lbl_choosestyle')); + + for ( var i = 0; i < data.length; i++ ) + { + $(div).append('' + themeid_to_title(data[i]) + ''); + } + + $(div).append('
    ' + $lang.get('etc_cancel') + '
    '); + + if ( !aclDisableTransitionFX ) + changeOpac(0, 'theme-selector-style-list'); + $(this).html(div).show(); + + $('#theme-selector-body').animate({width: 300, height: $('#theme-selector-style-list').height() + 30}, 300, function() + { + if ( !aclDisableTransitionFX ) + opacity('theme-selector-style-list', 0, 100, 500); + }); + + $('.stylebtn').click(function() + { + ajaxChangeThemeSetLoading(); + $.post(stdAjaxPrefix + '&_mode=change_theme', { theme_id: theme_id, style_id: $(this).attr('enano:style_id') }, function(data, status) + { + if ( data.error ) + { + alert(data.error); + ajaxChangeStyleClose(); + return false; + } + ajaxChangeThemeShowSuccess(); + }, 2000); + + return false; + }); + }); + } + else + { + if ( !data[0] ) + { + alert('Didn\'t find any CSS files. :-/'); + ajaxChangeStyleClose(); + } + + $.post(stdAjaxPrefix + '&_mode=change_theme', { theme_id: theme_id, style_id: data[0] }, function(data, status) + { + if ( data.error ) + { + alert(data.error); + ajaxChangeStyleClose(); + return false; + } + ajaxChangeThemeShowSuccess(); + }, 'json'); + } + }, 'json'); + return false; + }); // click function + }); // animate + }, 'json'); // get } window.ajaxChangeThemeSetLoading = function() { - $('#theme-selector-body').animate({width: 130, height: 130}); - $('#theme-selector-inner').empty().html('
    '); + $('#theme-selector-body').animate({width: 130, height: 130}); + $('#theme-selector-inner').empty().html('
    '); } window.ajaxChangeThemeShowSuccess = function() { - if ( aclDisableTransitionFX ) - { - $('#theme-selector-inner').empty(); - } - else - { - setTimeout(function() - { - $('#theme-selector-inner').empty(); - }, 10); - } - - $('#theme-selector-body').animate({width: 400, height: 300 }, 600, function() - { - $('#theme-selector-inner').append(' '); - $('#theme-selector-inner').append('

    ' + $lang.get('ajax_thmsel_msg_success') + '

    '); - $('#theme-selector-inner').append('
    ' + $lang.get('ajax_thmsel_btn_reload') + '
    '); - $('#theme-selector-inner').append('
    ' + $lang.get('ajax_thmsel_btn_close') + '
    ' + $lang.get('ajax_thmsel_btn_close_hint') + '
    '); - $('#theme-selector-inner').fadeIn(); - }); + if ( aclDisableTransitionFX ) + { + $('#theme-selector-inner').empty(); + } + else + { + setTimeout(function() + { + $('#theme-selector-inner').empty(); + }, 10); + } + + $('#theme-selector-body').animate({width: 400, height: 300 }, 600, function() + { + $('#theme-selector-inner').append(' '); + $('#theme-selector-inner').append('

    ' + $lang.get('ajax_thmsel_msg_success') + '

    '); + $('#theme-selector-inner').append('
    ' + $lang.get('ajax_thmsel_btn_reload') + '
    '); + $('#theme-selector-inner').append('
    ' + $lang.get('ajax_thmsel_btn_close') + '
    ' + $lang.get('ajax_thmsel_btn_close_hint') + '
    '); + $('#theme-selector-inner').fadeIn(); + }); } window.ajaxChangeStyleClose = function() { - setTimeout(function() - { - enlighten(false, 'theme-selector-shade'); - $('#theme-selector-wrapper').fadeOut(500, function() - { - $(this).remove(); - }); - }, ( aclDisableTransitionFX ? 0 : 300)); - if ( !aclDisableTransitionFX ) - opacity('theme-selector-inner', 100, 0, 250); + setTimeout(function() + { + enlighten(false, 'theme-selector-shade'); + $('#theme-selector-wrapper').fadeOut(500, function() + { + $(this).remove(); + }); + }, ( aclDisableTransitionFX ? 0 : 300)); + if ( !aclDisableTransitionFX ) + opacity('theme-selector-inner', 100, 0, 250); } function themeid_to_title(id) { - if ( typeof(id) != 'string' ) - return false; - id = id.substr(0, 1).toUpperCase() + id.substr(1); - id = id.replace(/_/g, ' '); - id = id.replace(/-/g, ' '); - return id; + if ( typeof(id) != 'string' ) + return false; + id = id.substr(0, 1).toUpperCase() + id.substr(1); + id = id.replace(/_/g, ' '); + id = id.replace(/-/g, ' '); + return id; } window.ajaxSetPassword = function() { - // IE <6 pseudo-compatibility - if ( KILL_SWITCH ) - return true; - load_component('crypto'); - pass = hex_sha1(document.getElementById('mdgPassSetField').value); - setAjaxLoading(); - ajaxPost(stdAjaxPrefix+'&_mode=setpass', 'password='+pass, function(ajax) - { - unsetAjaxLoading(); - if ( ajax.readyState == 4 && ajax.status == 200 ) - { - alert(ajax.responseText); - } - }, true); + // IE <6 pseudo-compatibility + if ( KILL_SWITCH ) + return true; + load_component('crypto'); + pass = hex_sha1(document.getElementById('mdgPassSetField').value); + setAjaxLoading(); + ajaxPost(stdAjaxPrefix+'&_mode=setpass', 'password='+pass, function(ajax) + { + unsetAjaxLoading(); + if ( ajax.readyState == 4 && ajax.status == 200 ) + { + alert(ajax.responseText); + } + }, true); } window.ajaxDisableEmbeddedPHP = function() { - // IE <6 pseudo-compatibility - if ( KILL_SWITCH ) - return true; - if ( !confirm($lang.get('ajax_killphp_confirm')) ) - return false; - var $killdiv = $dynano('php_killer'); - if ( !$killdiv.object ) - { - alert('Can\'t get kill div object'); - return false; - } - $killdiv.object.innerHTML = 'Loading...
    Making request...'; - var url = makeUrlNS('Admin', 'Home', 'src=ajax'); - ajaxPost(url, 'act=kill_php', function(ajax) { - if ( ajax.readyState == 4 && ajax.status == 200 ) - { - if ( ajax.responseText == '1' ) - { - var $killdiv = $dynano('php_killer'); - //$killdiv.object.innerHTML = 'Success
    Embedded PHP in pages has been disabled.'; - $killdiv.object.parentNode.removeChild($killdiv.object); - var newdiv = document.createElement('div'); - // newdiv.style = $killdiv.object.style; - newdiv.className = $killdiv.object.className; - newdiv.innerHTML = 'Success
    ' + $lang.get('ajax_killphp_success'); - $killdiv.object.parentNode.appendChild(newdiv); - $killdiv.object.parentNode.removeChild($killdiv.object); - } - else - { - var $killdiv = $dynano('php_killer'); - $killdiv.object.innerHTML = ajax.responseText; - } - } - }); + // IE <6 pseudo-compatibility + if ( KILL_SWITCH ) + return true; + if ( !confirm($lang.get('ajax_killphp_confirm')) ) + return false; + var $killdiv = $dynano('php_killer'); + if ( !$killdiv.object ) + { + alert('Can\'t get kill div object'); + return false; + } + $killdiv.object.innerHTML = 'Loading...
    Making request...'; + var url = makeUrlNS('Admin', 'Home', 'src=ajax'); + ajaxPost(url, 'act=kill_php', function(ajax) { + if ( ajax.readyState == 4 && ajax.status == 200 ) + { + if ( ajax.responseText == '1' ) + { + var $killdiv = $dynano('php_killer'); + //$killdiv.object.innerHTML = 'Success
    Embedded PHP in pages has been disabled.'; + $killdiv.object.parentNode.removeChild($killdiv.object); + var newdiv = document.createElement('div'); + // newdiv.style = $killdiv.object.style; + newdiv.className = $killdiv.object.className; + newdiv.innerHTML = 'Success
    ' + $lang.get('ajax_killphp_success'); + $killdiv.object.parentNode.appendChild(newdiv); + $killdiv.object.parentNode.removeChild($killdiv.object); + } + else + { + var $killdiv = $dynano('php_killer'); + $killdiv.object.innerHTML = ajax.responseText; + } + } + }); } var catHTMLBuf = false; window.ajaxCatToTag = function() { - if ( KILL_SWITCH ) - return false; - setAjaxLoading(); - ajaxGet(stdAjaxPrefix + '&_mode=get_tags', function(ajax) - { - if ( ajax.readyState == 4 && ajax.status == 200 ) - { - unsetAjaxLoading(); - var resptext = String(ajax.responseText + ' '); - resptext = resptext.substr(0, resptext.length-1); - if ( resptext.substr(0, 1) != '{' ) - { - handle_invalid_json(resptext); - return false; - } - var json = parseJSON(resptext); - var catbox = document.getElementById('mdgCatBox'); - if ( !catbox ) - return false; - var linkbox = catbox.parentNode.firstChild.firstChild.nextSibling; - linkbox.firstChild.nodeValue = $lang.get('catedit_catbox_link_showcategorization'); - linkbox.onclick = function() { ajaxTagToCat(); return false; }; - catHTMLBuf = catbox.innerHTML; - catbox.innerHTML = ''; - catbox.appendChild(document.createTextNode($lang.get('tags_lbl_page_tags')+' ')); - if ( json.tags.length < 1 ) - { - catbox.appendChild(document.createTextNode($lang.get('tags_lbl_no_tags'))); - } - for ( var i = 0; i < json.tags.length; i++ ) - { - catbox.appendChild(document.createTextNode(json.tags[i].name)); - if ( json.tags[i].can_del ) - { - catbox.appendChild(document.createTextNode(' ')); - var a = document.createElement('a'); - a.appendChild(document.createTextNode('[X]')); - a.href = '#'; - a._js_tag_id = json.tags[i].id; - a.onclick = function() { ajaxDeleteTag(this, this._js_tag_id); return false; } - catbox.appendChild(a); - } - if ( ( i + 1 ) < json.tags.length ) - catbox.appendChild(document.createTextNode(', ')); - } - if ( json.can_add ) - { - catbox.appendChild(document.createTextNode(' ')); - var addlink = document.createElement('a'); - addlink.href = '#'; - addlink.onclick = function() { try { ajaxAddTagStage1(); } catch(e) { }; return false; }; - addlink.appendChild(document.createTextNode($lang.get('tags_btn_add_tag'))); - catbox.appendChild(addlink); - } - } - }); + if ( KILL_SWITCH ) + return false; + setAjaxLoading(); + ajaxGet(stdAjaxPrefix + '&_mode=get_tags', function(ajax) + { + if ( ajax.readyState == 4 && ajax.status == 200 ) + { + unsetAjaxLoading(); + var resptext = String(ajax.responseText + ' '); + resptext = resptext.substr(0, resptext.length-1); + if ( resptext.substr(0, 1) != '{' ) + { + handle_invalid_json(resptext); + return false; + } + var json = parseJSON(resptext); + var catbox = document.getElementById('mdgCatBox'); + if ( !catbox ) + return false; + var linkbox = catbox.parentNode.firstChild.firstChild.nextSibling; + linkbox.firstChild.nodeValue = $lang.get('catedit_catbox_link_showcategorization'); + linkbox.onclick = function() { ajaxTagToCat(); return false; }; + catHTMLBuf = catbox.innerHTML; + catbox.innerHTML = ''; + catbox.appendChild(document.createTextNode($lang.get('tags_lbl_page_tags')+' ')); + if ( json.tags.length < 1 ) + { + catbox.appendChild(document.createTextNode($lang.get('tags_lbl_no_tags'))); + } + for ( var i = 0; i < json.tags.length; i++ ) + { + catbox.appendChild(document.createTextNode(json.tags[i].name)); + if ( json.tags[i].can_del ) + { + catbox.appendChild(document.createTextNode(' ')); + var a = document.createElement('a'); + a.appendChild(document.createTextNode('[X]')); + a.href = '#'; + a._js_tag_id = json.tags[i].id; + a.onclick = function() { ajaxDeleteTag(this, this._js_tag_id); return false; } + catbox.appendChild(a); + } + if ( ( i + 1 ) < json.tags.length ) + catbox.appendChild(document.createTextNode(', ')); + } + if ( json.can_add ) + { + catbox.appendChild(document.createTextNode(' ')); + var addlink = document.createElement('a'); + addlink.href = '#'; + addlink.onclick = function() { try { ajaxAddTagStage1(); } catch(e) { }; return false; }; + addlink.appendChild(document.createTextNode($lang.get('tags_btn_add_tag'))); + catbox.appendChild(addlink); + } + } + }); } var addtag_open = false; window.ajaxAddTagStage1 = function() { - if ( addtag_open ) - return false; - var catbox = document.getElementById('mdgCatBox'); - var adddiv = document.createElement('div'); - var text = document.createElement('input'); - var addlink = document.createElement('a'); - addlink.href = '#'; - addlink.onclick = function() { ajaxAddTagStage2(this.parentNode.firstChild.nextSibling.value, this.parentNode); return false; }; - addlink.appendChild(document.createTextNode($lang.get('tags_btn_add'))); - text.type = 'text'; - text.size = '15'; - text.onkeyup = function(e) - { - if ( e.keyCode == 13 ) - { - ajaxAddTagStage2(this.value, this.parentNode); - } - } - - adddiv.style.margin = '5px 0 0 0'; - adddiv.appendChild(document.createTextNode($lang.get('tags_lbl_add_tag')+' ')); - adddiv.appendChild(text); - adddiv.appendChild(document.createTextNode(' ')); - adddiv.appendChild(addlink); - catbox.appendChild(adddiv); - addtag_open = true; + if ( addtag_open ) + return false; + var catbox = document.getElementById('mdgCatBox'); + var adddiv = document.createElement('div'); + var text = document.createElement('input'); + var addlink = document.createElement('a'); + addlink.href = '#'; + addlink.onclick = function() { ajaxAddTagStage2(this.parentNode.firstChild.nextSibling.value, this.parentNode); return false; }; + addlink.appendChild(document.createTextNode($lang.get('tags_btn_add'))); + text.type = 'text'; + text.size = '15'; + text.onkeyup = function(e) + { + if ( e.keyCode == 13 ) + { + ajaxAddTagStage2(this.value, this.parentNode); + } + } + + adddiv.style.margin = '5px 0 0 0'; + adddiv.appendChild(document.createTextNode($lang.get('tags_lbl_add_tag')+' ')); + adddiv.appendChild(text); + adddiv.appendChild(document.createTextNode(' ')); + adddiv.appendChild(addlink); + catbox.appendChild(adddiv); + addtag_open = true; } var addtag_nukeme = false; window.ajaxAddTagStage2 = function(tag, nukeme) { - if ( !addtag_open ) - return false; - if ( addtag_nukeme ) - return false; - addtag_nukeme = nukeme; - tag = ajaxEscape(tag); - setAjaxLoading(); - ajaxPost(stdAjaxPrefix + '&_mode=addtag', 'tag=' + tag, function(ajax) - { - if ( ajax.readyState == 4 && ajax.status == 200 ) - { - unsetAjaxLoading(); - var nukeme = addtag_nukeme; - addtag_nukeme = false; - var resptext = String(ajax.responseText + ' '); - resptext = resptext.substr(0, resptext.length-1); - if ( resptext.substr(0, 1) != '{' ) - { - handle_invalid_json(resptext); - return false; - } - var json = parseJSON(resptext); - var parent = nukeme.parentNode; - parent.removeChild(nukeme); - addtag_open = false; - if ( json.success ) - { - var node = parent.childNodes[1]; - var insertafter = false; - var nukeafter = false; - if ( node.nodeValue == $lang.get('tags_lbl_no_tags') ) - { - nukeafter = true; - } - insertafter = parent.childNodes[ parent.childNodes.length - 3 ]; - // these need to be inserted in reverse order - if ( json.can_del ) - { - var a = document.createElement('a'); - a.appendChild(document.createTextNode('[X]')); - a.href = '#'; - a._js_tag_id = json.tag_id; - a.onclick = function() { ajaxDeleteTag(this, this._js_tag_id); return false; } - insertAfter(parent, a, insertafter); - insertAfter(parent, document.createTextNode(' '), insertafter); - } - insertAfter(parent, document.createTextNode(json.tag), insertafter); - if ( !nukeafter ) - { - insertAfter(parent, document.createTextNode(', '), insertafter); - } - if ( nukeafter ) - { - parent.removeChild(insertafter); - } - } - else - { - alert(json.error); - } - } - }); + if ( !addtag_open ) + return false; + if ( addtag_nukeme ) + return false; + addtag_nukeme = nukeme; + tag = ajaxEscape(tag); + setAjaxLoading(); + ajaxPost(stdAjaxPrefix + '&_mode=addtag', 'tag=' + tag, function(ajax) + { + if ( ajax.readyState == 4 && ajax.status == 200 ) + { + unsetAjaxLoading(); + var nukeme = addtag_nukeme; + addtag_nukeme = false; + var resptext = String(ajax.responseText + ' '); + resptext = resptext.substr(0, resptext.length-1); + if ( resptext.substr(0, 1) != '{' ) + { + handle_invalid_json(resptext); + return false; + } + var json = parseJSON(resptext); + var parent = nukeme.parentNode; + parent.removeChild(nukeme); + addtag_open = false; + if ( json.success ) + { + var node = parent.childNodes[1]; + var insertafter = false; + var nukeafter = false; + if ( node.nodeValue == $lang.get('tags_lbl_no_tags') ) + { + nukeafter = true; + } + insertafter = parent.childNodes[ parent.childNodes.length - 3 ]; + // these need to be inserted in reverse order + if ( json.can_del ) + { + var a = document.createElement('a'); + a.appendChild(document.createTextNode('[X]')); + a.href = '#'; + a._js_tag_id = json.tag_id; + a.onclick = function() { ajaxDeleteTag(this, this._js_tag_id); return false; } + insertAfter(parent, a, insertafter); + insertAfter(parent, document.createTextNode(' '), insertafter); + } + insertAfter(parent, document.createTextNode(json.tag), insertafter); + if ( !nukeafter ) + { + insertAfter(parent, document.createTextNode(', '), insertafter); + } + if ( nukeafter ) + { + parent.removeChild(insertafter); + } + } + else + { + alert(json.error); + } + } + }); } window.ajaxDeleteTag = function(parentobj, tag_id) { - var arrDelete = [ parentobj, parentobj.previousSibling, parentobj.previousSibling.previousSibling ]; - var parent = parentobj.parentNode; - var writeNoTags = false; - if ( parentobj.previousSibling.previousSibling.previousSibling.nodeValue == ', ' ) - arrDelete.push(parentobj.previousSibling.previousSibling.previousSibling); - else if ( parentobj.previousSibling.previousSibling.previousSibling.nodeValue == $lang.get('tags_lbl_page_tags') + ' ' ) - arrDelete.push(parentobj.nextSibling); - - if ( parentobj.previousSibling.previousSibling.previousSibling.nodeValue == $lang.get('tags_lbl_page_tags') + ' ' && - parentobj.nextSibling.nextSibling.firstChild ) - if ( parentobj.nextSibling.nextSibling.firstChild.nodeValue == $lang.get('tags_btn_add_tag')) - writeNoTags = true; - - ajaxPost(stdAjaxPrefix + '&_mode=deltag', 'tag_id=' + String(tag_id), function(ajax) - { - if ( ajax.readyState == 4 && ajax.status == 200 ) - { - if ( ajax.responseText == 'success' ) - { - for ( var i = 0; i < arrDelete.length; i++ ) - { - try - { - parent.removeChild(arrDelete[i]); - } catch(e) {} - } - if ( writeNoTags ) - { - var node1 = document.createTextNode($lang.get('tags_lbl_no_tags')); - var node2 = document.createTextNode(' '); - insertAfter(parent, node1, parent.firstChild); - insertAfter(parent, node2, node1); - } - } - else - { - alert(ajax.responseText); - } - } - }); + var arrDelete = [ parentobj, parentobj.previousSibling, parentobj.previousSibling.previousSibling ]; + var parent = parentobj.parentNode; + var writeNoTags = false; + if ( parentobj.previousSibling.previousSibling.previousSibling.nodeValue == ', ' ) + arrDelete.push(parentobj.previousSibling.previousSibling.previousSibling); + else if ( parentobj.previousSibling.previousSibling.previousSibling.nodeValue == $lang.get('tags_lbl_page_tags') + ' ' ) + arrDelete.push(parentobj.nextSibling); + + if ( parentobj.previousSibling.previousSibling.previousSibling.nodeValue == $lang.get('tags_lbl_page_tags') + ' ' && + parentobj.nextSibling.nextSibling.firstChild ) + if ( parentobj.nextSibling.nextSibling.firstChild.nodeValue == $lang.get('tags_btn_add_tag')) + writeNoTags = true; + + ajaxPost(stdAjaxPrefix + '&_mode=deltag', 'tag_id=' + String(tag_id), function(ajax) + { + if ( ajax.readyState == 4 && ajax.status == 200 ) + { + if ( ajax.responseText == 'success' ) + { + for ( var i = 0; i < arrDelete.length; i++ ) + { + try + { + parent.removeChild(arrDelete[i]); + } catch(e) {} + } + if ( writeNoTags ) + { + var node1 = document.createTextNode($lang.get('tags_lbl_no_tags')); + var node2 = document.createTextNode(' '); + insertAfter(parent, node1, parent.firstChild); + insertAfter(parent, node2, node1); + } + } + else + { + alert(ajax.responseText); + } + } + }); } window.ajaxTagToCat = function() { - if ( !catHTMLBuf ) - return false; - var catbox = document.getElementById('mdgCatBox'); - if ( !catbox ) - return false; - addtag_open = false; - var linkbox = catbox.parentNode.firstChild.firstChild.nextSibling; - linkbox.firstChild.nodeValue = $lang.get('tags_catbox_link'); - linkbox.onclick = function() { ajaxCatToTag(); return false; }; - catbox.innerHTML = catHTMLBuf; - catHTMLBuf = false; + if ( !catHTMLBuf ) + return false; + var catbox = document.getElementById('mdgCatBox'); + if ( !catbox ) + return false; + addtag_open = false; + var linkbox = catbox.parentNode.firstChild.firstChild.nextSibling; + linkbox.firstChild.nodeValue = $lang.get('tags_catbox_link'); + linkbox.onclick = function() { ajaxCatToTag(); return false; }; + catbox.innerHTML = catHTMLBuf; + catHTMLBuf = false; } var keepalive_interval = false; window.ajaxPingServer = function() { - ajaxGet(stdAjaxPrefix + '&_mode=ping', function(ajax) - { - }); + ajaxGet(stdAjaxPrefix + '&_mode=ping', function(ajax) + { + }); } window.ajaxToggleKeepalive = function() { - if ( readCookie('admin_keepalive') == '1' ) - { - createCookie('admin_keepalive', '0', 3650); - if ( keepalive_interval ) - clearInterval(keepalive_interval); - var span = document.getElementById('keepalivestat'); - span.firstChild.nodeValue = $lang.get('adm_btn_keepalive_off'); - } - else - { - createCookie('admin_keepalive', '1', 3650); - if ( !keepalive_interval ) - keepalive_interval = setInterval('ajaxPingServer();', 600000); - var span = document.getElementById('keepalivestat'); - span.firstChild.nodeValue = $lang.get('adm_btn_keepalive_on'); - ajaxPingServer(); - } + if ( readCookie('admin_keepalive') == '1' ) + { + createCookie('admin_keepalive', '0', 3650); + if ( keepalive_interval ) + clearInterval(keepalive_interval); + var span = document.getElementById('keepalivestat'); + span.firstChild.nodeValue = $lang.get('adm_btn_keepalive_off'); + } + else + { + createCookie('admin_keepalive', '1', 3650); + if ( !keepalive_interval ) + keepalive_interval = setInterval('ajaxPingServer();', 600000); + var span = document.getElementById('keepalivestat'); + span.firstChild.nodeValue = $lang.get('adm_btn_keepalive_on'); + ajaxPingServer(); + } } var keepalive_onload = function() { - if ( readCookie('admin_keepalive') == '1' ) - { - if ( !keepalive_interval ) - keepalive_interval = setInterval('ajaxPingServer();', 600000); - var span = document.getElementById('keepalivestat'); - span.firstChild.nodeValue = $lang.get('adm_btn_keepalive_on'); - } - else - { - if ( keepalive_interval ) - clearInterval(keepalive_interval); - var span = document.getElementById('keepalivestat'); - span.firstChild.nodeValue = $lang.get('adm_btn_keepalive_off'); - } + if ( readCookie('admin_keepalive') == '1' ) + { + if ( !keepalive_interval ) + keepalive_interval = setInterval('ajaxPingServer();', 600000); + var span = document.getElementById('keepalivestat'); + span.firstChild.nodeValue = $lang.get('adm_btn_keepalive_on'); + } + else + { + if ( keepalive_interval ) + clearInterval(keepalive_interval); + var span = document.getElementById('keepalivestat'); + span.firstChild.nodeValue = $lang.get('adm_btn_keepalive_off'); + } }; window.aboutKeepAlive = function() { - load_component(['messagebox', 'flyin', 'fadefilter']); - new MessageBox(MB_OK|MB_ICONINFORMATION, $lang.get('user_keepalive_info_title'), $lang.get('user_keepalive_info_body')); + load_component(['messagebox', 'flyin', 'fadefilter']); + new MessageBox(MB_OK|MB_ICONINFORMATION, $lang.get('user_keepalive_info_title'), $lang.get('user_keepalive_info_body')); } window.ajaxUpdateCheck = function(targetelement) { - if ( !document.getElementById(targetelement) ) - { - return false; - } - var target = document.getElementById(targetelement); - target.innerHTML = ''; - var img = document.createElement('img'); - img.src = cdnPath + '/images/loading.gif'; - img.alt = 'Loading...'; - target.appendChild(img); - ajaxGet(makeUrlNS('Admin', 'Home/updates.xml'), function(ajax) - { - if ( ajax.readyState == 4 && ajax.status == 200 ) - { - var releases = new Array(); - var update_available = false; - if ( ajax.responseXML == null ) - { - alert("Error fetching updates list:\n" + ajax.responseText); - return false; - } - if ( ajax.responseXML.firstChild.tagName == 'enano' ) - { - var enanotag = ajax.responseXML.firstChild; - for ( var i = 0; i < enanotag.childNodes.length; i++ ) - { - if ( enanotag.childNodes[i].tagName == 'error' ) - { - alert(enanotag.childNodes[i].firstChild.nodeValue); - } - else if ( enanotag.childNodes[i].tagName == 'latest' ) - { - // got - var latesttag = enanotag.childNodes[i]; - for ( var j = 0; j < latesttag.childNodes.length; j++ ) - { - var node = latesttag.childNodes[j]; - if ( node.tagName == 'release' ) - { - var releasedata = new Object(); - for ( var k = 0; k < node.attributes.length; k++ ) - { - releasedata[node.attributes[k].nodeName] = node.attributes[k].nodeValue; - } - releases.push(releasedata); - } - else if ( node.tagName == 'haveupdates' ) - { - update_available = true; - } - } - break; - } - } - } - else - { - return false; - } - var thediv = document.getElementById(targetelement); - thediv.innerHTML = ''; - if ( !thediv ) - { - return false; - } - if ( releases.length > 0 ) - { - thediv.className = 'tblholder'; - // FIXME: l10n - if ( update_available ) - { - var infobox = document.createElement('div'); - infobox.className = 'info-box-mini'; - infobox.appendChild(document.createTextNode('An update for Enano is available. The newest release is highlighted below.')); - infobox.style.borderWidth = '0'; - infobox.style.margin = '0 0 0 0'; - thediv.appendChild(infobox); - } - else - { - var infobox = document.createElement('div'); - infobox.className = 'info-box-mini'; - infobox.appendChild(document.createTextNode('No new updates are available. The latest available releases are shown below.')); - infobox.style.borderWidth = '0'; - infobox.style.margin = '0 0 0 0'; - thediv.appendChild(infobox); - } - var table = document.createElement('table'); - table.setAttribute('border', '0'); - table.setAttribute('cellspacing', '1'); - table.setAttribute('cellpadding', '4'); - - var tr = document.createElement('tr'); - - var td1 = document.createElement('th'); - var td2 = document.createElement('th'); - var td3 = document.createElement('th'); - var td4 = document.createElement('th'); - - // FIXME: l10n - td1.appendChild( document.createTextNode('Release type') ); - td2.appendChild( document.createTextNode('Version') ); - td3.appendChild( document.createTextNode('Code name') ); - td4.appendChild( document.createTextNode('Release notes') ); - - tr.appendChild(td1); - tr.appendChild(td2); - tr.appendChild(td3); - tr.appendChild(td4); - - table.appendChild(tr); - - var cls = 'row2'; - - var j = 0; - for ( var i in releases ) - { - j++; - if ( j > 5 ) - break; - if ( update_available && j == 1 ) - cls = 'row1_green'; - else - cls = ( cls == 'row1' ) ? 'row2' : 'row1'; - var release = releases[i]; - var tr = document.createElement('tr'); - - var td1 = document.createElement('td'); - var td2 = document.createElement('td'); - var td3 = document.createElement('td'); - var td4 = document.createElement('td'); - - td1.className = cls; - td2.className = cls; - td3.className = cls; - td4.className = cls; - - if ( release.tag ) - td1.appendChild( document.createTextNode(release.tag) ); - - if ( release.version ) - td2.appendChild( document.createTextNode(release.version) ); - - if ( release.codename ) - td3.appendChild( document.createTextNode(release.codename) ); - - if ( release.relnotes ) - { - var a = document.createElement('a'); - a.href = release.relnotes; - a.appendChild(document.createTextNode('View')); - td4.appendChild( a ); - } - - tr.appendChild(td1); - tr.appendChild(td2); - tr.appendChild(td3); - tr.appendChild(td4); - - table.appendChild(tr); - } - thediv.appendChild(table); - } - else - { - thediv.appendChild(document.createTextNode('No releases available.')); - } - } - }); + if ( !document.getElementById(targetelement) ) + { + return false; + } + var target = document.getElementById(targetelement); + target.innerHTML = ''; + var img = document.createElement('img'); + img.src = cdnPath + '/images/loading.gif'; + img.alt = 'Loading...'; + target.appendChild(img); + ajaxGet(makeUrlNS('Admin', 'Home/updates.xml'), function(ajax) + { + if ( ajax.readyState == 4 && ajax.status == 200 ) + { + var releases = new Array(); + var update_available = false; + if ( ajax.responseXML == null ) + { + alert("Error fetching updates list:\n" + ajax.responseText); + return false; + } + if ( ajax.responseXML.firstChild.tagName == 'enano' ) + { + var enanotag = ajax.responseXML.firstChild; + for ( var i = 0; i < enanotag.childNodes.length; i++ ) + { + if ( enanotag.childNodes[i].tagName == 'error' ) + { + alert(enanotag.childNodes[i].firstChild.nodeValue); + } + else if ( enanotag.childNodes[i].tagName == 'latest' ) + { + // got + var latesttag = enanotag.childNodes[i]; + for ( var j = 0; j < latesttag.childNodes.length; j++ ) + { + var node = latesttag.childNodes[j]; + if ( node.tagName == 'release' ) + { + var releasedata = new Object(); + for ( var k = 0; k < node.attributes.length; k++ ) + { + releasedata[node.attributes[k].nodeName] = node.attributes[k].nodeValue; + } + releases.push(releasedata); + } + else if ( node.tagName == 'haveupdates' ) + { + update_available = true; + } + } + break; + } + } + } + else + { + return false; + } + var thediv = document.getElementById(targetelement); + thediv.innerHTML = ''; + if ( !thediv ) + { + return false; + } + if ( releases.length > 0 ) + { + thediv.className = 'tblholder'; + // FIXME: l10n + if ( update_available ) + { + var infobox = document.createElement('div'); + infobox.className = 'info-box-mini'; + infobox.appendChild(document.createTextNode('An update for Enano is available. The newest release is highlighted below.')); + infobox.style.borderWidth = '0'; + infobox.style.margin = '0 0 0 0'; + thediv.appendChild(infobox); + } + else + { + var infobox = document.createElement('div'); + infobox.className = 'info-box-mini'; + infobox.appendChild(document.createTextNode('No new updates are available. The latest available releases are shown below.')); + infobox.style.borderWidth = '0'; + infobox.style.margin = '0 0 0 0'; + thediv.appendChild(infobox); + } + var table = document.createElement('table'); + table.setAttribute('border', '0'); + table.setAttribute('cellspacing', '1'); + table.setAttribute('cellpadding', '4'); + + var tr = document.createElement('tr'); + + var td1 = document.createElement('th'); + var td2 = document.createElement('th'); + var td3 = document.createElement('th'); + var td4 = document.createElement('th'); + + // FIXME: l10n + td1.appendChild( document.createTextNode('Release type') ); + td2.appendChild( document.createTextNode('Version') ); + td3.appendChild( document.createTextNode('Code name') ); + td4.appendChild( document.createTextNode('Release notes') ); + + tr.appendChild(td1); + tr.appendChild(td2); + tr.appendChild(td3); + tr.appendChild(td4); + + table.appendChild(tr); + + var cls = 'row2'; + + var j = 0; + for ( var i in releases ) + { + j++; + if ( j > 5 ) + break; + if ( update_available && j == 1 ) + cls = 'row1_green'; + else + cls = ( cls == 'row1' ) ? 'row2' : 'row1'; + var release = releases[i]; + var tr = document.createElement('tr'); + + var td1 = document.createElement('td'); + var td2 = document.createElement('td'); + var td3 = document.createElement('td'); + var td4 = document.createElement('td'); + + td1.className = cls; + td2.className = cls; + td3.className = cls; + td4.className = cls; + + if ( release.tag ) + td1.appendChild( document.createTextNode(release.tag) ); + + if ( release.version ) + td2.appendChild( document.createTextNode(release.version) ); + + if ( release.codename ) + td3.appendChild( document.createTextNode(release.codename) ); + + if ( release.relnotes ) + { + var a = document.createElement('a'); + a.href = release.relnotes; + a.appendChild(document.createTextNode('View')); + td4.appendChild( a ); + } + + tr.appendChild(td1); + tr.appendChild(td2); + tr.appendChild(td3); + tr.appendChild(td4); + + table.appendChild(tr); + } + thediv.appendChild(table); + } + else + { + thediv.appendChild(document.createTextNode('No releases available.')); + } + } + }); } window.ajaxPluginAction = function(action, plugin_filename, btnobj, send_confirm) { - // if installing, uninstalling, or re-importing, confirm - if ( action == 'install' || action == 'uninstall' || action == 'reimport' ) - { - var prompt = miniPrompt(function(div) - { - var txtholder = document.createElement('div'); - txtholder.style.textAlign = 'center'; - txtholder.appendChild(document.createTextNode($lang.get('acppl_msg_confirm_' + action))); - txtholder.appendChild(document.createElement('br')); - txtholder.appendChild(document.createElement('br')); - - // create buttons - var btn_go = document.createElement('a'); - btn_go.className = 'abutton abutton_red'; - btn_go.href = '#'; - btn_go._action = action; - btn_go._filename = plugin_filename; - btn_go._button = btnobj; - btn_go.appendChild(document.createTextNode($lang.get('acppl_btn_' + action))); - btn_go.style.fontWeight = 'bold'; - txtholder.appendChild(btn_go); - - // space - txtholder.appendChild(document.createTextNode(' ')); - - // cancel - var btn_cancel = document.createElement('a'); - btn_cancel.className = 'abutton abutton_blue'; - btn_cancel.href = '#'; - btn_cancel.appendChild(document.createTextNode($lang.get('etc_cancel'))); - - txtholder.appendChild(btn_cancel); - div.appendChild(txtholder); - - btn_go.onclick = function() - { - ajaxPluginAction(this._action + '_confirm', this._filename, this._button); - miniPromptDestroy(this); - return false; - }; - btn_cancel.onclick = function() - { - miniPromptDestroy(this); - return false; - }; - }); - return true; - } - action = action.replace(/_confirm$/, ''); - // white-out the plugin info box - if ( btnobj ) - { - var td = btnobj.parentNode.parentNode.parentNode.parentNode; - var blackbox = whiteOutElement(td); - } - var request = { - mode: action, - plugin: plugin_filename - }; - if ( send_confirm ) - { - request.install_confirmed = true; - } - request = toJSONString(request); - ajaxPost(makeUrlNS('Admin', 'PluginManager/action.json'), 'r=' + ajaxEscape(request), function(ajax) - { - if ( ajax.readyState == 4 && ajax.status == 200 ) - { - var response = String(ajax.responseText + ''); - if ( !check_json_response(response) ) - { - handle_invalid_json(response); - return false; - } - response = parseJSON(response); - if ( blackbox ) - { - blackbox.parentNode.removeChild(blackbox); - } - if ( response.success ) - { - ajaxPage( namespace_list['Admin'] + 'PluginManager' ); - return true; - } - if ( response.need_confirm ) - { - miniPromptMessage({ - title: $lang.get(response.confirm_title), - message: $lang.get(response.confirm_body), - buttons: [ - { - text: $lang.get('acppl_btn_install'), - color: 'red', - style: { - fontWeight: 'bold' - }, - onclick: function() { - ajaxPluginAction(action + '_confirm', plugin_filename, btnobj, true); - miniPromptDestroy(this); - } - }, - { - text: $lang.get('etc_cancel'), - color: 'blue', - onclick: function() { - miniPromptDestroy(this); - } - } - ] - }); - return true; - } - // wait for fade effect to finish its run - setTimeout(function() - { - miniPrompt(function(div) - { - if ( blackbox ) - { - blackbox.parentNode.removeChild(blackbox); - } - var txtholder = document.createElement('div'); - txtholder.style.textAlign = 'center'; - txtholder.appendChild(document.createTextNode(response.error)); - txtholder.appendChild(document.createElement('br')); - txtholder.appendChild(document.createElement('br')); - - // close button - var btn_cancel = document.createElement('a'); - btn_cancel.className = 'abutton abutton_red'; - btn_cancel.href = '#'; - btn_cancel.appendChild(document.createTextNode($lang.get('etc_ok'))); - - txtholder.appendChild(btn_cancel); - div.appendChild(txtholder); - - btn_cancel.onclick = function() - { - miniPromptDestroy(this); - return false; - } - }); - }, 750); - } - }); + // if installing, uninstalling, or re-importing, confirm + if ( action == 'install' || action == 'uninstall' || action == 'reimport' ) + { + var prompt = miniPrompt(function(div) + { + var txtholder = document.createElement('div'); + txtholder.style.textAlign = 'center'; + txtholder.appendChild(document.createTextNode($lang.get('acppl_msg_confirm_' + action))); + txtholder.appendChild(document.createElement('br')); + txtholder.appendChild(document.createElement('br')); + + // create buttons + var btn_go = document.createElement('a'); + btn_go.className = 'abutton abutton_red'; + btn_go.href = '#'; + btn_go._action = action; + btn_go._filename = plugin_filename; + btn_go._button = btnobj; + btn_go.appendChild(document.createTextNode($lang.get('acppl_btn_' + action))); + btn_go.style.fontWeight = 'bold'; + txtholder.appendChild(btn_go); + + // space + txtholder.appendChild(document.createTextNode(' ')); + + // cancel + var btn_cancel = document.createElement('a'); + btn_cancel.className = 'abutton abutton_blue'; + btn_cancel.href = '#'; + btn_cancel.appendChild(document.createTextNode($lang.get('etc_cancel'))); + + txtholder.appendChild(btn_cancel); + div.appendChild(txtholder); + + btn_go.onclick = function() + { + ajaxPluginAction(this._action + '_confirm', this._filename, this._button); + miniPromptDestroy(this); + return false; + }; + btn_cancel.onclick = function() + { + miniPromptDestroy(this); + return false; + }; + }); + return true; + } + action = action.replace(/_confirm$/, ''); + // white-out the plugin info box + if ( btnobj ) + { + var td = btnobj.parentNode.parentNode.parentNode.parentNode; + var blackbox = whiteOutElement(td); + } + var request = { + mode: action, + plugin: plugin_filename + }; + if ( send_confirm ) + { + request.install_confirmed = true; + } + request = toJSONString(request); + ajaxPost(makeUrlNS('Admin', 'PluginManager/action.json'), 'r=' + ajaxEscape(request), function(ajax) + { + if ( ajax.readyState == 4 && ajax.status == 200 ) + { + var response = String(ajax.responseText + ''); + if ( !check_json_response(response) ) + { + handle_invalid_json(response); + return false; + } + response = parseJSON(response); + if ( blackbox ) + { + blackbox.parentNode.removeChild(blackbox); + } + if ( response.success ) + { + ajaxPage( namespace_list['Admin'] + 'PluginManager' ); + return true; + } + if ( response.need_confirm ) + { + miniPromptMessage({ + title: $lang.get(response.confirm_title), + message: $lang.get(response.confirm_body), + buttons: [ + { + text: $lang.get('acppl_btn_install'), + color: 'red', + style: { + fontWeight: 'bold' + }, + onclick: function() { + ajaxPluginAction(action + '_confirm', plugin_filename, btnobj, true); + miniPromptDestroy(this); + } + }, + { + text: $lang.get('etc_cancel'), + color: 'blue', + onclick: function() { + miniPromptDestroy(this); + } + } + ] + }); + return true; + } + // wait for fade effect to finish its run + setTimeout(function() + { + miniPrompt(function(div) + { + if ( blackbox ) + { + blackbox.parentNode.removeChild(blackbox); + } + var txtholder = document.createElement('div'); + txtholder.style.textAlign = 'center'; + txtholder.appendChild(document.createTextNode(response.error)); + txtholder.appendChild(document.createElement('br')); + txtholder.appendChild(document.createElement('br')); + + // close button + var btn_cancel = document.createElement('a'); + btn_cancel.className = 'abutton abutton_red'; + btn_cancel.href = '#'; + btn_cancel.appendChild(document.createTextNode($lang.get('etc_ok'))); + + txtholder.appendChild(btn_cancel); + div.appendChild(txtholder); + + btn_cancel.onclick = function() + { + miniPromptDestroy(this); + return false; + } + }); + }, 750); + } + }); } window.ajaxReverseDNS = function(o, text) { - if(text) var ipaddr = text; - else var ipaddr = o.innerHTML; - rDnsObj = o; - rDnsBannerObj = bannerOn('Retrieving reverse DNS info...'); - ajaxGet(stdAjaxPrefix+'&_mode=rdns&ip='+ipaddr, function(ajax) { - if ( ajax.readyState == 4 && ajax.status == 200 ) - { - off = fetch_offset(rDnsObj); - dim = fetch_dimensions(rDnsObj); - right = off['left'] + dim['w']; - top = off['top'] + dim['h']; - var thediv = document.createElement('div'); - thediv.className = 'info-box'; - thediv.style.margin = '0'; - thediv.style.position = 'absolute'; - thediv.style.top = top + 'px'; - thediv.style.display = 'none'; - thediv.style.zIndex = getHighestZ() + 2; - thediv.id = 'mdgDynamic_rDnsInfoDiv_'+Math.floor(Math.random() * 1000000); - // FIXME: l10n - thediv.innerHTML = 'Reverse DNS:
    '+ajax.responseText+' Close'; - var body = document.getElementsByTagName('body'); - body = body[0]; - bannerOff(rDnsBannerObj); - body.appendChild(thediv); - thediv.style.display = 'block'; - left = fetch_dimensions(thediv); - thediv.style.display = 'none'; - left = right - left['w']; - thediv.style.left = left + 'px'; - thediv.style.display = 'block'; - fadeInfoBoxes(); - } - }); + if(text) var ipaddr = text; + else var ipaddr = o.innerHTML; + rDnsObj = o; + rDnsBannerObj = bannerOn('Retrieving reverse DNS info...'); + ajaxGet(stdAjaxPrefix+'&_mode=rdns&ip='+ipaddr, function(ajax) { + if ( ajax.readyState == 4 && ajax.status == 200 ) + { + off = fetch_offset(rDnsObj); + dim = fetch_dimensions(rDnsObj); + right = off['left'] + dim['w']; + top = off['top'] + dim['h']; + var thediv = document.createElement('div'); + thediv.className = 'info-box'; + thediv.style.margin = '0'; + thediv.style.position = 'absolute'; + thediv.style.top = top + 'px'; + thediv.style.display = 'none'; + thediv.style.zIndex = getHighestZ() + 2; + thediv.id = 'mdgDynamic_rDnsInfoDiv_'+Math.floor(Math.random() * 1000000); + // FIXME: l10n + thediv.innerHTML = 'Reverse DNS:
    '+ajax.responseText+' Close'; + var body = document.getElementsByTagName('body'); + body = body[0]; + bannerOff(rDnsBannerObj); + body.appendChild(thediv); + thediv.style.display = 'block'; + left = fetch_dimensions(thediv); + thediv.style.display = 'none'; + left = right - left['w']; + thediv.style.left = left + 'px'; + thediv.style.display = 'block'; + fadeInfoBoxes(); + } + }); } window.ajaxGzipCheck = function() { - var resultdiv = document.getElementById('gzip_check_result'); - if ( !resultdiv ) - return false; - - resultdiv.innerHTML = 'Loading...'; - ajaxPost(makeUrlNS('Admin', 'GeneralConfig'), 'act=gzip_check', function(ajax) - { - if ( ajax.readyState == 4 && ajax.status == 200 ) - { - resultdiv.innerHTML = ''; - var response = String(ajax.responseText + ''); - if ( !check_json_response(response) ) - { - handle_invalid_json(response); - return false; - } - response = parseJSON(response); - if ( response.error ) - { - resultdiv.innerHTML = '
    ' + response.error + '
    '; - } - else - { - // probably success. - resultdiv.innerHTML += response.server_does_it ? - '
    ' + $lang.get('acpgc_field_gzip_check_msg_server_does_it') + '
    ' : - '
    ' + $lang.get('acpgc_field_gzip_check_msg_server_good') + '
    '; - resultdiv.innerHTML += response.php_supports_gzip ? - '
    ' + $lang.get('acpgc_field_gzip_check_msg_php_good') + '
    ' : - '
    ' + $lang.get('acpgc_field_gzip_check_msg_php_bad') + '
    '; - - if ( response.php_supports_gzip && !response.server_does_it ) - { - resultdiv.innerHTML += '
    ' + $lang.get('acpgc_field_gzip_check_msg_success') + '
    '; - } - else - { - resultdiv.innerHTML += '
    ' + $lang.get('acpgc_field_gzip_check_msg_failure') + '
    '; - } - } - } - }); + var resultdiv = document.getElementById('gzip_check_result'); + if ( !resultdiv ) + return false; + + resultdiv.innerHTML = 'Loading...'; + ajaxPost(makeUrlNS('Admin', 'GeneralConfig'), 'act=gzip_check', function(ajax) + { + if ( ajax.readyState == 4 && ajax.status == 200 ) + { + resultdiv.innerHTML = ''; + var response = String(ajax.responseText + ''); + if ( !check_json_response(response) ) + { + handle_invalid_json(response); + return false; + } + response = parseJSON(response); + if ( response.error ) + { + resultdiv.innerHTML = '
    ' + response.error + '
    '; + } + else + { + // probably success. + resultdiv.innerHTML += response.server_does_it ? + '
    ' + $lang.get('acpgc_field_gzip_check_msg_server_does_it') + '
    ' : + '
    ' + $lang.get('acpgc_field_gzip_check_msg_server_good') + '
    '; + resultdiv.innerHTML += response.php_supports_gzip ? + '
    ' + $lang.get('acpgc_field_gzip_check_msg_php_good') + '
    ' : + '
    ' + $lang.get('acpgc_field_gzip_check_msg_php_bad') + '
    '; + + if ( response.php_supports_gzip && !response.server_does_it ) + { + resultdiv.innerHTML += '
    ' + $lang.get('acpgc_field_gzip_check_msg_success') + '
    '; + } + else + { + resultdiv.innerHTML += '
    ' + $lang.get('acpgc_field_gzip_check_msg_failure') + '
    '; + } + } + } + }); }