function EventChain() {

	var me = this;
	this.EventTasks = null;
	this.NextEvent = null;
	this.NextEventTimeout = 1;
	
	this.AddEventTask = function(eventtask) {
		if (me.EventTasks == null) {
			me.EventTasks = new Array();
		}
		
		me.EventTasks[me.EventTasks.length] = eventtask; 
	}
	
	this.SetNextEvent = function(objEventChain) {
		me.NextEvent = objEventChain;
	}
	
	this.SetNextEventTimeout = function(timeout) {
		//me.NextEventTimeout = timeout;
	}
	
	this.Fire = function() {
		var i;
		var func;
		var toExecute;
		for (i=0; i<me.EventTasks.length; i++) {
			func = me.EventTasks[i];
			if (typeof func!="function") {
				toExecute = new Function(func);
			}
			else {
				toExecute = func;
			}
			toExecute();
		}
		if (me.NextEvent != null) {
			window.setTimeout(me.NextEvent.Fire, me.NextEventTimeout);
		}
	}
}