52
+ − 1
function update_stats()
+ − 2
{
+ − 3
var body = document.getElementsByTagName('body')[0];
+ − 4
body.style.cursor = 'wait';
+ − 5
ajaxGet('ajax-active.php', function()
+ − 6
{
+ − 7
if ( window.ajax.readyState == 4 && window.ajax.status == 200 )
+ − 8
{
+ − 9
document.getElementById('active-members').innerHTML = ajax.responseText;
+ − 10
}
+ − 11
});
+ − 12
var images = document.getElementsByTagName('img');
+ − 13
for ( var i = 0; i < images.length; i++ )
+ − 14
{
+ − 15
var image = images[i];
+ − 16
if ( image.className.indexOf('graph') != -1 )
+ − 17
{
+ − 18
image.src = (String(image.src)).replace(/&seed=[0-9]+$/, '') + '&seed=' + Math.floor(Math.random() * 100000);
+ − 19
}
+ − 20
}
+ − 21
window.setTimeout(function()
+ − 22
{
+ − 23
body.style.cursor = null;
+ − 24
}, 250);
+ − 25
}
+ − 26
+ − 27
window.onload = function()
+ − 28
{
+ − 29
var ivl = parseFloat(readCookie('interval'));
+ − 30
if ( ivl == 0 || isNaN(ivl) )
+ − 31
ivl = 30.0;
+ − 32
+ − 33
var textbox = document.getElementById('update_ivl');
+ − 34
textbox.value = String(ivl);
+ − 35
textbox.onkeyup = process_update_ivl;
+ − 36
+ − 37
ivl = parseInt(ivl * 1000);
+ − 38
+ − 39
window.ajax_update_ivl = window.setInterval('update_stats();', ivl);
+ − 40
}
+ − 41
+ − 42
function set_update_ivl(ivl)
+ − 43
{
+ − 44
window.clearInterval(ajax_update_ivl);
+ − 45
createCookie('interval', ivl, 3650);
+ − 46
ivl = parseInt(ivl * 1000);
+ − 47
+ − 48
window.ajax_update_ivl = window.setInterval('update_stats();', ivl);
+ − 49
}
+ − 50
+ − 51
function process_update_ivl()
+ − 52
{
+ − 53
var val = parseFloat(this.value);
+ − 54
+ − 55
if ( isNaN(val) || val < 5 )
+ − 56
val = 10;
+ − 57
+ − 58
set_update_ivl(val);
+ − 59
}
+ − 60
+ − 61
/**
+ − 62
* Core AJAX library
+ − 63
*/
+ − 64
+ − 65
function ajaxMakeXHR()
+ − 66
{
+ − 67
var ajax;
+ − 68
if (window.XMLHttpRequest)
+ − 69
{
+ − 70
ajax = new XMLHttpRequest();
+ − 71
}
+ − 72
else
+ − 73
{
+ − 74
if (window.ActiveXObject)
+ − 75
{
+ − 76
ajax = new ActiveXObject("Microsoft.XMLHTTP");
+ − 77
}
+ − 78
else
+ − 79
{
+ − 80
return false;
+ − 81
}
+ − 82
}
+ − 83
return ajax;
+ − 84
}
+ − 85
+ − 86
function ajaxGet(uri, f, call_editor_safe) {
+ − 87
window.ajax = ajaxMakeXHR();
+ − 88
if ( !ajax )
+ − 89
{
+ − 90
return false;
+ − 91
}
+ − 92
ajax.onreadystatechange = f;
+ − 93
ajax.open('GET', uri, true);
+ − 94
ajax.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
+ − 95
ajax.send(null);
+ − 96
}
+ − 97
+ − 98
function ajaxPost(uri, parms, f, call_editor_safe) {
+ − 99
// Is the editor open?
+ − 100
window.ajax = ajaxMakeXHR();
+ − 101
if ( !ajax )
+ − 102
{
+ − 103
return false;
+ − 104
}
+ − 105
ajax.onreadystatechange = f;
+ − 106
ajax.open('POST', uri, true);
+ − 107
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
+ − 108
// Setting Content-length in Safari triggers a warning
+ − 109
if ( !is_Safari )
+ − 110
{
+ − 111
ajax.setRequestHeader("Content-length", parms.length);
+ − 112
}
+ − 113
ajax.setRequestHeader("Connection", "close");
+ − 114
ajax.send(parms);
+ − 115
}
+ − 116
+ − 117
// Cookie manipulation
+ − 118
function readCookie(name) {var nameEQ = name + "=";var ca = document.cookie.split(';');for(var i=0;i < ca.length;i++){var c = ca[i];while (c.charAt(0)==' ') c = c.substring(1,c.length);if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);}return null;}
+ − 119
function createCookie(name,value,days){if (days){var date = new Date();date.setTime(date.getTime()+(days*24*60*60*1000));var expires = "; expires="+date.toGMTString();}else var expires = "";document.cookie = name+"="+value+expires+"; path=/";}
+ − 120
function eraseCookie(name) {createCookie(name,"",-1);}
+ − 121