diff options
Diffstat (limited to 'sitestatic/konami.js')
-rw-r--r-- | sitestatic/konami.js | 182 |
1 files changed, 93 insertions, 89 deletions
diff --git a/sitestatic/konami.js b/sitestatic/konami.js index 88b494e0..15882b9f 100644 --- a/sitestatic/konami.js +++ b/sitestatic/konami.js @@ -1,101 +1,105 @@ /* - * Konami-JS ~ - * :: Now with support for touch events and multiple instances for - * :: those situations that call for multiple easter eggs! - * Code: http://konami-js.googlecode.com/ - * Examples: http://www.snaptortoise.com/konami-js - * Copyright (c) 2009 George Mandis (georgemandis.com, snaptortoise.com) - * Version: 1.4.1 (3/1//2013) - * Licensed under the GNU General Public License v3 - * http://www.gnu.org/copyleft/gpl.html - * Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1 and Dolphin Browser -*/ + * Konami-JS ~ + * :: Now with support for touch events and multiple instances for + * :: those situations that call for multiple easter eggs! + * Code: http://konami-js.googlecode.com/ + * Examples: http://www.snaptortoise.com/konami-js + * Copyright (c) 2009 George Mandis (georgemandis.com, snaptortoise.com) + * Version: 1.4.2 (9/2/2013) + * Licensed under the MIT License (http://opensource.org/licenses/MIT) + * Tested in: Safari 4+, Google Chrome 4+, Firefox 3+, IE7+, Mobile Safari 2.2.1 and Dolphin Browser + */ -var Konami = function(callback) { - var konami= { - addEvent:function ( obj, type, fn, ref_obj ) - { - if (obj.addEventListener) - obj.addEventListener( type, fn, false ); - else if (obj.attachEvent) - { - // IE - obj["e"+type+fn] = fn; - obj[type+fn] = function() { obj["e"+type+fn]( window.event,ref_obj ); } - obj.attachEvent( "on"+type, obj[type+fn] ); +var Konami = function (callback) { + var konami = { + addEvent: function (obj, type, fn, ref_obj) { + if (obj.addEventListener) + obj.addEventListener(type, fn, false); + else if (obj.attachEvent) { + // IE + obj["e" + type + fn] = fn; + obj[type + fn] = function () { + obj["e" + type + fn](window.event, ref_obj); } + obj.attachEvent("on" + type, obj[type + fn]); + } + }, + input: "", + pattern: "38384040373937396665", + load: function (link) { + this.addEvent(document, "keydown", function (e, ref_obj) { + if (ref_obj) konami = ref_obj; // IE + konami.input += e ? e.keyCode : event.keyCode; + if (konami.input.length > konami.pattern.length) + konami.input = konami.input.substr((konami.input.length - konami.pattern.length)); + if (konami.input == konami.pattern) { + konami.code(link); + konami.input = ""; + e.preventDefault(); + return false; + } + }, this); + this.iphone.load(link); + }, + code: function (link) { + window.location = link + }, + iphone: { + start_x: 0, + start_y: 0, + stop_x: 0, + stop_y: 0, + tap: false, + capture: false, + orig_keys: "", + keys: ["UP", "UP", "DOWN", "DOWN", "LEFT", "RIGHT", "LEFT", "RIGHT", "TAP", "TAP"], + code: function (link) { + konami.code(link); }, - input:"", - pattern:"3838404037393739666513", - load: function(link) { - this.addEvent(document,"keydown", function(e,ref_obj) { - if (ref_obj) konami = ref_obj; // IE - konami.input+= e ? e.keyCode : event.keyCode; - if (konami.input.length > konami.pattern.length) konami.input = konami.input.substr((konami.input.length - konami.pattern.length)); - if (konami.input == konami.pattern) { - konami.code(link); - konami.input=""; - return; - } - },this); - this.iphone.load(link); - - }, - code: function(link) { window.location=link}, - iphone:{ - start_x:0, - start_y:0, - stop_x:0, - stop_y:0, - tap:false, - capture:false, - orig_keys:"", - keys:["UP","UP","DOWN","DOWN","LEFT","RIGHT","LEFT","RIGHT","TAP","TAP","TAP"], - code: function(link) { konami.code(link);}, - load: function(link){ - this.orig_keys = this.keys; - konami.addEvent(document,"touchmove",function(e){ - if(e.touches.length == 1 && konami.iphone.capture==true){ - var touch = e.touches[0]; - konami.iphone.stop_x = touch.pageX; - konami.iphone.stop_y = touch.pageY; - konami.iphone.tap = false; - konami.iphone.capture=false; - konami.iphone.check_direction(); - } - }); - konami.addEvent(document,"touchend",function(evt){ - if (konami.iphone.tap==true) konami.iphone.check_direction(link); - },false); - konami.addEvent(document,"touchstart", function(evt){ - konami.iphone.start_x = evt.changedTouches[0].pageX; - konami.iphone.start_y = evt.changedTouches[0].pageY; - konami.iphone.tap = true; - konami.iphone.capture = true; - }); - }, - check_direction: function(link){ - x_magnitude = Math.abs(this.start_x-this.stop_x); - y_magnitude = Math.abs(this.start_y-this.stop_y); - x = ((this.start_x-this.stop_x) < 0) ? "RIGHT" : "LEFT"; - y = ((this.start_y-this.stop_y) < 0) ? "DOWN" : "UP"; - result = (x_magnitude > y_magnitude) ? x : y; - result = (this.tap==true) ? "TAP" : result; + load: function (link) { + this.orig_keys = this.keys; + konami.addEvent(document, "touchmove", function (e) { + if (e.touches.length == 1 && konami.iphone.capture == true) { + var touch = e.touches[0]; + konami.iphone.stop_x = touch.pageX; + konami.iphone.stop_y = touch.pageY; + konami.iphone.tap = false; + konami.iphone.capture = false; + konami.iphone.check_direction(); + } + }); + konami.addEvent(document, "touchend", function (evt) { + if (konami.iphone.tap == true) konami.iphone.check_direction(link); + }, false); + konami.addEvent(document, "touchstart", function (evt) { + konami.iphone.start_x = evt.changedTouches[0].pageX; + konami.iphone.start_y = evt.changedTouches[0].pageY; + konami.iphone.tap = true; + konami.iphone.capture = true; + }); + }, + check_direction: function (link) { + x_magnitude = Math.abs(this.start_x - this.stop_x); + y_magnitude = Math.abs(this.start_y - this.stop_y); + x = ((this.start_x - this.stop_x) < 0) ? "RIGHT" : "LEFT"; + y = ((this.start_y - this.stop_y) < 0) ? "DOWN" : "UP"; + result = (x_magnitude > y_magnitude) ? x : y; + result = (this.tap == true) ? "TAP" : result; - if (result==this.keys[0]) this.keys = this.keys.slice(1,this.keys.length); - if (this.keys.length==0) { - this.keys=this.orig_keys; - this.code(link); - } - } - } + if (result == this.keys[0]) this.keys = this.keys.slice(1, this.keys.length); + if (this.keys.length == 0) { + this.keys = this.orig_keys; + this.code(link); + } + } + } } - + typeof callback === "string" && konami.load(callback); - if(typeof callback === "function") { + if (typeof callback === "function") { konami.code = callback; konami.load(); } return konami; -} +}; |