var ch = {
    curcio: {
        
    }
};

ch.curcio.util = {
    keyMap: {
        27 : 'esc',
        9  : 'tab',
        32 : 'space',
        13 : 'return',
        8  : 'backspace',
        145: 'scroll', 
        20 : 'capslock',
        144: 'numlock',
        19 : 'pause',
        45 : 'insert',
        36 : 'home',
        46 : 'del',
        35 : 'end',
        33 : 'pageup',
        34 : 'pagedown',
        37 : 'left',
        38 : 'up',
        39 : 'right',
        40 : 'down'
    },
    
    isUndefined: function(object) {
        return typeof(object) === 'undefined';
    },
    
    isDefined: function(object) {
        return !this.isUndefined(object);
    },

    each: function (object, handler) {
        var i, returnValue;
        if (object) {
            for (i in object) {
                if (this.isDefined(returnValue = handler.call(object[i], object[i], i))) {
                    return returnValue;
                }
            }
        }
    }
};

if (!Array.indexOf) {
    Array.prototype.indexOf = function (element) {
        var length = this.length;
        var i;
        for (i = 0; i < length; i++) {
            if (this[i] === element) {
                return i;
            }
        }
        return -1;
    };
}

Array.prototype.contains = function (element) {
    return this.indexOf(element) >= 0;
};

Array.prototype.each = function (handler) {
    var length = this.length;
    var i, returnValue;
    this._break = false;
    this.break = function () {
        this._break = true;
    };
    for (i = 0; !this._break && i < length; i++) {
        returnValue = handler.call(this, this[i], i);
    }
    return returnValue;
};

