var addLoadEvent = (function(){
var global = this;
var base = null;
var safe = false;
var listenerType = (global.addEventListener && 2)||
(global.attachEvent && 3)|| 0;
function getStackFunc(funcRef, arg1,arg2,arg3,arg4){
var next = null;
function l(ev){
funcRef((ev?ev:global.event), arg1,arg2,arg3,arg4);
if(next)next = next(ev);
return (arg1 = arg2 = arg3 = arg4 = funcRef = null);
};
l.addItem = function(d){
if(next){
next.addItem(d);
}else{
next = d;
}
};
return l;
};
return (function(funcRef, arg1,arg2,arg3,arg4){
if(base){
base.addItem(
getStackFunc(funcRef, arg1,arg2,arg3,arg4)
);
}else{
base = getStackFunc(funcRef, arg1,arg2,arg3,arg4);
}
if(!safe){
switch(listenerType){
case 2:
global.addEventListener("load", base, false);
safe = true;
break;
case 3:
global.attachEvent("onload", base);
safe = true;
break;
default:
if(global.onload != base){
if(global.onload){
base.addItem(getStackFunc(global.onload));
}
global.onload = base;
}
break;
}
}
});
})();
