var enemyInterval;
var enemyStack;

function enemyNewGame() {
	enemyStack = new Array();
	enemyInterval = 100;
}

var enemyConfigs = [
	function() { /* 42 */
		var e = new Fly();
		e.hp = 2;
		e.shotDamage = 2;
		e.speed = 4;
		e.obj.img.src = "data/graphics/42.png";
		return e;
	},
	function() { /* plan 9 */
		var e = new Fly();
		e.hp = 3;
		e.shotDamage = 2;
		e.speed = 3;
		e.obj.img.src = "data/graphics/plan9.png";
		return e;
	},
	function() { /* damnbig */
		var e = new Fly();
		e.hp = 8;
		e.shotDamage = 5;
		e.speed = 3;
		e.obj.img.src = "data/graphics/damnbig.png";
		return e;
	}];

function enemyCommonConfig(enemyFly) {
	enemyFly.obj.posRandomNewItem();
	enemyFly.obj.dirX = -enemyFly.speed;
	enemyFly.obj.dirY = 0;
	enemyFly.isFriendly = false;
	enemyFly.init();
	return enemyFly;
}

function enemyUpdate() {
	if (gameCounter % enemyInterval == 0) {
		enemyDispatch();
	}
	for (var i in enemyStack) {
		var e = enemyStack[i];
		/* check for removal */
		if (!e.obj.isIndsideObj(canvas)) {
			enemyStack.splice(i, 1);
		} else if (e.isDead()) {
			enemyStack.splice(i, 1);
		} else if (e.obj.isIndsideObj(playerShip.obj)) {
			playerShip.hitted(e.hp);
			enemyStack.splice(i, 1);
		}
		e.update();
	}
}

function enemyDispatch() {
	var index = Math.floor(Math.random()*(enemyConfigs.length));
	enemy = enemyConfigs[index]();
	enemy = enemyCommonConfig(enemy);
	enemyStack.push(enemy);
}

