HD.util.Queue = function() {
	this.items = [];
};

HD.util.Queue.prototype = {

	add : function(item) {
		this.items.push(item);				
	},
	
	remove : function(item) {
		var tempItems = [];
		var items = this.items;
		for(var i = 0, len = items.length; i < len; i++) {
			var tempItem = items[i];
			if(tempItem != item) {
				tempItems.push(tempItem);
			}
		}
		
		this.items = tempItems;
	},
	
	execute : function() {
		var items = this.items;
		for(var i = items.length - 1; i > -1; i--) {
			items[i]();
		}
		this.clear();
	},
	
	clear : function() {
		this.items = [];
	},
	
	contains : function(item) {
		var items = this.items;		
		for(var i = 0, len = items.length; i < len; i++) {
			var tempItem = items[i];
			if(tempItem == item) {
				return true;
			}
		}		
		return false;
	}
};

HD.register("hd_queue", HD.util.Queue, {version: "1.0", build: "1"});