/*
	JS Framework 
*/

var onDOMloadEvents = new Array();
var DOMisLoaded = false;

var showingDebugMessages = true;

function debug(msg) {

    if (showingDebugMessages)
        showingDebugMessages = confirm(msg + "\n\nDo you wish to see any more messages should they arrive?");
}

function onDOMloadMaster() {

    DOMisLoaded = true;

    for (var i = 0; i < onDOMloadEvents.length; i++) {
        onDOMloadEvents[i]();
    }

    //debug(document.documentElement.offsetHeight);

}

function registerOnDOMload(func) {

    if (!func) {
        alert("Tried to register null as an onload function.");
        return;
    }

    if (!(func instanceof Function)) {
        alert("Tried to register non-function as onload function: " + func);
        return;
    }

    onDOMloadEvents[onDOMloadEvents.length] = func;
}

function getEventSource(e) {

    if(!e) e = event;
    if(e.srcElement) return e.srcElement;
    if(e.target) return e.target;
    return null;
}

var loaderAssigned = false;

if (document.addEventListener) {
    //Is gecko
    loaderAssigned = true;
    document.addEventListener("DOMContentLoaded", onDOMloadMaster, null);
}

/*@cc_on @*/
/*@if (@_win32)
    //IEWin
    loaderAssigned = true;
    document.write('<script defer src="/js/ie_onload.js"><'+'/script>');
/*@end @*/

if (!loaderAssigned) {
    //Opera / safari - if we're lucky... but we don't care atm :D
    onload = onDOMloadMaster;
}

