Source Code of: eventlistener.js
Date Last Modified: May 02, 2009 - 01:59:21 AM
Size: 1 KB  |  63 lines  |  1,771 characters
/**
 * Javascript code to handle adding functions to event listeners of objects.
 * Includes helper functions to add elements to the body's onload. This is 
 * repeated all over Horde's JavaScript, and this allows for all the details of 
 * maintaining a list of functions to be called to be encapsulated in one 
 * function call. Usage: addObjectEventListener(window, 'load', functionobject);
 * and addBodyOnload(functionobject);
 * 
 * Copyright 2005 Matt Warden <mwarden@gmail.com>
 *
 * This work is licensed under the Creative Commons Attribution-ShareAlike 
 * License. To view a copy of this license, visit 
 * http://creativecommons.org/licenses/by-sa/2.5/ or send a letter to 
 * Creative Commons
 * 559 Nathan Abbott Way
 * Stanford, California 94305
 * USA.
 * 
 *
 * @author Matt Warden <mwarden@gmail.com>
 */

function addObjectEventListener(obj, event, funct)
{
    if (obj.addEventListener) {
        obj.addEventListener(event, funct, false);
    } else if (obj.attachEvent) {
        obj.attachEvent('on'+event, funct);
    }
    else {
        eval('var old = obj.on'+event+';');
        if (old != null) {
            eval('obj.on'+event+' = function() {'
                +'old();'
                +'funct();'
            +'};');
        }
        else {
            eval('obj.on'+event+' = funct;');
        } // end if
    } // end if
} // end function addListener


var _init = new Array();
_init[0] = new Function("{}");

function initBody()
{
    var i;
    for (i = 0; i < _init.length; i++) {
        _init[i]();
    } // end for
} // end function initBody

function addBodyOnload(funct)
{
    _init[_init.length] = funct;
} // end function addBodyOnload


// attach listener to window onload
addObjectEventListener(window, 'load', initBody);

A Derivative Work of: PHP Source Code Utility - Version 1.0.0 Copyright © 0php.com 2002.