var TRANSMITSECTORID = 0;

function canTransmit(sectorId) {
	var rv = false;
	var portal = getPortal(sectorId);
	if (portal != undefined) {
		if (portal.navdata) {
			for ( var empireId in empires) {
				var empire = empires[empireId];
				var allied = empire.allied || false;
				if (!allied) {
					rv = true;
					break;
				}
			}
		}
	}
	return rv;
}

function createTransmitRow(empire, empireId, transmitId, checked) {
	var checkboxCell;
	var attrs;
	if (empire.allied) {
		attrs = "checked='true' disabled='true'";
		checkboxCell = addCheckboxCell("transmit-toggle", attrs, "(allied)");

	} else {
		attrs = "checked='" + checked + "'";
		checkboxCell = addCheckboxCell("transmit-toggle", attrs, "");
		$(checkboxCell).find(".transmit-toggle").removeAttr('disabled');
	}
	var row = "<tr class='transmit-row' transmitid='" + transmitId
			+ "' empireid='" + empireId + "'>"
			+ addCell("transmit-empire", empire.name) + checkboxCell
			+ "</tr>";

	return row;
}

function populateTransmitRows() {
	var rows = "";

	var orders = getOrders(TRANSMITSECTORID, ordertypes.transmit);
	var ordersByEmpire = [];
	for ( var orderId in orders) {
		var order = orders[orderId];
		var empireId = order.empire;
		ordersByEmpire[empireId] = order;
	}

	for ( var empireId in empires) {
		if (empireId != empire.id && !empire.gm) {
			var thisEmpire = empires[empireId];
			var name = thisEmpire.name;
			var allied = thisEmpire.allied;
			var checked = false;
			var order = ordersByEmpire[empireId];
			var transmitId = 0;
			if (order != undefined) {
				transmitId = order.id;
				checked = true;
			}
			var row = createTransmitRow(thisEmpire, empireId, transmitId, checked);
			rows += row;
		}
	}

	$("#transmit-table > tbody > tr:first").after(rows);
}

function selectedTransmit(checkbox) {
	var isChecked = $(checkbox).attr('checked');
	var row = $(checkbox).parents('tr');
	var transmitId = $(row).attr('transmitid');
	var empireId = $(row).attr('empireid');
	var empire = empires[empireId];
	var sector = sectors[TRANSMITSECTORID];
	var portalId = sector.portal;
	if (transmitId == 0) {
		var order = {
			"portal" : portalId,
			"empire" : empireId
		};
		transmitId = addOrder(TRANSMITSECTORID, ordertypes.transmit, order);
		$(row).attr('transmitid', transmitId);
	} else {
		deleteOrder(TRANSMITSECTORID, ordertypes.transmit, transmitId);
		$(row).removeAttr('transmitid');
	}
}

function rebuildTransmitList() {
	$("#transmit-table").find("tr:gt(0)").remove();
	populateTransmitRows();
}

function transmitAll(value) {
	$("#transmit-table").find("input:checkbox[disabled!='true']").each(function(index) {
		   if (value) {
		       $(this).attr('checked', 'checked');
		   }
		   else {
			   $(this).removeAttr('checked');
		   }
		   selectedTransmit(this);
   });
}

function showTransmitDialog(sectorId) {
	TRANSMITSECTORID = sectorId;
	rebuildTransmitList();

	$("#transmit-all").bind('click', function() {
		transmitAll(true);
	});

	$("#transmit-none").bind('click', function() {
		transmitAll(false);
	});
	$(".transmit-toggle").live('click', function() {
		selectedTransmit(this);
	});

	$('#transmit-dialog').dialog('option', 'title',
			"Transmit Portal Data " + getTitle(sectorId));
	$('#transmit-dialog').dialog('open');
}

