/*------------------------------------------------------------------------
 * Functions to handle multiple handler for onload and onunload events.
 * Call page_onload(fn) and page_unload(fn) to register functions to be
 * call when the page is loaded/unloaded
 *------------------------------------------------------------------------*/

var onload_functions = new Array();
var unload_functions = new Array();

window.onload   = onloader;
window.onunload = unloader;

function onloader() {
//  console.log('running onloader()');
    for(var i = 0; i < onload_functions.length; i++) {
//      console.log('running onload function %d: %s', i, onload_functions[i]);
        try { onload_functions[i](); }
        catch(err) { 
            console.log('Caught error in onload function: %s', err);
        }
    }
}

function unloader() {
//  console.log('running unloader()');
    for(var i = 0; i < unload_functions.length; i++) {
        try { unload_functions[i](); }
        catch(err) {
            console.log('Caught error in unload function: %s', err);
        }
    }
}

function page_onload(func) {
//  console.log('registering onload %s', func);
    onload_functions.push(func);
}

function page_unload(func) {
//  console.log('registering unload %s', func);
    unload_functions.push(func);
}


