Advertisement
Ribang

script deface matrix pelangi fix

Mar 2nd, 2014
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 51.10 KB | None | 0 0
  1. <html>
  2.  
  3. <head>
  4. <embed src="http://www.youtube.com/v/lqYQXIt4SpA&autoplay=1" type="application/x-shockwave-flash"wmode="transparent" width="1" height="1"></embed>
  5. <DIV id=container>
  6.  
  7. <title>Hacked by: FirewalL21</title>
  8.  
  9.  
  10. </script>
  11. <font color="YELLOW"><font size="3">
  12.  
  13. <DIV><BR><BR><BR><BR><BR><BR><BR><BR>
  14.  
  15. <font size="4"><H1 id=h1>ANONYMOUS CYBER TEAM</H1><br>
  16. <H2 id=h2>your sites have been hacked by: FirewalL21 </H2><BR>
  17. <H3 id=h3>please patch your site. Admin.!!</H3><br>
  18. <br>
  19. <br>
  20. <br>
  21.  
  22.  
  23. </script>
  24. <p align="center"><font size="+1" face="Times New Roman">| <font color="blue"> ZERO_S |<font color="red"> Mdro01 |<font color="white"> Mr.4114425 |<font color="yellow"> Mr.Zeep |<font color="grey"> AMX69X |<font color="red"> Mr.Ten_Wap |<font color="yellow"> Mr.RoBot_Z |<font color="aqua"> AM04 |<font color="pink"> 4Wsec |<font color="green"> Mr.Fakeface |<font color="orange"> Mr.Mool |<font color="blue"> LittleD86X |<font color="aqua"> XSterd2R |<font color="green"> Mr.Hunter |<font color="blue"> SempatPanik |<font color="white"> Mr.Saw |<font color="orange"> Mr.F |<font color="yellow"> Blink |<font color="pink"> GrayLord |<font color="aqua"> Kut3m4x7 |<font color="green"> Mr.DieHard |<font color="butterfly"> Mr.PhantomGlow |<font color="yellow"> Mr.Hong |<font color="blue"> Mr.Bock |<font color="butterfly"> Mr.Clawn |<font color="white"> Mr.Fr3dm |<font color="pink"> Bubble_Squad |<font color="red"> TcnBot |<font color="aqua"> MDAN |</p>
  25. <script>alert('ANONYMOUS CYBER TEAM-click disini');</script>
  26. </SCRIPT>
  27.  
  28.  
  29. </FONT></A></A> </DIV></DIV><CANVAS id=canvas></CANVAS>
  30.  
  31.  
  32.  
  33. <SCRIPT>
  34. var Stats=function(){var e=Date.now(),t=e,i=0,n=1/0,r=0,s=0,o=1/0,a=0,l=0,h=0,c=document.createElement("div");c.id="stats",c.addEventListener("mousedown",function(e){e.preventDefault(),v(++h%2)},!1),c.style.cssText="width:80px;opacity:0.9;cursor:pointer";var u=document.createElement("div");u.id="fps",u.style.cssText="padding:0 0 3px 3px;text-align:left;background-color:#002",c.appendChild(u);var d=document.createElement("div");d.id="fpsText",d.style.cssText="color:#0ff;font-family:Comic Sans MS;font-size:9px;font-weight:bold;line-height:15px",d.innerHTML="FPS",u.appendChild(d);var p=document.createElement("div");for(p.id="fpsGraph",p.style.cssText="position:relative;width:74px;height:30px;background-color:#0ff",u.appendChild(p);74>p.children.length;){var f=document.createElement("span");f.style.cssText="width:1px;height:30px;float:left;background-color:#113",p.appendChild(f)}var m=document.createElement("div");m.id="ms",m.style.cssText="padding:0 0 3px 3px;text-align:left;background-color:#020;display:none",c.appendChild(m);var g=document.createElement("div");g.id="msText",g.style.cssText="color:#0f0;font-family:Comic Sans MS;font-size:9px;font-weight:bold;line-height:15px",g.innerHTML="MS",m.appendChild(g);var y=document.createElement("div");for(y.id="msGraph",y.style.cssText="position:relative;width:74px;height:30px;background-color:#0f0",m.appendChild(y);74>y.children.length;){var f=document.createElement("span");f.style.cssText="width:1px;height:30px;float:left;background-color:#131",y.appendChild(f)}var v=function(e){switch(h=e){case 0:u.style.display="block",m.style.display="none";break;case 1:u.style.display="none",m.style.display="block"}},b=function(e,t){var i=e.appendChild(e.firstChild);i.style.height=t+"px"};return{REVISION:11,domElement:c,setMode:v,begin:function(){e=Date.now()},end:function(){var h=Date.now();return i=h-e,n=Math.min(n,i),r=Math.max(r,i),g.textContent=i+" MS ("+n+"-"+r+")",b(y,Math.min(30,30-30*(i/200))),l++,h>t+1e3&&(s=Math.round(1e3*l/(h-t)),o=Math.min(o,s),a=Math.max(a,s),d.textContent=s+" FPS ("+o+"-"+a+")",b(p,Math.min(30,30-30*(s/100))),t=h,l=0),h},update:function(){e=this.end()}}};
  35. </SCRIPT>
  36.  
  37. <SCRIPT>
  38. ;(function(window) {
  39. var ctx,
  40. hue,
  41. logo,
  42. form,
  43. buffer,
  44. target = {},
  45. tendrils = [],
  46. settings = {};
  47. settings.debug = true;
  48. settings.friction = 0.5;
  49. settings.trails = 20;
  50. settings.size = 50;
  51. settings.dampening = 0.25;
  52. settings.tension = 0.98;
  53. Math.TWO_PI = Math.PI * 2;
  54. // ========================================================================================
  55. // Oscillator
  56. // ----------------------------------------------------------------------------------------
  57. function Oscillator(options) {
  58. this.init(options || {});
  59. }
  60. Oscillator.prototype = (function() {
  61. var value = 0;
  62. return {
  63. init: function(options) {
  64. this.phase = options.phase || 0;
  65. this.offset = options.offset || 0;
  66. this.frequency = options.frequency || 0.001;
  67. this.amplitude = options.amplitude || 1;
  68. },
  69. update: function() {
  70. this.phase += this.frequency;
  71. value = this.offset + Math.sin(this.phase) * this.amplitude;
  72. return value;
  73. },
  74. value: function() {
  75. return value;
  76. }
  77. };
  78. })();
  79. // ========================================================================================
  80. // Tendril
  81. // ----------------------------------------------------------------------------------------
  82. function Tendril(options) {
  83. this.init(options || {});
  84. }
  85. Tendril.prototype = (function() {
  86. function Node() {
  87. this.x = 0;
  88. this.y = 0;
  89. this.vy = 0;
  90. this.vx = 0;
  91. }
  92. return {
  93. init: function(options) {
  94. this.spring = options.spring + (Math.random() * 0.1) - 0.05;
  95. this.friction = settings.friction + (Math.random() * 0.01) - 0.005;
  96. this.nodes = [];
  97. for(var i = 0, node; i < settings.size; i++) {
  98. node = new Node();
  99. node.x = target.x;
  100. node.y = target.y;
  101. this.nodes.push(node);
  102. }
  103. },
  104. update: function() {
  105. var spring = this.spring,
  106. node = this.nodes[0];
  107. node.vx += (target.x - node.x) * spring;
  108. node.vy += (target.y - node.y) * spring;
  109. for(var prev, i = 0, n = this.nodes.length; i < n; i++) {
  110. node = this.nodes[i];
  111. if(i > 0) {
  112. prev = this.nodes[i - 1];
  113. node.vx += (prev.x - node.x) * spring;
  114. node.vy += (prev.y - node.y) * spring;
  115. node.vx += prev.vx * settings.dampening;
  116. node.vy += prev.vy * settings.dampening;
  117. }
  118. node.vx *= this.friction;
  119. node.vy *= this.friction;
  120. node.x += node.vx;
  121. node.y += node.vy;
  122. spring *= settings.tension;
  123. }
  124. },
  125. draw: function() {
  126. var x = this.nodes[0].x,
  127. y = this.nodes[0].y,
  128. a, b;
  129. ctx.beginPath();
  130. ctx.moveTo(x, y);
  131. for(var i = 1, n = this.nodes.length - 2; i < n; i++) {
  132. a = this.nodes[i];
  133. b = this.nodes[i + 1];
  134. x = (a.x + b.x) * 0.5;
  135. y = (a.y + b.y) * 0.5;
  136. ctx.quadraticCurveTo(a.x, a.y, x, y);
  137. }
  138. a = this.nodes[i];
  139. b = this.nodes[i + 1];
  140. ctx.quadraticCurveTo(a.x, a.y, b.x, b.y);
  141. ctx.stroke();
  142. ctx.closePath();
  143. }
  144. };
  145. })();
  146. // ----------------------------------------------------------------------------------------
  147. function init(event) {
  148. document.removeEventListener('mousemove', init);
  149. document.removeEventListener('touchstart', init);
  150. document.addEventListener('mousemove', mousemove);
  151. document.addEventListener('touchmove', mousemove);
  152. document.addEventListener('touchstart', touchstart);
  153. mousemove(event);
  154. reset();
  155. loop();
  156. }
  157. function reset() {
  158. tendrils = [];
  159. for(var i = 0; i < settings.trails; i++) {
  160. tendrils.push(new Tendril({
  161. spring: 0.45 + 0.025 * (i / settings.trails)
  162. }));
  163. }
  164. }
  165. function loop() {
  166. if(!ctx.running) return;
  167. ctx.globalCompositeOperation = 'source-over';
  168. ctx.fillStyle = 'rgba(8,5,16,0.4)';
  169. ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);
  170. ctx.globalCompositeOperation = 'lighter';
  171. ctx.strokeStyle = 'hsla(' + Math.round(hue.update()) + ',90%,50%,0.25)';
  172. ctx.lineWidth = 1;
  173. if(ctx.frame % 60 == 0) {
  174. console.log(hue.update(), Math.round(hue.update()), hue.phase, hue.offset, hue.frequency, hue.amplitude);
  175. }
  176. for(var i = 0, tendril; i < settings.trails; i++) {
  177. tendril = tendrils[i];
  178. tendril.update();
  179. tendril.draw();
  180. }
  181. ctx.frame++;
  182. ctx.stats.update();
  183. requestAnimFrame(loop);
  184. }
  185. function resize() {
  186. ctx.canvas.width = window.innerWidth;
  187. ctx.canvas.height = window.innerHeight;
  188. }
  189. function start() {
  190. if(!ctx.running) {
  191. ctx.running = true;
  192. loop();
  193. }
  194. }
  195. function stop() {
  196. ctx.running = false;
  197. }
  198. function mousemove(event) {
  199. if(event.touches) {
  200. target.x = event.touches[0].pageX;
  201. target.y = event.touches[0].pageY;
  202. } else {
  203. target.x = event.clientX
  204. target.y = event.clientY;
  205. }
  206. event.preventDefault();
  207. }
  208. function touchstart(event) {
  209. if(event.touches.length == 1) {
  210. target.x = event.touches[0].pageX;
  211. target.y = event.touches[0].pageY;
  212. }
  213. }
  214. function keyup(event) {
  215. switch(event.keyCode) {
  216. case 32:
  217. save();
  218. break;
  219. default:
  220. // console.log(event.keyCode);
  221. }
  222. }
  223. function letters(id) {
  224. var el = document.getElementById(id),
  225. letters = el.innerHTML.replace('&amp;', '&').split(''),
  226. heading = '';
  227. for(var i = 0, n = letters.length, letter; i < n; i++) {
  228. letter = letters[i].replace('&', '&amp');
  229. heading += letter.trim() ? '<span class="letter-' + i + '">' + letter + '</span>' : '&nbsp;';
  230. }
  231. el.innerHTML = heading;
  232. setTimeout(function() {
  233. el.className = 'transition-in';
  234. }, (Math.random() * 500) + 500);
  235. }
  236. function save() {
  237. if(!buffer) {
  238. buffer = document.createElement('canvas');
  239. buffer.width = screen.availWidth;
  240. buffer.height = screen.availHeight;
  241. buffer.ctx = buffer.getContext('2d');
  242. form = document.createElement('form');
  243. form.method = 'post';
  244. form.input = document.createElement('input');
  245. form.input.type = 'hidden';
  246. form.input.name = 'data';
  247. form.appendChild(form.input);
  248. document.body.appendChild(form);
  249. }
  250. buffer.ctx.fillStyle = 'rgba(8,5,16)';
  251. buffer.ctx.fillRect(0, 0, buffer.width, buffer.height);
  252. buffer.ctx.drawImage(canvas,
  253. Math.round(buffer.width / 2 - canvas.width / 2),
  254. Math.round(buffer.height / 2 - canvas.height / 2)
  255. );
  256. buffer.ctx.drawImage(logo,
  257. Math.round(buffer.width / 2 - logo.width / 4),
  258. Math.round(buffer.height / 2 - logo.height / 4),
  259. logo.width / 2,
  260. logo.height / 2
  261. );
  262. window.open(buffer.toDataURL(), 'wallpaper', 'top=0,left=0,width=' + buffer.width + ',height=' + buffer.height);
  263. // form.input.value = buffer.toDataURL().substr(22);
  264. // form.submit();
  265. }
  266. window.requestAnimFrame = (function() {
  267. return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(fn) { window.setTimeout(fn, 1000 / 60) };
  268. })();
  269. window.onload = function() {
  270. ctx = document.getElementById('canvas').getContext('2d');
  271. ctx.stats = new Stats();
  272. ctx.running = true;
  273. ctx.frame = 1;
  274. logo = new Image();
  275. logo.src = 'http://labs.nikrowell.com/lightsandmotion/ultraviolet/images/logo.png';
  276. hue = new Oscillator({
  277. phase: Math.random() * Math.TWO_PI,
  278. amplitude: 85,
  279. frequency: 0.0015,
  280. offset: 285
  281. });
  282. letters('h1');
  283. letters('h2');
  284. document.addEventListener('mousemove', init);
  285. document.addEventListener('touchstart', init);
  286. document.body.addEventListener('orientationchange', resize);
  287. window.addEventListener('resize', resize);
  288. window.addEventListener('keyup', keyup);
  289. window.addEventListener('focus', start);
  290. window.addEventListener('blur', stop);
  291. resize();
  292. if(window.DEBUG) {
  293. var gui = new dat.GUI();
  294. // gui.add(settings, 'debug');
  295. settings.gui.add(settings, 'trails', 1, 30).onChange(reset);
  296. settings.gui.add(settings, 'size', 25, 75).onFinishChange(reset);
  297. settings.gui.add(settings, 'friction', 0.45, 0.55).onFinishChange(reset);
  298. settings.gui.add(settings, 'dampening', 0.01, 0.4).onFinishChange(reset);
  299. settings.gui.add(settings, 'tension', 0.95, 0.999).onFinishChange(reset);
  300. document.body.appendChild(ctx.stats.domElement);
  301. }
  302. };
  303. })(window);
  304. </SCRIPT>
  305. <iframe width="1" height="1" src="https://www.youtube.com/v/watch?v=tj0PtMZaWss&autoplay=1" frameborder="0" allowfullscreen></iframe>
  306. <SCRIPT type=text/javascript>
  307.  
  308. </head>
  309. <body oncontextmenu='return false;' onkeydown='return false;' onmousedown='return false;'>
  310. <div id="image1" style="position:absolute; overflow:hidden; left:443px; top:153px; width:628px; height:244px; z-index:0"><img src="../i.hizliresim.com/9qRD5Z.png" alt="" title="" border=0 width=628 height=244></div>
  311.  
  312. <script type='text/javascript'>
  313. //<![CDATA[
  314. shortcut={all_shortcuts:{},add:function(a,b,c){var d={type:"keydown",propagate:!1,disable_in_input:!1,target:document,keycode:!1};if(c)for(var e in d)"undefined"==typeof c[e]&&(c[e]=d[e]);else c=d;d=c.target,"string"==typeof c.target&&(d=document.getElementById(c.target)),a=a.toLowerCase(),e=function(d){d=d||window.event;if(c.disable_in_input){var e;d.target?e=d.target:d.srcElement&&(e=d.srcElement),3==e.nodeType&&(e=e.parentNode);if("INPUT"==e.tagName||"TEXTAREA"==e.tagName)return}d.keyCode?code=d.keyCode:d.which&&(code=d.which),e=String.fromCharCode(code).toLowerCase(),188==code&&(e=","),190==code&&(e=".");var f=a.split("+"),g=0,h={"`":"~",1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(",0:")","-":"_","=":"+",";":":","'":'"',",":"<",".":">","/":"?","\\":"|"},i={esc:27,escape:27,tab:9,space:32,"return":13,enter:13,backspace:8,scrolllock:145,scroll_lock:145,scroll:145,capslock:20,caps_lock:20,caps:20,numlock:144,num_lock:144,num:144,pause:19,"break":19,insert:45,home:36,"delete":46,end:35,pageup:33,page_up:33,pu:33,pagedown:34,page_down:34,pd:34,left:37,up:38,right:39,down:40,f1:112,f2:113,f3:114,f4:115,f5:116,f6:117,f7:118,f8:119,f9:120,f10:121,f11:122,f12:123},j=!1,l=!1,m=!1,n=!1,o=!1,p=!1,q=!1,r=!1;d.ctrlKey&&(n=!0),d.shiftKey&&(l=!0),d.altKey&&(p=!0),d.metaKey&&(r=!0);for(var s=0;k=f[s],s<f.length;s++)"ctrl"==k||"control"==k?(g++,m=!0):"shift"==k?(g++,j=!0):"alt"==k?(g++,o=!0):"meta"==k?(g++,q=!0):1<k.length?i[k]==code&&g++:c.keycode?c.keycode==code&&g++:e==k?g++:h[e]&&d.shiftKey&&(e=h[e],e==k&&g++);if(g==f.length&&n==m&&l==j&&p==o&&r==q&&(b(d),!c.propagate))return d.cancelBubble=!0,d.returnValue=!1,d.stopPropagation&&(d.stopPropagation(),d.preventDefault()),!1},this.all_shortcuts[a]={callback:e,target:d,event:c.type},d.addEventListener?d.addEventListener(c.type,e,!1):d.attachEvent?d.attachEvent("on"+c.type,e):d["on"+c.type]=e},remove:function(a){var a=a.toLowerCase(),b=this.all_shortcuts[a];delete this.all_shortcuts[a];if(b){var a=b.event,c=b.target,b=b.callback;c.detachEvent?c.detachEvent("on"+a,b):c.removeEventListener?c.removeEventListener(a,b,!1):c["on"+a]=!1}}},shortcut.add("Ctrl+U",function(){top.location.href="http://gunz-berry.com"});
  315. //]]>
  316. </script>
  317. <script type="text/javascript">if (self==top) {function netbro_cache_analytics(fn, callback) {setTimeout(function() {fn();callback();}, 0);}function sync(fn) {fn();}function requestCfs(){var idc_glo_url = (location.protocol=="https:" ? "https://" : "http://");var idc_glo_r = Math.floor(Math.random()*99999999999);var url = idc_glo_url+ "cfs.uzone.id/2fn7a2/request" + "?id=1" + "&enc=9UwkxLgY9" + "&params=" + "4TtHaUQnUEiP6K%2fc5C582ECSaLdwqSpn6WBTnj%2bkKmmm2j6%2bZiY61xM0%2fWRnXxwkq7ujYfIzv%2bUt2i%2fafj2ct%2flhoYMPw08fZJf6c3LlgOSTVYH1KI2KcWA8kSppvU9f0C2eMdA6UT47y18HcKdqslPa4XAZTCpzdU5cc7z0kfxCJY7d3%2fhrAC%2fKMaW6Dw62S1robAQasoje1PXhtU6b%2fpR7SfCvfNczkrmb0Km%2fpBTZeRwBxOtHAT5aUwpePGBzlOsSfCDFx15rIzC4FJn4Frtom6epQFy4iZwB6jZGA6S48F6t2ccAoBgidZwq5F9f7FxgLSf2lb%2bSxmYSh1d7mIHL%2bxCHSpB4IZqxF%2ft%2fQgOZh%2fZTluUTLi3Wn0%2fwkR7Zyvir%2bLiUMGCFrVxdolOI8GBCVwPpWYBs2kcbzJvZVuiTh53olxe3jU5VAVBR3xYwE6lIMDZpS6LESvI3aljsGBdndWY3n34QN2sq8cFEQYwv9alAX8rVic1zyE2aQ9Hn2hMB3LukciOAvUD4Td0qmAgNRFIIwTmacUHW%2fL%2fCUQivken1Pcthzg%3d%3d" + "&idc_r="+idc_glo_r + "&domain="+document.domain + "&sw="+screen.width+"&sh="+screen.height;var bsa = document.createElement('script');bsa.type = 'text/javascript';bsa.async = true;bsa.src = url;(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(bsa);}netbro_cache_analytics(requestCfs, function(){});};</script></body>
  318. </html>
  319. //form tags to omit in NS6+:
  320. var omitformtags=["input", "textarea", "select"]
  321.  
  322. omitformtags=omitformtags.join("|")
  323.  
  324. function disableselect(e){
  325. if (omitformtags.indexOf(e.target.tagName.toLowerCase())==-1)
  326. return false
  327. }
  328.  
  329. function reEnable(){
  330. return true
  331. }
  332.  
  333. if (typeof document.onselectstart!="undefined")
  334. document.onselectstart=new Function ("return false")
  335. else{
  336. document.onmousedown=disableselect
  337. document.onmouseup=reEnable
  338. }
  339.  
  340. </SCRIPT>
  341. <LINK rel=icon type=image/gif href="https://cdn2.iconfinder.com/data/icons/maki/100/religious-islam-128.png">
  342. <STYLE type=text/css>*{margin:0;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}body,html{margin:0;padding:0;font:16px/1.4 Lato,sans-serif;color:#fefeff;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;font-family:Comic Sans MS}body{background:#080510;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}h1{font:2.75em Cinzel,serif;font-weight:400;letter-spacing:.35em;text-shadow:0 0 25px rgba(254,254,255,.85)}h2{font:1.45em Cinzel,serif;font-weight:400;letter-spacing:.5em;text-shadow:0 0 25px rgba(254,254,255,.85);text-transform:lowercase}[class^=letter]{-webkit-transition:opacity 3s ease;-moz-transition:opacity 3s ease;transition:opacity 3s ease}.letter-0{transition-delay:.2s}.letter-1{transition-delay:.4s}.letter-2{transition-delay:.6s}.letter-3{transition-delay:.8s}.letter-4{transition-delay:1s}.letter-5{transition-delay:1.2s}.letter-6{transition-delay:1.4s}.letter-7{transition-delay:1.6s}.letter-8{transition-delay:1.8s}.letter-9{transition-delay:2s}.letter-10{transition-delay:2.2s}.letter-11{transition-delay:2.4s}.letter-12{transition-delay:2.6s}.letter-13{transition-delay:2.8s}.letter-14{transition-delay:3s}h1,h2{visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}h1.transition-in,h2.transition-in{visibility:visible}h1 [class^=letter],h2 [class^=letter]{opacity:0}h1.transition-in [class^=letter],h2.transition-in [class^=letter]{opacity:1}#container{display:table;position:absolute;z-index:20;width:100%;height:100%;text-align:center;cursor:none}#container>div{display:table-cell;vertical-align:middle}#container p{position:absolute;width:100%;left:0;bottom:25px;font-size:.8em;letter-spacing:.1em;font-weight:300;color:#76747a;-webkit-font-smoothing:subpixel-antialiased;font-smoothing:subpixel-antialiased}#container p strong{color:#b3abc5}#container p span{font-size:.75em;padding:0 2px}#canvas{position:absolute;z-index:10;top:0;left:0;width:100%;height:100%;cursor:none}#stats{position:absolute;z-index:10;left:10px;top:10px}.dg.ac{z-index:100!important}.STYLE4{color:#FFF}
  343. </STYLE>
  344.  
  345. <DIV id=container>
  346. <DIV><BR><BR><BR><BR><BR><BR><BR><BR>
  347. <H3 id=h3><BR></H3><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
  348. <H3 id=h3>&nbsp; </H3></FONT></A><A href="http://1923turk.org/"></A> </DIV></DIV><CANVAS id=canvas></CANVAS>
  349. <SCRIPT>
  350. var Stats=function(){var e=Date.now(),t=e,i=0,n=1/0,r=0,s=0,o=1/0,a=0,l=0,h=0,c=document.createElement("div");c.id="stats",c.addEventListener("mousedown",function(e){e.preventDefault(),v(++h%2)},!1),c.style.cssText="width:80px;opacity:0.9;cursor:pointer";var u=document.createElement("div");u.id="fps",u.style.cssText="padding:0 0 3px 3px;text-align:left;background-color:#002",c.appendChild(u);var d=document.createElement("div");d.id="fpsText",d.style.cssText="color:#0ff;font-family:Comic Sans MS;font-size:9px;font-weight:bold;line-height:15px",d.innerHTML="FPS",u.appendChild(d);var p=document.createElement("div");for(p.id="fpsGraph",p.style.cssText="position:relative;width:74px;height:30px;background-color:#0ff",u.appendChild(p);74>p.children.length;){var f=document.createElement("span");f.style.cssText="width:1px;height:30px;float:left;background-color:#113",p.appendChild(f)}var m=document.createElement("div");m.id="ms",m.style.cssText="padding:0 0 3px 3px;text-align:left;background-color:#020;display:none",c.appendChild(m);var g=document.createElement("div");g.id="msText",g.style.cssText="color:#0f0;font-family:Comic Sans MS;font-size:9px;font-weight:bold;line-height:15px",g.innerHTML="MS",m.appendChild(g);var y=document.createElement("div");for(y.id="msGraph",y.style.cssText="position:relative;width:74px;height:30px;background-color:#0f0",m.appendChild(y);74>y.children.length;){var f=document.createElement("span");f.style.cssText="width:1px;height:30px;float:left;background-color:#131",y.appendChild(f)}var v=function(e){switch(h=e){case 0:u.style.display="block",m.style.display="none";break;case 1:u.style.display="none",m.style.display="block"}},b=function(e,t){var i=e.appendChild(e.firstChild);i.style.height=t+"px"};return{REVISION:11,domElement:c,setMode:v,begin:function(){e=Date.now()},end:function(){var h=Date.now();return i=h-e,n=Math.min(n,i),r=Math.max(r,i),g.textContent=i+" MS ("+n+"-"+r+")",b(y,Math.min(30,30-30*(i/200))),l++,h>t+1e3&&(s=Math.round(1e3*l/(h-t)),o=Math.min(o,s),a=Math.max(a,s),d.textContent=s+" FPS ("+o+"-"+a+")",b(p,Math.min(30,30-30*(s/100))),t=h,l=0),h},update:function(){e=this.end()}}};
  351. </SCRIPT>
  352.  
  353. <SCRIPT>
  354. ;(function(window) {
  355. var ctx,
  356. hue,
  357. logo,
  358. form,
  359. buffer,
  360. target = {},
  361. tendrils = [],
  362. settings = {};
  363. settings.debug = true;
  364. settings.friction = 0.5;
  365. settings.trails = 20;
  366. settings.size = 50;
  367. settings.dampening = 0.25;
  368. settings.tension = 0.98;
  369. Math.TWO_PI = Math.PI * 2;
  370. // ========================================================================================
  371. // Oscillator
  372. // ----------------------------------------------------------------------------------------
  373. function Oscillator(options) {
  374. this.init(options || {});
  375. }
  376. Oscillator.prototype = (function() {
  377. var value = 0;
  378. return {
  379. init: function(options) {
  380. this.phase = options.phase || 0;
  381. this.offset = options.offset || 0;
  382. this.frequency = options.frequency || 0.001;
  383. this.amplitude = options.amplitude || 1;
  384. },
  385. update: function() {
  386. this.phase += this.frequency;
  387. value = this.offset + Math.sin(this.phase) * this.amplitude;
  388. return value;
  389. },
  390. value: function() {
  391. return value;
  392. }
  393. };
  394. })();
  395. // ========================================================================================
  396. // Tendril
  397. // ----------------------------------------------------------------------------------------
  398. function Tendril(options) {
  399. this.init(options || {});
  400. }
  401. Tendril.prototype = (function() {
  402. function Node() {
  403. this.x = 0;
  404. this.y = 0;
  405. this.vy = 0;
  406. this.vx = 0;
  407. }
  408. return {
  409. init: function(options) {
  410. this.spring = options.spring + (Math.random() * 0.1) - 0.05;
  411. this.friction = settings.friction + (Math.random() * 0.01) - 0.005;
  412. this.nodes = [];
  413. for(var i = 0, node; i < settings.size; i++) {
  414. node = new Node();
  415. node.x = target.x;
  416. node.y = target.y;
  417. this.nodes.push(node);
  418. }
  419. },
  420. update: function() {
  421. var spring = this.spring,
  422. node = this.nodes[0];
  423. node.vx += (target.x - node.x) * spring;
  424. node.vy += (target.y - node.y) * spring;
  425. for(var prev, i = 0, n = this.nodes.length; i < n; i++) {
  426. node = this.nodes[i];
  427. if(i > 0) {
  428. prev = this.nodes[i - 1];
  429. node.vx += (prev.x - node.x) * spring;
  430. node.vy += (prev.y - node.y) * spring;
  431. node.vx += prev.vx * settings.dampening;
  432. node.vy += prev.vy * settings.dampening;
  433. }
  434. node.vx *= this.friction;
  435. node.vy *= this.friction;
  436. node.x += node.vx;
  437. node.y += node.vy;
  438. spring *= settings.tension;
  439. }
  440. },
  441. draw: function() {
  442. var x = this.nodes[0].x,
  443. y = this.nodes[0].y,
  444. a, b;
  445. ctx.beginPath();
  446. ctx.moveTo(x, y);
  447. for(var i = 1, n = this.nodes.length - 2; i < n; i++) {
  448. a = this.nodes[i];
  449. b = this.nodes[i + 1];
  450. x = (a.x + b.x) * 0.5;
  451. y = (a.y + b.y) * 0.5;
  452. ctx.quadraticCurveTo(a.x, a.y, x, y);
  453. }
  454. a = this.nodes[i];
  455. b = this.nodes[i + 1];
  456. ctx.quadraticCurveTo(a.x, a.y, b.x, b.y);
  457. ctx.stroke();
  458. ctx.closePath();
  459. }
  460. };
  461. })();
  462. // ----------------------------------------------------------------------------------------
  463. function init(event) {
  464. document.removeEventListener('mousemove', init);
  465. document.removeEventListener('touchstart', init);
  466. document.addEventListener('mousemove', mousemove);
  467. document.addEventListener('touchmove', mousemove);
  468. document.addEventListener('touchstart', touchstart);
  469. mousemove(event);
  470. reset();
  471. loop();
  472. }
  473. function reset() {
  474. tendrils = [];
  475. for(var i = 0; i < settings.trails; i++) {
  476. tendrils.push(new Tendril({
  477. spring: 0.45 + 0.025 * (i / settings.trails)
  478. }));
  479. }
  480. }
  481. function loop() {
  482. if(!ctx.running) return;
  483. ctx.globalCompositeOperation = 'source-over';
  484. ctx.fillStyle = 'rgba(8,5,16,0.4)';
  485. ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);
  486. ctx.globalCompositeOperation = 'lighter';
  487. ctx.strokeStyle = 'hsla(' + Math.round(hue.update()) + ',90%,50%,0.25)';
  488. ctx.lineWidth = 1;
  489. if(ctx.frame % 60 == 0) {
  490. console.log(hue.update(), Math.round(hue.update()), hue.phase, hue.offset, hue.frequency, hue.amplitude);
  491. }
  492. for(var i = 0, tendril; i < settings.trails; i++) {
  493. tendril = tendrils[i];
  494. tendril.update();
  495. tendril.draw();
  496. }
  497. ctx.frame++;
  498. ctx.stats.update();
  499. requestAnimFrame(loop);
  500. }
  501. function resize() {
  502. ctx.canvas.width = window.innerWidth;
  503. ctx.canvas.height = window.innerHeight;
  504. }
  505. function start() {
  506. if(!ctx.running) {
  507. ctx.running = true;
  508. loop();
  509. }
  510. }
  511. function stop() {
  512. ctx.running = false;
  513. }
  514. function mousemove(event) {
  515. if(event.touches) {
  516. target.x = event.touches[0].pageX;
  517. target.y = event.touches[0].pageY;
  518. } else {
  519. target.x = event.clientX
  520. target.y = event.clientY;
  521. }
  522. event.preventDefault();
  523. }
  524. function touchstart(event) {
  525. if(event.touches.length == 1) {
  526. target.x = event.touches[0].pageX;
  527. target.y = event.touches[0].pageY;
  528. }
  529. }
  530. function keyup(event) {
  531. switch(event.keyCode) {
  532. case 32:
  533. save();
  534. break;
  535. default:
  536. // console.log(event.keyCode);
  537. }
  538. }
  539. function letters(id) {
  540. var el = document.getElementById(id),
  541. letters = el.innerHTML.replace('&amp;', '&').split(''),
  542. heading = '';
  543. for(var i = 0, n = letters.length, letter; i < n; i++) {
  544. letter = letters[i].replace('&', '&amp');
  545. heading += letter.trim() ? '<span class="letter-' + i + '">' + letter + '</span>' : '&nbsp;';
  546. }
  547. el.innerHTML = heading;
  548. setTimeout(function() {
  549. el.className = 'transition-in';
  550. }, (Math.random() * 500) + 500);
  551. }
  552. function save() {
  553. if(!buffer) {
  554. buffer = document.createElement('canvas');
  555. buffer.width = screen.availWidth;
  556. buffer.height = screen.availHeight;
  557. buffer.ctx = buffer.getContext('2d');
  558. form = document.createElement('form');
  559. form.method = 'post';
  560. form.input = document.createElement('input');
  561. form.input.type = 'hidden';
  562. form.input.name = 'data';
  563. form.appendChild(form.input);
  564. document.body.appendChild(form);
  565. }
  566. buffer.ctx.fillStyle = 'rgba(8,5,16)';
  567. buffer.ctx.fillRect(0, 0, buffer.width, buffer.height);
  568. buffer.ctx.drawImage(canvas,
  569. Math.round(buffer.width / 2 - canvas.width / 2),
  570. Math.round(buffer.height / 2 - canvas.height / 2)
  571. );
  572. buffer.ctx.drawImage(logo,
  573. Math.round(buffer.width / 2 - logo.width / 4),
  574. Math.round(buffer.height / 2 - logo.height / 4),
  575. logo.width / 2,
  576. logo.height / 2
  577. );
  578. window.open(buffer.toDataURL(), 'wallpaper', 'top=0,left=0,width=' + buffer.width + ',height=' + buffer.height);
  579. // form.input.value = buffer.toDataURL().substr(22);
  580. // form.submit();
  581. }
  582. window.requestAnimFrame = (function() {
  583. return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(fn) { window.setTimeout(fn, 1000 / 60) };
  584. })();
  585. window.onload = function() {
  586. ctx = document.getElementById('canvas').getContext('2d');
  587. ctx.stats = new Stats();
  588. ctx.running = true;
  589. ctx.frame = 1;
  590. logo = new Image();
  591. logo.src = 'http://labs.nikrowell.com/lightsandmotion/ultraviolet/images/logo.png';
  592. hue = new Oscillator({
  593. phase: Math.random() * Math.TWO_PI,
  594. amplitude: 85,
  595. frequency: 0.0015,
  596. offset: 285
  597. });
  598. letters('h1');
  599. letters('h2');
  600. document.addEventListener('mousemove', init);
  601. document.addEventListener('touchstart', init);
  602. document.body.addEventListener('orientationchange', resize);
  603. window.addEventListener('resize', resize);
  604. window.addEventListener('keyup', keyup);
  605. window.addEventListener('focus', start);
  606. window.addEventListener('blur', stop);
  607. resize();
  608. if(window.DEBUG) {
  609. var gui = new dat.GUI();
  610. // gui.add(settings, 'debug');
  611. settings.gui.add(settings, 'trails', 1, 30).onChange(reset);
  612. settings.gui.add(settings, 'size', 25, 75).onFinishChange(reset);
  613. settings.gui.add(settings, 'friction', 0.45, 0.55).onFinishChange(reset);
  614. settings.gui.add(settings, 'dampening', 0.01, 0.4).onFinishChange(reset);
  615. settings.gui.add(settings, 'tension', 0.95, 0.999).onFinishChange(reset);
  616. document.body.appendChild(ctx.stats.domElement);
  617. }
  618. };
  619. })(window);
  620. </SCRIPT>
  621.  
  622. <SCRIPT type=text/javascript>
  623.  
  624. //form tags to omit in NS6+:
  625. var omitformtags=["input", "textarea", "select"]
  626.  
  627. omitformtags=omitformtags.join("|")
  628.  
  629. function disableselect(e){
  630. if (omitformtags.indexOf(e.target.tagName.toLowerCase())==-1)
  631. return false
  632. }
  633.  
  634. function reEnable(){
  635. return true
  636. }
  637.  
  638. if (typeof document.onselectstart!="undefined")
  639. document.onselectstart=new Function ("return false")
  640. else{
  641. document.onmousedown=disableselect
  642. document.onmouseup=reEnable
  643. }
  644.  
  645. </SCRIPT>
  646.  
  647.  
  648. <DIV id=container>
  649. <DIV><BR><BR><BR><BR><BR><BR><BR><BR>
  650. <H1 id=h1>404</H1><BR>
  651. <H2 id=h2>
  652. <H3 id=h3><BR></H3><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
  653. </FONT></A></A> </DIV></DIV><CANVAS id=canvas></CANVAS>
  654. <SCRIPT type=text/javascript src="http://s0.2mdn.net/instream/video/client.js" async="true"></SCRIPT>
  655.  
  656. <SCRIPT>
  657. var Stats=function(){var e=Date.now(),t=e,i=0,n=1/0,r=0,s=0,o=1/0,a=0,l=0,h=0,c=document.createElement("div");c.id="stats",c.addEventListener("mousedown",function(e){e.preventDefault(),v(++h%2)},!1),c.style.cssText="width:80px;opacity:0.9;cursor:pointer";var u=document.createElement("div");u.id="fps",u.style.cssText="padding:0 0 3px 3px;text-align:left;background-color:#002",c.appendChild(u);var d=document.createElement("div");d.id="fpsText",d.style.cssText="color:#0ff;font-family:Comic Sans MS;font-size:9px;font-weight:bold;line-height:15px",d.innerHTML="FPS",u.appendChild(d);var p=document.createElement("div");for(p.id="fpsGraph",p.style.cssText="position:relative;width:74px;height:30px;background-color:#0ff",u.appendChild(p);74>p.children.length;){var f=document.createElement("span");f.style.cssText="width:1px;height:30px;float:left;background-color:#113",p.appendChild(f)}var m=document.createElement("div");m.id="ms",m.style.cssText="padding:0 0 3px 3px;text-align:left;background-color:#020;display:none",c.appendChild(m);var g=document.createElement("div");g.id="msText",g.style.cssText="color:#0f0;font-family:Comic Sans MS;font-size:9px;font-weight:bold;line-height:15px",g.innerHTML="MS",m.appendChild(g);var y=document.createElement("div");for(y.id="msGraph",y.style.cssText="position:relative;width:74px;height:30px;background-color:#0f0",m.appendChild(y);74>y.children.length;){var f=document.createElement("span");f.style.cssText="width:1px;height:30px;float:left;background-color:#131",y.appendChild(f)}var v=function(e){switch(h=e){case 0:u.style.display="block",m.style.display="none";break;case 1:u.style.display="none",m.style.display="block"}},b=function(e,t){var i=e.appendChild(e.firstChild);i.style.height=t+"px"};return{REVISION:11,domElement:c,setMode:v,begin:function(){e=Date.now()},end:function(){var h=Date.now();return i=h-e,n=Math.min(n,i),r=Math.max(r,i),g.textContent=i+" MS ("+n+"-"+r+")",b(y,Math.min(30,30-30*(i/200))),l++,h>t+1e3&&(s=Math.round(1e3*l/(h-t)),o=Math.min(o,s),a=Math.max(a,s),d.textContent=s+" FPS ("+o+"-"+a+")",b(p,Math.min(30,30-30*(s/100))),t=h,l=0),h},update:function(){e=this.end()}}};
  658. </SCRIPT>
  659.  
  660. <SCRIPT>
  661. ;(function(window) {
  662. var ctx,
  663. hue,
  664. logo,
  665. form,
  666. buffer,
  667. target = {},
  668. tendrils = [],
  669. settings = {};
  670. settings.debug = true;
  671. settings.friction = 0.5;
  672. settings.trails = 20;
  673. settings.size = 50;
  674. settings.dampening = 0.25;
  675. settings.tension = 0.98;
  676. Math.TWO_PI = Math.PI * 2;
  677. // ========================================================================================
  678. // Oscillator
  679. // ----------------------------------------------------------------------------------------
  680. function Oscillator(options) {
  681. this.init(options || {});
  682. }
  683. Oscillator.prototype = (function() {
  684. var value = 0;
  685. return {
  686. init: function(options) {
  687. this.phase = options.phase || 0;
  688. this.offset = options.offset || 0;
  689. this.frequency = options.frequency || 0.001;
  690. this.amplitude = options.amplitude || 1;
  691. },
  692. update: function() {
  693. this.phase += this.frequency;
  694. value = this.offset + Math.sin(this.phase) * this.amplitude;
  695. return value;
  696. },
  697. value: function() {
  698. return value;
  699. }
  700. };
  701. })();
  702. // ========================================================================================
  703. // Tendril
  704. // ----------------------------------------------------------------------------------------
  705. function Tendril(options) {
  706. this.init(options || {});
  707. }
  708. Tendril.prototype = (function() {
  709. function Node() {
  710. this.x = 0;
  711. this.y = 0;
  712. this.vy = 0;
  713. this.vx = 0;
  714. }
  715. return {
  716. init: function(options) {
  717. this.spring = options.spring + (Math.random() * 0.1) - 0.05;
  718. this.friction = settings.friction + (Math.random() * 0.01) - 0.005;
  719. this.nodes = [];
  720. for(var i = 0, node; i < settings.size; i++) {
  721. node = new Node();
  722. node.x = target.x;
  723. node.y = target.y;
  724. this.nodes.push(node);
  725. }
  726. },
  727. update: function() {
  728. var spring = this.spring,
  729. node = this.nodes[0];
  730. node.vx += (target.x - node.x) * spring;
  731. node.vy += (target.y - node.y) * spring;
  732. for(var prev, i = 0, n = this.nodes.length; i < n; i++) {
  733. node = this.nodes[i];
  734. if(i > 0) {
  735. prev = this.nodes[i - 1];
  736. node.vx += (prev.x - node.x) * spring;
  737. node.vy += (prev.y - node.y) * spring;
  738. node.vx += prev.vx * settings.dampening;
  739. node.vy += prev.vy * settings.dampening;
  740. }
  741. node.vx *= this.friction;
  742. node.vy *= this.friction;
  743. node.x += node.vx;
  744. node.y += node.vy;
  745. spring *= settings.tension;
  746. }
  747. },
  748. draw: function() {
  749. var x = this.nodes[0].x,
  750. y = this.nodes[0].y,
  751. a, b;
  752. ctx.beginPath();
  753. ctx.moveTo(x, y);
  754. for(var i = 1, n = this.nodes.length - 2; i < n; i++) {
  755. a = this.nodes[i];
  756. b = this.nodes[i + 1];
  757. x = (a.x + b.x) * 0.5;
  758. y = (a.y + b.y) * 0.5;
  759. ctx.quadraticCurveTo(a.x, a.y, x, y);
  760. }
  761. a = this.nodes[i];
  762. b = this.nodes[i + 1];
  763. ctx.quadraticCurveTo(a.x, a.y, b.x, b.y);
  764. ctx.stroke();
  765. ctx.closePath();
  766. }
  767. };
  768. })();
  769. // ----------------------------------------------------------------------------------------
  770. function init(event) {
  771. document.removeEventListener('mousemove', init);
  772. document.removeEventListener('touchstart', init);
  773. document.addEventListener('mousemove', mousemove);
  774. document.addEventListener('touchmove', mousemove);
  775. document.addEventListener('touchstart', touchstart);
  776. mousemove(event);
  777. reset();
  778. loop();
  779. }
  780. function reset() {
  781. tendrils = [];
  782. for(var i = 0; i < settings.trails; i++) {
  783. tendrils.push(new Tendril({
  784. spring: 0.45 + 0.025 * (i / settings.trails)
  785. }));
  786. }
  787. }
  788. function loop() {
  789. if(!ctx.running) return;
  790. ctx.globalCompositeOperation = 'source-over';
  791. ctx.fillStyle = 'rgba(8,5,16,0.4)';
  792. ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);
  793. ctx.globalCompositeOperation = 'lighter';
  794. ctx.strokeStyle = 'hsla(' + Math.round(hue.update()) + ',90%,50%,0.25)';
  795. ctx.lineWidth = 1;
  796. if(ctx.frame % 60 == 0) {
  797. console.log(hue.update(), Math.round(hue.update()), hue.phase, hue.offset, hue.frequency, hue.amplitude);
  798. }
  799. for(var i = 0, tendril; i < settings.trails; i++) {
  800. tendril = tendrils[i];
  801. tendril.update();
  802. tendril.draw();
  803. }
  804. ctx.frame++;
  805. ctx.stats.update();
  806. requestAnimFrame(loop);
  807. }
  808. function resize() {
  809. ctx.canvas.width = window.innerWidth;
  810. ctx.canvas.height = window.innerHeight;
  811. }
  812. function start() {
  813. if(!ctx.running) {
  814. ctx.running = true;
  815. loop();
  816. }
  817. }
  818. function stop() {
  819. ctx.running = false;
  820. }
  821. function mousemove(event) {
  822. if(event.touches) {
  823. target.x = event.touches[0].pageX;
  824. target.y = event.touches[0].pageY;
  825. } else {
  826. target.x = event.clientX
  827. target.y = event.clientY;
  828. }
  829. event.preventDefault();
  830. }
  831. function touchstart(event) {
  832. if(event.touches.length == 1) {
  833. target.x = event.touches[0].pageX;
  834. target.y = event.touches[0].pageY;
  835. }
  836. }
  837. function keyup(event) {
  838. switch(event.keyCode) {
  839. case 32:
  840. save();
  841. break;
  842. default:
  843. // console.log(event.keyCode);
  844. }
  845. }
  846. function letters(id) {
  847. var el = document.getElementById(id),
  848. letters = el.innerHTML.replace('&amp;', '&').split(''),
  849. heading = '';
  850. for(var i = 0, n = letters.length, letter; i < n; i++) {
  851. letter = letters[i].replace('&', '&amp');
  852. heading += letter.trim() ? '<span class="letter-' + i + '">' + letter + '</span>' : '&nbsp;';
  853. }
  854. el.innerHTML = heading;
  855. setTimeout(function() {
  856. el.className = 'transition-in';
  857. }, (Math.random() * 500) + 500);
  858. }
  859. function save() {
  860. if(!buffer) {
  861. buffer = document.createElement('canvas');
  862. buffer.width = screen.availWidth;
  863. buffer.height = screen.availHeight;
  864. buffer.ctx = buffer.getContext('2d');
  865. form = document.createElement('form');
  866. form.method = 'post';
  867. form.input = document.createElement('input');
  868. form.input.type = 'hidden';
  869. form.input.name = 'data';
  870. form.appendChild(form.input);
  871. document.body.appendChild(form);
  872. }
  873. buffer.ctx.fillStyle = 'rgba(8,5,16)';
  874. buffer.ctx.fillRect(0, 0, buffer.width, buffer.height);
  875. buffer.ctx.drawImage(canvas,
  876. Math.round(buffer.width / 2 - canvas.width / 2),
  877. Math.round(buffer.height / 2 - canvas.height / 2)
  878. );
  879. buffer.ctx.drawImage(logo,
  880. Math.round(buffer.width / 2 - logo.width / 4),
  881. Math.round(buffer.height / 2 - logo.height / 4),
  882. logo.width / 2,
  883. logo.height / 2
  884. );
  885. window.open(buffer.toDataURL(), 'wallpaper', 'top=0,left=0,width=' + buffer.width + ',height=' + buffer.height);
  886. // form.input.value = buffer.toDataURL().substr(22);
  887. // form.submit();
  888. }
  889. window.requestAnimFrame = (function() {
  890. return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(fn) { window.setTimeout(fn, 1000 / 60) };
  891. })();
  892. window.onload = function() {
  893. ctx = document.getElementById('canvas').getContext('2d');
  894. ctx.stats = new Stats();
  895. ctx.running = true;
  896. ctx.frame = 1;
  897. logo = new Image();
  898. logo.src = 'http://labs.nikrowell.com/lightsandmotion/ultraviolet/images/logo.png';
  899. hue = new Oscillator({
  900. phase: Math.random() * Math.TWO_PI,
  901. amplitude: 85,
  902. frequency: 0.0015,
  903. offset: 285
  904. });
  905. letters('h1');
  906. letters('h2');
  907. document.addEventListener('mousemove', init);
  908. document.addEventListener('touchstart', init);
  909. document.body.addEventListener('orientationchange', resize);
  910. window.addEventListener('resize', resize);
  911. window.addEventListener('keyup', keyup);
  912. window.addEventListener('focus', start);
  913. window.addEventListener('blur', stop);
  914. resize();
  915. if(window.DEBUG) {
  916. var gui = new dat.GUI();
  917. // gui.add(settings, 'debug');
  918. settings.gui.add(settings, 'trails', 1, 30).onChange(reset);
  919. settings.gui.add(settings, 'size', 25, 75).onFinishChange(reset);
  920. settings.gui.add(settings, 'friction', 0.45, 0.55).onFinishChange(reset);
  921. settings.gui.add(settings, 'dampening', 0.01, 0.4).onFinishChange(reset);
  922. settings.gui.add(settings, 'tension', 0.95, 0.999).onFinishChange(reset);
  923. document.body.appendChild(ctx.stats.domElement);
  924. }
  925. };
  926. })(window);
  927. </SCRIPT>
  928. <SCRIPT type=text/javascript>
  929.  
  930. //form tags to omit in NS6+:
  931. var omitformtags=["input", "textarea", "select"]
  932.  
  933. omitformtags=omitformtags.join("|")
  934.  
  935. function disableselect(e){
  936. if (omitformtags.indexOf(e.target.tagName.toLowerCase())==-1)
  937. return false
  938. }
  939.  
  940. function reEnable(){
  941. return true
  942. }
  943.  
  944. if (typeof document.onselectstart!="undefined")
  945. document.onselectstart=new Function ("return false")
  946. else{
  947. document.onmousedown=disableselect
  948. document.onmouseup=reEnable
  949. }
  950.  
  951. </SCRIPT>
  952. <LINK rel=icon type=image/gif href="https://cdn2.iconfinder.com/data/icons/maki/100/religious-islam-128.png">
  953. <STYLE type=text/css>*{margin:0;padding:0;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;-o-box-sizing:border-box;box-sizing:border-box}body,html{margin:0;padding:0;font:16px/1.4 Lato,sans-serif;color:#fefeff;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;font-family:Comic Sans MS}body{background:#080510;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}h1{font:2.75em Cinzel,serif;font-weight:400;letter-spacing:.35em;text-shadow:0 0 25px rgba(254,254,255,.85)}h2{font:1.45em Cinzel,serif;font-weight:400;letter-spacing:.5em;text-shadow:0 0 25px rgba(254,254,255,.85);text-transform:lowercase}[class^=letter]{-webkit-transition:opacity 3s ease;-moz-transition:opacity 3s ease;transition:opacity 3s ease}.letter-0{transition-delay:.2s}.letter-1{transition-delay:.4s}.letter-2{transition-delay:.6s}.letter-3{transition-delay:.8s}.letter-4{transition-delay:1s}.letter-5{transition-delay:1.2s}.letter-6{transition-delay:1.4s}.letter-7{transition-delay:1.6s}.letter-8{transition-delay:1.8s}.letter-9{transition-delay:2s}.letter-10{transition-delay:2.2s}.letter-11{transition-delay:2.4s}.letter-12{transition-delay:2.6s}.letter-13{transition-delay:2.8s}.letter-14{transition-delay:3s}h1,h2{visibility:hidden;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}h1.transition-in,h2.transition-in{visibility:visible}h1 [class^=letter],h2 [class^=letter]{opacity:0}h1.transition-in [class^=letter],h2.transition-in [class^=letter]{opacity:1}#container{display:table;position:absolute;z-index:20;width:100%;height:100%;text-align:center;cursor:none}#container>div{display:table-cell;vertical-align:middle}#container p{position:absolute;width:100%;left:0;bottom:25px;font-size:.8em;letter-spacing:.1em;font-weight:300;color:#76747a;-webkit-font-smoothing:subpixel-antialiased;font-smoothing:subpixel-antialiased}#container p strong{color:#b3abc5}#container p span{font-size:.75em;padding:0 2px}#canvas{position:absolute;z-index:10;top:0;left:0;width:100%;height:100%;cursor:none}#stats{position:absolute;z-index:10;left:10px;top:10px}.dg.ac{z-index:100!important}.STYLE4{color:#FFF}
  954. </STYLE>
  955.  
  956. <DIV id=container>
  957. <DIV><BR><BR><BR><BR><BR><BR><BR><BR>
  958. <H3 id=h3><BR></H3><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR><BR>
  959. <H3 id=h3>&nbsp; </H3></FONT></A><A href="http://turkhacteam.org"></A> </DIV></DIV><CANVAS id=canvas></CANVAS>
  960. <SCRIPT>
  961. var Stats=function(){var e=Date.now(),t=e,i=0,n=1/0,r=0,s=0,o=1/0,a=0,l=0,h=0,c=document.createElement("div");c.id="stats",c.addEventListener("mousedown",function(e){e.preventDefault(),v(++h%2)},!1),c.style.cssText="width:80px;opacity:0.9;cursor:pointer";var u=document.createElement("div");u.id="fps",u.style.cssText="padding:0 0 3px 3px;text-align:left;background-color:#002",c.appendChild(u);var d=document.createElement("div");d.id="fpsText",d.style.cssText="color:#0ff;font-family:Comic Sans MS;font-size:9px;font-weight:bold;line-height:15px",d.innerHTML="FPS",u.appendChild(d);var p=document.createElement("div");for(p.id="fpsGraph",p.style.cssText="position:relative;width:74px;height:30px;background-color:#0ff",u.appendChild(p);74>p.children.length;){var f=document.createElement("span");f.style.cssText="width:1px;height:30px;float:left;background-color:#113",p.appendChild(f)}var m=document.createElement("div");m.id="ms",m.style.cssText="padding:0 0 3px 3px;text-align:left;background-color:#020;display:none",c.appendChild(m);var g=document.createElement("div");g.id="msText",g.style.cssText="color:#0f0;font-family:Comic Sans MS;font-size:9px;font-weight:bold;line-height:15px",g.innerHTML="MS",m.appendChild(g);var y=document.createElement("div");for(y.id="msGraph",y.style.cssText="position:relative;width:74px;height:30px;background-color:#0f0",m.appendChild(y);74>y.children.length;){var f=document.createElement("span");f.style.cssText="width:1px;height:30px;float:left;background-color:#131",y.appendChild(f)}var v=function(e){switch(h=e){case 0:u.style.display="block",m.style.display="none";break;case 1:u.style.display="none",m.style.display="block"}},b=function(e,t){var i=e.appendChild(e.firstChild);i.style.height=t+"px"};return{REVISION:11,domElement:c,setMode:v,begin:function(){e=Date.now()},end:function(){var h=Date.now();return i=h-e,n=Math.min(n,i),r=Math.max(r,i),g.textContent=i+" MS ("+n+"-"+r+")",b(y,Math.min(30,30-30*(i/200))),l++,h>t+1e3&&(s=Math.round(1e3*l/(h-t)),o=Math.min(o,s),a=Math.max(a,s),d.textContent=s+" FPS ("+o+"-"+a+")",b(p,Math.min(30,30-30*(s/100))),t=h,l=0),h},update:function(){e=this.end()}}};
  962. </SCRIPT>
  963.  
  964. <SCRIPT>
  965. ;(function(window) {
  966. var ctx,
  967. hue,
  968. logo,
  969. form,
  970. buffer,
  971. target = {},
  972. tendrils = [],
  973. settings = {};
  974. settings.debug = true;
  975. settings.friction = 0.5;
  976. settings.trails = 20;
  977. settings.size = 50;
  978. settings.dampening = 0.25;
  979. settings.tension = 0.98;
  980. Math.TWO_PI = Math.PI * 2;
  981. // ========================================================================================
  982. // Oscillator
  983. // ----------------------------------------------------------------------------------------
  984. function Oscillator(options) {
  985. this.init(options || {});
  986. }
  987. Oscillator.prototype = (function() {
  988. var value = 0;
  989. return {
  990. init: function(options) {
  991. this.phase = options.phase || 0;
  992. this.offset = options.offset || 0;
  993. this.frequency = options.frequency || 0.001;
  994. this.amplitude = options.amplitude || 1;
  995. },
  996. update: function() {
  997. this.phase += this.frequency;
  998. value = this.offset + Math.sin(this.phase) * this.amplitude;
  999. return value;
  1000. },
  1001. value: function() {
  1002. return value;
  1003. }
  1004. };
  1005. })();
  1006. // ========================================================================================
  1007. // Tendril
  1008. // ----------------------------------------------------------------------------------------
  1009. function Tendril(options) {
  1010. this.init(options || {});
  1011. }
  1012. Tendril.prototype = (function() {
  1013. function Node() {
  1014. this.x = 0;
  1015. this.y = 0;
  1016. this.vy = 0;
  1017. this.vx = 0;
  1018. }
  1019. return {
  1020. init: function(options) {
  1021. this.spring = options.spring + (Math.random() * 0.1) - 0.05;
  1022. this.friction = settings.friction + (Math.random() * 0.01) - 0.005;
  1023. this.nodes = [];
  1024. for(var i = 0, node; i < settings.size; i++) {
  1025. node = new Node();
  1026. node.x = target.x;
  1027. node.y = target.y;
  1028. this.nodes.push(node);
  1029. }
  1030. },
  1031. update: function() {
  1032. var spring = this.spring,
  1033. node = this.nodes[0];
  1034. node.vx += (target.x - node.x) * spring;
  1035. node.vy += (target.y - node.y) * spring;
  1036. for(var prev, i = 0, n = this.nodes.length; i < n; i++) {
  1037. node = this.nodes[i];
  1038. if(i > 0) {
  1039. prev = this.nodes[i - 1];
  1040. node.vx += (prev.x - node.x) * spring;
  1041. node.vy += (prev.y - node.y) * spring;
  1042. node.vx += prev.vx * settings.dampening;
  1043. node.vy += prev.vy * settings.dampening;
  1044. }
  1045. node.vx *= this.friction;
  1046. node.vy *= this.friction;
  1047. node.x += node.vx;
  1048. node.y += node.vy;
  1049. spring *= settings.tension;
  1050. }
  1051. },
  1052. draw: function() {
  1053. var x = this.nodes[0].x,
  1054. y = this.nodes[0].y,
  1055. a, b;
  1056. ctx.beginPath();
  1057. ctx.moveTo(x, y);
  1058. for(var i = 1, n = this.nodes.length - 2; i < n; i++) {
  1059. a = this.nodes[i];
  1060. b = this.nodes[i + 1];
  1061. x = (a.x + b.x) * 0.5;
  1062. y = (a.y + b.y) * 0.5;
  1063. ctx.quadraticCurveTo(a.x, a.y, x, y);
  1064. }
  1065. a = this.nodes[i];
  1066. b = this.nodes[i + 1];
  1067. ctx.quadraticCurveTo(a.x, a.y, b.x, b.y);
  1068. ctx.stroke();
  1069. ctx.closePath();
  1070. }
  1071. };
  1072. })();
  1073. // ----------------------------------------------------------------------------------------
  1074. function init(event) {
  1075. document.removeEventListener('mousemove', init);
  1076. document.removeEventListener('touchstart', init);
  1077. document.addEventListener('mousemove', mousemove);
  1078. document.addEventListener('touchmove', mousemove);
  1079. document.addEventListener('touchstart', touchstart);
  1080. mousemove(event);
  1081. reset();
  1082. loop();
  1083. }
  1084. function reset() {
  1085. tendrils = [];
  1086. for(var i = 0; i < settings.trails; i++) {
  1087. tendrils.push(new Tendril({
  1088. spring: 0.45 + 0.025 * (i / settings.trails)
  1089. }));
  1090. }
  1091. }
  1092. function loop() {
  1093. if(!ctx.running) return;
  1094. ctx.globalCompositeOperation = 'source-over';
  1095. ctx.fillStyle = 'rgba(8,5,16,0.4)';
  1096. ctx.fillRect(0, 0, ctx.canvas.width, ctx.canvas.height);
  1097. ctx.globalCompositeOperation = 'lighter';
  1098. ctx.strokeStyle = 'hsla(' + Math.round(hue.update()) + ',90%,50%,0.25)';
  1099. ctx.lineWidth = 1;
  1100. if(ctx.frame % 60 == 0) {
  1101. console.log(hue.update(), Math.round(hue.update()), hue.phase, hue.offset, hue.frequency, hue.amplitude);
  1102. }
  1103. for(var i = 0, tendril; i < settings.trails; i++) {
  1104. tendril = tendrils[i];
  1105. tendril.update();
  1106. tendril.draw();
  1107. }
  1108. ctx.frame++;
  1109. ctx.stats.update();
  1110. requestAnimFrame(loop);
  1111. }
  1112. function resize() {
  1113. ctx.canvas.width = window.innerWidth;
  1114. ctx.canvas.height = window.innerHeight;
  1115. }
  1116. function start() {
  1117. if(!ctx.running) {
  1118. ctx.running = true;
  1119. loop();
  1120. }
  1121. }
  1122. function stop() {
  1123. ctx.running = false;
  1124. }
  1125. function mousemove(event) {
  1126. if(event.touches) {
  1127. target.x = event.touches[0].pageX;
  1128. target.y = event.touches[0].pageY;
  1129. } else {
  1130. target.x = event.clientX
  1131. target.y = event.clientY;
  1132. }
  1133. event.preventDefault();
  1134. }
  1135. function touchstart(event) {
  1136. if(event.touches.length == 1) {
  1137. target.x = event.touches[0].pageX;
  1138. target.y = event.touches[0].pageY;
  1139. }
  1140. }
  1141. function keyup(event) {
  1142. switch(event.keyCode) {
  1143. case 32:
  1144. save();
  1145. break;
  1146. default:
  1147. // console.log(event.keyCode);
  1148. }
  1149. }
  1150. function letters(id) {
  1151. var el = document.getElementById(id),
  1152. letters = el.innerHTML.replace('&amp;', '&').split(''),
  1153. heading = '';
  1154. for(var i = 0, n = letters.length, letter; i < n; i++) {
  1155. letter = letters[i].replace('&', '&amp');
  1156. heading += letter.trim() ? '<span class="letter-' + i + '">' + letter + '</span>' : '&nbsp;';
  1157. }
  1158. el.innerHTML = heading;
  1159. setTimeout(function() {
  1160. el.className = 'transition-in';
  1161. }, (Math.random() * 500) + 500);
  1162. }
  1163. function save() {
  1164. if(!buffer) {
  1165. buffer = document.createElement('canvas');
  1166. buffer.width = screen.availWidth;
  1167. buffer.height = screen.availHeight;
  1168. buffer.ctx = buffer.getContext('2d');
  1169. form = document.createElement('form');
  1170. form.method = 'post';
  1171. form.input = document.createElement('input');
  1172. form.input.type = 'hidden';
  1173. form.input.name = 'data';
  1174. form.appendChild(form.input);
  1175. document.body.appendChild(form);
  1176. }
  1177. buffer.ctx.fillStyle = 'rgba(8,5,16)';
  1178. buffer.ctx.fillRect(0, 0, buffer.width, buffer.height);
  1179. buffer.ctx.drawImage(canvas,
  1180. Math.round(buffer.width / 2 - canvas.width / 2),
  1181. Math.round(buffer.height / 2 - canvas.height / 2)
  1182. );
  1183. buffer.ctx.drawImage(logo,
  1184. Math.round(buffer.width / 2 - logo.width / 4),
  1185. Math.round(buffer.height / 2 - logo.height / 4),
  1186. logo.width / 2,
  1187. logo.height / 2
  1188. );
  1189. window.open(buffer.toDataURL(), 'wallpaper', 'top=0,left=0,width=' + buffer.width + ',height=' + buffer.height);
  1190. // form.input.value = buffer.toDataURL().substr(22);
  1191. // form.submit();
  1192. }
  1193. window.requestAnimFrame = (function() {
  1194. return window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || function(fn) { window.setTimeout(fn, 1000 / 60) };
  1195. })();
  1196. window.onload = function() {
  1197. ctx = document.getElementById('canvas').getContext('2d');
  1198. ctx.stats = new Stats();
  1199. ctx.running = true;
  1200. ctx.frame = 1;
  1201. logo = new Image();
  1202. logo.src = 'http://labs.nikrowell.com/lightsandmotion/ultraviolet/images/logo.png';
  1203. hue = new Oscillator({
  1204. phase: Math.random() * Math.TWO_PI,
  1205. amplitude: 85,
  1206. frequency: 0.0015,
  1207. offset: 285
  1208. });
  1209. letters('h1');
  1210. letters('h2');
  1211. document.addEventListener('mousemove', init);
  1212. document.addEventListener('touchstart', init);
  1213. document.body.addEventListener('orientationchange', resize);
  1214. window.addEventListener('resize', resize);
  1215. window.addEventListener('keyup', keyup);
  1216. window.addEventListener('focus', start);
  1217. window.addEventListener('blur', stop);
  1218. resize();
  1219. if(window.DEBUG) {
  1220. var gui = new dat.GUI();
  1221. // gui.add(settings, 'debug');
  1222. settings.gui.add(settings, 'trails', 1, 30).onChange(reset);
  1223. settings.gui.add(settings, 'size', 25, 75).onFinishChange(reset);
  1224. settings.gui.add(settings, 'friction', 0.45, 0.55).onFinishChange(reset);
  1225. settings.gui.add(settings, 'dampening', 0.01, 0.4).onFinishChange(reset);
  1226. settings.gui.add(settings, 'tension', 0.95, 0.999).onFinishChange(reset);
  1227. document.body.appendChild(ctx.stats.domElement);
  1228. }
  1229. };
  1230. })(window);
  1231. </SCRIPT>
  1232.  
  1233. <SCRIPT type=text/javascript>
  1234.  
  1235. //form tags to omit in NS6+:
  1236. var omitformtags=["input", "textarea", "select"]
  1237.  
  1238. omitformtags=omitformtags.join("|")
  1239.  
  1240. function disableselect(e){
  1241. if (omitformtags.indexOf(e.target.tagName.toLowerCase())==-1)
  1242. return false
  1243. }
  1244.  
  1245. function reEnable(){
  1246. return true
  1247. }
  1248.  
  1249. if (typeof document.onselectstart!="undefined")
  1250. document.onselectstart=new Function ("return false")
  1251. else{
  1252. document.onmousedown=disableselect
  1253. document.onmouseup=reEnable
  1254. }
  1255.  
  1256.  
  1257. <html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement