(function (win) {
var intervals = [];
var _setInterval = setInterval;
var _clearInterval = clearInterval;
win.setInterval = function () {
var id = _setInterval.apply(win, arguments);
intervals.push(id);
return id;
};
win.clearInterval = function (id) {
_clearInterval.call(win, id);
delete intervals[intervals.indexOf(id)];
};
win.getIntervals = function () {
return Array.prototype.slice.call(intervals);
};
win.clearIntervals = function () {
for (var i = 0; i < intervals.length; ++i) {
clearInterval(intervals[i]);
}
intervals = [];
}
})(window);