﻿function DocumentOnloadHandler() {
	var handlerQueue = new Array();
	
	this.Add = function(listener) {
		handlerQueue.push(listener);
	}
	this.Remove = function(listener) {
		for (var i = 0; i < handlerQueue.length; i++) {
			if (handlerQueue[i] == listener) {
				handlerQueue[i] = null;
				for (var j = i + 1; j < handlerQueue.length; j++) {
					handlerQueue[j - 1] = handlerQueue[j];
				}
				handlerQueue[handlerQueue.length - 1] = null;
				handlerQueue.pop();
			}
		}
	}
	this.Process = function() {
		for (var i = 0; i < handlerQueue.length; i++) {
			try {
				handlerQueue[i].call();
			}
			catch (e) {
				alert(e);
			}
		}
	}
	
	window.onload = function() {
		OnloadFunction.Process();
	}
}
