// ==UserScript==
// @name OGame : planets/moons separation
// @namespace http://userscripts.org/users/36331
// @description OGame : New planets organisation in fleet menu (separate planets/moons in 2 columns)
// @date 2008-01-05
// @creator Black Cat
// @include http://uni*.ogame.*/game/index.php?page=flotten2*
// @exclude
// ==/UserScript==

(function(){

	function row(coords, planetLink, moonLink) {
		this.coords = coords;
		this.planetLink = planetLink;
		this.moonLink = moonLink;
	}
	
	function findCoords(tab, coords) {
		var value = -1;
		var i = 0;
		while (value == -1 && i < tab.length) {
			if (tab[i].coords == coords)
				value = i;
			i++;
		}
		return value;
	}
	
	var rows = new Array();
	for (var i = 0; i < 9; i++) {
		rows[i] = new row('', null, null);
	}
	var currentRow = 0;
	
	var targets = new Array();
	var targetsRows = new Array();
	var links = document.getElementById("content").getElementsByTagName("a");
	var i=0;
	var loop=true;
	while (loop && i < links.length) {
		if (links[i].parentNode.getElementsByTagName("input").length == 0) {
			if (links[i].getAttribute("href").indexOf('setTarget') != -1) {
				targets.push(links[i]);
				var row = links[i].parentNode.parentNode;
				if (row.getElementsByTagName("a")[0] == links[i])
					targetsRows.push(row);
			}
		} else {
			loop = false;
		}
		i++;
	}
	var title = targetsRows[0].previousSibling;
	
	var expression = /setTarget\((\d*),(\d*),(\d*),(\d*)\)/;
	for (var i = 0; i < targets.length; i++) {
		var thisTarget = targets[i];
		expression.exec(thisTarget.getAttribute("href"));
		var coords = RegExp.$1 + ":" + RegExp.$2 + ":" + RegExp.$3;
		var planeteType = parseInt(RegExp.$4);
		var place = findCoords(rows, coords);
		if (place == -1) {
			place = currentRow;
			currentRow++;
		}
		rows[place].coords = coords;
		if (planeteType == 1)
			rows[place].planetLink = thisTarget;
		else
			rows[place].moonLink = thisTarget;
	}
	
	var lastInsert = title;
	for (var i = 0; i < rows.length; i++) {
		if (rows[i].coords != '') {
			var row = document.createElement("tr");
			row.setAttribute("height", "20");
			var planet = document.createElement("th");
			var moon = document.createElement("th");
			if (rows[i].planetLink != null)
				planet.appendChild(rows[i].planetLink);
			if (rows[i].moonLink != null)
				moon.appendChild(rows[i].moonLink);
			row.appendChild(planet);
			row.appendChild(moon);
			lastInsert.parentNode.insertBefore(row, lastInsert.nextSibling);
			lastInsert = row;
		}
	}

	for (var i = 0; i < targetsRows.length; i++) {
		var thisRow = targetsRows[i];
		thisRow.parentNode.removeChild(thisRow);
	}
})();
