Overview Ikariam Icon

Report for Ikariam (table, etc.)

  1. // ==UserScript==
  2. // @name Overview Ikariam Icon
  3. // @namespace Overview Ikariam Icon
  4. // @description Report for Ikariam (table, etc.)
  5. // @author frapao
  6. // @include http://s*.ikariam.gameforge.*/*
  7. // @exclude http://support.*.ikariam.com/index.php?*
  8. // @icon http://s3.amazonaws.com/uso_ss/icon/41051/large.jpg
  9. // @grant GM_getValue
  10. // @grant GM_setValue
  11. // @grant GM_deleteValue
  12. // @grant GM_listValues
  13. // @grant GM_log
  14. // @grant GM_xmlhttpRequest
  15. // @grant unsafeWindow
  16.  
  17. // @version 4.42a
  18. // ==/UserScript==
  19.  
  20.  
  21. ////GLOBAL VARIABLES////
  22. ////===============>>>>> SCRIPT VERSION !!!!!!!!!!!!!!
  23. var version='Ikariam Overview Icon - 4.42a</td>'
  24.  
  25. var nameArmy = new Array ();
  26. var countArmy = new Array ();
  27. var s = new XMLSerializer();
  28. var myday=''
  29. var myora=''
  30. var mymin=''
  31. var mysec=''
  32. var balloon=getVar("varTip")
  33. var focusTable=getVar("varFocus")
  34. var giu=getVar("yFine")
  35. var currentId=''
  36. var currentI=''
  37.  
  38. var view='';
  39. xview=''
  40. viewOn=0
  41.  
  42. var id ='';
  43.  
  44. unsafeWindow.ajax.Responder.wtChangeHTML = unsafeWindow.ajax.Responder.changeHTML;
  45.  
  46. unsafeWindow.ajax.Responder.changeHTML =
  47. function(params, replaceView) {
  48. var id = params[0];
  49. unsafeWindow.ajax.Responder.wtChangeHTML(params, replaceView);
  50. setTimeout( function() { testing(id);}, 0);
  51. }
  52.  
  53. setInterval (function () {
  54. elfine=document.getElementsByClassName("footerleft")
  55. piede=elfine[0]
  56. yend=trovaY(piede)
  57. setVar ("yFine",yend)
  58. },2000)
  59.  
  60. //Capacity of a ship
  61. var cap = 500;
  62.  
  63. // list all buildings
  64.  
  65. var building = new Array(
  66. "townHall","palace","palaceColony","tavern","museum","academy","workshop","temple",
  67. "embassy","warehouse","dump","port","branchOffice","wall","safehouse","barracks",
  68. "shipyard","forester","carpentering","winegrower","vineyard","stonemason","architect","glassblowing",
  69. "optician","alchemist","fireworker","pirateFortress"
  70. );
  71. var LocalBuilding = new Array();
  72. var IconBuilding = new Array();
  73. var xArmy=new Array(
  74. "skin/characters/military/x40_y40/y40_phalanx_faceright.png",
  75. "skin/characters/military/x40_y40/y40_steamgiant_faceright.png",
  76. "skin/characters/military/x40_y40/y40_spearman_faceright.png",
  77. "skin/characters/military/x40_y40/y40_swordsman_faceright.png",
  78. "skin/characters/military/x40_y40/y40_slinger_faceright.png",
  79. "skin/characters/military/x40_y40/y40_archer_faceright.png",
  80. "skin/characters/military/x40_y40/y40_marksman_faceright.png",
  81. "skin/characters/military/x40_y40/y40_ram_faceright.png",
  82. "skin/characters/military/x40_y40/y40_catapult_faceright.png",
  83. "skin/characters/military/x40_y40/y40_mortar_faceright.png",
  84. "skin/characters/military/x40_y40/y40_gyrocopter_faceright.png",
  85. "skin/characters/military/x40_y40/y40_bombardier_faceright.png",
  86. "skin/characters/military/x40_y40/y40_cook_faceright.png",
  87. "skin/characters/military/x40_y40/y40_medic_faceright.png",
  88. "skin/characters/military/x40_y40/y40_spartan_faceright.png"
  89. )
  90.  
  91. var xFleet=new Array(
  92. "ship_flamethrower",
  93. "ship_steamboat",
  94. "ship_ram",
  95. "ship_catapult",
  96. "ship_ballista",
  97. "ship_mortar",
  98. "ship_rocketship",
  99. "ship_submarine",
  100. "ship_paddlespeedship",
  101. "ship_ballooncarrier",
  102. "ship_tender"
  103. )
  104. var xUnit=new Array(
  105. "phalanx",
  106. "steamgiant",
  107. "spearman",
  108. "swordsman",
  109. "slinger",
  110. "archer",
  111. "marksman",
  112. "ram",
  113. "catapult",
  114. "mortar",
  115. "gyrocopter",
  116. "bombardier",
  117. "cook",
  118. "medic",
  119. "spartan",
  120. "ship_flamethrower",
  121. "ship_steamboat",
  122. "ship_ram",
  123. "ship_catapult",
  124. "ship_ballista",
  125. "ship_mortar",
  126. "ship_rocketship",
  127. "ship_submarine",
  128. "ship_paddlespeedship",
  129. "ship_ballooncarrier",
  130. "ship_tender"
  131. )
  132. var townHallSpaces = [0, 60, 96, 142, 200, 262, 332, 410, 492, 580, 672, 768, 870, 976, 1086, 1200, 1320, 1440, 1566, 1696, 1828, 1964, 2102, 2246, 2390, 2540,
  133. 2690, 2845, 3003, 3163, 3326,3492, 3660, 3830, 4004, 4180, 4360, 4540, 4724, 4910, 5098, 5290, 5482, 5678, 5876, 6076, 6278, 6484, 6710];
  134. var MaxInhabitants =[townHallSpaces];
  135.  
  136. //Maximum ships
  137. var Max_ship=10;
  138.  
  139. var cityNombre = new Array();
  140. var cityRec = new Array();
  141. var islaId = new Array();
  142. var busy=0;
  143. var actionRequest = 0;
  144. var currentCity;
  145. var missCity=new Array () // citys not visited
  146. var JSONcitys = new Array; // all citys (mine)
  147. var othersCitys= new Array () // others city
  148. var cityId = new Array(); //cityId's
  149. var cityIdX = new Array(); //cityId's others army
  150. var cityIdY = new Array(); //cityId's others transport
  151. var cityName = new Array();//citynames (mine)
  152. var cityNameX = new Array();//citynames others army
  153. var cityNameY = new Array();//citynames others transport
  154. var ocCityName=new Array() //citynames occupied
  155. var ocCityId=new Array()
  156. var ocCityCoords=new Array()
  157. var cityRecId = new Array();//cityresourcenumber
  158. var cityRecStr = new Array();//cityresourcestring
  159. var cityCoords = new Array();//citycoords
  160. var islandId = new Array();//islandID of city
  161. var cityaction = new Array();//actionpoints of city
  162. var citypopulation = new Array();//free workforce
  163. var citycitizens = new Array();//total population
  164. var citywood = new Array();//wood in city
  165. var citywine = new Array();//wine in city
  166. var citymarble = new Array();//marble in city
  167. var cityglass = new Array();//glass in city
  168. var citysulfur = new Array();//sulfur in city
  169. var cityReduxUse = new Array(); // wineuse after reduction
  170. var ind_cityId = 0;
  171. var citybuildings;
  172. var servertime;
  173. var CompTime;
  174. var completed;
  175. var ErrorString= '';
  176. var JSONcitydata ='';
  177. var ResSeafaring='';
  178. var ResEco='';
  179. var ResScience='';
  180. var ResArmy='';
  181. var ResSeafaringlevel=0;
  182. var ResEcolevel=0;
  183. var ResSciencelevel=0;
  184. var ResArmylevel=0;
  185.  
  186. StyleBuilding = 'style="color:blue;font-weight:bold;text-align:center;background:'
  187. StyleFinished = 'style="color:green;font-weight:bold;text-align:center;background:'
  188.  
  189.  
  190.  
  191. var baseURL = window.location.href.substring(0,window.location.href.indexOf(".php")+4);
  192.  
  193. //var server=location.href;
  194. var server=window.location.href.substring(7,window.location.href.indexOf('.'))
  195. view = window.location.href.substring(window.location.href.indexOf(".php")+10,window.location.href.indexOf("&"));
  196. ctry=window.location.href.substring(window.location.href.indexOf('.')+1,window.location.href.indexOf('.ik'))
  197. if (server.indexOf("-")>0) {
  198. ctry=server.substr(server.indexOf("-")+1)
  199. }
  200. viewchk=window.location.href.indexOf("cityRight")
  201. viewchk1=window.location.href.indexOf("view=city&cityRight=")
  202.  
  203. var numBuilding=28
  204. var numPlace=18
  205. /*
  206. if (ctry=='it') {
  207. numBuilding=27
  208. numPlace=17
  209. }
  210. */
  211.  
  212. var resourcetrad = new Array();
  213. resourcetrad[0] = 'wood';
  214. resourcetrad[1] = 'wine';
  215. resourcetrad[2] = 'marble';
  216. resourcetrad[3] = 'crystal';
  217. resourcetrad[4] = 'sulfur';
  218.  
  219. //////////// bordi colonne e righe
  220. var mark0='<td style="background:gold" width=1></td><td style="background:black" width=1></td>'
  221. var mark= '<td style="background:maroon" width=2></td><td style="background:gold" width=1></td><td style="background:peru" width=0></td>'
  222. var cola='<td style="background:maroon"height=2></td>'
  223. var colb='<td style="background:gold"height=1></td>'
  224. var colc='<td style="background:peru"height=0></td>'
  225. col1=new Array ()
  226. col2=new Array ()
  227. col3=new Array ()
  228. colrep= new Array ()
  229. colrep[0]=56
  230. colrep[1]=43
  231. colrep[2]=41
  232. for (k=0;k<3;k++) {
  233. col1[k]=''
  234. col2[k]=''
  235. col3[k]=''
  236. for(i=0;i<colrep[k];i++) {
  237. col1[k]+=cola
  238. col2[k]+=colb
  239. col3[k]+=colc
  240. }
  241. }
  242. var mark1='<tr>'+col1[0]+'</tr>'+'<tr>'+col2[0]+'</tr>'+'<tr>'+col3[0]+'</tr>'
  243. var mark2='<tr>'+col1[1]+'</tr>'+'<tr>'+col2[1]+'</tr>'+'<tr>'+col3[1]+'</tr>'
  244. var mark3='<tr>'+col1[2]+'</tr>'+'<tr>'+col2[2]+'</tr>'+'<tr>'+col3[2]+'</tr>'
  245. ///////////////////// getcitysdata call
  246. getcitysdata();
  247. ////////////////////////////////////////
  248.  
  249.  
  250.  
  251. var ocupado = 0;
  252. var name;
  253. var citydata = new Array();
  254. for(i=0;i<12;i++){
  255. citydata[i] = new Array(numPlace)
  256. }
  257.  
  258. for ( i = 0 ; i<12 ; i++){
  259. for(j=0 ; j<numPlace ; j++){
  260. citydata[i][j]="0";
  261. }
  262. }
  263.  
  264. ///////////////////// getcitydata call ////////////
  265. getcitydata() // fill currentcitydata
  266. //////////////////////////////////////////////////////
  267.  
  268.  
  269. for(i=0;i<cityName.length;i++){
  270. var test = GM_getValue(document.location.host+"citybuildings"+cityName[i]);
  271. if(test) {
  272. JSONcitys[i]=JSON.parse(GM_getValue(document.location.host+"citybuildings"+cityName[i]));
  273. missCity [i]=' '
  274. }else{
  275. missCity [i]=cityName[i]
  276. //GM_log(i+' '+cityName[i] +'Error! citydata not found , visit city to get data');
  277. }
  278. }
  279.  
  280.  
  281. for (i=0;i<numBuilding;i++){
  282. LocalBuilding[i] ='.';
  283. }
  284.  
  285. elMiss=''
  286.  
  287.  
  288. for (i=0; i <cityName.length;i++) {
  289. if (!JSONcitys[i] || JSONcitys[i] && JSONcitys[i].name!=cityName[i]) {
  290. JSONcitys[i]=''
  291. GM_deleteValue(document.location.host+"citybuildings"+cityName[i])
  292. ErrorString= trad(ctry,'YOU HAVE NOT VISITED ALL CITIES YET')+'!!!'
  293. elMiss+='\n'+trad(ctry,'city')+' "'+missCity[i]+'" '+trad(ctry,'not visited yet')+'!'
  294. }else{
  295. for(j=0;j<numPlace;j++){ //for all position in city
  296. for(k=0;k<numBuilding;k++){ // for all possible buildings
  297. if(JSONcitys[i].position[j].building){
  298. if(building[k] == JSONcitys[i].position[j].building.replace(' constructionSite','')){ // if building exists...
  299.  
  300. LocalBuilding[k] = JSONcitys[i].position[j].name; // put the local-name in the array
  301. }else{
  302. }
  303. }
  304. }
  305. }
  306. }
  307. }
  308.  
  309. if (ErrorString>' ') {
  310. warn=ErrorString+elMiss
  311. alert(warn)
  312. }
  313.  
  314. //actionrequest = a0((document.getElementById("js_ChangeCityActionRequest").value));
  315. //var data=baseURL+'?view=researchAdvisor&oldView=city&cityId=155877&backgroundView=city&currentCityId=155877&actionRequest='+actionrequest+'&backgroundView=city&currentCityId=155877&actionRequest='+actionrequest+'&ajax=1';
  316.  
  317.  
  318.  
  319. function testdata(text){
  320. GetScienceData(text);
  321. }
  322. //ErrorString = ResSeafaring+" "+ResEco+" "+ResScience+" "+ResArmy;
  323.  
  324.  
  325.  
  326. var body = document;
  327. var text = document.body.innerHTML;
  328.  
  329.  
  330. var p,h,n1,n2,n3;
  331.  
  332. /// ZONA TEST
  333. // 1. aggiunta codice in coda alla sezione head
  334. // 2. dichiarazione di una classe di stili "firma" (vedi http://www.web-link.it/css/4classi.htm)
  335. // 3. il richiamo della classe firma può essere fatta ad es. come <td class="firma">.....</td> o per altri tag (tr, p, ecc.)
  336. p=document.head
  337. stile=''
  338. stileh='<style type="text/css">'
  339. stilef='<\style>'
  340.  
  341.  
  342.  
  343. stile1='a.tt1{position:relative;z-index:24;color:#000;'+ //->* Colore del testo che ha il tooltip
  344. 'font-weight:bold;text-decoration:xnone;}'
  345. stile2='a.tt1 span{ display: none; }'
  346. stile3='a.tt1:hover{ z-index:25; cursor:xhelp;}a.tt1:hover span.tooltip{display:block;position:absolute;top:0px; left:0;padding: 15px 0 0 0;width:200px;'+
  347. 'color: darkred;'+ //->* Colore del testo della descrizione
  348. 'text-align: left;filter: alpha(opacity:90);KHTMLOpacity: 0.90;MozOpacity: 0.90;opacity: 0.90;}'
  349.  
  350. stile4='a.tt1:hover span.top{display: block;padding: 30px 8px 0;'+
  351. 'background:url(https:lh6.googleusercontent.com/_nT13UtBmmiU/TY38DxCB58I/AAAAAAAASlM/hysOphmwRQA/bubble.gif) no-repeat top;}'
  352.  
  353. //// parte di testo
  354. stile5='a.tt1:hover span.middle{display: block;padding: 0 8px;font-weight:bold;font-style:italic;font-family:verdana,Arial, sans-serif;;'+
  355. 'background: url(https:lh3.googleusercontent.com/_nT13UtBmmiU/TY38PxK6qKI/AAAAAAAASlQ/SalZGy8YvoY/bubble_filler.gif) repeat bottom;text-decoration:none;}'
  356.  
  357. stile6='a.tt1:hover span.bottom{display: block;padding:3px 8px 10px;'+
  358. 'background: url(https:lh6.googleusercontent.com/_nT13UtBmmiU/TY38DxCB58I/AAAAAAAASlM/hysOphmwRQA/bubble.gif) no-repeat bottom;}'
  359.  
  360. stile=stileh+stile1+stile2+stile3+stile4+stile5+stile6+stilef
  361. p.innerHTML=p.innerHTML+stile
  362.  
  363.  
  364. // Tooltip 1 con CSS
  365. //-----------------------------------------------
  366. //La sintassi per inserire il tooltip è la seguente
  367.  
  368. //<a href="#" class="ttX">testo che ha il tooltip
  369. //<span class="tooltip">
  370. //<span class="top"></span>
  371. //<span class="middle">Descrizione che sarà visualizzata dentro la finestra del tooltip</span>
  372. //<span class="bottom"></span>
  373. //</span></a>
  374.  
  375. //stili con le classi (inserire i tag style nella sez. head
  376. //stile='<style type="text/css">'+
  377. // '.firma {font-family: Verdana, Arial, sans-serif;color: #ff0000;font-size: 9pt;text-align: center;font-style: italic;background:red;}'+
  378. // '</style>'
  379.  
  380. //p.innerHTML='<div id=questa una storia frapao></div>'
  381. //h=document.createElement('div')
  382. //h.id = "Div di frapao"
  383. //p.appendChild(h)
  384.  
  385. ///FINE ZONA TEST
  386.  
  387.  
  388. if (!giu) {giu=780}
  389. giu+=53
  390.  
  391.  
  392. p = document.body;
  393. h = document.createElement('div');
  394. h.id = "ResourceDealer";
  395. h.setAttribute('style','z-index:80;position:relative;top:'+giu+'px;margin:0px auto 0px;width:1074px;');
  396. p.appendChild(h);
  397.  
  398.  
  399. p = document.getElementById("ResourceDealer");
  400. h = document.createElement('div');
  401. h.id = "menu_dealer";
  402. h.setAttribute('style','padding:7px 0px 7px 0px; position:relative;width:100%;auto 0px;clear:both;float:left;border-color:#C9A584 #5D4C2F #5D4C2F #C9A584;border-style:double;border-width:3px;'+
  403. 'background-image: url(skin/input/button.png) ;text-decoration:none;color:#612d04;font:bold 12px Arial, Helvetica, sans-serif;text-align:left;');
  404. h.innerHTML = '<table align="left" width="100%"><tr>'+
  405. '<td id="cel_menu_0" align="center" width="5%">'+
  406. '<td id="cel_menu_1" align="center" width="70%">'+version+
  407. '<td id="cel_menu_2" align="center" width="5%"></td>'+
  408. '<td id="cel_menu_3" align="center" width="5%"></td>'+
  409. '<td id="cel_menu_4" align="center" width="5%"></td>'+
  410. '<td id="cel_menu_5" align="center" width="5%"></td>'+
  411. '<td align="right"></td>'+
  412. //'<td "Ships" id="ships" align="center" width="10%"></td>'+
  413. '<td id="cel_menu_8" align="right" width="5%"></td>'+
  414. '</tr></table>';
  415. p.appendChild(h);
  416.  
  417.  
  418. p = document.getElementById("ResourceDealer");
  419. h = document.createElement('div');
  420. h.className = 'table1';
  421. h.id = "resourcedealer5";
  422. h.setAttribute('style','position:relative;clear:both;width:100%;float:left;border-color:#C9A584 #5D4C2F #5D4C2F #C9A584;border-style:double;border-width:3px;'+
  423. 'text-decoration:none;color:#612d04;font:bold 12px Arial, Helvetica, sans-serif;');
  424. p.appendChild(h);
  425.  
  426.  
  427. p = document.getElementById("ResourceDealer");
  428. h = document.createElement('div');
  429. h.className = 'table2';
  430. h.id = "resourcedealer5-2";
  431. h.setAttribute('style',';position:relative;clear:both;width:100%;float:left;border-color:#C9A584 #5D4C2F #5D4C2F #C9A584;border-style:double;border-width:3px;background-image: url(skin/input/button.png) ;'+
  432. 'text-decoration:none;color:#612d04;font:12px Arial, Helvetica, sans-serif;');
  433. p.appendChild(h);
  434.  
  435. p = document.getElementById("ResourceDealer");
  436. h = document.createElement('div');
  437. h.className = 'table3';
  438. h.id = "ArmyTable";
  439. h.setAttribute('style',';position:relative;clear:both;width:100%;float:left;border-color:#C9A584 #5D4C2F #5D4C2F #C9A584;border-style:double;border-width:3px;'+
  440. 'background-image: url(skin/input/button.png) ;text-decoration:none;color:#612d04;font:bold 12px Arial, Helvetica, sans-serif;');
  441. p.appendChild(h);
  442.  
  443.  
  444. p = document.getElementById("ResourceDealer");
  445. h = document.createElement('div');
  446. h.id = "ResourceDealerFooter";
  447. h.setAttribute('style','padding:7px 0px 7px 0px; position:relative;clear:both;float:left;border-color:#C9A584 #5D4C2F #5D4C2F #C9A584;border-style:double;border-width:3px;background-image: url(skin/input/button.png) ;'+
  448. 'text-decoration:none;width:100%;color:#612d04;font:bold 12px Arial, Helvetica, sans-serif;text-align:left;');
  449. h.innerHTML = '<table align="left" width="100%"><tr>'+
  450. '<td id="celtest" align="left" width="10%"></td>'+
  451. '<td id="cel_menu_9" align="center">'+
  452. '<td width="80%"> </td>'+
  453. '<td id="cel_menu_a" align="center"></tr></table>'
  454. p.appendChild(h);
  455.  
  456.  
  457. //ErrorString=''
  458. p = document.getElementById("ResourceDealerFooter");
  459. h = document.createElement('div');
  460. h.id = "ResourceAlert";
  461. h.setAttribute('style','padding:6px 0px 6px 0px; position:relative;clear:both;float:left;border-color:#C9A584 #5D4C2F #5D4C2F #C9A584;border-style:double;'+
  462. 'text-decoration:none;width:100%;color:red;font:bold 14px Arial, Helvetica, sans-serif;text-align:center;');
  463. h.innerHTML =ErrorString
  464. p.appendChild(h);
  465.  
  466.  
  467. p = document.body;
  468. h = document.createElement('div');
  469. h.id = "background";
  470. h.setAttribute('style','z-index:-1000;position:relative;overflow:visible;left:0px;top:-110px;height:1200px;width:1200;background-size:1920,1200;background-position:center;'+
  471. //h.setAttribute('style','z-index:-1;position:relative;overflow:visible;left:-8px;top:-110px;height:1200px;width:1920;background-size:1920,1200;background-position:center;'+
  472. 'background-image: url(http://gf2.geo.gfsrv.net/cdn7d/6f875d52eb0d7fad05feca40164375.jpg) ;');
  473. // 'background-image: url(http://gf2.geo.gfsrv.net/cdnaf/061a8c84d2d5c470a7d049f9d90cb8.jpg) ;');
  474. h.innerHTML = ''
  475. //h.innerHTML = 'testing'
  476. p.appendChild(h);
  477.  
  478. p = document.body;
  479. h = document.createElement('div');
  480. h.id = "background2";
  481. h.setAttribute('style','z-index:-2000;overflow:visible;position:relative;top:-110px;height:600px;;width:1920;background-size:1920,700;background-position:center;'+
  482. //h.setAttribute('style','z-index:-2;overflow:visible;position:relative;top:-110px;height:600px;;width:1920;background-size:1920,700;background-position:center;'+
  483. 'background-image: url(http://gf2.geo.gfsrv.net/cdn7d/6f875d52eb0d7fad05feca40164375.jpg) ;');
  484. h.innerHTML = ''
  485. p.appendChild(h);
  486.  
  487. //Aggiunto
  488. p = document.body;
  489. h = document.createElement('div');
  490. h.id = "background3";
  491. h.setAttribute('style','z-index:-6000;overflow:visible;position:relative;top:-110px;height:150px;;width:1920;background-size:1920,200;background-position:center;'+
  492. 'background-image: url(http://gf2.geo.gfsrv.net/cdn7d/6f875d52eb0d7fad05feca40164375.jpg) ;');
  493. h.innerHTML = ''
  494. p.appendChild(h)
  495.  
  496.  
  497. //Navi mercantili
  498. freenavy=document.getElementById("js_GlobalMenu_freeTransporters").innerHTML
  499. totnavy=document.getElementById("js_GlobalMenu_maxTransporters").innerHTML
  500. var dispnavy=freenavy+'/'+totnavy
  501. //Oro totale
  502. tgold=document.getElementById("js_GlobalMenu_gold").innerHTML
  503.  
  504. xSp1=String.fromCharCode('8192')
  505. xSp=xSp1
  506. for (i=0;i<5;i++) {
  507. xSp+=xSp
  508. }
  509. ///////////////////// cargar_dealers() call ////////////
  510. cargar_dealers();
  511. /////////////////////////////////////////////////////////
  512.  
  513. if (focusTable==1 && (view=='city' || view=='finances' || (view=='townHall' || view=='cityMilitary') && viewchk>0
  514. || view=='merchantNavy' || view=='militaryAdvisor')) {
  515. window.scrollBy(0,giu)
  516. }
  517.  
  518. function cargar_dealers(){
  519.  
  520. var d=new Date();
  521. CompTime = d.getTime();
  522. CompTime= CompTime/1000;
  523. cless='<img height="14" src="skin/resources/icon_time.png"> '
  524. scientist='<img height="20" src="/skin/resources/icon_scientist.png"> '
  525. research='<img height="17" src="/skin/resources/icon_research.png"> '
  526. magnify='<img height="17" src="/skin/img/magnifySmall.png">'
  527. rfmagn='<a title="'+trad(ctry,'Overview towns/finances')+'" href="?view=tradeAdvisor&oldView=city&cityId='+currentId+'"</a>'
  528.  
  529. //---------------------------------------------------------
  530. //-------------------- TAVOLA LIVELLI EDIFICI
  531. //---------------------------------------------------------
  532.  
  533. focusCity()
  534.  
  535. if (focusTable==1 && (xview=='resource' || xview=='tradegood' || view=='city' && viewchk1>0 )) {
  536. window.scrollBy(0,-giu)
  537. xview=''
  538. }
  539.  
  540. for(k=0;k<numBuilding;k++){ // for all possible buildings
  541. IconBuilding[k]='';
  542. if (LocalBuilding[k]>'.') {
  543. IconBuilding[k]='<img height="30" hspace="0" src="skin/buildings/y100/' + building[k] + '.png" title="' + LocalBuilding[k]+ '">';
  544. }
  545. }
  546. ////
  547. //// Accademia (build 5) - Tip su icona
  548. /////
  549. if (LocalBuilding[5]=='.') {
  550. LocalBuilding[5]=building[5]
  551. }
  552. tipAcc=getVar ("research")
  553. if (!tipAcc) {
  554. tipAcc='click !!'
  555. }else {
  556. ix1=tipAcc.indexOf(';',0)
  557. ix2=tipAcc.indexOf(': ',ix1)
  558. ix3=tipAcc.indexOf(';',ix2)
  559. ix4=tipAcc.indexOf(': ',ix3)
  560. pointRes=tipAcc.substring(ix2+2,ix3)
  561. // per i siti tedeschi il "decimal point is comma"
  562. comma=unsafeWindow.LocalizationStrings.thousandSeperator
  563. pdec=unsafeWindow.LocalizationStrings.decimalPoint
  564. pointHour=tipAcc.substring(ix4+2).replace(comma,'').replace(pdec,'.')
  565. timeRes=StrToNum(getVar("timeRes"))/1000
  566. pointResDin=formatNum(parseInt(StrToNum(pointRes)+pointHour*(CompTime-timeRes)/3600))
  567. tipAcc=tipAcc.replace(pointRes,pointResDin)
  568. pointDay=formatNum(Math.round(pointHour*24))+'/'+trad(ctry,'day')+'; '
  569. pointWeek=formatNum(Math.round(pointHour*24*7))+'/'+trad(ctry,'week')+')'
  570. tipAcc1='\n--------->>>>\n('+pointDay+pointWeek
  571. if (balloon==1) {
  572. ix=tipAcc.indexOf('-',0)
  573. iy=tipAcc.indexOf(':',0)
  574. sub=tipAcc.substring(ix+1,iy)
  575. tipAcc=tipAcc.replace(sub,scientist)
  576. ix=tipAcc.indexOf(';',0)
  577. iy=tipAcc.indexOf(':',ix)
  578. sub=tipAcc.substring(ix+2,iy)
  579. tipAcc=tipAcc.replace(sub,research)
  580. }
  581. tipAcc+=tipAcc1
  582. }
  583.  
  584. xtitle='title="'+ LocalBuilding[5]+' -\n'+tipAcc+'" '
  585. fumetto=''
  586. if (balloon==1 && xtitle.length>20) {
  587. xtitle=''
  588. fumetto='<span class="tooltip"><span class="top"></span>'+
  589. '<span class="middle">'+LocalBuilding[5]+' -\n'+tipAcc+'</span><span class="bottom"></span>'
  590. }
  591. IconBuilding[5]='<a href="?view=researchAdvisor&backgroundView=city&cityId='+currentId+'" '+
  592. xtitle+'class="tt1"><img height="30" hspace="0" src="skin/buildings/y100/' + building[5] + '.png" >'+fumetto+'</a>';
  593. /////
  594. ////Accademia ex
  595. ////
  596. //"view=city&cityRight=" è parola chiave
  597. atitle='title="'+trad(ctry,'Show Town')+'" '
  598. aonclick='onclick="' + "window.open('http://"+document.location.host+"/index.php?view=city&cityRight=&cityId=" + cityId[currentI]+ "','_self')"+'"'
  599. ahref=' href="javascript:void(0)" </a>'
  600. link3='<a '+atitle+aonclick+ahref
  601.  
  602. tabla=''
  603. document.getElementById("resourcedealer5").innerHTML = '';
  604. tabla += '<table border="3" bordercolor="#c69262" width="100%">';
  605. LineStyle = 'style="font-weight:bold;background-image: url(skin/input/button.png) "';
  606. tabla += '<tr style="max-height:15px;font-weight:bold;background-image:url(skin/input/button.png)"><td width=2% align="center">'+
  607. link3+'<img height=18 width=21 src="/skin/img/informations/flag_red.png" class="vertical_middle" /></td>'+mark0+
  608. '<td align="center">'+rfmagn+magnify+'<b>'+trad(ctry,'Towns')+'</td>'+mark
  609.  
  610. var backgNCurrent = new Array ('#BFC287','#CDD4A6')
  611. var backgNNotCurrent = new Array ('#EFC287','#FDD4A6')
  612. for (i = 0 ; i < numBuilding ; i++){
  613. tabla += '<td align="center" style="max-height:15px;min-width:1px;max-width:30px;overflow:xhidden;font-weight:bold;background-image:url(skin/input/button.png)">'+
  614. IconBuilding[i]+'</td>'
  615. if (i==2 || i==4 || i==8 || i==12 || i==16 || i==18 || i==20 || i==22 || i==24 || i==26 || i==27) {tabla+=mark0}
  616. }
  617. tabla += '</tr>'
  618.  
  619. tabla+=mark1
  620.  
  621. if (currentI<cityName.length) {
  622. islandID=parseInt(JSONcitys[currentI].islandId)
  623. link5='<a onclick="ajaxHandlerCall(this.href);return false;" href="?view=tradegood&backgroundView=island&islandId='+ islandID+'" </a>'
  624. }
  625. xIcon=new Array ()
  626.  
  627. for (var i = 0; i < cityName.length; i++) {
  628.  
  629. if (cityName[i]==missCity[i]) {
  630. continue
  631. }
  632. xsize='font-size:9pt"'
  633. if (i==currentI) {
  634. xsize='font-size:10pt"'
  635. }
  636. var rem = i%2;
  637. backgN=backgNNotCurrent[rem]
  638. if ( rem >0 ) {
  639. LineStyle = 'style= "text-align:left;background: #FDD4A6;font-weight:normal"'
  640. }else {
  641. LineStyle = 'style="text-align:left;background: #EFC287;font-weight:normal"'
  642. }
  643. if(JSONcitydata){ //worldview
  644. if(JSONcitydata.name==cityName[i]){
  645. backgN=backgNCurrent[rem]
  646. if ( rem >0 ){ // split odd/even lines
  647. LineStyle = 'style="text-align:left;background: #CDD4A6;font-weight:bold;'+xsize
  648. LineStyleN = 'style="text-align:center;background: #CDD4A6;font-weight:bold;'+xsize
  649. }
  650. else {
  651. LineStyle = 'style="text-align:left;background: #BFC287;font-weight:bold;'+xsize
  652. LineStyleN = 'style="text-align:center;background: #BFC287;font-weight:bold;'+xsize
  653. }
  654. }
  655. }
  656. xlink=''
  657. height1=14
  658. if (i==currentI) {
  659. xlink=link5
  660. height1=18
  661. }
  662. islCoord=JSONcitys[i].islandName+' ['+JSONcitys[i].islandXCoord+':'+JSONcitys[i].islandYCoord+']'
  663. xIcon[i]='<tr height="20"><td align="center" style="background: #eee0c0">'+xlink+'<b>'+
  664. '<img title="'+islCoord+'" height="'+height1+'" src="skin/resources/icon_'+cityRecStr[i]+'.png"/></td>';
  665. tabla+=xIcon[i]+mark0
  666. //<a href="#" class="ttX">testo che ha il tooltip
  667. //<span class="tooltip">
  668. //<span class="top"></span>
  669. //<span class="middle">Descrizione che sarà visualizzata all'interno della finestra del tooltip</span>
  670. //<span class="bottom"></span>
  671. //</span></a>
  672. titleOcc=''
  673. if (JSONcitys[i].occupierName) {
  674. LineStyle= 'style="text-align:left;background: coral;font-weight:bold"'
  675. titleOcc='title="'+trad(ctry,'City occupied by')+' --> ' +JSONcitys[i].occupierName+'" '
  676. }
  677. tabla += '<td nowrap '+titleOcc+LineStyle+'><a '+'href="/index.php?view=city&cityId='+cityId[i]+
  678. '" class="tt1" '+LineStyle+'>' +String.fromCharCode('8192')+cityName[i]+'</a></td>'+mark
  679. portOcc=0
  680. for (build=0; build<numBuilding ; build++){
  681. if ( rem >0 ) {
  682. LineStyle = 'style="text-align:center;font-weight:normal;background: #FDD4A6"'
  683. }else {
  684. LineStyle = 'style="text-align:center;font-weight:normal;background: #EFC287"'
  685. }
  686. if(JSONcitydata){ //worldview
  687. if(JSONcitydata.name==cityName[i]){
  688. if ( rem >0 ){
  689. LineStyle = 'style="text-align:center;background: #CDD4A6;font-weight:bold;'+xsize
  690. LineStyleN = 'style="text-align:center;background: #CDD4A6;font-weight:bold;'+xsize
  691. }
  692. else {
  693. LineStyle = 'style="text-align:center;background: #BFC287;font-weight:bold;'+xsize
  694. LineStyleN = 'style="text-align:center;background: #BFC287;font-weight:bold;'+xsize
  695. }
  696. }
  697. }
  698. var pos=Findbuilding(i,building[build]); //find building position
  699.  
  700. if (pos == -1){//--------------------------------------
  701. tabla += '<td '+ LineStyle +">"+"-"+'</td>';
  702. }
  703. else{
  704. tabla += '<td '+LineStyle+'>';
  705. tabdif= '<td '+LineStyle+'>'
  706. var Level = parseInt(JSONcitys[i].position[pos].level);
  707. lvActive=0
  708. //******** edifici multipli **********************
  709. if (build==9) { //edifici multipli : magazzini
  710. var indMin=3;
  711. var indMax=numPlace;
  712. }
  713. if (build==11) { //edifici multipli : porti
  714. var indMin=1;
  715. var indMax=3;
  716. }
  717. if (build==9 || build==11) { //// magazzini o porti
  718. var Wlevel=0;
  719. var WCount = 0;
  720. for(Wpos=indMin;Wpos<indMax;Wpos++){
  721. LineStylex=LineStyle;
  722. var edificio=JSONcitys[i].position[Wpos].building;
  723. edificio=edificio.replace(' constructionSite','');
  724. if (build==9) {
  725. tip1=trad(ctry,'Safe goods')+'='+JSONcitys[i].xsafe
  726. }else {
  727. tip1=String.fromCharCode('425')+' '+JSONcitys[i].chtime
  728. if (JSONcitys[i].portControllerName) {
  729. tip1+=',\n'+trad(ctry,'Port occupied by')+' --> '+JSONcitys[i].portControllerName
  730. portOcc++
  731. LineStylex= 'style="text-align:center;font-weight:bold;background: orange;'+xsize
  732. }
  733. }
  734.  
  735. if(edificio==building[build]){
  736. WCount = WCount +1;
  737. if(WCount > 1){
  738. tabla += ' - ';
  739. }
  740. XXX=''
  741. Level = parseInt(JSONcitys[i].position[Wpos].level);
  742. if(JSONcitys[i].position[Wpos].completed){//--------------
  743. LineStylex = StyleBuilding+backgN+';'+xsize
  744. Level=Level+'=>'+(parseInt(Level)+1)
  745.  
  746. XXX=tempoNorm(parseInt(JSONcitys[i].position[Wpos].completed-CompTime))
  747. YYY=Fecha(parseInt(JSONcitys[i].position[Wpos].completed*1000))
  748. XXX=XXX+'\n('+YYY+')'
  749. if (balloon==1) {
  750. XXX=cless+XXX
  751. }
  752. if (portOcc>0) {
  753. XXX+='\n'+trad(ctry,'Port occupied by')+' --> '+JSONcitys[i].portControllerName
  754. }
  755.  
  756. if(JSONcitys[i].position[Wpos].completed < CompTime){
  757. LineStylex = StyleFinished+backgN+';'+xsize
  758. Level = parseInt(Level)+1
  759. }
  760. }
  761. if (build==11 && portOcc==1) {
  762. tabla=tabla.substring(0,tabla.length-tabdif.length)
  763. tabla+= '<td style="text-align:center;background: coral;font-weight:bold;'+xsize+'>'
  764. }
  765. /////************** tip
  766. tipGen=tip1
  767. if (XXX>'') {
  768. tipGen+=' \n --------------->>>\n'+XXX
  769. }
  770. tipLv=tipLevel(i,Wpos)
  771. if (tipLv>'') {
  772. tipGen+=' \n --------------->>>\n'+tipLv
  773. }
  774. if (balloon==1) {
  775. xtitle=''
  776. tipGen=tipGen.replace(/.....\|/g,' /'+xSp1)
  777. fumetto='<span class="tooltip"><span class="top"></span>'+
  778. '<span class="middle">'+tipGen+'</span><span class="bottom"></span>'
  779. }
  780. else {
  781. xtitle='title="'+tipGen+'" '
  782. fumetto=''
  783. }
  784. /////************ tip ex
  785. tabla += '<a '+LineStylex+xtitle+'href="/index.php?view='+edificio+
  786. '&cityId='+cityId[i]+'&position='+Wpos+'&oldView=city&backgroundView=city" class="tt1">'+Level+fumetto+'</a>';
  787. }
  788. }
  789. }else { ////************ build != 9 && build != 11 (edifici diversi da magazzini e porti)
  790. tip1=''
  791. if (build==3 && JSONcitys[i].tavern) { ////*** Taverna
  792. tip1=JSONcitys[i].tavern
  793. }
  794.  
  795. if (build==4 && JSONcitys[i].museum) { ///**** Museo
  796. tip1=JSONcitys[i].museum
  797. }
  798.  
  799. if (build==5 && JSONcitys[i].scientists) { ///*** Accademia
  800. tip1=JSONcitys[i].scientists
  801. if (balloon==1) {
  802. tip1=tip1.substring(tip1.indexOf(':'))
  803. tip1=scientist+tip1
  804. tip1=tip1.replace('Research',research)
  805. }
  806. }
  807. if (build==14 && JSONcitys[i].movespy) { ///**** Nascondiglio
  808. tip1=JSONcitys[i].movespy
  809. appo=tip1+''
  810. start=0
  811. for (len=0;len<JSONcitys[i].movespy.length;len++) {
  812. ixT=appo.indexOf(': ',start)
  813. iyT=appo.indexOf(';',ixT)
  814. subT=appo.substring(ixT+2,iyT)
  815. resTime=JSONcitys[i].arrspy[len]-CompTime
  816. subTnew=tempoNorm(resTime)
  817. appo=appo.replace(subT,subTnew)
  818. start=iyT
  819. if (parseInt(resTime)>0) {
  820. lvActive=1
  821. }else {
  822. lvActive=2
  823. }
  824. }
  825. if (balloon==1) {
  826. appo=appo.replace(/: /g,': '+cless)
  827. }
  828. tip1=appo.replace(/;/g,'').replace(/,/g,'')
  829. }
  830. if (build==6 && JSONcitys[i].Office) { ///*** Officina
  831. tip1=JSONcitys[i].Office
  832. /// dynamic time
  833. appo=tip1
  834. ixT=appo.indexOf('==>',1)
  835. iyT=appo.indexOf(' (',ixT)
  836. subT=appo.substring(ixT+3,iyT)
  837. resTime=JSONcitys[i].OfficeT-CompTime
  838. subTnew=tempoNorm(resTime)
  839. appo=appo.replace(subT,subTnew)
  840. ixP=appo.indexOf('(',0)
  841. iyP=appo.indexOf('%',ixP)
  842. perc=appo.substring(ixP,iyP)
  843. progTime=JSONcitys[i].OfficeX*3600-resTime
  844. percNew=parseInt(progTime/JSONcitys[i].OfficeX/3600*100)
  845. if (percNew>100) {
  846. percNew=100
  847. }
  848. percNew='('+percNew
  849. appo=appo.replace(perc,percNew)
  850. if (parseInt(resTime)>0) {
  851. lvActive=1
  852. }else {
  853. lvActive=2
  854. }
  855. if (balloon==1) {
  856. appo=appo.replace(/==>/g,'==>'+cless+' : ')
  857. }
  858. tip1=appo
  859. }
  860. if (build==27 && JSONcitys[i].Piracy) { ///*** Fortezza Pirata
  861. tip1=JSONcitys[i].Piracy
  862. /// dynamic time
  863. appo=tip1
  864. ixT=appo.indexOf('==>',1)
  865. iyT=appo.indexOf(';',ixT)
  866. subT=appo.substring(ixT+3,iyT)
  867. resTime=JSONcitys[i].PiracyT-CompTime
  868. subTnew=tempoNorm(resTime)
  869. appo=appo.replace(subT,subTnew)
  870. //progTime=JSONcitys[i].Piracy*3600-resTime
  871.  
  872. if (balloon==1) {
  873. appo=appo.replace(/==>/g,'==>'+cless+' : ')
  874. }
  875. tip1=appo
  876. }
  877. if (build==15 && JSONcitys[i].upArmy || build==16 && JSONcitys[i].SupArmy) { ///*** Caserma e Cantiere Navale
  878. upArmy=new Array()
  879. upArmyT=new Array()
  880. if (build==15 && JSONcitys[i].upArmy) {
  881. upArmy=JSONcitys[i].upArmy
  882. upArmyT=JSONcitys[i].upArmyT
  883. upArmyX=JSONcitys[i].upArmyX
  884. }else {
  885. upArmy=JSONcitys[i].SupArmy
  886. upArmyT=JSONcitys[i].SupArmyT
  887. upArmyX=JSONcitys[i].SupArmyX
  888. }
  889. tip1=upArmy
  890. /// dynamic time
  891. appo=tip1
  892. start=0
  893. for (len=0;len<upArmyT.length;len++) {
  894. ixT=appo.indexOf('==>',start)
  895. iyT=appo.indexOf(';',ixT)
  896. subT=appo.substring(ixT+3,iyT)
  897. resTime=upArmyT[len]-CompTime
  898. subTnew=tempoNorm(resTime)
  899. appo=appo.replace(subT,subTnew).replace('==>','==>\n')
  900. start=iyT
  901. if (parseInt(resTime)>0) {
  902. lvActive=1
  903. }else {
  904. lvActive=2
  905. }
  906. }
  907. if (balloon==1) {
  908. appo=appo.replace(/==>/g,'==>'+cless)
  909. }
  910. ixP=appo.indexOf('(',0)
  911. iyP=appo.indexOf('%',ixP)
  912. perc=appo.substring(ixP,iyP)
  913. resTime=upArmyT[0]-CompTime
  914. progTime=upArmyX-resTime
  915. percNew=parseInt(progTime/upArmyX*100)
  916. if (percNew>100) {
  917. percNew=100
  918. }
  919. percNew='('+percNew
  920. appo=appo.replace(perc,percNew)
  921. tip1=appo
  922. }
  923.  
  924. edificio=JSONcitys[i].position[pos].building;
  925. edificio=edificio.replace(' constructionSite','');
  926. if(JSONcitys[i].position[pos].completed){//--------------
  927. LineStyle = 'style="color:blue;font-weight:bold;text-align:center;'+xsize
  928.  
  929. Level=Level+'=>'+(parseInt(Level)+1)
  930. XXX=tempoNorm(parseInt(JSONcitys[i].position[pos].completed-CompTime))
  931. YYY=Fecha(parseInt(JSONcitys[i].position[pos].completed*1000))
  932. XXX=XXX+'\n('+YYY+')'
  933. if (balloon==1) {
  934. XXX=cless+XXX
  935. }
  936.  
  937. if(JSONcitys[i].position[pos].completed < CompTime){
  938. LineStyle = 'style="color:green;font-weight:bold;text-align:center;'+xsize
  939. Level = parseInt(Level)+1;
  940. }
  941. }
  942.  
  943. if (JSONcitys[i].position[pos].completed) {
  944. tipGen=XXX
  945. if (tip1>'') {
  946. tipGen=tip1+' \n ---------------->>>\n'+XXX
  947. }
  948. } else {
  949. tipGen=tip1
  950. }
  951.  
  952. tipLv=tipLevel(i,pos)
  953.  
  954. if (tipLv>'') {
  955. if (tipGen>'') {
  956. tipGen+=' \n ---------------->>>\n'+tipLv
  957. }else {
  958. tipGen=tipLv
  959. }
  960. }
  961. if (tipGen=='') {
  962. tipGen=Level
  963. }
  964.  
  965. xtitle='title="'+tipGen+'" '
  966. fumetto=''
  967. if (balloon==1 && tipGen.length>15) {
  968. xtitle=''
  969. tipGen=tipGen.replace(/.....\|/g,' /'+xSp1)
  970. //tipGen=tipGen.replace(/: /g,xSp1+':'+xSp1+xSp1)
  971. fumetto='<span class="tooltip"><span class="top"></span>'+
  972. '<span class="middle">'+tipGen+'</span><span class="bottom"></span>'
  973. }
  974.  
  975. if (lvActive>0) {
  976. if (lvActive==1) {
  977. LineStyle = 'style="background:white;color:red;font-size=11pt;font-weight:bold;text-align:center;"'
  978. }else {
  979. LineStyle = 'style="background:maroon;color:yellow;font-size=12pt;font-weight:bold;text-align:center;"'
  980. }
  981. }
  982. tabla += '<a '+LineStyle+xtitle+'href="/index.php?view='+edificio+
  983. '&cityId='+cityId[i]+'&position='+pos+'&oldView=city&backgroundView=city" class="tt1">'+Level+fumetto+'</a>';
  984. }
  985.  
  986. } // chiude if (pos == -1)...else -------------------------
  987.  
  988. if (build==2 || build==4 || build==8 || build==12 || build==16 || build==18 || build==20 || build==22
  989. || build==24 || build==26 || build==27) {tabla+=mark0}
  990. } // chiude il for (build=0; build<numBuilding ---------------------------------
  991. } // chiude il for (var i = 0; i < cityName.length -------------------------;
  992.  
  993. tabla += mark1+'</table>';
  994. document.getElementById("resourcedealer5").innerHTML = tabla;
  995. //-------------------- FINE TAVOLA LIVELLI EDIFICI
  996.  
  997.  
  998. //---------------------------------------------------------
  999. //-------------------- TAVOLA RISORSE
  1000. //---------------------------------------------------------
  1001.  
  1002.  
  1003. tabla ='';
  1004. document.getElementById("resourcedealer5-2").innerHTML = '';
  1005. var column=1 // if >0 activated
  1006. tablx='<td align="center" title="'+trad(ctry,'Merchant ships overview and control'+
  1007. '\n____________________________________'+
  1008. '\nyellow=loading goods/troops'+
  1009. '\nred=loading finished'+
  1010. '\nblue=goods/troops in transit'+
  1011. '\ngreen=goods/troops arrived') +'" style="align=right">'+
  1012. '<a href="/index.php?view=merchantNavy&backgroundView=city">'+
  1013. '<img height="22" src="/skin/characters/fleet/40x40/ship_transport_r_40x40.png">'+
  1014. '</a></td>'+mark
  1015.  
  1016. tabla += '<table style="align:center;font-style:bold" border="3" bordercolor="#c69252" width="100%">';
  1017.  
  1018. link1=''
  1019. link2=''
  1020. link3=''
  1021. link4=''
  1022. islandID=''
  1023. if (currentI<cityName.length) {
  1024. islandID=parseInt(JSONcitys[currentI].islandId)
  1025. }
  1026.  
  1027. link1='<a href="?view=townHall&position=0&oldView=city&backgroundView=city&cityId='+currentId+'"</a>'
  1028. link2='<a href="?view=finances&oldView=city&backgroundView=city"</a>'
  1029. link3='<a title="'+trad(ctry,'Show Island')+'" href="?view=island&islandId=' +islandID+ '"</a>'
  1030. ///**************** Assegna risorse
  1031.  
  1032. link4='<a onclick="ajaxHandlerCall(this.href);return false;" href="?view=resource&type=resource&backgroundView=island&islandId='+ islandID+'" </a>'
  1033. link51=link52=link53=link54=''
  1034. height1=21
  1035. height2=16
  1036. height11=height12=height13=height14=18
  1037. height21=height22=height23=height24=12
  1038. txt4=txt5=txt51=txt52=txt53=txt54=''
  1039. if (currentI<cityName.length && JSONcitys[currentI].resourceLevel) {
  1040. txt4='<h style="font-size:8pt">('+JSONcitys[currentI].resourceLevel+')</h>'
  1041. txt5='<h style="font-size:8pt">('+JSONcitys[currentI].tradegoodLevel+')</h>'
  1042. }
  1043. if (currentI<cityName.length) {
  1044. if (cityRecId[currentI]==1) {
  1045. link51=link5
  1046. height11=height1
  1047. height21=height2
  1048. txt51=txt5
  1049. }else {
  1050. if (cityRecId[currentI]==2) {
  1051. link52=link5
  1052. height12=height1
  1053. height22=height2
  1054. txt52=txt5
  1055. }else {
  1056. if (cityRecId[currentI]==3) {
  1057. link53=link5
  1058. height13=height1
  1059. height23=height2
  1060. txt53=txt5
  1061. }else {
  1062. link54=link5
  1063. height14=height1
  1064. height24=height2
  1065. txt54=txt5
  1066. }
  1067. }
  1068. }
  1069. }
  1070.  
  1071. //************** Assegna risorse ex
  1072. dwood0=unsafeWindow.LocalizationStrings.wood
  1073. dwood1='<'+trad(ctry,'visit the forest')+'>'
  1074. if (getVar('resource'+JSONcitys[currentI].islandId)) {
  1075. dwood1=getVar('resource'+JSONcitys[currentI].islandId)
  1076. dwood1=normal(dwood1)
  1077. }
  1078. dwood='*** '+dwood0+' ***'+'\n'+dwood1
  1079. dwine0=unsafeWindow.LocalizationStrings.wine
  1080. dwine1=''
  1081. if (cityRecId[currentI]==1) {
  1082. if (getVar('tradegood'+JSONcitys[currentI].islandId)) {
  1083. dwine1=getVar('tradegood'+JSONcitys[currentI].islandId)
  1084. dwine1=normal(dwine1)
  1085. }else {
  1086. dwine1='<'+trad(ctry,'visit the Vines')+'>'
  1087. }
  1088. }
  1089. dwine='*** '+dwine0+' ***'+'\n'+dwine1
  1090. dmarble0=unsafeWindow.LocalizationStrings.marble
  1091. dmarble1=''
  1092. if (cityRecId[currentI]==2) {
  1093. if (getVar('tradegood'+JSONcitys[currentI].islandId)) {
  1094. dmarble1=getVar('tradegood'+JSONcitys[currentI].islandId)
  1095. dmarble1=normal(dmarble1)
  1096. }else {
  1097. dmarble1='<'+trad(ctry,'visit the Quarry')+'>'
  1098. }
  1099. }
  1100. dmarble='*** '+dmarble0+' ***'+'\n'+dmarble1
  1101.  
  1102. dglass0=unsafeWindow.LocalizationStrings.crystal
  1103. dglass1=''
  1104. if (cityRecId[currentI]==3) {
  1105. if (getVar('tradegood'+JSONcitys[currentI].islandId)) {
  1106. dglass1=getVar('tradegood'+JSONcitys[currentI].islandId)
  1107. dglass1=normal(dglass1)
  1108. }else {
  1109. dglass1='<'+trad(ctry,'visit the Crystal mine')+'>'
  1110. }
  1111. }
  1112. dglass='*** '+dglass0+' ***'+'\n'+dglass1
  1113. dsulfur0=unsafeWindow.LocalizationStrings.sulfur
  1114. dsulfur1=''
  1115. if (cityRecId[currentI]==4) {
  1116. if (getVar('tradegood'+JSONcitys[currentI].islandId)) {
  1117. dsulfur1=getVar('tradegood'+JSONcitys[currentI].islandId)
  1118. dsulfur1=normal(dsulfur1)
  1119. }else {
  1120. dsulfur1='<'+trad(ctry,'visit the Sulphur pit')+'>'
  1121. }
  1122. }
  1123. dsulfur='*** '+dsulfur0+' ***'+'\n'+dsulfur1
  1124. dgold=unsafeWindow.LocalizationStrings.gold
  1125. dcitz=unsafeWindow.LocalizationStrings.citizens
  1126. tabla += '<tr font-weight="bold" height="30"><td width=2%>'+
  1127. link3+'<img width=24 height=23 src="skin/layout/icon-island.png" class="vertical_middle" /></td>'+mark0+
  1128. '<td align="center">'+rfmagn+magnify+'<b>'+trad(ctry,'Towns')+'</td>'+mark+tablx+
  1129. '<td title="'+trad(ctry,'citizens')+', '+trad(ctry,'current population')+'\n'+
  1130. trad(ctry,'maximum population : growth')+'" align="center" colspan="3" >'+
  1131. link1 + '<img title="'+trad(ctry,'citizens')+', '+trad(ctry,'current population')+
  1132. '" align="left" hspace=35 height="24" src="skin/characters/40h/citizen_r.png">'+
  1133. '<img title="'+trad(ctry,'maximum population : growth')+'" height="20" src="skin/icons/growth_positive.png">'+mark0+'</td><td title="'+dgold+'" align="center"; colspan=3>'+
  1134. link2 + '<img title="'+dgold+'" height="20" src="skin/resources/icon_gold.png"><b></td>'+mark+
  1135. '<td title="'+dwood+'" align="center">'+link4+'<b>'+'<img height="21" src="skin/resources/icon_wood.png">'+txt4+'</td>'+
  1136. '<td title="'+dwood0+' ('+trad(ctry,'produced')+')" align="center">'+link4+'<b>'+'<img height="16" src="skin/resources/icon_wood.png"></td>'+mark0+
  1137. '<td title="'+dwine+'" align="center">'+link51+'<b>'+'<img height="'+height11+'" src="skin/resources/icon_wine.png">'+txt51+'</td>'+
  1138. '<td title="'+dwine0+' ('+trad(ctry,'consumption')+')" align="center">'+link51+'<b>'+'<img height="'+height21+'" src="skin/resources/icon_wine.png"></td>'+
  1139. '<td title="'+dwine0+' ('+trad(ctry,'produced')+')" align="center">'+link51+'<b>'+'<img height="'+height21+'" src="skin/resources/icon_wine.png"></td>'+mark0+
  1140. '<td title="'+dmarble+'" align="center">'+link52+'<b>'+'<img height="'+height12+'" src="skin/resources/icon_marble.png">'+txt52+'</td>'+
  1141. '<td title="'+dmarble0+' ('+trad(ctry,'produced')+')" align="center">'+link52+'<b>'+'<img height="'+height22+'" src="skin/resources/icon_marble.png"></td>'+mark0+
  1142. '<td title="'+dglass+'" align="center">'+link53+'<b>'+'<img height="'+height13+'" src="skin/resources/icon_crystal.png">'+txt53+'</td>'+
  1143. '<td title="'+dglass0+' ('+trad(ctry,'produced')+')" align="center">'+link53+'<b>'+'<img height="'+height23+'" src="skin/resources/icon_crystal.png"></td>'+mark0+
  1144. '<td title="'+dsulfur+'" align="center">'+link54+'<b>'+'<img height="'+height14+'" src="skin/resources/icon_sulfur.png">'+txt54+'</td>'+
  1145. '<td title="'+dsulfur0+' ('+trad(ctry,'produced')+')" align="center">'+link54+'<b>'+'<img height="'+height24+'" src="skin/resources/icon_sulfur.png"></td>'+mark0+
  1146. '</tr>'+mark2
  1147. ////// preleva eventuali altre citta'
  1148.  
  1149. scanCityY ('navyout')
  1150. for (var i = 0; i < cityName.length+cityNameY.length; i++) {
  1151. if (i < cityName.length && cityName[i]==missCity[i]) {
  1152. continue
  1153. }
  1154. if ( i < cityName.length) {
  1155. wcityName=cityName[i]
  1156. wcity=JSONcitys[i]
  1157. wcityId=cityId[i]
  1158. }else {
  1159. wcityName=cityNameY[i-cityName.length]
  1160. wcity=othersCitys[i-cityName.length]
  1161. wcityId=othersCitys[i-cityName.length].cityIdX
  1162. }
  1163. xsize='font-size:9pt"'
  1164. if (i==currentI) {
  1165. xsize='font-size:10pt"'
  1166. }
  1167. rem = i%2
  1168.  
  1169. if(!wcity){
  1170. tabla += '<tr><td '+ LineStyle +'>'+(i+1)+'</td>'+mark0+'<td text-align:left;>'+wcityName+'</td>'+
  1171. mark+'<td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td><td>-</td></tr>';
  1172. }else {
  1173. if ( rem >0 ) {
  1174. LineStyle = 'style="text-align:left;color:black;background: #FDD4A6;font-weight:normal"'
  1175. LineStyleN = 'style="text-align:center;color:black;background: #FDD4A6;font-weight:normal"'
  1176. backgN='#FDD4A6'
  1177. }else {
  1178. LineStyle = 'style="text-align:left;color:black;background: #EFC287;font-weight:normal"'
  1179. LineStyleN = 'style="text-align:center;color:black;background: #EFC287;font-weight:normal"'
  1180. backgN='#EFC287'
  1181. }
  1182.  
  1183. if ( i < cityName.length) {
  1184. tabla+=xIcon[i]+mark0
  1185. }else {
  1186. if (wcity.hostile) {
  1187. tabla += '<tr><td align="center" style="background:tomato;font-weight:bold;color:white">X</td>'+mark0+'<td nowrap><a '+LineStyle+
  1188. 'href="/index.php?view=plunder&destinationCityId='+wcityId+
  1189. '&backgroundView=island">'+String.fromCharCode('8192')+wcityName+'</a></td>'+mark
  1190. }else {
  1191. tabla+= '<tr><td align="center" style="background:green;font-weight:bold;color:white">O</td>'+mark0+'<td nowrap><a '+ LineStyle +
  1192. 'href="/index.php?view=defendPort&destinationCityId='+wcityId+
  1193. '&backgroundView=island">'+String.fromCharCode('8192')+wcityName+'</a></td>'+mark
  1194. }
  1195. }
  1196.  
  1197. if(JSONcitydata.name==cityName[i]){
  1198. backgN=backgNCurrent[rem]
  1199. if ( rem >0 ){
  1200. LineStyle = 'style="text-align:left;color:black;background: #CDD4A6;font-weight:bold;'+xsize
  1201. LineStyleN ='style="text-align:center;color:black;background: #CDD4A6;font-weight:bold;'+xsize
  1202. }
  1203. else {
  1204. LineStyle = 'style="text-align:left;color:black;background: #BFC287;font-weight:bold;'+xsize
  1205. LineStyleN = 'style="text-align:center;color:black;background: #BFC287;font-weight:bold;'+xsize
  1206. }
  1207. }
  1208. Linestylewarning = 'style="color: Crimson;text-align:center;background: '+ backgN+';font-weight:bold;'+xsize
  1209. Linestylewarning0 = 'style="color: purple;text-align:center;background: '+ backgN+';font-weight:bold;'+xsize
  1210.  
  1211. var max0=(StrToNum(wcity.maxstorage));
  1212. max=max0*.75;
  1213. var Time = parseInt(CompTime); //time now
  1214. var citytime=parseInt(wcity.servertime);
  1215. var time = parseInt(Time-citytime)/3600; //time dif
  1216. var LineN = LineStyleN;
  1217. var Line = LineStyle;
  1218. titleOcc=''
  1219. if (wcity.occupierName) {
  1220. LineStyle= 'style="text-align:left;background: coral;font-weight:bold;'+xsize
  1221. titleOcc='title="'+trad(ctry,'City occupied by')+' --> ' +wcity.occupierName+'" '
  1222. }
  1223. if (i<cityName.length) {
  1224. tabla += '<td nowrap '+titleOcc+LineStyle +'><a '+ LineStyle +'href="/index.php?view=city&cityId='+wcityId+'">'+
  1225. String.fromCharCode('8192')+wcityName+'</a></td>'+mark
  1226. }
  1227.  
  1228. woodcomp=0
  1229. winecomp=0
  1230. marblecomp=0
  1231. crystalcomp=0
  1232. sulfurcomp=0
  1233. unitcomp=new Array()
  1234. for (kk=0;kk<15;kk++) {
  1235. unitcomp[kk]=0
  1236. }
  1237. if (i<cityName.length && !wcity.source) {
  1238. LineStyleZ = 'style="text-align:center;background:url(skin/actions/transport.jpg) no-repeat;background-size:27px 52px;'
  1239. filler=String.fromCharCode('8192')+String.fromCharCode('8192')+String.fromCharCode('8192')+String.fromCharCode('8192')
  1240. if (i==currentI) {
  1241. tabla+='<td title="'+trad(ctry,'no transport to the same city')+'"'+
  1242. LineStyleZ +'background-position:50% 100%"'+'>'+filler+'</td>'+mark
  1243. }else {
  1244. tabla+='<td title="'+trad(ctry,'click for transport goods/army from current city')+'"'+LineStyleZ +'background-position:50% 0%"'+
  1245. '><a href="?view=transport&backgroundView=city&destinationCityId='+wcityId+
  1246. '">'+filler+'</a></td>'+mark
  1247.  
  1248. }
  1249. }
  1250. else {
  1251.  
  1252. info=''
  1253. inf1=''
  1254. inf2=''
  1255. iconstr=''
  1256. green=0
  1257. red=0
  1258. yellow=0
  1259.  
  1260. for (k=0;k<wcity.source.length;k++) {
  1261. if (wcity.chargeSt[k]==1) {
  1262. yellow=1
  1263. }
  1264. arrivo=tempoNorm(wcity.timeArr[k]-CompTime)
  1265. if (arrivo==trad(ctry,'completed')) {
  1266. if (wcity.chargeSt[k]==1) {
  1267. red=1
  1268. }else {
  1269. green=1
  1270. }
  1271. if (wcity.chargeSt[k]==0) {
  1272. /// scarico merci (unloading)
  1273. if (wcity.tr_wood[k]>' ') {
  1274. s_wood=estraiNum (wcity.tr_wood[k])
  1275. wcity.wood=formatNum(parseInt(StrToNum(wcity.wood))+
  1276. parseInt(s_wood))+'"'
  1277. }
  1278. if (wcity.tr_wine[k]>' ') {
  1279. s_wine=estraiNum (wcity.tr_wine[k])
  1280. wcity.wine=formatNum(parseInt(StrToNum(wcity.wine))+
  1281. parseInt(s_wine))+'"'
  1282. }
  1283. if (wcity.tr_marble[k]>' ') {
  1284. s_marble=estraiNum (wcity.tr_marble[k])
  1285. wcity.marble=formatNum(parseInt(StrToNum(wcity.marble))+
  1286. parseInt(s_marble))+'"'
  1287. }
  1288. if (wcity.tr_crystal[k]>' ') {
  1289. s_crystal=estraiNum (wcity.tr_crystal[k])
  1290. wcity.crystal=formatNum(parseInt(StrToNum(wcity.crystal))+
  1291. parseInt(s_crystal))+'"'
  1292. }
  1293. if (wcity.tr_sulfur[k]>' ') {
  1294. s_sulfur=estraiNum (wcity.tr_sulfur[k])
  1295. wcity.sulfur=formatNum(parseInt(StrToNum(wcity.sulfur))+
  1296. parseInt(s_sulfur))+'"'
  1297. }
  1298.  
  1299. wcity.chargeSt[k]=2
  1300. myJSONText = JSON.stringify(wcity)
  1301. if (i<cityName.length) {
  1302. nomevar='citybuildings'+wcityName
  1303. }else {
  1304. nomevar='navyout'+wcityName
  1305. }
  1306. setVar(nomevar,myJSONText)
  1307. }
  1308.  
  1309. if (wcity.chargeSt[k]!=1) {
  1310. if (wcity.tr_wood[k]>' ') {
  1311. woodcomp=1
  1312. }
  1313. if (wcity.tr_wine[k]>' ') {
  1314. winecomp=1
  1315. }
  1316. if (wcity.tr_marble[k]>' ') {
  1317. marblecomp=1
  1318. }
  1319. if (wcity.tr_crystal[k]>' ') {
  1320. crystalcomp=1
  1321. }
  1322. if (wcity.tr_sulfur[k]>' ') {
  1323. sulfurcomp=1
  1324. }
  1325. }
  1326. } else {
  1327. xxx=Fechar(parseInt(wcity.timeArr[k])*1000)
  1328. arrivo=arrivo+' ('+trad(ctry,'at')+' '+xxx+')'
  1329. }
  1330. strwood=''
  1331. strwine=''
  1332. strmarble=''
  1333. strcrystal=''
  1334. strsulfur=''
  1335. strunit=''
  1336. iconstr=''
  1337. if (wcity.tr_wood[k]>' ') {
  1338. strwood='\n'+wcity.tr_wood[k]
  1339. iconstr=iconstr+'<img height="14" src="skin/resources/icon_wood.png">'
  1340. }
  1341. if (wcity.tr_wine[k]>' ') {
  1342. strwine='\n'+wcity.tr_wine[k]
  1343. iconstr=iconstr+'<img height="14" src="skin/resources/icon_wine.png">'
  1344. }
  1345. if (wcity.tr_marble[k]>' ') {
  1346. strmarble='\n'+wcity.tr_marble[k]
  1347. iconstr=iconstr+'<img height="14" src="skin/resources/icon_marble.png">'
  1348. }
  1349. if (wcity.tr_crystal[k]>' ') {
  1350. strcrystal='\n'+wcity.tr_crystal[k]
  1351. iconstr=iconstr+'<img height="14" src="skin/resources/icon_crystal.png">'
  1352. }
  1353. if (wcity.tr_sulfur[k]>' ') {
  1354. strsulfur='\n'+wcity.tr_sulfur[k]
  1355. iconstr=iconstr+'<img height="14" src="skin/resources/icon_sulfur.png">'
  1356. }
  1357.  
  1358.  
  1359. for (kk=0;kk<15;kk++) {
  1360. if (wcity.tr_unit[k][kk]>' ') {
  1361. strunit=strunit+'\n'+wcity.tr_unit[k][kk]+' - '
  1362. iconstr=iconstr+'<img height="26" src="'+xArmy[kk]+'">'
  1363. }
  1364. }
  1365.  
  1366. infsource=' <== '+wcity.source[k]+' - '
  1367. infmission=wcity.mission[k]+'\n'+' - '
  1368. infgoods=strwood+strwine+strmarble+strcrystal+strsulfur+strunit+ ' - '
  1369. infend= '\n-----------------------------\n'
  1370. infx=infsource+infmission+arrivo+infgoods+infend
  1371.  
  1372. inf1=iconstr+infsource+infgoods+infmission+cless+arrivo+infend
  1373. inf2=inf2+infx // solo per tip tradizionali (vedi sotto)
  1374. info=info+inf1
  1375. }
  1376.  
  1377. LineStyleNx='style="text-align:center;background:DodgerBlue;font-weight:bold"'
  1378. if (yellow>0) {
  1379. LineStyleNx='style="text-align:center;background:yellow;font-weight:bold"'
  1380. }
  1381. if (red>0) {
  1382. LineStyleNx='style="text-align:center;background:Coral;font-weight:bold"'
  1383. }
  1384. if (green>0) {
  1385. LineStyleNx='style="text-align:center;background:MediumSeaGreen;font-weight:bold"'
  1386. }
  1387.  
  1388. if (balloon==1) {
  1389. xtitle=''
  1390. fumetto='<span class="tooltip"><span class="top"></span>'+
  1391. '<span class="middle">'+info+'</span><span class="bottom"></span>'
  1392. }
  1393. else {
  1394. xtitle='title="'+inf2+'" '
  1395. fumetto=''
  1396. }
  1397. xhref='"?view=merchantNavy&backgroundView=city"'
  1398. if (i!=currentI) {
  1399. xhref='"?view=transport&backgroundView=city&destinationCityId='+wcityId+'"'
  1400. }
  1401. tabla+='<td '+xtitle+'" align="center" '+ LineStyleNx +
  1402. '><a class="tt1" href='+xhref+'><img height="18" width="22" src="/skin/characters/fleet/40x40/ship_transport_r_40x40.png">'+
  1403. fumetto+'</a></td>'+mark
  1404.  
  1405. }
  1406.  
  1407.  
  1408. ////////////////////////
  1409. if (!wcity.citizens) {
  1410. wcity.citizens='-'
  1411. }
  1412.  
  1413. tabla += '<td title="'+trad(ctry,'citizens')+'"'+ LineStyleN +">"+wcity.citizens+'</td>';
  1414.  
  1415. if (StrToNum(wcity.population) >= (wcity.MaxInhabitants)){
  1416. LineStyleN = 'style="color:FireBrick;text-align:center;background:'+backgN+';font-weight:bold;"'
  1417. }
  1418. if (!wcity.population) {
  1419. wcity.population='-'
  1420. }
  1421. tabla += '<td title="'+trad(ctry,'population')+'"'+ LineStyleN +">"+wcity.population;
  1422. LineStyleN = LineN;
  1423. /*//-----------------------------------------maxinhabitants and growth------
  1424.  
  1425. *///---------------------------------
  1426. ///////////////////////////////////////////////////////////////
  1427. // variazione crescita popolazione e soddisfazione (DINAMIC)
  1428. ///////////////////////////////////////////////////////////////
  1429. // H = soddisfazione prodotta dalla citta (taverne, musei, accordi, bonus, ricerche)
  1430. // h = soddisfazione corrente = H - p (p=popolazione)
  1431. // crescita (oraria) = G = dp/dt = h/50
  1432. //...===> equazione differenziale per separazione di variabili
  1433. //...===> p-p0 = h0*{1-e^[-(t-t0)/50]} ------ h0=soddisfazione al tempo t0= 50*G0
  1434. //...==> G=G0*e^[-(t-t0)/50]
  1435. ////////////////////////////////////////////////////////////
  1436. ///// tempo di riempimento città (=tx)
  1437. // pmax ==> popolazione massima
  1438. // p ===> popolazione corrente
  1439. // tx ==> 50*ln {50*G0/[50*G0-(pmax-p)]}
  1440. var popGrowth=wcity.PopulationGrowth
  1441. if (wcity.servertimeGrowth) {
  1442. var exp0=-((parseInt(CompTime)-wcity.servertimeGrowth)/(50*3600))
  1443. var exp=Math.pow(2.718281828, exp0)
  1444. var popG0=exp*wcity.PopulationGrowth
  1445. var popG1=Math.round(100*popG0)
  1446. popGrowth=parseInt(popG1)/100
  1447. }
  1448.  
  1449. deltap=0
  1450. if(!wcity.PopulationGrowth){
  1451. popGrowth = '-';
  1452. xGrow=0
  1453. }else {
  1454. deltap= wcity.MaxInhabitants-StrToNum(wcity.population)
  1455. xGrow=popGrowth
  1456. }
  1457. if(wcity.population && StrToNum(wcity.population) >= wcity.MaxInhabitants){
  1458. popGrowth = '#';
  1459. }
  1460. if(popGrowth>0) {
  1461. if(JSONcitydata.name==wcityName){
  1462. backgN=backgNCurrent[rem]
  1463. }
  1464. LineStyleN = 'style="color:darkgreen;text-align:center;background: '+ backgN+';font-weight:bold"'
  1465.  
  1466. }else{
  1467. if(popGrowth<0) {
  1468. LineStyleN = 'style="color:Blue;text-align:center;background: '+ backgN+';font-weight:bold"'
  1469. }
  1470. }
  1471. num=50*xGrow
  1472. argo=num/(num-deltap)
  1473. tx=50*Math.log(argo)
  1474. tx1=parseInt(tx*100)/100
  1475. tcomp=trad(ctry,'Full')+' '+trad(ctry,'within') +' : '+tx1+' '+trad(ctry,'hours')
  1476. tcompf=Fecha(1000*(CompTime+tx1*3600))
  1477. tcomp+='\n'+'('+tcompf+')'
  1478. if (num<=deltap) {
  1479. tcomp=trad(ctry,'Full')+' '+trad(ctry,'within')+' : '+trad(ctry,'never')
  1480. }
  1481. if (popGrowth=='#') {
  1482. tcomp=trad(ctry,'Full')+' !!'
  1483. }
  1484. xtitle='title="'+tcomp+'" '
  1485. fumetto=''
  1486. if (tcomp.length>20&&balloon==1) {
  1487. xtitle=''
  1488. fumetto='<span class="tooltip"><span class="top"></span><span class="middle">'+tcomp+'</span><span class="bottom"></span>'
  1489. }
  1490. xhref='href=?view=townHall&position=0&oldView=city&backgroundView=city&cityId='+cityId[i]+'&cityRight= '
  1491. if (!wcity.MaxInhabitants) {
  1492. wcity.MaxInhabitants='-'
  1493. }
  1494. tabla += '<td '+ LineStyleN +'><a '+xhref+LineStyleN+xtitle+'class="tt1">'+
  1495. wcity.MaxInhabitants+':'+popGrowth+fumetto+'</a></td>'+mark0
  1496.  
  1497. LineStyleN = LineN;
  1498.  
  1499. if(wcity.Bruto) {
  1500. tabla += '<td title="'+trad(ctry,'gold')+' '+trad(ctry,'produced')+'"'+ LineStyleN +'>'+wcity.Bruto;
  1501. }else {
  1502. tabla += '<td title="'+trad(ctry,'gold')+' '+trad(ctry,'produced')+'"'+ LineStyleN +">-";
  1503. }
  1504. if(wcity.ScienceCost) {
  1505. tabla += '<td title="'+trad(ctry,'gold')+' '+trad(ctry,'spent')+' ('+trad(ctry,'scientists')+')"'+
  1506. LineStyleN +'>'+wcity.ScienceCost;
  1507. }else {
  1508. tabla += '<td title="gold spent (scientist)"'+ LineStyleN +">-";
  1509. }
  1510. if(wcity.Netto) {
  1511. tabla += '<td title="'+trad(ctry,'net earning')+'"'+ LineStyleN +'>'+wcity.Netto+mark
  1512. }else {
  1513. tabla += '<td title="'+trad(ctry,'net earning')+'"'+ LineStyleN +">-"+mark
  1514. }
  1515.  
  1516. normalLine=LineStyleN;
  1517. //-----------------------------------wood---------------------
  1518.  
  1519. citywood[i] = StrToNum(wcity.wood);
  1520. var production = parseInt(StrToNum(wcity.woodprod));
  1521. production = parseInt(production*time);
  1522. citywood[i]= citywood[i]+production;
  1523.  
  1524. if(citywood[i] > max ){
  1525. LineStyleN = Linestylewarning;
  1526. }
  1527. if(citywood[i] >= max0 ){
  1528. citywood[i]=max0
  1529. LineStyleN = Linestylewarning0;
  1530. }
  1531. if (StrToNum(wcity.woodprod)>0) {
  1532. secToFull=parseInt((max0-citywood[i])/StrToNum(wcity.woodprod)*3600)
  1533. full=trad(ctry,'Full')+' '+trad(ctry,'within')+' : '+tempoNorm(secToFull)
  1534. xfull=Fecha((CompTime+secToFull)*1000)
  1535. full=full+'\n('+xfull+')'
  1536. }
  1537. else {
  1538. full=trad(ctry,'Full')+' '+trad(ctry,'within')+' : '+trad(ctry,'never')
  1539. }
  1540. if (woodcomp==1) {
  1541. LineStyleN='style="text-align:center;background:MediumSeaGreen;font-weight:bold"'
  1542. }
  1543. xtitle='title="'+full+'" '
  1544. fumetto=''
  1545. if (full.length>20&&balloon==1) {
  1546. xtitle=''
  1547. fumetto='<span class="tooltip"><span class="top"></span><span class="middle">'+full+'</span><span class="bottom"></span>'
  1548. }
  1549. xwood=formatNum(citywood[i])
  1550. if (!citywood[i]) {
  1551. xwood='-'
  1552. }
  1553. tabla += '<td '+ LineStyleN +'><a '+LineStyleN+xtitle+'class="tt1">'+xwood+fumetto+'</a></td>';
  1554.  
  1555. LineStyleN=normalLine
  1556.  
  1557. prodDay='Prod : '+formatNum(StrToNum(wcity.woodprod)*24)+' / '+trad(ctry,'day')
  1558. if (!wcity.woodprod) {
  1559. wcity.woodprod='-'
  1560. }
  1561. tabla += '<td '+ LineStyleN +'title="'+prodDay+'">'+wcity.woodprod+'</td>'+mark0
  1562.  
  1563.  
  1564. //----------------------------- wine city ---------------------------------------------------------------
  1565. citywine[i] = StrToNum(wcity.wine);
  1566. var Redux =1; //start at 100%
  1567. var pos = Findbuilding(i,building[20]); //building 20 is winepress
  1568. if(pos != -1){
  1569. var Redux = (100-((wcity.position[pos].level)))/100;
  1570. }
  1571. production=0;
  1572. if(cityRecId[i] == 1){
  1573. LineStyleN=LineStyleN.substring(0,LineStyleN.length-1)+';color:mediumblue;font-weight:bold;font-style=italic"'
  1574. if(wcity.tradegood) {
  1575. production = StrToNum(wcity.tradegood);
  1576. }
  1577. }
  1578. prod36=parseInt(production*36)
  1579. production=parseInt(production*time);
  1580. var HourUse = (wcity.winespending);
  1581. var ReduxUse=Math.round(HourUse*Redux);
  1582. cityReduxUse[i] = ReduxUse;
  1583. var use=parseInt(ReduxUse*time);
  1584. if((citywine[i]+production-use) > (max) ){ // 75% full
  1585. LineStyleN = Linestylewarning;
  1586. }
  1587. warninguse = parseInt(ReduxUse*36)
  1588. if((citywine[i]+prod36-warninguse) < (0) ){ // empty in 36 hours
  1589. LineStyleN = Linestylewarning;
  1590. }
  1591. citywine[i]=(citywine[i]-use+production);
  1592. if(citywine[i] >= max0 ){
  1593. citywine[i]=max0
  1594. LineStyleN = Linestylewarning0;
  1595. }
  1596. if (cityRecId[i] == 1 && StrToNum(wcity.tradegood)>parseInt(ReduxUse)) {
  1597. secToFull=parseInt((max0-citywine[i])/(StrToNum(wcity.tradegood)-parseInt(ReduxUse))*3600)
  1598. empty=trad(ctry,'Full')+' '+trad(ctry,'within')+' : '+tempoNorm(secToFull)
  1599. xempty=Fecha((CompTime+secToFull)*1000)
  1600. empty=empty+'\n('+xempty+')'
  1601. }
  1602. else {
  1603. wineprod=0
  1604. if (cityRecId[i] == 1) {
  1605. wineprod=StrToNum(wcity.tradegood)
  1606. }
  1607. if (parseInt(ReduxUse)>wineprod) {
  1608. secToEmpty=parseInt(citywine[i]/(parseInt(ReduxUse)-wineprod)*3600)
  1609. empty=trad(ctry,'Empty')+' '+trad(ctry,'within')+' : '+tempoNorm(secToEmpty)
  1610. xempty=Fecha((CompTime+secToEmpty)*1000)
  1611. empty=empty+'\n('+xempty+')'
  1612. }else {
  1613. if (cityRecId[i] == 1) {
  1614. empty=trad(ctry,'Full')+' '+trad(ctry,'within')+' : '+trad(ctry,'never')
  1615. }else {
  1616. empty=trad(ctry,'Empty')+' '+trad(ctry,'within')+' : '+trad(ctry,'never')
  1617. }
  1618. }
  1619. }
  1620. if (winecomp==1) {
  1621. LineStyleN='style="text-align:center;background:MediumSeaGreen;font-weight:bold"'
  1622. }
  1623. xtitle='title="'+empty+'" '
  1624. fumetto=''
  1625. if (empty.length>20&&balloon==1) {
  1626. xtitle=''
  1627. fumetto='<span class="tooltip"><span class="top"></span><span class="middle">'+empty+'</span><span class="bottom"></span>'
  1628. }
  1629. xwine=formatNum(citywine[i])
  1630. if (!citywine[i]) {
  1631. xwine='-'
  1632. }
  1633. tabla += '<td '+ LineStyleN +'><a '+LineStyleN+xtitle+'class="tt1">'+xwine+fumetto+'</a></td>';
  1634. LineStyleN=normalLine;
  1635. useDay='Use : '+formatNum(parseInt(ReduxUse)*24)+' / '+trad(ctry,'day')
  1636. xuse=parseInt(ReduxUse)
  1637. if (!citywine[i]) {
  1638. xuse='-'
  1639. }
  1640. tabla += '<td '+ LineStyleN +'title="'+useDay+'">'+xuse+'</td>'
  1641. if(cityRecId[i] == 1){
  1642. prodDay='Prod : '+formatNum(StrToNum(wcity.tradegood)*24)+' / '+trad(ctry,'day')
  1643. tabla += '<td '+ LineStyleN +'title="'+prodDay+'">'+wcity.tradegood+'</td>'+mark0
  1644. }else{
  1645. if (i<cityName.length) {
  1646. tabla += '<td '+ LineStyleN +'>#</td>'+mark0
  1647. }else {
  1648. tabla += '<td '+ LineStyleN +'>-</td>'+mark0
  1649. }
  1650. }
  1651. //-------------------------------marble--------------
  1652.  
  1653. production=0;
  1654. citymarble[i] = StrToNum(wcity.marble);
  1655. if(cityRecId[i] == 2){
  1656. LineStyleN=LineStyleN.substring(0,LineStyleN.length-1)+';color:mediumblue;font-weight:bold;font-style=italic"'
  1657. var production = StrToNum(wcity.tradegood);
  1658. if(!production){
  1659. production=0;
  1660. }
  1661. production=production*time;
  1662. }
  1663. if((citymarble[i]+production) > (max) ){
  1664. LineStyleN = Linestylewarning;
  1665. }
  1666. citymarble[i]=parseInt(citymarble[i]+production);
  1667. if(citymarble[i] >= max0 ){
  1668. citymarble[i]=max0
  1669. LineStyleN = Linestylewarning0;
  1670. }
  1671. if (cityRecId[i] == 2 && StrToNum(wcity.tradegood)>0) {
  1672. secToFull=parseInt((max0-citymarble[i])/StrToNum(wcity.tradegood)*3600)
  1673. full=trad(ctry,'Full')+' '+trad(ctry,'within')+' : '+tempoNorm(secToFull)
  1674. xfull=Fecha((CompTime+secToFull)*1000)
  1675. full=full+'\n('+xfull+')'
  1676. }
  1677. else {
  1678. full=trad(ctry,'Full')+' '+trad(ctry,'within')+' : '+trad(ctry,'never')
  1679. }
  1680. if (marblecomp==1) {
  1681. LineStyleN='style="text-align:center;background:MediumSeaGreen;font-weight:bold"'
  1682. }
  1683. xtitle='title="'+full+'" '
  1684. fumetto=''
  1685. if (full.length>20&&balloon==1) {
  1686. xtitle=''
  1687. fumetto='<span class="tooltip"><span class="top"></span><span class="middle">'+full+'</span><span class="bottom"></span>'
  1688. }
  1689. xmarble=formatNum(citymarble[i])
  1690. if (!citymarble[i]) {
  1691. xmarble='-'
  1692. }
  1693. tabla += '<td '+ LineStyleN +'><a '+LineStyleN+xtitle+'class="tt1">'+xmarble+fumetto+'</a></td>'
  1694. LineStyleN=normalLine;
  1695. if(cityRecId[i] == 2){
  1696. prodDay='Prod : '+formatNum(StrToNum(wcity.tradegood)*24)+' / '+trad(ctry,'day')
  1697. tabla += '<td '+ LineStyleN +'title="'+prodDay+'">'+((wcity.tradegood))+'</td>'+mark0
  1698. }else{
  1699. tabla += '<td '+ LineStyleN +'>#</td>'+mark0
  1700. }
  1701.  
  1702. //-------------------crystal-----------------
  1703.  
  1704. production=0;
  1705. cityglass[i] = StrToNum(wcity.crystal);
  1706. if(cityRecId[i] == 3){
  1707. LineStyleN=LineStyleN.substring(0,LineStyleN.length-1)+';color:mediumblue;font-weight:bold;font-style=italic"'
  1708. var production = StrToNum(wcity.tradegood);
  1709. if(!production){
  1710. production=0;
  1711. }
  1712. production=parseInt(production*time);
  1713. }
  1714. if((cityglass[i]) > (max) ){
  1715. LineStyleN = Linestylewarning;
  1716. }
  1717. cityglass[i]=parseInt(cityglass[i]+production);
  1718. if(cityglass[i] >= max0 ){
  1719. cityglass[i]=max0
  1720. LineStyleN = Linestylewarning0;
  1721. }
  1722. if (cityRecId[i] == 3 && StrToNum(wcity.tradegood)>0) {
  1723. secToFull=parseInt((max0-cityglass[i])/StrToNum(wcity.tradegood)*3600)
  1724. full=trad(ctry,'Full')+' '+trad(ctry,'within')+' : '+tempoNorm(secToFull)
  1725. xfull=Fecha((CompTime+secToFull)*1000)
  1726. full=full+'\n('+xfull+')'
  1727. }
  1728. else {
  1729. full=trad(ctry,'Full')+' '+trad(ctry,'within')+' : '+trad(ctry,'never')
  1730. }
  1731. if (crystalcomp==1) {
  1732. LineStyleN='style="text-align:center;background:MediumSeaGreen;font-weight:bold"'
  1733. }
  1734. xtitle='title="'+full+'" '
  1735. fumetto=''
  1736. //attiva il "tip esteso"
  1737. if (full.length>20&&balloon==1) {
  1738. xtitle=''
  1739. fumetto='<span class="tooltip"><span class="top"></span><span class="middle">'+full+'</span><span class="bottom"></span>'
  1740. }
  1741. xglass=formatNum(cityglass[i])
  1742. if (!cityglass[i]) {
  1743. xglass='-'
  1744. }
  1745. tabla += '<td '+ LineStyleN +'><a '+LineStyleN+xtitle+'class="tt1">'+xglass+fumetto+'</a></td>'
  1746. LineStyleN=normalLine
  1747. LineStyle=normalLine;
  1748. if(cityRecId[i] == 3){
  1749. prodDay='Prod : '+formatNum(StrToNum(wcity.tradegood)*24)+' / '+trad(ctry,'day')
  1750. tabla += '<td '+ LineStyleN +'title="'+prodDay+'">'+((wcity.tradegood))+'</td>'+mark0
  1751. }else{
  1752. tabla += '<td '+ LineStyleN +'>#</td>'+mark0
  1753. }
  1754.  
  1755. //--------------sulfur---------------------------
  1756.  
  1757. production=0;
  1758. citysulfur[i] = StrToNum(wcity.sulfur);
  1759. if(cityRecId[i] == 4){
  1760. LineStyleN=LineStyleN.substring(0,LineStyleN.length-1)+';color:mediumblue;font-weight:bold;font-style=italic"'
  1761. var production = StrToNum(wcity.tradegood);
  1762. if(!production){
  1763. production=0;
  1764. }
  1765. production=parseInt(production*time);
  1766. }
  1767. if((citysulfur[i]+production) > (max) ){
  1768. LineStyleN = Linestylewarning;
  1769. }
  1770. citysulfur[i]=parseInt(citysulfur[i]+production);
  1771. if(citysulfur[i] >= max0 ){
  1772. citysulfur[i]=max0
  1773. LineStyleN = Linestylewarning0;
  1774. }
  1775. if (cityRecId[i] == 4 && StrToNum(wcity.tradegood)>0) {
  1776. secToFull=parseInt((max0-citysulfur[i])/StrToNum(wcity.tradegood)*3600)
  1777. full=trad(ctry,'Full')+' '+trad(ctry,'within')+' : '+tempoNorm(secToFull)
  1778. xfull=Fecha((CompTime+secToFull)*1000)
  1779. full=full+'\n('+xfull+')'
  1780. }
  1781. else {
  1782. full=trad(ctry,'Full')+' '+trad(ctry,'within')+' : '+trad(ctry,'never')
  1783. }
  1784. if (sulfurcomp==1) {
  1785. LineStyleN='style="text-align:center;background:MediumSeaGreen;font-weight:bold"'
  1786. }
  1787. xtitle='title="'+full+'" '
  1788. fumetto=''
  1789. if (full.length>20&&balloon==1) {
  1790. xtitle=''
  1791. fumetto='<span class="tooltip"><span class="top"></span><span class="middle">'+full+'</span><span class="bottom"></span>'
  1792. }
  1793. xsulfur=formatNum(citysulfur[i])
  1794. if (!citysulfur[i]) {
  1795. xsulfur='-'
  1796. }
  1797. tabla += '<td '+ LineStyleN +'><a '+LineStyleN+xtitle+'class="tt1">'+xsulfur+fumetto+'</a></td>';
  1798. LineStyleN=normalLine
  1799. LineStyle=normalLine;
  1800. if(cityRecId[i] == 4){
  1801. prodDay='Prod : '+formatNum(StrToNum(wcity.tradegood)*24)+' / '+trad(ctry,'day')
  1802. tabla += '<td '+ LineStyleN +'title="'+prodDay+'">'+((wcity.tradegood))+'</td>';
  1803. }else{
  1804. tabla += '<td '+LineStyleN +'>#</td>';
  1805. }
  1806. tabla +=mark0
  1807. }
  1808. tabla +='</tr>'
  1809. }
  1810. ////////// Fine FOR (-i-) sulle city
  1811.  
  1812. tabla +=mark2
  1813.  
  1814. //---------------------- RIGHE DEI TOTALI RISORSE
  1815.  
  1816. tabla +='<tr style="color:black;font-family:times new roman,sans-serif;font-size:11pt;font-weight:bold"><td></td>'+mark0+
  1817. '<td >'+trad(ctry,'Total')+'</td>'+mark+'<td style="font-size:8pt" align="center" title="">'+dispnavy+'</td>'+mark
  1818. var val=0;
  1819. var sum=0;
  1820. for(i = 0 ; i < cityName.length; i++){
  1821. val=(StrToNum(JSONcitys[i].citizens));
  1822. sum = sum+val;
  1823. }
  1824. tabla +='<td title="'+trad(ctry,'total citizens')+'" align="center">'+formatNum(sum);
  1825.  
  1826. var val=0;
  1827. var sum=0;
  1828. var sum1=0
  1829. for(i = 0 ; i < cityName.length; i++){
  1830. val =(StrToNum(JSONcitys[i].population));
  1831. sum = sum+val;
  1832. sum1=sum1+(StrToNum(JSONcitys[i].MaxInhabitants))
  1833. }
  1834. tabla +='<td title="'+trad(ctry,'total population')+'" align="center">'+formatNum(sum);
  1835.  
  1836. //tabla +='<td align="center">'+ '-+-';
  1837. tabla +='<td title="'+trad(ctry,'population limit')+'" align="center">'+formatNum(sum1);
  1838.  
  1839. var wstyle=''
  1840. if (StrToNum(JSONcitys[0].goldHour)<0) {wstyle='style="color : red"'}
  1841. tabla += mark0+'<td title="'+trad(ctry,'gold held')+'" align="center" >'+tgold+'</td><td></td><td '+
  1842. wstyle+' align="center" title="'+trad(ctry,'net earning')+' / '+trad(ctry,'hour')+'">'+
  1843. JSONcitys[0].goldHour+' *</td>'+mark
  1844.  
  1845. var val =0;
  1846. var sum =0;
  1847. for(i = 0 ; i < cityName.length; i++){
  1848. val=citywood[i];
  1849. sum = sum+val;
  1850. }
  1851. tabla +='<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Building material')+'" align="center">'+formatNum(sum);
  1852.  
  1853. var val =0;
  1854. var sum =0;
  1855. for(i = 0 ; i < cityName.length; i++){
  1856. val =(StrToNum(JSONcitys[i].woodprod));
  1857. sum = sum+val;
  1858. }
  1859. var daywood=sum*24;
  1860. tabla +='<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Building material')+
  1861. ' '+trad(ctry,'produced')+' / '+trad(ctry,'hour')+'" align="center">'+formatNum(sum)+mark0
  1862.  
  1863. var val =0;
  1864. var sum =0;
  1865. for(i = 0 ; i < cityName.length; i++){
  1866. val=citywine[i];
  1867. sum = sum+val;
  1868. }
  1869. tabla +='<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Wine')+'" align="center">'+formatNum(sum);
  1870.  
  1871. var val =0;
  1872. var sum =0;
  1873. for(i = 0 ; i < cityName.length; i++){
  1874. val = cityReduxUse[i];
  1875. sum = sum+val;
  1876. }
  1877. sum = parseInt(sum);
  1878. var daywinespend=sum*24;
  1879. tabla +='<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Wine')+
  1880. ' '+trad(ctry,'consumed')+' / '+trad(ctry,'hour')+'" align="center">'+formatNum(sum)
  1881.  
  1882. var val =0;
  1883. var sum =0;
  1884. for(i = 0 ; i < cityName.length; i++){
  1885. if(cityRecId[i] == 1){
  1886. val =(StrToNum(JSONcitys[i].tradegood));
  1887. sum = sum+val;
  1888. }
  1889. }
  1890. var daywine=sum*24;
  1891. tabla +='<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Wine')+
  1892. ' '+trad(ctry,'produced')+' / '+trad(ctry,'hour')+'" align="center">'+formatNum(sum)+mark0
  1893.  
  1894. var val =0;
  1895. var sum =0;
  1896. for(i = 0 ; i < cityName.length; i++){
  1897. val=citymarble[i];
  1898. sum = sum+val;
  1899. }
  1900. tabla +='<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Marble')+'" align="center">'+formatNum(sum);
  1901.  
  1902. var val =0;
  1903. var sum =0;
  1904. for(i = 0 ; i < cityName.length; i++){
  1905. if(cityRecId[i] == 2){
  1906. val =(StrToNum(JSONcitys[i].tradegood));
  1907. sum = sum+val;
  1908. }
  1909. }
  1910. var daymarble=sum*24;
  1911. tabla +='<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Marble')+
  1912. ' '+trad(ctry,'produced')+' / '+trad(ctry,'hour')+'" align="center">'+formatNum(sum)+mark0
  1913.  
  1914. var val =0;
  1915. var sum =0;
  1916. for(i = 0 ; i < cityName.length; i++){
  1917. val=cityglass[i];
  1918. sum = sum+val;
  1919. }
  1920. tabla +='<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Crystal Glass')+'" align="center">'+formatNum(sum);
  1921.  
  1922. var val =0;
  1923. var sum =0;
  1924. for(i = 0 ; i < cityName.length; i++){
  1925. if(cityRecId[i] == 3){
  1926. val =(StrToNum(JSONcitys[i].tradegood));
  1927. sum = sum+val;
  1928. }
  1929. }
  1930. var daycrystal=sum*24;
  1931. tabla +='<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Crystal Glass')+
  1932. ' '+trad(ctry,'produced')+' / '+trad(ctry,'hour')+'" align="center">'+formatNum(sum)+mark0
  1933. var val =0;
  1934. var sum =0;
  1935. for(i = 0 ; i < cityName.length; i++){
  1936. val=citysulfur[i];
  1937. sum = sum+val;
  1938. }
  1939. tabla +='<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Sulphur')+'" align="center">'+formatNum(sum);
  1940.  
  1941. var val =0;
  1942. var sum =0;
  1943. for(i = 0 ; i < cityName.length; i++){
  1944. if(cityRecId[i] == 4){
  1945. val =(StrToNum(JSONcitys[i].tradegood));
  1946. sum = sum+val;
  1947. }
  1948. }
  1949. var daysulfur=sum*24;
  1950. tabla +='<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Sulphur')+
  1951. ' '+trad(ctry,'produced')+' / '+trad(ctry,'hour')+'" align="center">'+formatNum(sum)
  1952. var goldD=StrToNum(JSONcitys[0].goldHour)*24
  1953. if (goldD>0) {
  1954. var goldDay=formatNum(goldD)
  1955. }else { var goldDay='-'+formatNum(-goldD)
  1956. }
  1957.  
  1958.  
  1959. tabla += mark0+'<tr style="color:black;font-family:times new roman,sans-serif;font-size:11pt;font-weight:bold"><td ></td>'+
  1960. mark0+'<td >'+trad(ctry,'Total/day')+'</td>'+mark+
  1961. '<td title="" style="color:black;font-family:verdana,Arial, sans-serif;font-size:9pt"></td>'+mark
  1962. ////////////////////////
  1963.  
  1964. tabla += '<td></td>';//cityname
  1965. tabla += '<td></td>';//citizens
  1966. tabla += '<td></td>'+mark0
  1967. tabla += '<td></td>'
  1968. tabla += '<td></td>';//money
  1969. var wstyle=''
  1970. if (goldD<0) {wstyle='style="color : red"'}
  1971. tabla += '<td '+wstyle+' align="center" title="'+trad(ctry,'net earning')+' / '+trad(ctry,'day')+'">'+goldDay+'*</td>'+mark
  1972. tabla += '<td></td>'
  1973. tabla += '<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Building material')+
  1974. ' '+trad(ctry,'produced')+' / '+trad(ctry,'day')+'" align="center">'+formatNum(daywood)+'</td>'+mark0+'<td></td>'
  1975. tabla += '<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Wine')+
  1976. ' '+trad(ctry,'consumed')+' / '+trad(ctry,'day')+'" align="center">'+formatNum(daywinespend)+'</td>'
  1977. tabla += '<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Wine')+
  1978. ' '+trad(ctry,'produced')+' / '+trad(ctry,'day')+'" align="center">'+formatNum(daywine)+'</td>'+mark0
  1979. tabla += '<td></td><td title="'+trad(ctry,'Total')+' '+trad(ctry,'Marble')+
  1980. ' '+trad(ctry,'produced')+' / '+trad(ctry,'day')+'" align="center">'+formatNum(daymarble)+'</td>'+mark0
  1981. tabla += '<td></td><td title="'+trad(ctry,'Total')+' '+trad(ctry,'Crystal Glass')+
  1982. ' '+trad(ctry,'produced')+' / '+trad(ctry,'day')+'" align="center">'+formatNum(daycrystal)+'</td>'+mark0+'<td></td>'
  1983. tabla += '<td title="'+trad(ctry,'Total')+' '+trad(ctry,'Sulphur')+
  1984. ' '+trad(ctry,'produced')+' / '+trad(ctry,'day')+'" align="center">'+formatNum(daysulfur)+'</td>'+mark0
  1985. //-------------------------------------------------------------------------------
  1986.  
  1987. tabla +='</tr></table>';
  1988. document.getElementById("resourcedealer5-2").innerHTML = tabla;
  1989.  
  1990. //-------------------- FINE TAVOLA RISORSE
  1991.  
  1992.  
  1993. //////////////////////////////////////////********************************/////////////////////////////////////////////
  1994. //---------------------------------------------------------
  1995. //-------------------- TAVOLA UNITA' MILITARI
  1996. //---------------------------------------------------------
  1997. ///////////////////////////********************************************///////////////////////////////////////////////
  1998.  
  1999. tabla ='';
  2000. document.getElementById("ArmyTable").innerHTML = '';
  2001. tablx='<td align="center" title="'+trad(ctry,'Military overview and control')+'">'+
  2002. '<a href="/index.php?view=militaryAdvisor&backgroundView=city">'+
  2003. '<table><tr><img height="14" width="25" src="skin/interface/mission_deployfleet.png">'+
  2004. '<tr><img height="14" width="25" src="skin/interface/mission_deployarmy.png"></table></a></td>'+mark
  2005. ///////////////////////////////
  2006.  
  2007. apcurrentI=currentI
  2008. if (currentI==cityName.length) {
  2009.  
  2010. currentI=0
  2011. }
  2012. islX=cityCoords[currentI].substring(cityCoords[currentI].indexOf('[')+1,cityCoords[currentI].indexOf(':'))
  2013. islY=cityCoords[currentI].substring(cityCoords[currentI].indexOf(':')+1,cityCoords[currentI].indexOf(']'))
  2014.  
  2015. tabla += '<table align="center" border="3" bordercolor="#969262" width="100%">';
  2016. tabla += '<tr font-weight="bold" height="30"><td width=2% align="center">'+
  2017. '<a title="'+trad(ctry,'Show World')+'" href="?view=worldmap_iso&islandX='+islX+'&islandY='+islY+'">'+
  2018. '<img src="skin/layout/icon-world.png" ></a></td>'+mark0+'<td align="center">'+
  2019. rfmagn+magnify+'<b>'+trad(ctry,'Towns')+'</td>'+mark+tablx+
  2020. '<td align="center";'
  2021.  
  2022. currentI=apcurrentI
  2023. LineStyle = '<td style="max-height:20px;min-width: 20px; max-width: 30px; overflow: hidden;font-weight:bold;background-image: url(skin/input/button.png)">';
  2024. var imgHeight='<img height="30" src="';
  2025. xnameArmy= new Array ()
  2026.  
  2027. if (!JSONcitys[0].nameArmy) {
  2028. for (k=0;k<26;k++) {
  2029. xnameArmy[k]='Army'+k
  2030. }
  2031. JSONcitys[0].nameArmy=xnameArmy
  2032. }
  2033. var skinArmy=new Array (
  2034. "skin/characters/military/x60_y60/y60_phalanx_faceright.png", JSONcitys[0].nameArmy[0],
  2035. "skin/characters/military/x60_y60/y60_steamgiant_faceright.png", JSONcitys[0].nameArmy[1],
  2036. "skin/characters/military/x60_y60/y60_spearman_faceright.png", JSONcitys[0].nameArmy[2],
  2037. "skin/characters/military/x60_y60/y60_swordsman_faceright.png", JSONcitys[0].nameArmy[3],
  2038. "skin/characters/military/x60_y60/y60_slinger_faceright.png", JSONcitys[0].nameArmy[4],
  2039. "skin/characters/military/x60_y60/y60_archer_faceright.png", JSONcitys[0].nameArmy[5],
  2040. "skin/characters/military/x60_y60/y60_marksman_faceright.png", JSONcitys[0].nameArmy[6],
  2041. "skin/characters/military/x60_y60/y60_ram_faceright.png", JSONcitys[0].nameArmy[7],
  2042. "skin/characters/military/x60_y60/y60_catapult_faceright.png", JSONcitys[0].nameArmy[8],
  2043. "skin/characters/military/x60_y60/y60_mortar_faceright.png", JSONcitys[0].nameArmy[9],
  2044. "skin/characters/military/x60_y60/y60_gyrocopter_faceright.png", JSONcitys[0].nameArmy[10],
  2045. "skin/characters/military/x60_y60/y60_bombardier_faceright.png", JSONcitys[0].nameArmy[11],
  2046. "skin/characters/military/x60_y60/y60_cook_faceright.png", JSONcitys[0].nameArmy[12],
  2047. "skin/characters/military/x60_y60/y60_medic_faceright.png", JSONcitys[0].nameArmy[13],
  2048. "skin/characters/military/x60_y60/y60_spartan_faceright.png", JSONcitys[0].nameArmy[14],
  2049. "skin/characters/fleet/60x60/ship_flamethrower_faceright.png", JSONcitys[0].nameArmy[15],
  2050. "skin/characters/fleet/60x60/ship_steamboat_faceright.png", JSONcitys[0].nameArmy[16],
  2051. "skin/characters/fleet/60x60/ship_ram_faceright.png", JSONcitys[0].nameArmy[17],
  2052. "skin/characters/fleet/60x60/ship_catapult_faceright.png", JSONcitys[0].nameArmy[18],
  2053. "skin/characters/fleet/60x60/ship_ballista_faceright.png", JSONcitys[0].nameArmy[19],
  2054. "skin/characters/fleet/60x60/ship_mortar_faceright.png", JSONcitys[0].nameArmy[20],
  2055. "skin/characters/fleet/60x60/ship_rocketship_faceright.png", JSONcitys[0].nameArmy[21],
  2056. "skin/characters/fleet/60x60/ship_submarine_faceright.png", JSONcitys[0].nameArmy[22],
  2057. "skin/characters/fleet/60x60/ship_paddlespeedship_faceright.png", JSONcitys[0].nameArmy[23],
  2058. "skin/characters/fleet/60x60/ship_ballooncarrier_faceright.png", JSONcitys[0].nameArmy[24],
  2059. "skin/characters/fleet/60x60/ship_tender_faceright.png", JSONcitys[0].nameArmy[25]
  2060. );
  2061. ulink=''
  2062. ulink='<a href="/index.php?view=cityMilitary&activeTab=tabUnits&oldView=city&backgroundView=city&cityId='+currentId+'"</a>'
  2063.  
  2064. for (k=0; k<52; k=k+2) {
  2065. if (k>28) {
  2066. ulink='<a href="/index.php?view=cityMilitary&activeTab=tabShips&oldView=city&backgroundView=city&cityId='+
  2067. currentId+'"</a>'
  2068. }
  2069. tabla += LineStyle + ulink +
  2070. imgHeight + skinArmy[k] + '" title="' + skinArmy[k+1] + '"></td>';
  2071. if (k==28) {
  2072. tabla+=mark
  2073. }
  2074. }
  2075. tabla +=mark0+'</tr>'+mark3
  2076.  
  2077. var wcountArmy = new Array ();
  2078. var sumArmy = new Array();
  2079. for (var k = 0; k < 26; k++) {
  2080. sumArmy[k]=0;
  2081. wcountArmy[k]=0
  2082. }
  2083. ///////////////////**************************** INIZIO LOOP CITTA'
  2084. ////// preleva eventuali altre citta'
  2085.  
  2086. scanCityX ('armyout')
  2087. for (var i = 0; i < cityName.length+cityNameX.length+ocCityName.length; i++) {
  2088.  
  2089. if (i < cityName.length && cityName[i]==missCity[i]) {
  2090. continue
  2091. }
  2092.  
  2093. if ( i < cityName.length) {
  2094. wcityName=cityName[i]
  2095. wcity=JSONcitys[i]
  2096. wcityId=cityId[i]
  2097. }else {
  2098. if (i < cityName.length+cityNameX.length) {
  2099. wcityName=cityNameX[i-cityName.length]
  2100. wcity=othersCitys[i-cityName.length]
  2101. wcityId=cityIdX[i-cityName.length]
  2102. }else {
  2103. wcityName=ocCityName[i-cityName.length-cityNameX.length]
  2104. wcityId=ocCityId[i-cityName.length-cityNameX.length]
  2105. wcityCoords=ocCityCoords[i-cityName.length-cityNameX.length]
  2106. wcity=new Object()
  2107. wcity.sourceN=''
  2108. wcity.hostile=1
  2109. }
  2110. }
  2111.  
  2112. xsize='font-size:8pt'
  2113. if (i==currentI) {
  2114. xsize='font-size:10pt"'
  2115. }
  2116. var rem = i%2;
  2117. if ( rem >0 ){
  2118. LineStyle = 'style=" height:20px;text-align:left;color:black;background: #FDD4A6;font-weight:normal"'
  2119. LineStyleN = 'style="text-align:center;color:black;background: #FDD4A6;font-weight:normal"'
  2120. }
  2121. else{
  2122. LineStyle = 'style=" height:20px;text-align:left;color:black;background: #EFC287;font-weight:normal"'
  2123. LineStyleN = 'style="text-align:center;color:black;background: #EFC287;font-weight:normal"'
  2124. }
  2125. if(JSONcitydata){
  2126. if(JSONcitydata.name==cityName[i]){
  2127. var rem = i%2;
  2128. if ( rem >0 ){ // split odd/even lines
  2129. LineStyle = 'style="text-align:left;color:black;background: #CDD4A6;font-weight:bold;'+xsize
  2130. LineStyleN = 'style="text-align:center;color:black;background: #CDD4A6;font-weight:bold;'+xsize
  2131. }
  2132. else {
  2133. LineStyle = 'style="text-align:left;color:black;background: #BFC287;font-weight:bold;'+xsize
  2134. LineStyleN = 'style="text-align:center;color:black;background: #BFC287;font-weight:bold;'+xsize
  2135. }
  2136. }
  2137. }
  2138.  
  2139. titleOcc=''
  2140. if ( i < cityName.length && JSONcitys[i].occupierName) {
  2141. LineStyle= 'style="text-align:left;background: coral;font-weight:bold"'
  2142. titleOcc='title="'+trad(ctry,'City occupied by')+' --> ' +JSONcitys[i].occupierName+'" '
  2143. }
  2144. if ( i < cityName.length && !wcity.hostile) {
  2145. tabla +=xIcon[i]+'</td>'+mark0+'<td nowrap '+titleOcc+LineStyle+
  2146. '><a '+ LineStyle +'href="/index.php?view=cityMilitary&activeTab=tabUnits&oldView=city&backgroundView=city&cityId='+
  2147. wcityId+'&cityRight=">'+String.fromCharCode('8192')+wcityName+'</a></td>'+mark
  2148. }else {
  2149. xref='href="/index.php?view=blockade&destinationCityId='
  2150. if (i < cityName.length) {
  2151. xref='href="/index.php?view=defendPort&destinationCityId='
  2152. }
  2153. if (wcity.hostile) {
  2154. tabla += '<tr><td align="center" style="background:tomato;font-weight:bold;color:white">X</td>'+mark0+'<td nowrap><a '+ LineStyle +
  2155. xref+wcityId+'&backgroundView=island">'+String.fromCharCode('8192')+wcityName+'</a></td>'+mark
  2156. }else {
  2157. xref='href="/index.php?view=defendPort&destinationCityId='
  2158. tabla += '<tr><td align="center" style="background:green;font-weight:bold;color:white">O</td>'+mark0+'<td nowrap><a '+ LineStyle +
  2159. xref+wcityId+'&backgroundView=island">'+String.fromCharCode('8192')+wcityName+'</a></td>'+mark
  2160. }
  2161. }
  2162.  
  2163. unitcompN=new Array()
  2164.  
  2165. for (kk=0;kk<26;kk++) {
  2166. unitcompN[kk]=0
  2167. }
  2168.  
  2169. linkfleet='<a title="'+trad(ctry,'deploy fleet')+'" class="tt1" href="?view=deployment&deploymentType=fleet'+
  2170. '&destinationCityId='+wcityId+'&backgroundView=island">'
  2171. linkarmy='<a title="'+trad(ctry,'deploy army')+'" class="tt1" href="?view=deployment&deploymentType=army'+
  2172. '&destinationCityId='+wcityId+'&backgroundView=island">'
  2173. imgfleet='<img vspace=0 align="left" height=10 width=17 src="skin/interface/mission_deployfleet.png">'
  2174. imgarmy='<img vspace=0 align="right" height=10 width=17 src="skin/interface/mission_deployarmy.png">'
  2175. if (i<cityName.length && !wcity.sourceN) {
  2176. if (i==currentI) {
  2177. tabla+='<td title="'+trad(ctry,'no fleet/army to the same city')+'"'+LineStyleN +'>--</td>'+mark
  2178. }else {
  2179. tabla+='<td width=35 '+LineStyleN+'>'+linkfleet+imgfleet+'</a>'+linkarmy+imgarmy+'</td>'+mark
  2180. }
  2181. }
  2182. else {
  2183.  
  2184. info=''
  2185. inf1=''
  2186. inf2=''
  2187. iconstr=''
  2188. green=0
  2189. red=0
  2190. yellow=0
  2191. purple=0
  2192. for (k=0;k<wcity.sourceN.length;k++) {
  2193. if (wcity.chargeStN[k]==1) {
  2194. yellow=1
  2195. }else {
  2196. if (wcity.chargeStN[k]==3) {
  2197. purple=1
  2198. }
  2199. }
  2200. arrivo=tempoNorm(wcity.timeArrN[k]-CompTime)
  2201. if (arrivo==trad(ctry,'completed')) {
  2202. if (wcity.chargeStN[k]==1) {
  2203. red=1
  2204. }else {
  2205. green=1
  2206. }
  2207. if (wcity.chargeStN[k]==0) {
  2208. for (kk=0;kk<26;kk++) {
  2209. if (wcity.TipNavy[k][kk]>' ') {
  2210. s_unit=wcity.NumNavy[k][kk]
  2211. wcity.countArmy[kk]=parseInt(wcity.countArmy[kk])+parseInt(s_unit)+''
  2212. }
  2213. }
  2214. wcity.chargeStN[k]=2
  2215. myJSONText = JSON.stringify(wcity)
  2216. if (i<cityName.length) {
  2217. nomevar='citybuildings'
  2218. }else {
  2219. nomevar='armyout'
  2220. }
  2221. setVar(nomevar+wcity.name,myJSONText)
  2222. }
  2223. } else {
  2224. xxx=Fechar(parseInt(wcity.timeArrN[k])*1000)
  2225. arrivo=arrivo+' ('+trad(ctry,'at')+' '+xxx+')'
  2226. }
  2227. strunit=''
  2228. iconstr=''
  2229. if (wcity.NumShip && wcity.NumShip[k]>0) {
  2230. strunit='\n'+wcity.NumShip[k]+' '+trad(ctry,'merchant ships')+' - '
  2231. iconstr='<img height="26" src="/skin/characters/fleet/40x40/ship_transport_r_40x40.png">'
  2232. }
  2233.  
  2234. for (kk=0;kk<26;kk++) {
  2235. if (wcity.TipNavy[k][kk]>' ') {
  2236. strunit=strunit+'\n'+wcity.NumNavy[k][kk]+' '+JSONcitys[0].nameArmy[kk]+' - '
  2237. if (kk>14) {
  2238. iconstr=iconstr+'<img height="26" src="skin/characters/fleet/60x60/'+wcity.TipNavy[k][kk]+'_faceright.png">'
  2239. }else {
  2240. iconstr=iconstr+'<img height="26" src="skin/characters/military/x60_y60/y60_'+wcity.TipNavy[k][kk]+'_faceright.png">'
  2241. }
  2242. }
  2243. }
  2244. infsource=' <== '+wcity.sourceN[k]+' - '
  2245. infmission=wcity.missionN[k]+'\n'
  2246. infunita=wcity.Units[k]+' = '+strunit
  2247. infend='\n-----------------------------\n'
  2248. infx=infsource+infunita+infmission+arrivo+infend
  2249.  
  2250. inf1=iconstr+infsource+infunita+infmission+cless+arrivo+infend
  2251. inf2=inf2+infx // solo per tip tradizionali (vedi sotto)
  2252. info=info+inf1
  2253. }
  2254.  
  2255. LineStyleNx='style="text-align:center;background:DodgerBlue;font-weight:bold"'
  2256. if (yellow>0) {
  2257. LineStyleNx='style="text-align:center;background:yellow;font-weight:bold"'
  2258. }
  2259. if (red>0) {
  2260. LineStyleNx='style="text-align:center;background:Coral;font-weight:bold"'
  2261. }
  2262. if (purple>0) {
  2263. LineStyleNx='style="text-align:center;background:MEDIUMSLATEBLUE;font-weight:bold"'
  2264. }
  2265. if (green>0) {
  2266. LineStyleNx='style="text-align:center;background:MediumSeaGreen;font-weight:bold"'
  2267. }
  2268. if (i>=cityName.length+cityNameX.length) {
  2269. LineStyleNx='style="text-align:center;background:red;font-weight:bold"'
  2270. info=trad(ctry,'island')+' : '+wcityCoords
  2271. }
  2272. if (balloon==1) {
  2273. xtitle=''
  2274. fumetto='<span class="tooltip"><span class="top"></span>'+
  2275. '<span class="middle">'+info+'</span><span class="bottom"></span>'
  2276. }
  2277. else {
  2278. xtitle='title="'+inf2+'" '
  2279. fumetto=''
  2280. }
  2281. xhref='"?view=militaryAdvisor&backgroundView=city"'
  2282. if (i!=currentI) {
  2283. if (i<cityName.length) {
  2284. titlex='"'+trad(ctry,'deploy fleet')+'"'
  2285. titley='"'+trad(ctry,'deploy army')+'"'
  2286. if (wcity.sourceN) {
  2287. titlex=''
  2288. titley=''
  2289. }
  2290. linkfleet='<a title="'+titlex+'" class="tt1" href="?view=deployment&deploymentType=fleet'+
  2291. '&destinationCityId='+wcityId+'&backgroundView=island">'
  2292. linkarmy='<a title="'+titley+'" class="tt1" href="?view=deployment&deploymentType=army'+
  2293. '&destinationCityId='+wcityId+'&backgroundView=island">'
  2294. }else {
  2295. if (!wcity.hostile) {
  2296. linkfleet='<a title="'+trad(ctry,'defend harbour')+'" class="tt1" href="?view=defendPort&destinationCityId='+
  2297. wcityId+'&backgroundView=island">'
  2298. linkarmy='<a title="'+trad(ctry,'defend city')+'" class="tt1" href="?view=defendCity&destinationCityId='+
  2299. wcityId+'&backgroundView=island">'
  2300. }else {
  2301. linkfleet='<a title="'+trad(ctry,'blockade harbour')+'" class="tt1" href="?view=blockade&destinationCityId='+
  2302. wcityId+'&backgroundView=island">'
  2303. linkarmy='<a title="'+trad(ctry,'occupy city')+'" class="tt1" href="?view=occupy&destinationCityId='+
  2304. wcityId+'&backgroundView=island">'
  2305. }
  2306. }
  2307. }
  2308.  
  2309. tabla+='<td '+xtitle+'" align="center" '+ LineStyleNx +'>'+
  2310. linkfleet+imgfleet+fumetto+'</a>'+linkarmy+imgarmy+fumetto+'</a>'+mark
  2311.  
  2312. }
  2313. //////******************
  2314.  
  2315. if (wcity.countArmy) {
  2316. wcountArmy=wcity.countArmy
  2317. }
  2318.  
  2319. //-------//
  2320.  
  2321. lun=0
  2322. for (k=0;k<26;k++) {
  2323. unitcompN[k]=0
  2324. }
  2325.  
  2326. if (wcity.sourceN) {
  2327. lun=wcity.sourceN.length
  2328. }
  2329.  
  2330. for (j=0;j<lun;j++) {
  2331. if (wcity.chargeStN[j]==2) {
  2332. for (k=0;k<26;k++) {
  2333. if (wcity.TipNavy[j][k]>' ') {
  2334. unitcompN[k]=1
  2335. }
  2336. }
  2337. }
  2338. }
  2339. ////
  2340. for (var k = 0; k < 26; k++) {
  2341. normalLine=LineStyleN
  2342. if (unitcompN[k]==1) {
  2343. LineStyleN='style="text-align:center;background:MediumSeaGreen;font-weight:bold"'
  2344. }
  2345. if (wcity.countArmy && wcountArmy[k]>0) {
  2346. val=formatNum(wcountArmy[k]);
  2347. sumArmy[k] = sumArmy[k] + StrToNum(wcountArmy[k]);
  2348. tabla +='<td '+ LineStyleN +'>'+val+'</td>';
  2349. }
  2350. else {
  2351. tabla += '<td '+ LineStyleN +'>-</td>';
  2352. }
  2353. if (k==14) {
  2354. tabla+=mark
  2355. }
  2356. LineStyleN=normalLine
  2357. }
  2358. tabla+=mark0
  2359. }
  2360. ////// FINE LOOP CITTA'
  2361.  
  2362. tabla +='</tr>'+mark3
  2363. //---------------------------------------
  2364. //---------------- totali militari
  2365. //----------------------------------------
  2366. tabla += '<td '+ LineStyleN +'></td>';
  2367. tabla +='<tr style="color:black;font-family:times new roman,sans-serif;font-size:11pt">'+
  2368. '<td></td>'+mark0+'<td>'+trad(ctry,'Total')+'</td>'+mark+'<td></td>'+mark
  2369.  
  2370. for (var k = 0; k < 26; k++) {
  2371. tabla +='<td align="center">'+ formatNum(sumArmy[k]) +'</td>';
  2372. if (k==14) {
  2373. tabla+=mark
  2374. }
  2375. }
  2376. tabla +=mark0+mark3+'</table>'
  2377. ///test table
  2378. //resto='&containerWidth=1206px&containerHeight=892px&worldviewWidth=1206px&worldviewHeight=846px&worldmap_isoTop=897px&worldmap_isoLeft=103px&worldmap_isoWorldviewScale=1&backgroundView=city'
  2379. //click='<a style="font-size:15pt;color:black;font-weight:bold" onclick="ajaxHandlerCall(this.href);return false;" href="?view=tradeAdvisor&amp;oldView=city&amp;cityId='+cityId[currentI]+resto+'" title="Riepilogo delle città e delle finanze" class="normal">'
  2380. //tabla+='<table border="16" style="font-size:15pt;color:black;background:green"><tr><td rowspan="2">'+click+'Cella 1</a></td><td>Cella 2</td></tr><tr><td>Cella 3</td></tr><tr><td rowspan="2">Cella 4</td><td>Cella 5</td></tr><tr><td>Cella 6</td></tr></table>'
  2381.  
  2382. document.getElementById("ArmyTable").innerHTML = tabla;
  2383.  
  2384. //ErrorString='VISIT ALL YOURS CITYS !!!'
  2385. document.getElementById("ResourceAlert").innerHTML = ErrorString;
  2386. }
  2387.  
  2388.  
  2389. /////////////////////////////////////////////////////
  2390. ////////////////////////////////////////////////////
  2391. //*************** OTHERS FUNCTION //////////////
  2392. //////////////////////////////////////////////////
  2393.  
  2394. //importata
  2395. /*
  2396. function insCSS(style) {
  2397. var getHead = document.getElementsByTagName("HEAD")[0];
  2398. var cssNode = window.document.createElement('style');
  2399. var elementStyle = getHead.appendChild(cssNode);
  2400. elementStyle.innerHTML = style;
  2401. return elementStyle;
  2402. }
  2403. */
  2404. //modificata
  2405. function addLink(url) {
  2406. getHead = document.getElementsByTagName("HEAD")[0]
  2407. linkNode = window.document.createElement('link')
  2408. linkNode.type='text/css'
  2409. linkNode.rel='stylesheet'
  2410. linkNode.href=url
  2411. elementLink = getHead.appendChild(linkNode)
  2412. return elementLink
  2413. }
  2414. //
  2415.  
  2416. function normal (bigtip) {
  2417. ix=bigtip.indexOf('finish=',bigtip.length-50)
  2418. if (ix>0) {
  2419. iy=bigtip.indexOf("|",ix)
  2420. subT=bigtip.substring(ix+7,iy)
  2421. if (subT=='0') {
  2422. bigtip=bigtip.replace('finish=0|','')
  2423. return bigtip
  2424. }else {
  2425. resTime=subT-CompTime
  2426. subTnew=tempoNorm(resTime)
  2427. iz=bigtip.indexOf('[')
  2428. iw=bigtip.indexOf("]")
  2429. subX=bigtip.substring(iz+1,iw)
  2430. bigtip=bigtip.replace(subX,subTnew)
  2431.  
  2432. iv=bigtip.indexOf("%",ix)
  2433. totime=bigtip.substring(iv+1)
  2434. progTime=totime-resTime
  2435. percNew=parseInt(progTime/totime*100)
  2436. if (percNew>100) {
  2437. percNew=100
  2438. }
  2439. ir=bigtip.indexOf(xSp1,0)
  2440. it=bigtip.indexOf('%',ir)
  2441. percOld=bigtip.substring(ir,it)
  2442. percNew=xSp1+percNew
  2443. bigtip=bigtip.replace(percOld,percNew)
  2444. bigtip=bigtip.substring(0,ix-1)
  2445. return bigtip
  2446. }
  2447. }else {
  2448. return bigtip
  2449. }
  2450. }
  2451.  
  2452. function reinit () {
  2453. GMlista=GM_listValues ()
  2454. strDel=document.location.host
  2455. resp=confirm(trad(ctry,'After your confirmation, you must visit all the cities to refresh the data\n')+
  2456. '************************'+' '+trad(ctry,'Confirm')+' ?'+' '+'***************************')
  2457. if (!resp) {return}
  2458. for (i=0;i<GMlista.length;i++) {
  2459. if (GMlista[i].indexOf(strDel,0)>=0) {
  2460. GM_deleteValue(GMlista[i])
  2461. }
  2462. }
  2463. //alert ('Now you must visit all yours citys\n for refreshing data')
  2464. }
  2465.  
  2466. function scanCityX (stringa) {
  2467. GMlista=GM_listValues ()
  2468. strDel=document.location.host+stringa
  2469. k=0
  2470. for (i=0;i<GMlista.length;i++) {
  2471. if (GMlista[i].indexOf(strDel,0)>=0) {
  2472. othersCitys[k]=JSON.parse(GM_getValue(GMlista[i]))
  2473. cityNameX[k]=othersCitys[k].name
  2474. cityIdX[k]=othersCitys[k].cityIdX
  2475. k++
  2476. }
  2477. }
  2478. }
  2479.  
  2480. function scanCityY (stringa) {
  2481. GMlista=GM_listValues ()
  2482. strDel=document.location.host+stringa
  2483. k=0
  2484. for (i=0;i<GMlista.length;i++) {
  2485. if (GMlista[i].indexOf(strDel,0)>=0) {
  2486. othersCitys[k]=JSON.parse(GM_getValue(GMlista[i]))
  2487. cityNameY[k]=othersCitys[k].name
  2488. cityIdY[k]=othersCitys[k].cityIdX
  2489. k++
  2490. }
  2491. }
  2492. }
  2493.  
  2494. function num_to_func(num){
  2495. switch(num){
  2496. case "0": return "T"; break;
  2497. case "1": return "S"; break;
  2498. case "2": return "d"; break;
  2499. }
  2500. }
  2501.  
  2502.  
  2503. p = document.getElementById("cel_menu_3");
  2504. h = document.createElement('a');
  2505. h.setAttribute('class','button');
  2506. h.id = "b_s_h_deals";
  2507. if(getVar("s_h_deals")==0){
  2508. h.innerHTML = trad(ctry,'Show Buildings');
  2509. document.getElementById("resourcedealer5").style.display="none";
  2510. }else{
  2511. h.innerHTML = trad(ctry,'Hide Buildings');
  2512. document.getElementById("resourcedealer5").style.display="inline";
  2513. }
  2514. h.addEventListener("click",function(){f_s_h_deals();},false);
  2515. p.appendChild(h);
  2516.  
  2517. function f_s_h_deals(){
  2518. if(getVar("s_h_deals")==1){
  2519. setVar("s_h_deals",0);
  2520. document.getElementById("b_s_h_deals").innerHTML = trad(ctry,'Show Buildings');
  2521. document.getElementById("resourcedealer5").style.display="none";
  2522. }else{
  2523. setVar("s_h_deals",1);
  2524. document.getElementById("b_s_h_deals").innerHTML = trad(ctry,'Hide Buildings');
  2525. document.getElementById("resourcedealer5").style.display="inline";
  2526. }
  2527. }
  2528.  
  2529. p = document.getElementById("cel_menu_4");
  2530. h = document.createElement('a');
  2531. h.setAttribute('class','button');
  2532. h.id = "b_s_h_inform";
  2533. if(getVar("s_h_inform")==0){
  2534. h.innerHTML = trad(ctry,'Show Resources');
  2535. document.getElementById("resourcedealer5-2").style.display="none";
  2536. }else{
  2537. h.innerHTML = trad(ctry,'Hide Resources');
  2538. document.getElementById("resourcedealer5-2").style.display="inline";
  2539. }
  2540. h.addEventListener("click",function(){f_s_h_inform();},false);
  2541. p.appendChild(h);
  2542.  
  2543. function f_s_h_inform(){
  2544. if(getVar("s_h_inform")==1){
  2545. setVar("s_h_inform",0);
  2546. document.getElementById("b_s_h_inform").innerHTML = trad(ctry,'Show Resources');
  2547. document.getElementById("resourcedealer5-2").style.display="none";
  2548. }else{
  2549. setVar("s_h_inform",1);
  2550. document.getElementById("b_s_h_inform").innerHTML = trad(ctry,'Hide Resources');
  2551. document.getElementById("resourcedealer5-2").style.display="inline";
  2552. }
  2553. }
  2554.  
  2555. // spare button............
  2556. p = document.getElementById("cel_menu_5");
  2557. h = document.createElement('a');
  2558. h.setAttribute('class','button');
  2559. h.id = "b_s_h_Army";
  2560. if(getVar("s_h_Army")==0){
  2561. h.innerHTML = trad(ctry,'Show Army');
  2562. document.getElementById("ArmyTable").style.display="none";
  2563. }else{
  2564. h.innerHTML = trad(ctry,'Hide Army');
  2565. document.getElementById("ArmyTable").style.display="inline";
  2566. }
  2567. h.addEventListener("click",function(){f_s_h_Army();},false);
  2568. p.appendChild(h);
  2569.  
  2570. function f_s_h_Army(){
  2571. if(getVar("s_h_Army")==1){
  2572. setVar("s_h_Army",0);
  2573. document.getElementById("b_s_h_Army").innerHTML = trad(ctry,'Show Army');
  2574. document.getElementById("ArmyTable").style.display="none";
  2575. }else{
  2576. setVar("s_h_Army",1);
  2577. document.getElementById("b_s_h_Army").innerHTML = trad(ctry,'Hide Army');
  2578. document.getElementById("ArmyTable").style.display="inline";
  2579. }
  2580. }
  2581.  
  2582. ///////////////// Tip personalizzato
  2583. p = document.getElementById("cel_menu_8");
  2584. h = document.createElement('a');
  2585. h.setAttribute('class','button');
  2586. h.id = "balloonTip";
  2587. if(getVar("varTip")!=1){
  2588. h.setAttribute('style','font:bold;color:red');
  2589. h.innerHTML = 'Balloon Tip is Off';
  2590. }else{
  2591. h.setAttribute('style','font:bold;color:blue');
  2592. h.innerHTML = 'Balloon Tips On';
  2593. }
  2594. h.addEventListener("click",function(){funTip();},false);
  2595. p.appendChild(h);
  2596.  
  2597. function funTip(){
  2598. if(getVar("varTip")==1){
  2599. setVar("varTip",0);
  2600. balloon=0
  2601. document.getElementById("balloonTip").innerHTML = 'Balloon Tip\n Off';
  2602. }else{
  2603. setVar("varTip",1);
  2604. balloon=1
  2605. document.getElementById("balloonTip").innerHTML = 'Balloon Tip\n On';
  2606. }
  2607. }
  2608.  
  2609. /* //off
  2610. p = document.getElementById("cel_menu_9");
  2611. h = document.createElement('a');
  2612. h.setAttribute('class','button');
  2613. h.id = "brefresh";
  2614. h.innerHTML = 'Reload page';
  2615. h.addEventListener("click",function(){refresh();},false);
  2616. p.appendChild(h);
  2617. */
  2618. function refresh(){
  2619. window.location.reload()
  2620. //window.scrollBy(0,350)
  2621. }
  2622.  
  2623. p = document.getElementById("cel_menu_a");
  2624. h = document.createElement('a');
  2625. h.setAttribute('class','button');
  2626. h.id = "breinit";
  2627. h.innerHTML = trad(ctry,'Reset Data');
  2628. h.addEventListener("click",function(){reinit();},false);
  2629. p.appendChild(h);
  2630.  
  2631. p = document.getElementById("cel_menu_0");
  2632. h = document.createElement('a');
  2633. h.setAttribute('class','button');
  2634. h.id = "bfocus";
  2635. if(getVar("varFocus")!=1){
  2636. h.setAttribute('style','font:bold;color:red');
  2637. h.innerHTML = 'Focus Table Off';
  2638. }else{
  2639. h.setAttribute('style','font:bold;color:blue');
  2640. h.innerHTML = 'Focus Table On';
  2641. }
  2642. h.addEventListener("click",function(){focus();},false);
  2643. p.appendChild(h);
  2644. function focus(){
  2645. if(getVar("varFocus")==1){
  2646. setVar("varFocus",0);
  2647. focusTable=0
  2648. document.getElementById("bfocus").innerHTML = 'Focus Table Off';
  2649. }else{
  2650. setVar("varFocus",1);
  2651. focusTable=1
  2652. document.getElementById("bfocus").innerHTML = 'Focus Table is On';
  2653. }
  2654. }
  2655. //cella di test
  2656. p = document.getElementById("celtest");
  2657. h = document.createElement('a');
  2658. h.setAttribute('class','button');
  2659. h.setAttribute('style','font:bold;color:blue');
  2660. h.setAttribute('title','ikariam.wikia.com');
  2661. h.id = "btest";
  2662. h.innerHTML = 'Wiki Ikariam';
  2663. //h.addEventListener("click",function(){window.open("http://www.google.it","_self")});
  2664. //xref=trad(ctry,'"http://ikariam.wikia.com/wiki/Main_Page"')
  2665. xref=trad(ctry,'http://ikariam.wikia.com/wiki/Main_Page')
  2666. h.addEventListener("click",function(){window.open(xref,"_page")});
  2667.  
  2668. p.appendChild(h);
  2669. function test(){
  2670. window.open("http:google.it",false)
  2671. }
  2672.  
  2673.  
  2674. function tipLevel (i,p) {
  2675. ////****** Tip upgrading
  2676. tipLv=nst=nwo=nwi=nma=ngl=nsu=nti=''
  2677. if (JSONcitys[i].tipLevel) {
  2678. if (JSONcitys[i].tipLevel[p].upStr) {
  2679. nst=JSONcitys[i].tipLevel[p].upStr
  2680. }
  2681. if (JSONcitys[i].tipLevel[p].upWood) {
  2682. nwo=JSONcitys[i].tipLevel[p].upWood
  2683. if (balloon==1) {
  2684. nwo=nwo.substring(nwo.indexOf(' :'))
  2685. nwo='<img height="14" src="skin/resources/icon_wood.png">'+nwo
  2686. }
  2687. }
  2688. if (JSONcitys[i].tipLevel[p].upMarble) {
  2689. nma=JSONcitys[i].tipLevel[p].upMarble
  2690. if (balloon==1) {
  2691. nma=nma.substring(nma.indexOf(' :'))
  2692. nma='<img height="14" src="skin/resources/icon_marble.png">'+nma
  2693. }
  2694. }
  2695. if (JSONcitys[i].tipLevel[p].upGlass) {
  2696. ngl=JSONcitys[i].tipLevel[p].upGlass
  2697. if (balloon==1) {
  2698. ngl=ngl.substring(ngl.indexOf(' :'))
  2699. ngl='<img height="14" src="skin/resources/icon_crystal.png">'+ngl
  2700. }
  2701. }
  2702. if (JSONcitys[i].tipLevel[p].upSulfur) {
  2703. nsu=JSONcitys[i].tipLevel[p].upSulfur
  2704. if (balloon==1) {
  2705. nsu=nsu.substring(nsu.indexOf(' :'))
  2706. nsu='<img height="14" src="skin/resources/icon_sulfur.png">'+nsu
  2707. }
  2708. }
  2709. if (JSONcitys[i].tipLevel[p].upWine) {
  2710. nwi=JSONcitys[i].tipLevel[p].upWine
  2711. if (balloon==1) {
  2712. nwi=nwi.substring(nwi.indexOf(' :'))
  2713. nwi='<img height="14" src="skin/resources/icon_wine.png">'+nwi
  2714. }
  2715. }
  2716. if (JSONcitys[i].tipLevel[p].upTime) {
  2717. nti=JSONcitys[i].tipLevel[p].upTime
  2718. if (balloon==1) {
  2719. nti=nti.substring(nti.indexOf(' :'))
  2720. nti='<img height="14" src="skin/resources/icon_time.png">'+nti
  2721. }
  2722. }
  2723. tipLv=nst+nwo+nwi+nma+ngl+nsu+nti
  2724. }
  2725.  
  2726. return tipLv
  2727. }
  2728. var momentoActual = new Date();
  2729. var m_ant = parseInt(momentoActual/(1000*60));
  2730.  
  2731. function trovaX (oggetto) {
  2732. curleft=0
  2733. if(piede.offsetParent) {
  2734. while(1) {
  2735. curleft += piede.offsetLeft
  2736. if(!piede.offsetParent) {
  2737. break
  2738. }
  2739. piede = piede.offsetParent
  2740. }
  2741. }
  2742. else {
  2743. if(piede.x) {
  2744. curleft += piede.x
  2745. }
  2746. }
  2747. return curleft
  2748. }
  2749.  
  2750. function trovaY (oggetto) {
  2751. curtop=0
  2752. if(piede.offsetParent) {
  2753. while(1) {
  2754. curtop += piede.offsetTop
  2755. if(!piede.offsetParent) {
  2756. break
  2757. }
  2758. piede = piede.offsetParent
  2759. }
  2760. }
  2761. else {
  2762. if(piede.y) {
  2763. curtop += piede.y
  2764. }
  2765. }
  2766. return curtop
  2767. }
  2768.  
  2769. function tempoNorm(sec){
  2770.  
  2771. var gg=parseInt(sec/86400);
  2772. var hh=parseInt((sec-gg*86400)/3600);
  2773. var mm=parseInt((sec-gg*86400-hh*3600)/60);
  2774. var ss=parseInt((sec-gg*86400-hh*3600-mm*60));
  2775. var tempo='';
  2776. if (gg>0) {
  2777. tempo=gg+trad(ctry,'D')+' '
  2778. }
  2779. if (hh>0) {
  2780. tempo+=hh+trad(ctry,'h')+' '
  2781. }
  2782. if (mm>0) {
  2783. tempo+=mm+trad(ctry,'m')+' '
  2784. }
  2785. if (ss>1) {
  2786. tempo+=ss+trad(ctry,'s')
  2787. }else {
  2788. tempo+='1'+trad(ctry,'s')
  2789. }
  2790. if (tempo=='1'+trad(ctry,'s')) {
  2791. tempo=trad(ctry,'completed')
  2792. }
  2793. return tempo;
  2794. }
  2795.  
  2796. function stringaTempo (str,xora,xmin,xsec) {
  2797. ih=str.indexOf('h',0)
  2798. if (ih>0) {
  2799. xora=str.substr(0,ih)
  2800. ix=str.indexOf(' ',ih)
  2801. str=str.substr(ix+1,str.length-ix)
  2802. }else{xora=0}
  2803. im=str.indexOf('m',0)
  2804. if (im>0) {
  2805. xmin=str.substr(0,im)
  2806. ix=str.indexOf(' ',im)
  2807. str=str.substr(ix+1,str.length-ix)
  2808. }else{xmin=0}
  2809. is=str.indexOf('s',0)
  2810. if (is>0) {
  2811. xsec=str.substr(0,is)
  2812. ix=str.indexOf(' ',is)
  2813. str=str.substr(ix+1,str.length-ix)
  2814. }else{xsec=0}
  2815. myora=xora
  2816. mymin=xmin
  2817. mysec=xsec
  2818. }
  2819.  
  2820. function strTempoExt (str,xday,xora,xmin,xsec) {
  2821. str=str.replace('G','g').replace('D','g').replace('d','g').replace('j','g').replace('T','g')
  2822. id=str.indexOf('g',0)
  2823.  
  2824. if (id>0) {
  2825. xday=str.substr(0,id)
  2826. ix=str.indexOf(' ',id)
  2827. str=str.substr(ix+1,str.length-ix)
  2828. }else{xday=0}
  2829.  
  2830. ih=str.indexOf('h',0)
  2831. if (ih>0) {
  2832. xora=str.substr(0,ih)
  2833. ix=str.indexOf(' ',ih)
  2834. str=str.substr(ix+1,str.length-ix)
  2835. }else{xora=0}
  2836.  
  2837. im=str.indexOf('m',0)
  2838. if (im>0) {
  2839. xmin=str.substr(0,im)
  2840. ix=str.indexOf(' ',im)
  2841. str=str.substr(ix+1,str.length-ix)
  2842. }else{xmin=0}
  2843.  
  2844. is=str.indexOf('s',0)
  2845. if (is>0) {
  2846. xsec=str.substr(0,is)
  2847. ix=str.indexOf(' ',is)
  2848. str=str.substr(ix+1,str.length-ix)
  2849. }else{xsec=0}
  2850.  
  2851. myday=xday
  2852. myora=xora
  2853. mymin=xmin
  2854. mysec=xsec
  2855. }
  2856.  
  2857. function estraiNum (wstring) {
  2858. ix=wstring.indexOf(' ',0)
  2859. wstring1=wstring.substr(0,ix)
  2860. return wstring1
  2861. }
  2862.  
  2863. function tindex (unit) {
  2864. for (j=0;j<26;j++) {
  2865. if (unit==xUnit[j]) {
  2866. return j
  2867. }
  2868. }
  2869. }
  2870.  
  2871. function StrToNum(str){
  2872. if(!str){
  2873. return 0;
  2874. }else{
  2875. //str = str.replace('.','');
  2876. //str = str.replace(/,/g,'');
  2877. str = str.replace(unsafeWindow.LocalizationStrings.thousandSeperator,'')
  2878. .replace(unsafeWindow.LocalizationStrings.thousandSeperator,'')
  2879. .replace(unsafeWindow.LocalizationStrings.thousandSeperator,'');
  2880. str = str.replace(unsafeWindow.LocalizationStrings.decimalPoint,'');
  2881. if (str.indexOf('k',0) > 0) {
  2882. str = str.replace("k","");
  2883. return parseInt(str) * 1000;
  2884. }
  2885. return parseInt(str);
  2886. }
  2887. }
  2888.  
  2889. function formatNum(a){ // format back to m1,m2.m3
  2890. var comma=unsafeWindow.LocalizationStrings.thousandSeperator
  2891. var m3=a-parseInt(a/1000)*1000
  2892. var m2=parseInt((a-parseInt(a/1000000)*1000000)/1000)
  2893. var m1=parseInt(a/1000000)
  2894. if (a>999) {
  2895. var M3=m3
  2896. if (m3<10) {M3='0'+M3}
  2897. if (m3<100) {M3='0'+M3}
  2898. }
  2899. if (a>999999) {
  2900. var M2=m2
  2901. if (m2<10) {M2='0'+M2}
  2902. if (m2<100) {M2='0'+M2}
  2903. return(m1+comma+M2+comma+M3)
  2904. }
  2905. else {
  2906. if (a>999) {
  2907. return(m2+comma+M3)
  2908. }
  2909. else {
  2910. return(m3)
  2911. }
  2912. }
  2913. }
  2914.  
  2915. function a0(str){
  2916. var out = str.toString();
  2917. if (out.length==1) {
  2918. return "0"+out;
  2919. }else{
  2920. return str;
  2921. }
  2922. }
  2923.  
  2924. function Fecha(time){
  2925. var momentoActual = new Date();
  2926. momentoActual.setTime(time)
  2927. wday=new Array ()
  2928. //wday=['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']
  2929. wday=[trad(ctry,'Sunday'),trad(ctry,'Monday'),trad(ctry,'Tuesday'),
  2930. trad(ctry,'Wednesday'),trad(ctry,'Thursday'),trad(ctry,'Friday'),trad(ctry,'Saturday')]
  2931.  
  2932. y = momentoActual.getFullYear()
  2933. n = momentoActual.getMonth()+1
  2934. d = momentoActual.getDate()
  2935. h = momentoActual.getHours()
  2936. m = momentoActual.getMinutes()
  2937. g= momentoActual.getDay()
  2938. return wday[g]+' '+a0(d)+"/"+a0(n)+"/"+a0(y)+' '+trad(ctry,'at')+' '+a0(h)+":"+a0(m)
  2939. }
  2940.  
  2941. function Fechar(time){
  2942. var momentoActual = new Date(time);
  2943. h = momentoActual.getHours()
  2944. m = momentoActual.getMinutes()
  2945. return a0(h)+":"+a0(m)
  2946. }
  2947.  
  2948.  
  2949. function getVar(varname, vardefault) {
  2950. var res = GM_getValue(document.location.host+varname);
  2951. if (res == undefined) {
  2952. return vardefault;
  2953. }
  2954. return res;
  2955. }
  2956.  
  2957. function setVar(varname, varvalue) {
  2958. GM_setValue(document.location.host+varname, varvalue);
  2959. }
  2960.  
  2961.  
  2962. function Findbuilding(index,name){// find buildinglvl for building(name) for city(index)
  2963. for (i = 0 ; i<numPlace ; i++){
  2964. if(JSONcitys[index]){
  2965. if(JSONcitys[index].position[i].building.replace(' constructionSite','') == name) {
  2966. return i;
  2967. }
  2968. }
  2969. }
  2970. return -1; //building not found
  2971. }
  2972.  
  2973. PT(); /////the big timerloop for dynamic-updating
  2974. function PT(){
  2975. FechaActual();
  2976. cargar_dealers();
  2977. setTimeout(PT,6*1000);
  2978. }
  2979.  
  2980. function FechaActual(){
  2981. var momentoActual = new Date();
  2982. var y = momentoActual.getFullYear();
  2983. var n = momentoActual.getMonth()+1;
  2984. var d = momentoActual.getDate();
  2985. var h = momentoActual.getHours();
  2986. var m = momentoActual.getMinutes();
  2987. return a0(d)+"/"+a0(n)+"/"+a0(y)+" "+a0(h)+":"+a0(m);
  2988. }
  2989.  
  2990.  
  2991. //////////////////////// getcitydata() /////////////////////////////
  2992. function getcitydata(){ // get all data from currentcity
  2993. ////////////////////////////////////////////////////////////////////
  2994.  
  2995. text=document.body.innerHTML; //first get data from page and make it JSON
  2996. var ini1 = text.indexOf('updateBackgroundData"',0); // get citydatastring
  2997. var ini2 = text.indexOf('"updateTemplateData',ini1); // find end
  2998. var citystring = "{"+(text.substring(ini1+23,ini2-3))+""; // make substring of data
  2999.  
  3000.  
  3001. if(citystring.length > 5){
  3002. JSONcitydata = JSON.parse(citystring); // make data JSON data
  3003. if (view == "city"){
  3004. for(i=0;i<cityName.length;i++){ //find current city
  3005. if(JSONcitydata.name == cityName[i]){
  3006. var test = GM_getValue(document.location.host+"citybuildings"+cityName[i]);
  3007. if(test) {
  3008. JSONcitys[i]=JSON.parse(GM_getValue(document.location.host+"citybuildings"+cityName[i]));
  3009. }else{
  3010. JSONcitys[i] = JSONcitydata; /// può dare problemi col reinit (?)
  3011. }
  3012. // data from string
  3013. JSONcitys[i].name=JSONcitydata.name;
  3014. JSONcitys[i].id=JSONcitydata.id;
  3015. JSONcitys[i].phase=JSONcitydata.phase;
  3016. JSONcitys[i].ownerId=JSONcitydata.ownerId;
  3017. JSONcitys[i].ownerName=JSONcitydata.ownerName;
  3018. JSONcitys[i].islandId=JSONcitydata.islandId;
  3019. JSONcitys[i].islandName=JSONcitydata.islandName;
  3020. JSONcitys[i].islandXCoord=JSONcitydata.islandXCoord;
  3021. JSONcitys[i].islandYCoord=JSONcitydata.islandYCoord;
  3022. JSONcitys[i].buildingSpeedupActive=JSONcitydata.buildingSpeedupActive;
  3023. JSONcitys[i].underConstruction=JSONcitydata.underConstruction;
  3024. JSONcitys[i].endUpgradeTime=JSONcitydata.endUpgradeTime;
  3025. JSONcitys[i].startUpgradeTime=JSONcitydata.startUpgradeTime;
  3026. JSONcitys[i].speedupState=JSONcitydata.speedupState;
  3027. JSONcitys[i].position=JSONcitydata.position;
  3028. JSONcitys[i].portControllerName=JSONcitydata.portControllerName
  3029. JSONcitys[i].occupierName=JSONcitydata.occupierName
  3030.  
  3031. // data from screen
  3032. JSONcitys[i].maxstorage=((document.getElementById("js_GlobalMenu_max_wood")).firstChild.nodeValue); // max storage
  3033. JSONcitys[i].servertime=(unsafeWindow.dataSetForView.serverTime)+'"'; //time of the update
  3034. JSONcitys[i].action=((document.getElementById("js_GlobalMenu_maxActionPoints")).firstChild.nodeValue);
  3035. JSONcitys[i].citizens=((document.getElementById("js_GlobalMenu_citizens")).firstChild.nodeValue);
  3036. JSONcitys[i].population=((document.getElementById("js_GlobalMenu_population")).firstChild.nodeValue);//total in current city
  3037. //JSONcitys[i].wood=((document.getElementById("js_GlobalMenu_wood")).firstChild.nodeValue);//wood in current city
  3038. var aaa =unsafeWindow.dataSetForView.currentResources.resource
  3039. JSONcitys[i].wood=aaa+'"'
  3040. ///////////////// altre risorse
  3041. txtin=text.indexOf('currentResources:')
  3042. text1=text.substring(txtin,txtin+200)
  3043. txtin1=text1.indexOf('resource')
  3044. text2=text1.substring(txtin1,txtin1+120)
  3045. inw=text2.indexOf('"1')
  3046. fiw=text2.substring(inw,inw+20).indexOf(',')
  3047. JSONcitys[i].wine=text2.substring(inw+5,inw+fiw)
  3048. inw=text2.indexOf('"2')
  3049. fiw=text2.substring(inw,inw+20).indexOf(',')
  3050. JSONcitys[i].marble=text2.substring(inw+5,inw+fiw)
  3051. inw=text2.indexOf('"3')
  3052. fiw=text2.substring(inw,inw+20).indexOf('}')
  3053. JSONcitys[i].crystal=text2.substring(inw+5,inw+fiw)
  3054. inw=text2.indexOf('"4')
  3055. fiw=text2.substring(inw,inw+20).indexOf(',')
  3056. JSONcitys[i].sulfur=text2.substring(inw+5,inw+fiw)
  3057.  
  3058. ////////////////////////
  3059. JSONcitys[i].woodprod=((document.getElementById("js_GlobalMenu_resourceProduction")).firstChild.nodeValue);//wood in current city
  3060. //JSONcitys[i].wine=((document.getElementById("js_GlobalMenu_wine")).firstChild.nodeValue);//wine in current city
  3061. //JSONcitys[i].marble=((document.getElementById("js_GlobalMenu_marble")).firstChild.nodeValue);//marble in current city
  3062. //JSONcitys[i].crystal=((document.getElementById("js_GlobalMenu_crystal")).firstChild.nodeValue);//cristal in current city
  3063. //JSONcitys[i].sulfur=((document.getElementById("js_GlobalMenu_sulfur")).firstChild.nodeValue);//sulfur in current city
  3064.  
  3065. var tradeName=new Array ("js_GlobalMenu_resourceProduction","js_GlobalMenu_production_wine",
  3066. "js_GlobalMenu_production_marble","js_GlobalMenu_production_crystal","js_GlobalMenu_production_sulfur")
  3067. var tradeg=document.getElementById(tradeName[cityRecId[i]]).firstChild.nodeValue
  3068. if (tradeg>='0') {
  3069. JSONcitys[i].tradegood=tradeg
  3070. }
  3071. if (!JSONcitys[i].tipLevel || JSONcitys[i].tipLevel.length<numPlace) {
  3072. tipLevel=new Array ()
  3073. for (k=0;k<numPlace;k++) {
  3074. tipLevel[k]=new Object ()
  3075. }
  3076. JSONcitys[i].tipLevel=tipLevel
  3077. }
  3078. JSONcitys[i].winespending=(unsafeWindow.dataSetForView.wineSpendings);
  3079. var myJSONText = JSON.stringify(JSONcitys[i]); //convert back to string for storage
  3080. var JSONcity = JSON.parse(myJSONText); // convert to JSON for use in program , If program fails here there is an error in the string
  3081. setVar("citybuildings"+JSONcitys[i].name,myJSONText); // store the data for the current city
  3082. }else{
  3083. }
  3084. var levelsdata=(levelsdata+")");
  3085. }
  3086. }
  3087. if (view == "island"){
  3088. if (JSONcitydata.isOwnCityOnIsland==true) {
  3089. for(i=0;i<cityName.length;i++){
  3090. citta=GM_getValue(document.location.host+"citybuildings"+cityName[i])
  3091. if (citta) {
  3092. jcitta=JSON.parse(citta)
  3093. if (JSONcitydata.id==jcitta.islandId) {
  3094. jcitta.resourceLevel=JSONcitydata.resourceLevel
  3095. jcitta.tradegoodLevel=JSONcitydata.tradegoodLevel
  3096. myJSONText=JSON.stringify(jcitta)
  3097. setVar("citybuildings"+jcitta.name,myJSONText)
  3098. }
  3099. }
  3100. }
  3101. }
  3102. }
  3103. servertime = unsafeWindow.dataSetForView.serverTime; // get the servertime
  3104. }
  3105. }
  3106.  
  3107.  
  3108.  
  3109.  
  3110. //////////////////////// getcitysdata() /////////////////////////////
  3111. function getcitysdata(){ // get all city's and rec,coords,id,relations
  3112. ///////////////////////////////////////////////////////////////////////
  3113.  
  3114. JSONcitydata = (unsafeWindow.dataSetForView.relatedCityData.selectedCity); // current cityId
  3115. var elemx=document.getElementById("js_cityIdOnChange")
  3116. if (elemx.value>'0') {
  3117. JSONcitydata='city_'+elemx.value
  3118. }
  3119. ind_cityId = 0;
  3120. ind_ocCityId = 0;
  3121.  
  3122. for (var key in unsafeWindow.dataSetForView.relatedCityData) {
  3123. if ( unsafeWindow.dataSetForView.relatedCityData[key].relationship == 'ownCity'){
  3124. cityId[ind_cityId] = unsafeWindow.dataSetForView.relatedCityData[key].id;
  3125. cityCoords[ind_cityId] = unsafeWindow.dataSetForView.relatedCityData[key].coords;
  3126. cityName[ind_cityId] = unsafeWindow.dataSetForView.relatedCityData[key].name;
  3127. if (unsafeWindow.dataSetForView.relatedCityData[key].tradegood) {
  3128. cityRecId[ind_cityId] = unsafeWindow.dataSetForView.relatedCityData[key].tradegood;
  3129. cityRecStr[ind_cityId]=resourcetrad[(unsafeWindow.dataSetForView.relatedCityData[key].tradegood)].toLowerCase();
  3130. if (cityRecStr[ind_cityId]=="crystal glass"){
  3131. cityRecStr[ind_cityId] = "glass";
  3132. }
  3133. if (cityRecStr[ind_cityId]=="sulphur"){
  3134. cityRecStr[ind_cityId] = "sulfur";
  3135. }
  3136. }
  3137. ind_cityId++;
  3138. }else {
  3139. if ( unsafeWindow.dataSetForView.relatedCityData[key].relationship == 'occupiedCities') {
  3140. ocCityId[ind_ocCityId] = unsafeWindow.dataSetForView.relatedCityData[key].id;
  3141. ocCityCoords[ind_ocCityId] = unsafeWindow.dataSetForView.relatedCityData[key].coords
  3142. ocCityName[ind_ocCityId] = unsafeWindow.dataSetForView.relatedCityData[key].name;
  3143. }
  3144. ind_ocCityId++
  3145. }
  3146. }
  3147. }
  3148.  
  3149.  
  3150. function focusCity () {
  3151. //// definisce la citta' selezionata / cambiata come corrente
  3152.  
  3153. var cityId1 = (unsafeWindow.dataSetForView.relatedCityData.selectedCity); // current city
  3154. var elemx=document.getElementById("js_cityIdOnChange")
  3155. if (elemx.value>'0') {
  3156. cityId1='city_'+elemx.value
  3157. }
  3158. currentCity=unsafeWindow.dataSetForView.relatedCityData[cityId1].name
  3159. var test = GM_getValue(document.location.host+"citybuildings"+currentCity);
  3160. if(test) {
  3161. JSONcitydata=JSON.parse(GM_getValue(document.location.host+"citybuildings"+currentCity));
  3162. }
  3163. currentId=unsafeWindow.dataSetForView.relatedCityData.selectedCity.replace('city_','')
  3164. currentI=cityName.length
  3165. for (j=0;j<cityName.length;j++) {
  3166. if (currentCity==cityName[j]) {
  3167. currentI=j
  3168. break
  3169. }
  3170. }
  3171. //////////////////////
  3172. }
  3173.  
  3174. //-----------------------------------------------
  3175. //------------------------TESTING VIEW ----------
  3176. //-----------------------------------------------
  3177. function testing(view) {
  3178. focusCity()
  3179.  
  3180. ///************* aggiunge CSS island, necessarie per corretta form di assegnazione risorse
  3181. getHead = document.getElementsByTagName("HEAD")[0];
  3182. xLink='/skin/compiled-'+ctry+'-island.css?rev=34893'
  3183. //xLink='/skin/compiled-'+ctry+'-island-0.5.1.1.css' //cambiano sempre ?
  3184. addLink(xLink)
  3185. ///******************************************************
  3186.  
  3187. xview=view
  3188.  
  3189. /////////////////**************** TRANSPORT ************************/////////////////////////////
  3190. if (view == 'merchantNavy') {
  3191. var element=document.getElementById("merchantNavy")
  3192. var elevent=element.getElementsByClassName("eventRow")
  3193. var elpay=element.getElementsByClassName("payload")
  3194.  
  3195. ///// Inizializza trasporti
  3196. for(i=0;i<cityName.length;i++){
  3197. appo=JSON.parse(GM_getValue(document.location.host+"citybuildings"+cityName[i]))
  3198. appo.source=null
  3199. appo.arrival=null
  3200. appo.chargeSt=null
  3201. appo.mission=null
  3202. appo.tr_wood=null
  3203. appo.tr_wine=null
  3204. appo.tr_marble=null
  3205. appo.tr_crystal=null
  3206. appo.tr_sulfur=null
  3207. appo.tr_unit=null
  3208. appo.timeArr=null
  3209. myJSONText = JSON.stringify(appo)
  3210. setVar("citybuildings"+cityName[i],myJSONText)
  3211. }
  3212. ///// cancella le citta' non proprie
  3213. GMlista=GM_listValues ()
  3214. strDel=document.location.host+'navyout'
  3215.  
  3216. for (i=0;i<GMlista.length;i++) {
  3217. if (GMlista[i].indexOf(strDel,0)>=0) {
  3218. GM_deleteValue(GMlista[i])
  3219. }
  3220. }
  3221. /////// Individua i trasporti correnti
  3222. /// Source & Target
  3223. if (elevent.length>0) {
  3224.  
  3225. var source=new Array()
  3226. var target=new Array()
  3227. var cityNum=new Array()
  3228. var tr_unit=new Array()
  3229. var arrival=new Array()
  3230. var chargeStatus=new Array()
  3231. var mission=new Array()
  3232. var ostile= new Array()
  3233.  
  3234. /////**** missioni, tempi di arrivo e stati
  3235. for (i=0; i<elevent.length; i++) {
  3236.  
  3237. elmissionx=null
  3238. elmission=null
  3239. elmissiony=null
  3240. elmissionz=null
  3241. elmissionw=null
  3242. elmissionv=null
  3243. eltime=null
  3244. eltime=elevent[i].getElementsByClassName("eta")
  3245. elmissionx=elevent[i].getElementsByClassName("mission_icon deployarmy")
  3246. elmission=elevent[i].getElementsByClassName("mission_icon transport")
  3247. elmissiony=elevent[i].getElementsByClassName("mission_icon trade")
  3248. elmissionz=elevent[i].getElementsByClassName("mission_icon plunder")
  3249. elmissionw=elevent[i].getElementsByClassName("mission_icon defend")
  3250. elmissionv=elevent[i].getElementsByClassName("mission_icon occupy")
  3251.  
  3252. ostile[i]=0
  3253. if (elmissionx[0]) {
  3254. mission[i]=elmissionx[0].title
  3255. }else {
  3256. if (elmission[0]) {
  3257. mission[i]=elmission[0].title
  3258. }else {
  3259. if (elmissiony[0]) {
  3260. mission[i]=elmissiony[0].title
  3261. }else {
  3262. if (elmissionz[0]) {
  3263. ostile[i]=1
  3264. mission[i]=elmissionz[0].title
  3265. }else {
  3266. if (elmissionw[0]) {
  3267. mission[i]=elmissionw[0].title
  3268. }else {
  3269. ostile[i]=1
  3270. mission[i]=elmissionv[0].title
  3271. }
  3272. }
  3273. }
  3274. }
  3275. }
  3276. sour=elevent[i].getElementsByClassName("source")
  3277. taga=sour[0].getElementsByTagName("a")
  3278. source[i]=taga[0].text
  3279. targ=elevent[i].getElementsByClassName("target")
  3280. tagb=targ[0].getElementsByTagName("a")
  3281. target[i]=tagb[0].text
  3282. cityNum[i]=tagb[0].href.substring(tagb[0].href.indexOf('cityId=')+7)
  3283.  
  3284. tag1=eltime[0].getElementsByTagName("span")
  3285. if (elmissionx[0] || elmissionz[0] || elmissionw[0] || elmissionv[0]) {
  3286. arrival[i]=eltime[0].childNodes[0].nodeValue
  3287. }else {
  3288. arrival[i]=tag1[0].innerHTML
  3289. }
  3290. chargeStatus[i]=0
  3291. if (tag1[1]) {
  3292. if (tag1[1].childNodes[0]) {
  3293. chargeStatus[i]=1
  3294. }
  3295. }
  3296.  
  3297. for (k=0;k<15;k++) {
  3298. tr_unit[i]=new Array()
  3299. }
  3300. }
  3301. ///**** Payload (merci e truppe)
  3302. var el2=new Array()
  3303. var tr_wood=new Array()
  3304. var tr_wine=new Array()
  3305. var tr_marble=new Array()
  3306. var tr_crystal=new Array()
  3307. var tr_sulfur=new Array()
  3308.  
  3309. for (i=0; i<elpay.length; i++) {
  3310. tr_wood[i]=null
  3311. tr_wine[i]=null
  3312. tr_marble[i]=null
  3313. tr_crystal[i]=null
  3314. tr_sulfur[i]=null
  3315. for (k=0;k<15;k++) {
  3316. tr_unit[i][k]=''
  3317. }
  3318.  
  3319. el2[i]=s.serializeToString(elpay[i])
  3320. iwood =el2[i].indexOf(' src="skin/resources/icon_wood.png"',0)
  3321. if (iwood>0) {
  3322. wtr_wood=el2[i].substring(iwood-41,iwood-1)
  3323. iiwood=wtr_wood.indexOf('title="',0)
  3324. tr_wood[i]=wtr_wood.substring(iiwood+7,40)
  3325. }
  3326. iwine =el2[i].indexOf(' src="skin/resources/icon_wine.png"',0)
  3327. if (iwine>0) {
  3328. wtr_wine=el2[i].substring(iwine-31,iwine-1)
  3329. iiwine=wtr_wine.indexOf('title="',0)
  3330. tr_wine[i]=wtr_wine.substring(iiwine+7,30)
  3331. }
  3332. imarble=el2[i].indexOf(' src="skin/resources/icon_marble.png"',0)
  3333. if (imarble>0) {
  3334. wtr_marble=el2[i].substring(imarble-31,imarble-1)
  3335. iimarble=wtr_marble.indexOf('title="',0)
  3336. tr_marble[i]=wtr_marble.substring(iimarble+7,30)
  3337. }
  3338. icrystal=el2[i].indexOf(' src="skin/resources/icon_glass.png"',0)
  3339. if (icrystal>0) {
  3340. wtr_crystal=el2[i].substring(icrystal-31,icrystal-1)
  3341. iicrystal=wtr_crystal.indexOf('title="',0)
  3342. tr_crystal[i]=wtr_crystal.substring(iicrystal+7,30)
  3343. }
  3344. isulfur =el2[i].indexOf(' src="skin/resources/icon_sulfur.png"',0)
  3345. if (isulfur>0) {
  3346. wtr_sulfur=el2[i].substring(isulfur-31,isulfur-1)
  3347. iisulfur=wtr_sulfur.indexOf('title="',0)
  3348. tr_sulfur[i]=wtr_sulfur.substring(iisulfur+7,30)
  3349. }
  3350. //////////*********** payload unità
  3351. for (k=0;k<15;k++) {
  3352. iunit=el2[i].indexOf(' src="'+xArmy[k],0)
  3353. if (iunit>0) {
  3354. wtr_unit=el2[i].substring(iunit-41,iunit-1)
  3355. iiunit=wtr_unit.indexOf('title="',0)
  3356. tr_unit[i][k]=wtr_unit.substring(iiunit+7,40)
  3357. }
  3358. }
  3359. }
  3360.  
  3361. //////////************** Crea una tabella cityNamY (e cityNumY) con le citta' non proprie
  3362.  
  3363. cityNamX=new Array ()
  3364. cityNumX=new Array ()
  3365. cityNamY=new Array ()
  3366. cityNumY=new Array ()
  3367. k=-1
  3368. for (i=0;i<target.length;i++) {
  3369. trov=0
  3370. for (j=0;j<cityName.length;j++) {
  3371. if (target[i]==cityName[j]) {
  3372. trov=1
  3373. break
  3374. }
  3375. }
  3376. if (trov==0) {
  3377. k++
  3378. cityNamX[k]=target[i]
  3379. cityNumX[k]=cityNum[i]
  3380. }
  3381. }
  3382.  
  3383. if (cityNamX.length>0) {
  3384. cityNamY[0]=cityNamX[0]
  3385. cityNumY[0]=cityNumX[0]
  3386. k=0
  3387. }
  3388. for (i=1;i<cityNamX.length;i++) {
  3389. trov=0
  3390. for (j=0;j<i;j++) {
  3391. if (cityNamX[i]==cityNamX[j]) {
  3392. trov=1
  3393. break
  3394. }
  3395. }
  3396. if (trov==0) {
  3397. k++
  3398. cityNamY[k]=cityNamX[i]
  3399. cityNumY[k]=cityNumX[i]
  3400. }
  3401. }
  3402.  
  3403. ////////////********* Crea cityNamY exit
  3404. /////////////************ Loop (-j-) sulle città destinazione
  3405. for(j=0;j<cityName.length+cityNamY.length;j++) {
  3406. if (j<cityName.length) {
  3407. appo=JSON.parse(GM_getValue(document.location.host+"citybuildings"+cityName[j]))
  3408. }else {
  3409. appo=JSON.parse('{"name" : "'+cityNamY[j-cityName.length]+'"}')
  3410. appo.name=cityNamY[j-cityName.length]
  3411. }
  3412. memSource=new Array ()
  3413. memArrival=new Array ()
  3414. memChargeSt=new Array ()
  3415. memMission=new Array ()
  3416. memWood=new Array ()
  3417. memWine=new Array ()
  3418. memMarble=new Array ()
  3419. memCrystal=new Array ()
  3420. memSulfur=new Array ()
  3421. memTime=new Array ()
  3422. memTimeArr=new Array ()
  3423. memUnit=new Array ()
  3424. flag=0
  3425. kk=0
  3426. /////////////********* Loop (-i-) sulle missioni
  3427. for (i=0; i<elpay.length; i++) {
  3428. for (k=0;k<15;k++) {
  3429. memUnit[i]=new Array()
  3430. }
  3431. if (target[i]==cityName[j] || target[i]==cityNamY[j-cityName.length] ) {
  3432.  
  3433. if (target[i]==cityName[j]) {
  3434. flag=1
  3435. }else {
  3436. flag=2
  3437. }
  3438. if (ostile[i]==1) {
  3439. appo.hostile=1
  3440. }
  3441. memSource[kk]=source[i]
  3442. memArrival[kk]=arrival[i]
  3443. memChargeSt[kk]=chargeStatus[i]
  3444. memMission[kk]=mission[i]
  3445. memWood[kk]=tr_wood[i]
  3446. memWine[kk]=tr_wine[i]
  3447. memMarble[kk]=tr_marble[i]
  3448. memCrystal[kk]=tr_crystal[i]
  3449. memSulfur[kk]=tr_sulfur[i]
  3450. stringaTempo (memArrival[kk],myora,mymin,mysec)
  3451. memTime[kk]=parseInt(3600*myora)+parseInt(60*mymin)+parseInt(mysec)
  3452. memTimeArr[kk]=parseInt(CompTime)+parseInt(memTime[kk])
  3453. for (k=0;k<15;k++) {
  3454. memUnit[kk][k]=tr_unit[i][k]
  3455. }
  3456. kk=kk+1
  3457. }
  3458. }
  3459. if (flag>0) {
  3460. if (flag==1) {
  3461. nomevar='citybuildings'+cityName[j]
  3462. }else {
  3463. nomevar='navyout'+cityNamY[j-cityName.length]
  3464. appo.cityIdX=cityNumY[j-cityName.length]
  3465. }
  3466. appo.source=memSource
  3467. appo.arrival=memArrival
  3468. appo.chargeSt=memChargeSt
  3469. appo.mission=memMission
  3470. appo.tr_wood=memWood
  3471. appo.tr_wine=memWine
  3472. appo.tr_marble=memMarble
  3473. appo.tr_crystal=memCrystal
  3474. appo.tr_sulfur=memSulfur
  3475. appo.timeArr=memTimeArr
  3476. appo.tr_unit=memUnit
  3477. myJSONText = JSON.stringify(appo)
  3478. setVar(nomevar,myJSONText)
  3479. }
  3480. }
  3481. }
  3482.  
  3483. }
  3484. //////////////////////////////////////
  3485. //////////////**************************** OTHERS VIEWS *********/////////////////////////////
  3486. if (view != 'finances' && view != 'cityMilitary' && view != 'merchantNavy') {
  3487.  
  3488. JSONcitydata.wood=document.getElementById("js_GlobalMenu_wood").firstChild.nodeValue
  3489. JSONcitydata.wine=document.getElementById("js_GlobalMenu_wine").firstChild.nodeValue
  3490. JSONcitydata.marble=document.getElementById("js_GlobalMenu_marble").firstChild.nodeValue
  3491. JSONcitydata.crystal=document.getElementById("js_GlobalMenu_crystal").firstChild.nodeValue
  3492. JSONcitydata.sulfur=document.getElementById("js_GlobalMenu_sulfur").firstChild.nodeValue
  3493. JSONcitydata.servertime=parseInt(CompTime)
  3494. elupgr=document.getElementById("buildingUpgrade")
  3495. if (elupgr) {
  3496. elh4=elupgr.getElementsByTagName("h4")
  3497. elres=elupgr.getElementsByClassName("resources")
  3498. strNeed=''
  3499. if (elres[0]) {
  3500. strNeed=elh4[0].firstChild.nodeValue+'\n'
  3501. }
  3502. nMat=''
  3503. nMarble=''
  3504. nGlt=''
  3505. nGlass=''
  3506. nSut=''
  3507. nSulfur=''
  3508. nWit=''
  3509. nWine=''
  3510. upbutton=document.getElementById("js_buildingUpgradeButton")
  3511. if (upbutton) {
  3512.  
  3513. nWo=elres[0].getElementsByClassName("wood")
  3514. nWot=nWo[0].title+' : '
  3515. nWood=nWo[0].childNodes[1].nodeValue+ '.....|\n'
  3516.  
  3517. nMa=elres[0].getElementsByClassName("marble")
  3518. if (nMa[0]) {
  3519. nMat=nMa[0].title+' : '
  3520. nMarble=nMa[0].childNodes[1].nodeValue+ '.....|\n'
  3521. }
  3522.  
  3523. nGl=elres[0].getElementsByClassName("glass")
  3524. if (nGl[0]) {
  3525. nGlt=nGl[0].title+' : '
  3526. nGlass=nGl[0].childNodes[1].nodeValue+ '.....|\n'
  3527. }
  3528.  
  3529. nSu=elres[0].getElementsByClassName("sulfur")
  3530. if (nSu[0]) {
  3531. nSut=nSu[0].title+' : '
  3532. nSulfur=nSu[0].childNodes[1].nodeValue+ '.....|\n'
  3533. }
  3534.  
  3535. nWi=elres[0].getElementsByClassName("wine")
  3536. if (nWi[0]) {
  3537. nWit=nWi[0].title+' : '
  3538. nWine=nWi[0].childNodes[1].nodeValue+ '.....|\n'
  3539. }
  3540.  
  3541. nTi=elres[0].getElementsByClassName("time")
  3542. if (nTi[0]) {
  3543. nTit=nTi[0].title+' : '
  3544. nTime=nTi[0].childNodes[1].nodeValue+ '\n'
  3545. }
  3546. }else {
  3547. strNeed='Max Level'
  3548. }
  3549. if (view=='townHall') {
  3550. ipos=0
  3551. }else {
  3552. eldow=elupgr.getElementsByClassName("downgrade")
  3553. elbut=eldow[0].getElementsByClassName("action_btn")
  3554. ix=elbut[0].href.indexOf('position=',0)
  3555. iy=elbut[0].href.indexOf('&',ix)
  3556. ipos=elbut[0].href.substring(ix+9,iy)
  3557. }
  3558. if (JSONcitydata.tipLevel && upbutton) {
  3559. JSONcitydata.tipLevel[ipos].upStr=strNeed
  3560. JSONcitydata.tipLevel[ipos].upWood=nWot+nWood
  3561. JSONcitydata.tipLevel[ipos].upMarble=nMat+nMarble
  3562. JSONcitydata.tipLevel[ipos].upGlass=nGlt+nGlass
  3563. JSONcitydata.tipLevel[ipos].upSulfur=nSut+nSulfur
  3564. JSONcitydata.tipLevel[ipos].upWine=nWit+nWine
  3565. JSONcitydata.tipLevel[ipos].upTime=nTit+nTime
  3566. }else {
  3567. JSONcitydata.tipLevel[ipos].upStr=strNeed
  3568. }
  3569. }
  3570. ////************** CENTRO CITTA' **************////
  3571. if (view == 'townHall') {
  3572. JSONcitydata.PopulationGrowth=document.getElementById("js_TownHallPopulationGrowthValue").firstChild.nodeValue
  3573. JSONcitydata.servertimeGrowth=JSONcitydata.servertime
  3574. JSONcitydata.MaxInhabitants=document.getElementById("js_TownHallMaxInhabitants").firstChild.nodeValue
  3575. }
  3576. var myJSONText = JSON.stringify(JSONcitydata)
  3577. var JSONcity = JSON.parse(myJSONText)
  3578. setVar("citybuildings"+currentCity,myJSONText)
  3579. }
  3580. ////////////////////********* MAGAZZINI *************///////////////////////////
  3581. if (view=='warehouse'){
  3582. xsafe=document.getElementsByClassName("capacitiesTableResult")
  3583. JSONcitydata.xsafe=xsafe[0].childNodes[3].innerHTML
  3584. myJSONText = JSON.stringify(JSONcitydata)
  3585. JSONcity = JSON.parse(myJSONText)
  3586. setVar("citybuildings"+currentCity,myJSONText)
  3587. }
  3588. ///////////////////************** PORTI **************/////////////////////////////////////
  3589. if (view=='port'){
  3590. chtime=document.getElementById("js_loadingSpeedSumValue")
  3591. JSONcitydata.chtime=chtime.childNodes[0].nodeValue
  3592. myJSONText = JSON.stringify(JSONcitydata)
  3593. JSONcity = JSON.parse(myJSONText)
  3594. setVar("citybuildings"+currentCity,myJSONText)
  3595. }
  3596. /////////////////////************* ACCADEMIA *******************///////////////////////////////
  3597. if (view=='academy') {
  3598. elmac=document.getElementsByClassName("scientists")
  3599. elmac1=document.getElementById("valueWorkers")
  3600. elmac2=document.getElementById("valueResearch")
  3601. elmac3=document.getElementsByClassName("timeUnit")
  3602. JSONcitydata.scientists=elmac[0].firstChild.nodeValue+' '+elmac1.firstChild.nodeValue+
  3603. ';\n'+trad(ctry,'Research')+': '+elmac2.firstChild.nodeValue+' '+elmac3[0].firstChild.nodeValue
  3604. myJSONText = JSON.stringify(JSONcitydata)
  3605. JSONcity = JSON.parse(myJSONText)
  3606. setVar("citybuildings"+currentCity,myJSONText)
  3607. }
  3608. //////////////////************** MUSEO ****************************////////////////////////////////
  3609. if (view=='museum') {
  3610. elmuse0=document.getElementsByClassName("goods")
  3611. elmuse1=elmuse0[0].getElementsByTagName("p")
  3612. strMus=s.serializeToString(elmuse1[0])
  3613. ix=strMus.indexOf('>',0)
  3614. iy=strMus.indexOf('<',ix)
  3615. strMus1=strMus.substring(ix+1,iy).trim()
  3616. ix=strMus.indexOf('/span>',0)
  3617. iy=strMus.indexOf('/span>',ix+1)
  3618. strMus2=strMus.substring(ix+6,iy-1).trim()
  3619. JSONcitydata.museum=strMus1+' '+strMus2
  3620. myJSONText = JSON.stringify(JSONcitydata)
  3621. JSONcity = JSON.parse(myJSONText)
  3622. setVar("citybuildings"+currentCity,myJSONText)
  3623. }
  3624. //////////////////************** TAVERNA ****************************////////////////////////////////
  3625. if (view=='tavern') {
  3626. /*
  3627. eltave0=document.getElementsByClassName("dropDownButton")
  3628. strTave=eltave0[1]
  3629. strTave1=strTave.getElementsByTagName("a")
  3630. strTave2=strTave1[0].firstChild.nodeValue
  3631. */
  3632. eltavm=document.getElementById("wineAmount")
  3633. eltavm1=eltavm.getElementsByTagName("option")
  3634. eltavm2=eltavm1[eltavm1.length-1]
  3635. strTave3=eltavm2.firstChild.nodeValue
  3636. strTave4='\n(max = '+strTave3+')'
  3637. ix=strTave3.indexOf(' ',0)
  3638. strTave2=cityReduxUse[currentI]+' '+strTave3.substring(ix+1,strTave3.length)
  3639. JSONcitydata.tavern=strTave2+strTave4
  3640. myJSONText = JSON.stringify(JSONcitydata)
  3641. JSONcity = JSON.parse(myJSONText)
  3642. setVar("citybuildings"+currentCity,myJSONText)
  3643. }
  3644. //////////////////************** NASCONDIGLIO ****************************////////////////////////////////
  3645. if (view=='safehouse') {
  3646. JSONcitydata.movespy=null
  3647. JSONcitydata.arrspy=null
  3648. elspy=document.getElementsByClassName("spyinfo")
  3649. if (elspy[0]) {
  3650. tipspy=new Array()
  3651. arrspy=new Array()
  3652. sep=''
  3653. for (i=0;i<elspy.length;i++) {
  3654. if (i>0) {
  3655. sep='\n---------------------------\n'
  3656. }
  3657. strspy1=elspy[i].getElementsByClassName("city")[0].innerHTML
  3658. strspy2=elspy[i].getElementsByTagName("li")[1].innerHTML
  3659. strspy3=elspy[i].getElementsByClassName("status")[0].innerHTML
  3660. eltime=elspy[i].getElementsByClassName("time")[0].childNodes[2].nodeValue
  3661. /// replace per trim
  3662. tipspy[i]=sep+strspy2+' - '+strspy3+' - \n'+'==> '+strspy1.replace(/^\s+|\s+$/g,"")+' : '+eltime.replace(/^\s+|\s+$/g,"")+';'
  3663.  
  3664. strTempoExt (eltime,myday,myora,mymin,mysec)
  3665. aptime=parseInt(86400*myday)+parseInt(3600*myora)+parseInt(60*mymin)+parseInt(mysec)
  3666. arrspy[i]=parseInt(CompTime)+parseInt(aptime)
  3667. }
  3668.  
  3669. JSONcitydata.movespy=tipspy
  3670. JSONcitydata.arrspy=arrspy
  3671.  
  3672. }
  3673. myJSONText = JSON.stringify(JSONcitydata)
  3674. JSONcity = JSON.parse(myJSONText)
  3675. setVar("citybuildings"+currentCity,myJSONText)
  3676. }
  3677. //////////////////************** OFFICINA ****************************////////////////////////////////
  3678. if (view=='workshop') {
  3679. JSONcitydata.Office=null
  3680. JSONcitydata.OfficeT=null
  3681. JSONcitydata.OfficeX=null
  3682. work0=document.getElementById("upgradeCountdown")
  3683. if (work0) {
  3684. work1=work0.parentNode.parentNode
  3685. arma=work1.firstChild.nodeValue.trim()
  3686. work2=work1.getElementsByTagName("p")
  3687. upgr=work2[0].firstChild.nodeValue
  3688. work3=s.serializeToString(document.getElementById("upgradeProgress"))
  3689. xpos=work3.indexOf("width: ",1)
  3690. ypos=work3.indexOf("%",xpos)
  3691. perc=work3.substring(xpos+7,ypos)
  3692. work4=work1.parentNode.parentNode.parentNode.parentNode
  3693. ww=s.serializeToString(work4)
  3694. //alert(ww)
  3695. xpos=ww.indexOf('div title="',1)
  3696. ypos=ww.indexOf('"',xpos+11)
  3697. unit=ww.substring(xpos+11,ypos)
  3698. ore=work4.getElementsByTagName("li")[2].innerHTML.replace('h','')
  3699. restime=parseInt(3600*ore*(1-perc/100))
  3700. artime=parseInt(CompTime)+restime
  3701. restim=tempoNorm(restime)
  3702. JSONcitydata.Office=unit+' : '+arma+'; '+upgr+'\n==> '+restim+' ('+parseInt(perc)+'%)'
  3703. JSONcitydata.OfficeT=artime
  3704. JSONcitydata.OfficeX=ore
  3705. }
  3706.  
  3707. myJSONText = JSON.stringify(JSONcitydata)
  3708. JSONcity = JSON.parse(myJSONText)
  3709. setVar("citybuildings"+currentCity,myJSONText)
  3710. }
  3711. //////////////////************** CASERMA o CANTIERE NAVALE ****************************///////////////
  3712. if (view=='barracks' || view=='shipyard') {
  3713. if (view=='barracks') {
  3714. JSONcitydata.upArmy=null
  3715. JSONcitydata.upArmyT=null
  3716. JSONcitydata.upArmyX=null
  3717. }else {
  3718. JSONcitydata.SupArmy=null
  3719. JSONcitydata.SupArmyT=null
  3720. JSONcitydata.SupArmyX=null
  3721. }
  3722.  
  3723. elclist=document.getElementById("unitConstructionList")
  3724. if (elclist) {
  3725. elclist1=elclist.childNodes[1].innerHTML.replace(':','') ///"In costruzione :"
  3726. elcarmyT=elclist.getElementsByClassName("army_wrapper")
  3727. elcarmyN=elclist.getElementsByClassName("unitcounttextlabel")
  3728. elctime=document.getElementById("buildCountDown")
  3729. elcbloc=elclist.getElementsByClassName("constructionBlock")
  3730. elcperc=document.getElementById("buildProgress").title
  3731. elclist1=elclist1+'('+elcperc+')'
  3732. elcperc=1-elcperc.replace('%','')/100
  3733. elctim=elctime.innerHTML
  3734. strTempoExt (elctim,myday,myora,mymin,mysec)
  3735. aptime=parseInt(86400*myday)+parseInt(3600*myora)+parseInt(60*mymin)+parseInt(mysec)
  3736. totime=parseInt(aptime/elcperc)
  3737. arTime=new Array()
  3738. arTime[0]=parseInt(CompTime)+parseInt(aptime)
  3739. lqueue=0
  3740. if (elcbloc) {
  3741. strbloc=''
  3742. for (i=0;i<elcbloc.length;i++) {
  3743. h4=elcbloc[i].getElementsByTagName("h4")
  3744. xspan=h4[0].getElementsByTagName("span")
  3745. qdes=h4[0].firstChild.nodeValue //"In coda - n"
  3746. qtime=xspan[0].firstChild.nodeValue //Tempo di coda
  3747. strTempoExt (qtime,myday,myora,mymin,mysec)
  3748. aptime=parseInt(86400*myday)+parseInt(3600*myora)+parseInt(60*mymin)+parseInt(mysec)
  3749. arTime[i+1]=parseInt(CompTime)+parseInt(aptime)
  3750. elbarmyT=elcbloc[i].getElementsByClassName("army_wrapper")
  3751. elbarmyN=elcbloc[i].getElementsByClassName("unitcounttextlabel")
  3752. strbarm=''
  3753. for (j=0;j<elbarmyT.length;j++) {
  3754. lqueue++
  3755. elbarmT=elbarmyT[j].title
  3756. elbarmN=elbarmyN[j].firstChild.nodeValue+';'
  3757. strbarm+=elbarmT+' : '+elbarmN+'\n'
  3758. }
  3759. strbloc+='---------------------------\n'+qdes+'==>\n'+qtime+';\n'+strbarm
  3760. }
  3761. }
  3762. strcarm=''
  3763. for (i=0;i<elcarmyT.length-lqueue;i++) {
  3764. elcarmT=elcarmyT[i].title
  3765. elcarmN=elcarmyN[i].firstChild.nodeValue+';'
  3766. strcarm+=elcarmT+' : '+elcarmN+'\n'
  3767. }
  3768.  
  3769. if (view=='barracks') {
  3770. JSONcitydata.upArmy=elclist1+' ==> '+elctim+';\n'+strcarm+strbloc
  3771. JSONcitydata.upArmyT=arTime
  3772. JSONcitydata.upArmyX=totime
  3773. }else {
  3774. JSONcitydata.SupArmy=elclist1+' ==> '+elctim+';\n'+strcarm+strbloc
  3775. JSONcitydata.SupArmyT=arTime
  3776. JSONcitydata.SupArmyX=totime
  3777. }
  3778.  
  3779. }
  3780. myJSONText = JSON.stringify(JSONcitydata)
  3781. JSONcity = JSON.parse(myJSONText)
  3782. setVar("citybuildings"+currentCity,myJSONText)
  3783. }
  3784. ////////////////////**************** FORTEZZA PIRATA **************///////////////////////////////
  3785. if (view=='pirateFortress') {
  3786. JSONcitydata.Piracy=null
  3787. JSONcitydata.PiracyT=null
  3788. elpira=document.getElementsByClassName("pirateHeader")
  3789. elpoint=elpira[0].getElementsByClassName("capturePoints")[0]
  3790. tpoint=elpira[0].getElementsByClassName("textLabel")[0].innerHTML
  3791. ppoint=elpira[0].getElementsByClassName("value")[0].innerHTML
  3792. tequip=elpira[0].getElementsByClassName("textLabel")[1].innerHTML
  3793. pequip=elpira[0].getElementsByClassName("value")[6].innerHTML
  3794. ntime=elpira[0].getElementsByClassName("time")[0]
  3795. ttime=ntime.getElementsByClassName("textLabel")[0].innerHTML
  3796. ptime=ntime.getElementsByClassName("value")[0].innerHTML
  3797. strTempoExt (ptime,myday,myora,mymin,mysec)
  3798. aptime=parseInt(86400*myday)+parseInt(3600*myora)+parseInt(60*mymin)+parseInt(mysec)
  3799. artime=parseInt(CompTime)+aptime
  3800. restim=tempoNorm(aptime)
  3801. JSONcitydata.Piracy=tpoint+' '+ppoint+'\n'+tequip+' '+pequip+'\n'+ttime+' ==> '+ptime+';'
  3802. JSONcitydata.PiracyT=artime
  3803. myJSONText = JSON.stringify(JSONcitydata)
  3804. JSONcity = JSON.parse(myJSONText)
  3805. setVar("citybuildings"+currentCity,myJSONText)
  3806. }
  3807. ////////////////////**************** RESEARCH ADVISOR **************///////////////////////////////
  3808. if (view=='researchAdvisor') {
  3809. elrese=document.getElementById("js_researchAdvisorScientists")
  3810. if (elrese) {
  3811. elreset=document.getElementsByClassName("scientists")
  3812. elrese1=document.getElementById("js_researchAdvisorPoints")
  3813. elrese1t=document.getElementsByClassName("points")
  3814. elrese2=document.getElementById("js_researchAdvisorTime")
  3815. elrese2t=document.getElementsByClassName("time")
  3816. resdata=elreset[0].firstChild.nodeValue+' '+elrese.firstChild.nodeValue+ ';\n'+
  3817. elrese1t[0].firstChild.nodeValue+' '+elrese1.firstChild.nodeValue+ ';\n'+
  3818. elrese2t[0].firstChild.nodeValue+' '+elrese2.firstChild.nodeValue
  3819. setVar ("research",resdata)
  3820. setVar ("timeRes",a0(CompTime)+'"')
  3821. }
  3822. }
  3823. ////////////////////**************** FALEGNAMERIA e CAVE **************///////////////////////////////
  3824. if (view=='resource' || view=='tradegood') {
  3825. elrich=document.getElementsByClassName("dynamic resUpgrade")
  3826. elliv1=elrich[0].getElementsByTagName("p")[0].firstChild.nodeValue
  3827. elliv2=elrich[0].getElementsByTagName("p")[1].firstChild.nodeValue
  3828. elric1=elrich[0].getElementsByTagName("h4")[0].firstChild.nodeValue
  3829. //quando è in upgrading
  3830. /*
  3831. <div class="headline bold center is_upgrading margin10">Wird ausgebaut!</div>
  3832. <h4 class="bold center">Nächste Stufe: 6</h4>
  3833. <div class="progressbar margin10center"><div class="bar" id="upgradeProgress" title="17%" style="width: 17%;"></div></div>
  3834. <div class="center" id="upgradeCountDown">1h 16m</div>
  3835. */
  3836. finishx='0'
  3837. elupd1=''
  3838. totime=''
  3839. if (elrich[0].getElementsByTagName("li")[0]) {
  3840. elric2=elrich[0].getElementsByTagName("li")[0].firstChild.nodeValue
  3841. eldis1=elrich[0].getElementsByTagName("h4")[1].firstChild.nodeValue
  3842. eldis2=elrich[0].getElementsByTagName("li")[1].firstChild.nodeValue
  3843. string0=elliv1+'==> '+elliv2+'\n'+elric1+'==> '+elric2+'\n'+eldis1+'==> '+eldis2+'\n'+'-----------------------------\n'
  3844. }else {
  3845. elupd1=document.getElementById("upgradeProgress").title
  3846. elupd2=document.getElementById("upgradeCountDown").firstChild.nodeValue
  3847. strTempoExt (elupd2,myday,myora,mymin,mysec)
  3848. aptime=parseInt(86400*myday)+parseInt(3600*myora)+parseInt(60*mymin)+parseInt(mysec)
  3849. finishx=parseInt(CompTime)+parseInt(aptime)
  3850. perc=1-elupd1.replace('%','')/100
  3851. totime=parseInt(aptime/perc)
  3852. string0=elliv1+'==> '+elliv2+'\n'+elric1+'\n'+xSp1+elupd1+' ==> '+'['+elupd2+']\n'+'-----------------------------\n'
  3853. }
  3854.  
  3855. elreso=document.getElementById("resourceUsers")
  3856. eluser=elreso.getElementsByClassName("ownerName")
  3857. inumb=eluser.length
  3858. if (inumb>1) {
  3859. eltown=elreso.getElementsByClassName("cityName")
  3860. elleve=elreso.getElementsByClassName("cityLevel")
  3861. elwork=elreso.getElementsByClassName("cityWorkers")
  3862. eldona=elreso.getElementsByClassName("ownerDonation")
  3863. user=new Array()
  3864. town=new Array()
  3865. leve=new Array()
  3866. work=new Array()
  3867. dona=new Array()
  3868. umax=tmax=lmax=wmax=dmax=0
  3869. //campo=new Array(20).join("0").concat('oiu') //prova padding
  3870. //alert (campo)
  3871. for (i=0;i<inumb;i++) {
  3872. user[i]=eluser[i].innerHTML
  3873. if (user[i]=='&nbsp;') {
  3874. user[i]=user[i-1]
  3875. }
  3876. town[i]=eltown[i].firstChild.nodeValue
  3877. leve[i]=elleve[i].firstChild.nodeValue
  3878. work[i]=elwork[i].firstChild.nodeValue
  3879. if (eldona[i].firstChild) {
  3880. dona[i]=eldona[i].firstChild.nodeValue
  3881. }else {
  3882. dona[i]='******'
  3883. }
  3884. if (umax<user[i].length) {umax=user[i].length}
  3885. if (tmax<town[i].length) {tmax=town[i].length}
  3886. if (lmax<leve[i].length) {lmax=leve[i].length}
  3887. if (wmax<work[i].length) {wmax=work[i].length}
  3888. if (dmax<dona[i].length) {dmax=dona[i].length}
  3889. }
  3890. string=string1=''
  3891. for (i=0;i<inumb;i++) {
  3892. string1+=user[i]+' -'+new Array(umax+1-user[i].length).join(xSp1)+
  3893. town[i]+' -'+new Array(tmax+1-town[i].length).join(xSp1)+
  3894. leve[i]+' -'+new Array(lmax+2-leve[i].length).join(xSp1)+
  3895. work[i]+new Array(wmax+2-work[i].length).join(xSp1)+
  3896. '==> '+dona[i]+'\n' //new Array(dmax+3-dona[i].length).join(xSp1)+'\n'
  3897. }
  3898. setVar(view+JSONcitys[currentI].islandId,string0+string1+'finish='+finishx+'|'+elupd1+totime)
  3899. }
  3900. }
  3901. //////////////////////////////////////******** MILITARY ADVISOR ***********/////////////////////////////
  3902. if (view=='militaryAdvisor') {
  3903.  
  3904. //////// Inizializza le missioni
  3905. for(i=0;i<cityName.length;i++){
  3906. appo=JSON.parse(GM_getValue(document.location.host+"citybuildings"+cityName[i]))
  3907. appo.sourceN=null
  3908. appo.arrivalN=null
  3909. appo.missionN=null
  3910. appo.chargeStN=null
  3911. appo.Units=null
  3912. appo.TipNavy=null
  3913. appo.NumNavy=null
  3914. appo.NumShip=null
  3915. appo.timeArrN=null
  3916. appo.friend=null
  3917. appo.hostile=null
  3918.  
  3919. myJSONText = JSON.stringify(appo)
  3920. setVar("citybuildings"+cityName[i],myJSONText)
  3921. }
  3922. ///// cancella le citta' non proprie
  3923. GMlista=GM_listValues ()
  3924. strDel=document.location.host+'armyout'
  3925.  
  3926. for (i=0;i<GMlista.length;i++) {
  3927. if (GMlista[i].indexOf(strDel,0)>=0) {
  3928. GM_deleteValue(GMlista[i])
  3929. }
  3930. }
  3931. wcountArmy=new Array ()
  3932. for (var k = 0; k < 26; k++) {
  3933. wcountArmy[k]=0
  3934. }
  3935. ////////////////// check missioni
  3936. elnavy=document.getElementsByClassName("mission_icon deployfleet")
  3937. elarmy=document.getElementsByClassName("mission_icon deployarmy")
  3938. eldefen=document.getElementsByClassName("mission_icon defend_port")
  3939. eldefci=document.getElementsByClassName("mission_icon defend")
  3940. elblock=document.getElementsByClassName("mission_icon blockade")
  3941. elplund=document.getElementsByClassName("mission_icon plunder")
  3942. eloccup=document.getElementsByClassName("mission_icon occupy")
  3943. elpraid=document.getElementsByClassName("mission_icon piracyRaid")
  3944.  
  3945. if (elnavy && elnavy[0] != null ||
  3946. elarmy && elarmy[0] != null ||
  3947. eldefen && eldefen[0] != null ||
  3948. eldefci && eldefci[0] != null ||
  3949. elblock && elblock[0] != null ||
  3950. elplund && elplund[0] != null ||
  3951. eloccup && eloccup[0] != null
  3952. || elpraid && elpraid[0]
  3953. ) {
  3954.  
  3955. strNavy= new Array()
  3956. arrival=new Array()
  3957. chargeStN=new Array()
  3958. units=new Array()
  3959. source=new Array()
  3960. cityNum=new Array()
  3961. target=new Array()
  3962. elMission=new Array()
  3963. NumNavy=new Array()
  3964. strN=new Array()
  3965. len1=elnavy.length //distribuisci flotta
  3966. len2=len1+elarmy.length //distribuisci esercito
  3967. len3=len2+eldefen.length //difendi porto
  3968. len4=len3+eldefci.length //difendi città
  3969. len5=len4+elblock.length //blocca porto
  3970. len6=len5+elplund.length //saccheggia
  3971. len7=len6+eloccup.length //occupa città
  3972. len8=len7+elpraid.length //raid pirata
  3973. for (i=0;i<len8;i++) {
  3974. chargeStN[i]=0
  3975. if (i<len1) {
  3976. elmiss=elnavy[i].parentNode.parentNode
  3977. }else {
  3978. if (i<len2) {
  3979. elmiss=elarmy[i-len1].parentNode.parentNode
  3980. }else {
  3981. if (i<len3) {
  3982. elmiss=eldefen[i-len2].parentNode.parentNode
  3983. }else {
  3984. if (i<len4) {
  3985. elmiss=eldefci[i-len3].parentNode.parentNode
  3986. }else {
  3987. if (i<len5) {
  3988. elmiss=elblock[i-len4].parentNode.parentNode
  3989. }else {
  3990. if (i<len6) {
  3991. elmiss=elplund[i-len5].parentNode.parentNode
  3992. }else {
  3993. if (i<len7) {
  3994. elmiss=eloccup[i-len6].parentNode.parentNode
  3995. }else {
  3996. elmiss=elpraid[i-len7].parentNode.parentNode
  3997. }
  3998. }
  3999. }
  4000. }
  4001. }
  4002. }
  4003. }
  4004. strNavy[i]=s.serializeToString(elmiss)
  4005. /////////////////************************** tempo di arrivo (arrival)
  4006. ix=strNavy[i].indexOf('ArrivalTime',0)
  4007. iy=strNavy[i].indexOf('"',ix)
  4008. ix=strNavy[i].indexOf('id="',ix-42)
  4009. evid=strNavy[i].substring(ix+4,iy)
  4010. arrival[i]=document.getElementById(evid).firstChild.nodeValue
  4011. /////////////////************************** Unità generiche (units)
  4012. ix=strNavy[i].indexOf('Units',0)
  4013. if (ix==-1) {
  4014. units[i]='------'
  4015. }else {
  4016. iy=strNavy[i].indexOf('</div>',ix)
  4017. units[i]=strNavy[i].substring(ix+7,iy)
  4018. }
  4019.  
  4020. /////////////////************************** Città di partenza (source)
  4021. ix=strNavy[i].indexOf('OriginLink',0)
  4022. iy=strNavy[i].indexOf('>',ix)
  4023. iz=strNavy[i].indexOf('<',iy)
  4024. source[i]=strNavy[i].substring(iy+1,iz)
  4025. ////**************** Stato ("caricamento","in corso",o "annullato)
  4026. arrow=elmiss.getElementsByClassName("mission arrow_right")
  4027. if (arrow[0]) {
  4028. chargeStN[i]=1
  4029. }else {
  4030. arrow=elmiss.getElementsByClassName("mission arrow_left_green")
  4031. if (arrow[0]) {
  4032. chargeStN[i]=3
  4033. }
  4034. }
  4035. /////////////////************************** Città e Id di arrivo (target e cityNum)
  4036. ix=strNavy[i].indexOf('TargetLink',0)
  4037. if (ix==-1) {
  4038. target[i]='?????'
  4039. cityNum[i]='!!!!!'
  4040. }else {
  4041. iy=strNavy[i].indexOf('>',ix)
  4042. iz=strNavy[i].indexOf('<',iy)
  4043. target[i]=strNavy[i].substring(iy+1,iz)
  4044.  
  4045. ix=ix-70
  4046. iy=strNavy[i].indexOf('cityId=',ix)
  4047. iz=strNavy[i].indexOf('"',iy)
  4048. cityNum[i]=strNavy[i].substring(iy+7,iz)
  4049. }
  4050. /////////////////************************** Nome missione (elMission)
  4051. ix=strNavy[i].indexOf('Mission"',0)
  4052. iy=strNavy[i].indexOf('OriginAvatar',0)
  4053. iz=strNavy[i].indexOf('js_Military',iy)
  4054. idMission=strNavy[i].substring(iz,ix+7)
  4055. elMission[i]=document.getElementById(idMission).title
  4056. /////////////////*********************** Nome e numero delle unità di dettaglio (strN e NumNavy)
  4057. ix=strNavy[i].indexOf('UnitDetails',0)
  4058. iy=strNavy[i].indexOf('Tooltip"',0)
  4059. iz=strNavy[i].indexOf('js_Military',iy)
  4060. idDetail=strNavy[i].substring(iz,ix+11)
  4061. NumNavy[i]=new Array()
  4062. strN[i]=new Array()
  4063. elDetail=document.getElementById(idDetail)
  4064. if (elDetail) {
  4065. collection=elDetail.childNodes
  4066.  
  4067. for (k=0;k<collection.length;k++) {
  4068. strN0=s.serializeToString(elDetail.childNodes[k])
  4069. ix=strN0.indexOf('class=',0)
  4070. iy=strN0.indexOf('">',ix)
  4071. strN[i][k]=strN0.substring(ix+7,iy)
  4072. strN[i][k]=strN[i][k].replace('unit_detail_icon floatleft icon40 bold center ','')
  4073. NumNavy[i][k]=elDetail.childNodes[k].innerHTML
  4074. }
  4075. }else {
  4076. NumNavy[i]='??'
  4077. strN[i]='?????'
  4078. }
  4079. }
  4080. ///////////////////////************ Fine loop sulle missioni
  4081.  
  4082.  
  4083. //////////************** Crea una tabella cityNamY (e cityNumY) con le citta' non proprie
  4084.  
  4085. target0=new Array ()
  4086. cityNum0=new Array ()
  4087. cityNamX=new Array ()
  4088. cityNumX=new Array ()
  4089. cityNamY=new Array ()
  4090. cityNumY=new Array ()
  4091. /// il deployfleet può andare al contrario a partire da un porto occupato
  4092. /// in quel caso un città non propria (target di ritorno) può ricadere prima di len2
  4093. ///pertanto si sostituiscono le istruzioni che seguono (tenere sotto controllo)
  4094. /*
  4095. for (i=0;i<len7-len2;i++) {
  4096. target0[i]=target[i+len2]
  4097. cityNum0[i]=cityNum[i+len2]
  4098. }
  4099. */
  4100. for (i=0;i<len8;i++) {
  4101. target0[i]=target[i]
  4102. cityNum0[i]=cityNum[i]
  4103. }
  4104.  
  4105. if (target0.length>0) {
  4106. cityNamX[0]=target0[0]
  4107. cityNumX[0]=cityNum0[0]
  4108. k=0
  4109. }
  4110. for (i=1;i<target0.length;i++) {
  4111. trov=0
  4112. for (j=0;j<i;j++) {
  4113. if (target0[i]==cityNamX[j]) {
  4114. trov=1
  4115. break
  4116. }
  4117. }
  4118. if (trov==0) {
  4119. k++
  4120. cityNamX[k]=target0[i]
  4121. cityNumX[k]=cityNum[i]
  4122. }
  4123. }
  4124. //// qualche città propria potrebbe trovarsi tra len2 e len4 : la si elimina copiando da cityNamX a cityNamY
  4125. k=-1
  4126. for (i=0;i<cityNamX.length;i++) {
  4127. trov=0
  4128. for (j=0;j<cityName.length;j++) {
  4129. if (cityNamX[i]==cityName[j]) {
  4130. trov=1
  4131. break
  4132. }
  4133. }
  4134. if (trov==0) {
  4135. k++
  4136. cityNamY[k]=cityNamX[i]
  4137. cityNumY[k]=cityNumX[i]
  4138. }
  4139. }
  4140.  
  4141. ////////////********* Crea cityNamY exit
  4142.  
  4143. ////////////****** Loop (-j-) sulle città, proprie e non, di destinazione delle missioni
  4144.  
  4145. for(j=0;j<cityName.length+cityNamY.length;j++) {
  4146. if (j<cityName.length) {
  4147. appo=JSON.parse(GM_getValue(document.location.host+"citybuildings"+cityName[j]))
  4148. }else {
  4149. appo=JSON.parse('{"name" : "'+cityNamY[j-cityName.length]+'"}')
  4150. appo.name=cityNamY[j-cityName.length]
  4151. }
  4152. memSource=new Array ()
  4153. memUnits=new Array ()
  4154. memNumUnit=new Array ()
  4155. memTipUnit=new Array ()
  4156. memNumShip=new Array ()
  4157. memArrival=new Array ()
  4158. memChargeStN=new Array ()
  4159. memMission=new Array ()
  4160. memTime=new Array ()
  4161. memTimeArr=new Array ()
  4162. flag=0
  4163. kk=0
  4164. ////////////******** Loop (-i-) sulle missioni verso ciascuna città
  4165.  
  4166. for (i=0; i<len8; i++) {
  4167. for (k=0;k<26;k++) {
  4168. memNumUnit[i]=new Array ()
  4169. memTipUnit[i]=new Array ()
  4170. }
  4171. if (target[i]==cityName[j] || target[i]==cityNamY[j-cityName.length] ) {
  4172.  
  4173. if (target[i]==cityName[j]) {
  4174. flag=1
  4175. }else {
  4176. flag=2
  4177. }
  4178. if (i<len4) {
  4179. appo.friend=1 /// attività amichevoli
  4180. }else {
  4181. appo.hostile=1 /// attività ostili
  4182. }
  4183. memSource[kk]=source[i]
  4184. memUnits[kk]=units[i]
  4185. memArrival[kk]=arrival[i]
  4186. memChargeStN[kk]=chargeStN[i]
  4187. memMission[kk]=elMission[i]
  4188. stringaTempo (memArrival[kk],myora,mymin,mysec)
  4189. memTime[kk]=parseInt(3600*myora)+parseInt(60*mymin)+parseInt(mysec)
  4190. memTimeArr[kk]=parseInt(CompTime)+parseInt(memTime[kk])
  4191. if (strN[i][0]=='ship_transport') {
  4192. memNumShip[kk]=NumNavy[i][0]
  4193. }
  4194. ////***** Loop (-k-) sulle unità di dettaglio di ciascuna missione
  4195. for (k=0;k<26;k++) {
  4196. //// indice dell'unità in viaggio
  4197. if (strN[i][k]>' ' && strN[i][k] !='ship_transport') {
  4198. mm=tindex(strN[i][k])
  4199. memNumUnit[kk][mm]=NumNavy[i][k]
  4200. memTipUnit[kk][mm]=strN[i][k]
  4201. }
  4202. }
  4203. kk=kk+1
  4204. }
  4205. }
  4206.  
  4207. if (flag>0) {
  4208. if (flag==1) {
  4209. nomevar='citybuildings'+cityName[j]
  4210. }else {
  4211. nomevar='armyout'+cityNamY[j-cityName.length]
  4212. appo.cityIdX=cityNumY[j-cityName.length]
  4213. appo.countArmy=wcountArmy
  4214. }
  4215. appo.sourceN=memSource
  4216. appo.Units=memUnits
  4217. appo.arrivalN=memArrival
  4218. appo.chargeStN=memChargeStN
  4219. appo.missionN=memMission
  4220. appo.timeArrN=memTimeArr
  4221. appo.NumNavy=memNumUnit
  4222. appo.NumShip=memNumShip
  4223. appo.TipNavy=memTipUnit
  4224. myJSONText = JSON.stringify(appo)
  4225. setVar(nomevar,myJSONText)
  4226. }
  4227. }
  4228. }
  4229. }
  4230.  
  4231. //////////////////////////////
  4232.  
  4233. /////////////******************************** FINANCES ********************////////////////////////
  4234.  
  4235. if (view =='finances') {
  4236.  
  4237. var element=document.getElementById("finances");
  4238. var el1=element.getElementsByClassName("table01 border upkeepReductionTable")
  4239. var el2=el1[2]
  4240.  
  4241. var el2Str = s.serializeToString(el2)
  4242. var in1=el2Str.indexOf('"hidden bold"',0)
  4243. var in2=el2Str.indexOf('<',in1)
  4244. var goldHour=el2Str.substr(in1+14,in2-in1-14)
  4245. if (!goldHour) {
  4246. in2=el2Str.indexOf('<',in1+15)
  4247. goldHour=el2Str.substr(in1+37,in2-in1-37)}
  4248.  
  4249. // ZONA TEST
  4250. /*
  4251. xCSS='@import "http://' + document.location.host + '/skin/compiled-it-island-0.5.1.1.css"'
  4252. insCSS(xCSS)
  4253. getHead = document.getElementsByTagName("HEAD")[0];
  4254. alert(s.serializeToString(getHead))
  4255. //GM_log (JSON.stringify(JSONcitydata))
  4256. //*** per i test su xmlhttpRequest
  4257. //GM_xmlhttpRequest({
  4258. // method: "GET",
  4259. //url: "http://s3.it.ikariam.com/index.php?view=city&oldBackgroundView=city&mainbox_x=274&mainbox_y=0&mainbox_z=5&sidebar_x=45&sidebar_y=0&sidebar_z=170&containerWidth=1037px&containerHeight=889px&worldviewWidth=1037px&worldviewHeight=843px&cityTop=-180px&cityLeft=-1933px&cityRight=&cityWorldviewScale=0.8/",
  4260. // onload: function(response) {
  4261. // GM_log(response.responseText)
  4262. // alert(response.responseText);
  4263. // }
  4264. //})
  4265.  
  4266.  
  4267. // per i test sul parser
  4268. var strXml= '<tr>aaaa</tr><tr>bbbbbbbbbbbbb</tr>'
  4269. var parser = new DOMParser();
  4270. var docu = parser.parseFromString(strXml, "application/xml")
  4271. str=s.serializeToString(docu) //.childNodes[1].childNodes[2])
  4272. alert (str)
  4273. */
  4274. // FINE ZONA TEST
  4275. banner = (element.childNodes[1].childNodes[1].childNodes[0].childNodes[0]); //check for add_banner above table
  4276. b=0;
  4277. if(banner){ // if banner all nodes are shifted 2 up
  4278. b=1;
  4279. }
  4280. for(i=0;i<cityName.length;i++){
  4281. var test = GM_getValue(document.location.host+"citybuildings"+cityName[i]);
  4282. if(test) {
  4283. JSONcitys[i]=JSON.parse(GM_getValue(document.location.host+"citybuildings"+cityName[i]));
  4284. j=i*2;
  4285. JSONcitys[i].Bruto = (element.childNodes[1].childNodes[1].childNodes[7+b].childNodes[1].childNodes[j+2].childNodes[3].innerHTML);
  4286. JSONcitys[i].ScienceCost = (element.childNodes[1].childNodes[1].childNodes[7+b].childNodes[1].childNodes[j+2].childNodes[5].childNodes[0].innerHTML);
  4287. JSONcitys[i].Netto = (element.childNodes[1].childNodes[1].childNodes[7+b].childNodes[1].childNodes[j+2].childNodes[7].innerHTML);
  4288. JSONcitys[i].goldHour=goldHour
  4289. var myJSONText = JSON.stringify(JSONcitys[i]); //convert back to string for storage
  4290. var JSONcity = JSON.parse(myJSONText); // convert to JSON for use in program , If program fails here there is an error in the string
  4291. setVar("citybuildings"+cityName[i],myJSONText); // store the data for the city
  4292. }else{
  4293. }
  4294. }
  4295. }
  4296. //////////////////////////////////////////////////
  4297.  
  4298. /////////////////////******************** CITYMILITARY **********//////////////////////////////////////
  4299.  
  4300. if (view == 'cityMilitary'){
  4301. //window.location.reload()
  4302. //window.parent.frames[1].location.reload()
  4303. var element=document.getElementById("tabUnits");
  4304. ////////////////////////////////////////////////////////////////////////////////////////////////
  4305. //* blocco di istruzioni per reperire, in maniera alternativa, nomi e numero di unita' - xnome e xcont
  4306. //
  4307. xnome= new Array ()
  4308. xcont=new Array()
  4309. e=element.getElementsByClassName("table01")
  4310. d0=e[0].getElementsByClassName("title_img_row")
  4311. e0=e[0].getElementsByClassName("count")
  4312. d00=d0[0].getElementsByTagName("th")
  4313. e00=e0[0].getElementsByTagName("td")
  4314. d1=e[1].getElementsByClassName("title_img_row")
  4315. e1=e[1].getElementsByClassName("count")
  4316. d10=d1[0].getElementsByTagName("th")
  4317. e10=e1[0].getElementsByTagName("td")
  4318. d2=e[2].getElementsByClassName("title_img_row")
  4319. e2=e[2].getElementsByClassName("count")
  4320. d20=d2[0].getElementsByTagName("th")
  4321. e20=e2[0].getElementsByTagName("td")
  4322.  
  4323. for (j=0; j<d00.length; j++) {
  4324. xnome[j]=d00[j].title
  4325. xcont[j]=e00[j].childNodes[0].nodeValue
  4326. }
  4327. k=j
  4328. for (j=0; j<d10.length; j++) {
  4329. xnome[k]=d10[j].title
  4330. xcont[k]=e10[j].childNodes[0].nodeValue
  4331. k=k+1
  4332. }
  4333.  
  4334. m=k
  4335. for (j=0; j<d20.length; j++) {
  4336. xnome[m]=d20[j].title
  4337. xcont[m]=e20[j].childNodes[0].nodeValue
  4338. m=m+1
  4339. }
  4340.  
  4341. var element=document.getElementById("tabShips");
  4342. e=element.getElementsByClassName("table01")
  4343. d0=e[0].getElementsByClassName("title_img_row")
  4344. e0=e[0].getElementsByClassName("count")
  4345. d00=d0[0].getElementsByTagName("th")
  4346. e00=e0[0].getElementsByTagName("td")
  4347. d1=e[1].getElementsByClassName("title_img_row")
  4348. e1=e[1].getElementsByClassName("count")
  4349. d10=d1[0].getElementsByTagName("th")
  4350. e10=e1[0].getElementsByTagName("td")
  4351. for (j=0; j<d00.length; j++) {
  4352. xnome[m]=d00[j].title
  4353. xcont[m]=e00[j].childNodes[0].nodeValue
  4354. m=m+1
  4355. }
  4356.  
  4357. for (j=0; j<d10.length; j++) {
  4358. xnome[m]=d10[j].title
  4359. xcont[m]=e10[j].childNodes[0].nodeValue
  4360. m=m+1
  4361. }
  4362.  
  4363. // fine blocco di istruzioni alternative
  4364. ///////////////////////////////////////////////////////////////////////////////////////////
  4365. /*
  4366. banner = (element.childNodes[1].childNodes[1].childNodes[0].childNodes[0]); //check for add_banner above table
  4367. b=0;
  4368. if(banner){ // if banner all nodes are shifted 2 up
  4369. b=2;
  4370. }
  4371.  
  4372. ///////////// Imposta e salva le unita' militari
  4373. var elem= new Array(2);
  4374. elem[0]=document.getElementById("tabUnits");
  4375. elem[1]=document.getElementById("tabShips");
  4376. var ind3=new Array (1,1,1,1,1,1,1,3,3,3,3,3,3,3,1,1,1,1,1,1,3,3,3,3,3);
  4377. var ind6=new Array (1,3,5,7,9,11,13,1,3,5,7,9,11,13,1,3,5,7,9,11,1,3,5,7,9);
  4378. for (k=0; k<25; k++) {
  4379. var j = parseInt(k/14);
  4380. nameArmy[k] = elem[j].childNodes[1].childNodes[3].childNodes[ind3[k]].childNodes[1].childNodes[0].childNodes[ind6[k]].title;
  4381. countArmy[k]=elem[j].childNodes[1].childNodes[3].childNodes[ind3[k]].childNodes[1].childNodes[2].childNodes[ind6[k]].firstChild.nodeValue;
  4382. }
  4383. */
  4384. for (k=0; k<26; k++) {
  4385. nameArmy[k] = xnome[k];
  4386. countArmy[k]= xcont[k];
  4387. }
  4388.  
  4389. JSONcitydata.nameArmy=nameArmy;
  4390. JSONcitydata.countArmy=countArmy;
  4391.  
  4392. var myJSONText = JSON.stringify(JSONcitydata); //convert back to string for storage
  4393. var JSONcity = JSON.parse(myJSONText); // convert to JSON for use in program , If program fails here there is an error in the string
  4394. setVar("citybuildings"+currentCity,myJSONText); // store the data for the city
  4395.  
  4396. }
  4397. ////////////////////////////////////////
  4398.  
  4399. //////////////////// ALL VIEWS
  4400. ///reload all on array
  4401. for(i=0;i<cityName.length;i++){
  4402. var test = GM_getValue(document.location.host+"citybuildings"+cityName[i]);
  4403. if(test) {
  4404. JSONcitys[i]=JSON.parse(GM_getValue(document.location.host+"citybuildings"+cityName[i]));
  4405. }else{
  4406. //GM_log(i+' '+cityName[i] +'Error! citydata not found , visit city to get data');
  4407. }
  4408. }
  4409. ///////////////////////////////////////
  4410.  
  4411. cargar_dealers(); // update display
  4412. }
  4413.  
  4414. ///// TRADUZIONI IN ALTRE LINGUE
  4415. function trad(paese,stringa) {
  4416. switch (stringa) {
  4417. case 'http://ikariam.wikia.com/wiki/Main_Page' :
  4418. switch (paese) {
  4419. case 'it' :
  4420. return 'http://it.ikariam.wikia.com/wiki/Ikariam_Wiki'
  4421. break
  4422. case 'fr' :
  4423. return 'http://fr.ikariam.wikia.com/wiki/Accueil'
  4424. break
  4425. case 'de' :
  4426. return 'http://de.ikariam.wikia.com/wiki/Ikariam-_Wiki'
  4427. break
  4428. case 'ar' :
  4429. case 'cl' :
  4430. case 'co' :
  4431. case 'mx' :
  4432. case 'pe' :
  4433. case 've' :
  4434. case 'es' :
  4435. return 'http://es.ikariam.wikia.com/wiki/Portada'
  4436. break
  4437. case 'br' :
  4438. case 'pt' :
  4439. return 'http://pt.ikariam.wikia.com/wiki/Página_principal'
  4440. break
  4441. default :
  4442. return stringa
  4443. break
  4444. }
  4445. break
  4446. case 'Towns' :
  4447. switch (paese) {
  4448. case 'it' :
  4449. return 'Città'
  4450. break
  4451. case 'fr' :
  4452. return 'Villes'
  4453. break
  4454. case 'de' :
  4455. return 'Städte'
  4456. break
  4457. case 'ar' :
  4458. case 'cl' :
  4459. case 'co' :
  4460. case 'mx' :
  4461. case 'pe' :
  4462. case 've' :
  4463. case 'es' :
  4464. return 'Ciudades'
  4465. break
  4466. case 'br' :
  4467. case 'pt' :
  4468. return 'Cidades'
  4469. break
  4470. default :
  4471. return stringa
  4472. break
  4473. }
  4474. case 'city' :
  4475. switch (paese) {
  4476. case 'it' :
  4477. return 'città'
  4478. break
  4479. case 'fr' :
  4480. return 'ville'
  4481. break
  4482. case 'de' :
  4483. return 'städte'
  4484. break
  4485. case 'ar' :
  4486. case 'cl' :
  4487. case 'co' :
  4488. case 'mx' :
  4489. case 'pe' :
  4490. case 've' :
  4491. case 'es' :
  4492. return 'ciudad'
  4493. break
  4494. case 'br' :
  4495. case 'pt' :
  4496. return 'cidade'
  4497. break
  4498. default :
  4499. return stringa
  4500. break
  4501. }
  4502. break
  4503. case 'Total' :
  4504. switch (paese) {
  4505. case 'it' :
  4506. return 'Totale'
  4507. break
  4508. case 'fr' :
  4509. return 'Total'
  4510. break
  4511. case 'de' :
  4512. return 'Gesamt'
  4513. break
  4514. default :
  4515. return stringa
  4516. break
  4517. }
  4518. break
  4519. case 'Total/day' :
  4520. switch (paese) {
  4521. case 'it' :
  4522. return 'Totale/giorno'
  4523. break
  4524. case 'fr' :
  4525. return 'Total/jour'
  4526. break
  4527. case 'de' :
  4528. return 'Gesamt/tag'
  4529. break
  4530. case 'ar' :
  4531. case 'cl' :
  4532. case 'co' :
  4533. case 'mx' :
  4534. case 'pe' :
  4535. case 've' :
  4536. case 'es' :
  4537. return 'Total/día'
  4538. break
  4539. case 'br' :
  4540. case 'pt' :
  4541. return 'Total/dia'
  4542. break
  4543. default :
  4544. return stringa
  4545. break
  4546. }
  4547. break
  4548. case 'Show Buildings' :
  4549. switch (paese) {
  4550. case 'it' :
  4551. return 'Mostra Edifici'
  4552. break
  4553. case 'fr' :
  4554. return 'Montrer bâtiments'
  4555. break
  4556. case 'de' :
  4557. return 'Zeige Gebäude'
  4558. break
  4559. case 'ar' :
  4560. case 'cl' :
  4561. case 'co' :
  4562. case 'mx' :
  4563. case 'pe' :
  4564. case 've' :
  4565. case 'es' :
  4566. return 'Mostrar Edificios'
  4567. break
  4568. case 'br' :
  4569. case 'pt' :
  4570. return 'Mostrar Edifícios'
  4571. break
  4572. default :
  4573. return stringa
  4574. break
  4575. }
  4576. break
  4577. case 'Hide Buildings' :
  4578. switch (paese) {
  4579. case 'it' :
  4580. return 'Nascondi Edifici'
  4581. break
  4582. case 'fr' :
  4583. return 'Cacher bâtiments'
  4584. break
  4585. case 'de' :
  4586. return 'Verberge Gebäude'
  4587. break
  4588. case 'ar' :
  4589. case 'cl' :
  4590. case 'co' :
  4591. case 'mx' :
  4592. case 'pe' :
  4593. case 've' :
  4594. case 'es' :
  4595. return 'Ocultar Edificios'
  4596. break
  4597. case 'br' :
  4598. case 'pt' :
  4599. return 'Esconder Edifícios'
  4600. break
  4601. default :
  4602. return stringa
  4603. break
  4604. }
  4605. break
  4606. case 'Show Resources' :
  4607. switch (paese) {
  4608. case 'it' :
  4609. return 'Mostra Risorse'
  4610. break
  4611. case 'fr' :
  4612. return 'Montrer Ressources'
  4613. break
  4614. case 'de' :
  4615. return 'Zeige Ressourcen'
  4616. break
  4617. case 'ar' :
  4618. case 'cl' :
  4619. case 'co' :
  4620. case 'mx' :
  4621. case 'pe' :
  4622. case 've' :
  4623. case 'es' :
  4624. return 'Mostrar Recursos'
  4625. break
  4626. case 'br' :
  4627. case 'pt' :
  4628. return 'Mostrar Recursos'
  4629. break
  4630. default :
  4631. return stringa
  4632. break
  4633. }
  4634. break
  4635. case 'Hide Resources' :
  4636. switch (paese) {
  4637. case 'it' :
  4638. return 'Nascondi Risorse'
  4639. break
  4640. case 'fr' :
  4641. return 'Cacher Ressources'
  4642. break
  4643. case 'de' :
  4644. return 'Verberge Ressourcen'
  4645. break
  4646. case 'ar' :
  4647. case 'cl' :
  4648. case 'co' :
  4649. case 'mx' :
  4650. case 'pe' :
  4651. case 've' :
  4652. case 'es' :
  4653. return 'Ocultar Recursos'
  4654. break
  4655. case 'br' :
  4656. case 'pt' :
  4657. return 'Esconder Recursos'
  4658. break
  4659. default :
  4660. return stringa
  4661. break
  4662. }
  4663. break
  4664. case 'Show Army' :
  4665. switch (paese) {
  4666. case 'it' :
  4667. return 'Mostra Armate'
  4668. break
  4669. case 'fr' :
  4670. return 'Montrer Armée'
  4671. break
  4672. case 'de' :
  4673. return 'Zeige Armee'
  4674. break
  4675. case 'ar' :
  4676. case 'cl' :
  4677. case 'co' :
  4678. case 'mx' :
  4679. case 'pe' :
  4680. case 've' :
  4681. case 'es' :
  4682. return 'Mostrar Milicia'
  4683. break
  4684. case 'br' :
  4685. case 'pt' :
  4686. return 'Mostrar Exército'
  4687. break
  4688. default :
  4689. return stringa
  4690. break
  4691. }
  4692. break
  4693. case 'Hide Army' :
  4694. switch (paese) {
  4695. case 'it' :
  4696. return 'Nascondi Armate'
  4697. break
  4698. case 'fr' :
  4699. return 'Cacher Armée'
  4700. break
  4701. case 'de' :
  4702. return 'Verberge Armee'
  4703. break
  4704. case 'ar' :
  4705. case 'cl' :
  4706. case 'co' :
  4707. case 'mx' :
  4708. case 'pe' :
  4709. case 've' :
  4710. case 'es' :
  4711. return 'Ocultar Milicia'
  4712. break
  4713. case 'br' :
  4714. case 'pt' :
  4715. return 'Esconder Exército'
  4716. break
  4717. default :
  4718. return stringa
  4719. break
  4720. }
  4721. break
  4722. case 'Reset Data' :
  4723. switch (paese) {
  4724. case 'it' :
  4725. return 'Reinizializzazione'
  4726. break
  4727. case 'fr' :
  4728. return 'Réinitialiser'
  4729. break
  4730. case 'de' :
  4731. return 'Daten zurücksetzen'
  4732. break
  4733. case 'ar' :
  4734. case 'cl' :
  4735. case 'co' :
  4736. case 'mx' :
  4737. case 'pe' :
  4738. case 've' :
  4739. case 'es' :
  4740. return 'Restablecer los datos'
  4741. break
  4742. case 'br' :
  4743. case 'pt' :
  4744. return 'Restaurar dados'
  4745. break
  4746. default :
  4747. return stringa
  4748. break
  4749. }
  4750. break
  4751. case 'Show Town' :
  4752. switch (paese) {
  4753. case 'it' :
  4754. return 'Mostra Città'
  4755. break
  4756. case 'fr' :
  4757. return 'Montrer la ville'
  4758. break
  4759. case 'de' :
  4760. return 'Zeige Stadt'
  4761. break
  4762. case 'ar' :
  4763. case 'cl' :
  4764. case 'co' :
  4765. case 'mx' :
  4766. case 'pe' :
  4767. case 've' :
  4768. case 'es' :
  4769. return 'Mostrar Ciudad'
  4770. break
  4771. case 'br' :
  4772. case 'pt' :
  4773. return 'Mostrar Cidade'
  4774. break
  4775. default :
  4776. return stringa
  4777. break
  4778. }
  4779. break
  4780. case 'Show Island' :
  4781. switch (paese) {
  4782. case 'it' :
  4783. return "Mostra Isola"
  4784. break
  4785. case 'fr' :
  4786. return "Montrer l'île"
  4787. break
  4788. case 'de' :
  4789. return 'Zeige Insel'
  4790. break
  4791. case 'ar' :
  4792. case 'cl' :
  4793. case 'co' :
  4794. case 'mx' :
  4795. case 'pe' :
  4796. case 've' :
  4797. case 'es' :
  4798. return 'Mostrar Isla'
  4799. break
  4800. case 'br' :
  4801. case 'pt' :
  4802. return 'Mostrar Ilha'
  4803. break
  4804. default :
  4805. return stringa
  4806. break
  4807. }
  4808. break
  4809. case 'Show World' :
  4810. switch (paese) {
  4811. case 'it' :
  4812. return 'Mostra Mondo'
  4813. break
  4814. case 'fr' :
  4815. return 'Montrer le monde'
  4816. break
  4817. case 'de' :
  4818. return 'Zeige Weltkarte'
  4819. break
  4820. case 'ar' :
  4821. case 'cl' :
  4822. case 'co' :
  4823. case 'mx' :
  4824. case 'pe' :
  4825. case 've' :
  4826. case 'es' :
  4827. return 'Mostrar Mundo'
  4828. break
  4829. case 'br' :
  4830. case 'pt' :
  4831. return 'Mostrar Mundo'
  4832. break
  4833. default :
  4834. return stringa
  4835. break
  4836. }
  4837. break
  4838. case 'Monday' :
  4839. switch (paese) {
  4840. case 'it' :
  4841. return 'Lunedi'
  4842. break
  4843. case 'fr' :
  4844. return 'Lundi'
  4845. break
  4846. case 'de' :
  4847. return 'Montag'
  4848. break
  4849. case 'ar' :
  4850. case 'cl' :
  4851. case 'co' :
  4852. case 'mx' :
  4853. case 'pe' :
  4854. case 've' :
  4855. case 'es' :
  4856. return 'Lunes'
  4857. break
  4858. case 'br' :
  4859. case 'pt' :
  4860. return 'Segunda-feira'
  4861. break
  4862. default :
  4863. return stringa
  4864. break
  4865. }
  4866. break
  4867. case 'Tuesday' :
  4868. switch (paese) {
  4869. case 'it' :
  4870. return 'Martedi'
  4871. break
  4872. case 'fr' :
  4873. return 'Mardi'
  4874. break
  4875. case 'de' :
  4876. return 'Dienstag'
  4877. break
  4878. case 'ar' :
  4879. case 'cl' :
  4880. case 'co' :
  4881. case 'mx' :
  4882. case 'pe' :
  4883. case 've' :
  4884. case 'es' :
  4885. return 'Martes'
  4886. break
  4887. case 'br' :
  4888. case 'pt' :
  4889. return 'Terça-feira'
  4890. break
  4891. default :
  4892. return stringa
  4893. break
  4894. }
  4895. break
  4896. case 'Wednesday' :
  4897. switch (paese) {
  4898. case 'it' :
  4899. return 'Mercoledi'
  4900. break
  4901. case 'fr' :
  4902. return 'Mercredi'
  4903. break
  4904. case 'de' :
  4905. return 'Mittwoch'
  4906. break
  4907. case 'ar' :
  4908. case 'cl' :
  4909. case 'co' :
  4910. case 'mx' :
  4911. case 'pe' :
  4912. case 've' :
  4913. case 'es' :
  4914. return 'Miércoles'
  4915. break
  4916. case 'br' :
  4917. case 'pt' :
  4918. return 'Quarta-feira'
  4919. break
  4920. default :
  4921. return stringa
  4922. break
  4923. }
  4924. break
  4925. case 'Thursday' :
  4926. switch (paese) {
  4927. case 'it' :
  4928. return 'Giovedi'
  4929. break
  4930. case 'fr' :
  4931. return 'Jeudi'
  4932. break
  4933. case 'de' :
  4934. return 'Donnerstag'
  4935. break
  4936. case 'ar' :
  4937. case 'cl' :
  4938. case 'co' :
  4939. case 'mx' :
  4940. case 'pe' :
  4941. case 've' :
  4942. case 'es' :
  4943. return 'Jueves'
  4944. break
  4945. case 'br' :
  4946. case 'pt' :
  4947. return 'Quinta-feira'
  4948. break
  4949. default :
  4950. return stringa
  4951. break
  4952. }
  4953. break
  4954. case 'Friday' :
  4955. switch (paese) {
  4956. case 'it' :
  4957. return 'Venerdi'
  4958. break
  4959. case 'fr' :
  4960. return 'Vendredi'
  4961. break
  4962. case 'de' :
  4963. return 'Freitag'
  4964. break
  4965. case 'ar' :
  4966. case 'cl' :
  4967. case 'co' :
  4968. case 'mx' :
  4969. case 'pe' :
  4970. case 've' :
  4971. case 'es' :
  4972. return 'Viernes'
  4973. break
  4974. case 'br' :
  4975. case 'pt' :
  4976. return 'Sexta-feira'
  4977. break
  4978. default :
  4979. return stringa
  4980. break
  4981. }
  4982. break
  4983. case 'Saturday' :
  4984. switch (paese) {
  4985. case 'it' :
  4986. return 'Sabato'
  4987. break
  4988. case 'fr' :
  4989. return 'Samedi'
  4990. break
  4991. case 'de' :
  4992. return 'Samstag'
  4993. break
  4994. case 'ar' :
  4995. case 'cl' :
  4996. case 'co' :
  4997. case 'mx' :
  4998. case 'pe' :
  4999. case 've' :
  5000. case 'es' :
  5001. return 'Sábado'
  5002. break
  5003. case 'br' :
  5004. case 'pt' :
  5005. return 'Sábado'
  5006. break
  5007. default :
  5008. return stringa
  5009. break
  5010. }
  5011. break
  5012. case 'Sunday' :
  5013. switch (paese) {
  5014. case 'it' :
  5015. return 'Domenica'
  5016. break
  5017. case 'fr' :
  5018. return 'Dimanche'
  5019. break
  5020. case 'de' :
  5021. return 'Sonntag'
  5022. break
  5023. case 'ar' :
  5024. case 'cl' :
  5025. case 'co' :
  5026. case 'mx' :
  5027. case 'pe' :
  5028. case 've' :
  5029. case 'es' :
  5030. return 'Domingo'
  5031. break
  5032. case 'br' :
  5033. case 'pt' :
  5034. return 'Domingo'
  5035. break
  5036. default :
  5037. return stringa
  5038. break
  5039. }
  5040. break
  5041. case 'day' :
  5042. switch (paese) {
  5043. case 'it' :
  5044. return 'giorno'
  5045. break
  5046. case 'fr' :
  5047. return 'jour'
  5048. break
  5049. case 'de' :
  5050. return 'tag'
  5051. break
  5052. case 'ar' :
  5053. case 'cl' :
  5054. case 'co' :
  5055. case 'mx' :
  5056. case 'pe' :
  5057. case 've' :
  5058. case 'es' :
  5059. return 'día'
  5060. break
  5061. case 'br' :
  5062. case 'pt' :
  5063. return 'dia'
  5064. break
  5065. default :
  5066. return stringa
  5067. break
  5068. }
  5069. break
  5070. case 'week' :
  5071. switch (paese) {
  5072. case 'it' :
  5073. return 'settimana'
  5074. break
  5075. case 'fr' :
  5076. return 'semaine'
  5077. break
  5078. case 'de' :
  5079. return 'woche'
  5080. break
  5081. case 'ar' :
  5082. case 'cl' :
  5083. case 'co' :
  5084. case 'mx' :
  5085. case 'pe' :
  5086. case 've' :
  5087. case 'es' :
  5088. return 'semana'
  5089. break
  5090. case 'br' :
  5091. case 'pt' :
  5092. return 'semana'
  5093. break
  5094. default :
  5095. return stringa
  5096. break
  5097. }
  5098. break
  5099. case 'at' :
  5100. switch (paese) {
  5101. case 'it' :
  5102. return 'alle'
  5103. break
  5104. case 'fr' :
  5105. return 'à'
  5106. break
  5107. case 'de' :
  5108. return 'um'
  5109. break
  5110. case 'ar' :
  5111. case 'cl' :
  5112. case 'co' :
  5113. case 'mx' :
  5114. case 'pe' :
  5115. case 've' :
  5116. case 'es' :
  5117. return 'a'
  5118. break
  5119. case 'br' :
  5120. case 'pt' :
  5121. return 'às'
  5122. break
  5123. default :
  5124. return stringa
  5125. break
  5126. }
  5127. break
  5128. case 'D' :
  5129. switch (paese) {
  5130. case 'it' :
  5131. return 'G'
  5132. break
  5133. case 'fr' :
  5134. return 'J'
  5135. break
  5136. case 'de' :
  5137. return 'T'
  5138. break
  5139. default :
  5140. return stringa
  5141. break
  5142. }
  5143. break
  5144. case 'Merchant ships overview and control'+
  5145. '\n____________________________________'+
  5146. '\nyellow=loading goods/troops'+
  5147. '\nred=loading finished'+
  5148. '\nblue=goods/troops in transit'+
  5149. '\ngreen=goods/troops arrived' :
  5150. switch (paese) {
  5151. case 'it' :
  5152. return 'Riepilogo e controllo delle navi mercantili'+
  5153. '\n________________________________________________'+
  5154. '\ngiallo=carico merci/truppe'+
  5155. '\nrosso=carico merci/truppe terminato'+
  5156. '\nblu=merci/truppe in viaggio'+
  5157. '\nverde=merci/truppe arrivate'
  5158. break
  5159. case 'fr' :
  5160. return 'Vue et contrôle des navires marchands'+
  5161. '\n__________________________________________'+
  5162. '\njaune=chargement ressources/troupes'+
  5163. '\nrouge=chargement terminé'+
  5164. '\nbleu=ressources/troupes en transit'+
  5165. '\nvert=ressources/troupes arrivées'
  5166. break
  5167. case 'de' :
  5168. return 'Handelsschiffe Übersicht und Kontrolle'+
  5169. '\n__________________________________________'+
  5170. '\ngelb=belade Waren/Truppen'+
  5171. '\nrot=beladen Waren/Truppen'+
  5172. '\nblau=Waren/Truppen unterwegs'+
  5173. '\ngrün=Waren/Truppen eingetroffen'
  5174. break
  5175. case 'ar' :
  5176. case 'cl' :
  5177. case 'co' :
  5178. case 'mx' :
  5179. case 'pe' :
  5180. case 've' :
  5181. case 'es' :
  5182. return 'Visión general y control de los barcos mercantes'+
  5183. '\n__________________________________________'+
  5184. '\namarillo=carga mercancías/tropas'+
  5185. '\nrojo=carga mercancías/tropas completada'+
  5186. '\nazul=Mercancias/tropas en tránsito'+
  5187. '\nverde=Mercancias/tropas llegado'
  5188. break
  5189. case 'br' :
  5190. case 'pt' :
  5191. return 'Resumo e controle dos barcos de comércio'+
  5192. '\n__________________________________________'+
  5193. '\namarelo=carga mercadorias/tropas'+
  5194. '\nvermelho=carga mercadorias/tropas concluída'+
  5195. '\nazul=Mercadorias/tropas em trânsito'+
  5196. '\nverde=Mercadorias/tropas chegaram'
  5197. break
  5198. default :
  5199. return stringa
  5200. break
  5201. }
  5202. break
  5203. case 'Safe goods' :
  5204. switch (paese) {
  5205. case 'it' :
  5206. return 'Merci protette'
  5207. break
  5208. case 'fr' :
  5209. return 'Marchandises sécurisées'
  5210. break
  5211. case 'de' :
  5212. return 'Plündersicher'
  5213. break
  5214. case 'ar' :
  5215. case 'cl' :
  5216. case 'co' :
  5217. case 'mx' :
  5218. case 'pe' :
  5219. case 've' :
  5220. case 'es' :
  5221. return 'Bienes protegidos'
  5222. break
  5223. case 'br' :
  5224. case 'pt' :
  5225. return 'Bens protegidos'
  5226. break
  5227. default :
  5228. return stringa
  5229. break
  5230. }
  5231. break
  5232. case 'Overview towns/finances' :
  5233. switch (paese) {
  5234. case 'it' :
  5235. return 'Riepilogo città/finanze'
  5236. break
  5237. case 'fr' :
  5238. return 'Vue villes/finances'
  5239. break
  5240. case 'de' :
  5241. return 'Übersicht Städte/Finanzen'
  5242. break
  5243. case 'ar' :
  5244. case 'cl' :
  5245. case 'co' :
  5246. case 'mx' :
  5247. case 'pe' :
  5248. case 've' :
  5249. case 'es' :
  5250. return 'Informe sobre ciudades y finanzas'
  5251. break
  5252. case 'br' :
  5253. case 'pt' :
  5254. return 'Vista geral das cidades y finanças'
  5255. break
  5256. default :
  5257. return stringa
  5258. break
  5259. }
  5260. break
  5261. case 'Military overview and control' :
  5262. switch (paese) {
  5263. case 'it' :
  5264. return 'Riepilogo e controllo Forze Armate'
  5265. break
  5266. case 'fr' :
  5267. return "Vue et contrôle de l'Armée"
  5268. break
  5269. case 'de' :
  5270. return "Übersicht und Kontrolle Militär"
  5271. break
  5272. case 'ar' :
  5273. case 'cl' :
  5274. case 'co' :
  5275. case 'mx' :
  5276. case 'pe' :
  5277. case 've' :
  5278. case 'es' :
  5279. return "Informe militar"
  5280. break
  5281. case 'br' :
  5282. case 'pt' :
  5283. return "Vista geral militar"
  5284. break
  5285. default :
  5286. return stringa
  5287. break
  5288. }
  5289. break
  5290. case 'citizens' :
  5291. switch (paese) {
  5292. case 'it' :
  5293. return 'cittadini'
  5294. break
  5295. case 'fr' :
  5296. return 'citoyens'
  5297. break
  5298. case 'de' :
  5299. return 'Bürger'
  5300. break
  5301. case 'ar' :
  5302. case 'cl' :
  5303. case 'co' :
  5304. case 'mx' :
  5305. case 'pe' :
  5306. case 've' :
  5307. case 'es' :
  5308. return 'ciudadanos'
  5309. break
  5310. case 'br' :
  5311. case 'pt' :
  5312. return 'cidadãos'
  5313. break
  5314. default :
  5315. return stringa
  5316. break
  5317. }
  5318. break
  5319. case 'current population' :
  5320. switch (paese) {
  5321. case 'it' :
  5322. return 'popolazione attuale'
  5323. break
  5324. case 'fr' :
  5325. return 'population actuelle'
  5326. break
  5327. case 'de' :
  5328. return 'derzeitige Bevölkerung'
  5329. break
  5330. case 'ar' :
  5331. case 'cl' :
  5332. case 'co' :
  5333. case 'mx' :
  5334. case 'pe' :
  5335. case 've' :
  5336. case 'es' :
  5337. return 'población actual'
  5338. break
  5339. case 'br' :
  5340. case 'pt' :
  5341. return 'população atual'
  5342. break
  5343. default :
  5344. return stringa
  5345. break
  5346. }
  5347. break
  5348. case 'maximum population : growth' :
  5349. switch (paese) {
  5350. case 'it' :
  5351. return 'popolazione massima : crescita'
  5352. break
  5353. case 'fr' :
  5354. return 'population maximale : croissance'
  5355. break
  5356. case 'de' :
  5357. return 'maximale Bevölkerung : Wachstum'
  5358. break
  5359. case 'ar' :
  5360. case 'cl' :
  5361. case 'co' :
  5362. case 'mx' :
  5363. case 'pe' :
  5364. case 've' :
  5365. case 'es' :
  5366. return 'población máxima : crecimiento'
  5367. break
  5368. case 'br' :
  5369. case 'pt' :
  5370. return 'população máxima: crescimento'
  5371. break
  5372. default :
  5373. return stringa
  5374. break
  5375. }
  5376. break
  5377. case 'total citizens' :
  5378. switch (paese) {
  5379. case 'it' :
  5380. return 'totale cittadini'
  5381. break
  5382. case 'fr' :
  5383. return 'total de citoyens'
  5384. break
  5385. case 'de' :
  5386. return 'Gesamt Bürger'
  5387. break
  5388. case 'ar' :
  5389. case 'cl' :
  5390. case 'co' :
  5391. case 'mx' :
  5392. case 'pe' :
  5393. case 've' :
  5394. case 'es' :
  5395. return 'total ciudadanos'
  5396. break
  5397. case 'br' :
  5398. case 'pt' :
  5399. return 'total cidadãos'
  5400. break
  5401. default :
  5402. return stringa
  5403. break
  5404. }
  5405. break
  5406. case 'total population' :
  5407. switch (paese) {
  5408. case 'it' :
  5409. return 'totale popolazione'
  5410. break
  5411. case 'fr' :
  5412. return 'population totale'
  5413. break
  5414. case 'de' :
  5415. return 'Gesamtbevölkerung'
  5416. break
  5417. case 'ar' :
  5418. case 'cl' :
  5419. case 'co' :
  5420. case 'mx' :
  5421. case 'pe' :
  5422. case 've' :
  5423. case 'es' :
  5424. return 'total población'
  5425. break
  5426. case 'br' :
  5427. case 'pt' :
  5428. return 'total população'
  5429. break
  5430. default :
  5431. return stringa
  5432. break
  5433. }
  5434. break
  5435. case 'population limit' :
  5436. switch (paese) {
  5437. case 'it' :
  5438. return 'popolazione limite'
  5439. break
  5440. case 'fr' :
  5441. return 'limite de population'
  5442. break
  5443. case 'de' :
  5444. return 'Bevölkerung Grenze'
  5445. break
  5446. case 'ar' :
  5447. case 'cl' :
  5448. case 'co' :
  5449. case 'mx' :
  5450. case 'pe' :
  5451. case 've' :
  5452. case 'es' :
  5453. return 'población límite'
  5454. break
  5455. case 'br' :
  5456. case 'pt' :
  5457. return 'limite de população'
  5458. break
  5459. default :
  5460. return stringa
  5461. break
  5462. }
  5463. break
  5464. case 'population' :
  5465. switch (paese) {
  5466. case 'it' :
  5467. return 'popolazione'
  5468. break
  5469. case 'fr' :
  5470. return 'population'
  5471. break
  5472. case 'de' :
  5473. return 'Bevölkerung'
  5474. break
  5475. case 'ar' :
  5476. case 'cl' :
  5477. case 'co' :
  5478. case 'mx' :
  5479. case 'pe' :
  5480. case 've' :
  5481. case 'es' :
  5482. return 'población'
  5483. break
  5484. case 'br' :
  5485. case 'pt' :
  5486. return 'população'
  5487. break
  5488. default :
  5489. return stringa
  5490. break
  5491. }
  5492. break
  5493. case 'Full' :
  5494. switch (paese) {
  5495. case 'it' :
  5496. return 'Pieno'
  5497. break
  5498. case 'fr' :
  5499. return 'Complète'
  5500. break
  5501. case 'de' :
  5502. return 'Voll'
  5503. break
  5504. case 'ar' :
  5505. case 'cl' :
  5506. case 'co' :
  5507. case 'mx' :
  5508. case 'pe' :
  5509. case 've' :
  5510. case 'es' :
  5511. return 'Completo'
  5512. break
  5513. case 'br' :
  5514. case 'pt' :
  5515. return 'Completo'
  5516. break
  5517. default :
  5518. return stringa
  5519. break
  5520. }
  5521. break
  5522. case 'Empty' :
  5523. switch (paese) {
  5524. case 'it' :
  5525. return 'Vuoto'
  5526. break
  5527. case 'fr' :
  5528. return 'Vide'
  5529. break
  5530. case 'de' :
  5531. return 'Leer'
  5532. break
  5533. case 'ar' :
  5534. case 'cl' :
  5535. case 'co' :
  5536. case 'mx' :
  5537. case 'pe' :
  5538. case 've' :
  5539. case 'es' :
  5540. return 'Vacío'
  5541. break
  5542. case 'br' :
  5543. case 'pt' :
  5544. return 'Vazio'
  5545. break
  5546. default :
  5547. return stringa
  5548. break
  5549. }
  5550. break
  5551. case 'within' :
  5552. switch (paese) {
  5553. case 'it' :
  5554. return 'entro'
  5555. break
  5556. case 'fr' :
  5557. return 'dans'
  5558. break
  5559. case 'de' :
  5560. return 'in'
  5561. break
  5562. case 'ar' :
  5563. case 'cl' :
  5564. case 'co' :
  5565. case 'mx' :
  5566. case 'pe' :
  5567. case 've' :
  5568. case 'es' :
  5569. return 'en'
  5570. break
  5571. case 'br' :
  5572. case 'pt' :
  5573. return 'em'
  5574. break
  5575. default :
  5576. return stringa
  5577. break
  5578. }
  5579. break
  5580. case 'never' :
  5581. switch (paese) {
  5582. case 'it' :
  5583. return 'mai'
  5584. break
  5585. case 'fr' :
  5586. return 'jamais'
  5587. break
  5588. case 'de' :
  5589. return 'nie'
  5590. break
  5591. case 'ar' :
  5592. case 'cl' :
  5593. case 'co' :
  5594. case 'mx' :
  5595. case 'pe' :
  5596. case 've' :
  5597. case 'es' :
  5598. return 'nunca'
  5599. break
  5600. case 'br' :
  5601. case 'pt' :
  5602. return 'nunca'
  5603. break
  5604. default :
  5605. return stringa
  5606. break
  5607. }
  5608. break
  5609. case 'hours' :
  5610. switch (paese) {
  5611. case 'it' :
  5612. return 'ore'
  5613. break
  5614. case 'fr' :
  5615. return 'heures'
  5616. break
  5617. case 'de' :
  5618. return 'Stunden'
  5619. break
  5620. case 'ar' :
  5621. case 'cl' :
  5622. case 'co' :
  5623. case 'mx' :
  5624. case 'pe' :
  5625. case 've' :
  5626. case 'es' :
  5627. return 'horas'
  5628. break
  5629. case 'br' :
  5630. case 'pt' :
  5631. return 'horas'
  5632. break
  5633. default :
  5634. return stringa
  5635. break
  5636. }
  5637. break
  5638. case 'hour' :
  5639. switch (paese) {
  5640. case 'it' :
  5641. return 'ora'
  5642. break
  5643. case 'fr' :
  5644. return 'heure'
  5645. break
  5646. case 'de' :
  5647. return 'Stunde'
  5648. break
  5649. case 'ar' :
  5650. case 'cl' :
  5651. case 'co' :
  5652. case 'mx' :
  5653. case 'pe' :
  5654. case 've' :
  5655. case 'es' :
  5656. return 'hora'
  5657. break
  5658. case 'br' :
  5659. case 'pt' :
  5660. return 'hora'
  5661. break
  5662. default :
  5663. return stringa
  5664. break
  5665. }
  5666. break
  5667. case 'gold' :
  5668. switch (paese) {
  5669. case 'it' :
  5670. return 'oro'
  5671. break
  5672. case 'fr' :
  5673. return 'or'
  5674. break
  5675. case 'de' :
  5676. return 'Gold'
  5677. break
  5678. case 'ar' :
  5679. case 'cl' :
  5680. case 'co' :
  5681. case 'mx' :
  5682. case 'pe' :
  5683. case 've' :
  5684. case 'es' :
  5685. return 'oro'
  5686. break
  5687. case 'br' :
  5688. case 'pt' :
  5689. return 'ouro'
  5690. break
  5691. default :
  5692. return stringa
  5693. break
  5694. }
  5695. break
  5696. case 'produced' :
  5697. switch (paese) {
  5698. case 'it' :
  5699. return 'prodotto'
  5700. break
  5701. case 'fr' :
  5702. return 'produit'
  5703. break
  5704. case 'de' :
  5705. return 'produziert'
  5706. break
  5707. case 'ar' :
  5708. case 'cl' :
  5709. case 'co' :
  5710. case 'mx' :
  5711. case 'pe' :
  5712. case 've' :
  5713. case 'es' :
  5714. return 'producido'
  5715. break
  5716. case 'br' :
  5717. case 'pt' :
  5718. return 'produzido'
  5719. break
  5720. default :
  5721. return stringa
  5722. break
  5723. }
  5724. break
  5725. case 'scientists' :
  5726. switch (paese) {
  5727. case 'it' :
  5728. return 'scienziati'
  5729. break
  5730. case 'fr' :
  5731. return 'scientifiques'
  5732. break
  5733. case 'de' :
  5734. return 'Wissenschaftler'
  5735. break
  5736. case 'ar' :
  5737. case 'cl' :
  5738. case 'co' :
  5739. case 'mx' :
  5740. case 'pe' :
  5741. case 've' :
  5742. case 'es' :
  5743. return 'científicos'
  5744. break
  5745. case 'br' :
  5746. case 'pt' :
  5747. return 'cientistas'
  5748. break
  5749. default :
  5750. return stringa
  5751. break
  5752. }
  5753. break
  5754. case 'Research' :
  5755. switch (paese) {
  5756. case 'it' :
  5757. return 'Ricerca'
  5758. break
  5759. case 'fr' :
  5760. return 'Recherche'
  5761. break
  5762. case 'de' :
  5763. return 'Forschungsleistung'
  5764. break
  5765. case 'ar' :
  5766. case 'cl' :
  5767. case 'co' :
  5768. case 'mx' :
  5769. case 'pe' :
  5770. case 've' :
  5771. case 'es' :
  5772. return 'Investigación'
  5773. break
  5774. case 'br' :
  5775. case 'pt' :
  5776. return 'Pesquisa'
  5777. break
  5778. default :
  5779. return stringa
  5780. break
  5781. }
  5782. break
  5783. case 'spent' :
  5784. switch (paese) {
  5785. case 'it' :
  5786. return 'speso'
  5787. break
  5788. case 'fr' :
  5789. return 'dépensé'
  5790. break
  5791. case 'de' :
  5792. return 'verbraucht'
  5793. break
  5794. case 'ar' :
  5795. case 'cl' :
  5796. case 'co' :
  5797. case 'mx' :
  5798. case 'pe' :
  5799. case 've' :
  5800. case 'es' :
  5801. return 'gastado'
  5802. break
  5803. case 'br' :
  5804. case 'pt' :
  5805. return 'gasto'
  5806. break
  5807. default :
  5808. return stringa
  5809. break
  5810. }
  5811. break
  5812. case 'net earning' :
  5813. switch (paese) {
  5814. case 'it' :
  5815. return 'guadagno netto'
  5816. break
  5817. case 'fr' :
  5818. return 'gain net'
  5819. break
  5820. case 'de' :
  5821. return 'Nettoergebnis'
  5822. break
  5823. case 'ar' :
  5824. case 'cl' :
  5825. case 'co' :
  5826. case 'mx' :
  5827. case 'pe' :
  5828. case 've' :
  5829. case 'es' :
  5830. return 'ganancia neta'
  5831. break
  5832. case 'br' :
  5833. case 'pt' :
  5834. return 'ganho líquido'
  5835. break
  5836. default :
  5837. return stringa
  5838. break
  5839. }
  5840. break
  5841. case 'gold held' :
  5842. switch (paese) {
  5843. case 'it' :
  5844. return 'oro posseduto'
  5845. break
  5846. case 'fr' :
  5847. return 'or détenu'
  5848. break
  5849. case 'de' :
  5850. return 'Goldbestand'
  5851. break
  5852. case 'ar' :
  5853. case 'cl' :
  5854. case 'co' :
  5855. case 'mx' :
  5856. case 'pe' :
  5857. case 've' :
  5858. case 'es' :
  5859. return 'oro en su poder'
  5860. break
  5861. case 'br' :
  5862. case 'pt' :
  5863. return 'ouro mantido'
  5864. break
  5865. default :
  5866. return stringa
  5867. break
  5868. }
  5869. break
  5870. case 'Building material' :
  5871. switch (paese) {
  5872. case 'it' :
  5873. return 'Legno'
  5874. break
  5875. case 'fr' :
  5876. return 'Matériau de construction'
  5877. break
  5878. case 'de' :
  5879. return 'Baumaterial'
  5880. break
  5881. case 'ar' :
  5882. case 'cl' :
  5883. case 'co' :
  5884. case 'mx' :
  5885. case 'pe' :
  5886. case 've' :
  5887. case 'es' :
  5888. return 'Madera'
  5889. break
  5890. case 'br' :
  5891. case 'pt' :
  5892. return 'Materiais de construção'
  5893. break
  5894. default :
  5895. return stringa
  5896. break
  5897. }
  5898. break
  5899. case 'Wine' :
  5900. switch (paese) {
  5901. case 'it' :
  5902. return 'Vino'
  5903. break
  5904. case 'fr' :
  5905. return 'Vin'
  5906. break
  5907. case 'de' :
  5908. return 'Wein'
  5909. break
  5910. case 'ar' :
  5911. case 'cl' :
  5912. case 'co' :
  5913. case 'mx' :
  5914. case 'pe' :
  5915. case 've' :
  5916. case 'es' :
  5917. return 'Vino'
  5918. break
  5919. case 'br' :
  5920. case 'pt' :
  5921. return 'Vinho'
  5922. break
  5923. default :
  5924. return stringa
  5925. break
  5926. }
  5927. break
  5928. case 'Marble' :
  5929. switch (paese) {
  5930. case 'it' :
  5931. return 'Marmo'
  5932. break
  5933. case 'fr' :
  5934. return 'Marbre'
  5935. break
  5936. case 'de' :
  5937. return 'Marmor'
  5938. break
  5939. case 'ar' :
  5940. case 'cl' :
  5941. case 'co' :
  5942. case 'mx' :
  5943. case 'pe' :
  5944. case 've' :
  5945. case 'es' :
  5946. return 'Mármol'
  5947. break
  5948. case 'br' :
  5949. case 'pt' :
  5950. return 'Mármore'
  5951. break
  5952. default :
  5953. return stringa
  5954. break
  5955. }
  5956. break
  5957. case 'Crystal Glass' :
  5958. switch (paese) {
  5959. case 'it' :
  5960. return 'Cristallo'
  5961. break
  5962. case 'fr' :
  5963. return 'Verre de cristal'
  5964. break
  5965. case 'de' :
  5966. return 'Kristallglas'
  5967. break
  5968. case 'ar' :
  5969. case 'cl' :
  5970. case 'co' :
  5971. case 'mx' :
  5972. case 'pe' :
  5973. case 've' :
  5974. case 'es' :
  5975. return 'Cristal'
  5976. break
  5977. case 'br' :
  5978. case 'pt' :
  5979. return 'Cristal'
  5980. break
  5981. default :
  5982. return stringa
  5983. break
  5984. }
  5985. break
  5986. case 'Sulphur' :
  5987. switch (paese) {
  5988. case 'it' :
  5989. return 'Zolfo'
  5990. break
  5991. case 'fr' :
  5992. return 'Soufre'
  5993. break
  5994. case 'de' :
  5995. return 'Schwefel'
  5996. break
  5997. case 'ar' :
  5998. case 'cl' :
  5999. case 'co' :
  6000. case 'mx' :
  6001. case 'pe' :
  6002. case 've' :
  6003. case 'es' :
  6004. return 'Azufre'
  6005. break
  6006. case 'br' :
  6007. case 'es' :
  6008. return 'Enxofre'
  6009. break
  6010. default :
  6011. return stringa
  6012. break
  6013. }
  6014. break
  6015. case 'consumed' :
  6016. switch (paese) {
  6017. case 'it' :
  6018. return 'consumato'
  6019. break
  6020. case 'fr' :
  6021. return 'consommé'
  6022. break
  6023. case 'de' :
  6024. return 'verbraucht'
  6025. break
  6026. case 'ar' :
  6027. case 'cl' :
  6028. case 'co' :
  6029. case 'mx' :
  6030. case 'pe' :
  6031. case 've' :
  6032. case 'es' :
  6033. return 'consumida'
  6034. break
  6035. case 'br' :
  6036. case 'pt' :
  6037. return 'consumida'
  6038. break
  6039. default :
  6040. return stringa
  6041. break
  6042. }
  6043. break
  6044. case 'consumption' :
  6045. switch (paese) {
  6046. case 'it' :
  6047. return 'consumo'
  6048. break
  6049. case 'fr' :
  6050. return 'consommation'
  6051. break
  6052. case 'de' :
  6053. return 'Verbrauch'
  6054. break
  6055. case 'ar' :
  6056. case 'cl' :
  6057. case 'co' :
  6058. case 'mx' :
  6059. case 'pe' :
  6060. case 've' :
  6061. case 'es' :
  6062. return 'consumo'
  6063. break
  6064. case 'br' :
  6065. case 'pt' :
  6066. return 'consumo'
  6067. break
  6068. default :
  6069. return stringa
  6070. break
  6071. }
  6072. break
  6073.  
  6074. case 'After your confirmation, you must visit all the cities to refresh the data\n' :
  6075. switch (paese) {
  6076. case 'it' :
  6077. return 'Dopo la conferma, è necessario visitare tutte le città per aggiornare i dati\n'
  6078. break
  6079. case 'fr' :
  6080. return 'Après la confirmation, vous devez visiter toutes'+
  6081. ' les villes pour rafraîchir les données\n'
  6082. break
  6083. case 'de' :
  6084. return 'Nach Ihrer Bestätigung, müssen Sie besuchen alle Städte, um die Daten zu aktualisieren\n'
  6085. break
  6086. case 'ar' :
  6087. case 'cl' :
  6088. case 'co' :
  6089. case 'mx' :
  6090. case 'pe' :
  6091. case 've' :
  6092. case 'es' :
  6093. return 'Después de su confirmación, deberá visitar todas las ciudades para actualizar los datos\n'
  6094. break
  6095. case 'br' :
  6096. case 'pt' :
  6097. return 'Após a confirmação, você deve visitar todas as cidades para atualizar os dados\n'
  6098. break
  6099. default :
  6100. return stringa
  6101. break
  6102. }
  6103. break
  6104. case 'Confirm' :
  6105. switch (paese) {
  6106. case 'it' :
  6107. return 'Confermi'
  6108. break
  6109. case 'fr' :
  6110. return 'Confirmer'
  6111. break
  6112. case 'de' :
  6113. return 'Bestätigen'
  6114. break
  6115. case 'ar' :
  6116. case 'cl' :
  6117. case 'co' :
  6118. case 'mx' :
  6119. case 'pe' :
  6120. case 've' :
  6121. case 'es' :
  6122. return 'Confirmar'
  6123. break
  6124. case 'br' :
  6125. case 'pt' :
  6126. return 'Confirmar'
  6127. break
  6128. default :
  6129. return stringa
  6130. break
  6131. }
  6132. break
  6133. case 'click for transport goods/army from current city' :
  6134. switch (paese) {
  6135. case 'it' :
  6136. return 'clicca per il trasporto di merci/esercito dalla città corrente'
  6137. break
  6138. case 'fr' :
  6139. return 'cliquez pour le transport de marchandises/armée de la ville actuelle'
  6140. break
  6141. case 'de' :
  6142. return 'Klicken Sie für den Transport Waren/Armee aus aktuellen Stadt'
  6143. break
  6144. case 'ar' :
  6145. case 'cl' :
  6146. case 'co' :
  6147. case 'mx' :
  6148. case 'pe' :
  6149. case 've' :
  6150. case 'es' :
  6151. return 'clic para el transporte de mercancías/ejército de la ciudad actual'
  6152. break
  6153. case 'br' :
  6154. case 'pt' :
  6155. return 'clique para transporte de mercadorias/exército de cidade atual'
  6156. break
  6157. default :
  6158. return stringa
  6159. break
  6160. }
  6161. break
  6162. case 'no transport to the same city' :
  6163. switch (paese) {
  6164. case 'it' :
  6165. return 'nessun trasporto per la città stessa'
  6166. break
  6167. case 'fr' :
  6168. return 'pas de transport dans la même ville'
  6169. break
  6170. case 'de' :
  6171. return 'kein Transport aus der gleichen Stadt'
  6172. break
  6173. case 'ar' :
  6174. case 'cl' :
  6175. case 'co' :
  6176. case 'mx' :
  6177. case 'pe' :
  6178. case 've' :
  6179. case 'es' :
  6180. return 'no hay transporte a la misma ciudad'
  6181. break
  6182. case 'br' :
  6183. case 'pt' :
  6184. return 'nenhum transporte para a mesma cidade'
  6185. break
  6186. default :
  6187. return stringa
  6188. break
  6189. }
  6190. break
  6191. case 'no fleet/army to the same city' :
  6192. switch (paese) {
  6193. case 'it' :
  6194. return 'nessuna flotta/esercito per la città stessa'
  6195. break
  6196. case 'fr' :
  6197. return 'pas de flotte/armée dans la même ville'
  6198. break
  6199. case 'de' :
  6200. return 'kein Flotte/Armee aus der gleichen Stadt'
  6201. break
  6202. case 'ar' :
  6203. case 'cl' :
  6204. case 'co' :
  6205. case 'mx' :
  6206. case 'pe' :
  6207. case 've' :
  6208. case 'es' :
  6209. return 'no hay flota/ejército a la misma ciudad'
  6210. break
  6211. case 'br' :
  6212. case 'pt' :
  6213. return 'nenhum frota/exército para a mesma cidade'
  6214. break
  6215. default :
  6216. return stringa
  6217. break
  6218. }
  6219. 'no fleet/army to the same city'
  6220. break
  6221. case 'Port occupied by' :
  6222. switch (paese) {
  6223. case 'it' :
  6224. return 'Porto occupato da'
  6225. break
  6226. case 'fr' :
  6227. return 'Port occupé par'
  6228. break
  6229. case 'de' :
  6230. return 'Hafen besetzt durch'
  6231. break
  6232. case 'ar' :
  6233. case 'cl' :
  6234. case 'co' :
  6235. case 'mx' :
  6236. case 'pe' :
  6237. case 've' :
  6238. case 'es' :
  6239. return 'Puerto ocupado por'
  6240. break
  6241. case 'br' :
  6242. case 'pt' :
  6243. return 'Porto ocupado pela'
  6244. break
  6245. default :
  6246. return stringa
  6247. break
  6248. }
  6249. break
  6250. case 'City occupied by' :
  6251. switch (paese) {
  6252. case 'it' :
  6253. return 'Città occupata da'
  6254. break
  6255. case 'fr' :
  6256. return 'Ville occupée par'
  6257. break
  6258. case 'de' :
  6259. return 'Stadt besetzt durch'
  6260. break
  6261. case 'ar' :
  6262. case 'cl' :
  6263. case 'co' :
  6264. case 'mx' :
  6265. case 'pe' :
  6266. case 've' :
  6267. case 'es' :
  6268. return 'Ciudad ocupada por'
  6269. break
  6270. case 'br' :
  6271. case 'pt' :
  6272. return 'Cidade ocupada pela'
  6273. break
  6274. default :
  6275. return stringa
  6276. break
  6277. }
  6278. break
  6279. case 'deploy fleet' :
  6280. switch (paese) {
  6281. case 'it' :
  6282. return 'dispiega flotta'
  6283. break
  6284. case 'fr' :
  6285. return 'déployer flotte'
  6286. break
  6287. case 'de' :
  6288. return 'stationiere Flotte'
  6289. break
  6290. case 'ar' :
  6291. case 'cl' :
  6292. case 'co' :
  6293. case 'mx' :
  6294. case 'pe' :
  6295. case 've' :
  6296. case 'es' :
  6297. return 'despliegue flota'
  6298. break
  6299. case 'br' :
  6300. case 'pt' :
  6301. return 'implantar frota'
  6302. break
  6303. default :
  6304. return stringa
  6305. break
  6306. }
  6307. break
  6308. case 'deploy army' :
  6309. switch (paese) {
  6310. case 'it' :
  6311. return 'dispiega esercito'
  6312. break
  6313. case 'fr' :
  6314. return 'déployer armée'
  6315. break
  6316. case 'de' :
  6317. return 'stationiere Armee'
  6318. break
  6319. case 'ar' :
  6320. case 'cl' :
  6321. case 'co' :
  6322. case 'mx' :
  6323. case 'pe' :
  6324. case 've' :
  6325. case 'es' :
  6326. return 'despliegue ejército'
  6327. break
  6328. case 'br' :
  6329. case 'pt' :
  6330. return 'implantar exército'
  6331. break
  6332. default :
  6333. return stringa
  6334. break
  6335. }
  6336. break
  6337. case 'defend harbour' :
  6338. switch (paese) {
  6339. case 'it' :
  6340. return 'difendi porto'
  6341. break
  6342. case 'fr' :
  6343. return 'défendre port'
  6344. break
  6345. case 'de' :
  6346. return 'verteidige Hafen'
  6347. break
  6348. case 'ar' :
  6349. case 'cl' :
  6350. case 'co' :
  6351. case 'mx' :
  6352. case 'pe' :
  6353. case 've' :
  6354. case 'es' :
  6355. return 'defender puerto'
  6356. break
  6357. case 'br' :
  6358. case 'pt' :
  6359. return 'defender porto'
  6360. break
  6361. default :
  6362. return stringa
  6363. break
  6364. }
  6365. break
  6366. case 'defend city' :
  6367. switch (paese) {
  6368. case 'it' :
  6369. return 'difendi città'
  6370. break
  6371. case 'fr' :
  6372. return 'défendre port'
  6373. break
  6374. case 'de' :
  6375. return 'verteidige Stadt'
  6376. break
  6377. case 'ar' :
  6378. case 'cl' :
  6379. case 'co' :
  6380. case 'mx' :
  6381. case 'pe' :
  6382. case 've' :
  6383. case 'es' :
  6384. return 'defender ciudad'
  6385. break
  6386. case 'br' :
  6387. case 'pt' :
  6388. return 'defender cidade'
  6389. break
  6390. default :
  6391. return stringa
  6392. break
  6393. }
  6394. break
  6395. case 'blockade harbour' :
  6396. switch (paese) {
  6397. case 'it' :
  6398. return 'blocca porto'
  6399. break
  6400. case 'fr' :
  6401. return 'bloquer port'
  6402. break
  6403. case 'de' :
  6404. return 'blockade Hafen'
  6405. break
  6406. case 'ar' :
  6407. case 'cl' :
  6408. case 'co' :
  6409. case 'mx' :
  6410. case 'pe' :
  6411. case 've' :
  6412. case 'es' :
  6413. return 'bloquear puerto'
  6414. break
  6415. case 'br' :
  6416. case 'pt' :
  6417. return 'bloqueia porto'
  6418. break
  6419. default :
  6420. return stringa
  6421. break
  6422. }
  6423. break
  6424. case 'occupy city' :
  6425. switch (paese) {
  6426. case 'it' :
  6427. return 'occupa città'
  6428. break
  6429. case 'fr' :
  6430. return 'occuper ville'
  6431. break
  6432. case 'de' :
  6433. return 'besetzen Stadt'
  6434. break
  6435. case 'ar' :
  6436. case 'cl' :
  6437. case 'co' :
  6438. case 'mx' :
  6439. case 'pe' :
  6440. case 've' :
  6441. case 'es' :
  6442. return 'ocupar ciudad'
  6443. break
  6444. case 'br' :
  6445. case 'pt' :
  6446. return 'ocupar cidade'
  6447. break
  6448. default :
  6449. return stringa
  6450. break
  6451. }
  6452. break
  6453. case 'completed' :
  6454. switch (paese) {
  6455. case 'it' :
  6456. return 'completato'
  6457. break
  6458. case 'fr' :
  6459. return 'terminé'
  6460. break
  6461. case 'de' :
  6462. return 'fertiggestellt'
  6463. break
  6464. case 'ar' :
  6465. case 'cl' :
  6466. case 'co' :
  6467. case 'mx' :
  6468. case 'pe' :
  6469. case 've' :
  6470. case 'es' :
  6471. return 'terminado'
  6472. break
  6473. case 'br' :
  6474. case 'pt' :
  6475. return 'concluído'
  6476. break
  6477. default :
  6478. return stringa
  6479. break
  6480. }
  6481. break
  6482. case 'merchant ships' :
  6483. switch (paese) {
  6484. case 'it' :
  6485. return 'navi mercantili'
  6486. break
  6487. case 'fr' :
  6488. return 'navires marchands'
  6489. break
  6490. case 'de' :
  6491. return 'Handlsschiffe'
  6492. break
  6493. case 'ar' :
  6494. case 'cl' :
  6495. case 'co' :
  6496. case 'mx' :
  6497. case 'pe' :
  6498. case 've' :
  6499. case 'es' :
  6500. return 'barcos mercantes'
  6501. break
  6502. case 'br' :
  6503. case 'pt' :
  6504. return 'barcos de comércio'
  6505. break
  6506. default :
  6507. return stringa
  6508. break
  6509. }
  6510. break
  6511. case 'visit the forest' :
  6512. switch (paese) {
  6513. case 'it' :
  6514. return 'visitare la foresta'
  6515. break
  6516. case 'fr' :
  6517. return 'visiter la forêt'
  6518. break
  6519. case 'de' :
  6520. return 'besuchen Sie den Wald'
  6521. break
  6522. case 'ar' :
  6523. case 'cl' :
  6524. case 'co' :
  6525. case 'mx' :
  6526. case 'pe' :
  6527. case 've' :
  6528. case 'es' :
  6529. return 'visitar el bosque'
  6530. break
  6531. case 'br' :
  6532. case 'pt' :
  6533. return 'visitara floresta'
  6534. break
  6535. default :
  6536. return stringa
  6537. break
  6538. }
  6539. break
  6540. case 'visit the Sulphur pit' :
  6541. switch (paese) {
  6542. case 'it' :
  6543. return 'visitare la cava di Zolfo'
  6544. break
  6545. case 'fr' :
  6546. return 'visiter la Soufrière'
  6547. break
  6548. case 'de' :
  6549. return 'besuchen Sie den Schwefelgrube'
  6550. break
  6551. case 'ar' :
  6552. case 'cl' :
  6553. case 'co' :
  6554. case 'mx' :
  6555. case 'pe' :
  6556. case 've' :
  6557. case 'es' :
  6558. return 'visitar la mina de Azufre'
  6559. break
  6560. case 'br' :
  6561. case 'pt' :
  6562. return 'visitar o poço de Enxofre'
  6563. break
  6564. default :
  6565. return stringa
  6566. break
  6567. }
  6568. break
  6569. case 'visit the Quarry' :
  6570. switch (paese) {
  6571. case 'it' :
  6572. return 'visitare la Cava'
  6573. break
  6574. case 'fr' :
  6575. return 'visiter la Carrière'
  6576. break
  6577. case 'de' :
  6578. return 'besuchen Sie die Marmormine'
  6579. break
  6580. case 'ar' :
  6581. case 'cl' :
  6582. case 'co' :
  6583. case 'mx' :
  6584. case 'pe' :
  6585. case 've' :
  6586. case 'es' :
  6587. return 'visitar la Cantera'
  6588. break
  6589. case 'br' :
  6590. case 'pt' :
  6591. return 'visitar a Pedreira'
  6592. break
  6593. default :
  6594. return stringa
  6595. break
  6596. }
  6597. break
  6598. case 'visit the Crystal mine' :
  6599. switch (paese) {
  6600. case 'it' :
  6601. return 'visitare la miniera di Cristallo'
  6602. break
  6603. case 'fr' :
  6604. return 'visiter la mine de Cristal'
  6605. break
  6606. case 'de' :
  6607. return 'besuchen Sie die Kristalmine'
  6608. break
  6609. case 'ar' :
  6610. case 'cl' :
  6611. case 'co' :
  6612. case 'mx' :
  6613. case 'pe' :
  6614. case 've' :
  6615. case 'es' :
  6616. return 'visitar la mina de Cristal'
  6617. break
  6618. case 'br' :
  6619. case 'pt' :
  6620. return 'visitar a mina de Cristal'
  6621. break
  6622. default :
  6623. return stringa
  6624. break
  6625. }
  6626. break
  6627. case 'visit the Vines' :
  6628. switch (paese) {
  6629. case 'it' :
  6630. return 'visitare i Vigneti'
  6631. break
  6632. case 'fr' :
  6633. return 'visiter les Vignes'
  6634. break
  6635. case 'de' :
  6636. return 'besuchen Sie die Weinberge'
  6637. break
  6638. case 'ar' :
  6639. case 'cl' :
  6640. case 'co' :
  6641. case 'mx' :
  6642. case 'pe' :
  6643. case 've' :
  6644. case 'es' :
  6645. return 'visitar los Viñedos'
  6646. break
  6647. case 'br' :
  6648. case 'pt' :
  6649. return 'visitar as Vinhas'
  6650. break
  6651. default :
  6652. return stringa
  6653. break
  6654. }
  6655. break
  6656. case 'not visited yet' :
  6657. switch (paese) {
  6658. case 'it' :
  6659. return 'non ancora visitata'
  6660. break
  6661. case 'fr' :
  6662. return 'pas encore visitée'
  6663. break
  6664. case 'de' :
  6665. return 'nicht besucht'
  6666. break
  6667. case 'ar' :
  6668. case 'cl' :
  6669. case 'co' :
  6670. case 'mx' :
  6671. case 'pe' :
  6672. case 've' :
  6673. case 'es' :
  6674. return 'aún no visitados'
  6675. break
  6676. case 'br' :
  6677. case 'pt' :
  6678. return 'ainda não visitadas'
  6679. break
  6680. default :
  6681. return stringa
  6682. break
  6683. }
  6684. break
  6685. case 'YOU HAVE NOT VISITED ALL CITIES YET' :
  6686. switch (paese) {
  6687. case 'it' :
  6688. return 'NON HAI ANCORA VISITATO TUTTE LE CITTÀ'
  6689. break
  6690. case 'fr' :
  6691. return "VOUS N'AVEZ PAS VISITÉ ENCORE TOUTES LES VILLES"
  6692. break
  6693. case 'de' :
  6694. return 'SIE HABEN NOCH NICHT ALLE STÄDTE BESUCHT'
  6695. break
  6696. case 'ar' :
  6697. case 'cl' :
  6698. case 'co' :
  6699. case 'mx' :
  6700. case 'pe' :
  6701. case 've' :
  6702. case 'es' :
  6703. return 'AÚN NO HA VISITADO TODAS LAS CIUDADES'
  6704. break
  6705. case 'br' :
  6706. case 'pt' :
  6707. return 'AINDA NÃO VISITOU TODAS AS CIDADES'
  6708. break
  6709. default :
  6710. return stringa
  6711. break
  6712. }
  6713. break
  6714. default :
  6715. return stringa
  6716. break
  6717. }
  6718. }
  6719.  
  6720.