function (obj, type, fn) {
                var wrappedFn, item, len = cache.length, i;

                for (i = 0; i < len; i++) {
                    item = cache[i];

                    if (item[0] === obj && item[1] === type && item[2] === fn) {
                        wrappedFn = item[3];

                        if (wrappedFn) {
                            obj.detachEvent('on' + type, wrappedFn);
                            cache = cache.slice(i);
                            return true;
                        }
                    }
                }
            }
function (obj, type, fn) {
                var wrappedFn, item, len = cache.length, i;

                for (i = 0; i < len; i++) {
                    item = cache[i];

                    if (item[0] === obj && item[1] === type && item[2] === fn) {
                        wrappedFn = item[3];

                        if (wrappedFn) {
                            obj.detachEvent('on' + type, wrappedFn);
                            cache = cache.slice(i);
                            return true;
                        }
                    }
                }
            }
function ( obj , type , fn ) { var wrappedFn , item , len = cache . length , i ; for ( i = 0 ; i < len ; i ++ ) { item = cache [ i ] ; if ( item [ 0 ] === obj && item [ 1 ] === type && item [ 2 ] === fn ) { wrappedFn = item [ 3 ] ; if ( wrappedFn ) { obj . detachEvent ( 'on' + type , wrappedFn ) ; cache = cache . slice ( i ) ; return true ; } } } }
Remove an event from an object (IE)

@param obj {HTMLElement} The object to remove the event from
@param type {string} The type of event excluding "on"
@param fn {function} The function
Remove an event from an object ( IE )