/*
 *
 * IEContentLoaded.js
 *
 * Author: Diego Perini (diego.perini at gmail.com) NWBOX S.r.l.
 * Summary: DOMContentLoaded emulation for IE browsers
 * Updated: 05/10/2007
 * License: GPL/CC
 * Version: TBD
 *
 */

// @w   window reference
// @fn  function reference
function IEContentLoaded (w, fn) {
    var d = w.document, done = false,
    // only fire once
    init = function () {
        if (!done) {
            done = true;
            fn();
        }
    };
    // polling for no errors
    (function () {
        try {
            // throws errors until after ondocumentready
            d.documentElement.doScroll('left');
        } catch (e) {
            setTimeout(arguments.callee, 50);
            return;
        }
        // no errors, fire
        init();
    })();
    // trying to always fire before onload
    d.onreadystatechange = function() {
        if (d.readyState == 'complete') {
            d.onreadystatechange = null;
            init();
        }
    };
}


var ONLOAD_HANDLER = function()
{
    var returnObj = {};
    var run_arr   = [];
    
    var addFunction = function(fn)
    {
        run_arr.push(fn);
    };
    
    var initFunction = function()
    {
        for (var i = 0; i < run_arr.length; i++)
        {
            var activeFn = run_arr[i];
            activeFn();
        }
    };
    
    /**
     * Public
     */
    returnObj.add  = addFunction;
    returnObj.init = initFunction;
    
    return returnObj;
};

var ONLOAD_HANDLER = new ONLOAD_HANDLER();

try
{
    if (Ext.isIE)
    {
        IEContentLoaded(window, function(){ONLOAD_HANDLER.init()});
    }
    else
    {
        Ext.onReady(function(){ONLOAD_HANDLER.init()});
    }
}
catch (e)
{
    //alert('There was an error processing your javascript onload');
}
