function getPopupData(id) {
	  var sector = sectors[id];
	  var data = "";
	  var worldId = sector.world;
	  if (worldId != null) {
	      var world = worlds[worldId];
	      var owningEmpireId = world.empire;
	      if (owningEmpireId > 0) {
	          var owner = empires[owningEmpireId];
	          data += "<p>[" + owner.name + "]</p>";
	      }
          data += "<p>Production: " + world.production + "</p>";
          if (world.homeworld) {
              data += "<p>Homeworld</p>";
          }
          if (world.blockaded) {
        	  data += "<p>Blockaded</p>";
          }
          if (world.interdicted) {
        	  data += "<p>Interdicted</p>";
          }
          var stockpiles = world.stockpiles;
          if (stockpiles != null && owningEmpireId > 0) {
        	  data += "<p>Stockpile: ";
        	  var array = new Array();
        	  var ownerAmount = 0;
              for (var id in stockpiles) {
                  var amount = stockpiles[id];
                  if (id == owningEmpireId) {
                	  ownerAmount = amount;
                  }
                  else {
                	  var stockEmpire = empires[id];
                	  var stockInfo = stockEmpire.name + ": " + amount;
                      array.push(stockInfo);
                  }
              }
              data += ownerAmount;
              array.sort();
              for (var info in array) {
                  data += "<br/>" + info;
              }
              data += "</p>";
          }
          else {
              var stockpile = world.stockpile;
              if (stockpile > 0) {
                  data += "<p>Stockpile: " + stockpile + "</p>";
              }
          }
          data += "\n";
	  }
	  var portalIds = sector.portals;
	  if (portalIds != null) {
		  var portalId = portalIds[0];
		  var connection = connections[portalId];
		  var knownEntrances = new Array();
		  var knownExits = new Array();
		  if (connection) {
			  var entrances = connection.entrances;
			  if (entrances) {
		          for (var i = 0; i < entrances.length; i++) {
		        	  var knownId = entrances[i];
					  var known = portals[knownId];
					  knownEntrances.push(known.name);
				  }
			  }
			  var exits = connection.exits;
			  if (exits) {
		          for (var i = 0; i < exits.length; i++) {
		        	  var knownId = exits[i];
					  var known = portals[knownId];
					  knownExits.push(known.name);
				  }
			  }
		  }
		  knownEntrances.sort();
		  knownExits.sort();
		  data += "<p>Known entrances:";
	      if (knownEntrances.length > 0) {
	    	  data += "<br/><ul>";
	          for (var i = 0; i < knownEntrances.length; i++) {
	    		  data += "<li class='portalitem'>" + knownEntrances[i] + "</li>";
	    	  }
	          data += "</ul>";
	      }
	      else {
	    	  data += " none";
	      }

	      data += "<br/>Known exits:";
	      if (knownExits.length > 0) {
	    	  data += "<br/><ul>";
		      for (var i = 0; i < knownExits.length; i++) {
	    		  data += "<li class='portalitem'>" + knownExits[i] + "</li>";
	    	  }
		      data += "</ul>";
	      }
	      else {
	    	  data += " none";
	      }
	      data += "</p>\n";
	  }

	  var storm = sector.storm;
	  if (storm) {
	      data += "<p><span class=\"storm\">ion storm (" + storm + ")</span></p>";

	  }
	  else if (sector.nebula) {
	      data += "<dp>nebula</p>";
	  }

	  var shipIds = sector.ships;
	  var empireId = empire.id;
	  var isGM = empire.gm;
	  if (shipIds) {
		  data += "<table class='shiptable' cellspace='5' border='1'>";
		  data += "<tr><th>Handle</th><th>Class</th><th>Owner</th><th>G-E-S-R</th><th>DP</th><th>OR</th><th>Status</th></tr>";
		  for (var i = 0; i < shipIds.length; i++) {
			   data += "<tr>";
	           var shipId = shipIds[i];
			   var missile = isMissile(shipId);
	           var ship = ships[shipId];
	           var owningEmpireId = ship.empire;
	           var shipclassId = ship.shipclass;
	           var shipclass = shipclasses[shipclassId];
	           var carrierId = ship.carrier || 0;
	           var carrierToken = "";
	           if (carrierId > 0) {
	        	   var carrier = ships[carrierId];
	        	   var carrierEmpireId = carrier.empire;
	        	   carrierToken = carrierEmpireId == owningEmpireId ? "+" : "*";
	           }
	           var handle = ship.handle;
	           var classname = shipclass.name;
	           var guns = missile ? shipclass.guns : ship.guns;
	           var engines = ship.engines;
	           var scan = ship.scan;
	           var dpremaining = ship.dpremaining;
	           var oprating = Math.round(ship.oprating * 100);
	           var emptyRacks = ship.emptyracks;
	           var racks = shipclass.racks;
	           var owner = empires[owningEmpireId];
	           var tonnage = shipclass.tonnage;
	           var availableRacks = racks - emptyRacks;
	           var conditionIds = ship.conditions;
	           var shipconditions = "";
	           if (conditionIds) {
	        	   for (var index = 0; index < conditionIds.length; index++) {
	        		   var conditionId = conditionIds[index];
	        		   var condition = conditions[conditionId];
	        		   var abbr = condition.abbr;
	        		   if (abbr) {
	        			   shipconditions += abbr;
	        		   }
	        	   }
	           }

			   data += "<td>" + carrierToken + handle + "</td>";
			   data += "<td>" + classname + "</td>";
			   data += "<td>" + owner.name + "</td>";
        	   var isUnknown = shipclass.unknown || false;
        	   tonnage += " tonne" + plural(tonnage);

	           if (isGM || owningEmpireId == empireId || !isUnknown) {
	        	   if (missile) {
		        	   data += "<td>" + guns + "-0-0-0/0</td>";
		        	   data += "<td colspan=2>" + tonnage + "</td>";
	        	   }
	        	   else {
	        		   if (owningEmpireId == empireId) {
	        			   racks = availableRacks + "/" + racks;
	        		   }
	        	      data += "<td>" + guns + "-" + engines + "-" + scan + "-" + racks + "</td>";
	        	      data += "<td>" + dpremaining + "</td>";
	        	      data += "<td>" + oprating + "%</td>";
	        	   }
	           }
	           else { // unknown class
	        		data += "<td>?-?-?-?</td>";
		        	data += "<td colspan=2>" + tonnage + "</td>";
	           }
	           data += "<td>" + shipconditions + "</td>";
	           data += "</tr>";
	      }
		  data += "</table>";
	  }

	  var lastscanned = sector.lastscanned;
	  if (lastscanned != null) {
		  data += "<p>Last scanned turn " + lastscanned + "</p>";
	  }
	  if (data.length == 0) {
		  data = "<p>empty space</P>";
	  }
	  return data;
  }
