function getHoverData(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 owningEmpire = empires[owningEmpireId];
	          data += "<p>[" + owningEmpire.name + "]</p>";
	      }
          data += "<p>Production: " + world.production + "</p>";
          if (world.homeworld) {
              data += "<p>Homeworld</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 {
                      array.push(amount);
                  }
              }
              data += ownerAmount;
              array.sort(function(a,b) {return b-a;});
              for (var amount in array) {
                  data += "/" + amount;
              }
              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 numEntrances = 0;
		  var numExits = 0;
		  if (connection) {
			  var entrances = connection.entrances;
			  if (entrances) {
				  numEntrances = entrances.length;
			  }
			  var exits = connection.exits;
			  if (exits) {
				  numExits = exits.length;
			  }
		  }
		  data += "<p>";
	      if (numEntrances > 0) {
	    	  data += numEntrances;
	      }
	      else {
	    	  data += "No known";
	      }
	      data += " entrance" + plural(numEntrances) + ", ";
	      if (numExits > 0) {
	    	  data += numExits;
	      }
	      else {
	    	  data += "No known";
	      }
	      data += " exit" + plural(numExits);
	      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 numShips = 0;
	  var shipGuns = 0;
	  var shipDP = 0;
	  var numMissiles = 0;
	  var missileGuns = 0;

      var numForeignShips = 0;
      var foreignShipGuns = 0;
      var foreignShipDP = 0;
      var numForeignMissiles = 0;
      var foreignMissileGuns = 0;

	  var shipIds = sector.ships;
	  if (shipIds) {
		  var empireId = empire.id;
		  for (var i = 0; i < shipIds.length; i++) {
	           var shipId = shipIds[i];
	           var ship = ships[shipId];
	           var owningEmpireId = ship.empire || 0;
	           if (owningEmpireId == empireId) {
	        	   if (isMissile(shipId)) {
			           numMissiles++;
			           shipClassId = ship.shipclass;
			           shipClass = shipclasses[shipClassId];
			           missileGuns = shipClass.guns;
	               }
		           else {
	   	               var ship = ships[shipId];
			           numShips++;
			           shipGuns += ship.guns;
			           shipDP += ship.dpremaining;
		           }
	           }
	           else if (isMissile(shipId)) {
	        	   numForeignMissiles++;
                   shipClassId = ship.shipclass;
                   shipClass = shipclasses[shipClassId];
                   foreignMissileGuns = shipClass.guns;
	           }
	           else {
	        	   numForeignShips++;
	               foreignShipGuns += ship.guns;
	               foreignShipDP += ship.dpremaining;
	           }
	       }
	  }
      if (numShips > 0 || numMissiles > 0) {
    	  data += "<p>Friendly: ";
    	  var tmp = new Array();
    	  if (numShips > 0) {
		      tmp.push(numShips + "s/" + shipGuns + "g/" + shipDP + "dp");
    	  }
	      if (numMissiles > 0) {
		      tmp.push(numMissiles + "m/" + missileGuns + "g");
	      }
	      data += tmp.join(" + ");
	      data += "</p>";
      }
      var numUnknown = sector.unknowncount || 0;
      var unknownTonnage = sector.unknowntonnage || 0;
	  if (numForeignShips > 0 || numForeignMissiles > 0 || numUnknown > 0) {
    	  data += "<p>Foreign: ";
    	  var tmp = new Array();
          if (numForeignShips > 0) {
              tmp.push(numForeignShips + "s/" + foreignShipGuns + "g/" + foreignShipDP + "dp");
          }
          if (numForeignMissiles > 0) {
              tmp.push(numForeignMissiles + "/" + foreignMissileGuns);
          }
          if (numUnknown > 0) {
              tmp.push(numUnknown + "s/" + unknownTonnage + "t");
          }
          data += tmp.join(" + ");
          data += "</p>";
	  }
	  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;
  }
