if (typeof Event == 'undefined') Event = new Object(); Event.fm_domReady = { add: function(fm_fn) { //----------------------------------------------------------- // Already loaded? //----------------------------------------------------------- if (Event.fm_domReady.loaded) return fm_fn(); //----------------------------------------------------------- // fmObservers //----------------------------------------------------------- var fmObservers = Event.fm_domReady.fmObservers; if (!fmObservers) fmObservers = Event.fm_domReady.fmObservers = []; // Array#push is not supported by Mac IE 5 fmObservers[fmObservers.length] = fm_fn; //----------------------------------------------------------- // domReady function //----------------------------------------------------------- if (Event.fm_domReady.callback) return; Event.fm_domReady.callback = function() { if (Event.fm_domReady.loaded) return; Event.fm_domReady.loaded = true; if (Event.fm_domReady.timer) { clearInterval(Event.fm_domReady.timer); Event.fm_domReady.timer = null; } var fmObservers = Event.fm_domReady.fmObservers; for (var i = 0, length = fmObservers.length; i < length; i++) { var fm_fn = fmObservers[i]; fmObservers[i] = null; fm_fn(); // make 'this' as window } Event.fm_domReady.callback = Event.fm_domReady.fmObservers = null; }; //----------------------------------------------------------- // Emulates 'onDOMContentLoaded' //----------------------------------------------------------- var ie = !!(window.attachEvent && !window.opera); var webkit = navigator.userAgent.indexOf('AppleWebKit/') > -1; if (document.readyState && webkit) { // Apple WebKit (Safari, OmniWeb, ...) Event.fm_domReady.timer = setInterval(function() { var state = document.readyState; if (state == 'loaded' || state == 'complete') { Event.fm_domReady.callback(); } }, 50); } else if (document.readyState && ie) { // Windows IE var src = (window.location.protocol == 'https:') ? '://0' : 'javascript:void(0)'; document.write( '