var base = {
    addevent: function(node,evt,func){
	    if(node.addEventListener){
		    node.addEventListener(evt,func,false);	
	    } else if(node.attachEvent){
		    node.attachEvent("on"+evt,func);	
	    }
    },
	bind: function(){
        var args=[];
        if(arguments){
            for(var i=0,n=arguments.length;i<n;i++){
                args.push(arguments[i]);
            }
        }
        var object=args.shift();
        var func=args.shift();
        return function(event) {
            return func.apply(object,[event||window.event].concat(args));
        }
    },
	codeDic: {
        97: 'a',98: 'b',99: 'c',100: 'd',101: 'e',102: 'f',103: 'g',104: 'h',105: 'i',106: 'j',107: 'k',108: 'l',109: 'm',110: 'n',111: 'o',112: 'p',113: 'q',114: 'r',115: 's',116: 't',117: 'u',118: 'v',119: 'w',120: 'x',121: 'y',122: 'z',65: 'a',66: 'b',67: 'c',68: 'd',69: 'e',70: 'f',71: 'g',72: 'h',73: 'i',74: 'j',75: 'k',76: 'l',77: 'm',78: 'n',79: 'o',80: 'p',81: 'q',82: 'r',83: 's',84: 't',85: 'u',86: 'v',87: 'w',88: 'x',89: 'y',90: 'z'
    }
};


var KeyCommand = function(arr,func){
    this.baseArray = arr;
	this.inputArray = [];
	this.commandFunc = func;
	base.addevent(window,'keypress',base.bind(this,this.checkArray));
};

KeyCommand.prototype = {
    getKeycode: function(e){
        var code;
	    if(window.event){ code = window.event.keyCode;	} 
	    else if(e){ code = e.which; }
	    return base.codeDic[code];
    },
	
	checkArray: function(e){
	    alert(this.getKeycode(e));
		if(this.getKeycode(e)) this.inputArray.push(this.getKeycode(e));
		for(var i=0,n=this.inputArray.length;i<n;i++){
		    if(this.baseArray[i] != this.inputArray[i]){
			    this.inputArray = [];
				alert('no/'+this.inputArray);
				return false;
			}
		}
		if(this.baseArray.length == this.inputArray.length){ this.commandFunc();this.inputArray=[]; }
	}
};

new KeyCommand(
    ['a','b','c'],
	function(){ 

    }
);
