3rd Party Access

The purpose of the feature is to enable 3rd party reporting of viewability and VPAID events data raised by OVV by relaying them to a javascript object.
Third party vendors could subscribe to these events via javascript and send the relayed data to their servers.
This works because you're doing co-operative multi-tasking.

A browser has to do a number of things pretty much all at once, and just one of those is execute JavaScript. But one of the things JavaScript is very often used for is to ask the browser to build a display element. This is often assumed to be done synchronously (particularly as JavaScript is not executed in parallel) but there is no guarantee this is the case and JavaScript does not have a well-defined mechanism for waiting.

The solution is to "pause" the JavaScript execution to let the rendering threads catch up. And this is the effect that setTimeout() with a timeout of 0 does. It is like a thread/process yield in C. Although it seems to say "run this immediately" it actually gives the browser a chance to finish doing some none-JavaScript things that have been waiting to finish before attending to this new piece of JavaScript.

(In actuality, setTimeout() requeues the new Javascript at the end of the execution queue. See the comments for links to a longer explanation.)

IE6 just happens to be more prone to this error, but I have seen it occur on older versions of Mozilla and in FireFox.

Taken from: http://stackoverflow.com/questions/779379/why-is-settimeoutfn-0-sometimes-useful