Difference between revisions of "User:Svip/monobook.js"
Jump to navigation
Jump to search
m |
m (BRAINS) |
||
Line 48: | Line 48: | ||
}; | }; | ||
request.send(null); | request.send(null); | ||
} | |||
/* Brain cursor chaser, version [0.0.4] | |||
Originally from: Splarka | |||
Notes: | |||
* Full of constants that can be tweaked. | |||
* Doesn't /have/ to be brains, but that was the design. | |||
* Movement is random, a smoother circular movement system might be cooler. | |||
*/ | |||
var ismsie = (navigator.appName.toLowerCase().indexOf('internet explorer') != -1); | |||
var scrW, scrH, mouseX, mouseY, brainX = [0], brainY = [0], brainTimer; | |||
var brainR = 'http://img505.imageshack.us/img505/4064/brainr.png'; | |||
var brainL = 'http://img505.imageshack.us/img505/7910/brainl.png'; | |||
function initBrains() { | |||
var docobj = document.getElementById('globalWrapper') || document.body; | |||
appendCSS('.brain {position:absolute;z-index:3;}'); | |||
for(var i=0;i<5;i++) { | |||
var img = document.createElement('img'); | |||
img.src = 'file:///c:/goldrush/js/wiki/brain-r.png'; | |||
img.id = 'brain-' + i; | |||
brainX[i] = rand(10,150); | |||
brainY[i] = rand(10,150); | |||
img.style.left = (brainX[i] - 24) + 'px'; | |||
img.style.top = (brainY[i] - 20) + 'px'; | |||
img.style.zIndex = rand(2,4); | |||
img.className = 'brain'; | |||
docobj.appendChild(img); | |||
} | |||
screenResizeBrains(); | |||
if(!ismsie) document.captureEvents(Event.MOUSEMOVE) | |||
addHandler(document,'mousemove',mousemoveBrains); | |||
addHandler(window,'resize',screenResizeBrains); | |||
brainTimer = setTimeout('moveBrains()',1000); | |||
} | |||
addOnloadHook(initBrains); | |||
function moveBrains() { | |||
try { | |||
if(brainTimer != null) { | |||
clearTimeout(brainTimer); | |||
brainTimer = null; | |||
} | |||
} catch (e) { | |||
return; | |||
} | |||
if(!mouseX || !mouseY) return | |||
mx = mouseX; | |||
my = mouseY; | |||
var brains = getElementsByClassName(document.body,'img','brain'); | |||
for(var i=0;i<brains.length;i++) { | |||
var b = brains[i], bx = brainX[i], by = brainY[i]; | |||
var d = Math.sqrt(((bx - mx) * (bx - mx)) + ((by - my) * (by - my))); //distance | |||
var dr = Math.abs(bx - mx) / Math.abs(by - my), dx = 0, dy = 0; //delta ratio, deltaX,Y | |||
if(dr > 1) { | |||
dr = 1 / parseFloat(dr); | |||
dx = (1 - dr / 2); | |||
dy = dr / 2; | |||
} else { | |||
dx = dr / 2; | |||
dy = (1 - dr / 2); | |||
} | |||
if(bx > mx) { | |||
b.src = brainL; | |||
dx = -dx; | |||
} else { | |||
b.src = brainR; | |||
} | |||
if(by > my) dy = -dy | |||
brainX[i] += dx*15 + rand(-8,8); | |||
brainY[i] += dy*15 + rand(-8,8); | |||
b.style.left = (brainX[i] - 24) + 'px'; | |||
b.style.top = (brainY[i] - 20) + 'px'; | |||
} | |||
brainTimer = setTimeout('moveBrains()',100); | |||
} | |||
window.onresize = screenResizeBrains; | |||
function mousemoveBrains(e) { | |||
try { | |||
var debug = document.getElementById('debug'); | |||
if(ismsie) { | |||
var mx = event.clientX + document.body.scrollLeft; | |||
var my = event.clientY + document.body.scrollTop; | |||
} else { | |||
var mx = e.pageX; | |||
var my = e.pageY; | |||
} | |||
if (mx < 0) mx = 0 | |||
if (my < 0) my = 0 | |||
mouseX = mx; | |||
mouseY = my; | |||
if(brainTimer == null) brainTimer = setTimeout('moveBrains()',100) | |||
} catch (e) { | |||
return; | |||
} | |||
} | |||
function screenResizeBrains() { | |||
var docElement = (document.compatMode=='CSS1Compat') ? document.documentElement : document.body | |||
scrW = docElement.clientWidth; | |||
scrH = docElement.clientHeight; | |||
} | |||
function rand(n,z) { | |||
var s = (!z) ? 0 : z | |||
return Math.floor(Math.random() * (n - s) + s); | |||
} | } |
Revision as of 15:27, 16 July 2009
var barWidth = 200; var topAmount = 500; var currentAmount = 0; function updateDonationNotice() { if(!document.getElementById("donation-progress-number")) return; getDonation(); } addOnloadHook(updateDonationNotice); function getDonation() { var url = "/api.php?action=query&meta=allmessages&ammessages=donation-amount&amlang=en&format=xml"; ajax(url, getDonationEnd, []); } function getDonationEnd(xml, data) { var doc = xml.documentElement; var currentAmount = parseInt(doc.getElementsByTagName("message")[0].firstChild.data); var nowWidth = (currentAmount/topAmount)*barWidth; var number = document.getElementById("donation-progress-number"); number.innerHTML = currentAmount; var progBar = document.getElementById("donation-progress-indicator"); progBar.setAttribute("style", "width: " + nowWidth + "px"); } function ajax(url, callbackFunction, data) { var request = new XMLHttpRequest(); request.open("GET", url, true); //request.setRequestHeader("Content-Type", // "application/x-www-form-urlencoded"); request.onreadystatechange = function() { var done = 4, ok = 200; if (request.readyState == done) { if (request.status == ok) { if (request.responseXML) { callbackFunction(request.responseXML, data); } } else { if (request.responseXML) { alert(request.responseXML); } else { //alert('Fejl: Serveren stak mig i ryggen og skred. ' + request.status) } } } }; request.send(null); } /* Brain cursor chaser, version [0.0.4] Originally from: Splarka Notes: * Full of constants that can be tweaked. * Doesn't /have/ to be brains, but that was the design. * Movement is random, a smoother circular movement system might be cooler. */ var ismsie = (navigator.appName.toLowerCase().indexOf('internet explorer') != -1); var scrW, scrH, mouseX, mouseY, brainX = [0], brainY = [0], brainTimer; var brainR = 'http://img505.imageshack.us/img505/4064/brainr.png'; var brainL = 'http://img505.imageshack.us/img505/7910/brainl.png'; function initBrains() { var docobj = document.getElementById('globalWrapper') || document.body; appendCSS('.brain {position:absolute;z-index:3;}'); for(var i=0;i<5;i++) { var img = document.createElement('img'); img.src = 'file:///c:/goldrush/js/wiki/brain-r.png'; img.id = 'brain-' + i; brainX[i] = rand(10,150); brainY[i] = rand(10,150); img.style.left = (brainX[i] - 24) + 'px'; img.style.top = (brainY[i] - 20) + 'px'; img.style.zIndex = rand(2,4); img.className = 'brain'; docobj.appendChild(img); } screenResizeBrains(); if(!ismsie) document.captureEvents(Event.MOUSEMOVE) addHandler(document,'mousemove',mousemoveBrains); addHandler(window,'resize',screenResizeBrains); brainTimer = setTimeout('moveBrains()',1000); } addOnloadHook(initBrains); function moveBrains() { try { if(brainTimer != null) { clearTimeout(brainTimer); brainTimer = null; } } catch (e) { return; } if(!mouseX || !mouseY) return mx = mouseX; my = mouseY; var brains = getElementsByClassName(document.body,'img','brain'); for(var i=0;i<brains.length;i++) { var b = brains[i], bx = brainX[i], by = brainY[i]; var d = Math.sqrt(((bx - mx) * (bx - mx)) + ((by - my) * (by - my))); //distance var dr = Math.abs(bx - mx) / Math.abs(by - my), dx = 0, dy = 0; //delta ratio, deltaX,Y if(dr > 1) { dr = 1 / parseFloat(dr); dx = (1 - dr / 2); dy = dr / 2; } else { dx = dr / 2; dy = (1 - dr / 2); } if(bx > mx) { b.src = brainL; dx = -dx; } else { b.src = brainR; } if(by > my) dy = -dy brainX[i] += dx*15 + rand(-8,8); brainY[i] += dy*15 + rand(-8,8); b.style.left = (brainX[i] - 24) + 'px'; b.style.top = (brainY[i] - 20) + 'px'; } brainTimer = setTimeout('moveBrains()',100); } window.onresize = screenResizeBrains; function mousemoveBrains(e) { try { var debug = document.getElementById('debug'); if(ismsie) { var mx = event.clientX + document.body.scrollLeft; var my = event.clientY + document.body.scrollTop; } else { var mx = e.pageX; var my = e.pageY; } if (mx < 0) mx = 0 if (my < 0) my = 0 mouseX = mx; mouseY = my; if(brainTimer == null) brainTimer = setTimeout('moveBrains()',100) } catch (e) { return; } } function screenResizeBrains() { var docElement = (document.compatMode=='CSS1Compat') ? document.documentElement : document.body scrW = docElement.clientWidth; scrH = docElement.clientHeight; } function rand(n,z) { var s = (!z) ? 0 : z return Math.floor(Math.random() * (n - s) + s); }