/*
 * Konami-JS ~ Now with iPhone support!
 * Code: http://konami-js.googlecode.com/
 * Examples: http://www.snaptortoise.com/konami-js
 * Copyright (c) 2009 George Mandis (georgemandis.com)
 * Version: 1.0.8 (05/08/2009)
 * Licensed under the Artistic License/GPL
 * http://dev.perl.org/licenses/
 * Tested in: Safari 4, Firefox 3, IE7 and Mobile Safari 2.2.1
 */

var konami = {
        input:"",
        pattern:"3838404037393739666513",
        clear:setTimeout('konami.clear_input()',2000),
        load: function(link) {
                window.document.onkeydown = function(e) {
                        konami.input+= e ? e.keyCode : event.keyCode;
                        if (konami.input == konami.pattern) {
                                konami.code(link);
                                clearTimeout(konami.clear);
                                return;
                                }
                        clearTimeout(konami.clear);
                        konami.clear = setTimeout("konami.clear_input()",2000);
                        }
                        this.iphone.load(link)
                },
        code: function(link) { window.location=link},
        clear_input: function() {
                konami.input="";
                clearTimeout(konami.clear);
                },
        iphone:{
                start_x:0,
                start_y:0,
                stop_x:0,
                stop_y:0,
                tap:false,
                capture:false,
                keys:["UP","UP","DOWN","DOWN","LEFT","RIGHT","LEFT","RIGHT","TAP","TAP","TAP"],
                code: function(link) { window.location=link},
                load: function(link){
                        document.ontouchmove = function(e){
                          if(e.touches.length == 1 && konami.iphone.capture==true){ // Only deal with one finger
                            var touch = e.touches[0]; // Get info for finger #1
                                konami.iphone.stop_x = touch.pageX;
                                konami.iphone.stop_y = touch.pageY;
                                konami.iphone.tap = false; 
                                konami.iphone.capture=false;
                                konami.iphone.check_direction();
                                }
                                }               
                        document.ontouchend = function(evt){
                                if (konami.iphone.tap==true) konami.iphone.check_direction();           
                                }
                        document.ontouchstart = 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(){
                        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.code(this.link)
                        }
                }
}
