summaryrefslogtreecommitdiff
path: root/sitestatic/konami.min.js
diff options
context:
space:
mode:
Diffstat (limited to 'sitestatic/konami.min.js')
-rw-r--r--sitestatic/konami.min.js105
1 files changed, 101 insertions, 4 deletions
diff --git a/sitestatic/konami.min.js b/sitestatic/konami.min.js
index f69ca4ff..88b494e0 100644
--- a/sitestatic/konami.min.js
+++ b/sitestatic/konami.min.js
@@ -1,4 +1,101 @@
-var Konami=function(t){var e={addEvent:function(t,e,n,i){t.addEventListener?t.addEventListener(e,n,!1):t.attachEvent&&(t["e"+e+n]=n,t[e+n]=function(){t["e"+e+n](window.event,i)},t.attachEvent("on"+e,t[e+n]))},input:"",pattern:"3838404037393739666513",load:function(t){this.addEvent(document,"keydown",function(n,i){return i&&(e=i),e.input+=n?n.keyCode:event.keyCode,e.input.length>e.pattern.length&&(e.input=e.input.substr(e.input.length-e.pattern.length)),e.input==e.pattern?(e.code(t),e.input="",void 0):void 0},this),this.iphone.load(t)},code:function(t){window.location=t},iphone:{start_x:0,start_y:0,stop_x:0,stop_y:0,tap:!1,capture:!1,orig_keys:"",keys:["UP","UP","DOWN","DOWN","LEFT","RIGHT","LEFT","RIGHT","TAP","TAP","TAP"],code:function(t){e.code(t)},load:function(t){this.orig_keys=this.keys,e.addEvent(document,"touchmove",function(t){if(1==t.touches.length&&e.iphone.capture===!0){var n=t.touches[0]
- e.iphone.stop_x=n.pageX,e.iphone.stop_y=n.pageY,e.iphone.tap=!1,e.iphone.capture=!1,e.iphone.check_direction()}}),e.addEvent(document,"touchend",function(){e.iphone.tap===!0&&e.iphone.check_direction(t)},!1),e.addEvent(document,"touchstart",function(t){e.iphone.start_x=t.changedTouches[0].pageX,e.iphone.start_y=t.changedTouches[0].pageY,e.iphone.tap=!0,e.iphone.capture=!0})},check_direction:function(t){var e=Math.abs(this.start_x-this.stop_x),n=Math.abs(this.start_y-this.stop_y),i=0>this.start_x-this.stop_x?"RIGHT":"LEFT",o=0>this.start_y-this.stop_y?"DOWN":"UP",s=e>n?i:o
- s=this.tap===!0?"TAP":s,s==this.keys[0]&&(this.keys=this.keys.slice(1,this.keys.length)),0==this.keys.length&&(this.keys=this.orig_keys,this.code(t))}}}
-return"string"==typeof t&&e.load(t),"function"==typeof t&&(e.code=t,e.load()),e}
+/*
+ * 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
+*/
+
+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:"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;
+
+ 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") {
+ konami.code = callback;
+ konami.load();
+ }
+
+ return konami;
+}