var TRANSPONDERSECTORID = 0;

function canToggle(sectorId) {
	var rv = false;
	var transponders = getShips(sectorId);
	if (!isEmpty(transponders)) {
		rv = true;
	}
	return rv;
}

function createTransponderRow(ship, shipId, rowId, toggleId, checked) {
	var attrs = "checked='" + checked + "'";
	var row = "<tr class='transponder-row' toggleid='" + toggleId + "' shipid='" + shipId
			+ "'>" + addCell("", rowId) + addCell("transponder-ship", ship.handle)
			+ addCheckboxCell("transponder-toggle", attrs, "")
			+ "</tr>";
	return row;
}

function populateTransponderRows() {
	var rows = "";
	var rowId = 1;
	var transponders = getShips(TRANSPONDERSECTORID);
	var orders = getOrders(TRANSPONDERSECTORID, ordertypes.toggle);
	var ordersByShip = [];
	for (var orderId in orders) {
		var order = orders[orderId];
		var shipId = order.ship;
		ordersByShip[shipId] = order;
	}

	for ( var shipId in transponders) {
		var ship = transponders[shipId];
		if (ship.empire == empire.id) {
			var order = ordersByShip[shipId];
			var toggleId = 0;
			var checked = ship.publictransponder;
			if (order != undefined) {
				toggleId = order.id;
				checked = order.ispublic;
			}
			var row = createTransponderRow(ship, shipId, rowId, toggleId, checked);
			rowId++;
			rows += row;
		}
	}
	$("#transponder-table > tbody > tr:first").after(rows);
}

function rebuildToggleList() {
	$("#transponder-table").find("tr:gt(0)").remove();
	populateTransponderRows();
}

function transponderAll(value) {
	$("#transponder-table").find("tr:gt(0)").each(function(index) {
		   var checkbox = $(this).find(".transponder-toggle");
		   if (value) {
		       $(checkbox).attr('checked', 'checked');
		   }
		   else {
			   $(checkbox).removeAttr('checked');
		   }
		   selectedTransponder(checkbox);
	});
}

function selectedTransponder(checkbox) {
	var isChecked = $(checkbox).attr('checked');
	var row = $(checkbox).parents('tr');
	var toggleId = $(row).attr('toggleid');
	var shipId = $(row).attr('shipid');
	var ship = ships[shipId];
	var isPublic = ship.publictransponder || false;
	if (toggleId == 0) {
		if (isChecked != isPublic) {
			var order = {
				"ship" : shipId,
				"ispublic" : isChecked
			};
			toggleId = addOrder(TRANSPONDERSECTORID, ordertypes.toggle, order);
			$(row).attr('toggleid', toggleId);
		}
	}
	else {
		if (isChecked == isPublic) {
			deleteOrder(TRANSPONDERSECTORID, ordertypes.toggle, toggleId);
			$(row).removeAttr('toggleid');
		}
	}
}

function showTransponderDialog(sectorId) {
	TRANSPONDERSECTORID = sectorId;
	rebuildToggleList();

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

	$("#transponder-none").bind('click', function() {
		transponderAll(false);
	});

	$(".transponder-toggle").live('click', function() {
		selectedTransponder(this);
	});

	$('#transponder-dialog').dialog('option', 'title',
			"Toggle Transponders " + getTitle(sectorId));
	$('#transponder-dialog').dialog('open');
}

