/**
 * @class Ext.Element
 */

Ext.Element.addMethods({
   
/**
     * Convenience method for constructing a KeyMap
     * @param {Number/Array/Object/String} key Either a string with the keys to listen for, the numeric key code, array of key codes or an object with the following options:
     *                                  {key: (number or array), shift: (true/false), ctrl: (true/false), alt: (true/false)}
     * @param {Function} fn The function to call
     * @param {Object} scope (optional) The scope of the function
     * @return {Ext.KeyMap} The KeyMap created
     */

    addKeyListener
: function(key, fn, scope){
       
var config;
       
if(!Ext.isObject(key) || Ext.isArray(key)){
            config
= {
                key
: key,
                fn
: fn,
                scope
: scope
           
};
       
}else{
            config
= {
                key
: key.key,
                shift
: key.shift,
                ctrl
: key.ctrl,
                alt
: key.alt,
                fn
: fn,
                scope
: scope
           
};
       
}
       
return new Ext.KeyMap(this, config);
   
},

   
/**
     * Creates a KeyMap for this element
     * @param {Object} config The KeyMap config. See {@link Ext.KeyMap} for more details
     * @return {Ext.KeyMap} The KeyMap created
     */

    addKeyMap
: function(config){
       
return new Ext.KeyMap(this, config);
   
}
});