// 1 || Math.abs(y - oy) > 1) { ox = x; oy = y; for (c = 0; c < sparkles; c++) { if (!starv[c]) { star[c].style.left = (starx[c] = x) + "px"; star[c].style.top = (stary[c] = y + 1) + "px"; star[c].style.clip = "rect(0px, 5px, 5px, 0px)"; star[c].childNodes[0].style.backgroundColor = star[c].childNodes[1].style.backgroundColor = (colour == "random") ? newColour() : colour; star[c].style.visibility = "visible"; starv[c] = 50; break; } } } for (c = 0; c < sparkles; c++) { if (starv[c]) update_star(c); if (tinyv[c]) update_tiny(c); } setTimeout(sparkle, 40); } function update_star(i) { if (--starv[i] == 25) star[i].style.clip = "rect(1px, 4px, 4px, 1px)"; if (starv[i]) { stary[i] += 1 + Math.random() * 3; starx[i] += (i % 5 - 2) / 5; if (stary[i] < shigh + sdown) { star[i].style.top = stary[i] + "px"; star[i].style.left = starx[i] + "px"; } else { star[i].style.visibility = "hidden"; starv[i] = 0; return; } } else { tinyv[i] = 50; tiny[i].style.top = (tinyy[i] = stary[i]) + "px"; tiny[i].style.left = (tinyx[i] = starx[i]) + "px"; tiny[i].style.width = "2px"; tiny[i].style.height = "2px"; tiny[i].style.backgroundColor = star[i].childNodes[0].style.backgroundColor; star[i].style.visibility = "hidden"; tiny[i].style.visibility = "visible" } } function update_tiny(i) { if (--tinyv[i] == 25) { tiny[i].style.width = "1px"; tiny[i].style.height = "1px"; } if (tinyv[i]) { tinyy[i] += 1 + Math.random() * 3; tinyx[i] += (i % 5 - 2) / 5; if (tinyy[i] < shigh + sdown) { tiny[i].style.top = tinyy[i] + "px"; tiny[i].style.left = tinyx[i] + "px"; } else { tiny[i].style.visibility = "hidden"; tinyv[i] = 0; return; } } else tiny[i].style.visibility = "hidden"; } document.onmousemove = mouse; document.ontouchmove = touch; function mouse(e) { if (e) { y = e.pageY; x = e.pageX; } else { set_scroll(); y = event.y + sdown; x = event.x + sleft; } } function touch(e) { if (e.touches.length > 0) { y = e.touches[0].pageY; x = e.touches[0].pageX; } } window.onscroll = set_scroll; function set_scroll() { if (typeof(self.pageYOffset) == 'number') { sdown = self.pageYOffset; sleft = self.pageXOffset; } else if (document.body && (document.body.scrollTop || document.body.scrollLeft)) { sdown = document.body.scrollTop; sleft = document.body.scrollLeft; } else if (document.documentElement && (document.documentElement.scrollTop || document.documentElement.scrollLeft)) { sleft = document.documentElement.scrollLeft; sdown = document.documentElement.scrollTop; } else { sdown = 0; sleft = 0; } } window.onresize = set_width; function set_width() { var sw_min = 999999; var sh_min = 999999; if (document.documentElement && document.documentElement.clientWidth) { if (document.documentElement.clientWidth > 0) sw_min = document.documentElement.clientWidth; if (document.documentElement.clientHeight > 0) sh_min = document.documentElement.clientHeight; } if (typeof(self.innerWidth) == 'number' && self.innerWidth) { if (self.innerWidth > 0 && self.innerWidth < sw_min) sw_min = self.innerWidth; if (self.innerHeight > 0 && self.innerHeight < sh_min) sh_min = self.innerHeight; } if (document.body.clientWidth) { if (document.body.clientWidth > 0 && document.body.clientWidth < sw_min) sw_min = document.body.clientWidth; if (document.body.clientHeight > 0 && document.body.clientHeight < sh_min) sh_min = document.body.clientHeight; } if (sw_min == 999999 || sh_min == 999999) { sw_min = 800; sh_min = 1600; } swide = sw_min; shigh = sh_min; } function createDiv(height, width) { var div = document.createElement("div"); div.style.position = "absolute"; div.style.height = height + "px"; div.style.width = width + "px"; div.style.overflow = "hidden"; return (div); } function newColour() { var colours = [ "rgb(255, 192, 203)", // Pink "rgb(255, 182, 193)", // Light Pink "rgb(255, 175, 185)", // Pale Pink "rgb(255, 20, 147)", // Deep Pink "rgb(218, 112, 214)", // Orchid "rgb(186, 85, 211)", // Medium Orchid "rgb(160, 32, 240)", // Purple "rgb(128, 0, 128)", // Dark Magenta "rgb(75, 0, 130)", // Indigo "rgb(72, 61, 139)", // Dark Slate Blue "rgb(65, 105, 225)", // Royal Blue "rgb(30, 144, 255)", // Dodger Blue "rgb(0, 0, 255)", // Blue "rgb(0, 191, 255)", // Deep Sky Blue "rgb(135, 206, 235)", // Sky Blue "rgb(173, 216, 230)" // Light Blue ]; return colours[Math.floor(Math.random() * colours.length)]; } // ]]>