var EHDI = EHDI || Object.create(null);

EHDI.GAME = EHDI.GAME || Object.create(null);

EHDI.GAME.Managers = EHDI.GAME.Managers || Object.create(null);

EHDI.GAME.Managers.ObjectManager = (function() {
	var activeObjects = [];
	var instance;

	function create() {
		var public = {};

		public.spawn = function(object) {
			if(object.length) {
				activeObjects = [];
				activeObjects = activeObjects.concat(object);
			}
			else
				activeObjects.push(object);
		}

		public.activeObjectCount = function() {
			return activeObjects.length;
		}

		public.update = function(container) {
			for(var i = 0; i < public.activeObjectCount(); i++) {
				if(activeObjects[i].delete) {
					container.removeChild(activeObjects[i]);
					activeObjects.splice(i, 1);
				}
			}
		}

		public.checkCollisions = function(player) {
			for(var i = 0; i < public.activeObjectCount(); i++) {
				if(activeObjects[i].checkCollision(player)) {
					return true;
				}
			}
			return false;
		}

		public.getActiveObjects = function() {
			return activeObjects;
		}

		public.removeActiveObjects = function(container) {
			for(var i = 0; i < activeObjects.length; i++) {
				container.removeChild(activeObjects[i]);
			}
			// activeObjects = [];
		}
		
		return public;
	}

	return {
		getInstance: function() {
			if(!instance) {
				instance = create();
			}
			return instance;
		}
	};
})();