function delay(f, ms) { return function() { var savedThis = this; var savedArgs = arguments; setTimeout(function() { f.apply(savedThis, savedArgs); }, ms); }; }