/* Original: Stefano Occhetti E-mail: starnuto_di_topo@hotmil.com Web Site: http://www.geocities.com/starnuto_di_topo_2001 */ var ns = (document.layers)?1:0; var imgwidth=40; // Image width var imgheight=40; // Image height /* Fly: this code provides some facilities to show a fly moving on the screen. The fly does not actually follow the mouse, but a "Dot" (not shown!). ------------------------------------------------ */ (document.layers)?window.captureEvents(Event.MOUSEMOVE):0; (document.layers)?window.onMouseMove=getMousePosition:document.onmousemove=getMousePosition; var Dot_Ro=60; //Dot's distance from the mouse pointer var Dot_Theta=0; //Dot's initial angle var Dot_Speed; //Dot's absolute Angular speed var Dot_Direction=1; //Dot's direction (1=clockwise) var Dot_x=0; //Dot's original position var Dot_y=0; var alpha; //Angle from the fly to the mouse var mult; //Ausiliary variable to define the angle var picX = 20; //Fly's coords. var picY = 100; var mouseX = 0; //Mouse coords. var mouseY = 0; var step = 10; //Pixels var speed = 100;//u-seconds // Dir specifies the right picture; // img pre-caches images. var dir = Array(); dir[-4]="Mosca_3.gif"; dir[-1]="Mosca_6.gif"; dir[-2]="Mosca_5.gif"; dir[-3]="Mosca_4.gif"; dir[3]="Mosca_8.gif"; dir[4]="Mosca_7.gif"; dir[1]="Mosca_2.gif"; dir[2]="Mosca_1.gif"; dir[0]="blank.png"; var img = Array(); for (var i=-4; i<5; i++){ img[i]=new Image(); img[i].src="https://x00.pw/layout/img/fly/"+dir[i]; } // Some HTML code to show the fly. if (ns) { document.write(""); }else { document.write("
"); document.write("
"); //document.write("
"); } // Shows the proper image for the fly. function display(direction) { //direction must be from -4 to 4, but not 0. if (ns) { document.pic.src = img[direction].src; }else{ pic.src = img[direction].src; } } function getMousePosition(e) { mouseY=(ns)?e.pageY:window.event.y + document.body.scrollTop; mouseX=(ns)?e.pageX:window.event.x + document.body.scrollLeft; } //Calculate new position function calcNewPos() { /* All this calculations make the Dot to come near the mouse-pointer and the fly to follow the dot. */ //document.getElementById('FlyMousePos').innerHTML = 'calcNewPos mouseY = ' + mouseY + ' mouseY = ' + mouseX; var dist=Math.sqrt(Math.pow(mouseY-picY,2) + Math.pow(mouseX-picX,2)); Dot_Speed=Math.PI/15; Dot_Theta+=Dot_Direction*Dot_Speed; Dot_x=mouseX+Dot_Ro*Math.cos(Dot_Theta); Dot_y=mouseY+Dot_Ro*Math.sin(Dot_Theta); var arg = (Dot_y-picY) / (Dot_x-picX); mult = (Dot_x - picX < 0)? mult = -1:1; alpha = Math.atan(arg); var dx = mult * step * Math.cos(alpha); var dy = mult * step * Math.sin(alpha); picX += dx; picY += dy; } // Moves the fly around the screen function moveFly() { // moves the fly in a new position... calcNewPos(); var cor_pos = 0; if (picY < 200) { cor_pos = 200 } //document.getElementById('FlyMousePos').innerHTML = 'moveFly mouseX = ' + mouseX + ' mouseY = ' + mouseY + ' picX = ' + picX + ' picY = ' + picY + ' cor_pos = ' + cor_pos; if (ns) { document.layers['FlyDiv'].left = (picX + cor_pos); document.layers['FlyDiv'].top = (picY + cor_pos); }else{ FlyDiv.style.left = (picX + cor_pos) - pic.width / 2; FlyDiv.style.top = (picY + cor_pos) - pic.height / 2; } // ... and changes the image. alpha=-180*alpha/Math.PI; alpha+=22.5; var OK=0; for(var i=0; (i<4)&& !OK; i++){ if (alpha<-Math.PI+45*i){ display(mult*(i+1)); OK=1; } } } // Changes Dot's turning direction function ChangeDotDirection() { Dot_Direction=-Dot_Direction; Dot_Theta+=Math.PI; } //Go! setInterval('moveFly()', speed); setInterval('ChangeDotDirection()', speed*50); /* The end. ------------------------------------------------ */ var obj_spooky_timer = undefined; var spooky_time = 2500; var spooky_mode = false; if (reqparam_state('spooky_mode','1') == true) { spooky_mode_show_fly(); spooky_mode = true; } else if (reqparam_state('spooky_mode','0') == true) { if (spooky_mode == true) { disable_spooky_mode(); } } else { //spooky_mode_show_fly(); //spooky_mode = true; } function spooky_mode_show_fly() { show_fly(); obj_spooky_timer = setTimeout(function(){spooky_mode_hide_fly()},spooky_time); } function spooky_mode_hide_fly() { hide_fly(); obj_spooky_timer = setTimeout(function(){spooky_mode_show_fly()},spooky_time); } function fly_dsm() { disable_spooky_mode(); } function disable_spooky_mode() { clearTimeout(obj_spooky_timer); show_fly(); spooky_mode = false; //alert('SpookyMode Disabled'); } function show_fly() { for (i = 0; i <= 10; i++) { fly_opacity(i); } document.getElementById("FlyDiv").style.display = "block"; } function hide_fly() { for (i = 10; i >= 0; i--) { fly_opacity(i); } document.getElementById("FlyDiv").style.display = "none"; } function fly_opacity(x) { if (x==10) { //document.getElementById("FlyDiv").style.opacity = "1.0"; } else { //document.getElementById("FlyDiv").style.opacity = "0." + x.toString(); } } function reqparam_state(var_param_name,var_param_value){ var a = location.search&&location.search.substr(1).replace(/\+/gi," ").split("&"); for (var i in a) { var s = a[i].split("="); a[i] = a[unescape(s[0])] = unescape(s[1]); } for (i in a) { if (i == var_param_name){ if (a[i] == var_param_value){ return true } } else { //alert('if_reqparam_state nope (' + i + ') = ' + a[i]); } }; return false }