
// Adapted from DOM Ready extension by Dan Webb

// http://www.vivabit.com/bollocks/2006/06/21/a-dom-ready-extension-for-prototype

// which was based on work by Matthias Miller, Dean Edwards and John Resig

//

// Usage:

//

// Event.onReady(callbackFunction);

Object.extend(Event, {

_domReady : function() {

if (arguments.callee.done) return;

arguments.callee.done = true;

 

if (Event._timer) clearInterval(Event._timer);


Event._readyCallbacks.each(function(f) { f() });

Event._readyCallbacks = null;


},

onReady : function(f) {

if (!this._readyCallbacks) {

var domReady = this._domReady;


if (domReady.done) return f();


if (document.addEventListener)

document.addEventListener("DOMContentLoaded", domReady, false);


/*@cc_on @*/

/*@if (@_win32)

var dummy = location.protocol == "https:" ? "https://javascript:void(0)" : "javascript:void(0)";

document.write("<script id=__ie_onload defer src='" + dummy + "'><\/script>");

document.getElementById("__ie_onload").onreadystatechange = function() {

if (this.readyState == "complete") { domReady(); }

};

/*@end @*/


if (/WebKit/i.test(navigator.userAgent)) {

this._timer = setInterval(function() {

if (/loaded|complete/.test(document.readyState)) domReady();

}, 10);

}


Event.observe(window, 'load', domReady);

Event._readyCallbacks = [];

}

Event._readyCallbacks.push(f);

}

});
