function makePlanetsTooltips() { plstt = new Array(); if (ttDelay == 0) { var i; for (i=0;i<40;i++) plstt[i] = ""; return; } plstt[0] = tt_Dynamic("Click here to swtich between individual and cumulative build times for the planets' build queues"); plstt[1] = tt_Dynamic("Click here to switch between list and quick builder modes"); plstt[2] = tt_Dynamic("Click here to get a new planet if you have lost all those you had"); plstt[10] = tt_Dynamic("Check this checkbox to select this planet and build what you'll define in the quick builder on it"); plstt[11] = tt_Dynamic("Click here to go to this planet's individual page"); plstt[12] = tt_Dynamic("Check this checkbox to select this item in this planet's build queue and perform some queue operation on it with the quick builder"); plstt[20] = tt_Dynamic("Use this radio button to perform operations on factories on the selected planets"); plstt[21] = tt_Dynamic("Use drop down list to select what operation to perform with factories on the selected planets"); plstt[22] = tt_Dynamic("Use this text field to type in the number of factories to build or destroy on the selected planets"); plstt[23] = tt_Dynamic("Use this drop down list to select the type of factories with which to perform the defined operation on the selected planets"); plstt[24] = tt_Dynamic("Use this radio button to add items to the build queues on the selected planets"); plstt[25] = tt_Dynamic("Use this text field to type in the number of items to add to the build queue on the selected planets"); plstt[26] = tt_Dynamic("Use this drop down list to select the kind of items to add to the build queue on the selected planets"); plstt[27] = tt_Dynamic("Use this radio button to flush the build queue on the selected planets"); plstt[28] = tt_Dynamic("Use this radio button to delete the selected itesm from the build queues"); plstt[29] = tt_Dynamic("Use this radio button move the selected items in the build queues"); plstt[30] = tt_Dynamic("Use this drop down list to select in what direction to move the selected items in the build queues"); plstt[31] = tt_Dynamic("Use this radio button to replace the selected items in the build queues with the defined new items"); plstt[32] = tt_Dynamic("Use this text field to type in the number of items to build to replace the selected items"); plstt[33] = tt_Dynamic("Use this drop down list to select the type of items to build to replace the selected items"); plstt[34] = tt_Dynamic("Click here to execute the action you've defined with the quick builder and keep the quick builder open"); plstt[35] = tt_Dynamic("Click here to execute the action you've defined with the quick builder and go back to list mode"); plstt[36] = tt_Dynamic("Click here to select all planets for quick builder operations"); plstt[37] = tt_Dynamic("Click here to unselect all planets for quick builder operations"); plstt[38] = tt_Dynamic("Click here to invert the planets selection for quick builder operations"); } function drawMainDisplay() { var str, i; var cs = ';text-align:center;vertical-align:bottom'; var csb = ';border-color:white;border-style:solid;border-width: 0px 0px 1px 0px'; str = '<table cellspacing="0" cellpadding="0" style="margin: 0px 0px 10px 0px">' + '<tr><td class="div2"><h1>Controlled planets</h1></td><td class="flink">' + (vacation ? '' : ('<a ' + plstt[1] + ' href="#" onClick="enableQuickBuilder(); return false;">Quick builder mode</a> - ')) + '<a ' + plstt[1] + ' href="manual?p=planets#pop_cp">Help</a></td>' + '</tr><tr><td colspan="2">' + '<table cellspacing="0" cellpadding="0" style="width:100%;border-collapse:true;border-style:solid' + ';border-color:white;border-width:0px 0px 2px 0px">' + '<tr>' + '<th style="width:32px;height:32px' + csb + '" rowspan="2"> </th>' + '<th colspan="2" rowspan="2" style="text-align:left;vertical-align:bottom' + csb +'">Planet</th>' + '<th rowspan="2" style="width:10%;max-width:80px' + cs + csb + '">Coord.</th>' + '<th rowspan="2" style="width:8%;max-width:60px' + cs + csb + '">Pop.</th>' + '<th style="width:6%;max-width:50px' + cs + '">Happ.</th>' + '<th style="width:6%;max-width:50px' + cs + '">Ind.</th>' + '<th rowspan="2" style="width:8%;max-width:70px' + cs + csb + '">Turrets</th>' + '<th rowspan="2" style="width:8%;max-width:80px' + cs + csb + '">Profit</th>' + '</tr><tr>' + '<th style="width:6%;max-width:50px' + cs + csb + '">Corr.</th>' + '<th style="width:6%;max-width:50px' + cs + csb + '">Mil.</th>' + '</tr>' if (planets.length > 0) { for (i = 0; i < planets.length; i ++) { str += buildPlanetLine(i); } } else { str += '<tr><td> </td></tr>'; str += '<tr><th>You do not control any planet.</th></tr>'; str += '<tr><td><a ' + plstt[2] + ' href="nplanet">Get a new planet</a></td></tr>'; str += '<tr><td> </td></tr>'; } str += '</table></td></tr></table>'; return str; } function drawBQSummary(bq) { var i, str; var types = new Array('Turret', 'GA Ship', 'Fighter', 'Cruiser', 'Battle Cruiser'); var csb = ';padding: 4px 0px 0px 0px;border-style:solid;border-color:white;border-width: 1px 0px 0px 0px'; if (bq.length == 0) { return '<td> </td>'; } return '<td class="bq">Build queue loaded for <b>' + bq[bq.length - 1].cttb + '</b>h</td>'; } function buildBuilderLine(ipl) { var str, j; var types = new Array('Turret', 'GA Ship', 'Fighter', 'Cruiser', 'Battle Cruiser'); str = '<tr><td><table cellspacing="0" cellpadding="0">'; str += '<td class="pimg" rowspan="2"><input ' + plstt[10] + ' type="checkbox" name="qb_pl' + planets[ipl].id + '" value="1"'; if (planets[ipl].selected) { str += ' checked="checked"'; } str += ' id="qb_pl' + planets[ipl].id + '" onClick="return selPlanet('+ipl+');" />'; str += '</td><td class="pname"><label for="qb_pl' + planets[ipl].id + '"><b>' + planets[ipl].name + '</b></label>'; if (planets[ipl].bq.length > 0) { var as = ' href="#" style="color: white;text-decoration:underline;font-weight:normal" '; str += ' (select items: <a' + as + 'onclick="selAllAt(' + planets[ipl].id + ');return false">' + 'all</a> - <a' + as + 'onclick="selNoneAt(' + planets[ipl].id + ');return false">' + 'none</a> - <a' + as + 'onclick="invertSelAt(' + planets[ipl].id + ');return false">' + 'invert</a>)'; } str += '</td><td rowspan="2">' + formatNumber(planets[ipl].pop) + '</td><td>' + drawHappiness(planets[ipl].hap) + '</td><td>' + formatNumber(planets[ipl].ind) + '</td><td rowspan="2">' + formatNumber(planets[ipl].tur) + '</td></tr><tr><td class="pname">'; if (planets[ipl].bq.length == 0) { str += 'Build Queue is empty'; } else { for (j=0;j<planets[ipl].bq.length;j++) { var name = 'qb_pl' + planets[ipl].id + '_i' + j; str += '<input ' + plstt[12] + ' type="checkbox" name="' + name + '" id="' + name + '" value="1" onClick="return selItem(' + ipl + ',' + j + ');"'; if (planets[ipl].bq[j].selected) { str += ' checked="checked"'; } str += '/><label for="'+name+'"><b>' + formatNumber(planets[ipl].bq[j].qt) + '</b> ' + types[planets[ipl].bq[j].type]; if (planets[ipl].bq[j].qt > 1) { str += 's'; } var v = (useCTTB ? planets[ipl].bq[j].cttb : planets[ipl].bq[j].ttb); str += ' (<b>' + v + '</b>h)</label> '; } } str += '</td><td>' + drawCorruption(planets[ipl].corruption) + '</td><td>' + formatNumber(planets[ipl].mil) + '</td></tr></table></td></tr>'; return str; } function drawQuickBuilder() { var str; // Header str = '<form action="?"><table cellspacing="0" cellpadding="0">'; str += '<tr><td class="div2"><h1>Quick builder</h1</td><td class="flink">'; str += '<a ' + plstt[0] + ' href="#" onClick="switchTTB(); return false;">Display ' + (useCTTB ? 'individual' : 'cumulative') + ' time</a> - '; str += '<a ' + plstt[1] + ' href="#" onClick="enableQuickBuilder(); return false;">List mode</a> - '; str += '<a href="manual?p=planets#pop_qb">Help</a></td>'; str += '</tr>'; // Planet operations header str += '<tr><td><table id="qbuild" cellspacing="0" cellpadding="0">'; str += '<tr><td colspan="3"><h3>Planet operations</h3></td></tr>'; // Factories str += '<tr><td class="dv"></td><td class="dv"><input ' + plstt[20] + ' type="radio" name="qb_ac" value="fac" id="qb_ac1" '; if (action == 1) str += 'checked="checked" '; str += 'onClick="selAction(1); return true;" /></td>'; str += '<td class="pc90" onClick="selAction(1)"><select ' + plstt[21] + ' name="qb_fdestr" id="qb_fdestr"><option value="0">Build</option>'; str += '<option value="1">Destroy</option></select><input ' + plstt[22] + ' type="text" name="qb_fcount" value="" size="6" maxlength="8" id="qb_fcount" />'; str += '<select ' + plstt[23] + ' name="qb_ftype" id="qb_ftype"><option value="0">industrial</option><option value="1">military</option>'; str += '</select> factories</td></tr>'; // Add to queue(s) str += '<tr><td></td><td class="dv"><input ' + plstt[24] + ' type="radio" name="qb_ac" id="qb_ac2" '; if (action == 2) str += 'checked="checked" '; str += 'value="adq" onClick="selAction(2); return true;" /></td>'; str += '<td onClick="selAction(2)">Add <input ' + plstt[25] + ' type="text" name="qb_adc" id="qb_adc" value="" size="5" maxlength="8" />'; str += '<select ' + plstt[26] + ' name="qb_adt" id="qb_adt">'+bqItems()+'</select> to the queues</td></tr>'; // Flush queue(s) str += '<tr><td></td><td class="dv"><input ' + plstt[27] + ' type="radio" name="qb_ac" value="fls" id="qb_ac3" '; if (action == 3) str += 'checked="checked" '; str += 'onClick="selAction(3); return true;" /></td>'; str += '<td onClick="selAction(3)">Flush build queues</td></tr>'; str += '</table></td>'; // Queue operations header str += '<td><table id="qbuild" cellspacing="0" cellpadding="0">'; str += '<tr><td colspan="3"><h3>Queue operations</h3></td></tr>'; // Delete items str += '<tr><td class="dv"></td><td class="dv"><input ' + plstt[28] + ' type="radio" name="qb_ac" value="dsi" id="qb_ac4" '; if (action == 4) str += 'checked="checked" '; str += 'onClick="selAction(4); return true;" /></td>'; str += '<td onClick="selAction(4)">Delete selected items</td></tr>'; // Move items str += '<tr><td class="dv"></td><td class="dv"><input ' + plstt[29] + ' type="radio" name="qb_ac" value="dsi" id="qb_ac5" '; if (action == 5) str += 'checked="checked" '; str += 'onClick="selAction(5); return true;" /></td>'; str += '<td onClick="selAction(5)">Move selected items <select ' + plstt[30] + ' name="qb_mid" id="qb_mid">'; str += '<option value="0">down</option><option value="1">up</option></select> in the queue</td></tr>'; // Replace items str += '<tr><td></td><td class="dv"><input ' + plstt[31] + ' type="radio" name="qb_ac" value="adq" id="qb_ac6" '; if (action == 6) str += 'checked="checked" '; str += 'onClick="selAction(6); return true;" /></td>'; str += '<td onClick="selAction(6)">Replace items with <input ' + plstt[32] + ' type="text" name="qb_ric" id="qb_ric" value="" size="5" maxlength="8" />'; str += '<select ' + plstt[33] + ' name="qb_rit" id="qb_rit">'+bqItems()+'</select></td></tr>'; str += '</table></td></tr>'; // Buttons str += '<tr><td colspan="2" class="fbutton"><input ' + plstt[34] + ' type="button" id="qbex1" value="Execute action" onClick="qbExecute(false); return false;" />'; str += '<input ' + plstt[35] + ' type="button" value="Execute and hide" id="qbex2" onClick="qbExecute(true); return false;" />'; str += '</td></tr>'; // Planet list header str += '<tr><td colspan="2"><hr/></td></tr>'; str += '<tr>'; str += '<td><h1>Controlled planets</h1></td>'; str += '<td class="flink">'; str += 'Planets: <a ' + plstt[36] + ' href="#" onclick="selAllPlanets(); return false;">select all</a> -'; str += '<a ' + plstt[37] + ' href="#" onclick="selNoPlanets(); return false;">unselect all</a> -'; str += '<a ' + plstt[38] + ' href="#" onclick="invertPlanets(); return false">invert</a>'; str += '</td></tr>'; str += '<tr><td colspan="2" id="qb_planets">'; // End str += '</td></tr></table></form>'; return str; } function drawQBList() { var str, i; str = '<table class="list" id="planets" cellspacing="0" cellpadding="0"><tr><td><table cellspacing="0" cellpadding="0"><tr>'; str += '<th class="pimg" rowspan="2"></th><th class="pname">Planet</th><th rowspan="2">Population</th>' + '<th>Happiness</th><th>Industrial</th><th rowspan="2">Turrets</th></tr>' + '<tr><th class="pname">Build queue</th><th>Corruption</th><th>Military</th></tr>' + '</table></td></tr>'; // Planet list if (planets.length > 0) { for (i=0;i<planets.length;i++) { str += buildBuilderLine(i); } } else { str += '<tr><td> </td></tr>'; str += '<tr><th>You do not control any planet.</th></tr>'; str += '<tr><td><a ' + plstt[2] + ' href="nplanet">Get a new planet</a></td></tr>'; str += '<tr><td> </td></tr>'; } str += '</table>'; return str; } function bqItems() { var i,str; var types = new Array('turret', 'GA ship', 'fighter', 'cruiser', 'battle cruiser'); str = ''; for (i=0;i<milLevel;i++) str += '<option value="'+i+'">' + types[i] + '</option>'; return str; } function qbError(en) { var str; switch (en) { case 0: str = 'You must select an action.'; break; case 1: str = 'You must select at least one planet.'; break; case 2: str = 'Please specify the quantity of items to add to the build queues.'; break; case 3: str = 'Please specify the quantity of factories to build or destroy.'; break; case 14: case 4: str = 'You don\'t have enough money for this operation.'; break; case 5: str = 'The number of factories to destroy exceed one of the planet\'s\nquantity of factories.'; break; case 6: str = 'Your planets must keep a minimum of 1 military factory.'; break; case 7: str = 'You can\'t destroy more than 10% of a planet\'s factories in 24h.'; break; case 8: str = 'At least one of the selected planets is under siege.'; break; case 9: str = 'You must select at least one item in the queue.'; break; case 10: str = 'Please specify the quantity of replacement items.'; break; case 11: str = 'You can\'t move up the first item of a build queue.'; break; case 12: str = 'You can\'t move down the last item of a build queue.'; break; case 13: str = 'You can\'t use the quick builder while in vacation mode.'; break; case 15: str = 'You can\'t build factories while the planet is being transferred\nto another player.'; break; case 16: str = 'Your population is too low, you can\'t build that many factories.'; break; case 34: str = 'You can\'t destroy factories so soon after building them.\nYou have to wait for two hours after you last built factories.'; break; default: str = 'An unkown error has occured: ' + en; break; } alert('Quick Builder: error\n\n' + str); }