// ==UserScript== // @name Greek Empire Overview // @name:el-gr Ελληνική Επισκόπηση Αυτοκρατορίας // @author germano / 1.17 to 1.18 by Ariston / up 1.183 germano/ from 1.183+ improvement by all players // @description Script improvement for Ikariam 0.7.x, Overview tables for resources, buildings and military inspired by Ikariam Empire Board // @description:el-gr Βελτίωση του κώδικα για το Ikariam 0.7.x, Πίνακες επισκόπησης για πόρους, κτήρια και στρατό εμπνευσμένα από το Ikariam Empire Board // @icon https://gf1.geo.gfsrv.net/cdn6f/271aa7178ede3b0ab441cdcf84094d.png // @namespace GreekEmpireOverview // @grant unsafeWindow // @grant GM_getValue // @grant GM_setValue // @grant GM_deleteValue // @grant GM_addStyle // @grant GM_registerMenuCommand // @grant GM_xmlhttpRequest // @grant GM_openInTab // // @exclude http://board.*.ikariam.gameforge.com* // @exclude http://*.ikariam.gameforge.*/board // @include /https?:\/\/s[0-9]*-[a-z]{2}\.ikariam\.gameforge\.com\/.*/ // // @require https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js // @require https://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js // @require http://malsup.github.com/jquery.form.js // @require https://momentjs.com/downloads/moment-with-locales.min.js // @require https://momentjs.com/downloads/moment-timezone-with-data.js // @require https://cdnjs.cloudflare.com/ajax/libs/anchorme/2.0.0/anchorme.min.js // // @license GPL-3.0-or-later // @compatible chrome // // @version 1.2 // // ==/UserScript== /************************************************* ******************** Includes ******************** *************************************************/ (function($) { var jQuery = $; if(typeof unsafeWindow.jQuery === 'undefined') return ; var isChrome = window.navigator.vendor.match(/Google/) ? true : false; if(!isChrome) { this.$ = this.jQuery = jQuery.noConflict(true); } $.extend( { exclusive: function(arr) { return $.grep(arr,function(v,k) { return $.inArray(v,arr)===k;}); }, mergeValues: function(a,b,c) { var length = arguments.length; if(length==1 || typeof arguments[0]!=="object" || typeof arguments[1]!=="object") { return arguments[0]; } var args = jQuery.makeArray(arguments); var i = 1; var target = args[0]; for(;i0?time-$.now():0));}; retEvents.scheduleActionAtInterval = function(callback,time) {return clearInterval.bind(undefined,setInterval(callback,time));}; return retEvents; })(); /************************************************ ******************** Globals ******************** ************************************************/ var debug = true; var log = false; var timing = false; if(!unsafeWindow) unsafeWindow = window; /************************************************ ************ Inject button into page ************ ************************************************/ $('.menu_slots > .expandable:last').after(''); /************************************************ *************** Utility Functions *************** ************************************************/ var Utils = { islandids:{50:{50:1,49:4,48:6,51:9,52:15,54:40,55:43,46:60,45:62,57:103,58:104,42:152,41:153,62:230,61:231,64:437,65:439,35:563,36:564,34:569,67:676,68:677,69:679,70:682,32:859,31:861,30:863,72:1003,73:1004,74:1007,75:1008,25:1193,24:1195,22:1663,21:1665,20:1668,19:1670,80:1878,81:1880,16:2126,17:2127,84:2373,85:2376,14:2706,13:2708,87:3052,88:3053,10:3451,9:3453,11:3454,96:3770,97:3772,98:3774,99:3776,6:4099,7:4101,3:4719,4:4725,2:4733},51:{50:2,49:5,54:41,55:42,57:105,58:106,59:109,43:150,42:151,41:154,38:332,39:333,64:440,65:441,35:561,36:562,73:1005,72:1006,74:1009,75:1010,28:1173,27:1175,77:1443,78:1445,20:1667,19:1669,81:1881,82:1882,16:2125,17:2128,84:2374,85:2375,90:2383,91:2385,93:3064,94:3066,10:3450,9:3452,96:3771,97:3773,98:3775,99:3777,100:3778,6:4098,7:4100},49:{48:7,51:11,52:13,49:16,46:61,45:63,44:68,57:101,58:102,60:227,61:228,62:229,39:335,38:337,64:436,65:438,36:565,35:566,34:570,67:675,68:678,69:680,70:681,32:858,31:860,30:862,29:866,73:1000,74:1002,27:1185,26:1187,25:1194,24:1196,78:1441,77:1442,22:1664,21:1666,80:1877,81:1879,83:2367,84:2369,14:2707,13:2709,87:3050,88:3051,89:3054,91:3057,92:3059,93:3061,94:3063,11:3455,10:3456,7:4106,6:4108,3:4723,4:4724,2:4732},47:{50:17,49:18,48:24,52:31,53:32,54:36,55:37,46:66,45:67,57:99,58:100,42:157,41:158,60:222,61:223,39:339,38:341,63:434,64:435,33:571,32:572,66:671,67:672,68:673,71:685,70:686,30:867,29:868,26:1189,27:1190,76:1436,77:1438,22:1671,23:1672,24:1675,80:1873,81:1874,17:2131,16:2132,19:2135,18:2136,20:2137,84:2370,85:2371,13:2712,14:2713,87:3046,88:3047,11:3459,10:3460,9:3463,96:3760,97:3762,98:3764,4:4727,3:4728},46:{49:19,50:20,48:25,52:30,53:33,57:97,58:98,42:159,43:160,41:165,60:221,61:224,39:340,38:342,37:343,36:345,63:432,64:433,32:573,33:574,34:575,66:669,67:670,68:674,70:687,71:688,73:996,74:998,26:1191,27:1192,76:1433,77:1435,23:1673,22:1674,24:1676,79:1868,80:1870,81:1872,82:1876,20:2138,19:2139,88:3045,90:3041,91:3042,87:3044,11:3461,10:3462,7:3473,6:3474,93:3755,94:3757,97:3766,98:3767,3:4730,4:4731},45:{50:26,49:28,52:34,53:35,46:70,45:71,55:93,56:94,57:96,43:161,42:162,37:344,36:346,63:430,64:431,34:576,33:577,66:667,67:668,30:869,29:870,73:995,74:997,76:1432,77:1434,24:1677,23:1678,79:1867,80:1869,81:1871,82:1875,84:2364,85:2365,16:2714,17:2715,14:2725,13:2727,90:3039,91:3043,8:3469,7:3470,6:3475,93:3754,94:3756,95:3759,97:3768,98:3769},44:{50:27,49:29,45:72,46:73,47:74,55:92,56:95,43:163,42:164,59:218,60:219,39:347,40:348,62:427,63:429,33:578,34:579,29:871,30:872,31:873,70:984,71:986,69:990,73:992,74:994,26:1197,27:1198,23:1679,24:1680,21:2140,20:2141,84:2362,85:2363,16:2716,17:2717,18:2718,14:2726,13:2728,12:2732,11:2733,87:3009,88:3011,89:3013,90:3038,9:3465,8:3467,7:3471,93:3751,94:3753,95:3758,4:4120,3:4121},48:{55:38,54:39,46:64,45:65,44:69,42:155,41:156,60:225,61:226,39:336,38:338,36:567,35:568,70:683,71:684,30:864,29:865,73:999,74:1001,27:1186,26:1188,76:1437,77:1439,78:1440,16:2129,17:2130,18:2133,19:2134,83:2366,84:2368,85:2372,14:2710,13:2711,87:3048,88:3049,89:3055,91:3056,92:3058,93:3060,94:3062,11:3457,10:3458,9:3464,96:3761,97:3763,98:3765,7:4107,6:4109,4:4726,3:4729},52:{54:44,53:45,52:48,47:57,46:58,57:107,58:108,59:110,44:144,43:145,61:232,62:233,39:330,38:331,64:442,65:443,36:559,35:560,67:691,68:693,69:695,70:697,33:851,32:853,31:855,30:857,28:1174,27:1176,26:1181,25:1183,77:1444,78:1446,79:1451,23:1652,22:1654,81:1883,82:1884,17:2121,16:2124,87:2377,88:2379,89:2381,90:2384,91:2386,14:2694,13:2695,12:2705,93:3065,94:3067,100:3779,99:3780,6:4095,5:4097,3:4709,2:4710},53:{53:46,54:47,52:49,50:50,49:52,48:54,47:56,46:59,56:111,57:112,44:143,43:146,42:149,61:234,62:235,40:327,39:329,38:334,65:444,64:445,67:692,68:694,69:696,70:698,71:701,33:850,32:852,31:854,30:856,73:1011,74:1013,75:1021,28:1177,27:1179,26:1182,25:1184,77:1447,78:1449,79:1452,23:1653,22:1655,21:1656,81:1885,82:1886,84:1887,85:1889,19:2117,18:2119,17:2122,16:2123,87:2378,88:2380,89:2382,14:2693,13:2696,12:2699,93:3068,94:3070,10:3441,9:3443,8:3445,96:3783,97:3785,6:4094,5:4096,3:4711,2:4712,1:4717},54:{50:51,49:53,48:55,57:113,56:114,43:147,42:148,61:243,60:244,59:247,40:326,39:328,36:552,35:553,70:699,71:700,73:1012,74:1014,75:1022,28:1178,27:1180,77:1448,78:1450,21:1657,22:1658,84:1888,85:1890,19:2118,18:2120,13:2697,12:2698,93:3069,94:3071,92:3072,91:3073,10:3440,9:3442,8:3444,96:3784,97:3786,98:3787,99:3789,100:3791,2:4713,1:4714},43:{47:75,46:76,52:85,53:87,58:215,59:216,60:220,40:349,39:350,62:426,63:428,36:580,37:581,65:665,66:666,31:874,30:875,68:981,69:982,70:983,71:985,73:991,74:993,27:1199,26:1200,76:1427,77:1429,78:1431,80:1863,81:1864,82:1866,21:2142,20:2143,84:2360,85:2361,18:2719,17:2720,14:2729,13:2730,12:2731,11:2734,87:3008,88:3010,89:3012,90:3034,91:3037,9:3466,8:3468,7:3476,93:3750,94:3752,5:4110,4:4112,3:4122,97:4417,98:4418},42:{47:77,48:78,50:81,51:83,52:86,53:88,54:89,44:166,43:167,42:173,56:208,57:209,58:214,59:217,40:351,39:354,37:582,36:583,35:586,34:589,66:663,65:664,30:876,31:877,32:878,68:978,69:980,70:987,27:1201,28:1202,76:1426,77:1428,78:1430,24:1681,23:1682,80:1861,81:1862,82:1865,21:2144,20:2145,84:2358,85:2359,17:2721,16:2724,90:3035,91:3036,5:4111,4:4113,96:4410,97:4412,98:4414,99:4416},41:{48:79,47:80,50:82,51:84,54:90,53:91,43:168,44:169,45:170,42:174,56:207,57:210,58:211,40:352,39:353,62:424,61:425,36:584,37:585,35:587,34:588,64:658,65:660,66:661,32:879,31:880,68:977,69:979,28:1203,27:1204,72:1413,73:1415,74:1417,76:1423,77:1425,23:1683,24:1684,25:1685,80:1859,81:1860,21:2146,20:2147,19:2151,17:2722,16:2723,13:2737,14:2738,87:3004,88:3005,11:3477,10:3479,9:3483,8:3485,7:3487,93:3748,94:3749,5:4114,4:4115,96:4409,97:4411,98:4413,99:4415,2:4736,1:4739},55:{54:115,53:117,52:119,46:135,45:136,63:263,60:246,59:248,64:265,66:446,67:447,68:457,37:549,36:550,35:554,34:555,33:558,31:840,30:842,73:1015,74:1017,80:1453,81:1455,82:1461,24:1647,25:1648,21:1659,22:1660,85:1891,86:1893,88:2387,89:2388,16:2686,15:2688,91:3074,92:3075,8:3446,7:3449,98:3788,99:3790,100:3792,97:3793,5:4707,4:4708,2:4715,1:4716},56:{54:116,53:118,52:120,51:121,55:124,49:127,48:128,47:131,46:134,45:137,44:139,43:142,59:249,58:250,57:253,63:264,64:266,62:267,41:323,40:325,66:448,67:449,68:456,38:545,37:548,36:551,34:556,33:557,70:702,71:703,31:841,30:843,73:1016,74:1018,76:1023,77:1025,80:1454,81:1456,79:1457,82:1460,83:1462,27:1640,28:1641,26:1646,25:1649,24:1650,21:1661,22:1662,85:1892,86:1894,19:2114,18:2116,88:2389,89:2390,16:2685,15:2687,14:2690,13:2692,11:3438,91:3076,92:3077,94:3086,95:3087,10:3439,8:3447,7:3448,97:3794,98:3795,4:4705,5:4706},57:{51:122,52:123,55:125,54:126,49:129,48:130,47:132,46:133,44:140,43:141,59:262,58:252,57:254,62:268,63:269,61:270,41:322,40:324,66:450,67:451,38:546,37:547,70:704,71:705,31:844,30:846,73:1019,74:1020,76:1024,77:1026,79:1458,80:1459,83:1463,82:1464,27:1642,28:1643,26:1651,85:1895,86:1897,19:2113,18:2115,88:2391,89:2392,16:2682,15:2684,14:2689,13:2691,10:3436,11:3437,94:3083,95:3084,4:4703,3:4704},40:{45:171,44:172,58:212,57:213,60:421,61:422,62:423,64:657,65:659,28:1205,29:1206,27:1209,73:1414,72:1412,71:1411,74:1416,76:1422,77:1424,25:1686,24:1687,23:1688,79:1854,80:1856,81:1858,21:2148,20:2149,19:2150,83:2353,84:2354,85:2355,14:2739,13:2740,87:3001,88:3003,89:3007,11:3478,10:3480,9:3484,8:3486,7:3488,91:3737,92:3739,93:3741,94:3743,4:4116,5:4117,2:4738,1:4740},39:{47:175,48:176,49:179,50:180,51:184,52:186,54:187,55:190,40:355,41:356,42:359,60:420,38:590,37:591,35:601,34:602,32:881,31:882,67:974,68:975,29:1207,28:1208,70:1408,71:1410,76:1419,77:1421,79:1853,80:1855,81:1857,83:2350,84:2352,85:2356,14:2741,13:2743,16:2745,17:2746,87:3000,88:3002,89:3006,11:3481,10:3482,91:3736,92:3738,93:3740,94:3742,95:3744,96:3747,4:4118,5:4119,98:4419,99:4420,2:4741,1:4743},38:{47:177,48:178,49:181,50:182,51:183,52:185,54:188,55:189,56:203,57:206,41:357,40:358,42:360,44:368,45:369,59:417,60:419,38:592,37:593,36:598,35:600,34:603,62:640,63:642,64:643,65:649,32:883,31:884,67:973,68:976,74:1406,70:1407,71:1409,73:1404,76:1418,77:1420,26:1689,25:1691,24:1693,23:1695,20:2152,21:2153,83:2349,84:2351,14:2742,13:2744,16:2747,17:2748,18:2749,8:3489,7:3490,95:3745,96:3746,98:4421,99:4422,2:4742,1:4744},37:{56:204,57:205,42:361,41:362,45:370,44:371,59:416,60:418,38:594,37:595,62:639,63:641,64:647,65:648,32:885,31:886,67:971,68:972,28:1210,29:1211,74:1405,73:1403,26:1690,25:1692,24:1694,23:1696,79:1847,80:1849,81:1852,20:2154,21:2155,18:2750,17:2751,11:2765,10:2767,86:2991,87:2993,88:2995,89:2997,90:2999,8:3491,7:3492,93:3732,92:3734,5:4123,4:4124,99:4423,100:4424,2:4745,1:4746},58:{61:271,62:272,63:273,41:319,40:321,66:452,65:453,70:706,69:710,35:830,34:832,33:838,31:845,30:847,76:1027,77:1029,27:1644,28:1645,85:1896,86:1898,24:2102,23:2103,22:2106,21:2107,19:2110,18:2112,88:2393,89:2394,90:2395,16:2681,15:2683,92:3078,93:3080,94:3082,95:3085,9:3434,10:3435,97:3803,98:3804,6:4092,7:4093,4:4701,3:4702},59:{59:274,58:275,56:282,55:285,53:293,52:295,51:302,50:303,48:305,47:307,46:309,45:311,43:313,42:315,41:318,40:320,65:454,66:455,38:540,37:544,72:719,70:708,69:711,68:712,73:721,35:831,34:833,33:839,31:848,30:849,76:1028,77:1030,75:1031,79:1465,80:1466,82:1477,83:1478,25:2098,24:2101,23:2104,22:2105,21:2108,19:2109,18:2111,90:2396,89:2397,12:2679,13:2680,92:3079,93:3081,9:3432,10:3433,97:3802,98:3805,7:4090,6:4091,4:4699,3:4700},60:{58:276,59:277,60:278,56:283,55:286,53:294,52:296,51:301,50:304,48:306,47:308,46:310,45:312,43:314,42:316,62:458,63:459,37:538,38:539,72:720,68:713,69:714,73:722,34:834,35:836,75:1032,76:1033,79:1467,80:1468,82:1479,83:1480,84:1483,27:1638,28:1639,86:1900,87:1902,25:2099,24:2100,16:2671,15:2673,14:2675,13:2677,12:2678,95:3796,96:3798,97:3800,7:4088,6:4089},61:{59:279,60:280,58:281,55:287,56:288,52:297,51:298,62:460,63:461,64:462,65:465,40:532,39:535,38:536,37:537,67:715,68:716,71:723,72:724,34:835,35:837,32:1171,31:1172,78:1469,79:1470,80:1476,82:1481,83:1482,84:1484,28:1635,29:1636,27:1637,87:1899,86:1901,89:2398,90:2399,19:2660,18:2661,22:2667,21:2669,16:2670,15:2672,14:2674,13:2676,92:3088,93:3090,10:3426,9:3427,95:3797,96:3799,97:3801,99:3806,100:3808,7:4086,6:4087,4:4690,3:4691},62:{54:289,55:290,51:299,52:300,64:463,63:464,65:466,49:498,48:500,47:502,45:506,44:508,43:510,42:512,40:533,39:534,67:717,68:718,72:725,71:726,70:727,74:1034,75:1035,32:1169,31:1170,78:1471,79:1472,77:1473,28:1633,29:1634,86:1903,87:1904,25:2090,24:2091,89:2400,90:2401,19:2658,18:2659,22:2666,21:2668,92:3089,93:3091,11:3423,10:3425,9:3428,99:3807,100:3809,7:4084,6:4085,4:4688,3:4689},63:{55:291,54:292,61:467,60:468,59:471,58:472,57:475,49:499,48:501,47:503,45:507,44:509,43:511,42:513,70:728,71:729,72:730,37:818,36:820,74:1036,75:1037,34:1161,33:1163,32:1165,31:1167,77:1474,78:1475,81:1485,82:1486,28:1631,29:1632,86:1905,85:1907,84:1909,26:2087,25:2089,24:2092,89:2402,90:2403,19:2656,18:2657,22:2662,21:2665,92:3092,93:3093,94:3094,95:3096,96:3098,16:3410,15:3412,14:3414,13:3416,11:3422,10:3424,9:3429,99:3810,98:3812,4:4686,3:4687,2:4696},36:{41:363,42:364,40:365,44:372,45:373,46:374,47:377,49:378,50:379,51:382,53:386,54:387,38:596,37:597,63:650,64:654,33:887,32:888,34:891,35:893,67:968,68:969,29:1212,28:1213,70:1336,71:1338,72:1400,73:1402,76:1836,77:1837,79:1844,80:1846,81:1851,20:2156,21:2157,83:2346,84:2348,18:2752,17:2754,15:2756,14:2758,13:2760,12:2762,11:2764,10:2766,86:2990,87:2992,88:2994,89:2996,90:2998,8:3493,7:3494,93:3731,92:3733,94:3735,5:4125,4:4126,96:4400,97:4401,99:4425,100:4426},35:{40:366,41:367,46:375,47:376,49:380,50:381,51:383,53:388,54:389,55:390,56:391,58:398,59:400,60:413,61:414,37:604,38:605,63:652,64:653,33:889,32:890,34:892,35:894,66:965,67:966,68:970,30:1214,29:1215,70:1335,71:1337,72:1399,73:1401,26:1697,25:1698,75:1833,76:1834,77:1838,79:1843,80:1845,20:2158,21:2159,22:2160,23:2161,83:2345,84:2347,18:2753,17:2755,15:2757,14:2759,13:2761,12:2763,8:3495,7:3496,93:3728,94:3730,4:4127,5:4128,3:4129,2:4132,96:4402,97:4403},34:{51:384,50:385,56:392,55:393,54:394,53:395,58:399,59:401,60:412,61:415,43:617,44:619,63:655,64:656,66:964,67:967,29:1216,30:1217,25:1699,26:1700,27:1701,75:1832,76:1835,23:2162,22:2163,82:2342,83:2344,12:2768,13:2769,86:2983,87:2985,8:3497,9:3498,10:3499,91:3720,90:3722,89:3724,93:3727,94:3729,3:4130,2:4131,96:4404,97:4405,98:4406},33:{56:396,55:397,38:606,39:607,40:610,41:615,43:618,44:620,45:625,47:627,48:628,36:895,35:896,32:1218,33:1219,69:1332,70:1333,27:1702,26:1703,72:1818,73:1819,76:1839,77:1842,20:2173,19:2175,79:2338,80:2339,82:2341,83:2343,15:2770,16:2771,17:2774,85:2975,86:2977,87:2984,10:3500,9:3501,91:3719,90:3721,89:3723,6:4133,5:4134,97:4407,98:4408},64:{60:469,61:470,58:473,59:474,57:476,52:486,51:487,49:504,48:505,41:514,42:515,43:518,67:731,68:732,66:735,63:740,64:741,39:814,38:816,37:819,36:821,74:1038,75:1039,34:1162,33:1164,32:1166,31:1168,81:1487,82:1488,80:1489,86:1906,85:1908,84:1910,26:2086,25:2088,88:2404,89:2405,19:2654,18:2655,22:2663,21:2664,94:3095,95:3097,96:3099,16:3411,15:3413,14:3415,13:3417,9:3430,10:3431,99:3811,98:3813,7:4077,6:4079,4:4684,3:4685,2:4692,1:4693},65:{55:477,54:478,51:488,52:489,42:516,41:517,45:519,46:520,68:733,67:734,66:736,69:737,64:742,63:743,39:815,38:817,74:1040,75:1041,76:1042,71:1045,72:1046,80:1490,81:1491,79:1492,78:1495,28:1629,29:1630,26:2083,25:2085,24:2097,88:2406,89:2407,19:2652,18:2653,92:3100,91:3101,13:3418,12:3421,7:4076,6:4078,2:4694,1:4695},66:{54:479,55:480,56:481,57:484,52:490,51:492,46:521,45:522,44:523,47:526,48:527,49:528,69:738,68:739,63:744,62:746,60:752,59:753,37:822,38:823,39:826,75:1043,76:1044,71:1047,72:1048,35:1153,34:1155,33:1157,32:1159,79:1493,80:1494,78:1496,81:1497,30:1626,29:1627,28:1628,83:1911,84:1912,26:2082,25:2084,24:2093,23:2096,88:2408,87:2409,86:2412,21:2647,20:2649,19:2651,92:3102,91:3103,94:3120,95:3122,16:3406,15:3407,13:3419,12:3420,97:3814,98:3815,10:4057,9:4058,7:4073,6:4075,5:4081,4:4083},67:{55:482,56:483,57:485,52:491,51:493,44:524,45:525,49:529,48:530,47:531,63:745,62:747,66:1055,65:1054,60:754,59:755,42:801,41:803,38:824,37:825,39:827,72:1049,73:1050,35:1154,34:1156,33:1158,32:1160,30:1624,29:1625,83:1913,84:1914,24:2094,23:2095,88:2410,87:2411,86:2413,21:2646,20:2648,19:2650,91:3110,90:3111,94:3121,95:3123,17:3397,16:3399,15:3401,97:3816,98:3817,10:4056,9:4059,7:4072,6:4074,5:4080,4:4082,1:5141,2:5142},68:{53:494,52:497,60:756,59:757,42:802,41:804,39:828,38:829,72:1051,73:1052,65:1056,66:1057,68:1064,69:1065,70:1068,79:1498,78:1500,77:1502,76:1504,75:1506,30:1622,29:1623,83:1915,82:1916,81:1919,27:2074,26:2076,90:3112,91:3113,94:3124,93:3125,17:3396,16:3398,15:3400,14:3402,13:3405,97:3818,11:4054,10:4055,1:5139,2:5140},69:{53:495,52:496,59:758,60:759,61:760,57:763,56:766,55:767,50:781,49:783,47:789,46:791,45:793,44:795,41:807,42:809,64:1058,65:1059,63:1062,68:1066,69:1067,70:1069,36:1145,35:1148,79:1499,78:1501,77:1503,76:1505,75:1507,33:1610,32:1612,30:1620,29:1621,83:1917,82:1918,81:1920,27:2075,26:2077,25:2078,24:2080,85:2414,86:2415,22:2637,21:2639,20:2644,19:2645,90:3114,89:3115,88:3116,93:3126,94:3127,14:3403,13:3404,97:3819,96:3820,11:4051,10:4053,8:4070,7:4071,99:4427,100:4428,5:4669,4:4671,1:5137,2:5138},32:{38:608,39:609,40:614,41:616,43:621,44:624,45:626,47:629,48:630,49:631,36:897,35:898,53:935,51:931,52:933,58:945,59:946,60:948,62:952,63:954,64:956,65:958,33:1220,32:1221,31:1226,30:1228,29:1230,67:1328,68:1329,69:1331,70:1334,26:1704,27:1705,72:1820,73:1821,74:1822,76:1840,77:1841,24:2164,23:2166,22:2168,21:2170,20:2172,19:2174,79:2336,80:2337,15:2772,16:2773,17:2775,85:2976,86:2978,12:3502,13:3503,90:3716,91:3718,92:3726,6:4135,5:4136,7:4137,94:4390,95:4391,3:4751,2:4756},31:{43:622,44:623,49:632,48:633,47:634,36:899,35:900,52:934,53:936,51:932,54:939,56:941,57:943,58:944,59:947,60:949,62:953,63:955,64:957,65:959,33:1222,32:1225,31:1227,30:1229,29:1231,67:1327,68:1330,27:1706,26:1707,74:1823,73:1824,24:2165,23:2167,22:2169,21:2171,79:2334,80:2335,16:2776,15:2777,82:2973,83:2974,85:2979,86:2981,87:2986,88:2988,12:3504,13:3505,11:3508,90:3715,91:3717,92:3725,7:4138,6:4139,8:4140,9:4141,5:4144,94:4387,95:4389,96:4392,97:4394,3:4752,2:4755,100:4966,99:4967},30:{46:635,47:636,36:901,35:902,38:903,37:904,41:907,40:908,53:937,54:938,56:940,57:942,60:950,59:951,62:960,63:962,33:1223,32:1224,70:1814,71:1815,74:1825,75:1826,73:2294,77:2329,78:2331,79:2333,80:2340,15:2778,16:2779,18:2780,19:2781,82:2971,83:2972,85:2980,86:2982,87:2987,88:2989,12:3506,13:3507,11:3509,9:4142,8:4143,96:4393,97:4395,3:4757,2:4759,99:4964,100:4965},29:{47:637,46:638,38:905,37:906,41:909,40:910,42:911,43:919,44:921,62:961,63:963,49:1278,50:1279,51:1281,65:1321,66:1322,30:1708,29:1709,28:1712,27:1713,26:1716,68:1806,69:1807,70:1816,71:1817,74:1827,75:1828,73:1829,24:2176,23:2178,77:2328,78:2330,79:2332,18:2782,19:2783,20:2784,21:2785,82:2968,83:2969,90:3713,91:3714,93:4375,94:4377,96:4396,97:4398,3:4758,2:4760,1:4761,5:4764,6:4765,100:4962,99:4963},70:{61:761,60:762,57:764,56:765,55:768,50:782,49:784,47:790,46:792,45:794,44:796,41:808,42:810,40:812,64:1060,65:1061,63:1063,67:1070,68:1071,38:1141,37:1144,36:1146,35:1147,73:1508,72:1509,33:1611,32:1613,25:2079,24:2081,85:2416,86:2417,22:2636,21:2638,20:2640,19:2642,89:3117,88:3118,90:3119,93:3128,92:3129,94:3132,17:3387,16:3389,97:3821,96:3822,11:4050,10:4052,8:4068,7:4069,99:4429,100:4430,5:4670,4:4672,1:5135,2:5136},71:{57:769,58:771,53:773,52:776,50:785,49:786,47:799,46:800,41:811,40:813,67:1072,68:1073,38:1142,37:1143,72:1510,73:1511,71:1512,70:1513,74:1516,32:1614,31:1616,30:1618,82:1921,81:1922,80:1925,79:1926,76:1933,77:1934,28:2060,27:2068,85:2418,84:2419,20:2641,19:2643,92:3130,93:3131,94:3133,17:3386,16:3388,15:3390,14:3392,12:4046,11:4048,8:4066,7:4067,99:4431,100:4432,5:4673,4:4675,1:5133,2:5134},72:{57:770,58:772,53:774,52:775,55:777,54:780,50:787,49:788,64:1074,65:1075,62:1083,61:1086,60:1088,44:1130,43:1131,37:1149,38:1150,70:1514,71:1515,73:1517,74:1518,35:1600,34:1602,32:1615,31:1617,30:1619,82:1923,81:1924,80:1927,79:1928,76:1935,77:1936,28:2061,27:2069,84:2420,85:2421,86:2422,87:2423,25:2625,24:2627,23:2629,22:2631,89:3134,90:3135,15:3391,14:3393,96:3823,97:3825,12:4047,11:4049,9:4062,8:4064,99:4433,100:4434,5:4674,4:4676},73:{55:778,54:779,64:1076,65:1077,66:1079,67:1081,62:1084,61:1085,60:1087,47:1123,46:1124,45:1126,44:1128,43:1132,41:1133,40:1135,37:1151,38:1152,70:1521,69:1522,35:1601,34:1603,79:1929,80:1930,76:1937,77:1938,28:2070,27:2072,87:2424,86:2425,25:2624,24:2626,23:2628,22:2630,21:2632,20:2634,89:3136,90:3137,91:3140,92:3141,18:3374,17:3376,15:3394,14:3395,96:3824,97:3826,95:3827,94:3829,12:4060,11:4061,9:4063,8:4065,99:4435,100:4436,5:4678,6:4680,4:4682,1:5131,2:5132},28:{42:912,41:913,43:920,44:922,32:1232,33:1233,34:1236,35:1237,49:1277,50:1280,51:1282,53:1294,54:1295,56:1300,57:1301,58:1304,59:1307,60:1308,65:1320,66:1323,30:1710,29:1711,28:1714,27:1715,26:1717,68:1808,69:1809,24:2177,23:2179,20:2786,21:2787,19:2788,81:2965,82:2967,16:3510,15:3511,85:3697,86:3698,88:3705,89:3707,90:3709,91:3711,13:4145,12:4147,11:4152,10:4153,9:4154,8:4155,93:4376,94:4378,96:4397,97:4399,1:4762,2:4763,5:4766,6:4767,99:4960,100:4961},74:{65:1078,66:1080,67:1082,61:1089,62:1090,58:1095,57:1096,52:1112,51:1115,50:1117,48:1119,47:1121,46:1125,45:1127,44:1129,41:1134,40:1136,70:1523,69:1524,35:1604,34:1606,33:1608,79:1931,80:1932,76:1939,77:1940,75:1941,72:1944,73:1945,30:2056,31:2058,28:2071,27:2073,83:2426,84:2427,82:2430,21:2633,20:2635,90:3138,91:3139,92:3142,18:3375,17:3377,95:3828,94:3830,5:4679,6:4681,4:4683,1:5128,2:5129},75:{62:1091,63:1092,57:1097,58:1098,59:1099,55:1106,54:1108,53:1110,52:1113,51:1114,50:1118,48:1120,47:1122,42:1137,41:1139,38:1593,37:1594,35:1605,34:1607,33:1609,75:1942,76:1943,72:1946,73:1947,31:2053,30:2055,83:2428,84:2429,82:2431,85:2432,25:2619,24:2621,23:2623,88:3143,87:3144,18:3378,17:3380,16:3383,15:3385,13:4038,12:4040,97:4449,98:4450,10:4661,9:4662,8:4663,1:5127,2:5130},76:{63:1093,62:1094,59:1100,58:1101,60:1102,57:1105,55:1107,54:1109,53:1111,52:1116,42:1138,41:1140,70:1525,69:1526,68:1529,66:1533,65:1534,44:1578,45:1579,39:1589,38:1591,37:1595,72:1948,73:1949,31:2054,30:2057,85:2433,84:2434,80:2435,79:2436,78:2439,28:2613,27:2615,26:2617,25:2618,24:2620,23:2622,88:3145,87:3146,21:3361,20:3363,18:3379,17:3381,16:3382,15:3384,90:3831,91:3833,92:3835,93:3837,94:3839,95:3841,13:4039,12:4041,97:4451,98:4452,8:4664,9:4665,10:4666,5:5118,6:5119,3:5121,2:5122,1:5126},77:{60:1103,59:1104,69:1527,70:1528,68:1530,66:1535,65:1536,50:1571,49:1572,48:1574,47:1576,45:1580,44:1581,39:1590,38:1592,72:1950,73:1951,74:1952,75:1955,35:2046,34:2047,32:2049,31:2051,30:2059,80:2437,79:2438,78:2440,77:2441,81:2446,82:2447,28:2612,27:2614,26:2616,88:3147,87:3148,21:3362,20:3364,90:3832,91:3834,92:3836,93:3838,94:3840,95:3842,12:4042,13:4044,97:4453,98:4454,10:4667,9:4668,5:5117,6:5120,2:5123,3:5124,1:5125},27:{32:1234,33:1235,34:1238,35:1239,36:1242,38:1247,39:1248,46:1268,47:1270,49:1283,50:1284,53:1293,54:1296,56:1302,57:1303,59:1305,58:1306,60:1309,62:1312,63:1313,64:1316,65:1317,26:1718,27:1719,68:1810,69:1811,24:2180,23:2182,71:2311,72:2312,73:2315,74:2316,76:2320,77:2322,78:2324,79:2326,81:2964,82:2966,16:3512,15:3513,17:3514,84:3695,85:3696,86:3699,88:3706,89:3708,90:3710,91:3712,13:4148,12:4149,11:4150,10:4151,9:4156,8:4157,94:4379,93:4381,5:4768,6:4771,4:4772},26:{35:1240,36:1241,32:1243,33:1246,39:1249,38:1250,41:1255,42:1256,43:1259,44:1260,46:1269,47:1271,52:1290,53:1291,54:1297,59:1310,60:1311,62:1314,63:1315,64:1318,65:1319,66:1326,29:1720,30:1721,68:1812,69:1813,24:2181,23:2183,71:2310,72:2313,73:2314,74:2317,76:2321,77:2323,78:2325,79:2327,20:2789,21:2790,81:2961,82:2963,17:3515,16:3516,18:3517,84:3692,85:3694,86:3704,94:4380,93:4382,5:4769,6:4770,4:4773,96:4949,97:4951,98:4953,99:4955,100:4957,2:5143,1:5144},25:{38:1251,39:1252,41:1257,42:1258,43:1261,44:1262,46:1272,47:1273,48:1276,50:1286,51:1287,52:1289,53:1292,54:1298,65:1324,66:1325,29:1722,30:1723,56:1788,57:1789,26:2184,27:2185,73:2318,74:2319,20:2791,21:2792,81:2960,82:2962,18:3518,17:3519,16:3520,84:3691,85:3693,14:4158,13:4159,88:4365,89:4366,90:4373,91:4374,93:4383,94:4385,8:4774,9:4776,10:4778,11:4781,96:4948,97:4950,98:4952,99:4954,100:4956,2:5145,1:5146},24:{38:1253,39:1254,42:1263,41:1266,47:1274,48:1275,50:1285,51:1288,30:1724,31:1725,33:1728,34:1729,35:1732,36:1733,56:1787,57:1790,58:1791,60:1798,61:1799,62:1802,63:1803,69:2296,68:2295,26:2186,27:2187,24:2193,25:2194,70:2303,71:2304,21:2793,22:2794,77:2951,78:2953,79:2955,85:3700,86:3703,13:4160,14:4161,88:4367,89:4368,90:4371,91:4372,93:4384,94:4386,8:4775,9:4777,10:4779,11:4780,7:4782,99:4958,100:4959,2:5147,3:5148,4:5151,5:5152},23:{41:1264,42:1265,30:1726,31:1727,33:1730,34:1731,35:1734,36:1735,44:1753,45:1757,53:1777,54:1779,58:1792,57:1793,60:1800,61:1801,62:1804,63:1805,27:2188,28:2189,25:2192,24:2195,65:2292,66:2293,68:2297,69:2298,70:2305,71:2306,72:2309,21:2795,22:2796,20:2797,74:2939,75:2941,77:2952,78:2954,79:2956,80:2959,18:3521,17:3523,82:3681,83:3682,85:3701,86:3702,14:4162,15:4163,88:4369,89:4370,7:4783,8:4784,97:4946,96:4947,3:5149,4:5150,5:5153},78:{68:1531,69:1532,65:1537,64:1538,66:1541,63:1543,62:1544,57:1555,56:1556,54:1563,53:1565,51:1567,50:1569,49:1573,48:1575,47:1577,44:1582,45:1583,43:1585,42:1588,40:1596,39:1598,74:1953,75:1954,36:2043,35:2044,34:2048,32:2050,31:2052,77:2442,78:2443,80:2444,81:2445,82:2448,88:3149,87:3150,85:3151,84:3152,24:3347,23:3348,21:3365,20:3367,18:4026,17:4028,16:4034,15:4036,12:4043,13:4045,97:4455,98:4456,7:5112,6:5114,5:5116},79:{64:1539,65:1540,66:1542,62:1545,63:1546,60:1547,59:1549,57:1557,56:1558,55:1561,54:1564,53:1566,51:1568,50:1570,44:1584,43:1586,42:1587,40:1597,39:1599,71:1956,72:1957,37:2041,36:2042,35:2045,29:2608,28:2609,85:3153,84:3154,26:3342,25:3344,24:3346,23:3349,21:3366,20:3368,90:3843,91:3845,18:4027,17:4029,16:4035,15:4037,93:4437,94:4439,97:4457,96:4458,10:5099,9:5100,7:5111,6:5113,5:5115,2:5398,3:5399},80:{60:1548,59:1550,57:1559,56:1560,55:1562,71:1958,72:1959,69:1960,70:1961,68:1964,48:2012,47:2014,46:2016,37:2038,36:2039,74:2483,75:2484,33:2600,32:2601,30:2604,29:2605,28:2610,85:3155,84:3156,86:3159,87:3160,82:3167,81:3168,77:3176,78:3178,79:3180,26:3343,25:3345,20:3369,90:3844,91:3846,89:3847,17:4030,16:4032,93:4438,94:4440,97:4459,96:4460,99:4461,100:4462,13:4657,12:4658,10:5101,9:5102,3:5396,2:5397},81:{59:1551,60:1553,69:1962,70:1963,68:1965,65:1968,66:1969,63:1979,62:1980,53:1999,52:2000,50:2007,49:2009,48:2013,47:2015,46:2017,44:2020,43:2022,42:2028,41:2030,40:2032,38:2034,37:2036,36:2040,75:2485,74:2482,34:2598,33:2599,32:2602,30:2606,29:2607,28:2611,85:3157,84:3158,86:3161,87:3162,82:3169,81:3170,77:3177,78:3179,79:3181,23:3357,22:3358,20:3370,19:3371,89:3848,90:3849,91:3850,17:4031,16:4033,93:4441,94:4443,99:4463,100:4464,14:4649,13:4650,12:4659,10:5103,9:5104,8:5108,7:5110,5:5391,4:5393,3:5395},82:{59:1552,60:1554,68:1966,69:1967,65:1970,66:1971,63:1981,62:1982,57:1987,56:1989,53:2001,52:2002,54:2003,50:2008,49:2010,46:2018,47:2019,44:2021,43:2023,42:2029,41:2031,40:2033,38:2035,37:2037,74:2481,73:2458,72:2461,34:2595,33:2596,82:3171,79:3182,26:3350,25:3352,24:3354,23:3356,22:3359,19:3372,20:3373,93:4442,94:4444,99:4465,98:4466,97:4471,96:4472,100:4474,14:4651,13:4652,12:4660,10:5105,9:5106,8:5107,7:5109,5:5392,4:5394},22:{34:1736,35:1737,38:1740,39:1741,44:1754,45:1755,46:1762,47:1763,49:1766,50:1767,51:1770,53:1776,54:1778,55:1782,58:1794,57:1795,27:2190,28:2191,65:2290,66:2291,68:2299,69:2300,71:2307,72:2308,20:2798,21:2799,74:2940,75:2942,79:2957,80:2958,18:3522,17:3524,82:3683,83:3684,15:4164,14:4165,10:4785,11:4786,12:4789,91:4936,92:4938,94:4939,95:4941,96:4944,97:4945,99:5549,100:5550},21:{34:1738,35:1739,38:1742,39:1743,37:1744,40:1747,41:1750,42:1751,44:1758,45:1759,46:1764,47:1765,49:1768,50:1769,51:1771,54:1780,55:1781,58:1796,57:1797,30:2196,31:2197,32:2200,60:2279,61:2280,63:2282,64:2283,65:2286,66:2287,68:2301,69:2302,23:2800,24:2802,25:2804,74:2943,75:2945,76:2947,77:2949,18:3525,17:3527,82:3685,83:3686,84:3690,86:4363,87:4364,10:4787,11:4788,12:4790,89:4931,90:4933,91:4935,92:4937,94:4940,95:4942,96:4943,8:5154,7:5156,6:5158,5:5160,3:5440,2:5441,99:5547,100:5548},20:{37:1745,38:1746,40:1748,41:1749,42:1752,44:1760,45:1761,51:1772,52:1773,54:1783,55:1784,30:2198,31:2199,32:2201,60:2277,61:2278,63:2284,64:2285,65:2288,66:2289,23:2801,24:2803,25:2805,27:2814,28:2815,71:2931,72:2932,74:2944,75:2946,76:2948,77:2950,18:3526,17:3528,20:3536,21:3537,79:3677,80:3678,82:3687,83:3688,84:3689,15:4166,14:4167,86:4361,87:4362,12:4791,11:4793,89:4932,90:4934,8:5155,7:5157,6:5159,5:5161,3:5438,2:5439,98:5543,99:5545},19:{52:1774,51:1775,54:1785,55:1786,32:2202,33:2203,31:2206,34:2208,35:2209,47:2242,48:2244,49:2246,58:2269,59:2271,60:2275,61:2276,24:2813,25:2812,27:2816,28:2817,68:2925,69:2927,71:2933,72:2934,21:3539,20:3538,79:3676,80:3679,14:4168,15:4169,86:4359,87:4360,12:4792,11:4794,8:5162,9:5164,92:5326,93:5328,94:5330,95:5332,96:5334,3:5436,2:5437,98:5544,99:5546},83:{65:1972,66:1973,63:1983,62:1984,57:1988,56:1990,54:2004,53:2005,52:2006,77:2488,73:2460,72:2462,76:2486,71:2465,35:2591,34:2593,33:2597,82:3172,83:3173,79:3183,80:3184,31:3332,30:3333,29:3338,28:3339,26:3351,25:3353,24:3355,23:3360,85:3851,86:3853,93:4445,92:4446,99:4467,98:4468,97:4469,96:4470,94:4473,90:4475,89:4477,88:4479,17:4647,16:4648,14:4653,13:4654},84:{65:1974,66:1975,67:1978,63:1985,62:1986,58:1991,57:1992,60:1995,59:1996,76:2487,71:2464,70:2466,69:2469,77:2489,75:2490,50:2552,49:2553,47:2554,46:2555,45:2558,44:2559,42:2566,41:2567,39:2579,38:2580,37:2583,35:2592,34:2594,33:2603,83:3174,82:3175,80:3185,79:3186,31:3334,30:3335,29:3340,28:3341,85:3852,86:3854,21:4019,20:4020,93:4447,92:4448,90:4476,89:4478,88:4480,18:4639,17:4641,16:4643,14:4655,13:4656,11:5383,10:5384,8:5400,7:5402,6:5404,5:5407,4:5408},85:{66:1976,67:1977,58:1993,57:1994,60:1997,59:1998,70:2467,71:2468,69:2470,75:2491,76:2492,74:2493,73:2494,77:2497,55:2543,54:2545,52:2546,51:2547,50:2550,49:2551,47:2556,46:2557,45:2560,44:2561,42:2568,41:2569,39:2581,38:2582,37:2584,31:3336,30:3337,85:3855,86:3857,26:3996,25:3997,23:4014,22:4017,21:4018,20:4021,88:4481,89:4482,18:4640,17:4642,16:4644,95:4983,96:4984,97:4986,11:5385,10:5386,8:5401,7:5403,6:5405,5:5406,4:5409},18:{33:2204,32:2205,34:2207,35:2210,37:2211,38:2212,39:2215,40:2216,42:2235,43:2236,45:2238,46:2240,47:2241,48:2243,49:2245,58:2270,59:2272,60:2281,28:2818,29:2819,63:2917,64:2918,66:2921,67:2922,68:2926,69:2928,71:2935,72:2936,20:3540,21:3541,22:3542,74:3659,75:3660,77:3671,78:3673,79:3675,80:3680,15:4170,16:4171,17:4174,18:4175,82:4352,83:4354,85:4355,86:4358,8:5163,9:5165,89:5317,90:5318,92:5325,93:5327,94:5329,95:5331,96:5333,6:5428,5:5430,4:5432,3:5434,2:5435},17:{37:2213,38:2214,39:2217,40:2218,42:2230,43:2232,45:2237,46:2239,51:2255,52:2256,53:2259,55:2260,56:2261,58:2273,59:2274,28:2820,29:2821,30:2822,62:2914,63:2915,64:2919,66:2923,67:2924,69:2929,68:2930,71:2937,72:2938,21:3543,22:3544,23:3545,25:3549,26:3550,74:3661,75:3662,77:3672,78:3674,16:4172,15:4173,18:4176,17:4177,82:4351,83:4353,85:4356,86:4357,13:4795,12:4798,11:4800,88:5313,89:5315,90:5316,6:5429,5:5431,4:5433,3:5442,98:5703,99:5704},16:{38:2219,39:2220,42:2229,43:2231,48:2247,49:2248,50:2251,51:2252,52:2257,53:2258,55:2262,56:2263,30:2823,29:2824,28:2825,32:2826,33:2827,34:2838,35:2839,61:2911,62:2913,63:2916,23:3546,22:3547,21:3548,25:3551,26:3552,74:3663,75:3664,18:4178,19:4179,80:4344,81:4346,82:4348,83:4350,13:4796,12:4797,11:4799,9:5242,8:5243,88:5312,89:5314,90:5319,91:5320,92:5324,94:5531,95:5533,96:5541,98:5705,99:5706,100:5709},15:{38:2221,39:2222,41:2225,42:2228,43:2234,48:2249,49:2250,50:2253,51:2254,56:2264,57:2265,32:2828,33:2829,34:2840,35:2841,36:2842,45:2861,46:2863,59:2907,60:2909,61:2910,62:2912,63:2920,25:3553,26:3554,65:3644,66:3646,68:3647,69:3649,70:3651,71:3653,72:3655,74:3665,75:3666,76:3667,19:4180,18:4181,78:4340,79:4342,80:4343,81:4345,82:4347,83:4349,11:4803,12:4805,15:4807,16:4808,86:4928,85:4930,9:5244,8:5245,91:5321,92:5323,6:5443,5:5445,4:5447,3:5449,94:5532,95:5534,96:5542,99:5707,98:5708,100:5710},14:{38:2223,39:2224,41:2226,42:2227,43:2233,56:2266,57:2267,32:2830,33:2831,36:2843,35:2844,45:2862,46:2864,53:2884,54:2885,59:2906,60:2908,25:3555,26:3556,28:3557,29:3558,30:3561,65:3643,66:3645,68:3648,69:3650,70:3652,71:3654,72:3656,74:3668,75:3669,76:3670,21:4182,22:4183,23:4186,78:4339,79:4341,11:4804,12:4806,15:4809,16:4810,14:4811,86:4927,85:4929,9:5246,8:5247,88:5335,89:5336,6:5444,5:5446,4:5448,3:5450,94:5535,95:5537},13:{51:2878,32:2832,33:2833,45:2865,46:2867,47:2872,49:2874,50:2875,53:2886,54:2887,28:3559,29:3560,30:3562,62:3637,63:3639,64:3641,65:3642,71:3657,70:3658,22:4184,21:4185,23:4187,20:4193,14:4812,15:4813,16:4814,17:4815,18:4818,81:4918,82:4919,84:4921,85:4924,86:4925,9:5248,8:5249,88:5337,89:5338,90:5341,91:5342,92:5346,94:5536,95:5538,97:5692,98:5694,99:5696,100:5698},86:{73:2495,74:2496,64:2515,63:2517,62:2518,55:2542,54:2544,52:2548,51:2549,45:2562,44:2563,42:2570,41:2571,37:2585,36:2586,79:3188,80:3189,81:3192,82:3193,34:3323,33:3325,85:3856,86:3858,84:3859,28:3992,27:3993,26:3995,25:3998,23:4015,22:4016,89:4483,88:4484,16:4645,17:4646,91:4968,92:4969,94:4979,95:4981,96:4985,97:4987,14:5096,13:5097,11:5387,10:5388,4:5410,3:5411},87:{71:2498,70:2499,68:2506,67:2507,66:2510,65:2511,60:2521,64:2516,63:2519,62:2520,59:2522,57:2534,56:2536,55:2538,54:2540,45:2564,44:2565,42:2572,41:2573,40:2574,39:2575,37:2587,36:2588,79:3190,80:3191,81:3194,82:3195,77:3196,76:3197,49:3282,48:3283,47:3286,34:3324,33:3326,84:3860,85:3861,31:3983,30:3985,29:3987,28:3991,23:4022,22:4024,20:4631,19:4632,91:4970,92:4971,94:4980,95:4982,14:5095,13:5098,11:5389,10:5390,3:5412,4:5413,8:5414,7:5415,6:5418},88:{71:2500,70:2501,68:2508,67:2509,66:2512,60:2523,59:2524,57:2535,56:2537,55:2539,54:2541,40:2576,39:2577,41:2578,37:2589,36:2590,76:3198,77:3199,74:3210,73:3211,52:3270,51:3271,49:3284,48:3285,47:3287,34:3327,33:3329,31:3984,30:3986,29:3988,26:3999,25:4000,23:4023,22:4025,87:4491,88:4493,20:4633,19:4634,91:4972,90:4973,97:5047,98:5049,17:5087,16:5089,15:5091,14:5093,8:5416,7:5417,6:5419},89:{71:2502,70:2503,64:3233,60:2525,59:2526,61:2527,77:3200,76:3201,78:3204,79:3206,74:3212,73:3213,63:3234,52:3272,51:3273,49:3288,48:3289,45:3298,44:3299,43:3301,34:3328,33:3330,81:3863,82:3864,31:3989,30:3990,26:4001,25:4002,27:4005,84:4485,85:4487,86:4489,87:4492,88:4494,20:4635,19:4636,91:4974,90:4975,92:4978,94:5009,95:5010,97:5048,98:5050,17:5088,16:5090,15:5092,14:5094,11:5381,12:5382,8:5420,9:5421,6:5424,5:5425,3:5607,2:5608},90:{71:2504,70:2505,61:2528,60:2529,59:2530,58:2531,76:3202,77:3203,78:3205,79:3207,74:3214,73:3215,67:3231,68:3232,64:3235,63:3236,65:3237,56:3260,55:3262,54:3264,52:3274,51:3275,46:3295,45:3296,44:3300,43:3302,41:3305,40:3306,38:3314,37:3315,36:3318,81:3862,82:3865,26:4003,27:4004,28:4006,84:4486,85:4488,86:4490,23:4621,22:4622,20:4637,19:4638,91:4976,92:4977,94:5008,95:5011,98:5051,99:5052,12:5378,11:5379,9:5422,8:5423,5:5426,6:5427,3:5605,2:5606},91:{58:2532,59:2533,79:3208,78:3209,73:3216,68:3229,67:3230,65:3238,64:3239,56:3261,55:3263,54:3265,52:3276,51:3277,50:3278,48:3290,47:3291,46:3294,45:3297,41:3307,40:3308,38:3316,37:3317,36:3319,35:3320,81:3866,82:3867,33:3972,32:3974,28:4007,27:4008,29:4011,30:4012,88:4500,89:4502,24:4619,23:4620,22:4623,95:5016,96:5017,99:5053,98:5054,17:5362,16:5363,14:5373,13:5375,12:5377,11:5380,3:5603,2:5604,1:5611},12:{35:2845,36:2846,37:2849,38:2850,40:2853,41:2854,42:2859,45:2866,46:2868,44:2869,47:2873,49:2876,50:2877,51:2879,53:2888,54:2889,56:2894,57:2895,58:2898,59:2899,60:2905,28:3563,29:3564,62:3636,63:3638,64:3640,21:4191,22:4190,20:4192,25:4194,26:4195,67:4336,68:4337,17:4816,18:4817,73:4901,74:4903,75:4905,76:4907,77:4909,79:4913,80:4916,81:4917,82:4920,84:4922,85:4923,86:4926,12:5178,11:5179,9:5250,8:5251,88:5339,89:5340,90:5343,91:5344,92:5345,5:5459,6:5460,3:5475,2:5476,94:5539,95:5540,97:5691,98:5693,99:5695,100:5697},11:{35:2847,36:2848,37:2851,38:2852,40:2855,41:2856,42:2860,44:2870,45:2871,51:2880,50:2881,53:2890,54:2891,56:2896,57:2897,59:2900,58:2901,60:2904,31:3565,32:3566,33:3569,26:4196,25:4197,24:4198,66:4334,67:4335,68:4338,70:4887,71:4888,73:4902,74:4904,75:4906,76:4908,77:4910,79:4914,80:4915,15:5166,14:5167,13:5176,12:5177,11:5180,9:5252,8:5253,6:5456,5:5458,3:5473,2:5474,1:5477,99:5699,100:5702},10:{40:2857,41:2858,51:2882,50:2883,53:2892,54:2893,59:2902,60:2903,31:3567,32:3568,33:3570,47:3595,48:3596,63:3634,62:3635,24:4199,25:4200,23:4201,22:4204,26:4225,28:4226,29:4227,65:4329,66:4331,67:4333,20:4819,19:4821,18:4823,17:4826,70:4889,71:4890,73:4911,74:4912,15:5168,14:5169,13:5174,12:5175,82:5307,83:5309,6:5455,5:5457,3:5471,2:5472,1:5478,85:5521,86:5523,87:5525,88:5527,89:5529,92:5652,91:5653,94:5681,95:5682,96:5683,97:5684,99:5700,100:5701},92:{73:3217,72:3218,70:3221,69:3222,68:3225,67:3226,65:3246,64:3247,62:3248,61:3249,55:3266,54:3267,50:3279,51:3280,52:3281,48:3292,47:3293,46:3303,45:3304,41:3309,42:3310,43:3311,35:3321,36:3322,81:3868,82:3869,83:3873,84:3875,76:3884,75:3885,33:3973,32:3975,28:4009,29:4010,30:4013,86:4495,87:4497,88:4499,89:4501,90:4503,25:4617,24:4618,23:4624,22:4630,92:4996,93:4997,95:5022,96:5023,99:5055,98:5057,19:5084,20:5085,17:5364,16:5365,14:5374,13:5376,9:5568,8:5569,6:5594,5:5596,2:5609,1:5610},93:{72:3219,73:3220,69:3223,70:3224,67:3227,68:3228,62:3250,61:3251,60:3252,59:3253,58:3256,57:3257,55:3268,54:3269,43:3312,42:3313,79:3876,82:3871,83:3872,84:3874,78:3877,76:3886,75:3887,39:3965,38:3966,32:3976,33:3978,86:4496,87:4498,90:4504,89:4505,26:4615,25:4616,24:4629,92:4998,93:4999,99:5056,98:5058,20:5081,19:5082,17:5366,16:5367,11:5564,10:5566,9:5567,8:5570,6:5595,5:5597,4:5598,2:5612,1:5613},94:{60:3254,59:3255,58:3258,57:3259,79:3878,78:3879,80:3880,76:3888,75:3889,65:3910,64:3911,52:3932,51:3933,49:3935,48:3936,46:3949,45:3950,40:3961,39:3964,38:3967,37:3968,36:3970,32:3977,33:3979,34:3981,30:4611,29:4613,26:4625,27:4626,92:5000,93:5001,95:5036,96:5038,22:5077,21:5078,20:5080,19:5083,17:5368,16:5369,15:5370,13:5559,12:5561,11:5563,10:5565,4:5599,5:5600},9:{33:3571,34:3572,36:3575,37:3576,38:3579,43:3587,44:3588,47:3597,48:3598,46:3599,56:3621,57:3622,62:3632,63:3633,23:4202,22:4203,24:4224,29:4228,28:4229,65:4328,66:4330,67:4332,20:4820,19:4822,18:4824,17:4825,69:4891,70:4892,15:5170,14:5171,10:5214,9:5215,76:5286,77:5287,79:5301,80:5303,81:5305,82:5306,83:5308,7:5451,6:5454,85:5520,86:5522,87:5524,88:5526,89:5528,92:5650,91:5651,94:5679,95:5680,96:5685,97:5686},8:{33:3573,34:3574,36:3577,37:3578,38:3580,39:3581,40:3584,41:3585,43:3589,44:3590,46:3600,47:3601,48:3602,49:3603,50:3604,52:3607,53:3608,55:3617,56:3620,57:3623,59:3625,60:3627,61:3629,62:3631,31:4233,30:4232,28:4231,29:4230,27:4237,26:4238,69:4893,70:4894,15:5172,14:5173,12:5210,11:5211,10:5212,9:5213,72:5279,73:5281,74:5285,76:5288,77:5289,79:5300,80:5302,81:5304,82:5310,83:5311,7:5452,6:5453,3:5469,4:5470,91:5648,92:5649,97:5687,98:5688},7:{39:3582,40:3583,41:3586,43:3591,44:3592,50:3605,49:3606,52:3609,53:3610,55:3618,56:3619,57:3624,59:3626,60:3628,61:3630,31:4235,30:4236,26:4239,27:4240,28:4241,24:4827,23:4829,64:4879,65:4880,69:4895,68:4896,67:4897,70:4900,21:5181,20:5183,18:5193,17:5194,12:5208,11:5209,72:5278,73:5280,74:5284,76:5290,77:5291,4:5466,3:5468,85:5516,86:5517,88:5640,89:5641,90:5646,91:5647,94:5662,95:5663,97:5689,98:5690},6:{43:3593,44:3594,52:3611,53:3612,33:4244,34:4245,35:4250,36:4251,37:4252,46:4300,47:4301,24:4828,23:4830,64:4881,65:4882,63:4883,67:4898,68:4899,21:5182,20:5184,18:5195,17:5196,16:5201,14:5202,13:5203,12:5206,11:5207,9:5240,8:5241,73:5282,74:5283,76:5292,77:5293,78:5294,79:5295,6:5461,5:5463,4:5465,3:5467,81:5509,82:5510,84:5512,85:5515,86:5518,88:5642,89:5643,90:5644,91:5645,94:5664,95:5665,93:5666},5:{53:3613,54:3614,33:4246,34:4247,35:4248,36:4249,37:4253,39:4256,40:4259,41:4260,46:4302,47:4303,48:4306,49:4308,50:4311,56:4316,57:4318,58:4321,59:4322,60:4324,61:4327,23:4831,24:4834,26:4838,27:4839,29:4849,30:4851,31:4853,63:4884,64:4885,65:4886,20:5187,17:5197,16:5200,14:5204,13:5205,12:5216,9:5238,8:5239,70:5268,71:5269,79:5299,78:5298,6:5462,5:5464,81:5507,82:5508,84:5513,85:5514,86:5519,93:5667,94:5668,97:5711,98:5712},4:{54:3615,53:3616,35:4254,34:4255,39:4257,40:4258,41:4261,43:4288,44:4289,46:4304,47:4305,48:4309,49:4310,50:4312,51:4313,56:4317,57:4319,58:4320,59:4323,60:4325,61:4326,23:4832,24:4833,22:4835,26:4840,27:4841,29:4850,30:4852,31:4854,20:5188,19:5190,17:5198,16:5199,10:5233,9:5234,8:5237,67:5265,68:5267,70:5270,71:5271,72:5274,73:5275,2:5489,3:5490,75:5491,76:5492,81:5505,82:5506,88:5635,89:5636,91:5675,93:5673,92:5674,97:5713,98:5714,96:5715},95:{79:3881,80:3882,78:3883,76:3890,75:3891,74:3892,72:3895,71:3897,70:3899,69:3901,67:3905,66:3906,65:3909,64:3912,63:3913,62:3914,55:3926,54:3927,53:3930,52:3931,51:3934,48:3937,49:3938,46:3951,45:3952,44:3957,43:3958,42:3959,40:3962,39:3963,37:3969,36:3971,33:3980,34:3982,82:4506,83:4509,84:4510,85:4513,30:4610,29:4612,26:4627,27:4628,87:4988,88:4989,92:5002,93:5003,91:5004,90:5005,95:5037,96:5039,97:5044,98:5045,24:5072,23:5073,22:5076,21:5079,15:5371,16:5372,13:5560,12:5562,11:5571,10:5572,8:5584,7:5585,5:5601,4:5602,1:5624,2:5625},96:{74:3893,75:3894,72:3896,71:3898,70:3900,69:3902,67:3907,66:3908,62:3915,63:3916,64:3917,60:3918,59:3919,58:3922,57:3923,55:3928,54:3929,49:3939,48:3940,46:3953,45:3954,44:3955,43:3956,42:3960,82:4507,83:4508,84:4511,85:4512,31:4606,30:4609,87:4990,88:4991,91:5006,90:5007,96:5040,97:5043,98:5046,24:5074,23:5075,22:5086,19:5359,18:5360,8:5586,7:5587,2:5621,1:5622},97:{72:3903,71:3904,60:3920,59:3921,58:3924,57:3925,49:3941,50:3942,51:3945,52:3946,85:4514,84:4515,77:4518,78:4520,79:4522,80:4524,40:4583,39:4584,37:4593,36:4594,35:4599,33:4601,32:4602,31:4607,30:4608,87:4992,88:4993,93:5032,94:5033,96:5041,97:5042,28:5059,27:5062,26:5064,20:5356,19:5357,18:5361,16:5557,15:5558,13:5573,12:5574,11:5582,8:5588,7:5589,9:5592,5:5614,4:5616,3:5618,2:5620,1:5623},98:{50:3943,49:3944,51:3947,52:3948,85:4516,84:4517,77:4519,78:4521,79:4523,80:4525,81:4528,82:4529,74:4531,75:4532,69:4539,68:4540,66:4547,65:4549,64:4551,63:4553,62:4555,54:4559,55:4560,47:4575,46:4576,45:4579,44:4580,40:4585,39:4586,41:4588,42:4590,37:4595,36:4596,35:4600,33:4603,32:4604,31:4614,87:4994,88:4995,91:5026,90:5024,92:5028,93:5030,94:5034,28:5060,27:5063,26:5065,24:5347,23:5348,22:5351,21:5352,20:5355,19:5358,16:5555,15:5556,13:5575,12:5576,11:5583,8:5590,7:5591,9:5593,5:5615,4:5617,3:5619},3:{39:4262,38:4263,37:4264,43:4290,44:4291,51:4314,50:4315,22:4836,23:4837,26:4842,27:4843,31:4855,32:4856,20:5191,19:5192,14:5225,13:5226,11:5229,10:5231,9:5235,8:5236,63:5254,64:5258,65:5260,66:5262,67:5264,68:5266,70:5272,71:5273,72:5276,73:5277,6:5479,5:5481,4:5483,3:5485,2:5487,75:5493,76:5494,77:5495,78:5496,80:5501,81:5504,82:5511,84:5626,85:5628,86:5630,87:5632,88:5634,89:5637,91:5676,92:5677,93:5678,96:5716,97:5717,95:5718,98:5721},2:{37:4265,38:4266,39:4267,42:4298,43:4292,44:4293,41:4299,26:4844,27:4845,25:4846,32:4857,31:4858,30:4859,29:4860,53:4863,54:4865,55:4867,56:4869,58:4871,59:4873,60:4875,61:4877,17:5217,16:5219,15:5222,14:5223,13:5227,11:5230,10:5232,63:5257,64:5259,65:5261,66:5263,6:5480,5:5482,4:5484,3:5486,2:5488,77:5497,78:5498,76:5499,75:5500,80:5502,81:5503,84:5627,85:5629,86:5631,87:5633,95:5719,96:5720},1:{43:4294,44:4295,42:4296,41:4297,25:4847,26:4848,29:4861,30:4862,53:4864,54:4866,55:4868,56:4870,58:4872,59:4874,60:4876,61:4878,17:5218,16:5220,15:5221,14:5224,13:5228,86:5638,87:5639},99:{80:4526,81:4527,82:4530,75:4533,74:4534,73:4535,72:4536,69:4541,68:4542,70:4545,66:4548,65:4550,64:4552,63:4554,62:4556,54:4561,55:4562,56:4563,57:4565,58:4567,59:4569,60:4571,47:4577,46:4578,45:4581,44:4582,40:4587,41:4589,42:4591,39:4592,37:4597,36:4598,90:5025,91:5027,92:5029,93:5031,94:5035,28:5068,29:5070,24:5349,23:5350,22:5353,21:5354,17:5551,16:5553,13:5577,12:5579},100:{72:4537,73:4538,69:4543,68:4544,70:4546,66:4557,65:4558,56:4564,57:4566,58:4568,59:4570,60:4572,55:4573,54:4574,28:5069,29:5071,17:5552,16:5554,13:5580,12:5581}}, wrapInClosure: function(obj) { return (function(x) { return function() { return x; }; })(obj); }, existsIn: function(input,test) { var ret; try { ret = input.indexOf(test)!==-1; } catch(e) { return false; } return ret; }, calcDist: function(x1,y1,x2,y2) { return Math.sqrt(Math.pow(x1-x2,2)+Math.pow(y1-y2,2)); }, estimateTravelTime:function(dist) { // (dist*72000)/(speed+[speed*SMALevel(for ships only)]*gov%)*(1+[PosLevel%+CargoPerShip%]+Triton) // var time = 20*(dist==0?0.5:dist); // var d = dist || false; // if(!city1 || !city2) return 0; return Math.floor(20*(dist==0?0.5:dist)*60*1000); }, addStyleSheet: function(style) { var getHead = document.getElementsByTagName('head')[0]; var cssNode = window.document.createElement('style'); var elementStyle = getHead.appendChild(cssNode); elementStyle.innerHTML = style; return elementStyle; }, escapeRegExp: function(str) { return str.replace(/[\[\]\/\{\}\(\)\-\?\$\*\+\.\\\^\|]/g, "\\$&"); }, format: function(inputString, replacements) { var str = inputString; var keys = Object.keys(replacements); var i = keys.length; while(i--) { str = str.replace(new RegExp(this.escapeRegExp('{' + keys[i] + '}'), 'g'), replacements[keys[i]]); } return str; }, cacheFunction: function(toExecute,expiry) { expiry = expiry || 1000; var cachedTime = $.now; var cachedResult; cachedResult = undefined; return function() { if(cachedTime < $.now() - expiry || cachedResult === undefined) { cachedResult = toExecute(); cachedTime = $.now(); } return cachedResult; }; }, getClone: function($node) { if ($node.hasClass('ui-sortable-helper') || $node.parent().find('.ui-sortable-helper').length) { return $node; } return $($node.get(0).cloneNode(true)); }, setClone: function($node,$clone) { if($node.hasClass('ui-sortable-helper') || $node.parent().find('.ui-sortable-helper').length) { return $node; } $node.get(0).parentNode.replaceChild($clone.get(0), $node.get(0)); return $node; }, replaceNode: function(node,html) { var t = node.cloneNode(false); t.innerHTML = html; node.parentNode.replaceChild(t,node); return t; }, FormatTimeLengthToStr: function(timeString,precision,spacer) { var LD = Constant.LanguageData[database.settings.languageChange.value]; timeString = timeString || 0; precision = precision || 2; spacer = spacer || ' '; if(!isFinite(timeString)){return ' \u221E ';} if(timeString < 0) timeString *= -1; var a = {'second':1,'minute':60,'hour':60,'day':24,'month':30,'year':365}; var b = {}; var l = {}; var c = 1; for(var d in Object.keys(a)) { c *= a[Object.keys(a)[d]]; b[Object.keys(a)[d]] = c/(d==Object.keys(a).length-1?30:1); l[Object.keys(a)[d]] = LD[Object.keys(a)[d]]; } var i = Object.keys(a).length; var z = {}; while(i--){z[Object.keys(a)[i]] = b[Object.keys(a)[i]];} timeString = Math.ceil(timeString/1000); var retarr = []; for(var f in z) { var timeInSecs=Math.floor(timeString/z[f]); if(isNaN(timeInSecs)) {return retarr.join(' ');} if(precision>0 && (timeInSecs>0 || retarr.length>0)) { timeString = timeString-timeInSecs*z[f]; if(timeInSecs>0) { retarr.push(timeInSecs+l[f]); } precision = timeInSecs==0 ? precision : (precision-1); } } return retarr.join(' '); }, FormatFullTimeToDateString: function (timeString,short) { var LD = Constant.LanguageData[database.settings.languageChange.value]; timeString = timeString || 0; short = short || false; if(!isFinite(timeString) || timeString == 'Invalid Date') { return ''; } if(timeString < 0) timeString *= -1; moment.locale(database.settings.languageChange.value); var compDate = new Date(timeString); var diff = Math.floor(moment(compDate).diff(moment().startOf('day'),'seconds')/86400); var day = ''; switch(diff) { case -1: day = LD.yesterday+' '+LD.at+' '; break; case 0: day = LD.today+' '+LD.at+' '; break; case 1: day = LD.tomorrow+' '+LD.at+' '; break; default: day = moment(compDate).format(short==false ? LD.dateformat : LD.dateformatshort)+' '; } return day + moment(compDate).format(short==false ? LD.timeformat : LD.timeformatshort); }, FormatRemainingTime:function(time,brackets) { brackets = brackets || false; var arrInTime = Utils.FormatTimeLengthToStr(time,3,' '); return (arrInTime==='') ? '' : (brackets?'(':'')+arrInTime+(brackets?')':''); }, FormatNumToStr:function(inputNum,outputSign,precision) { var LD = Constant.LanguageData[database.settings.languageChange.value]; var tho = LD.thousandSeperator; var dec = LD.decimalPoint; var p = Math.abs(inputNum).toString().split('.'); var num = parseFloat(parseInt(p[0]).toString()+(precision!==undefined ? '.'+parseFloat(p[1]!==undefined ? '0.'+p[1]: 0).toFixed(precision).split('.')[1]:'')); var sgn = num==0?'':Math.sign(inputNum)==-1?'-':'+'; return (outputSign || sgn=='-' ? sgn : '')+(precision==undefined && num==0 ? '' : parseInt(p[0]).toString().replace(/\B(?=(\d{3})+(?!\d))/g,tho))+(precision!==undefined && precision>0 ? dec+parseFloat(p[1]!==undefined ? '0.'+p[1]: 0).toFixed(precision).split('.')[1] : ''); }, FormatLocDurToSecs:function(a) { var LD = Constant.LanguageData[database.settings.languageChange.value]; var z = {'second':1,'minute':60,'hour':60,'day':24,'month':30,'year':365}; var u = 1; var y = {}; for(var x in Object.keys(z)) { u *= z[Object.keys(z)[x]]; y[Object.keys(z)[x]] = u/(x==Object.keys(z).length-1?30:1); } var b = database.getGlobalData.localStrings; var c = a.split(' '); var test = 0; if(c && Array.isArray(c) && c.length>0) { $.each(c,function(i,d) { test += parseInt(d.match(/\d+/)[0])*y[Object.keys(b)[Object.values(b).indexOf(d.replace(/[^a-z]/gi,''))]]; }); } return test; }, FormatQuantityToLoad:function(q,p,c) { var LD = Constant.LanguageData[database.settings.languageChange.value]; var p = p && p===true ? true : false; var q = q>0 ? q : 0; var c = c && [100,200,300,400,500].indexOf(c)!=-1 ? c : 500; var s = ''; var f = parseInt($('#js_GlobalMenu_maxTransporters').text()); // Συνολικός αριθμός πλοίων var r = Math.floor(q/(f*c)); // Πλήρεις διαδρομές var rs = Math.ceil((q%(f*c))/c) // Υπόλοιπα πλοία μετά τις πλήρεις διαδρομές var t = p===false ? ['  '+s+s+s,'  '+s] : (r==1 ? [' '+LD.qltxts[0],' '+LD.qltxts[2]] : [' '+LD.qltxts[1],' '+LD.qltxts[3]]); return database.settings.quantityLoads.value?(q>0 ? (r>0?Utils.FormatNumToStr(r,false,0)+t[0]:'')+(r>0&&rs>0?' + ':'')+(rs>0?Utils.FormatNumToStr(rs,false,0)+t[1]:'') : ''):''; }, Nth:function(n) { var LD = Constant.LanguageData[database.settings.languageChange.value]; var n = parseInt(n) || 0; var s = LD.ordinal; var v=n%100; return Utils.FormatNumToStr(n,false,0)+''+(Array.isArray(s)?(s[(v-20)%10]||s[v]||s[0]):s)+''; }, waitElem:function(s,a,b,i,v) { var t, f; t = typeof(i)=='undefined' ? $(s) : $(i).contents().find(s); if(t && t.length>0) { f = true; t.each(function() { var j = $(this); var af = j.data('alreadyFound') || false; if(!af) { var cf = a(j); if(cf) { f = false; } else { j.data('alreadyFound',true); } } }); } else { f = false; } var c = Utils.waitElem.c || {}; var k = s.replace(/[^\w]/g,'_'); var tc = c[k]; if(f && b && tc) { clearInterval(tc); delete c[k] } else { if(!tc) { tc = setInterval(function() { Utils.waitElem(s,a,b,i); },(v?v:100)); c[k] = tc; } } Utils.waitElem.c = c; }, trackEvents(s) { var events = []; $(s).on('AlertActive AlertClose CheckboxStateChange DOMActivate DOMAttrModified DOMAttributeNameChanged DOMAutoComplete DOMCharacterDataModified DOMContentLoaded DOMElementNameChanged DOMFocusIn DOMFocusOut DOMFrameContentLoaded DOMLinkAdded DOMLinkRemoved DOMMenuItemActive DOMMenuItemInactive DOMMetaAdded DOMMetaRemoved DOMModalDialogClosed DOMMouseScroll DOMNodeInserted DOMNodeInsertedIntoDocument DOMNodeRemoved DOMNodeRemovedFromDocument DOMPopupBlocked DOMSubtreeModified DOMTitleChanged DOMWillOpenModalDialog DOMWindowClose DOMWindowCreated Firefox MSManipulationStateChanged MSPointerHover MozAfterPaint MozAudioAvailable MozBeforeResize MozEdgeUIGesture MozEnteredDomFullscreen MozGamepadButtonDown MozGamepadButtonUp MozMagnifyGesture MozMagnifyGestureStart MozMagnifyGestureUpdate MozMousePixelScroll MozOrientation MozPressTapGesture MozRotateGesture MozRotateGestureStart MozRotateGestureUpdate MozScrolledAreaChanged MozSwipeGesture MozTapGesture MozTouchDown MozTouchMove MozTouchUp OS RadioStateChange SSTabClosing SSTabRestored SSTabRestoring SSWindowClosing SSWindowStateBusy SSWindowStateReady SVGAbort SVGError SVGLoad SVGResize SVGScroll SVGUnload SVGZoom TabClose TabHide TabOpen TabPinned TabSelect TabShow TabUnpinned ValueChange abort afterprint afterscriptexecute alerting animationcancel animationend animationiteration animationstart appinstalled audioend audioprocess audiostart beforeinstallprompt beforeprint beforescriptexecute beforeunload beginEvent blocked blur boundary broadcast busy callschanged canplay canplaythrough cardstatechange cfstatechange change chargingchange chargingtimechange click close command commandupdate complete compositionend compositionstart compositionupdate connected connecting connectionInfoUpdate contextmenu copy cut datachange dataerror dblclick delivered devicechange devicemotion deviceorientation dialing disabled dischargingtimechange disconnected disconnecting drag dragdrop dragend dragenter dragexit draggesture dragleave dragover dragstart drop durationchange emptied enabled end endEvent ended error focus focusin focusout fullscreen fullscreenchange fullscreenerror gamepadconnected gamepaddisconnected gotpointercapture hashchange held holding icccardlockerror iccinfochange incoming input invalid keydown keypress keyup languagechange levelchange load loadeddata loadedmetadata loadend loadstart localized lostpointercapture mark message messageerror mousedown mouseenter mouseleave mousemove mouseout mouseover mouseup mousewheel mozbrowseractivitydone mozbrowserasyncscroll mozbrowseraudioplaybackchange mozbrowsercaretstatechanged mozbrowserclose mozbrowsercontextmenu mozbrowserdocumentfirstpaint mozbrowsererror mozbrowserfindchange mozbrowserfirstpaint mozbrowsericonchange mozbrowserloadend mozbrowserloadstart mozbrowserlocationchange mozbrowsermanifestchange mozbrowsermetachange mozbrowseropensearch mozbrowseropentab mozbrowseropenwindow mozbrowserresize mozbrowserscroll mozbrowserscrollareachanged mozbrowserscrollviewchange mozbrowsersecuritychange mozbrowserselectionstatechanged mozbrowsershowmodalprompt mozbrowsertitlechange mozbrowserusernameandpasswordrequired mozbrowservisibilitychange moztimechange msContentZoom nomatch notificationclick offline onconnected online open orientationchange overflow pagehide pageshow paste pause play playing pointercancel pointerdown pointerenter pointerleave pointerlockchange pointerlockerror pointermove pointerout pointerover pointerup popstate popuphidden popuphiding popupshowing popupshown progress push pushsubscriptionchange ratechange readystatechange received repeatEvent reset resize resourcetimingbufferfull result resume resuming scroll seeked seeking select selectionchange selectstart sent show sizemodechange slotchange smartcard-insert smartcard-remove soundend soundstart specific speechend speechstart stalled start statechange statuschange stkcommand stksessionend storage submit success suspend textInput timeout timeupdate touchcancel touchend touchenter touchleave touchmove touchstart transitionend underflow unload upgradeneeded uploadprogress userproximity ussdreceived valueInput versionchange visibilitychange voicechange voiceschanged volumechange waiting wheel',function(e) { if(events.indexOf(e.type)==-1) { events.push(e.type) } else { events.sort(); console.log(events.join(' ')); } }); }, mul(p) { p = parseInt(p); switch(true) { case (p >= 1 && p <= 5): return 3-0.25*p; case (p >= 6 && p <= 10): return 2.25-0.125*p; case (p >= 11 && p <= 20): return 0.875; case (p >= 21 && p <= 30): return 0.75; case (p >= 31 && p <= 50): return 0.5; case (p >= 51): return 0; } }, isXYtoID(x,y) { if(isNaN(x) || isNaN(y)) { return false; } return Utils.islandids[parseInt(x)][parseInt(y)]; }, isIDtoXY(a) { if(isNaN(a)) { return false; } var xy = {X:null,Y:null}; $.each(Utils.islandids,function(x,i) { $.each(i,function(y,id) { if(parseInt(a)==id) { xy.Y = parseInt(y); return false; } }); if(xy.Y!=null) { xy.X = parseInt(x); return false; } }); return xy; } }; /************************************************ ******************** CLASSES ******************** ************************************************/ function Movement(id,originCityId,targetCityId,arrivalTime,mission,loadingTime,resources,military,ships,eventid,queuedTime) { if(typeof id==="object") { this._id = id._id || null; this._originCityId = id._originCityId || null; this._targetCityId = id._targetCityId || null; this._arrivalTime = id._arrivalTime || null; this._mission = id._mission || null; this._loadingTime = id._loadingTime || null; this._resources = id._resources || {wood:0,wine:0,marble:0,glass:0,sulfur:0,gold:0}; this._military = id._military || new MilitaryUnits(); this._ships = id._ships || null; this._eventid = id._eventid || null; this._queuedTime = id._queuedTime || null; this._updatedCity = id._updatedCity || false; this._complete = id._complete || false; this._updateTimer = id._updateTimer || null; } else { this._id = id || null; this._originCityId = originCityId || null; this._targetCityId = targetCityId || null; this._arrivalTime = arrivalTime || null; this._mission = mission || null; this._loadingTime = loadingTime || null; this._resources = resources || {wood:0,wine:0,marble:0,glass:0,sulfur:0,gold:0}; this._military = military || new MilitaryUnits(); this._ships = ships || null; this._eventid = eventid || null; this._queuedTime = queuedTime || 0; this._updatedCity = false; this._complete = false; this._updateTimer = null; } } Movement.prototype = { startUpdateTimer: function() { this.clearUpdateTimer(); if(this.isCompleted) { this.updateTransportComplete(); } else { this._updateTimer = events.scheduleActionAtTime(this.updateTransportComplete.bind(this),this._arrivalTime+1000); } }, clearUpdateTimer: function() { var ret = !this._updateTimer || this._updateTimer(); this._updateTimer = null; return ret; }, get getId() { return this._id; }, get getEventId() { return this._eventid; }, get getOriginCityId() { return this._originCityId; }, get getTargetCityId() { return this._targetCityId; }, get getArrivalTime() { return this._arrivalTime; }, get getMission() { return this._mission; }, get getLoadingTime() { return this._loadingTime - $.now(); },// includes the queuedtime get getQueuedTime() { return this._loadingTime - this._queuedTime; }, get getResources() { return this._resources; }, getResource: function(resourceName) { return this._resources[resourceName]; }, get getMilitary() { return this._military; }, get getShips() { return this._ships; }, get getCapacityPerShip() { var a = Object.values(this._resources).reduce((a,b)=>a+b); return Math.ceil(a/this._ships); }, get isCompleted() { return this._arrivalTime < $.now(); }, get isLoading() { return this._loadingTime > $.now(); }, get isQueued() { return this._queuedTime > $.now(); }, get getRemainingTime() { return this._arrivalTime - $.now(); }, updateTransportComplete: function() { if(this.isCompleted && !this._updatedCity) { var city = database.getCityFromId(this._targetCityId); var changes = []; if(city) { for(var resource in Constant.Resources) { if(this.getResource(Constant.Resources[resource])) { changes.push(Constant.Resources[resource]); } city.getResource(Constant.Resources[resource]).increment(this.getResource(Constant.Resources[resource])); } this._updatedCity = true; city = database.getCityFromId(this.originCityId); if(city) { city.updateActionPoints(city.getAvailableActions+1); } if(changes.length) { events(Constant.Events.MOVEMENTS_UPDATED).pub([this.getTargetCityId]); events(Constant.Events.RESOURCES_UPDATED).pub(this.getTargetCityId,changes); } events.scheduleAction(function() { database.getGlobalData.removeFleetMovement(this._id); }.bind(this)); return true; } } else if(this._updatedCity) { events.scheduleAction(function() { database.getGlobalData.removeFleetMovement(this._id); }.bind(this)); } return false; } }; function Resource(city,name) { this._current = 0; this._production = 0; this._consumption = 0; this._currentChangedDate = $.now(); this.city = Utils.wrapInClosure(city); this._name = name; this.currlevel = 0; this.branchOffice = 0; return this; } Resource.prototype = { get name() { return this._name; }, update: function(current,production,consumption,currlevel,branchOffice) { var changed = (current % this._current > 10) || (production != this._production) || (consumption != this._consumption) || (currlevel != this.currlevel) || (branchOffice != this.branchOffice); this._current = current; this._production = production; this._consumption = consumption; this._currentChangedDate = $.now(); this.currlevel = currlevel; this.branchOffice = branchOffice; return changed; }, project: function() { var limit = Math.floor($.now() / 1000); var start = Math.floor(this._currentChangedDate / 1000); while(limit > start) { this._current += this._production; if(Math.floor(start / 3600) != Math.floor((start + 1) / 3600)) { if(this._current > this._consumption) { this._current -= this._consumption; } else { this.city().projectPopData(start * 1000); this._consumption = 0; } } start++; } this._currentChangedDate = limit * 1000; this.city().projectPopData(limit * 1000); }, increment: function(amount) { if(amount !== 0) { this._current += amount; return true; } return false; }, get getEmptyTime() { var net = this.getProduction * 3600 - this.getConsumption; return (net < 0) ? this.getCurrent / net * -1 : Infinity; }, get getFullTime() { var net = this.getProduction * 3600 - this.getConsumption; return (net > 0) ? (this.city().maxResourceCapacities.capacity - this.getCurrent) / net : 0; }, get getCurrent() { return Math.floor(this._current); }, get getProduction() { return this._production || 0; }, get getConsumption() { return Math.round(this._consumption) || 0; }, get getCurrLevel() { return this.currlevel || 0; }, get getbranchOffice() { return this.branchOffice || 0; } }; function Military(city) { this.city = Utils.wrapInClosure(city); this._units = new MilitaryUnits(); this._advisorLastUpdate = 0; this.armyTraining = []; this._trainingTimer = null; } Military.prototype = { init: function() { this._trainingTimer = null; this._startTrainingTimer(); }, _getTrainingTotals: function() { var ret = {}; $.each(this.armyTraining,function(index,training) { $.each(Constant.UnitData,function(unitId,info) { ret[unitId] = ret[unitId]?ret[unitId]+(training.units[unitId]||0):training.units[unitId]||0; }); }); return ret; }, get getTrainingTotals() { if(!this._trainingTotals) { this._trainingTotals = Utils.cacheFunction(this._getTrainingTotals.bind(this),1000); } return this._trainingTotals(); }, _getIncomingTotals: function() { var ret = {}; $.each(this.city().getIncomingMilitary, function(index,element) { for(var unitName in Constant.UnitData) { ret[unitName] = ret[unitName] ? ret[unitName]+(element.getMilitary.totals[unitName]||0) : element.getMilitary.totals[unitName]||0; } }); return ret; }, get getIncomingTotals() { if(!this._incomingTotals) { this._incomingTotals = Utils.cacheFunction(this._getIncomingTotals.bind(this),1000); } return this._incomingTotals(); }, getTrainingForUnit: function(unit) { var ret = []; $.each(this.armyTraining,function(index,training) { $.each(training.units,function(unitId,count) { if(unitId===unit) { ret.push({count:count,time:training.completionTime}); } }); }); return ret; }, setTraining: function(trainingQueue) { if(!trainingQueue.length) return false; this._stopTrainingTimer(); var type = trainingQueue[0].type; var changes = this._clearTrainingForType(type); $.each(trainingQueue, function(index,training) { this.armyTraining.push(training); $.each(training.units, function(unitId,count) { changes.push(unitId); }); }.bind(this)); this.armyTraining.sort(function(a,b) { return a.completionTime-b.completionTime; }); this._startTrainingTimer(); return $.exclusive(changes); }, _clearTrainingForType: function(type) { var oldTraining = this.armyTraining.filter(function(item) { return item.type === type; }); this.armyTraining = this.armyTraining.filter(function(item) { return item.type !== type; }); var changes = []; $.each(oldTraining,function(index,training){$.each(training.units,function(unitId,count){changes.push(unitId);});}); return changes; }, _completeTraining: function() { if(this.armyTraining.length) { if(this.armyTraining[0].completionTime<$.now()+5000) { var changes = []; var training = this.armyTraining.shift(); $.each(training.units, function(id,count) { this.getUnits.addUnit(id, count); changes.push(id); }.bind(this)); if(changes.length)events(Constant.Events.MILITARY_UPDATED).pub(this.city().getId, changes); } } this._startTrainingTimer(); }, _startTrainingTimer: function() { this._stopTrainingTimer(); if(this.armyTraining.length) { this._trainingTimer = events.scheduleActionAtTime(this._completeTraining.bind(this),this.armyTraining[0].completionTime); } }, _stopTrainingTimer: function() { if(this._trainingTimer) { this._trainingTimer(); } this._trainingTimer = null; }, updateUnits: function(counts) { var changes = []; $.each(counts, function(unitId,count) {if(this._units.setUnit(unitId,count)) { changes.push(unitId); }}.bind(this)); return changes; }, get getUnits() { return this._units; } }; function MilitaryUnits(obj) { this._units = obj !== undefined ? obj._units: {}; } MilitaryUnits.prototype = { getUnit: function(unitId) { return this._units[unitId] || 0; }, setUnit: function(unitId,count) { var changed = this._units[unitId] != count; this._units[unitId] = count; return changed; }, get totals() { return this._units; }, addUnit: function(unitId, count) { return this.setUnit(unitId, this.getUnit(unitId) + count); }, removeUnit: function(unitId,count) { return this.setUnit(unitId,Math.max(0,this.getUnit[unitId]-count)); } }; function Building(city, pos) { this._position = pos; this._level = 0; this._name = null; this.city = Utils.wrapInClosure(city); this._updateTimer = null; } Building.prototype = { startUpgradeTimer: function() { if(this._updateTimer) { this._updateTimer(); delete this._updateTimer; } if(this._completionTime) { if(this._completionTime-$.now() < 5000) { this.completeUpgrade(); } else { this._updateTimer = events.scheduleActionAtTime(this.completeUpgrade.bind(this),this._completionTime-4000); } } var statusPoll = function(a,b) { return events.scheduleActionAtInterval(function() { if(a!=this.isUpgradable || b!=this.isUpgrading) { var changes = {position:this._position,name:this.getName,upgraded:this.isUpgrading!=b}; events(Constant.Events.BUILDINGS_UPDATED).pub([changes]); a = this.isUpgradable; b = this.isUpgrading; } }.bind(this),3000); }(this.isUpgradable,this.isUpgrading); }, update: function(data) { var changes; var name = data.building.split(' ')[0]; var level = parseInt(data.level) || 0; var completion = ('undefined' !== typeof data.completed) ? parseInt(data.completed) : 0; var changed = (name !== this._name || level !== this._level || !!completion != this.isUpgrading); // todo if(changed) { changes = {position:this._position,name:this.getName,upgraded:this.isUpgrading!=!completion}; } if(completion) { this._completionTime = completion*1000; this.startUpgradeTimer(); } else if(this._completionTime) { delete this._completionTime; } this._name = name; this._level = level; if(changed) { return changes; } return false; }, get getUrlParams() { return {view:this.getName,cityId:this.city().getId,position:this.getPosition}; }, get getUpgradeCost() { var carpenter, architect, vineyard, fireworker, optician; var level = this._level+this.isUpgrading; if(this.isEmpty) { return {wood:Infinity,glass:0,marble:0,sulfur:0,wine:0,time:0}; } var time = Constant.BuildingData[this._name].time; var bon = 1; var bonTime = 1 + Constant.GovernmentData[database.getGlobalData.getGovernmentType].buildingTime; bon -= database.getGlobalData.getResearchTopicLevel(Constant.Research.Economy.PULLEY) ? 0.02 : 0; bon -= database.getGlobalData.getResearchTopicLevel(Constant.Research.Economy.GEOMETRY) ? 0.04 : 0; bon -= database.getGlobalData.getResearchTopicLevel(Constant.Research.Economy.SPIRIT_LEVEL) ? 0.08 : 0; return { wood:Math.floor((Constant.BuildingData[this._name].wood[level]||0)*(bon-(carpenter=this.city().getBuildingFromName(Constant.Buildings.CARPENTER),carpenter?carpenter.getLevel/100:0))), wine:Math.floor((Constant.BuildingData[this._name].wine[level]||0)*(bon-(vineyard=this.city().getBuildingFromName(Constant.Buildings.VINEYARD),vineyard?vineyard.getLevel/100:0))), marble:Math.floor((Constant.BuildingData[this._name].marble[level]||0)*(bon-(architect=this.city().getBuildingFromName(Constant.Buildings.ARCHITECT),architect?architect.getLevel/100:0))), glass:Math.floor((Constant.BuildingData[this._name].glass[level]||0)*(bon-(optician= this.city().getBuildingFromName(Constant.Buildings.OPTICIAN),optician?optician.getLevel/100:0))), sulfur:Math.floor((Constant.BuildingData[this._name].sulfur[level]||0)*(bon-(fireworker= this.city().getBuildingFromName(Constant.Buildings.FIREWORK_TEST_AREA),fireworker?fireworker.getLevel/100:0))), time:((this._name==Constant.Buildings.PIRATE_FORTRESS?time[level]:Math.round(time.a/time.b*Math.pow(time.c,level+1)-time.d))-(time.e!=undefined?(time.e[level]!=undefined?time.e[level]:0):0))*1000*bonTime }; }, get getName() { return this._name; }, get getType() { return Constant.BuildingData[this.getName].type; }, get getLevel() { return this._level; }, get isEmpty() { return this._name == 'buildingGround' || this._name === null; }, get isUpgrading() { return (this._completionTime > $.now()); }, subtractUpgradeResourcesFromCity: function() { var cost = this.getUpgradeCost; $.each(Constant.Resources,function(key,resourceName){this.city().getResource(resourceName).increment(cost[resourceName]*-1);}.bind(this)); this._completionTime = $.now()+cost.time; }, get isUpgradable() { if(this.isEmpty || this.noNeedToUpgrade || this.isMaxLevel) { return false; } var cost = this.getUpgradeCost; var upgradable = true; $.each(Constant.Resources,function(key,value) { upgradable = upgradable && (!cost[value] || cost[value] <= this.city().getResource(value).getCurrent); }.bind(this)); return upgradable; }, get getCompletionTime() { return this._completionTime; }, get getCompletionDate() { }, get noNeedToUpgrade() { return Constant.BuildingData[this.getName].maxLevel === this.getLevel+1 && this.isUpgrading; }, get isMaxLevel() { return Constant.BuildingData[this.getName].maxLevel === this.getLevel; }, get getPosition() { return this._position; }, completeUpgrade: function() { this._level++; delete this._completionTime; delete this._updateTimer; events(Constant.Events.BUILDINGS_UPDATED).pub(this.city().getId,[{position:this._position,name:this.getName,upgraded:true}]); } }; function CityResearch(city) { this._researchersLastUpdate = 0; this._researchers = 0; this._researchCostLastUpdate = 0; this._researchCost = 0; this.city = Utils.wrapInClosure(city); } CityResearch.prototype = { updateResearchers: function(researchers) { var changed = this._researchers !== researchers; this._researchers = researchers; this._researchersLastUpdate = $.now(); this._researchCost = this.getResearchCost; return changed; }, updateCost: function(cost) { var changed = this._researchCost !== cost; this._researchCost = cost; this._researchCostLastUpdate = $.now(); this._researchers = this.getResearchers; return changed; }, get getResearchers() { return this._researchersLastUpdate2) { return this.updateCitizens((value/3)) } return false; }, get getExpenses() { return -1*this._research.getResearchCost; }, updateExpenses: function(value) { return this._research.updateCost(Math.abs(value)); }, get getBuildings() { return this._buildings; }, getBuildingsFromName: function(name) { var ret = []; var i = this._buildings.length; while(i--) { if(this._buildings[i].getName == name) ret.push(this._buildings[i]); } return ret; }, getBuildingFromName: function(name) { var i = this._buildings.length; while(i--) { if(this._buildings[i].getName == name) { return this._buildings[i]; } } return null; }, getBuildingFromPosition : function(position) { return this._buildings[position]; }, getWonder : function() { var i = 7; ikariam.wonder(); return i; }, get getTradeGood() { for(var resourceName in Constant.ResourceIDs) { if(this._tradeGoodID == Constant.ResourceIDs[resourceName]) { return Constant.Resources[resourceName]; } } return null; }, get getTradeGoodID() { return this._tradeGoodID; }, updateTradeGoodID: function(value) { var changed = this._tradeGoodID != value; if(changed) { this._tradeGoodID = value; } return changed; }, updatePriests: function(priests) { var changed = this._priests != priests; this._priests = priests; return changed; }, get getName() { return this._name; }, updateName: function(value) { var changed = this._name != value; if(changed) { this._name = value; } return changed; }, get getId() { return this._id; }, get research() { return this._research; }, updateResearchers: function(value) { return this._research.updateResearchers(value); }, updateResearchCost: function(value) { return this._research.updateCost(value); }, get garrisonland() { return 250+((this.getBuildingFromName(Constant.Buildings.TOWN_HALL) ? this.getBuildingFromName(Constant.Buildings.TOWN_HALL).getLevel : 0)+(this.getBuildingFromName(Constant.Buildings.WALL) ? this.getBuildingFromName(Constant.Buildings.WALL).getLevel : 0))*50; }, get garrisonsea() { return 125+Math.max(this.getBuildingFromName(Constant.Buildings.TRADING_PORT) ? this.getBuildingFromName(Constant.Buildings.TRADING_PORT).getLevel : 0,this.getBuildingFromName(Constant.Buildings.SHIPYARD) ? this.getBuildingFromName(Constant.Buildings.SHIPYARD).getLevel : 0)*25; }, get plundergold() { return this.getBuildingFromName(Constant.Buildings.PALACE) || database.getCityCount == 1 ? Math.floor(this.getBuildingFromName(Constant.Buildings.TOWN_HALL).getLevel)*950 : 0; }, get maxculturalgood() { return this.getBuildingFromName(Constant.Buildings.MUSEUM) ? this.getBuildingFromName(Constant.Buildings.MUSEUM).getLevel : 0; }, get maxtavernlevel() { return this.getBuildingFromName(Constant.Buildings.TAVERN) ? this.getBuildingFromName(Constant.Buildings.TAVERN).getLevel : 0; }, get tavernlevel() { var wineUse, i; if(this.getResource(Constant.Resources.WINE).getCurrLevel) { i = this.getResource(Constant.Resources.WINE).getCurrLevel; } else if(this.getBuildingFromName(Constant.Buildings.TAVERN)) { wineUse = Constant.BuildingData[Constant.Buildings.TAVERN].wineUse; if(ikariam.Server() == 's202') { wineUse = Constant.BuildingData[Constant.Buildings.TAVERN].wineUse2; } var consumption = Math.floor(this.getResource(Constant.Resources.WINE).getConsumption*(100/(100-(this.getBuildingFromName(Constant.Buildings.VINEYARD) ? this.getBuildingFromName(Constant.Buildings.VINEYARD).getLevel : 0)))); for(var i=0;i 0 ? i : ''; return this.getResource(Constant.Resources.WINE).getCurrLevel; }, get CorruptionCity() { return Math.floor((Math.max(0,1-((this.getBuildingFromName(Constant.Buildings.GOVERNORS_RESIDENCE)?this.getBuildingFromName(Constant.Buildings.GOVERNORS_RESIDENCE).getLevel:this.getBuildingFromName(Constant.Buildings.PALACE)?this.getBuildingFromName(Constant.Buildings.PALACE).getLevel:0)+1)/database.getCityCount+Constant.GovernmentData[database.getGlobalData.getGovernmentType].corruption)+(this.getBuildingFromName(Constant.Buildings.GOVERNORS_RESIDENCE) && (this.getBuildingFromName(Constant.Buildings.GOVERNORS_RESIDENCE).getLevel/database.getCityCount!=1) ? Constant.GovernmentData[database.getGlobalData.getGovernmentType].governors : 0))*100); }, get maxAP() { return Constant.BuildingData[Constant.Buildings.TOWN_HALL].actionPointsMax[this.getBuildingFromName(Constant.Buildings.TOWN_HALL) ? this.getBuildingFromName(Constant.Buildings.TOWN_HALL).getLevel : 0]; }, get maxSci() { return Constant.BuildingData[Constant.Buildings.ACADEMY].maxScientists[this.getBuildingFromName(Constant.Buildings.ACADEMY) ? this.getBuildingFromName(Constant.Buildings.ACADEMY).getLevel : 0] || ''; }, get iSci () { return this.getBuildingFromName(Constant.Buildings.ACADEMY) ? 0 : ''; }, get storageCapacity() { return null; }, get getAvailableActions() { return this._actionPoints; }, updateActionPoints: function(value) { var changed = this._actionPoints != value; this._actionPoints = value; return changed; }, get getSpies() { return this._spies; }, updateSpies: function(spies) { this._spies = $.extend(this.getSpies,spies); return false; }, get getPirates() { return this._pirates; }, updatePirates: function(pirates) { this._pirates = $.extend(this.getPirates,pirates); return false; }, get getCoordinates() { return (this._coordinates ? [this._coordinates.x,this._coordinates.y] : null); }, updateCoordinates: function(x,y) { this._coordinates = {x:x,y:y}; return false; }, get getIslandID() { return this._islandID; }, get getWonder() { return this._wonder; }, get getForest() { return this._forest; }, get getMine() { return this._mine; }, updateIslandID: function(id) { this._islandID = id; return false; }, updateWonder: function(wonder) { this._wonder = $.extend(this.getWonder,wonder); return false; }, updateForest: function(forest) { var changed = this._forest !== forest ? forest : this._forest; if(changed) { this._forest = $.extend(this._forest,forest); } return changed; }, updateMine: function(mine) { var changed = this._mine !== mine ? mine : this._mine; if (changed) { this._mine = $.extend(this._mine,mine); } return changed; }, get getCulturalGoods() { return this._culturalGoods; }, updateCulturalGoods: function(value) { var changed = this._culturalGoods !== value; if (changed) { this._culturalGoods = value; } return changed; }, get getIncomingResources() { return database.getGlobalData.getResourceMovementsToCity(this.getId); }, get getIncomingMilitary() { return database.getGlobalData.getMilitaryMovementsToCity(this.getId); }, get _getMaxPopulation() { return (this.getBuildingFromName(Constant.Buildings.TOWN_HALL) ? Math.floor((10*Math.pow(this.getBuildingFromName(Constant.Buildings.TOWN_HALL).getLevel, 1.5)))*2+40 : 0)+(database.getGlobalData.getResearchTopicLevel(Constant.Research.Science.WELL_CONSTRUCTION) && (this.getBuildingFromName(Constant.Buildings.PALACE) || database.getCityCount == 1) ? 50 : 0)+(database.getGlobalData.getResearchTopicLevel(Constant.Research.Economy.UTOPIA) && this.getBuildingFromName(Constant.Buildings.PALACE) ? 200 : 0)+(database.getGlobalData.getResearchTopicLevel(Constant.Research.Economy.HOLIDAY) ? 50 : 0)+(database.getGlobalData.getResearchTopicLevel(Constant.Research.Economy.ECONOMIC_FUTURE)*20); }, get military() { return this._military; }, get getAvailableBuildings() { var i = 18+database.getGlobalData.getResearchTopicLevel(Constant.Research.Economy.BUREACRACY)+database.getGlobalData.getResearchTopicLevel(Constant.Research.Seafaring.PIRACY); $.each(this.getBuildings, function(idx,building) { i -= !building.isEmpty; }); return i-(database.settings.noPiracy.value && database.getGlobalData.getResearchTopicLevel(Constant.Research.Seafaring.PIRACY) ? 1 : 0); }, get maxResourceCapacities() { if(!this._capacities.invalid) { return this._capacities; } var LD = Constant.LanguageData[database.settings.languageChange.value]; var ret = {}; ret[Constant.Buildings.DUMP] = {storage:0,safe:0,lang:LD.dump}; ret[Constant.Buildings.WAREHOUSE] = {storage:0,safe:0,lang:LD.warehouse}; ret[Constant.Buildings.TOWN_HALL] = {storage:2500,safe:100,lang:LD.townHall}; $.each(this.getBuildingsFromName(Constant.Buildings.WAREHOUSE),function(i,building) { ret[Constant.Buildings.WAREHOUSE].storage += building.getLevel*8000; ret[Constant.Buildings.WAREHOUSE].safe += building.getLevel*480; }); $.each(this.getBuildingsFromName(Constant.Buildings.DUMP),function(i,building) { ret[Constant.Buildings.DUMP].storage += building.getLevel*32000; }); var capacity = 0; var safe = 0; for(var key in ret) { capacity += ret[key].storage; safe += ret[key].safe; } var branchstorage = this.isBranchOffice ? 400*Math.pow(this.getBuildingFromName(Constant.Buildings.TRADING_POST).getLevel,2) : 0; this._capacities = { capacity : capacity*(1+(database.getGlobalData.hasPremiumFeature(Constant.Premium.STORAGECAPACITY_BONUS)*Constant.PremiumData[Constant.Premium.STORAGECAPACITY_BONUS].bonus)), safe: safe*(1+(database.getGlobalData.hasPremiumFeature(Constant.Premium.SAFECAPACITY_BONUS) * Constant.PremiumData[Constant.Premium.SAFECAPACITY_BONUS].bonus)), buildings: ret, branchOffice:{storage:branchstorage,safe:this.isBranchOffice?safe*(1+(database.getGlobalData.hasPremiumFeature(Constant.Premium.SAFECAPACITY_BONUS) * Constant.PremiumData[Constant.Premium.SAFECAPACITY_BONUS].bonus)):0,lang:LD.branchOffice} }; return this._capacities; }, get _getSatisfactionData() { var r = { city:196, museum:{cultural:0,level:0}, government:0, tavern:{wineConsumption:0,level:0}, research:0, priest:0, total:0 }; if(this.getBuildingFromName(Constant.Buildings.MUSEUM)) { var eventBonus = 0; r.museum.cultural = this.getCulturalGoods*50+eventBonus; r.museum.level = this.getBuildingFromName(Constant.Buildings.MUSEUM).getLevel*20; } r.government = Constant.GovernmentData[database.getGlobalData.getGovernmentType].happiness+(Constant.GovernmentData[database.getGlobalData.getGovernmentType].happinessWithoutTemple*(this.getBuildingFromName(Constant.Buildings.TEMPLE) == undefined)); //todo if(this.getBuildingFromName(Constant.Buildings.TAVERN)) { var wineUse = Constant.BuildingData[Constant.Buildings.TAVERN]['wineUse'+(ikariam.Server()=='s202' ? 2 :'')]; r.tavern.level = this.getBuildingFromName(Constant.Buildings.TAVERN).getLevel*12; r.tavern.wineConsumption = this.getResource(Constant.Resources.WINE).getCurrLevel*60; } r.research = (database.getGlobalData.getResearchTopicLevel(2080)*25)+(database.getGlobalData.getResearchTopicLevel(2999)*10)+(this.getBuildingFromName(Constant.Buildings.PALACE)?50*database.getGlobalData.getResearchTopicLevel(3010):0)+(this.getBuildingFromName(Constant.Buildings.PALACE)?200*database.getGlobalData.getResearchTopicLevel(2120):0)+(database.getCityCount==1?50*database.getGlobalData.getResearchTopicLevel(3010):0)-(this.getBuildingFromName(Constant.Buildings.PALACE) && database.getCityCount==1?50*database.getGlobalData.getResearchTopicLevel(3010):0); r.priest = this._priests*500/this._getMaxPopulation*Constant.GovernmentData[database.getGlobalData.getGovernmentType].happinessBonusWithTempleConversion; r.priest = (r.priest<=150?r.priest:150); r.city = 196; var total = 0; for(var n in r) {if(typeof r[n] === 'object') { for(var o in r[n]) { total += r[n][o]; } } else { total += r[n];}} r.total = total; r.corruption = Math.round(this._population+this._pop.happiness-total); return r; }, updatePopulation: function(population) { var changed = this._population != population; this._population = population; this._lastPopUpdate = $.now(); return changed; }, updateCitizens: function(citizens) { var changed = this._citizens != citizens; this._citizens = citizens; this._lastPopUpdate = $.now(); return changed; }, projectPopData: function(untilTime) { var serverTyp = ikariam.Server() == 's201' || ikariam.Server() == 's202' ? 3 : 1; var plus = this._getSatisfactionData; var maxPopulation = this._getMaxPopulation; var happiness = (1 - this.getCorruption) * plus.total - this._population; var hours = ((untilTime - this._lastPopUpdate) / 3600000); var pop = this._population + happiness * (1 - Math.pow(Math.E, - (hours / 50))); pop = (pop > maxPopulation) ? this._population > maxPopulation ? this._population : maxPopulation : pop; happiness = ((1 - this.getCorruption) * plus.total - pop); this._citizens = this._citizens + pop - this._population; this._population = pop; this._lastPopUpdate = untilTime; var old = $.extend({}, this._pop); this._pop = {currentPop: pop, maxPop: maxPopulation, satisfaction: plus, happiness: happiness, growth: happiness * 0.02 * serverTyp}; if(Math.floor(old.currentPop) != Math.floor(this._pop.currentPop) || Math.floor(old.maxPop) != Math.floor(this._pop.maxPop) || Math.floor(old.happiness) != Math.floor(this._pop.happiness)) { events(Constant.Events.CITY_UPDATED).pub(this.getId, {population: true}); } }, get populationData() { return this._pop; }, processUnitBuildList: function() { var newList = []; var j; for(var i=0;i $.now() || type : false; }, setPremiumFeature:function(type,feature,endtime,cityId) { var ret = !this.hasPremiumFeature(type) && endtime*1000 > $.now(); this.premium[type] = {name:feature,endtime:endtime,cityid:cityId}; return ret; }, getPremiumTimeRemaining:function(type){return this.premium[type] ? this.premium[type].endtime*1000-$.now() : 0;}, getPremiumTimeType:function(type){return this.premium[type] ? type : false; }, getPremiumTimeCityId:function(type){return this.premium[type]!==undefined ? this.premium[type].cityid : false; }, clearPremiumFeature:function() { for(var t in this.premium) { if(this.premium[t].endtime*1000 <= $.now()) { delete this.premium[t]; } } }, removeFleetMovement: function(id) { var index = -1; $.each(this.fleetMovements,function(i,movement) { if(movement.getId==id) { this.fleetMovements.splice(i,1); return false; } }.bind(this)); }, addFleetMovement: function(transport) { try { this.fleetMovements.push(transport); transport.startUpdateTimer(); this.fleetMovements = this.fleetMovements.filter(function(m){return $.now()=moment()?0:(moment()-lastupdate)*this.getCurrRPRate); }, get getTotalRPntsProduced() { var topics = this._research.topics; var rp = 0; $.each(topics,function(k,r) { rp += r*Constant.Research.Costs[k]; }); return rp; }, get getRegDate() { return this._regDate; }, get getGiftsReceived() { return this._giftsreceived; }, get getGovernmentType() { return this.governmentType; }, get getFavour() { return this._favour; }, get getBonus() { return this._bonus; }, get getPirates() { return this._pirates; }, get getEmbassyData() { return this._embassy; }, get getSafehouse() { return this._safehouse; }, get getPirateFortress() { return this._piratesFortress; }, get getPotMuseumTreaties() { return this._potmuseumTreaties; }, get getMuseumTreaties() { return this._museumTreaties; }, get getTheaterData() { return this._theater; }, get getIslandData() { return this.islands; }, get getPremiumFeatures() { return this.premiumFeatures; }, getLocalisedString: function(string) { var lString; lString = this.localStrings[string.replace(/([A-Z])/g, "_$1").toLowerCase()]; if(lString == undefined) { lString = this.localStrings[string.toLowerCase().split(' ').join('_')]; } return (lString == undefined) ? string : lString; }, addLocalisedString: function(string,value) { if(this.getLocalisedString(string)==string) {this.localStrings[string.toLowerCase().split(' ').join('_')] = value;} }, isOldVersion: function() { return this._version.latestVersion < this._version.installedVersion; } }; function Setting(name) { this._name = name; this._value = null; } Setting.prototype = { get name() { return this._name; }, get type() { return Constant.SettingData[this._name].type; }, get description() { return this._name+'_description'; }, get value() { return (this._value !==null?this._value:Constant.SettingData[this._name].default); }, get categories() { return Constant.SettingData[this._name].categories; }, get choices() { return Constant.SettingData[this._name].choices || false; }, get selection() { return Constant.SettingData[this._name].selection || false; }, set value(value) { if(this.type==='boolean') { this._value = !!value; } else if(this.type==='number') { if(!isNaN(value)) { this._value = value; } } else if(this.type==='buildings') { if(!isNaN(value)) { this._value = value; } } else if (this.type === 'language') { this._value = value; } else if (this.type === 'array' || this.type === 'orderedList') { if (Object.prototype.toString.call(value) === '[object Array]') { this._value = value; } } }, toJSON: function () { return {value:this._value}; } }; /*********************************************** ******************** empire ******************** ************************************************/ const EMPIRE_STORAGE_PREFIX = ['',GM_info.script.namespace,GM_info.script.name,unsafeWindow.dataSetForView.avatarId,''].join('***'); var empire = { version: 1.200, scriptId: 764, scriptName: 'Greek Empire Overview', logger: null, loaded: false, setVar: function(varname,varvalue) { GM_setValue(EMPIRE_STORAGE_PREFIX+varname,varvalue); }, deleteVar: function(varname) { GM_deleteValue(EMPIRE_STORAGE_PREFIX + varname); }, getVar: function(varname,vardefault) { var ret = GM_getValue(EMPIRE_STORAGE_PREFIX+varname); if (null===ret && 'undefined' != typeof vardefault) { return vardefault; } return ret; }, log: function(val) { if(debug) { console.log('empire: ', $.makeArray(arguments)); } if(log) { if(this.logger) { this.logger.val(val+'\n'+this.logger.val()); return true; } else { render.$tabs.append($(document.createElement("div")).attr('id','empire_Log')); $('#empire_Log').html('
'); $('
  • ').appendTo("#empire_Tabs .ui-tabs-nav"); render.$tabs.tabs('refresh'); this.logger = $('#empire_Logbox'); return this.log(val); } } }, error: function(func,e) { this.log('****** Error raised in '+func+'******'); this.log(e.name+' : '+e.message); this.log(e.stack); this.log('****** End ******'); if(debug) { console.error('****** Error raised in ' + func + ' ******'); console.error(e.name + ' : ' + e.message); console.error(e.stack); console.error('****** End ******'); } }, time: function(func,name) { if (timing) console.time(name); var ret = func(); if (timing) console.timeEnd(name); return ret; }, Init: function() { ikariam.Init(); render.Init(); database.Init(ikariam.Host()); this.CheckForUpdates(false); GM_registerMenuCommand(this.scriptName+'Manual Update',function() { empire.CheckForUpdates(true); }); }, CheckForUpdates: function(forced) { var LD = Constant.LanguageData[database.settings.languageChange.value]; if((forced) || ((database.getGlobalData.LastUpdateCheck + 86400000 <= $.now()) && database.settings.autoUpdates.value)) { try { GM_xmlhttpRequest({ method : 'GET', url : 'https://greasyfork.org/scripts/'+empire.scriptId+'-empire-overview/code/Empire_Overview.meta.js', headers: {'Cache-Control': 'no-cache'}, onload : function(resp) { var remote_version, rt; rt = resp.responseText; database.getGlobalData.LastUpdateCheck = $.now(); remote_version = parseFloat(/@version\s*(.*?)\s*$/m.exec(rt)[1]); if(empire.version != -1) { if(remote_version > empire.version) { if(confirm(LD.alert_update+empire.scriptName+'".\n'+LD.alert_update1)) { // if(confirm(Utils.format(LD.alert_update,[empire.scriptName]))) { GM_openInTab('https://greasyfork.org/scripts/'+empire.scriptId+'-empire-overview'); } } else if(forced) { render.toast(Utils.format(LD.alert_noUpdate,[empire.scriptName])); } } database.getGlobalData.latestVersion = remote_version; } }); } catch(err) { if(forced) { render.toast(LD.alert_error+'\n'+err); } } } }, HardReset: function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; database = {}; empire.deleteVar("settings"); empire.deleteVar("Options"); empire.deleteVar("options"); empire.deleteVar("cities"); empire.deleteVar("LocalStrings"); empire.deleteVar("globalData"); render.toast(LD.alert_toast); setTimeout(function() { document.location = document.getElementById('js_cityLink').children[0].href; },3500); } }; /***************************************************** ********************** database ********************** *****************************************************/ var database = { _globalData: new GlobalData(), cities:{}, settings: {version:empire.version,window:{left:110,top:200,activeTab:0,visible:true},addOptions: function(objVals) {return $.mergeValues(this, objVals);}}, Init: function(host) { $.each(Constant.Settings,function(key,value) { this.settings[value] = new Setting(value); }.bind(database)); var prefix = host; prefix = prefix.replace('.ikariam.','-'); prefix = prefix.replace('.','-'); this.Prefix = prefix; this.Load(); events(Constant.Events.LOCAL_STRINGS_AVAILABLE).sub(ikariam.getLocalizationStrings.bind(this)); $(window).on('beforeunload',function() { setTimeout(function() { database.Save();},0); }); }, addCity: function(id,a) {if(a) { return $.mergeValues(new City(id), a); } else return new City(id); }, get getBuildingCounts() { var buildingCounts = {}; $.each(this.cities, function(cityId,city) { $.each(Constant.Buildings,function(key,value) { if((database.settings.defaultBuildingList.value || database.settings.alternativeBuildingList.value) && (value === '')) {} else if(database.settings.compressedBuildingList.value && (value == Constant.Buildings.STONEMASON || value == Constant.Buildings.WINERY || value == Constant.Buildings.ALCHEMISTS_TOWER || value == Constant.Buildings.GLASSBLOWER)) { buildingCounts.productionBuilding = Math.max(buildingCounts.productionBuilding || 0, city.getBuildingsFromName(value).length); } else if(database.settings.compressedBuildingList.value && (value == Constant.Buildings.GOVERNORS_RESIDENCE || value == Constant.Buildings.PALACE)) { buildingCounts.colonyBuilding = Math.max(buildingCounts.colonyBuilding || 0, city.getBuildingsFromName(value).length); } else { buildingCounts[value] = Math.max(buildingCounts[value] || 0, city.getBuildingsFromName(value).length); } }); }); return buildingCounts; }, startMonitoringChanges: function() { events(Constant.Events.BUILDINGS_UPDATED).sub(this.Save.bind(this)); events(Constant.Events.GLOBAL_UPDATED).sub(this.Save.bind(this)); events(Constant.Events.MOVEMENTS_UPDATED).sub(this.Save.bind(this)); events(Constant.Events.RESOURCES_UPDATED).sub(this.Save.bind(this)); events(Constant.Events.MILITARY_UPDATED).sub(this.Save.bind(this)); events(Constant.Events.PREMIUM_UPDATED).sub(this.Save.bind(this)); }, Load: function() { var settings = this.UnSerialize(empire.getVar('settings','')); if(typeof settings === 'object') { if(!this.isDatabaseOutdated(settings.version)) { $.mergeValues(this.settings, settings); var globalData = this.UnSerialize(empire.getVar('globalData','')); if (globalData.governmentType === '') globalData.governmentType = 'ikakratie'; if(typeof globalData == 'object') { $.mergeValues(this._globalData, globalData); } var cities = this.UnSerialize(empire.getVar('cities','')); if(typeof cities == 'object') { for(var cityID in cities) { (this.cities[cityID] = this.addCity(cities[cityID]._id, cities[cityID])).init(); } } } this._globalData.init(); } events(Constant.Events.DATABASE_LOADED).pub(); }, Serialize: function(data) { var ret; if(data) { try { ret = JSON.stringify(data,null,'\t'); } catch(e) { empire.log('error saving'); } } return ret || undefined; }, UnSerialize: function(data) { var ret; if(data) { try { ret = JSON.parse(data); } catch(e) { empire.log('error loading'); } } return ret || undefined; }, Save: function() { events.scheduleAction(function() { empire.setVar('cities',database.Serialize(database.cities)); empire.setVar('settings',database.Serialize(database.settings)); empire.setVar('globalData',database.Serialize(database._globalData)); }); }, get getGlobalData() { return this._globalData; }, isDatabaseOutdated: function(version) { return 1.166 > (version || 0); }, getCityFromId: function(id) { return this.cities[id] || null; }, get getArmyTotals() { if(!this._armyTotals) { this._armyTotals = Utils.cacheFunction(this._getArmyTotals.bind(database),1000); } return this._armyTotals(); }, _getArmyTotals: function() { var totals = {}; $.each(Constant.UnitData, function(unitId,info) { totals[unitId] = {training:0,total:0,incoming:0,plunder:0}; }); $.each(this.cities, function(cityId,city) { var train = city.military.getTrainingTotals; var incoming = city.military.getIncomingTotals; var total = city.military.getUnits.totals; $.each(Constant.UnitData,function(unitId,info) { totals[unitId].training += train[unitId] || 0; totals[unitId].total += total[unitId] || 0; totals[unitId].incoming += incoming[unitId] || 0; //totals[unitId].plunder += plunder[unitId] || 0; }); }); return totals; }, get getCityCount() { return Object.keys(this.cities).length; }, _getArmyTrainingTotals :function(){ } }; /************************************************ ****************** render view ****************** ************************************************/ var render = { mainContentBox: null, $tabs: null, cityRows:{building:{},resource:{},army:{}}, _cssResLoaded: false, toolTip: {elem:null,timer:null,hide:function() { render.toolTip.elem.parent().hide(); }, show: function() { render.toolTip.elem.parent().show(); }, mouseOver: function(event) { if(render.toolTip.timer) { render.toolTip.timer(); } var f = function(shiftKey) { return function() { var elem; elem = $(event.target).attr('data-tooltip') ? event.target : $(event.target).parents('[data-tooltip]'); render.toolTip.elem.html(render.toolTip.dynamicTip($(event.target).parents('tr').attr('id') ? $(event.target).parents('tr').attr('id').split('_').pop() : 0, elem)); return render.toolTip.elem.html(); }; }(event.originalEvent.shiftKey); if(f(event.originalEvent.shiftKey)) { render.toolTip.show(); render.toolTip.timer = events.scheduleActionAtInterval(f,1000); } }, mouseMove: function(event) { if(render.toolTip.timer && render.toolTip.elem) { var l = parseInt(render.mainContentBox.css('left').split('px')[0]); var t = parseInt(render.mainContentBox.css('top').split('px')[0]); var x = event.pageX - 15 - l; var y = event.pageY + 20 - t; if(render.mainContentBox.height() - render.toolTip.elem.height() < y) { y = event.pageY - render.toolTip.elem.height() - 15 - t; } if(render.mainContentBox.width() - render.toolTip.elem.width() < x) { x = event.pageX - render.toolTip.elem.width() + 15 - l; } render.toolTip.elem.parent().css({left:x+'px',top:y+'px'}); } }, mouseOut: function(event) { if(render.toolTip.timer) { render.toolTip.timer(); render.toolTip.timer = null; } render.toolTip.hide(); }, init: function() { render.toolTip.elem = render.mainContentBox.append($('
    ')).find('div.content'); render.mainContentBox.on('mouseover', '[data-tooltip]', render.toolTip.mouseOver).on('mousemove', '[data-tooltip]', render.toolTip.mouseMove).on('mouseout', '[data-tooltip]', render.toolTip.mouseOut); }, dynamicTip: function(id,elem) { var LD = Constant.LanguageData[database.settings.languageChange.value]; var incB = {'WOOD':'FORESTER','WINE':'WINERY','MARBLE':'STONEMASON','GLASS':'GLASSBLOWER','SULFUR':'ALCHEMISTS_TOWER'}; var $elem = $(elem); var tiptype; if($elem.attr('data-tooltip') === "dynamic") { tiptype = $elem.attr('class').split(" "); } else { return $elem.attr('data-tooltip') || ''; } var city = database.getCityFromId(id); var resourceName; if(city) { resourceName = $elem.is('td') ? $elem.attr('class').split(' ').pop() : $elem.parent('td').attr('class').split(' ').pop(); if(Object.keys(incB).indexOf(resourceName.toUpperCase())!=-1) { var F = (city.getBuildingFromName(Constant.Buildings[incB[resourceName.toUpperCase()]])?city.getBuildingFromName(Constant.Buildings[incB[resourceName.toUpperCase()]]).getLevel:0)*0.02; var resName = resourceName!==Constant.Resources.GLASS ? resourceName : 'CRYSTAL'; // steam saw (cinema): 16, cityid: 0 var B = 0; // console.log(database.getGlobalData.premium,Constant.Premium['WOOD_BONUS']); if(resourceName == Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium.WOOD_BONUS[0]) && database.getGlobalData.premium[Constant.Premium['WOOD_BONUS'][1]] && database.getGlobalData.premium[Constant.Premium['WOOD_BONUS'][1]].cityid==0) { B += parseFloat(Constant.PremiumData[Constant.Premium['WOOD_BONUS'][0]].bonus); } else if(resourceName == Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium.WOOD_BONUS[1]) && city.getId==database.getGlobalData.premium[Constant.Premium['WOOD_BONUS'][1]].cityid) { B += parseFloat(Constant.PremiumData[Constant.Premium['WOOD_BONUS'][1]].bonus); } else if(resourceName != Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium.TRADEGOOD_BONUS) && city.getId==database.getGlobalData.premium[Constant.Premium.TRADEGOOD_BONUS].cityid && city.getTradeGood == resourceName) { B += parseFloat(Constant.PremiumData[Constant.Premium.TRADEGOOD_BONUS].bonus); } else if(resourceName != Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium[resName.toUpperCase()+'_BONUS']) && database.getGlobalData.premium[Constant.Premium[resName.toUpperCase()+'_BONUS']].cityid==0 && city.getTradeGood == resourceName) { B += parseFloat(Constant.PremiumData[Constant.Premium[resName.toUpperCase()+'_BONUS']].bonus); } var rwrk = Math.round(city.getResource(resourceName).getProduction*3600/(1+F+B)); var production = Math.floor(rwrk*(1+F+B)); } } var total; switch(tiptype.shift()) { case "incoming": return getIncomingTip(); break; case "current": return getCurrentResTip(); break; case "progressbar": if(resourceName!==Constant.Resources.GOLD) { return getProgressTip(); } break; case "total": switch($elem.attr('id').split('_').pop()) { case "sigma": return getResourceTotalTip(); break; case "growth": return getGrowthTotalTip(); break; case "researchpoints": return getResearchTotalTip(); break; case "goldincome": return getGoldIncomeTip(); break; case "research": var researchDat; $.each(database.cities,function(cityId,city) { if(researchDat) { $.each(city.research.researchData,function(key,value) { researchDat[key] += value; }); } else { researchDat = $.extend({}, city.research.researchData); } }); return getResearchTip(); break; case "army": return "soon"; break; case "currentwood": case "currentwine": case "currentmarble": case "currentglass": case "currentsulfur": total = 0; resourceName = $elem.attr('id').split('current').pop(); $.each(database.cities, function(cityId,c) { total += resourceName!='gold' ? c.getResource(resourceName).getCurrent : 0; }); return Utils.FormatQuantityToLoad(total); break; case "wineincome": total = 0; var consumption = 0; resourceName = $elem.attr('id').split('_').pop().split('income').shift(); $.each(database.cities,function(i,c) { var F = (c.getBuildingFromName(Constant.Buildings[incB[resourceName.toUpperCase()]])?c.getBuildingFromName(Constant.Buildings[incB[resourceName.toUpperCase()]]).getLevel:0)*0.02; var resName = resourceName!==Constant.Resources.GLASS ? resourceName : 'CRYSTAL'; var B = 0; if(resourceName == Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium.WOOD_BONUS[0]) && database.getGlobalData.premium[Constant.Premium['WOOD_BONUS'][1]] && database.getGlobalData.premium[Constant.Premium['WOOD_BONUS'][1]].cityid==0) { B += parseFloat(Constant.PremiumData[Constant.Premium['WOOD_BONUS'][0]].bonus); } else if(resourceName == Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium.WOOD_BONUS[1]) && c.getId==database.getGlobalData.premium[Constant.Premium['WOOD_BONUS'][1]].cityid) { B += parseFloat(Constant.PremiumData[Constant.Premium['WOOD_BONUS'][1]].bonus); } else if(resourceName != Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium.TRADEGOOD_BONUS) && c.getId==database.getGlobalData.premium[Constant.Premium.TRADEGOOD_BONUS].cityid && c.getTradeGood == resourceName) { B += parseFloat(Constant.PremiumData[Constant.Premium.TRADEGOOD_BONUS].bonus); } else if(resourceName != Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium[resName.toUpperCase()+'_BONUS']) && database.getGlobalData.premium[Constant.Premium[resName.toUpperCase()+'_BONUS']].cityid==0 && c.getTradeGood == resourceName) { B += parseFloat(Constant.PremiumData[Constant.Premium[resName.toUpperCase()+'_BONUS']].bonus); } var rwrk = Math.round(c.getResource(resourceName).getProduction*3600/(1+F+B)); var production = Math.floor(rwrk*(1+F+B)); total += production; consumption += c.getResource(resourceName).getConsumption; }); return getProductionConsumptionSubSumTip(total,consumption,true); break; default : total = 0; resourceName = $elem.attr('id').split('_').pop().split('income').shift(); $.each(database.cities,function(cityId,c) { var F = (c.getBuildingFromName(Constant.Buildings[incB[resourceName.toUpperCase()]])?c.getBuildingFromName(Constant.Buildings[incB[resourceName.toUpperCase()]]).getLevel:0)*0.02; var resName = resourceName!==Constant.Resources.GLASS ? resourceName : 'CRYSTAL'; var B = 0; if(resourceName == Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium.WOOD_BONUS[0]) && database.getGlobalData.premium[Constant.Premium['WOOD_BONUS'][1]] && database.getGlobalData.premium[Constant.Premium['WOOD_BONUS'][1]].cityid==0) { B += parseFloat(Constant.PremiumData[Constant.Premium['WOOD_BONUS'][0]].bonus); } else if(resourceName == Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium.WOOD_BONUS[1]) && c.getId==database.getGlobalData.premium[Constant.Premium['WOOD_BONUS'][1]].cityid) { B += parseFloat(Constant.PremiumData[Constant.Premium['WOOD_BONUS'][1]].bonus); } else if(resourceName != Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium.TRADEGOOD_BONUS) && c.getId==database.getGlobalData.premium[Constant.Premium.TRADEGOOD_BONUS].cityid && c.getTradeGood == resourceName) { B += parseFloat(Constant.PremiumData[Constant.Premium.TRADEGOOD_BONUS].bonus); } else if(resourceName != Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium[resName.toUpperCase()+'_BONUS']) && database.getGlobalData.premium[Constant.Premium[resName.toUpperCase()+'_BONUS']].cityid==0 && c.getTradeGood == resourceName) { B += parseFloat(Constant.PremiumData[Constant.Premium[resName.toUpperCase()+'_BONUS']].bonus); } var rwrk = Math.round(c.getResource(resourceName).getProduction*3600/(1+F+B)); var production = Math.floor(rwrk*(1+F+B)); total += production; }); return getProductionTip(total); break; } case "city_name": return getGovTip(); break; case "pop": return getPopulationTip(); break; case "happy": return getBonusTip(); break; case "growth": return getGrowthTip(); break; case "garrisonlimit": return getActionPointsTip(); break; case "spies": return city.isSafehouse ? getSpyTip() : false; break; case "wonder": return getWonderTip(); break; case "temple": return getTempleTip(); break; case "dailytasks": return getDailyTasksTip(); break; case "cinetheater": return getTheaterTip(); break; case "pirates": return getPiratesTip(); break; case "islandwood": case "islandgood": return getForestMineTip($elem.attr('class')); break; case "prodconssubsum consumption Red": return getFinanceTip(); break; case "scientists": return getResearchTip(); break; case "prodconssubsum": return resourceName === Constant.Resources.GOLD ? getFinanceTip() : getProductionConsumptionSubSumTip(production,city.getResource(resourceName).getConsumption); break; case "building": var bName = tiptype.shift(); var index = parseInt(bName.slice(-1)); bName = bName.slice(0, -1); return getBuildingTooltip(city.getBuildingsFromName(bName)[index]); case "army": switch(tiptype.shift()) { case "unit": return ''; break; case "movement": return getArmyMovementTip(tiptype.pop()); break; case "incoming": return getIncomeMovementTip(tiptype.pop()); break; /* case "plunder": return getPlunderMovementTip(tiptype.pop()); break;*/ } break; default: return ''; break; } function testTip() { return 'Hallo'; } function getGoldIncomeTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var researchCost = 0; var income = 0; var sigmaIncome = 0; $.each(database.cities,function(cityID,city) { researchCost += Math.floor(city.getExpenses); income += Math.floor(city.getIncome); }); var bonus = (income*(database.getGlobalData.hasPremiumFeature(Constant.Premium.GOLD_BONUS)*Constant.PremiumData[Constant.Premium.GOLD_BONUS].bonus)); var expense = database.getGlobalData.finance.armyCost+database.getGlobalData.finance.armySupply+database.getGlobalData.finance.fleetCost+database.getGlobalData.finance.fleetSupply-researchCost; sigmaIncome = income+bonus-expense; return ''+(database.getGlobalData.finance.armyCost>0?'':'')+(database.getGlobalData.finance.fleetCost>0?'':'')+(database.getGlobalData.finance.armySupply>0?'':'')+(database.getGlobalData.finance.fleetSupply>0?'':'')+(researchCost<0?'':'')+(expense>0?'':'')+(income>0?'':'')+(bonus>0?'':'')+'
    1 '+LD.hour+'1 '+LD.day+'1 '+LD.week+'
    -'+Utils.FormatNumToStr(database.getGlobalData.finance.armyCost,false,0)+''+Utils.FormatNumToStr(database.getGlobalData.finance.armyCost*24,false,0)+''+Utils.FormatNumToStr(database.getGlobalData.finance.armyCost*24*7,false,0)+'« '+LD.army_cost+'
    -'+Utils.FormatNumToStr(database.getGlobalData.finance.fleetCost,false,0)+''+Utils.FormatNumToStr(database.getGlobalData.finance.fleetCost*24,false,0)+''+Utils.FormatNumToStr(database.getGlobalData.finance.fleetCost*24*7,false,0)+'« '+LD.fleet_cost+'
    -'+Utils.FormatNumToStr(database.getGlobalData.finance.armySupply,false,0)+''+Utils.FormatNumToStr(database.getGlobalData.finance.armySupply*24,false,0)+''+Utils.FormatNumToStr(database.getGlobalData.finance.armySupply*24*7,false,0)+'« '+LD.army_supply+'
    -'+Utils.FormatNumToStr(database.getGlobalData.finance.fleetSupply,false,0)+''+Utils.FormatNumToStr(database.getGlobalData.finance.fleetSupply*24,false,0)+''+Utils.FormatNumToStr(database.getGlobalData.finance.fleetSupply*24*7,false,0)+'« '+LD.fleet_supply+'
    -'+Utils.FormatNumToStr(researchCost,false,0)+ ''+Utils.FormatNumToStr(researchCost*24,false,0)+''+Utils.FormatNumToStr(researchCost*24*7,false,0)+'« '+LD.research_cost+'
    -'+Utils.FormatNumToStr(expense,false,0)+''+Utils.FormatNumToStr(expense*24,false,0)+''+Utils.FormatNumToStr(expense*24*7,false,0)+'« '+LD.expenses+'
    +'+Utils.FormatNumToStr(income,false,0)+''+Utils.FormatNumToStr(income*24,false,0)+''+Utils.FormatNumToStr(income*24*7,false,0)+'« '+LD.income+'
    +'+Utils.FormatNumToStr(bonus,false,0)+''+Utils.FormatNumToStr(bonus*24,true,0)+''+Utils.FormatNumToStr(bonus*24*7,true,0)+'« '+LD.badtax+'
    Σ '+(sigmaIncome>0?'+':(sigmaIncome<0?'-':''))+''+Utils.FormatNumToStr(sigmaIncome,false,0)+''+Utils.FormatNumToStr(sigmaIncome*24,false,0)+''+Utils.FormatNumToStr(sigmaIncome*24*7,false,0)+'« '+LD.balances+' » '+(sigmaIncome==0?'⚖️':'')+'
    '; } function getArmyMovementTip(unit) { var total = 0; var table = '{1}
    '+LD.training+'
    Σ +{2}« '+LD.total_+'
    '; var rows = ''; $.each(city.military.getTrainingForUnit(unit),function(index, data) { rows += Utils.format('+{0}« {1}',[data.count,Utils.FormatTimeLengthToStr(data.time-$.now(),3)]); total += data.count; }); return rows==='' ? '' : Utils.format(table,[getImage(unit),rows,total]); } function getPopulationTip() { var populationData = city.populationData; var popDiff = populationData.maxPop-populationData.currentPop; var dur = 50*Math.abs(Math.log(populationData.happiness/(populationData.happiness+(populationData.happiness>=popDiff?-popDiff:populationData.currentPop))))*3600000; var Tip = popDiff>0 && !isNaN(dur) ? ' « '+LD.time_to_full+''+Utils.FormatFullTimeToDateString(moment()+dur,true)+'
    ('+Utils.FormatTimeLengthToStr(dur,4)+')':''; var populationTip = '{8}
    {0}
    {1}« {5}
    {2}« {0}
    {3}« {7}
    {4}« {6}
    '; return Utils.format(populationTip,[LD.citizens,Utils.FormatNumToStr(populationData.maxPop,false,0),Utils.FormatNumToStr(populationData.currentPop,false,0),Utils.FormatNumToStr(city._citizens,false,0),((popDiff===0)?LD.full:Utils.FormatNumToStr(popDiff,false,2)),LD.housing_space,LD.free_housing_space,LD.free_Citizens,Tip]); } function getGrowthTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; console.log(city); var populationData = city.populationData; var popDiff = populationData.maxPop-populationData.currentPop; var Icon = 'skin/icons/growth_'+(populationData.happiness>=0?'positive':'negative')+'.png'; var Tip = popDiff>0 ? '
    1 '+LD.hour+'1 '+LD.day+'1 '+LD.week+'
    '+((populationData.growth>0)?'+':'-')+''+Utils.FormatNumToStr(populationData.currentPop,false,0)+''+Utils.FormatNumToStr(Math.floor(populationData.currentPop+populationData.happiness*(1-Math.exp(-24/50))),false,0)+''+Utils.FormatNumToStr(Math.floor(populationData.currentPop+populationData.happiness*(1-Math.exp(-24*7/50))),false,0)+'
    ' : ''; var sat = ''; var img = ''; if(populationData.growth<-1) { img = 'outraged'; sat = ''+LD.angry+''; } else if(populationData.growth<0) { img = 'sad'; sat = ''+LD.unhappy+''; } else if(populationData.growth<1) { img = 'neutral'; sat = ''+LD.neutral+''; } else if(populationData.growth<6) { img = 'happy'; sat = ''+LD.happy+''; } else { img = 'ecstatic'; sat = ''+LD.euphoric+''; } var growthTip ='0?' class="red"':'')+' colspan="3">{3}'+(city.isMuseum?'':'')+(city.isTavern?'':'')+'
    {0}
    {1}«{2}
    «{4}
    {5}/{6}«{7}
    {8}/{9}«{10}
    {11}'; return Utils.format(growthTip,[LD.satisfaction,Utils.FormatNumToStr(populationData.happiness,true,0),sat,city.CorruptionCity+' %',LD.corruption,Math.floor(city._culturalGoods),Math.floor(city.maxculturalgood),LD.cultural,Math.floor(city.tavernlevel),Math.floor(city.maxtavernlevel),LD.level_tavern,Tip]); } function getBonusTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var populationData = city.populationData; var img = populationData.growth > 1 ? (populationData.growth < 6 ? 'happy' : 'ecstatic') : populationData.growth < 0 ? (populationData.growth < -1 ? 'outraged' : 'sad') : 'neutral'; var clr = populationData.happiness > 0 ? 'green' : (populationData.happiness < 0 ? 'red' : 'blue'); var growthTip = '{2}
    {1}
    ={3}   «'+LD.bonustiptxt[7]+'
    Σ{4}   «'+LD.bonustiptxt[8]+'
     {5}{6}   «'+LD.bonustiptxt[9]+'
    '; var growthTr = ':{0}   «{2}'; var growthRows = ''; var incomeSum = 0; var i = 0; $.each(populationData.satisfaction,function(key,value) { var total = 0; if(key === 'total') return true; if(typeof value === 'object') { for(var type in value) { total += value[type]; } } else { total += value; } i++; incomeSum += total; growthRows += Utils.format(growthTr, [(key=='corruption' && total>0 ? '-':'')+Utils.FormatNumToStr(total,false,1), key, LD.bonustiptxt[i-1]]); }); return Utils.format(growthTip, [img, LD.bonuses, growthRows, Utils.FormatNumToStr(incomeSum, false, 1), Utils.FormatNumToStr(populationData.currentPop, false, 0), '', Utils.FormatNumToStr(populationData.happiness,false,2)]); } function getDailyTasksTip() { var serverTimezoneOffset = unsafeWindow.dataSetForView.serverTimezoneOffset; var diff = -(moment().utcOffset()*60-serverTimezoneOffset)*1000; var d1 = moment(moment()+diff).add(1,'day').startOf('day')-diff; var d2 = moment(moment()+diff).add(1,'week').startOf('week')-diff; var test = Utils.FormatFullTimeToDateString(moment()+diff,false); var Tip = '
    {0}
    {1}«{2}
    {3}
    {4}
    ({5})
    {6}
    {7}
    ({8})
    '; return Utils.format(Tip,[LD.dailytasks,Utils.FormatNumToStr(database._globalData._favour,false,0),LD.favours[database._globalData._favour==1?1:0],LD.renew,Utils.FormatFullTimeToDateString(d1,false),Utils.FormatTimeLengthToStr(d1-$.now(),3),LD.zeroingtasks,Utils.FormatFullTimeToDateString(d2,true),Utils.FormatTimeLengthToStr(d2-$.now(),4)]); } function getActionPointsTip() { var garrisonTip = '
    {0}
     {1} / {2}« {3}
     {4} / {5}« {6}
    '; var units = {army:0,fleet:0}; $.each(Constant.UnitData,function(id,info) { units[Constant.UnitData[id].type] += parseInt(city.military.getUnits.getUnit(id)); }); return Utils.format(garrisonTip,[LD.garrison,Utils.FormatNumToStr(units.army,false,0),Utils.FormatNumToStr(city.garrisonland,false,0),LD.Inland,Utils.FormatNumToStr(units.fleet,false,0),Utils.FormatNumToStr(city.garrisonsea,false,0),LD.Sea]); } function getSpyTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var s = []; s[0] = city.getSpies.ondefense; s[1] = city.getSpies.inmission; s[2] = s[0]+s[1]; s[3] = city.isSafehouse ? city.getBuildingFromName(Constant.Buildings.SAFEHOUSE).getLevel-s[2] : 0; s[4] = city.isSafehouse ? city.getBuildingFromName(Constant.Buildings.SAFEHOUSE).getLevel : 0; var spyTip = '
    {0}
     {1}({2} %)« {3}
     {4}({5} %)« {6}
     {7}({8} %)« {9}
     {10}({11} %)« {12}
    Σ{13}({14} %)« {15}
    '; return Utils.format(spyTip,[LD.spy,Utils.FormatNumToStr(s[0],false,0),Utils.FormatNumToStr(Math.round(s[0]*100/s[4],2),false,2),LD.spytiptxt[0],Utils.FormatNumToStr(s[1],false,0),Utils.FormatNumToStr(Math.round(s[1]*100/s[4],2),false,2),LD.spytiptxt[1],Utils.FormatNumToStr(s[2],false,0),Utils.FormatNumToStr(Math.round(s[2]*100/s[4],2),false,2),LD.spytiptxt[2],Utils.FormatNumToStr(s[3],false,0),Utils.FormatNumToStr(Math.round(s[3]*100/s[4],2),false,2),LD.spytiptxt[3],Utils.FormatNumToStr(s[4],false,0),Utils.FormatNumToStr(Math.round(s[4]*100/s[4],2),false,2),LD.spytiptxt[4]]); } function getGovTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var gov = database.getGlobalData.getGovernmentType; var Tip = '
    {0}
    {1}
    '; return Utils.format(Tip,[LD.government,LD[gov],gov]); } function getTheaterTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var cine = database.getGlobalData.getTheaterData; var tp = [Constant.Premium.WOOD_BONUS[1],Constant.Premium.TRADEGOOD_BONUS]; var serverTimezoneOffset = unsafeWindow.dataSetForView.serverTimezoneOffset; var diff = -(moment().utcOffset()*60-serverTimezoneOffset)*1000; var favsecs = (moment(moment()+diff).add(1,'day').startOf('day')-diff-$.now())/1000; // Utils.Format(LD.theatertxts.tip,[LD[ikariam.getCurrentCity.getTradeGood+'_']]) var cineres = database.getGlobalData.getPremiumTimeRemaining(tp[0])>0 ? database.getGlobalData.hasPremiumFeature(tp[0])?Utils.FormatFullTimeToDateString(database.getGlobalData.getPremiumTimeRemaining(tp[0])+$.now(),false)+'
    ('+Utils.FormatTimeLengthToStr(database.getGlobalData.getPremiumTimeRemaining(tp[0]),3)+')':'' : Utils.format(LD.theatertxts.tip,[LD['wood_']]); var cinetrg = database.getGlobalData.getPremiumTimeRemaining(tp[1])>0 ? database.getGlobalData.hasPremiumFeature(tp[1])?Utils.FormatFullTimeToDateString(database.getGlobalData.getPremiumTimeRemaining(tp[1])+$.now(),false)+'
    ('+Utils.FormatTimeLengthToStr(database.getGlobalData.getPremiumTimeRemaining(tp[1]),3)+')':'' : Utils.format(LD.theatertxts.tip,[LD[ikariam.getCurrentCity.getTradeGood+'_']]); var cinefav = moment(moment()+diff).add(1,'day').startOf('day')-diff>0 ? Utils.FormatFullTimeToDateString(moment(moment()+diff).add(1,'day').startOf('day')-diff,false)+'
    ('+Utils.FormatTimeLengthToStr((favsecs)*1000,3)+')' : ''; var Tip = '
    {0}
    {1}«{2}
    {3}
    {4}
    {5}
    {6}
    {7}
    {8}
    '; return Utils.format(Tip,[LD.Cinetheatre,LD.theatertxts[cine.status],LD.theatertxts.status,LD.theatertxts.resource+(database.getGlobalData.getPremiumTimeCityId(tp[0])!==undefined && database.getCityFromId(database.getGlobalData.getPremiumTimeCityId(tp[0]))!==null ? ' | '+database.getCityFromId(database.getGlobalData.getPremiumTimeCityId(tp[0])).getName : ''),cineres,Utils.format(LD.theatertxts.tradegood+(database.getGlobalData.getPremiumTimeCityId(tp[1])!==undefined && database.getCityFromId(database.getGlobalData.getPremiumTimeCityId(tp[1]))!==null ? ' | '+database.getCityFromId(database.getGlobalData.getPremiumTimeCityId(tp[1])).getName : ''),[LD.theatertxts[database.getCityFromId(database.getGlobalData.getPremiumTimeCityId(tp[1]))!==null ? database.getCityFromId(database.getGlobalData.getPremiumTimeCityId(tp[1])).getTradeGood : 'luxury']]),cinetrg,LD.theatertxts.favour,cinefav]); } function getPiratesTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var duration = [150,450,900,1800,3600,7200,14400,28800,57600]; var serverTimezoneOffset = unsafeWindow.dataSetForView.serverTimezoneOffset; var p = database.getGlobalData.getPirates; var b = 0; $.each(database.cities,function(i,city) { b += city.isPirateFortress?city.getBuildingFromName(Constant.Buildings.PIRATE_FORTRESS).getLevel*2:0; }); var diff = serverTimezoneOffset-moment().utcOffset()*60; var dailyreset = moment().startOf('day').add({h:parseInt(p.dailyreset[0]),m:parseInt(p.dailyreset[1])}).subtract(diff,'s'); var resetin = moment(p.resetin).startOf('day').add({h:18,m:0}).subtract(diff,'seconds'); var dailyduration = dailyreset>$.now()?dailyreset-$.now():dailyreset.add(1,'day')-$.now(); var mission = p.miss && $.now()<=p.mission.endtime ? Utils.format('{0}
    {2}
    {3}',[''+LD.mission+' ('+LD[p.mission.type]+')'+(p.mission.level==-1?'':'
    '+LD.pirtxt[p.mission.level+18]),p.mission.type=='raid'?100:((duration[p.mission.level]*1000-(p.mission.endtime-$.now()))/(duration[p.mission.level]*1000)*100),(p.mission.type=='raid'?' ':Utils.FormatNumToStr((duration[p.mission.level]*1000-(p.mission.endtime-$.now()))/(duration[p.mission.level]*1000)*100,false,2)+' %'),Utils.FormatFullTimeToDateString(p.mission.endtime,false)+'
    ('+Utils.FormatTimeLengthToStr(p.mission.endtime-$.now(),4)+')']) : ''; var conversion = p.conv && $.now()<=p.conversion.endtime ? Utils.format('{0}
    {2} %
    {3}',[LD.convert,(((p.conversion.points*0.7+156)*1000-(p.conversion.endtime-$.now()))/((p.conversion.points*0.7+156)*1000)*100),Utils.FormatNumToStr(((p.conversion.points*0.7+156)*1000-(p.conversion.endtime-$.now()))/((p.conversion.points*0.7+156)*1000)*100,false,2),Utils.FormatFullTimeToDateString(p.conversion.endtime,false)+'
    ('+Utils.FormatTimeLengthToStr(p.conversion.endtime-$.now(),4)+')']) : ''; var Tip = ''+(p.position>0?'':'')+'{15}'+(resetin-moment()>1800000?'':'')+'
    {0}
    {1}«{2}
    {3}«{4}
    {5}«{6}
    {7}«{8}
    {9}«{10}
    {11}«{12}
    {13}«{14} {20}
    {16}
    {17}
    {18}
    {19}
    '; var mul = Utils.mul(p.position); return Utils.format(Tip, [ LD.pirates, Utils.FormatNumToStr(b,false,0), LD.pirtxt[5], Utils.FormatNumToStr(p.points,false,0), LD.pirtxt[2], Utils.FormatNumToStr(b+p.points,false,0), LD.subsum, Utils.FormatNumToStr(p.strength>=7000?1400:0,false,0), LD.pirtxt[6], Utils.FormatNumToStr(b+p.points+(p.strength>=7000?1400:0),false,0), LD.total_, Utils.FormatNumToStr(p.strength,false,0), LD.pirtxt[3], Utils.Nth(p.position), LD.classify, mission+conversion, LD.dailyreset, Utils.FormatFullTimeToDateString(dailyreset,true)+'
    ('+Utils.FormatTimeLengthToStr(dailyduration,3)+')', LD.finalevaluation, Utils.FormatFullTimeToDateString(resetin,true)+'
    ('+Utils.FormatTimeLengthToStr(resetin-$.now(),4)+')', p.position>0?' ('+(mul>0?' × '+Utils.FormatNumToStr(mul,false,3).replace(/0+$/,'').replace(/[,.]$/,'')+' = +':LD.pirtxt[52])+')':'' ]); } function getForestMineTip(c) { var LD = Constant.LanguageData[database.settings.languageChange.value]; var serverTyp = 1; if(ikariam.Server()=='s201' || ikariam.Server()=='s202') serverTyp = 3; var o = {'islandwood':'resource','islandgood':'tradegood'}; var v = Object.keys(o).indexOf(c)!=-1 ? o[c] : null; var fm = city['_'+(v && v=='resource' ? 'forest' : 'mine')]; // city['get'+(v && v=='resource' ? 'Forest' : 'Mine')]; var uConst = fm.endUpgradeTime*1000 > $.now(); var i = [Constant.Resources.WOOD,Constant.Resources.WINE,Constant.Resources.MARBLE,Constant.Resources.GLASS,Constant.Resources.SULFUR]; var rid = i[v && v=='resource' ? 0 : city.getTradeGoodID]; var gov = Constant.GovernmentData[database.getGlobalData.getGovernmentType].buildingTime; var t = (Math.round((v && v=='resource' ? 7200 : 14400)*Math.pow(1.1,fm.level+1)-(v && v=='resource' ? 7200 : 14400))*1000)*(1+gov); var time = ''+Utils.FormatFullTimeToDateString((uConst ? fm.endUpgradeTime*1000+(Math.round((v && v=='resource' ? 7200 : 14400)*Math.pow(1.1,fm.level+2)-(v && v=='resource' ? 7200 : 14400))*1000)*(1+gov)/serverTyp : ($.now()+t)/serverTyp),true)+'
    ('+Utils.FormatTimeLengthToStr((uConst ? (Math.round((v && v=='resource' ? 7200 : 14400)*Math.pow(1.1,fm.level+2)-(v && v=='resource' ? 7200 : 14400))*1000)*(1+gov) : t)/serverTyp,4)+')'; var percent = ($.now()-(fm.endUpgradeTime*1000-t))*100/t; var Tip = ''+(uConst ? Utils.format('',[percent,Utils.FormatNumToStr(percent,false,2)+' %']):'')+''+(uConst ? Utils.format('',[Utils.FormatFullTimeToDateString(fm.endUpgradeTime*1000,true),Utils.FormatTimeLengthToStr(fm.endUpgradeTime*1000-$.now(),4)]) : '')+'{21}
    {1}
    {1}
    {0}
    ({1})
    {3}«{4}
    {5}«{6}
    {7}«{8}
    {9}«{10}
    {11}«{12}
    {13}«{14}
    {15} %«{16}
    {17}«{18}
    {19} %«{20}
    '; var maxWorkers = Constant.IslandBuildings[v=='resource'?'forest':'mine'].workers[fm.level+(!uConst&&$.now()>(fm.endUpgradeTime*1000)&&fm.endUpgradeTime>0?1:0)]; return Utils.format(Tip,[rid,LD.forminetitle[v=='resource'?0:city.getTradeGoodID]+(uConst?'
    '+LD.constructing_mine+'':''),v&&v=='resource'?'wood':v,uConst?''+fm.level+' > '+(fm.level+1)+'' : fm.level+($.now()>(fm.endUpgradeTime*1000)&&fm.endUpgradeTime>0?1:0),LD[v+'level'],Utils.FormatNumToStr(fm.workers<=maxWorkers?fm.workers:maxWorkers,false,0)+' / '+Utils.FormatNumToStr(maxWorkers,false,0),LD.workers+' ('+Utils.FormatNumToStr((fm.workers<=maxWorkers?fm.workers/maxWorkers:1)*100,false,0)+' %)',Utils.FormatNumToStr(fm.workers>maxWorkers?fm.workers-maxWorkers:0,false,0)+' / '+Utils.FormatNumToStr(maxWorkers*0.5,false,0),LD.unskilled+' ('+Utils.FormatNumToStr((fm.workers>maxWorkers?(fm.workers-maxWorkers)/(maxWorkers*0.5):0)*100,false,0)+' %)',Utils.FormatNumToStr(fm.donatedResources,false,0),LD.wonderdonations,Utils.FormatNumToStr(uConst ? Constant.IslandBuildings[v=='resource'?'forest':'mine'].wood[fm.level+1] : (!uConst&&$.now()>(fm.endUpgradeTime*1000)&&fm.endUpgradeTime>0?Constant.IslandBuildings[v=='resource'?'forest':'mine'].wood[fm.level+1]:fm.maxwood),false,0),LD.maxwood,Utils.FormatNumToStr(uConst?0:fm.curwood,false,0),LD.curwood,Utils.FormatNumToStr((uConst?0:fm.curwood)*100/(uConst?Constant.IslandBuildings[v=='resource'?'forest':'mine'].wood[fm.level+1] : (!uConst&&$.now()>(fm.endUpgradeTime*1000)&&fm.endUpgradeTime>0?Constant.IslandBuildings[v=='resource'?'forest':'mine'].wood[fm.level+1]:fm.maxwood)),false,2),Utils.FormatQuantityToLoad(uConst?0:fm.curwood),Utils.FormatNumToStr(uConst ? Constant.IslandBuildings[v=='resource'?'forest':'mine'].wood[fm.level+1] : (!uConst&&$.now()>(fm.endUpgradeTime*1000)&&fm.endUpgradeTime>0?Constant.IslandBuildings[v=='resource'?'forest':'mine'].wood[fm.level+1]:fm.maxwood)-fm.curwood,false,0),LD.diffwood,Utils.FormatNumToStr(100-(uConst ? 0 : fm.curwood)*100/(uConst ? Constant.IslandBuildings[v=='resource'?'forest':'mine'].wood[fm.level+1] : (!uConst&&$.now()>(fm.endUpgradeTime*1000)&&fm.endUpgradeTime>0?Constant.IslandBuildings[v=='resource'?'forest':'mine'].wood[fm.level+1]:fm.maxwood)),false,2),Utils.FormatQuantityToLoad(uConst ? Constant.IslandBuildings[v=='resource'?'forest':'mine'].wood[fm.level+1] : (!uConst&&$.now()>(fm.endUpgradeTime*1000)&&fm.endUpgradeTime>0?Constant.IslandBuildings[v=='resource'?'forest':'mine'].wood[fm.level+1]:fm.maxwood)-fm.curwood),time]); } function getTempleTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var populationData = city.populationData; var w = city.getWonder; var wC = [604800,345600,777600,604800,86400,259200,86400,259200]; var wD = [86400,57600,129600,86400,14400,43200,14402,0]; if(w.submittime>0 && city.getBuildingFromName(Constant.Buildings.TEMPLE)) { if($.now()('+Utils.FormatTimeLengthToStr(w.submittime+(wC[w.id-1])*1000-$.now(), 4)+')'; } } var withTemple = city.getBuildingFromName(Constant.Buildings.TEMPLE) ? Utils.format('{0}«{1}{2}%«{3}{4}%«{5}'+(w.submittime>0 ? ''+cooltime+'«'+cooltxt+'' : ''),[city._priests,LD.priests,Utils.FormatNumToStr(city._priests*500/populationData.maxPop,false,2),LD.conversion,Utils.FormatNumToStr(w.islandshare*100,false,2),LD.islandshare]) : ''; var barometer = '
    '; var Tip = ''+withTemple+'
     {1}
    {6} %«{7}
    '; return Utils.format(Tip,[w.id,LD.wonders[w.id]+(city.getBuildingFromName(Constant.Buildings.TEMPLE)?'':'
    '+LD.wonders[0]+''),w.level,LD.wonderlevel,w.faithlevel,LD.faithlevel,Utils.FormatNumToStr(w.maxislandfaith*100,false,2),LD.maxislandfaith]); } function getWonderTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var populationData = city.populationData; var w = city.getWonder; var withTemple = city.getBuildingFromName(Constant.Buildings.TEMPLE) ? Utils.format('{0} %«{1}',[Utils.FormatNumToStr(city._priests*500/populationData.maxPop,false,2),LD.conversion]) : ''; var barometer = '
    '; var Tip = ''+withTemple+'
     {1}
    {2}«{3}
    {4}«{5}
    {6}«{7}
    {8} %«'+barometer+'
    {10} %«{11}
    '; return Utils.format(Tip,[w.id,LD.wonders[w.id]+(city.getBuildingFromName(Constant.Buildings.TEMPLE)?'':'
    '+LD.wonders[0]+''),w.level,LD.wonderlevel,w.faithlevel,LD.faithlevel,Utils.FormatNumToStr(w.donatedResources,false,0),LD.wonderdonations,Utils.FormatNumToStr(w.curislandfaith*100.41,false,2),LD.curislandfaith,Utils.FormatNumToStr(w.maxislandfaith*100,false,2),LD.maxislandfaith]); } function getFinanceTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var b = database.getGlobalData.hasPremiumFeature(Constant.Premium.GOLD_BONUS)*Constant.PremiumData[Constant.Premium.GOLD_BONUS].bonus; var income = city.getIncome>0?Utils.format('{0}{1}{2}',[Utils.FormatNumToStr(city.getIncome,true,0),Utils.FormatNumToStr(city.getIncome*24,false,0),Utils.FormatNumToStr(city.getIncome*7*24,false,0)]):''; var bonus = b>0?Utils.format('{0}{1}{2}',[Utils.FormatNumToStr(city.getIncome*b,true,0),Utils.FormatNumToStr(city.getIncome*b*24,false,0),Utils.FormatNumToStr(city.getIncome*b*7*24,false,0)]):''; var expense = city.getExpenses<0?Utils.format('{0}{1}{2}',[Utils.FormatNumToStr(city.getExpenses,true,0),Utils.FormatNumToStr(city.getExpenses*24,false,0),Utils.FormatNumToStr(city.getExpenses*7*24,false,0)]):''; var tot = Math.floor(city.getIncome*(1+b)+city.getExpenses); var total = bonus!='' || expense!='' ? Utils.format('Σ'+(tot>0?'+':(tot<0?'-':''))+'{0}{1}{2}',[Utils.FormatNumToStr(tot,false,0),Utils.FormatNumToStr(tot*24,false,0),Utils.FormatNumToStr(tot*7*24,false,0)]) : ''; var Tip = '{3}{4}
    {0}{1}{2}
    '; return Utils.format(Tip,['1 '+LD.hour,'1 '+LD.day,'1 '+LD.week,income+bonus+expense,total]); } function getResearchTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var isAcademy = city.getBuildingFromName(Constant.Buildings.ACADEMY); var researchData = city.research.researchData; var cultural = researchData.culturalGoods + researchData.premiumCulturalGoodsBonus; var premium = researchData.premiumScientistBonus; var tr = '{0}{1}{2}« {3}'; var gov = {'demokratie':[cultural,'cultural_r','museum/icon32_culturalgood.png','+'],'theokratie':[(researchData.scientists+researchData.researchBonus+premium)*0.05,'cultural_r','government/zepter_20.png','-'],'technokratie':[(researchData.scientists+researchData.researchBonus+premium)*0.05,'cultural_r','government/zepter_20.png','+'],'anarchie':[(researchData.scientists+researchData.researchBonus+premium)*0.25,'cultural_r','government/zepter_20.png','-']}; var g = Object.keys(gov).indexOf(database.getGlobalData.getGovernmentType)!=-1 ? gov[database.getGlobalData.getGovernmentType] : ''; var rows = g!=''?Utils.format(tr,['',g[3],Utils.FormatNumToStr(g[0],false,2),LD[g[1]]]):''; if(premium){rows += Utils.format(tr,['','+',Utils.FormatNumToStr(premium,false,2),LD.potion]);} if(researchData.corruption){rows += Utils.format(tr,['','-',Utils.FormatNumToStr(researchData.corruption,false,2),LD.corruption]);} var tot = researchData.scientists+researchData.researchBonus+(database.getGlobalData.getGovernmentType==Constant.Government.THEOCRACY?-1:1)*(g!=''?g[0]:0)+premium-researchData.corruption; var tooltip = tot>0 ? ''+(isAcademy!=null?'':'')+'{1}
    {0}
    {3}« {4}
    +{5}« {6}
    +{7}« {8}
    Σ+{9}« '+LD.research_hp+'
    {10}{11}{12}
    {13}{14}{15}
    ' : ''; return Utils.format(tooltip,[LD[isAcademy!=null?'academy':'researchP'],rows,Utils.FormatNumToStr(researchData.total,false,2),Utils.FormatNumToStr(city.maxSci,false,0),LD.scientists_max,Utils.FormatNumToStr(researchData.scientists,false,0),LD.scientists_employed+(' ('+Utils.FormatNumToStr((researchData.scientists*100/city.maxSci),false,2)+' %)'),Utils.FormatNumToStr(researchData.researchBonus,false,2),LD.from_researchs,Utils.FormatNumToStr(tot,false,2),'1 '+LD.hour,'1 '+LD.day,'1 '+LD.week,Utils.FormatNumToStr(Math.round(tot),false,0),Utils.FormatNumToStr(Math.round(tot*24),false,0),Utils.FormatNumToStr(Math.round(tot*24*7),false,0)]); } function getIncomingTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var cRes = city.getResource(resourceName).getCurrent; if(resourceName===Constant.Resources.GOLD) { cRes = database.getGlobalData.finance.currentGold; } var rMov = database.getGlobalData.getResourceMovementsToCity(city.getId); var table = '{0}{1}{2}
    '; var row = '
    {1}« '+LD.from+' {2}{3}« ({4}){5}« '+LD.arrival_time+''; var header = '
    '+ LD.transport +'
    '; var subtotal = '={0}{1}'; var footer = 'Σ:{0}« '+LD.after_transport+''; if(rMov.length) { var trades = ''; var transp = ''; var plunder = ''; var movTotal = 0; for(var movID in rMov) { if(!$.isNumeric(movID)) { break; } if(rMov[movID].getResources[resourceName]) { var origin = database.getCityFromId(rMov[movID].getOriginCityId); var tMov = Utils.format(row,[rMov[movID].getMission,''+Utils.FormatQuantityToLoad(rMov[movID].getResources[resourceName],false,rMov[movID].getCapacityPerShip)+' '+Utils.FormatNumToStr(rMov[movID].getResources[resourceName],false,0),origin?origin.getName:rMov[movID].getOriginCityId,Utils.FormatRemainingTime(rMov[movID].getArrivalTime-$.now()),rMov[movID].isLoading?LD.loading+': '+ Utils.FormatRemainingTime(rMov[movID].getLoadingTime,false):rMov[movID].getArrivalTime>$.now()?LD.en_route:LD.arrived,Utils.FormatFullTimeToDateString(rMov[movID].getArrivalTime)]); if(rMov[movID].getMission == "trade") { trades += tMov; } else if(rMov[movID].getMission == 'transport') { transp += tMov; } else if(rMov[movID].getMission == 'plunder') { plunder += tMov; } movTotal += rMov[movID].getResources[resourceName]; } } if(trades==='' && transp==='' && plunder==='') { return ''; } var body = trades+transp+plunder+Utils.format(subtotal,[Utils.FormatNumToStr(movTotal,false,0),'« '+LD.total_cargo+'']); var foot = Utils.format(footer,[Utils.FormatNumToStr((movTotal+cRes),false,0)]); var head = Utils.format(header, []); return Utils.format(table,[head,body,foot]); } return ''; } function getCurrentResTip() { if(resourceName!==Constant.Resources.GOLD) { var max = city.maxResourceCapacities; var cap = city.getResource(resourceName).getCurrent; var hardcap = 2562500; var icon = ''; var icons = (max.buildings.warehouse.storage>0?Utils.format(icon,[Constant.BuildingData[Constant.Buildings.WAREHOUSE].icon])+'+':'')+(max.buildings.dump.storage>0?Utils.format(icon,[Constant.BuildingData[Constant.Buildings.DUMP].icon])+'
    +':'')+Utils.format(icon,[Constant.BuildingData[Constant.Buildings.TOWN_HALL].icon]); var branch = max.branchOffice.storage>0?Utils.format(icon,[Constant.BuildingData[Constant.Buildings.TRADING_POST].icon]):''; var tip = '
    {1}
    {2}{3}{4}
    {5}{6}{7}{8}« {9}
    {10} %{11} %{12} %
    {13}{14}{15}
    {16}{17}{18}{19}« {20}
    {21} %{22} %{23} %
    {24}{25}{26}
    {27}{28}{29}{30}« {31}
    {32} %{33} %{34} %
    {35}{36}{37}
    '; var notip = '
    {1}{2}«{3}
    {4}{5}«{6}
    {7}{8}«{9}
    {10} %{11} %
    {12}{13}
    {14}{15}«{16}
    {17} %{18} %
    {19}{20}
    '; return max.branchOffice.storage>0?Utils.format(tip,[resourceName,LD.capacity,LD.maximum,LD.missing,LD.current,icons,Utils.FormatNumToStr(max.capacity,false,0),Utils.FormatNumToStr(max.capacity-Math.min(max.capacity,cap),false,0),Utils.FormatNumToStr(Math.min(max.capacity,cap),false,0),LD.used,Utils.FormatNumToStr((max.capacity)*100/hardcap,false,2),Utils.FormatNumToStr((max.capacity-Math.min(max.capacity,cap))*100/max.capacity,false,2),Utils.FormatNumToStr((Math.min(max.capacity,cap))*100/max.capacity,false,2),Utils.FormatQuantityToLoad(max.capacity),Utils.FormatQuantityToLoad(max.capacity-Math.min(max.capacity,cap)),Utils.FormatQuantityToLoad(Math.min(max.capacity,cap)),branch,Utils.FormatNumToStr(max.branchOffice.storage,false,0),Utils.FormatNumToStr(max.branchOffice.storage-city.getResource(resourceName).branchOffice,false,0),Utils.FormatNumToStr(city.getResource(resourceName).branchOffice,false,0),LD.branchreserved,Utils.FormatNumToStr((max.branchOffice.storage)*100/max.capacity,false,2),Utils.FormatNumToStr((max.branchOffice.storage-city.getResource(resourceName).branchOffice)*100/max.branchOffice.storage,false,2),Utils.FormatNumToStr((city.getResource(resourceName).branchOffice)*100/max.branchOffice.storage,false,2),Utils.FormatQuantityToLoad(max.branchOffice.storage),Utils.FormatQuantityToLoad(max.branchOffice.storage-city.getResource(resourceName).branchOffice),Utils.FormatQuantityToLoad(city.getResource(resourceName).branchOffice),icons+'-'+branch,Utils.FormatNumToStr(max.capacity-max.branchOffice.storage,false,0),Utils.FormatNumToStr(max.capacity-Math.min(max.capacity,cap)-max.branchOffice.storage+city.getResource(resourceName).branchOffice,false,0),Utils.FormatNumToStr(Math.min(max.capacity,cap)-city.getResource(resourceName).branchOffice,false,0),LD.foruse,Utils.FormatNumToStr((max.capacity-max.branchOffice.storage)*100/max.capacity,false,2),Utils.FormatNumToStr((max.capacity-Math.min(max.capacity,cap)-max.branchOffice.storage+city.getResource(resourceName).branchOffice)*100/(max.capacity-max.branchOffice.storage),false,2),Utils.FormatNumToStr((Math.min(max.capacity,cap)-city.getResource(resourceName).branchOffice)*100/(max.capacity-max.branchOffice.storage),false,2),Utils.FormatQuantityToLoad(max.capacity-max.branchOffice.storage),Utils.FormatQuantityToLoad(max.capacity-Math.min(max.capacity,cap)-max.branchOffice.storage+city.getResource(resourceName).branchOffice),Utils.FormatQuantityToLoad(Math.min(max.capacity,cap)-city.getResource(resourceName).branchOffice)]):Utils.format(notip,[resourceName,Utils.FormatNumToStr(hardcap,false,0),Utils.FormatQuantityToLoad(hardcap),LD.maximum,LD.currentunits,LD.time_to_full,LD.units,Utils.FormatNumToStr(max.capacity,false,0),Utils.FormatNumToStr(hardcap-max.capacity,false,0),LD.currcap,Utils.FormatNumToStr(max.capacity*100/hardcap,false,2),Utils.FormatNumToStr((hardcap-max.capacity)*100/hardcap,false,2),Utils.FormatQuantityToLoad(max.capacity),Utils.FormatQuantityToLoad(hardcap-max.capacity),Utils.FormatNumToStr(cap,false,0),Utils.FormatNumToStr(max.capacity-cap,false,0),LD.currquant,Utils.FormatNumToStr(cap*100/max.capacity,false,2),Utils.FormatNumToStr((max.capacity-cap)*100/max.capacity,false,2),Utils.FormatQuantityToLoad(cap),Utils.FormatQuantityToLoad(max.capacity-cap)]); } } function getBuildingTooltip(building) { if(building) { var LD = Constant.LanguageData[database.settings.languageChange.value]; var uConst = building.isUpgrading; var resourceCost = building.getUpgradeCost; var serverTyp = 1; if(ikariam.Server() == 's201' || ikariam.Server() == 's202') serverTyp = 3; var elem = ''; var sum = 0; var dsum = [0,0]; var time = 0; var ctime = 0; var needlevel = 0; var costlevel = 0; ctime = Constant.BuildingData[building.getName].time; ctime = (building.getName==Constant.Buildings.PIRATE_FORTRESS?ctime[building.getLevel]:Math.round(ctime.a/ctime.b*Math.pow(ctime.c,building.getLevel+1)-ctime.d))*1000; needlevel = building.getLevel+2; costlevel = building.getLevel+1; for(var key in resourceCost) { if(key=='time') { time = ''+Utils.FormatFullTimeToDateString(resourceCost[key]/serverTyp+(!uConst?$.now():building.getCompletionTime),true)+'
    ('+Utils.FormatTimeLengthToStr(resourceCost[key]/serverTyp,3,' ')+')'; continue; } if(resourceCost[key]) { var diff = building.city().getResource(key).getCurrent-resourceCost[key]; sum += resourceCost[key]; dsum[diff<0?0:1] += diff; elem += '
    '+Utils.FormatNumToStr(resourceCost[key],false,0)+'
    '+Utils.FormatQuantityToLoad(resourceCost[key])+''+(diff<0?'':'')+' ('+Utils.FormatNumToStr(diff,true,0)+')
    '+Utils.FormatQuantityToLoad(Math.abs(diff))+''; } } elem = (elem!=='') ? ''+elem+''+time+'
    '+(uConst?LD.next_Level+' '+needlevel:LD.next_Level+' '+costlevel)+'
    Σ:'+Utils.FormatNumToStr(sum,false,0)+'
    '+Utils.FormatQuantityToLoad(sum)+'
    ('+Utils.FormatNumToStr(dsum[dsum[0]<0?0:1],true,0)+')
    '+Utils.FormatQuantityToLoad(Math.abs(dsum[dsum[0]<0?0:1]))+'
    ':uConst?'':'
    '+LD.max_Level_complete+'
    '; if(uConst) { elem = '
    '+Utils.FormatNumToStr(((ctime/serverTyp)-(building.getCompletionTime-$.now()))/(ctime/serverTyp)*100,false,2)+' %
    '+Utils.FormatFullTimeToDateString(building.getCompletionTime,true)+'
    ('+Utils.FormatTimeLengthToStr(building.getCompletionTime-$.now(),3)+')
    '+elem; } return elem; } else { return ''; } } function getGrowthTotalTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var totals = ['',[],'',[],'',[],[],'',[],[],'']; totals[0] = LD.satisfaction; totals[2] = LD.bonustiptxt[9]; totals[4] = LD.bonustiptxt[10];; totals[7] = LD.cultural; totals[10] = LD.tavern_level; $.each(database.cities,function(k,city) { totals[1].push(parseInt(city.populationData.happiness)); totals[3].push(parseInt(city.CorruptionCity)); totals[5].push(parseInt(city._culturalGoods)); totals[6].push(parseInt(city.maxculturalgood)); totals[8].push(parseInt(city.tavernlevel)); totals[9].push(parseInt(city.maxtavernlevel)); }); totals[1] = Utils.FormatNumToStr(totals[1].reduce(function(a,b){return a+b;},0),true,0); var corrsum = totals[3].reduce(function(a,b){return a+b;},0); totals[3] = Utils.FormatNumToStr(corrsum / totals[3].length,false,2); totals[5] = totals[5].reduce(function(a,b){return a+b;},0); totals[6] = totals[6].reduce(function(a,b){return a+b;},0); totals[8] = totals[8].reduce(function(a,b){return a+b;},0); totals[9] = totals[9].reduce(function(a,b){return a+b;},0); return Utils.format(''+(totals[6]>0?'':'')+(totals[9]>0?'':'')+'
    {0}
    {1}«{2}
    {3} %«{4}
    '+(totals[5]!=totals[6] ? '' : '')+'{5}'+(totals[5]!=totals[6] ? '' : '')+'/{6}«{7}
    {8}/{9}«{10}
    ',totals); } function getResearchTotalTip() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var scientists = 0; var bonus = 0; var premium = 0; var corruption = 0; var cultural = 0; $.each(database.cities,function(k,city) { var researchData = city.research.researchData; scientists += researchData.scientists; bonus += researchData.researchBonus; premium += researchData.premiumScientistBonus; cultural += researchData.culturalGoods+researchData.premiumCulturalGoodsBonus; corruption += researchData.corruption; }); var gov = {'demokratie':[cultural,'cultural_r','museum/icon32_culturalgood.png','+',19],'theokratie':[(scientists+bonus+premium)*0.05,'cultural_r','government/zepter_20.png','-',16],'technokratie':[(scientists+bonus+premium)*0.05,'cultural_r','government/zepter_20.png','+',16],'anarchie':[(scientists+bonus+premium)*0.25,'cultural_r','government/zepter_20.png','-',16]}; var g = Object.keys(gov).indexOf(database.getGlobalData.getGovernmentType)!=-1 ? gov[database.getGlobalData.getGovernmentType] : ''; var total = scientists+bonus+premium+(database.getGlobalData.getGovernmentType==Constant.Government.THEOCRACY?-1:1)*(g!=''?g[0]:0)-corruption; var tip = '{3}{4}
    {0}{1}{2}
    '; return Utils.format(tip,['1 '+LD.hour,'1 '+LD.day,'1 '+LD.week,(scientists>0?Utils.format('+{0}{1}{2}',[Utils.FormatNumToStr(Math.round(scientists),false,0),Utils.FormatNumToStr(Math.round(scientists)*24,false,0),Utils.FormatNumToStr(Math.round(scientists)*24*7,false,0)]):'')+(bonus>0?Utils.format('+{0}{1}{2}',[Utils.FormatNumToStr(Math.round(bonus),false,0),Utils.FormatNumToStr(Math.round(bonus)*24,false,0),Utils.FormatNumToStr(Math.round(bonus)*24*7,false,0)]):'')+(g!=''?Utils.format('+{2}{3}{4}',[g[2],g[4],g[0],Utils.FormatNumToStr(Math.round(g[0]),false,0),Utils.FormatNumToStr(Math.round(g[0])*24,false,0),Utils.FormatNumToStr(Math.round(g[0])*24*7,false,0)]):'')+('')+(premium>0?Utils.format('+{0}{1}{2}',[Utils.FormatNumToStr(Math.round(premium),false,0),Utils.FormatNumToStr(Math.round(premium*24),false,0),Utils.FormatNumToStr(Math.round(premium*24*7),false,0)]):'')+(corruption>0?Utils.format('-{0}{1}{2}',[Utils.FormatNumToStr(Math.round(corruption),false,0),Utils.FormatNumToStr(Math.round(corruption*24),false,0),Utils.FormatNumToStr(Math.round(corruption*24*7),false,0)]):'')+(total>0?Utils.format('Σ+{0}{1}{2}',[Utils.FormatNumToStr(Math.round(total),false,0),Utils.FormatNumToStr(Math.round(total*24),false,0),Utils.FormatNumToStr(Math.round(total*24*7),false,0)]):'')]); } function getResourceTotalTip() { var totals = {}; var res; $.each(database.cities,function(cityId,city) { $.each(Constant.Resources,function(key,resourceName) { res = city.getResource(resourceName); if(!totals[resourceName]) { totals[resourceName] = {}; } totals[resourceName].total = totals[resourceName].total ? totals[resourceName].total + res.getCurrent : res.getCurrent; totals[resourceName].income = totals[resourceName].income ? totals[resourceName].income + res.getProduction * 3600 - res.getConsumption : res.getProduction * 3600 - res.getConsumption; if(resourceName === Constant.Resources.GOLD) { var bonus = (1+(database.getGlobalData.hasPremiumFeature(Constant.Premium.GOLD_BONUS)*Constant.PremiumData[Constant.Premium.GOLD_BONUS].bonus)); var researchCost = 0, expense = 0, inGold = 3; res = 0; res += Math.floor(city.getIncome*bonus + city.getExpenses); researchCost += Math.floor(city.getExpenses); expense = (database.getGlobalData.finance.armyCost + database.getGlobalData.finance.armySupply + database.getGlobalData.finance.fleetCost + database.getGlobalData.finance.fleetSupply) / database.getCityCount; inGold = database.getGlobalData.finance.currentGold / database.getCityCount; totals[resourceName].total = totals[resourceName].total ? totals[resourceName].total + inGold : inGold; totals[resourceName].income = totals[resourceName].income ? totals[resourceName].income + res - expense : res - expense; } }); }); var r = ''; var finalSums = {income: 0, total: 0, day: 0, week: 0}; $.each(totals, function(resourceName, data) { var day = data.total + data.income * 24; var week = data.total + data.income * 168; r += Utils.format('
    {1}{2}{3}{4}',[resourceName,Utils.FormatNumToStr(data.income,true,0),Utils.FormatNumToStr(data.total,true,0),Utils.FormatNumToStr(day,true,0),Utils.FormatNumToStr(week,true,0)]); finalSums.income += data.income; finalSums.total += data.total; finalSums.day += day; finalSums.week += week; }); return r==='' ? '' : Utils.format('{0}
    '+LD.per_+'
    {5}
    {6}Σ '+LD.in_+' 1
    {7}
    Σ '+LD.in_+' 1
    {8}
    ',[r,Utils.FormatNumToStr(finalSums.income,true,0),Utils.FormatNumToStr(finalSums.total,true,0),Utils.FormatNumToStr(finalSums.day,true,0),Utils.FormatNumToStr(finalSums.week,true,0),LD.hour_long,LD.currenttotal_,LD.day_long,LD.week_long]); } function getProgressTip() { if(resourceName == 'population' || resourceName =='ui-corner-all'){return '';} var storage = city.maxResourceCapacities; var current = city.getResource(resourceName).getCurrent; var fulltime = (city.getResource(resourceName).getFullTime || -city.getResource(resourceName).getEmptyTime)*3600000; moment.locale(database.settings.languageChange.value); var dur = moment().add(Math.abs(fulltime),'ms'); var serverTyp = 1; if (ikariam.Server() == 's201' || ikariam.Server() == 's202') serverTyp = 3; var gold = city.plundergold>0 && serverTyp!=1 ? ''+Utils.FormatNumToStr(city.plundergold)+'\u221E « '+LD.plundergold +'' : ''; var progTip = '{0}{11}
    {12}{13}
    {9}{1}{2}« {14}
    {16}{17}« {18}
    {19}{20}{22}
    {10}{3}{4}« {15}
    {5}{6}{23}
    {7}« {8}
    '; var progTr = '{1}{2}« {3}'; var rows = ''; $.each(storage.buildings,function(buildingName,data) { rows += Utils.format(progTr,[Constant.BuildingData[buildingName].icon,Utils.FormatNumToStr(data.safe,false,0),Utils.FormatNumToStr(data.storage,false,0),data.lang]); }); // console.log([rows,Utils.FormatNumToStr(storage.safe,false,0),Utils.FormatNumToStr(storage.capacity,false,0),Utils.FormatNumToStr(Math.min(storage.safe,current),false,0),Utils.FormatNumToStr(Math.min(storage.capacity,current),false,0),Utils.FormatNumToStr(Math.min(1,current/storage.safe)*100,false,2)+' %',Utils.FormatNumToStr(Math.min(1,current/storage.capacity)*100,false,2)+' %',Utils.FormatFullTimeToDateString(dur)==''?' \u221E ':Utils.FormatFullTimeToDateString(dur,true)+'
    ('+Utils.FormatTimeLengthToStr(fulltime,4)+')',fulltime<0?LD.time_to_empty:LD.time_to_full,database.getGlobalData.hasPremiumFeature(Constant.Premium.STORAGECAPACITY_BONUS)?'':'',database.getGlobalData.hasPremiumFeature(Constant.Premium.SAFECAPACITY_BONUS)?'':'',gold,LD.safe,LD.capacity,LD.maximum,LD.used,Utils.FormatNumToStr(storage.safe-Math.min(storage.safe,current),false,0),Utils.FormatNumToStr(storage.capacity-Math.min(storage.capacity,current),false,0),LD.missing,Utils.FormatNumToStr(100-(Math.min(1,current/storage.safe)*100),false,2===0)?Utils.FormatNumToStr(100-(Math.min(1,current/storage.safe)*100),false,2)+' %':Utils.FormatNumToStr(100-(Math.min(1,current/storage.safe)*100),false,2)+' %',Utils.FormatNumToStr(100-(Math.min(1,current/storage.capacity)*100),false,2===0)?Utils.FormatNumToStr(100-(Math.min(1,current/storage.capacity)*100),false,2)+' %':Utils.FormatNumToStr(100-(Math.min(1,current/storage.capacity)*100),false,2)+' %',resourceName,Utils.FormatQuantityToLoad(storage.capacity-Math.min(storage.capacity,current)),Utils.FormatQuantityToLoad(Math.min(storage.capacity,current))]); return Utils.format(progTip,[rows,Utils.FormatNumToStr(storage.safe,false,0),Utils.FormatNumToStr(storage.capacity,false,0),Utils.FormatNumToStr(Math.min(storage.safe,current),false,0),Utils.FormatNumToStr(Math.min(storage.capacity,current),false,0),Utils.FormatNumToStr(Math.min(1,current/storage.safe)*100,false,2)+' %',Utils.FormatNumToStr(Math.min(1,current/storage.capacity)*100,false,2)+' %',Utils.FormatFullTimeToDateString(dur)==''?' \u221E ':Utils.FormatFullTimeToDateString(dur,true)+'
    ('+Utils.FormatTimeLengthToStr(fulltime,4)+')',fulltime<0?LD.time_to_empty:LD.time_to_full,database.getGlobalData.hasPremiumFeature(Constant.Premium.STORAGECAPACITY_BONUS)?'':'',database.getGlobalData.hasPremiumFeature(Constant.Premium.SAFECAPACITY_BONUS)?'':'',gold,LD.safe,LD.capacity,LD.maximum,LD.used,Utils.FormatNumToStr(storage.safe-Math.min(storage.safe,current),false,0),Utils.FormatNumToStr(storage.capacity-Math.min(storage.capacity,current),false,0),LD.missing,Utils.FormatNumToStr(100-(Math.min(1,current/storage.safe)*100),false,2===0)?Utils.FormatNumToStr(100-(Math.min(1,current/storage.safe)*100),false,2)+' %':Utils.FormatNumToStr(100-(Math.min(1,current/storage.safe)*100),false,2)+' %',Utils.FormatNumToStr(100-(Math.min(1,current/storage.capacity)*100),false,2===0)?Utils.FormatNumToStr(100-(Math.min(1,current/storage.capacity)*100),false,2)+' %':Utils.FormatNumToStr(100-(Math.min(1,current/storage.capacity)*100),false,2)+' %',resourceName,Utils.FormatQuantityToLoad(storage.capacity-Math.min(storage.capacity,current)),Utils.FormatQuantityToLoad(Math.min(storage.capacity,current))]); } function getConsumptionTooltip(consumption,force) { var warehouse = 0; var dump = 0; $.each(database.cities,function(k,c) { warehouse += c.isWarehouse ? 1 : 0; dump += c.isDump ? 1 : 0; }); warehouse = city!=null ? city.isWarehouse : warehouse; dump = city!=null ? city.isDump : dump; var maxc = parseInt($('#js_GlobalMenu_maxTransporters').text())*500; return (consumption===0 && !force) || resourceName!==Constant.Resources.WINE ? '' : Utils.format(''+(warehouse>0 && maxc>=8000?'':'')+(dump>0 && maxc>=32000?'':'')+''+(warehouse>0 && maxc<8000?'':'')+(dump>0 && maxc<32000?'':'')+'
    {1}{2}{3}
    {4}{5}{6}
    {7}{8}{9}
    '+LD.cargo+''+LD.duration+'
    100 '+Utils.FormatTimeLengthToStr(100*3600000/consumption,3)+'
    200 '+Utils.FormatTimeLengthToStr(200*3600000/consumption,3)+'
    300 '+Utils.FormatTimeLengthToStr(300*3600000/consumption,3)+'
    400 '+Utils.FormatTimeLengthToStr(400*3600000/consumption,3)+'
    1  '+Utils.FormatTimeLengthToStr(500*3600000/consumption,3)+'
    1  '+Utils.FormatTimeLengthToStr(8000*3600000/consumption,3)+'
    1  '+Utils.FormatTimeLengthToStr(32000*3600000/consumption,3)+'
    1  '+Utils.FormatTimeLengthToStr(maxc*3600000/consumption,3)+'
    1  '+Utils.FormatTimeLengthToStr(8000*3600000/consumption,3)+'
    1  '+Utils.FormatTimeLengthToStr(32000*3600000/consumption,3)+'
    ',[Constant.Resources.WINE,'1 '+LD.hour,'1 '+LD.day,'1 '+LD.week,Utils.FormatNumToStr(-consumption,true,0),Utils.FormatNumToStr(-consumption*24,true,0),Utils.FormatNumToStr(-consumption*24*7,true,0),Utils.FormatQuantityToLoad(consumption),Utils.FormatQuantityToLoad(consumption*24),Utils.FormatQuantityToLoad(consumption*24*7)]); } function getProductionTip(income,force) { var warehouse = 0; var dump = 0; $.each(database.cities,function(k,c) { warehouse += c.isWarehouse ? 1 : 0; dump += c.isDump ? 1 : 0; }); warehouse = city!=null ? city.isWarehouse : warehouse; dump = city!=null ? city.isDump : dump; var resName = resourceName=='glass' ? 'crystal' : resourceName; var resBonus = database.getGlobalData.hasPremiumFeature(Constant.Premium[resourceName.toUpperCase()+'_BONUS']); var maxc = parseInt($('#js_GlobalMenu_maxTransporters').text())*500; return income===0 && !force ? '' : Utils.format(''+(warehouse>0 && maxc>=8000?'':'')+(dump>0 && maxc>=32000?'':'')+''+(warehouse>0 && maxc<8000?'':'')+(dump>0 && maxc<32000?'':'')+'
    {1}{2}{3}
    {7}{4}{5}{6}
    {8}{9}{10}
    '+LD.cargo+''+LD.duration+'
    100 '+Utils.FormatTimeLengthToStr(100*3600000/income,3)+'
    200 '+Utils.FormatTimeLengthToStr(200*3600000/income,3)+'
    300 '+Utils.FormatTimeLengthToStr(300*3600000/income,3)+'
    400 '+Utils.FormatTimeLengthToStr(400*3600000/income,3)+'
    1  '+Utils.FormatTimeLengthToStr(500*3600000/income,3)+'
    1  '+Utils.FormatTimeLengthToStr(8000*3600000/income,3)+'
    1  '+Utils.FormatTimeLengthToStr(32000*3600000/income,3)+'
    1  '+Utils.FormatTimeLengthToStr(parseInt($('#js_GlobalMenu_maxTransporters').text())*500*3600000/income,3)+'
    1  '+Utils.FormatTimeLengthToStr(8000*3600000/income,3)+'
    1  '+Utils.FormatTimeLengthToStr(32000*3600000/income,3)+'
    ',[resourceName,'1 '+LD.hour,'1 '+LD.day,'1 '+LD.week,Utils.FormatNumToStr(income,true,0),Utils.FormatNumToStr(income*24,false,0),Utils.FormatNumToStr(income*24*7,false,0),resBonus?'':'',Utils.FormatQuantityToLoad(income),Utils.FormatQuantityToLoad(income*24),Utils.FormatQuantityToLoad(income*24*7)]); } function getProductionConsumptionSubSumTip(income,consumption,force) { var warehouse = 0; var dump = 0; $.each(database.cities,function(k,c) { warehouse += c.isWarehouse ? 1 : 0; dump += c.isDump ? 1 : 0; }); warehouse = city!=null ? city.isWarehouse : warehouse; dump = city!=null ? city.isDump : dump; var maxc = parseInt($('#js_GlobalMenu_maxTransporters').text())*500; if(income===0 && consumption===0 && !force) { return ''; } else if(resourceName!==Constant.Resources.WINE) { return getProductionTip(income,force); } else if(income===0) { return getConsumptionTooltip(consumption,force); } else { return Utils.format(''+(warehouse>0 && maxc>=8000?'':'')+(dump>0 && maxc>=32000?'':'')+''+(warehouse>0 && maxc<8000?'':'')+(dump>0 && maxc<32000?'':'')+'
    {1}{2}{3}
    {14}{4}{5}{6}
    {7}{8}{9}
    {10}{11}{12}{13}
    {15}{16}{17}
    '+LD.cargo+''+LD.duration+'
    100 '+Utils.FormatTimeLengthToStr(100*3600000/(income-consumption),3)+'
    200 '+Utils.FormatTimeLengthToStr(200*3600000/(income-consumption),3)+'
    300 '+Utils.FormatTimeLengthToStr(300*3600000/(income-consumption),3)+'
    400 '+Utils.FormatTimeLengthToStr(400*3600000/(income-consumption),3)+'
    1  '+Utils.FormatTimeLengthToStr(500*3600000/(income-consumption),3)+'
    1  '+Utils.FormatTimeLengthToStr(8000*3600000/(income-consumption),3)+'
    1  '+Utils.FormatTimeLengthToStr(32000*3600000/(income-consumption),3)+'
    1  '+Utils.FormatTimeLengthToStr(parseInt($('#js_GlobalMenu_maxTransporters').text())*500*3600000/(income-consumption),3)+'
    1  '+Utils.FormatTimeLengthToStr(8000*3600000/(income-consumption),3)+'
    1  '+Utils.FormatTimeLengthToStr(32000*3600000/(income-consumption),3)+'
    ',[resourceName,'1 '+LD.hour,'1 '+LD.day,'1 '+LD.week,Utils.FormatNumToStr(income,true,0),Utils.FormatNumToStr(income*24,false,0),Utils.FormatNumToStr(income*24*7,false,0),Utils.FormatNumToStr(-consumption,true,0),Utils.FormatNumToStr(-consumption*24,true,0),Utils.FormatNumToStr(-consumption*24*7,true,0),(income>consumption?'\u03A3 + ':'\u03A3 - '),Utils.FormatNumToStr((income-consumption),false,0),Utils.FormatNumToStr((income-consumption)*24,false,0),Utils.FormatNumToStr((income-consumption)*24*7,false,0),database.getGlobalData.hasPremiumFeature(Constant.Premium.WINE_BONUS)?'':'',Utils.FormatQuantityToLoad(income-consumption),Utils.FormatQuantityToLoad((income-consumption)*24),Utils.FormatQuantityToLoad((income-consumption)*24*7)]); } } function getImage(unitID) { return (Constant.UnitData[unitID].type == 'fleet') ? 'skin/characters/fleet/60x60/' + unitID + '_faceright.png' : 'skin/characters/military/x60_y60/y60_' + unitID + '_faceright.png'; } } }, cssResLoaded: function() { var ret = this._cssResLoaded; this._cssResLoaded = true; return ret; }, Init: function() { this.SidePanelButton(); events(Constant.Events.DATABASE_LOADED).sub(function(){ this.LoadCSS(); this.DrawContentBox(); }.bind(render)); events(Constant.Events.MODEL_AVAILABLE).sub(function(){ this.DrawTables(); this.setCommonData(); this.RestoreDisplayOptions(); this.startMonitoringChanges(); this.cityChange(ikariam.CurrentCityId); }.bind(render)); }, startMonitoringChanges: function() { events(Constant.Events.TAB_CHANGED).sub(function(tab) { this.stopResourceCounters(); switch(tab) { case 0: this.startResourceCounters(); break; case 1: this.updateCitiesBuildingData(); break; case 2: this.updateCitiesArmyData(); break; case 3: this.redrawSettings(); break; } }.bind(render)); events(Constant.Events.TAB_CHANGED).pub(database.settings.window.activeTab); events('cityChanged').sub(this.cityChange.bind(render)); events(Constant.Events.BUILDINGS_UPDATED).sub(this.updateChangesForCityBuilding.bind(render)); events(Constant.Events.GLOBAL_UPDATED).sub(this.updateGlobalData.bind(render)); events(Constant.Events.MOVEMENTS_UPDATED).sub(this.updateMovementsForCity.bind(render)); events(Constant.Events.RESOURCES_UPDATED).sub(this.updateResourcesForCity.bind(render)); events(Constant.Events.CITY_UPDATED).sub(this.updateCityDataForCity.bind(render)); events(Constant.Events.MILITARY_UPDATED).sub(this.updateChangesForCityMilitary.bind(render)); events(Constant.Events.PREMIUM_UPDATED).sub(this.updateGlobalData.bind(render)); }, cityChange: function(cid) { if(typeof(bUpinterv)!='undefined') { clearInterval(bUpinterv); } var LD = Constant.LanguageData[database.settings.languageChange.value]; var city = database.getCityFromId(cid); var pir = 0; $.each(database.cities,function(k,c){pir+=c.isPirateFortress?1:0;}); $('#empire_Tabs > ul > div.pirates').css({'display':pir>0?'inline-block':'none','opacity':city.isPirateFortress?'1.0':'0.5'}); $('#empireBoard tr.current,#empireBoard tr.selected').removeClass('selected current'); if(city) { this.getAllRowsForCity(city).addClass('selected').addClass((isChrome) ? 'current' : 'selected'); } $.each(Constant.Resources,function(r) { if(r!='GOLD') { var res = r.toLowerCase(); var p = Math.floor(city._resources[res].getProduction*3600); p = ''+Utils.FormatNumToStr(p,p==0?false:true,p==0?2:0)+''; var c = Math.floor(city._resources[res].getConsumption); c = ''+Utils.FormatNumToStr(-c,c==0?false:true,c==0?2:0)+''; $('#resources_'+res+' > span.resourceProduction').remove(); $('#resources_'+res+' > span[id^=js_GlobalMenu_]').after(''); $('#resources_'+res).find('span.resourceProduction').html(p+(res=='wine'?c:'')); } }); if($('#tradegoodImage').attr('src')!=undefined) { $('#tradegoodTicket').text(Utils.format(LD.cinetheatretxt[11],[LD.cinetheatretxt[12][city.getTradeGood=='glass'?'crystal':city.getTradeGood]])); // console.log(Utils.format(LD.cinetheatretxt[11],[LD.cinetheatretxt[12][city.getTradeGood=='glass'?'crystal':city.getTradeGood]])); } setTimeout(function() { $('#js_MilitaryMovementsFleetMovementsTable > table > tbody > tr:not(:first)').each(function(k,tr) { $(tr).find('td:nth-child(4)').attr('colspan','2').css({'width':'240px','text-align':'center'}).empty(); $(tr).find('td:nth-child(5) > div.infoTip > div').css('display','inline-block').find('div:not(:first)').each(function(k,div) { $(div).text(Utils.FormatNumToStr(parseInt($(div).text().replace(/(\d+)[,.](?=\d{3}(\D|$))/g,'$1')),false,0)); }); $(tr).find('td:nth-child(4)').html($(tr).find('td:nth-child(5) > div.infoTip').html()); $(tr).find('td:nth-child(5), td:nth-child(4) > a, td:nth-child(4) > h5').remove(); }); },100); }, getWorldmapTable: function() { }, getHelpTable : function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var hlptxt = ['Re_Order_Towns','On_any_tab','Reset_Position','Right_click','Hotkeys','Navigate','Navigate_to_City','Navigate_to','Navigate_to_World','Spacebar','Initialize_Board']; var hlptrans = []; for(var i=0;i
    {0} {1}
    {2} {3}
    {4}{5}
    {6}
    {7}
    {8}
    {9}
    {10}',hlptrans); var hlpSteps = ['Townhall','Research','Palace','Museum','CTs','AllyMembers','Finance','Inventory','Military']; for(var i=0;i> {0} < {1}{2}',[LD.click_,LD.helpSteps[i],i==hlpSteps.length-1 ? '' : '
    ']); } elems += '
    '; return elems; }, getSettingsTable: function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var wineOut = ''; var server = ikariam.Nationality(); if(server == 'de') { wineOut = ' '; } var piracy = ''; if(database.getGlobalData.getResearchTopicLevel(Constant.Research.Seafaring.PIRACY)) { piracy = ' '; } var elems = '
    '; var order = 0; var inits = '
    '+LD.building_category+'
    '+LD.resource_category+' '+wineOut+'
    '+LD.language_category+'
    '; var features = '
    '+LD.visibility_category+'
    '+LD.army_category+' '+ //+' + '
    '+LD.global_category+'
    '+LD.tweaks_category+'
    '; var display = '
    '+LD.display_category+' '+piracy+'
    '; elems += features+inits+display+'

      '+LD.current_Version+' '+empire.version+'

      '+LD.ikariam_Version+' '+ikariam.GameVersion()+'

    '; return elems; }, DrawHelp: function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; $('#HelpTab').html(this.getHelpTable()) .on("click", "#helpTownhall",function(){ikariam.loadUrl(ikariam.viewIsCity,'city', ikariam.getCurrentCity.getBuildingFromName(Constant.Buildings.TOWN_HALL).getUrlParams);}) .on("click", "#helpResearch",function(){ikariam.loadUrl(ikariam.viewIsCity,'city', {view:'researchAdvisor'});}) .on("click", "#helpPalace",function() { var capital = ikariam.getCapital; if(capital) { ikariam.loadUrl(ikariam.viewIsCity,'city',capital.getBuildingFromName(Constant.Buildings.PALACE).getUrlParams); } else { alert(LD.alert_palace); } }) .on("click", "#helpMuseum",function(){ikariam.loadUrl(ikariam.viewIsCity, "city", {view:'museum',activeTab:'tab_museum'});}) .on("click", "#helpCTs",function(){ikariam.loadUrl(ikariam.viewIsCity, "city", {view:'museumTreaties',activeTab:'tab_museumTreaties'});}) .on("click", "#helpAllyMembers",function() { var embassy = ikariam.getEmbassy; if(embassy) {ikariam.loadUrl(ikariam.viewIsCity,'city', $.extend(embassy.getBuildingFromName(Constant.Buildings.EMBASSY).getUrlParams,{view:'embassy',activeTab:'tabEmbassyMembers'}));}}) .on("click", "#helpFinance",function(){ikariam.loadUrl(ikariam.viewIsCity, "city", {view:'finances'});}) .on("click", "#helpInventory",function(){ikariam.loadUrl(ikariam.viewIsCity, "city", {view:'inventory'});}) .on("click", "#helpMilitary",function() { var capital = ikariam.getCapital; if(capital) {ikariam.loadUrl(ikariam.viewIsCity,'city', $.extend(capital.getBuildingFromName(Constant.Buildings.PALACE).getUrlParams,{view:'cityMilitary',activeTab:'tabUnits'}));} }); }, DrawSettings: function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; $('#SettingsTab').html(this.getSettingsTable()) .on("change", "#empire_onTop", function() { database.settings.onTop.value = this.checked; render.mainContentBox.css('z-index', this.checked ? 65112 : 61); }) .on("change", "#empire_windowTennis", function() { database.settings.windowTennis.value = this.checked; if(!this.checked) { render.mainContentBox.css('z-index', database.settings.onTop.value ? 65112 : 61); } else { render.mainContentBox.trigger('mouseenter'); } }) .on("change", "#empire_fullArmyTable", function() { database.settings.fullArmyTable.value = this.checked; render.updateCitiesArmyData(); }) .on("change", "#empire_playerInfo", function(){database.settings.playerInfo.value = this.checked;}) .on("change", "#empire_donationButtons", function(){database.settings.donationButtons.value = this.checked;}) .on("change", "#empire_ctfinder", function(){database.settings.ctfinder.value = this.checked;}) .on("change", "#empire_ΧΥshow", function() { database.settings.ΧΥshow.value = this.checked; }) .on("change", "#empire_controlCenter", function(){database.settings.controlCenter.value = this.checked;}) .on("change", "#empire_withoutFable", function(){database.settings.withoutFable.value = this.checked;}) .on("change", "#empire_ambrosiaPay", function(){database.settings.ambrosiaPay.value = this.checked;}) .on("change", "#empire_quantityLoads", function(){database.settings.quantityLoads.value = this.checked;}) .on("change", "#empire_hideOnWorldView", function(){database.settings.hideOnWorldView.value = this.checked;}) .on("change", "#empire_hideOnIslandView", function(){database.settings.hideOnIslandView.value = this.checked;}) .on("change", "#empire_hideOnCityView", function(){database.settings.hideOnCityView.value = this.checked;}) .on("change", "#empire_autoUpdates", function(){database.settings.autoUpdates.value = this.checked;}) .on("change", "#empire_smallFont", function() { database.settings.smallFont.value = this.checked; if(this.checked) {GM_addStyle("#empireBoard {font-size:8pt}");} else {GM_addStyle("#empireBoard {font-size:inherit}");} }) .on("change", "#empire_GoldShort", function(){database.settings.GoldShort.value = this.checked;}) .on("change", "#empire_newsTicker", function(){database.settings.newsTicker.value = this.checked;}) .on("change", "#empire_event", function(){database.settings.event.value = this.checked;}) .on("change", "#empire_birdSwarm", function(){database.settings.birdSwarm.value = this.checked;}) .on("change", "#empire_walkers", function(){database.settings.walkers.value = this.checked;}) .on("change", "#empire_noPiracy", function(){database.settings.noPiracy.value = this.checked;}) .on("change", "#empire_noTheater", function(){database.settings.noTheater.value = this.checked;}) .on("change", "#empire_hourlyRess", function(){database.settings.hourlyRess.value = this.checked;}) .on("change", "#empire_wineWarning", function(){database.settings.wineWarning.value = this.checked;}) .on("change", "#empire_wineOut", function(){database.settings.wineOut.value = this.checked;}) .on("change", "#empire_dailyBonus", function(){database.settings.dailyBonus.value = this.checked;}) .on("change", "#empire_logInPopup", function() { database.settings.logInPopup.value = this.checked; if(this.checked && !database.settings.dailyBonus.value) { database.settings.dailyBonus.value = true; $("#empire_dailyBonus").attr("disabled", this.checked ? true : false); } }) .on("change", "#empire_defaultBuildingList", function() { database.settings.defaultBuildingList.value = this.checked; database.settings.alternativeBuildingList.value = false; database.settings.compressedBuildingList.value = false; render.cityRows.building = {}; $('table.buildings').html(render.getBuildingTable()); render.updateCitiesBuildingData(); $.each(database.cities, function(cityId, city) { render.setCityName(city); render.setActionPoints(city); $.each(database.settings[Constant.Settings.CITY_ORDER].value, function (idx, val) { $('#' + 'building' + '_' + val).appendTo($('#' + 'building' + '_' + val).parent()); }); }); }) .on("change", "#empire_alternativeBuildingList", function() { database.settings.alternativeBuildingList.value = this.checked; database.settings.defaultBuildingList.value = false; database.settings.compressedBuildingList.value = false; render.cityRows.building = {}; $('table.buildings').html(render.getBuildingTable()); render.updateCitiesBuildingData(); $.each(database.cities, function(cityId, city) { render.setCityName(city); render.setActionPoints(city); $.each(database.settings[Constant.Settings.CITY_ORDER].value, function (idx, val) { $('#' + 'building' + '_' + val).appendTo($('#' + 'building' + '_' + val).parent()); }); }); }) .on("change", "#empire_compressedBuildingList", function() { database.settings.compressedBuildingList.value = this.checked; database.settings.defaultBuildingList.value = false; database.settings.alternativeBuildingList.value = false; render.cityRows.building = {}; $('table.buildings').html(render.getBuildingTable()); render.updateCitiesBuildingData(); $.each(database.cities, function(cityId, city) { render.setCityName(city); render.setActionPoints(city); $.each(database.settings[Constant.Settings.CITY_ORDER].value, function (idx, val) { $('#' + 'building' + '_' + val).appendTo($('#' + 'building' + '_' + val).parent()); }); }); }) .on('change',"#empire_wineWarningTime", function(){database.settings.wineWarningTime.value = this.value;}) .on('change',"#empire_languageChange", function(){database.settings.languageChange.value = this.value;}) .on("click", "#empire_Website_Button", function(){GM_openInTab('https://greasyfork.org/scripts/764-empire-overview');}) .on("click", "#empire_Reset_Button",function(){empire.HardReset();}) .on("click","#empire_Update_Button", function(){empire.CheckForUpdates.call(empire, true);}) .on("click","#empire_Bug_Button", function(){GM_openInTab('https://greasyfork.org/scripts/764-empire-overview/feedback');}) .on("change", "input[type='checkbox']", function(){this.blur();}); $(document).ready(function() { //todo if($('#empire_dailyBonus').attr('checked') && $('#dailyActivityBonus form')) { $('#dailyActivityBonus form').submit(); } if ($('#empire_logInPopup').attr('checked')) { GM_addStyle('#multiPopup {display: none;}'); } if ($('#empire_dailyBonus').attr('checked') && $('#empire_logInPopup').attr('checked')) { GM_addStyle('#multiPopup {display: none;}'); } if($('#accept_btn, #cookie_container').length>0) { $('#accept_btn').trigger('click'); $('#cookie_container').remove(); ikariam.loadUrl(true,'city',{cityId:ikariam.CurrentCityId}); } GM_addStyle('#js_worldBread{margin-left:10px !important;}#loadingPreview{transform:scale(0.5);-webkit-transform:scale(0.5);left:35px !important;top:141px !important;}'); }); $("#empire_Reset_Button").button({icons: {primary: "ui-icon-alert"}, text: true}); $("#empire_Website_Button").button({icons: {primary: "ui-icon-home"}, text: true}); $("#empire_Update_Button").button({icons: {primary: "ui-icon-info"}, text: true}); $("#empire_Bug_Button").button({icons: {primary: "ui-icon-notice"}, text: true}); $("#empire_Save_Button").button({icons: {primary: "ui-icon-check"}, text: true}); $("#empire_Allianz").button({text: true}); $("#empire_Allianz_einlesen").button({text: true}); }, toast: function(sMessage) { $('
    ').addClass("ui-tooltip-content ui-widget-content").html(sMessage).appendTo($(document.createElement("div")).addClass("ui-helper-reset ui-tooltip ui-tooltip-pos-bc ui-widget").css({position: 'relative', display: 'inline-block', left: 'auto', top: 'auto'}).show().appendTo($(document.createElement("div")).addClass("toast").appendTo(document.body).delay(100).fadeIn("slow", function(){$(this).delay(2000).fadeOut("slow", function() {$(this).remove();});}))); }, toastAlert: function(sMessage) { $('
    ').addClass("ui-tooltip-content ui-widget-content").text(sMessage).appendTo($(document.createElement("div")).addClass("ui-helper-reset ui-tooltip ui-tooltip-pos-bc ui-widget").css({position: 'relative', display: 'inline-block', left: 'auto', top: '-20px'}).show().appendTo($(document.createElement("div")).addClass("toastAlert").appendTo(document.body).delay(100).fadeIn("slow", function() {$(this).delay(3000).fadeOut("slow", function() {$(this).remove();});}))); }, RestoreDisplayOptions: function() { render.mainContentBox.css('left', database.settings.window.left); render.mainContentBox.css('top', database.settings.window.top); this.$tabs.tabs('select', database.settings.window.activeTab); if(!(ikariam.viewIsWorld && database.settings.hideOnWorldView.value || ikariam.viewIsIsland && database.settings.hideOnIslandView.value || ikariam.viewIsCity && database.settings.hideOnCityView.value) && database.settings.window.visible) {this.mainContentBox.fadeToggle('slow');} }, SaveDisplayOptions: function() { if(database.settings) { try {database.settings.addOptions({window:{left:render.mainContentBox.css('left'),top:render.mainContentBox.css('top'),visible:(ikariam.viewIsWorld && database.settings.hideOnWorldView.value || ikariam.viewIsIsland && database.settings.hideOnIslandView.value || ikariam.viewIsCity && database.settings.hideOnCityView.value) ? database.settings.window.visible : (render.mainContentBox.css('display') != 'none'),activeTab:render.$tabs.tabs('option', 'active')}}); } catch(e) { empire.error('SaveDisplayOptions', e); } } }, SidePanelButton: function() { $('#js_viewCityMenu').find('li.empire_Menu') .on("click", function(event) {render.ToggleMainBox();}) .on("contextmenu", function(event) { event.preventDefault(); database.settings.window.left = 110; database.settings.window.top = 200; render.mainContentBox.css('left', database.settings.window.left); render.mainContentBox.css('top', database.settings.window.top); }); $(document).on('keydown',function(event) { // console.log('Key: ',event); var index = -1; var type = event.target.nodeName.toLowerCase(); if(type === 'input' || type === 'textarea' || type === 'select') return true; if(event.which === 32) { event.stopImmediatePropagation(); render.ToggleMainBox(); return false; } else if(event.which === 27) { return false; } if(event.originalEvent.shiftKey) { index = [49, 50, 51, 52, 53].indexOf(event.which); if(index !== -1) { render.$tabs.tabs('option', 'active', index); return false; } else { switch(event.which) { case 81: $('#js_worldMapLink').find('a').click(); break; case 87: $('#js_islandLink').find('a').click(); break; case 69: $('#js_cityLink').find('a').click(); break; } } } else { var keycodes = ''; var codeTyp = ikariam.Nationality(); switch(codeTyp) { case 'en': case 'gr': case 'us': keycodes = [49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 173, 61]; //EN - = if (isChrome) keycodes = [49, 50, 51, 52, 53, 54, 55, 56, 57, 48, 189, 187]; //US - = break; } index = keycodes.indexOf(event.which); if(index !== -1) { if(index < database.settings.cityOrder.value.length) { $('#resource_' + database.settings.cityOrder.value[index] +' .city_name .clickable').trigger('click'); return false; } } else { switch(event.which) { case 81: $('#js_GlobalMenu_cities').click(); break; case 87: $('#js_GlobalMenu_military').click(); break; case 69: $('#js_GlobalMenu_research').click(); break; case 82: $('#js_GlobalMenu_diplomacy').click(); break; } } } }); }, ToggleMainBox: function() { database.settings.window.visible = (this.mainContentBox.css('display') == 'none'); this.mainContentBox.fadeToggle("slow"); }, DrawTables: function() { if($(this.mainContentBox)) { $('#ArmyTab').html(this.getArmyTable()); $('#ResTab').html(this.getResourceTable()); $('#BuildTab').html(this.getBuildingTable()); $('#WorldmapTab').html(this.getWorldmapTable()); this.DrawSettings(); this.DrawHelp(); this.toolTip.init(); $('#ResTab, #BuildTab, #ArmyTab').each(function() { $(this).sortable({ helper:function(e,ui) { ui.children('td').each(function () { $(this).width(Math.round($(this).width())); $(this).hasClass('building'); if ($(this).css('border', '1px solid transparent')); }); ui.parents('div[role=tabpanel]').each(function () { $(this).width(Math.round($(this).width())); }); return ui; }, handle:'.city_name .icon', cursor:"move", axis:'y', items:'tbody tr', container:'tbody', revert:200, stop:function(event,ui) { ui.item.parents("div[role=tabpanel]").css("width", ""); ui.item.children("td").css("width", "").css("border", ""); database.settings[Constant.Settings.CITY_ORDER].value = ui.item.parents('.ui-sortable').sortable('toArray').map(function (item) { return parseInt(item.split('_').pop()); }); $.each(['building','resource','army'], function (idx, type) { if ($(this).parents('.ui-sortable').attr('id') !== type) { $.each(database.settings[Constant.Settings.CITY_ORDER].value,function(idx,val) { $(document).ready(function() { $('#'+type+'_'+val+' .city_name .clickable').text((idx+1)+' '+database.cities[val].getName); $('#' + type + '_' + val).appendTo($('#' + type + '_' + val).parent()); }); }); } }); } }); }); $.each(['building','resource','army'], function (idx, type) { $.each(database.settings[Constant.Settings.CITY_ORDER].value, function (idx, val) { $(document).ready(function() { $('#'+type+'_'+val+' .city_name .clickable').text((idx+1)+' '+database.cities[val].getName); $('#'+type+'_'+val+' .city_name .coords').css('display',database.settings.ΧΥshow.value?'inline':'none').text('['+database.cities[val].getCoordinates.join(':')+']'); $('#' + type + '_' + val).appendTo($('#' + type + '_' + val).parent()); }); }); }); } this.AttachClickHandlers(); }, getResourceTable: function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var inAlliance = unsafeWindow.hasAlly; var header = '{0}
    '; var table = '{0}{1}{2}
    '; var resourceRow = '   {5}   


    {4}
    {1}'; var resourceCell = '
    '; var footer = 'Σ : '; return Utils.format(table,[getHead(),getBody(),getFooter()]); function getHead() { return Utils.format(header,[LD.towns,LD.actionP,LD.population,LD.researchP,LD.finances_,LD.wood_,LD.wine_,LD.marble_,LD.crystal_,LD.sulphur_,LD.government+': '+LD[database.getGlobalData.getGovernmentType]]); } function getBody() { var rows = ''; $.each(database.cities,function(cityId,city) { var resourceCells = ''; var info = city.isUpgrading === true ? '!' : ''; var progSci = this.getBuildingFromName(Constant.Buildings.ACADEMY) ? '
    ' : ''; var wonder_size = city.getWonder == 7 || 1 ? 25 : 20; $.each(Constant.Resources,function(key,resourceName) { resourceCells += Utils.format(resourceCell,[resourceName]); }); var a = [LD[city.isCapital ? 'capital' : 'colony'],city._name]; var transtip = !city.isCurrentCity ? Utils.format(LD.transporting,a) : LD.transtip; rows += Utils.format(resourceRow,[city.getId,resourceCells,Utils.format(LD.to_town_hall,a),city.getTradeGood,progSci,info,info?LD.constructing:'',city.getWonder.id,wonder_size,city.getIslandID,transtip,Utils.format(LD.to_saw_mill,a),Utils.format(LD.to_mine,a),(city._culturalGoods{0}
    {2}'; var headerCell = ' '; var bodyRow = '


    {3}
    {4}{5}{1}'; var bodyCell = '{1}{2}
    {3}'; var costCell = ''; var footerRow = ' Σ : {1} {0}'; var footerCell = ' '; return Utils.format(table,[getHead(),getBody(),getFooter()]); function getHead() { var headerCells = ''; var cols = ''; var safehouse = 0; $.each(database.cities,function(cityId,city){if(city.getBuildingFromName(Constant.Buildings.SAFEHOUSE)){safehouse++;}}); for(var category in Constant.unitOrder) { cols += ''; $.each(Constant.unitOrder[category],function(index,value) { var helpId = 9; var unit = 'unit'; if(Constant.UnitData[value].id < 300) { helpId = 10; unit = 'ship'; } headerCells += Utils.format(headerCell,[LD[value],getImage(value),value,Constant.UnitData[value].id,helpId,unit]); cols += ''; }); cols += ''; } return cols+Utils.format(headerRow,[LD.towns,LD.actionP,headerCells,'opacity:'+(safehouse>0?'1.0;cursor:pointer':'0.5'),LD.government+': '+LD[database.getGlobalData.getGovernmentType]]); } function getBody() { var body = ''; $.each(database.cities,function(cityId, city) { var rowCells = ''; var a = [LD[city.isCapital ? 'capital' : 'colony'],city._name]; var divbarracks = this.getBuildingFromName(Constant.Buildings.BARRACKS) ? '
    ' : ''; var divshipyard = this.getBuildingFromName(Constant.Buildings.SHIPYARD) ? '
    ' : ' '; var spyopacity = this.getBuildingFromName(Constant.Buildings.SAFEHOUSE) ? '1.0;cursor:pointer' : '0.5'; var cost = 0; //city.military.getUnits.getUnit('phalanx')*Constant.UnitData.phalanx.baseCost; for(var category in Constant.unitOrder) { $.each(Constant.unitOrder[category],function(index,value) { var res = Constant.UnitData[value].id < 300 ? 'Seafaring' : 'Military'; var r = {'Seafaring':['SHIP_MAINTENANCE','PITCH','SEA_MAPS','SEAFARING_FUTURE'],'Military':['MAPS','CODE_OF_HONOR','LOGISTICS','MILITARISTIC_FUTURE']}; var builds = city.getUnitBuildsByUnit(value); cost += city.military.getUnits.getUnit(value)*Constant.UnitData[value].baseCost*(1-database.getGlobalData.getResearchTopicLevel(Constant.Research[res][r[res][0]])*0.02-database.getGlobalData.getResearchTopicLevel(Constant.Research[res][r[res][1]])*0.04-database.getGlobalData.getResearchTopicLevel(Constant.Research[res][r[res][2]])*0.08-database.getGlobalData.getResearchTopicLevel(Constant.Research[res][r[res][3]])*0.02); rowCells += Utils.format(bodyCell,[value,city.military.getUnits.getUnit(value)>0?Utils.FormatNumToStr(city.military.getUnits.getUnit(value)):'',builds[value]!=undefined?Utils.FormatNumToStr(builds[value],true):'','']); }); } body += Utils.format(bodyRow,[city.getId,rowCells,city._name,divbarracks,divshipyard,Utils.FormatNumToStr(cost,false,2),Utils.format(LD.transporting_units,a),Utils.format(LD.transporting_fleets,a),spyopacity]); }); return body; } function getFooter() { var footerCells = ''; var expense = Utils.FormatNumToStr(database.getGlobalData.finance.armyCost+database.getGlobalData.finance.fleetCost); for(var category in Constant.unitOrder) { $.each(Constant.unitOrder[category],function(index,value) { footerCells += Utils.format(footerCell,[value]); }); } return Utils.format(footerRow,[footerCells,expense]); } function getImage(unitID) { return (Constant.UnitData[unitID].type == 'fleet') ? 'skin/characters/fleet/60x60/'+unitID+'_faceright.png' : 'skin/characters/military/x60_y60/y60_'+unitID+'_faceright.png'; } }, getBuildingTable: function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var city = database.getCityFromId(ikariam.CurrentCityId); // || ikariam.getBranchOffice.getBuildingFromName(Constant.Buildings.TRADING_POST) var table = '{0}{1}
    '; var headerCell = ' '; var headerRow = '{0}
    {2}'; var buildingCell = ''; var buildingRow = ' 

    {1}'; var counts = database.getBuildingCounts; var buildingOrder = (database.settings.alternativeBuildingList.value ? Constant.altBuildingOrder : database.settings.compressedBuildingList.value ? Constant.compBuildingOrder : Constant.buildingOrder); return Utils.format(table,[getHead(),getBody()]); function getHead() { var headerCells = ''; var colgroup = ''; for(var category in buildingOrder) { var cols = ''; $.each(buildingOrder[category], function(index, value) { if(value == 'colonyBuilding') { if(!database.settings.compressedBuildingList.value || !counts[value]) { return true; } cols += ''; headerCells += Utils.format(headerCell, [LD.palace + '/' + LD.palaceColony, Constant.BuildingData[Constant.Buildings.PALACE].icon, counts[value], "?view=buildingDetail&helpId=1&buildingId=" + Constant.BuildingData.palace.buildingId]); } else if(value == 'productionBuilding') { if(!database.settings.compressedBuildingList.value || !counts[value]) { return true; } cols += ''; headerCells += Utils.format(headerCell,[LD.stonemason+'/'+LD.winegrower+'/'+LD.alchemist+'/'+LD.glassblowing, 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABoAAAAUCAMAAACknt2MAAABelBMVEUAAADp49mgkICxmnzVuIxMcwtciQ90pSC/tKR7aFWOfGmIdmPKr4lomxChyk/YxKjTyrzl2slrVkKBblu5ooXp0a3NwrOqm4uNeWRTMzMnGRZFQBvb0sS0p5j18OiTgW3cvpSeXF07JSSJUlLFeHY2NhZzrRKZh3XmyJwPCgl7jzSHyBXlx53EuateSje0amp0YE2Fc2FzSEeFqzfoyJftylO7l1312oXv0GzWyqzN0MH15b311WO3iy2jchyLXiuZrqtyt9uJx+bP2M789+/sz3nv2p7+5IOXZRWHVA/jxou7vquTyuS7x72MqKmEw+J/wOFdk6ylsaXsz6Xz1njKnzTBlkF6SAvhvE2TsraVzeiNyeZ8ttJ7v+EzXnXJ1M2tfiKts6S63ex2utyUw9hFhqV6ss2W0O7fvmDUrUJnnrOk0+tjq8602uzO6fbCyr7Eu6BqrM1tstS74fKbzeXS6/dvud7OrG1PlLeMwNfW7viu2e2i0ObK4OYudx14AAAAAXRSTlMAQObYZgAAAAFiS0dEAIgFHUgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAFfSURBVCgVBcFLTlNhGADQ8/29t/e/reVhChWkUDFRE0hM1IlxYiIzhy5EN+ASTNyBO3DoIpw7VBNAiga0QFKsPK7nBBARV4AiIq4ukUBWVd0bQI0OJJjPC3VcV0AVTdOGhKVot//0TEFR9pebWQ8J1d9qNjxZjhGKYV3XI7N7JLDfU+dh48HmekrKcjYab0m2Y7GeP9tb2ztCL5meT8J45UJre5KOrlZv/hr0TyeXk3p6sdBqfc96439p399GXdx2Pbxv47zTreeiGcxKAABF8aiA/tZjAZ5EfAYA0ALDFKsrB4Cn63sgwbOyVeYu4HnOL0BgJyJOFkR88jIiIiI+ouDVecfhMCIa5iLix1oEJDtnnShmZ2mcT8k5VXdzzpB20kn/8HJkcfVnw4c8V09znr5GSpsbX5qlruOvA7zZbbdXqvJWhfR799tgduzhnVY9z/vtnN9VdfvgLQAAAPgPmQZaHvndsJEAAAAASUVORK5CYII=',counts[value], "?view=buildingDetail&helpId=1&buildingId=21"]).replace('50px auto','38px 28px'); } else if(counts[value]) { cols += ''; headerCells += Utils.format(headerCell,[LD[value],Constant.BuildingData[value].icon,counts[value],"?view=buildingDetail&helpId=1&buildingId="+Constant.BuildingData[value].buildingId]); } }); if(cols!=='') { colgroup += ''+cols+''; } } return colgroup+Utils.format(headerRow,[LD.towns,LD.actionP,headerCells,LD.government+': '+LD[database.getGlobalData.getGovernmentType]]); } function getBody() { var body = ''; $.each(database.cities, function(cityId,city) { var rowCells = ''; for(var category in buildingOrder) { $.each(buildingOrder[category], function(index, value) { if((value == 'productionBuilding' || value == 'colonyBuilding' ) && !database.settings.compressedBuildingList.value) return false; var i = 0; while(i < counts[value]) { var cssClass = ''; if(value == 'colonyBuilding') { cssClass = city.isCapital ? Constant.Buildings.PALACE : Constant.Buildings.GOVERNORS_RESIDENCE; } else if(value == 'productionBuilding') { switch(city.getTradeGoodID) { case 1: cssClass = Constant.Buildings.WINERY; break; case 2: cssClass = Constant.Buildings.STONEMASON; break; case 3: cssClass = Constant.Buildings.GLASSBLOWER; break; case 4: cssClass = Constant.Buildings.ALCHEMISTS_TOWER; break; } } else { cssClass = value; } cssClass += +i; rowCells += Utils.format(buildingCell, [cssClass]); i++; } }); } var a = [LD[city.isCapital?'capital':'colony'],city._name]; body += Utils.format(buildingRow,[city.getId,rowCells,Utils.format(LD.transporting_fleets,a),Utils.format(LD.transporting,a)]); }); return body; } }, AddCityCSS: function() { if(!(/.*view=city.*/.test(window.document.location))) if(!this.cssResLoaded()) Utils.addStyleSheet('@import "https://' + ikariam.Host() + '/skin/compiled-' + ikariam.Nationality() + '-city.css";'); }, AddIslandCSS: function() { if(!(/.*view=island.*/.test(window.document.location))) if(!this.cssResLoaded()) Utils.addStyleSheet('@import "https://' + ikariam.Host() + '/skin/compiled-' + ikariam.Nationality() + '-island.css";'); }, updateCityArmyCell: function(cityId,type,$node) { var $row; var celllevel = !$node; try { if(celllevel) { $row = this.getArmyRow(cityId); $node = Utils.getClone($row); } var city = database.getCityFromId(cityId); var data1 = city.military.getUnits.getUnit(type) || 0; var data2 = city.military.getIncomingTotals[type] || 0; var data3 = city.military.getTrainingTotals[type] || 0; var cells = $node.find('td.' + type); cells.get(0).textContent = Utils.FormatNumToStr(data1,false) || ''; cells = cells.eq(1).children('span'); cells.get(0).textContent = Utils.FormatNumToStr(data2,true) || ''; cells.get(1).textContent = Utils.FormatNumToStr(data3,true) || ''; delete this.cityRows.army[cityId]; if (celllevel) { Utils.setClone($row, $node); this.setArmyTotals(undefined, type); } } catch(e) { empire.error('updateCityArmyCell', e); } finally { } }, updateCityArmyRow: function(cityId,$node) { var $row; var rowLevel = !$node; if(rowLevel) { $row = this.getArmyRow(cityId); $node = Utils.getClone($row); } for(var armyId in Constant.UnitData) { this.updateCityArmyCell(cityId, armyId, $node); } if(rowLevel) { Utils.setClone($row, $node); this.setArmyTotals(); delete this.cityRows.army[cityId]; } }, updateCitiesArmyData:function() { var $node = $('#ArmyTab').find('table.army'); var $clone = Utils.getClone($node); for (var cityId in database.cities) { empire.time(this.updateCityArmyRow.bind(this, cityId, $clone.find('#army_' + cityId)), 'updateArmyRow'); } this.setArmyTotals($clone); Utils.setClone($node, $clone); this.cityRows.army = {}; }, updateChangesForCityMilitary: function(cityId, changes) { if (changes && changes.length < 5) { $.each(changes, function(index, unit) { this.updateCityArmyCell(cityId,unit); }.bind(render)); this.setArmyTotals(); } else { this.updateCityArmyRow(cityId); } }, updateGlobalData: function(changes) { this.setAllResourceData(); return true; }, updateMovementsForCity: function(changedCityIds) { if(changedCityIds.length) $.each(changedCityIds, function(index, id) { var city = database.getCityFromId(id); if(city) { this.setMovementDataForCity(city); } }.bind(render)); }, updateResourcesForCity: function(cityId, changes) { var city = database.getCityFromId(cityId); if(city) { events.scheduleAction(this.updateResourceCounters.bind(render,true)); } }, updateCityDataForCity: function(cityId, changes) { var city = database.getCityFromId(cityId); if(city) { var research = 0, population = 0, finance = 0; for(var key in changes) { switch(key) { case 'research': research += changes[key]; break; case 'priests': if(Constant.Government.THEOCRACY === database.getGovernmentType) { population += changes[key]; finance += changes[key]; } break; case 'culturalGoods': research += changes[key]; population += changes[key]; break; case 'citizens': case 'population': population += changes[key]; finance += changes[key]; break; case 'name': this.setCityName(city); break; case 'islandId': break; case 'coordinates': break; case 'finance': finance += changes[key]; } } if(!!population) { this.setPopulationData(city); } if(!!research) { this.setResearchData(city); } if(!!finance) { this.setFinanceData(city); } } }, setArmyTotals: function($node, unitId) { var data = database.getArmyTotals; if(!$node) { $node = $('#ArmyTab'); } if(unitId) { $node.find('td.total.' + unitId).eq(0).text(Utils.FormatNumToStr(data[unitId].total,false) ||'' ).next().children('span').eq(0).text(Utils.FormatNumToStr(data[unitId].incoming,true) ||'' ).next().text(Utils.FormatNumToStr(data[unitId].training,true) || '' ); if(data[unitId].training || data[unitId].incoming || data[unitId].total || database.settings.fullArmyTable.value) { $node.find('td.' + unitId+' ,th.' + unitId).show(); } else { $node.find('td.' + unitId+' ,th.' + unitId).hide(); } } else { $.each(Constant.UnitData, function(unit, info) { $node.find('td.total.' + unit).eq(0).text(Utils.FormatNumToStr(data[unit].total,false) ||'' ).next().children('span').eq(0).text(Utils.FormatNumToStr(data[unit].incoming,true) ||'' ).next().text(Utils.FormatNumToStr(data[unit].training,true) || '' ); if(data[unit].training || data[unit].incoming || data[unit].total || database.settings.fullArmyTable.value) { $node.find('td.' + unit+' ,th.' + unit).show(); } else { $node.find('td.' + unit+' ,th.' + unit).hide(); } }); } }, updateChangesForCityBuilding: function(cityID, changes) { try { var city = database.getCityFromId(cityID); if(city) { if(changes.length) { $.each(changes, function(key, data) { var building = city.getBuildingFromPosition(data.position); if(building.getName === data.name) { this.updateCityBuildingPosition(city, data.position); } else { this.updateCityBuildingRow(city); return false; } }.bind(render)); } } } catch(e) { empire.error('updateChangesForCityBuilding', e); } finally { } }, updateCityBuildingPosition: function(city, position, $node) { var LD = Constant.LanguageData[database.settings.languageChange.value]; var building = city.getBuildingFromPosition(position); var idx = 0; var cellOnly = ($node === undefined); $.each(city.getBuildingsFromName(building.getName), function (index, b) { if (b.getPosition == building.getPosition) { idx = index; return false; } }); var cell; if (cellOnly) { $node = render.getBuildingsRow(city); cell = $node.find('td.building.' + building.getName + idx); } else { cell = $node.find('td.building.' + building.getName + idx); } if(!building.isEmpty) { if(cell.length) { cell.html(''+building.getLevel+'
    ').find('span').removeClass('upgrading upgradable upgradable maxLevel').addClass('clickable').addClass((building.isUpgrading ? ' upgrading' : (building.isMaxLevel ? 'maxLevel' : '')) + (building.isUpgradable ? (city.isUpgrading ? (building.getLevel(dur/2)?'fast_fordward':'fertigstellen')+'_14_'+(building.getCompletionTime-moment()>300000?'normal':'blue_orange')+'.png) no-repeat center top','display':building.getCompletionTime>moment()?'inline-block':'none'}); return x; },1000); if($('#buildingSpeedup').length==1 && $('#buildingSpeedup').css('top')!='20px') { $('#buildingSpeedup').css('top','20px'); } cell.find('div.speedup').css({'background':'url(skin/buttons/'+(building.getCompletionTime-moment()>(dur/2)?'fast_fordward':'fertigstellen')+'_14_'+(building.getCompletionTime-moment()>300000?'normal':'blue_orange')+'.png) no-repeat center top','display':building.getCompletionTime>moment()?'inline-block':'none'}); } } else { return false; } } return true; }, updateCityBuildingRow: function(city, $node) { try { var $row; var cellLevel = !$node; if(cellLevel) { $row = this.getBuildingsRow(city); $node = Utils.getClone($row); } var success = true; $.each(city.getBuildings, function(position, building) { success = this.updateCityBuildingPosition(city, position, $node); return success; }.bind(render)); if (cellLevel) { render.cityRows.building[city.getId] = undefined; $node.find('table.buildings').html(render.getBuildingTable); if (!success) { render.updateCitiesBuildingData(); $.each(database.cities, function (cityId, city) { render.setCityName(city); render.setActionPoints(city); render.setSpies(city); }); return success; } Utils.setClone($row, $node); } return success; } catch(e) { empire.error('updateCityBuildingRow', e); } finally { } }, updateCitiesBuildingData: function($redraw) { try { var success = true; var i = 0; var $node = $('#BuildTab').find('table.buildings'); var $clone = $redraw || Utils.getClone($node); $.each(database.cities, function(cityId, city) { success = empire.time(this.updateCityBuildingRow.bind(this, city, $clone.find('#building_' + city.getId)), 'updateBuildingRow'); return success; }.bind(render)); if (!success) { $clone.html(render.getBuildingTable); if (!$redraw) { render.updateCitiesBuildingData($clone); } } if (!$redraw) { this.cityRows.building = {}; Utils.setClone($node, $clone); } else { $.each(database.cities, function (cityId, city) { render.setCityName(city); render.setActionPoints(city); render.setSpies(city); }); } } catch(e) { empire.error('updateCitiesBuildingData', e); } finally { } }, redrawSettings:function () { $('#SettingsTab').html(render.getSettingsTable()); $("#empire_Reset_Button").button({icons: {primary: "ui-icon-alert"}, text: true}); $("#empire_Website_Button").button({icons: {primary: "ui-icon-home"}, text: true}); $("#empire_Update_Button").button({icons: {primary: "ui-icon-info"}, text: true}); $("#empire_Bug_Button").button({icons: {primary: "ui-icon-notice"}, text: true}); $("#empire_Save_Button").button({icons: {primary: "ui-icon-check"}, text: true}); }, DrawContentBox: function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var city = database.getCityFromId(ikariam.CurrentCityId); if(!this.mainContentBox) { //
  • Worldmap
  • var inAlliance = unsafeWindow.hasAlly; var Allyicons = '
    '; var Icons = ['mayor_premium','mayor','general_premium','diplomat_premium']; for(var r=0;r<4;r++) { var s; switch(database.getGlobalData.getEmbassyData.ranks[r].status) { case 'online': s = 25; break; case 'offline': s = 75; break; } var tip = LD.allyranks[r]+' '+LD.leftquot+database.getGlobalData.getEmbassyData.ranks[r].name+LD.rightquot; var msg = "ajaxHandlerCall('?view=sendIKMessage&receiverId="+database.getGlobalData.getEmbassyData.ranks[r].id+"')"; Allyicons += Utils.format('
    ',[Icons[r],tip,msg,s]); } Allyicons += '
    '; Allyicons = inAlliance ? Allyicons : ''; var pir = 0, capital = 0; $.each(database.cities,function(k,c){pir+=c.isPirateFortress?1:0;capital+=c.getBuildingFromName(Constant.Buildings.PALACE)!==null?1:0;}); // console.log($('#cityCinema').attr('class')); $("#container").after(''); setInterval(function() { database._globalData._theater.status = $('#cityCinema').attr('class')!==undefined ? $('#cityCinema').attr('class') : database._globalData._theater.status; $("#cinelink").removeClass(function(k,c){ return c.match(/\w*cineIcon$/)[0]; }).addClass(database.getGlobalData.getTheaterData.status+'cineIcon'); },1000); this.mainContentBox = $("#empireBoard"); this.$tabs = $("#empire_Tabs").tabs({collapsible: true, show: null, selected: -1 }); this.mainContentBox.draggable({handle:'#empire_Tabs > ul',cancel:'div.ui-tabs-panel',stop: function() {render.SaveDisplayOptions();}}); this.$tabs.find('ul li a').on('click', function() { events(Constant.Events.TAB_CHANGED).pub(render.$tabs.tabs('option', 'active')); render.SaveDisplayOptions(); }); render.mainContentBox .on('mouseenter',function() { if(database.settings.windowTennis.value) { render.mainContentBox.css('z-index', "65112"); }}) .on('mouseleave', function() { if(database.settings.windowTennis.value) { render.mainContentBox.css('z-index', "2");}}); } if(database.settings.ctfinder.value) { $('#js_viewFriends > ul > li').each(function() { if($(this).find('div.name').length) { $(this).find('div.name > span.CTicon').remove(); $(this).find('div.name').css('width','105px').find('a').after(''); var fid = $(this).find('div.name > a').attr('href').split('=')[2]; if(Object.keys(database.getGlobalData.getMuseumTreaties).indexOf(fid)!=-1) { $(this).find('div.name > span.CTicon').html(''); } else if(Object.keys(database.getGlobalData.getPotMuseumTreaties).indexOf(fid)!=-1) { $(this).find('div.name > span.CTicon').html(''); } } }); $('#js_viewFriends').find('a.pageup, a.pagedown').on('click',function() { $('#js_viewFriends > ul > li').each(function() { if($(this).find('div.name').length) { $(this).find('div.name > span.CTicon').remove(); $(this).find('div.name').css('width','105px').find('a').after(''); var fid = $(this).find('div.name > a').attr('href').split('=')[2]; if(Object.keys(database.getGlobalData.getMuseumTreaties).indexOf(fid)!=-1) { $(this).find('div.name > span.CTicon').html(''); } else if(Object.keys(database.getGlobalData.getPotMuseumTreaties).indexOf(fid)!=-1) { $(this).find('div.name > span.CTicon').html(''); } } }); }); } else { $('li[id^="js_friendlistSlot"] > div.name > a').next('span').remove(); } }, AttachClickHandlers:function() { $('body').on('click','#js_buildingUpgradeButton',function(e) { var upgradeSuccessCheck; var href = this.getAttribute('href'); if(href !== '#') { var params = $.decodeUrlParam(href); if(params['function'] === "upgradeBuilding") { upgradeSuccessCheck = (function upgradeSuccess() { var p = params; return function(response) { var len = response.length; var feedback = 0; while(len--) { if(response[len][0] == 'provideFeedback') { feedback = response[len][1][0].type; break; 1 } } if(feedback == 10) { //success render.updateChangesForCityBuilding(p.cityId || ikariam.getCurrentCity, []); } events('ajaxResponse').unsub(upgradeSuccessCheck); }; })(); } events('ajaxResponse').sub(upgradeSuccessCheck); } }); render.mainContentBox.on('click','td.city_name span.clickable',function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var classes = target.parents('td').attr('class'); var params = {cityId: city.getId}; if(!city.isCurrentCity) { $("#js_cityIdOnChange").val(city.getId); if(unsafeWindow.ikariam.templateView) { if(unsafeWindow.ikariam.templateView.id === 'tradegood' || unsafeWindow.ikariam.templateView.id === 'resource') { params.templateView = unsafeWindow.ikariam.templateView.id; if(ikariam.viewIsCity) { params.islandId = city.getIslandID; params.view = unsafeWindow.ikariam.templateView.id; params.type = unsafeWindow.ikariam.templateView.id=='resource'?'resource':city.getTradeGoodID; } else { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } } } ikariam.loadUrl(true, ikariam.mainView, params); } return false; }) .on('click','td.empireactions div.spypointImage',function(event) { var target = $(event.target); var className = target.parents('td').attr('class').split('_').pop(); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); if(city.isSafehouse) { var building = city.getBuildingFromName(Constant.Buildings.SAFEHOUSE); var params = building.getUrlParams; params.activeTab = 'tabSafehouse'; if(building) { ikariam.loadUrl(true,'city',params); } else if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true,ikariam.mainView, params); render.AddCityCSS(); } return false; }) .on('click', 'td.empireactions div.transport',function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('td').parents('tr').attr('id').split('_').pop()); if(!city.isCurrentCity && ikariam.getCurrentCity) { ikariam.loadUrl(true, ikariam.mainView, {view: 'transport', destinationCityId: city.getId, templateView: Constant.Buildings.TRADING_PORT}); } return false; }) .on('click', 'td.empireactions div[class*=deployment]', function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var type = target.attr('class').split(' ').pop().split('deployment').pop(); if(ikariam.currentCityId === city.getId) { return false; } var params = { cityId: ikariam.CurrentCityId, view: 'deployment', deploymentType: type, destinationCityId: city.getId }; ikariam.loadUrl(true, null, params); }); $('#empire_Tabs') .on('click', 'td.empireactions div.worldmap', function(event) { var target = $(event.target); var className = target.parents('td').attr('class').split(' ').pop(); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var params = { cityId: city.getId, view: 'worldmap_iso' }; ikariam.loadUrl(true, 'city', params); return false; }) .on('click', 'td.empireactions div.island', function(event) { var target = $(event.target); var className = target.parents('td').attr('class').split(' ').pop(); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var params = { cityId: city.getId, view: 'island' }; ikariam.loadUrl(true, null, params); return false; }) .on('click', 'td.empireactions div.eroute', function(event) { var target = $(event.target); var className = target.parents('td').attr('class').split(' ').pop(); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var params = { cityId: city.getId, view:'tradeRoutes', newTradeRoute:'1', activeTab:'tradeRoutes', page:'0', }; ikariam.loadUrl(true, null, params); return false; }) .on('click','td.empireactions div.garrisonEdita',function(event) { var target = $(event.target); var className = target.parents('td').attr('class').split(' ').pop(); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var params = { cityId: city.getId, view: 'garrisonEdit', activeTab:'unit' }; ikariam.loadUrl(true, "city", params); if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true, ikariam.mainView, params); render.AddCityCSS(); return false; }) .on('click', 'td.empireactions div.garrisonEditb',function(event) { var target = $(event.target); var className = target.parents('td').attr('class').split(' ').pop(); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var params = { cityId: city.getId, view: 'garrisonEdit', activeTab:'fleet' }; ikariam.loadUrl(true, "city", params); if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true, ikariam.mainView, params); render.AddCityCSS(); return false; }) .on('click', 'td.action_points span.garrisonlimit',function(event) { var target = $(event.target); var className = target.parents('td').attr('class').split(' ').pop(); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var params = { cityId: city.getId, view: 'cityMilitary', activeTab:'tabUnits' }; ikariam.loadUrl(true, "city", params); if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true, ikariam.mainView, params); render.AddCityCSS(); return false; }).on('click', 'td.empireactions div.city',function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var building = city.getBuildingFromName(Constant.Buildings.TOWN_HALL); var params = building.getUrlParams; if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; ikariam.loadUrl(true, 'city', params); return false; }) .on('click', 'td.population_happiness span.growth', function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var className = target.parents('td').attr('class').split(' ').pop(); var building = city.getBuildingFromName(Constant.Buildings.TAVERN); if(building!=null) { var params = building.getUrlParams; if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; ikariam.loadUrl(true,'city',params); } return false; }) .on('click', 'td.population_happiness span.happy', function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var className = target.parents('td').attr('class').split(' ').pop(); var building = city.getBuildingFromName(Constant.Buildings.MUSEUM); if(building!=null) { var params = building.getUrlParams; if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; ikariam.loadUrl(true,'city',params); } return false; }) .on('click', 'td.research span',function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var className = target.parents('td').attr('class').split(' ').pop(); var building = city.getBuildingFromName(Constant.Buildings.ACADEMY); if(building!=null) { var params = building.getUrlParams; if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; ikariam.loadUrl(true, 'city', params); } return false; }) .on('click', 'td.empireactions div.barracks',function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var className = target.parents('td').attr('class').split(' ').pop(); var building = city.getBuildingFromName(Constant.Buildings.BARRACKS); var params = building.getUrlParams; ikariam.loadUrl(true, 'city', params); if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; if(building) { ikariam.loadUrl(true,'city',params); } else if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true, ikariam.mainView, params); render.AddCityCSS(); return false; }) .on('click', 'td.empireactions div.shipyard',function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var className = target.parents('td').attr('class').split(' ').pop(); var building = city.getBuildingFromName(Constant.Buildings.SHIPYARD); var params = building.getUrlParams; ikariam.loadUrl(true, 'city', params); if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; if(building) { ikariam.loadUrl(true,'city',params); } else if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true, ikariam.mainView, params); render.AddCityCSS(); return false; }) .on('click', 'td.empireactions div.temple',function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var className = target.parents('td').attr('class').split(' ').pop(); var building = city.getBuildingFromName(Constant.Buildings.TEMPLE) || false; var params = building.getUrlParams; if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; if(building) { ikariam.loadUrl(true,'city',params); } else if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true, ikariam.mainView, params); render.AddCityCSS(); return false; }) .on('click', 'td.empireactions div.wonder',function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var className = target.parents('td').attr('class').split(' ').pop(); var building = city.getBuildingFromName(Constant.Buildings.WONDER) || false; var params = building.getUrlParams; if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; if(building) { ikariam.loadUrl(true,'city',params); } else { ikariam.loadUrl(true,null,{view:'island',cityId:city.getId,dialog:'wonder',islandId:city.getIslandID}); } return false; }) .on('click','th.empireactions div.spio',function() { var city = database.getCityFromId(ikariam.CurrentCityId); var params = {cityId:city.getId,activeTab:'tabReports'}; if(ikariam.CurrentCityId==city.getId || !ikariam.viewIsIsland) { params.view = 'safehouse'; params.islandId = city.getIslandID; } else if(ikariam.viewIsIsland) { params.templateView = 'safehouse'; if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; } if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true,ikariam.mainView,params); render.AddCityCSS(); return false; }) .on('click', 'th.empireactions div.combat',function() { var city = database.getCityFromId(ikariam.CurrentCityId); var params = {cityId:city.getId}; if(ikariam.CurrentCityId == city.getId || !ikariam.viewIsIsland) { params.view = 'militaryAdvisorCombatList'; params.visit = 1; params.islandId = city.getIslandID; } else if(ikariam.viewIsIsland) { params.templateView = 'militaryAdvisorCombatList'; if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; } if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true, ikariam.mainView, params); render.AddCityCSS(); return false; }) .on('click','th.empireactions div.trapart',function() { var branchOffice = ikariam.getBranchOffice; if(branchOffice) { ikariam.loadUrl(ikariam.viewIsCity,'city',$.extend(branchOffice.getBuildingFromName(Constant.Buildings.TRADING_POST).getUrlParams,{view:'branchOfficeTradePartners',activeTab:'tabBranchOfficeTradePartners'})); }; }) .on('click','th.expenses_header',function() { var branchOffice = ikariam.getBranchOffice; if(branchOffice) { ikariam.loadUrl(ikariam.viewIsCity,'city',$.extend(branchOffice.getBuildingFromName(Constant.Buildings.TRADING_POST).getUrlParams,{view:'branchOfficeSoldier',activeTab:'tabBranchOfficeSoldier'})); }; }) .on('click','th.action_points3',function() { var embassy = ikariam.getEmbassy; if(embassy) { ikariam.loadUrl(ikariam.viewIsCity,'city',$.extend(embassy.getBuildingFromName(Constant.Buildings.EMBASSY).getUrlParams,{view:'embassyGeneralAttacksToAlly&'})); }; }) .on('click', 'th.empireactions div.generalEdit',function() { var embassy = ikariam.getEmbassy; if(embassy && database.getGlobalData.getEmbassyData.ranks[2].id==unsafeWindow.dataSetForView.avatarId) { ikariam.loadUrl(ikariam.viewIsCity, "city", $.extend(embassy.getBuildingFromName(Constant.Buildings.EMBASSY).getUrlParams,{view:'embassyGeneralAttacksFromAlly&'})); }; }) .on('click', 'th.empireactions div.generalee',function() { var embassy = ikariam.getEmbassy; var inAlliance = unsafeWindow.hasAlly; if(embassy && inAlliance) { ikariam.loadUrl(ikariam.viewIsCity, "city", $.extend(embassy.getBuildingFromName(Constant.Buildings.EMBASSY).getUrlParams,{view:'embassyTreaties&'})); }; }) .on('click', 'span.production.clickable',function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var resource = target.parents('td').attr('class').split(' ').pop(); var params = { cityId: city.getId }; if(ikariam.CurrentCityId == city.getId || !ikariam.viewIsIsland) { params.type = resource == Constant.Resources.WOOD ? 'resource' : city.getTradeGoodID; params.view = resource == Constant.Resources.WOOD ? 'resource' : 'tradegood'; params.islandId = city.getIslandID; } else if(ikariam.viewIsIsland) { params.templateView = resource == Constant.Resources.WOOD ? 'resource' : 'tradegood'; if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; } if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true, ikariam.mainView, params); render.AddIslandCSS(); return false; }) .on('click', 'td.empireactions div.islandgood', function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var resource = target.parents('td').attr('class').split(' ').pop(); var params = { cityId: city.getId }; if(ikariam.CurrentCityId == city.getId || !ikariam.viewIsIsland) { params.type = resource == Constant.Resources.WOOD ? 'resource' : city.getTradeGoodID; params.view = resource == Constant.Resources.WOOD ? 'resource' : 'tradegood'; params.islandId = city.getIslandID; } else if(ikariam.viewIsIsland) { params.templateView = resource == Constant.Resources.WOOD ? 'resource' : 'tradegood'; if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; } if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true, ikariam.mainView, params); render.AddIslandCSS(); return false; }) .on('click', 'td.empireactions div.islandwood', function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var resource = target.parents('td').attr('class').split(' ').pop(); var params = { cityId: city.getId }; if(ikariam.CurrentCityId == city.getId || !ikariam.viewIsIsland) { params.type = resource == Constant.Resources.WOOD ? city.getTradeGoodID : 'resource'; params.view = resource == Constant.Resources.WOOD ? 'tradegood' : 'resource'; params.islandId = city.getIslandID; } else if(ikariam.viewIsIsland) { params.templateView = resource == Constant.Resources.WOOD ? 'resource' : 'tradegood'; if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; } if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true, ikariam.mainView, params); render.AddIslandCSS(); return false; }); $('#empire_Tabs') .on('click', 'td.building span.clickable', function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var className = target.parents('td').attr('class').split(' ').pop(); var building = city.getBuildingsFromName(className.slice(0, -1))[className.charAt(className.length - 1)]; var params = building.getUrlParams; if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; ikariam.loadUrl(true, 'city', params); return false; }) .on('click','td.building div',function(event) { var target = $(event.target); var city = database.getCityFromId(target.parents('tr').attr('id').split('_').pop()); var className = target.parents('td').attr('class').split(' ').pop(); var building = city.getBuildingsFromName(className.slice(0, -1))[className.charAt(className.length - 1)]; var params = {cityId: city.getId}; ikariam.closePopup(); if(!city.isCurrentCity) { $("#js_cityIdOnChange").val(city.getId); if(unsafeWindow.ikariam.templateView) { if(unsafeWindow.ikariam.templateView.id === 'tradegood' || unsafeWindow.ikariam.templateView.id === 'resource') { params.templateView = unsafeWindow.ikariam.templateView.id; if(ikariam.viewIsCity) { params.islandId = city.getIslandID; params.view = unsafeWindow.ikariam.templateView.id; params.type = unsafeWindow.ikariam.templateView.id=='resource'?'resource':city.getTradeGoodID; } else { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } } } ikariam.loadUrl(true,ikariam.mainView, params); } else { ikariam.loadUrl(true, ikariam.mainView, {view:'buildingSpeedup',cityId:city.getId,position:parseInt(building.getUrlParams.position)}); } return false; }) .on('click', 'div#cinelink', function(event) { var target = $(event.target); var city = database.getCityFromId(ikariam.CurrentCityId); var params = { cityId: city.getId }; if(ikariam.CurrentCityId == city.getId || !ikariam.viewIsIsland) { params.view = 'cinema'; params.visit = 1; params.islandId = city.getIslandID; } else if(ikariam.viewIsIsland) { params.templateView = 'cinema'; if(unsafeWindow.ikariam.templateView)unsafeWindow.ikariam.templateView.id = null; } if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true, ikariam.mainView, params); render.AddCityCSS(); return false; }) .on('click', 'div.dailytasks', function(event) { var city = database.getCityFromId(ikariam.CurrentCityId); var params = {}; params.view = 'dailyTasks'; ikariam.loadUrl(true,ikariam.mainView,params); render.AddCityCSS(); return false; }) .on('click', 'div.pirates', function(event) { var cid = 0; for(var c in database.settings.cityOrder.value) { if(database.getCityFromId(database.settings.cityOrder.value[c]).isPirateFortress) { cid = database.settings.cityOrder.value[c]; break; } } cid = database.getCityFromId(ikariam.CurrentCityId).isPirateFortress ? ikariam.CurrentCityId : cid; var city = database.getCityFromId(cid); var building = city.getBuildingFromName(Constant.Buildings.PIRATE_FORTRESS); if(building!=null) { var params = building.getUrlParams; params.activeTab = 'tabBootyQuest'; params.cityId = city.getId; params.position = 17; if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true,ikariam.mainView,params); render.AddCityCSS(); } return false; }); }, startResourceCounters: function() { this.stopResourceCounters(); this.resUpd = events.scheduleActionAtInterval(render.updateResourceCounters.bind(render),5000); this.updateResourceCounters(true); }, stopResourceCounters: function() { if(this.resUpd) { this.resUpd(); this.resUpd = null; } }, getResourceRow: function(city) { return this._getRow(city, "resource"); }, getBuildingsRow: function(city) { return this._getRow(city, "building"); }, getArmyRow: function(city) { return this._getRow(city, "army"); }, _getRow:function(city, type) { city = typeof city == 'object'? city : database.getCityFromId(city); if(!this.cityRows[type][city.getId]) this.cityRows[type][city.getId] = $("#" + type + "_" + city.getId); return this.cityRows[type][city.getId]; }, getAllRowsForCity: function(city) { return this.getResourceRow(city).add(this.getBuildingsRow(city)).add(this.getArmyRow(city)); }, setCityName: function(city, rows) { if(!rows) { rows = this.getAllRowsForCity(city); } var LD = Constant.LanguageData[database.settings.languageChange.value]; var order = database.settings.cityOrder.value.indexOf(city.getId); rows.find('td.city_name').each(function(index, elem) { elem.children[0].outerHTML = ''; elem.children[1].textContent = (order+1)+' '+city.getName; elem.children[2].textContent = ' ' + (city.getAvailableBuildings || '') + ' '; elem.children[2].setAttribute('data-tooltip', LD.free_ground); }); }, setActionPoints: function(city, rows) { if(!rows) { rows = this.getAllRowsForCity(city); } rows.find('span.ap').text(city.getAvailableActions + '/' + city.maxAP); rows.find('span.garrisonlimit img').attr('src', 'skin/advisors/military/bang_soldier.png'); }, setFinanceData: function(city, row) { if(!row) { row = this.getResourceRow(city); } }, setPopulationData: function(city, row) { if(!row) { row = this.getResourceRow(city); } var LD = Constant.LanguageData[database.settings.languageChange.value]; var populationData = city.populationData; var popSpace = Math.floor(populationData.currentPop-populationData.maxPop); var popDiff = populationData.maxPop-populationData.currentPop; row.find('td.population span').get(0).textContent = Utils.FormatNumToStr(populationData.currentPop, false, 0) + '/' + Utils.FormatNumToStr(populationData.maxPop, false, 0); row.find('td.population span').get(1).textContent = (popSpace!== 0 ? Utils.FormatNumToStr(popSpace, true, 0):''); var fillperc = 100 / populationData.maxPop * populationData.currentPop ; row.find('td.population div.progressbarPop').find('div.ui-progressbar-value').width(fillperc + "%").removeClass("normal, warning, full").addClass((populationData.currentPop / populationData.maxPop == 1) ? "full" : (city._citizens < 300) ? "warning" : "normal"); var img = ''; if(populationData.growth < -1) { img = 'outraged'; } else if(populationData.growth < 0) { img = 'sad'; } else if(populationData.growth < 1) { img = 'neutral'; } else if(populationData.growth < 6) { img = 'happy'; } else { img = 'ecstatic'; } row.find('td.population_happiness span img').attr('src','skin/smilies/'+img+'_x25.png'); row.find('span.growth').text(Utils.FormatNumToStr(popDiff==0?0:populationData.growth,popDiff==0?false:true,2)); row.find('span.growth').removeClass('Red Blue').addClass(populationData.happiness > 50 && popDiff === 0 ? 'Green' : populationData.happiness > 0 && populationData.happiness <= 50 && popDiff > -1 ? 'Blue' : 'Red'); }, setResearchData: function(city,row) { if(!row) { row = this.getResourceRow(city); } var researchData = researchData || city.research.researchData; var isAcademy = city.getBuildingFromName(Constant.Buildings.ACADEMY); row.find('td.research span').addClass(isAcademy?'clickbar':'').get(0).textContent = Utils.FormatNumToStr(Math.round(city.research.getResearch > 0 ? city.research.getResearch : city.iSci),true,0); var fillperc = (100 * researchData.scientists) / city.maxSci; row.find('td.research div.progressbarSci').find('div.ui-progressbar-value').width(fillperc + "%").removeClass('normal, full').addClass(researchData.scientists === 0 ? '' : city.maxSci - researchData.scientists > 0 ? 'normal' : 'full' ); }, setMovementDataForCity: function(city, row) { if(!row) { row = this.getResourceRow(city); } var totalIncoming = {wood: 0, wine: 0, marble: 0, glass: 0, sulfur: 0, gold: 0}; $.each(city.getIncomingResources, function(index, element) { for(var resourceName in Constant.Resources) { totalIncoming[Constant.Resources[resourceName]] += element.getResource(Constant.Resources[resourceName]); } }); row.find('td.resource.wood').find('span.incoming').get(0).textContent = Utils.FormatNumToStr(totalIncoming[Constant.Resources.WOOD]) || ''; row.find('td.resource.wine').find('span.incoming').get(0).textContent = Utils.FormatNumToStr(totalIncoming[Constant.Resources.WINE]) || ''; row.find('td.resource.marble').find('span.incoming').get(0).textContent = Utils.FormatNumToStr(totalIncoming[Constant.Resources.MARBLE]) || ''; row.find('td.resource.glass').find('span.incoming').get(0).textContent = Utils.FormatNumToStr(totalIncoming[Constant.Resources.GLASS]) || ''; row.find('td.resource.sulfur').find('span.incoming').get(0).textContent = Utils.FormatNumToStr(totalIncoming[Constant.Resources.SULFUR]) || ''; row.find('td.resource.gold').find('span.incoming').get(0).textContent = Utils.FormatNumToStr(totalIncoming[Constant.Resources.GOLD]) || ''; }, setAllResourceData: function() { this.startResourceCounters(); }, setCommonData: function() { $.each(database.cities, function(cityId, city) { this.setCityName(city); this.setActionPoints(city); }.bind(render)); }, updateResourceCounters: function(force) { // console.log(Utils.FormatFullTimeToDateString($.now())); var LD = Constant.LanguageData[database.settings.languageChange.value]; if((this.$tabs.tabs('option', 'active') === 0 ) || force) { var tot = {wood: 0, wine: 0, marble: 0, glass: 0, sulfur: 0}; var inc = {wood: 0, wine: 0, marble: 0, glass: 0, sulfur: 0}; var conWine = 0; var income = 0; var researchCost = 0; var researchTot = 0; var populationTot = 0; var populationMaxTot = 0; var growthTot = 0; var citygrowth = 0; var popDiffTot = 0; $.each(database.cities, function(cityId, city) { var $row = Utils.getClone(this.getResourceRow(city)); if(force) { this.setFinanceData(city,$row); this.setPopulationData(city,$row); this.setResearchData(city,$row); this.setActionPoints(city,$row); this.setMovementDataForCity(city,$row); } income += Math.floor(city.getIncome); researchTot += city.research.getResearch; researchCost += Math.floor(city.getExpenses); populationTot += city._population; populationMaxTot += city.populationData.maxPop; citygrowth = Math.floor(city.populationData.maxPop-city._population)>0 ? city.populationData.growth : 0; growthTot += citygrowth; popDiffTot = Math.floor(populationMaxTot-populationTot); var storage = city.maxResourceCapacities; var incB = {'WOOD':'FORESTER','WINE':'WINERY','MARBLE':'STONEMASON','GLASS':'GLASSBLOWER','SULFUR':'ALCHEMISTS_TOWER'}; $.each(Constant.Resources,function(key,resourceName) { var LD = Constant.LanguageData[database.settings.languageChange.value]; var currentResource = city.getResource(resourceName); var F = (city.getBuildingFromName(Constant.Buildings[incB[resourceName.toUpperCase()]])?city.getBuildingFromName(Constant.Buildings[incB[resourceName.toUpperCase()]]).getLevel:0)*0.02; var resName = resourceName!==Constant.Resources.GLASS ? resourceName : 'CRYSTAL'; var B = 0; if(resourceName == Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium.WOOD_BONUS[0]) && database.getGlobalData.hasPremiumFeature(Constant.Premium.WOOD_BONUS[1]) && database.getGlobalData.premium[Constant.Premium['WOOD_BONUS'][1]].cityid==0) { B += parseFloat(Constant.PremiumData[Constant.Premium['WOOD_BONUS'][0]].bonus); } else if(resourceName == Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium.WOOD_BONUS[1]) && city.getId==database.getGlobalData.premium[Constant.Premium['WOOD_BONUS'][1]].cityid) { B += parseFloat(Constant.PremiumData[Constant.Premium['WOOD_BONUS'][1]].bonus); } else if(resourceName != Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium.TRADEGOOD_BONUS) && city.getId==database.getGlobalData.premium[Constant.Premium.TRADEGOOD_BONUS].cityid && city.getTradeGood == resourceName) { B += parseFloat(Constant.PremiumData[Constant.Premium.TRADEGOOD_BONUS].bonus); } else if(resourceName != Constant.Resources.WOOD && database.getGlobalData.hasPremiumFeature(Constant.Premium[resName.toUpperCase()+'_BONUS']) && database.getGlobalData.premium[Constant.Premium[resName.toUpperCase()+'_BONUS']].cityid==0 && city.getTradeGood == resourceName) { B += parseFloat(Constant.PremiumData[Constant.Premium[resName.toUpperCase()+'_BONUS']].bonus); } var rwrk = Math.round(currentResource.getProduction*3600/(1+F+B)); //Math.round(currentResource.getProduction*3600/(1+F+B)); var production = Math.floor(rwrk*(1+F+B)); var current = currentResource.getCurrent; var consumption = resourceName == Constant.Resources.WINE ? currentResource.getConsumption : 0; inc[resourceName] += production; tot[resourceName] += current; conWine += consumption; var rescells = $row.find('td.resource.'+resourceName); rescells.find('span.current').addClass(resourceName == Constant.Resources.WOOD || city.getTradeGood == resourceName).get(0).textContent = Utils.FormatNumToStr(current?current:0,false,current?0:2); if(resourceName !== Constant.Resources.GOLD) { rescells.find('span.production').addClass(resourceName == Constant.Resources.WOOD || resourceName == city.getTradeGood ? 'clickable' : '').get(0).textContent = (resourceName == Constant.Resources.WOOD || city.getTradeGood == resourceName ? Utils.FormatNumToStr(production>0?production:0,production>0?true:false,production>0?0:2) : ''); } if(resourceName === Constant.Resources.WINE) { rescells.find('span.consumption').get(0).textContent = (consumption ? Utils.FormatNumToStr(0 - consumption, true, 0) : ''); var time = currentResource.getEmptyTime; time = time > 1? Math.floor(time) + (60 - new Date().getMinutes())/60 : 0; time *= 3600000; rescells.find('span.emptytime').removeClass('Red Green').addClass(time > database.settings.wineWarningTime.value * 3600000 ? 'Green' : 'Red').get(0).textContent = database.settings.wineWarningTime.value > 0 ? (Utils.FormatTimeLengthToStr(time, 2)) : ''; if (time < database.settings.wineWarningTime.value * 3600000 && database.settings.wineWarning.value != 1) render.toastAlert('!!! ' + LD.alert_wine + city._name +' !!!'); } if(resourceName === Constant.Resources.GOLD) { var bonus = (1+(database.getGlobalData.hasPremiumFeature(Constant.Premium.GOLD_BONUS)*Constant.PremiumData[Constant.Premium.GOLD_BONUS].bonus)); rescells.find('span.current').get(0).textContent = Utils.FormatNumToStr(city.getIncome*bonus+city.getExpenses,!(city.getIncome*bonus+city.getExpenses>=0),0); rescells.find('span.production').get(0).textContent = Utils.FormatNumToStr(city.getIncome*bonus,true,0); rescells.find('span.consumption').get(0).textContent = city.getExpenses !== 0 ? Utils.FormatNumToStr(city.getExpenses,true,0) : ''; } var fillperc = (current / storage.capacity) * 100; rescells.find('div.progressbar').find('div.ui-progressbar-value').width(fillperc + "%").removeClass("normal warning almostfull full").addClass(fillperc > 90 ? fillperc > 96 ? "full" : "almostfull" : fillperc > 70 ? "warning" : "normal"); var diffGold = Math.floor(city.getIncome+bonus+city.getExpenses); var fillpercG = 100 / (city.populationData.maxPop * 3) * diffGold; if(resourceName === Constant.Resources.GOLD) { rescells.find('div.progressbar').find('div.ui-progressbar-value').width(fillpercG + "%").removeClass("normal almostfull full fullGold").addClass(fillpercG > 50 ? fillpercG == 100 ? "fullGold" : "normal" : fillpercG > 25 ? "almostfull" : "full"); } if(storage.safe > current) { rescells.find('span.safeImage').show(); } else { rescells.find('span.safeImage').hide(); } if(resourceName === Constant.Resources.GOLD) { rescells.find('span.safeImage').hide(); } }.bind(render)); // console.log(income); Utils.setClone(this.getResourceRow(city),$row); this.cityRows.resource[city.getId] = null; }.bind(render)); var LD = Constant.LanguageData[database.settings.languageChange.value]; var bonus = (1+(database.getGlobalData.hasPremiumFeature(Constant.Premium.GOLD_BONUS)*Constant.PremiumData[Constant.Premium.GOLD_BONUS].bonus)); var expense = database.getGlobalData.finance.armyCost + database.getGlobalData.finance.armySupply + database.getGlobalData.finance.fleetCost + database.getGlobalData.finance.fleetSupply - researchCost; var sigmaIncome = income*bonus-expense; // console.log(income,bonus,expense,sigmaIncome); var currentGold = 0; currentGold = Utils.FormatNumToStr(database.getGlobalData.finance.currentGold); if((database.settings.GoldShort.value == 1) && (database.getGlobalData.finance.currentGold > 10000)) currentGold = Utils.FormatNumToStr(database.getGlobalData.finance.currentGold/1000) +'k'; $("#t_currentgold").get(0).textContent = currentGold; $("#t_currentwood").get(0).textContent = Utils.FormatNumToStr(Math.round(tot[Constant.Resources.WOOD]), false); $("#t_currentwine").get(0).textContent = Utils.FormatNumToStr(Math.round(tot[Constant.Resources.WINE]), false); $("#t_currentmarble").get(0).textContent = Utils.FormatNumToStr(Math.round(tot[Constant.Resources.MARBLE]), false); $("#t_currentglass").get(0).textContent = Utils.FormatNumToStr(Math.round(tot[Constant.Resources.GLASS]), false); $("#t_currentsulfur").get(0).textContent = Utils.FormatNumToStr(Math.round(tot[Constant.Resources.SULFUR]), false); $("#t_goldincome").children('span').removeClass('Red Green').addClass(sigmaIncome >= 0 ? 'Green' : 'Red').eq(0).text(Utils.FormatNumToStr(sigmaIncome, true, 0)).siblings('span').eq(0).text(sigmaIncome > 0 ? '\u221E' : Utils.FormatTimeLengthToStr((database.getGlobalData.finance.currentGold / sigmaIncome) * 60 * 60 * 1000, true, 0)); $("#t_woodincome").find('span').get(0).textContent = Utils.FormatNumToStr(Math.round(inc[Constant.Resources.WOOD]), true); $("#t_wineincome").children('span').eq(0).text(Utils.FormatNumToStr(Math.round(inc[Constant.Resources.WINE]), true)).siblings('span').eq(0).text( '-' + Utils.FormatNumToStr(Math.round(conWine), false)); $("#t_marbleincome").find('span').get(0).textContent = Utils.FormatNumToStr(Math.round(inc[Constant.Resources.MARBLE]), true); $("#t_glassincome").find('span').get(0).textContent = Utils.FormatNumToStr(Math.round(inc[Constant.Resources.GLASS]), true); $("#t_sulfurincome").find('span').get(0).textContent = Utils.FormatNumToStr(Math.round(inc[Constant.Resources.SULFUR]), true); $("#t_population").get(0).textContent = Utils.FormatNumToStr(Math.round(populationTot), false) + '(' + Utils.FormatNumToStr(Math.round(populationMaxTot), false) + ')'; $("#t_growth").get(0).textContent = Utils.FormatNumToStr(popDiffTot>0?growthTot:0,popDiffTot>0?true:false,2); $("#t_researchpoints").get(0).textContent = Utils.FormatNumToStr(researchTot?researchTot:0,researchTot?true:false,2); tot = inc = null; } } }; function getCityNameFromID(originCity, city) { var ret = ''; try { ret = database.cities[parseInt(originCity)].getName; } catch(e) { ret = originCity; } return ret; } render.LoadCSS = function() { GM_addStyle('/* Global board styles */ #js_GlobalMenu_wood, #js_GlobalMenu_wine, #js_GlobalMenu_marble, #js_GlobalMenu_crystal, #js_GlobalMenu_sulfur {font-size:100%; position:absolute; top:-15px; left:40px} span.resourceProduction {font-size:86%;position:absolute;right:5px;top:-3px} #empireBoard .clickable { color: #542c0f; font-weight: 650; }#empireBoard .clickable:hover, #empireBoard .clickbar:hover { cursor: pointer; text-decoration: underline; }#empireBoard span.happy:hover {cursor: pointer;}#empireBoard .Bold, #empireBoard .Red, #empireBoard .Blue, #empireBoard .Green { font-weight: bold; }#empireBoard .Green { color: green !important; }#empireBoard .Red { color: red !important; }#empireBoard .Blue { color: blue !important; }#empireBoard .icon { background-clip: border-box; background-repeat: no-repeat; background-position: center; background-color: transparent; background-size: auto 14px; }#empireBoard .safeImage { background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAJCAYAAAD+WDajAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEFJREFUeNpi/P//PwMIhOrzQhhAsPriZ0YQzYQugcxnQhaE6YABxhA9HhRdyICJAQ/AayzxOtFdzYRuFLIVAAEGANwqFwuukYKqAAAAAElFTkSuQmCC"); background-size: auto auto !important; }#empireBoard .transportImage { background-image: url(skin/actions/transport.jpg); }#empireBoard .tradeImage { background-image: url(skin/actions/trade.jpg); }#empireBoard .plunderImage { background-image: url(skin/actions/plunder.jpg); }#empireBoard .merchantImage { background-image: url(skin/minimized/merchantNavy.png); background-position: 0 -5px; }#empireBoard .woodImage { background-image: url(skin/resources/icon_wood.png) ;}#empireBoard .wineImage { background-image: url(skin/resources/icon_wine.png); }#empireBoard .marbleImage { background-image: url(skin/resources/icon_marble.png); }#empireBoard .sulfurImage { background-image: url(skin/resources/icon_sulfur.png); }#empireBoard .goldImage { background-image: url(skin/resources/icon_gold.png); }#empireBoard .glassImage { background-image: url(skin/resources/icon_glass.png); }#empireBoard .sawMillImage { background-image: url(skin/characters/y100_worker_wood_faceleft.png); }#empireBoard .mineImage { background-image: url(skin/characters/y100_worker_tradegood_faceleft.png); }#empireBoard .researchImage { background-image: url(skin/resources/icon_research_time.png); }#empireBoard .populationImage { background-image: url(skin/resources/icon_population.png); }#empireBoard .goldImage { background-image: url(skin/resources/icon_gold.png); }#empireBoard #empire_Tabs table thead tr th.empireactions div.trapart { background-image:url(skin/layout/icon-kiste.png);background-size:auto 14px;background-repeat:no-repeat;background-position:center center;float:left;}#empireBoard #empire_Tabs table thead tr th.empireactions div.ilios { background-image: url(skin/world/heliostower.png); background-size: auto 40px; background-repeat: no-repeat; background-position: center center; float: left; cursor: pointer;}#empireBoard #empire_Tabs table thead tr th.empireactions div.spot { background-image: url(skin/img/city/flag_red.png); background-size: auto 16px; background-repeat: no-repeat; background-position: center center; float: left;}#empireBoard #empire_Tabs table thead tr th.empireactions .spio { background-image: url("skin/characters/military/120x100/spy_120x100.png"); background-size: auto 25px; background-repeat: no-repeat; background-position: center center; float: left;}#empireBoard #empire_Tabs table thead tr th.empireactions .generalEdit { background-image: url("skin/minimized/militaryAdvisor.png"); background-size: auto 27px; background-repeat: no-repeat; background-position: center +2px; float: left;}#empireBoard #empire_Tabs table thead tr th.empireactions .general { background-image: url("skin/minimized/citymilitary.png"); background-size: auto 30px; background-repeat: no-repeat; background-position: center -1px; float: right;}#empireBoard #empire_Tabs table thead tr th.empireactions .generalee { background-image: url("skin/img/island/noobschutz.png"); background-size: auto 26px; background-repeat: no-repeat; background-position: center -1px; float: left;}#empireBoard #empire_Tabs table thead tr th.empireactions .combat { background-image: url("skin/unitdesc/unit_attack.png"); background-size: 25px 23px; background-repeat: no-repeat; background-position: center center; float: left;}#empireBoard .expensesImage { background-image: url(skin/resources/icon_upkeep.png); }#empireBoard .happyImage { background-image: url(skin/smilies/happy.png); }#empireBoard .actionpointImage { background-image: url(skin/resources/icon_actionpoints.png); }#empireBoard .actionpointImage3 { background-image: url(skin/resources/icon_actionpoints.png); }#empireBoard .spotImage { background-image: url(skin/img/city/flag_red.png);}#empireBoard .wonderImage { background-image: url(skin/achievements/IK_Achievements_wunder_ausloesen.png); background-position: center; background-repeat: no-repeat; background-size: 45px 41px; }#empireBoard .naosImage { background-image: url(skin/achievements/IK_Achievements_Gebaeude_tempel.png); background-position: center; background-repeat: no-repeat; background-size: 44px 39px; }#empireBoard .growthImage { background-image: url(skin/icons/growth_positive.png); }#empireBoard .scientistImage { background-image: url(skin/characters/40h/scientist_r.png); }#empireBoard .activecineIcon { background: url(skin/img/city/Kino_aktiv_no_anim.png) no-repeat center / 25px 25px; }#empireBoard .inactivecineIcon { background: url(skin/img/city/Kino_inaktiv.png) no-repeat center / 25px 25px; }#empireBoard .evnoiaIcon { background: url(skin/img/city/IK_stadt_daily_level5_glow.jpg) no-repeat center / 15px 15px; }#empireBoard .priestIcon { background: url(skin/characters/40h/templer_r.png) no-repeat center / 16px 25px; }#empireBoard .citizenIcon { background-image: url(skin/characters/40h/citizen_r.png); }#empireBoard .cityIcon { background-image: url(skin/icons/city_30x30.png); }#empireBoard .researchIcon { background-image: url(skin/icons/researchbonus_30x30.png); }#empireBoard .tavernIcon { background-image: url(skin/buildings/tavern_30x30.png); }#empireBoard .culturalIcon { background-image: url(skin/interface/icon_message_write.png); }#empireBoard .museumIcon { background-image: url(skin/buildings/museum_30x30.png); }#empireBoard .governmentIcon { background-image: url(skin/government/zepter_20.png); }#empireBoard .incomeIcon { background-image: url(skin/icons/income_positive.png); }#empireBoard .outcomeIcon { background-image: url(skin/icons/income_negative.png); }#empireBoard .crownIcon { background-image: url(skin/layout/crown.png); }#empireBoard .corruptionIcon { background-image: url(skin/icons/corruption_24x24.png); }#empireBoard #empireTip { display: none; position: absolute; top: 0; left: 0; z-index: 99999999; }#empireBoard #empireTip .icon { background-clip: border-box; background-repeat: no-repeat; background-position: 0; background-color: transparent; background-attachment: scroll; background-size: 16px auto; height: 17px; min-width: 34px; width: 34px; }#empireBoard #empireTip .icon2 { background-clip: border-box; background-repeat: no-repeat; background-position: 0; background-color: transparent; background-attachment: scroll; background-size: 24px auto; height: 17px; min-width: 24px; width: 24px; }#empireBoard #empireTip .content, .tooltip-div, .info-div { background-color: #fae0ae; border: 1px solid #e4b873; position: relative; overflow: hidden; text-align: left; word-wrap: break-word; }#empireBoard #empireTip .content table, .tooltip-div table, .info-div table { width: 100%; }#empireBoard #empireTip .content table tr.data, .tooltip-div table tr.data, .info-div table tr.data { background-color: #FFFAF0; }#empireBoard #empireTip .content table tr.total, .tooltip-div table tr.total, .info-div table tr.total { background: #E7C680 url(skin/input/button.png) repeat-x scroll 0 0; }#empireBoard #empireTip .content table td, .tooltip-div table td, .info-div table td { padding: 2px; height: auto !important; text-align: right; }#empireBoard #empireTip .content table th, .tooltip-div table th, .info-div table th { padding: 2px; height: auto !important; text-align: right; font-weight: bold; background: #F8E7B3 url(skin/input/button.png) repeat-x scroll 0 bottom;}#empireBoard #empireTip .content table tbody td, .tooltip-div table tbody td, .info-div table tbody td { background-color: #fdfdfd;}#empireBoard #empireTip .content table tbody td:last-child, .tooltip-div table tbody td:last-child, .info-div table tbody td:last-child { text-align: left; white-space: nowrap; font-style: italic; }#empireBoard #empireTip .content table tfoot, .tooltip-div table tfoot, .info-div table tfoot { line-height: 15px !important; border-top: 3px solid #fdf7dd; }#empireBoard #empireTip .content table tfoot td:last-child, .tooltip-div table tfoot td:last-child, .info-div table tfoot td:last-child { text-align: left; white-space: nowrap; font-style: italic; }#empireBoard #empireTip .content table thead, .tooltip-div table thead { background: #F8E7B3 url(skin/input/button.png) repeat-x scroll 0 bottom;}#empireBoard #empireTip .content table thead th.lf, .tooltip-div table thead th.lf, .info-div table thead th.lf { border-left: 2px solid #e4b873; }#empireBoard #empireTip .content table tbody td.lf, .tooltip-div table tbody td.lf, .info-div table tbody td.lf { border-left: 2px solid #e4b873; }#empireBoard #empireTip .content table th.nolf, .tooltip-div table th.nolf, .info-div table th.nolf, #empireBoard #empireTip .content table td.nolf, .tooltip-div table td.nolf, .info-div table td.nolf { border-left: none; }#empireBoard #empireTip .content th.lfdash, .tooltip-div th.lfdash, .info-div th.lfdash, #empireBoard #empireTip .content td.lfdash, .tooltip-div td.lfdash, .info-div td.lfdash { border-left: 1px dashed #e4b873; }#empireBoard #empireTip .content table tr.small td, .tooltip-div table tr.small td, .info-div table tr.small td { height: auto !important; padding-top: 1px; font-size: 10px !important; line-height: 15px !important; }#empireBoard #empire_Tabs table { width: 100% !important; text-align: center; border: 1.1px solid #fff1e5; }#empireBoard #empire_Tabs table colgroup { border-left: 1.4px solid #e4b873; }#empireBoard #empire_Tabs table colgroup:first-child { border: none !important; }#empireBoard #empire_Tabs table colgroup col { border-left: 1px dashed #e4b873; }#empireBoard #empire_Tabs table thead { background: #f8e7b3 url(skin/input/button.png) repeat-x scroll 0 bottom; }#empireBoard #empire_Tabs table thead tr { height: 30px; }#empireBoard #empire_Tabs table thead tr th { text-align: center; font-weight: bold; overflow: hidden; white-space: nowrap; }#empireBoard #ArmyTab table thead tr th.empireactions { min-width: 77px; width: 77px; height: 29px;}#empireBoard #empire_Tabs table thead tr th.icon { min-width: 29px; background-size: auto 18px; }#empireBoard #empire_Tabs table tbody tr { border-top: 1.1px solid #e4b873;}#empireBoard #empire_Tabs table tbody tr:nth-child(even) { background-color: #FDF1D4; }#empireBoard #empire_Tabs table tbody tr.selected { background-color: #f7d6ac; box-shadow: 0 0 1em #CB9B6A inset; }#empireBoard #empire_Tabs table tbody tr:hover { background-color: #fff; box-shadow: 0 0 1em #CB9B6A; }#empireBoard #empire_Tabs table tbody tr td.city_name { min-width: 140px; max-width: 165px; padding-left: 0px; text-align: left; padding-right: 0px; }#empireBoard #empire_Tabs table tbody tr td.city_name span.icon { background-repeat: no-repeat; float: left; width: 20px; background-size: 15px auto; margin: 0 2px 0 -1px; height: 16px; cursor: move; } #empireBoard #empire_Tabs table tbody tr td.action_points { text-align: center;} #empireBoard #empire_Tabs table tbody tr td.spy_points { text-align: center;} #empireBoard #empire_Tabs table tbody tr td.population { text-align: center;}#empireBoard #empire_Tabs table tbody tr td.sawmill { border-left: 1.5px solid #e4b873; } #empireBoard #empire_Tabs table tbody tr td.sawmillprog { text-align: center;} #empireBoard #empire_Tabs table tbody tr td.mineprog { text-align: center;} #empireBoard #empire_Tabs table tbody tr td.empireactions div { background-clip: border-box; background: transparent repeat scroll 0 0; background-size: 25px auto; height: 16px; min-width: 25px; width: 25px;} #empireBoard #empire_Tabs table tbody tr td.wonder div { background-clip: border-box; background: transparent repeat scroll 0 0; background-size: auto 40px; height: 36px; min-width: 30px; width: 30px; } #empireBoard #empire_Tabs table tbody tr td.temple div { background-clip: border-box; background: transparent repeat scroll 0 0; background-size: auto 40px; height: 36px; min-width: 30px; width: 30px; } #empireBoard #empire_Tabs table thead tr th.empireactions div { background-clip: border-box; background: transparent repeat scroll 0 0; background-size: 25px auto; height: 25px; min-width: 25px; width: 25px; }#empireBoard #empire_Tabs table tbody tr td.empireactions div.eroute { background-image: url("skin/interface/mission_trade.png"); height: 16px; float: left;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.varvaroi { background-image: url("skin/actions/frieden_schliessen_button_sprite.jpg"); height: 16px; float: left;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.spypointImage { background-image: url(skin/layout/icon-status-small.png); height: 18px; float: left;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.transport { background-image: url("skin/actions/transport.jpg"); background-position: 0 -17px; float: left;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.worldmap { background-image: url("skin/layout/icon-world.png"); background-size: 18px 18px; background-repeat: no-repeat; background-position: center center; float: left;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.island { background-image: url("skin/layout/icon-island.png"); background-size: 23px 20px; background-repeat: no-repeat; background-position: center center; float: left;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.islandwood { background-image: url("skin/resources/icon_wood.png"); background-size: 17px auto; background-repeat: no-repeat; background-position: center center; float: left;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.islandgood { float: left;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.city { background-image: url("skin/img/city/townhall_l.png"); background-size: auto 23px; background-repeat: no-repeat; background-position: center center; float: right;}#empireBoard #empire_Tabs table thead tr th.empireactions div.member { background-image: url("skin/friends/player_icon_blue_20.png"); background-size: auto 22px; background-repeat: no-repeat; background-position: center center; float: left;}#empireBoard #empire_Tabs table thead tr th.empireactions div.agora { background-image: url("skin/img/island/agora.png"); background-size: 34px 26px; background-repeat: no-repeat; background-position: center center; float: right;}#empireBoard #empire_Tabs table thead tr th.empireactions div.trading2 { background-image: url("skin/achievements/IK_Achievements_Forschungen_abgeschlossen.png"); background-position: center; background-repeat: no-repeat; background-size: 35px 30px; float: left;}#empireBoard #empire_Tabs table thead tr th.empireactions div.trading { background-image: url("skin/characters/fleet/40x40/ship_transport_r_40x40.png"); background-size: 23px 21px; background-repeat: no-repeat; background-position: center center; float: left;}#empireBoard #empire_Tabs table thead tr th.empireactions div.contracts { background-image: url("skin/museum/icon32_culturalgood.png"); background-size: auto 22px; background-repeat: no-repeat; background-position: center center; float:right;margin-right:0px;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.garrisonEdita{ background-image: url("skin/minimized/garrisonEdit.png"); background-size: 25px 17px; background-position: center center; float: left; background-repeat: no-repeat;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.garrisonEditb { background-image: url("skin/pirateFortress/2012-11-09_IK_Kaperfahrt_Diplomatenschiff_inaktiv.png"); background-size: 21px 13px; background-position: center center; background-repeat: no-repeat;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.barracks { background-image: url("skin/buildings/y50/y50_barracks.png"); background-size: 27px 16px; background-position: center center; float: left; background-repeat: no-repeat;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.shipyard { background-image: url("skin/buildings/y50/y50_shipyard.png"); background-size: 26px 15px; background-position: center center; background-repeat: no-repeat;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.deploymentarmy { background-image: url("skin/actions/move_army.jpg"); height: 16px; background-position: 0 -17px; float: left;}#empireBoard #empire_Tabs table tbody tr td.empireactions div.deploymentfleet { background-image: url("skin/actions/move_fleet.jpg"); height: 16px; background-position: 0 -17px;}#empireBoard #empire_WorldmapTab table tbody tr td.worldmap div.worldmap{ width:829px; height:829px; background-image: url("skin/actions/move_fleet.jpg"); float: left; }#empireBoard #empire_Tabs table tbody tr:not(.selected) td.empireactions div.transport:hover { background-position: 0 -17px;cursor:pointer }#empireBoard #empire_Tabs table tbody tr td.empireactions div.deploymentfleet:hover { background-position: 0 -17px; }#empireBoard #empire_Tabs table tbody tr td.empireactions div.deploymentarmy:hover { background-position: 0 -17px; }#empireBoard #empire_Tabs table tbody tr.selected .empireactions div.transport, #empireBoard #empire_Tabs table tbody tr.selected .empireactions div.deploymentarmy, #empireBoard #empire_Tabs table tbody tr.selected .empireactions div.deploymentfleet{ background-position: 0 17px; }#empireBoard #empire_Tabs table tbody tr.current .empireactions div.transport { background-position: 0 px;cursor:default }#empireBoard #empire_Tabs table tfoot { background: #fae0ae; background: #e7c680 url(skin/input/button.png) repeat-x scroll 0 0; border-top: 2px solid #e4b873; }#empireBoard #empire_Tabs table tfoot tr td { text-align: center; font-weight: bold;}#empireBoard #empire_Tabs table tfoot tr #t_researchpoints.total { text-align: center; }#empireBoard #empire_Tabs table tfoot tr #t_growth.total { text-align: center; }#empireBoard #empire_Tabs table tfoot tr td.total span { line-height: 1em; height: 1em; font-size: 0.8em; display: block; }#empireBoard #empire_Tabs table tfoot tr td#t_sigma, #empireBoard #empire_Tabs table tfoot tr td.sigma { font-weight: 800; text-align: center; }#empireBoard #ResTab div.progressbar .normal { background: #73443E; }#empireBoard #ResTab div.progressbar .warning { background: #8F1D1A; }#empireBoard #ResTab div.progressbar .almostfull { background: #B42521; }#empireBoard #ResTab div.progressbar .full { background: #ff0000; }#empireBoard #ResTab div.progressbar .fullGold { background: #185A39; }#empireBoard #ResTab div.progressbarPop .normal { background: #73443E; }#empireBoard #ResTab div.progressbarPop .warning { background: #CC3300; }#empireBoard #ResTab div.progressbarPop .full { background: #185A39; }#empireBoard #ResTab div.progressbarSci .normal { background: #73443E; }#empireBoard #ResTab div.progressbarSci .full { background: #185A39; }#empireBoard #ResTab table tr td.gold_income, #empireBoard #ResTab table tr td.resource, #empireBoard #ResTab table tr td.army:nth-child(even) { text-align: center; }#empireBoard #ResTab table tr td.gold_income span.incoming, #empireBoard #ResTab table tr td.resource span.incoming { color: blue; }#empireBoard #ResTab table tr td.gold_unkeep span, #empireBoard #ResTab table tr td.resource span, #empireBoard #ResTab table tr td.army:nth-child(even) span { line-height: 1em; height: 1em; font-size: 0.8em; display: block; }#empireBoard #ResTab table tr td.gold_income span.icon, #empireBoard #ResTab table tr td.resource span.icon, #empireBoard #ResTab table tr td.army:nth-child(even) span.icon { background-repeat: no-repeat; float: left; width: 25px; height: 9px; padding: 5px 4px 0 0; }#empireBoard #ResTab table tr td.gold_income span.current, #empireBoard #ResTab table tr td.resource span.current, #empireBoard #ResTab table tr td.army:nth-child(even) span.current { font-size: 1em; display: inline; }#empireBoard #ResTab table tr td.population { text-align: center; }#empireBoard #ResTab table tr td.gold_income span:nth-child(2), #empireBoard #ResTab table tr td.population span:nth-child(2) { line-height: 1em; height: 1em; font-size: 0.8em; display: block; }#empireBoard #BuildTab table tbody tr td { background-clip: border-box; background-repeat: no-repeat; background-position: center; background-color: transparent; background-size: auto 20px; }#empireBoard #BuildTab table tbody tr td span.maxLevel { color: rgba(0, 0, 0, 0.29); }#empireBoard #BuildTab table tbody tr td span.upgradableSoon { color: #4169e1; font-style: italic; }#empireBoard #BuildTab table tbody tr td span.upgradableSoon:after { content: "+"; }#empireBoard #BuildTab table tbody tr td span.upgradable { color: green; font-style: italic; }#empireBoard #BuildTab table tbody tr td span.upgradable:after { content: "+"; }#empireBoard #BuildTab table tbody tr td span.upgrading { background: url("/skin/icons/arrow_upgrade.png") no-repeat scroll 1px 1px transparent; border-radius: 4px 4px 4px 4px; box-shadow: 0 0 3px rgba(0, 0, 0, 0.8); display: inline-block; padding: 1px 1px 1px 15px; margin: 2px; }#empireBoard #ArmyTab table colgroup col:nth-child(even) { border-left: none; }#empireBoard #SettingsTab .options, #empireBoard #HelpTab .options { float: left; padding: 10px; }#empireBoard #SettingsTab .options span.categories, #empireBoard #HelpTab .options span.categories { margin-left: -3px; font-weight: 500; }#empireBoard #SettingsTab .options span.categories:not(:first-child), #empireBoard #HelpTab .options span.categories:not(:first-child) { margin-top: 5px; }#empireBoard #SettingsTab .options span:not(.clickable), #empireBoard #HelpTab .options span:not(.clickable) { display: block; }#empireBoard #SettingsTab .options span label, #empireBoard #HelpTab .options span label { vertical-align: top; padding-left: 5px; }#empireBoard #SettingsTab .buttons, #empireBoard #HelpTab .buttons { clear: left; padding: 3px; }#empireBoard #SettingsTab .buttons button, #empireBoard #HelpTab .buttons button { margin-left: 3px; }.toast, .toastAlert { display: none; position: fixed; z-index: 99999; width: 100%; text-align: center; top: 11em; }.toast .message, .toastAlert .message { display: inline-block; color: #4C3000; padding: 5px; border-radius: 5px; box-shadow: 3px 0px 15px 0 #542C0F; -webkit-box-shadow: 3px 0px 15px 0 #542C0F; font-family: Arial, Helvetica, sans-serif; font-size: 11px; background: #faf3d7; background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0, #faf3d7), color-stop(1, #e1b06d)); }div.prog:after { -webkit-animation: move 2s linear infinite; -moz-animation: move 2s linear infinite; }.prog { display: block; width: 100%; height: 100%; background: #fcf938 -moz-linear-gradient(center bottom, #fcf938 37%, #fcf938 69%); position: relative; overflow: hidden; }.prog:after { content: ""; position: absolute; top: 0; left: 0; bottom: 0; right: 0; background: -moz-linear-gradient(-45deg, rgba(10, 10, 10, 0.6) 25%, transparent 25%, transparent 50%, rgba(10, 10, 10, 0.6) 50%, rgba(10, 10, 10, 0.6) 75%, transparent 75%, transparent); z-index: 1; -webkit-background-size: 50px 50px; -moz-background-size: 50px 50px; background-size: 50px 50px; -webkit-animation: move 5s linear infinite; -moz-animation: move 5s linear infinite; overflow: hidden; }.animate > .prog:after { display: none; }@-webkit-keyframes move { 0% { background-position: 0 0; } 100% { background-position: 50px 50px; } }@-moz-keyframes move { 0% { background-position: 0 0; } 100% { background-position: 50px 50px; } }[id^="registrationGiftDay"]{display:none}.speedup:hover{background-position:0px -14px !important}.speedup:active{background-position:0px -28px !important}#city #cityRegistrationGifts {z-index:310;}.empiretooltip {position:static} .empiretooltip div.tooltip-div {display:none !important}.empiretooltip:hover div.tooltip-div {position:fixed !important;z-index:2147483647;display:block !important;white-space:nowrap;}.pirateHighscoreNextCalc .indicator {cursor: pointer;display:inline-block;width:18px;height:16px;background:url(skin/interface/window_control_sprite.png) no-repeat scroll transparent;position:relative;background-position:-72px -1px}.pirateHighscoreNextCalc .indicator:hover {background-position:-72px -20px}.pirateHighscoreNextCalc.active .indicator {background-position:-54px -1px}.pirateHighscoreNextCalc.active .indicator:hover {background-position:-54px -20px}#city #cityRegistrationGifts {z-index:310;}'); if(database.settings.compressedBuildingList.value) GM_addStyle('#empireBoard #BuildTab table tbody tr td.building.forester0:not(:empty) {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAUCAMAAABPqWaPAAAKN2lDQ1BzUkdCIElFQzYxOTY2LTIuMQAAeJydlndUU9kWh8+9N71QkhCKlNBraFICSA29SJEuKjEJEErAkAAiNkRUcERRkaYIMijggKNDkbEiioUBUbHrBBlE1HFwFBuWSWStGd+8ee/Nm98f935rn73P3Wfvfda6AJD8gwXCTFgJgAyhWBTh58WIjYtnYAcBDPAAA2wA4HCzs0IW+EYCmQJ82IxsmRP4F726DiD5+yrTP4zBAP+flLlZIjEAUJiM5/L42VwZF8k4PVecJbdPyZi2NE3OMErOIlmCMlaTc/IsW3z2mWUPOfMyhDwZy3PO4mXw5Nwn4405Er6MkWAZF+cI+LkyviZjg3RJhkDGb+SxGXxONgAoktwu5nNTZGwtY5IoMoIt43kA4EjJX/DSL1jMzxPLD8XOzFouEiSniBkmXFOGjZMTi+HPz03ni8XMMA43jSPiMdiZGVkc4XIAZs/8WRR5bRmyIjvYODk4MG0tbb4o1H9d/JuS93aWXoR/7hlEH/jD9ld+mQ0AsKZltdn6h21pFQBd6wFQu/2HzWAvAIqyvnUOfXEeunxeUsTiLGcrq9zcXEsBn2spL+jv+p8Of0NffM9Svt3v5WF485M4knQxQ143bmZ6pkTEyM7icPkM5p+H+B8H/nUeFhH8JL6IL5RFRMumTCBMlrVbyBOIBZlChkD4n5r4D8P+pNm5lona+BHQllgCpSEaQH4eACgqESAJe2Qr0O99C8ZHA/nNi9GZmJ37z4L+fVe4TP7IFiR/jmNHRDK4ElHO7Jr8WgI0IABFQAPqQBvoAxPABLbAEbgAD+ADAkEoiARxYDHgghSQAUQgFxSAtaAYlIKtYCeoBnWgETSDNnAYdIFj4DQ4By6By2AE3AFSMA6egCnwCsxAEISFyBAVUod0IEPIHLKFWJAb5AMFQxFQHJQIJUNCSAIVQOugUqgcqobqoWboW+godBq6AA1Dt6BRaBL6FXoHIzAJpsFasBFsBbNgTzgIjoQXwcnwMjgfLoK3wJVwA3wQ7oRPw5fgEVgKP4GnEYAQETqiizARFsJGQpF4JAkRIauQEqQCaUDakB6kH7mKSJGnyFsUBkVFMVBMlAvKHxWF4qKWoVahNqOqUQdQnag+1FXUKGoK9RFNRmuizdHO6AB0LDoZnYsuRlegm9Ad6LPoEfQ4+hUGg6FjjDGOGH9MHCYVswKzGbMb0445hRnGjGGmsVisOtYc64oNxXKwYmwxtgp7EHsSewU7jn2DI+J0cLY4X1w8TogrxFXgWnAncFdwE7gZvBLeEO+MD8Xz8MvxZfhGfA9+CD+OnyEoE4wJroRIQiphLaGS0EY4S7hLeEEkEvWITsRwooC4hlhJPEQ8TxwlviVRSGYkNimBJCFtIe0nnSLdIr0gk8lGZA9yPFlM3kJuJp8h3ye/UaAqWCoEKPAUVivUKHQqXFF4pohXNFT0VFysmK9YoXhEcUjxqRJeyUiJrcRRWqVUo3RU6YbStDJV2UY5VDlDebNyi/IF5UcULMWI4kPhUYoo+yhnKGNUhKpPZVO51HXURupZ6jgNQzOmBdBSaaW0b2iDtCkVioqdSrRKnkqNynEVKR2hG9ED6On0Mvph+nX6O1UtVU9Vvuom1TbVK6qv1eaoeajx1UrU2tVG1N6pM9R91NPUt6l3qd/TQGmYaYRr5Grs0Tir8XQObY7LHO6ckjmH59zWhDXNNCM0V2ju0xzQnNbS1vLTytKq0jqj9VSbru2hnaq9Q/uE9qQOVcdNR6CzQ+ekzmOGCsOTkc6oZPQxpnQ1df11Jbr1uoO6M3rGelF6hXrtevf0Cfos/ST9Hfq9+lMGOgYhBgUGrQa3DfGGLMMUw12G/YavjYyNYow2GHUZPTJWMw4wzjduNb5rQjZxN1lm0mByzRRjyjJNM91tetkMNrM3SzGrMRsyh80dzAXmu82HLdAWThZCiwaLG0wS05OZw2xljlrSLYMtCy27LJ9ZGVjFW22z6rf6aG1vnW7daH3HhmITaFNo02Pzq62ZLde2xvbaXPJc37mr53bPfW5nbse322N3055qH2K/wb7X/oODo4PIoc1h0tHAMdGx1vEGi8YKY21mnXdCO3k5rXY65vTW2cFZ7HzY+RcXpkuaS4vLo3nG8/jzGueNueq5clzrXaVuDLdEt71uUnddd457g/sDD30PnkeTx4SnqWeq50HPZ17WXiKvDq/XbGf2SvYpb8Tbz7vEe9CH4hPlU+1z31fPN9m31XfKz95vhd8pf7R/kP82/xsBWgHcgOaAqUDHwJWBfUGkoAVB1UEPgs2CRcE9IXBIYMj2kLvzDecL53eFgtCA0O2h98KMw5aFfR+OCQ8Lrwl/GGETURDRv4C6YMmClgWvIr0iyyLvRJlESaJ6oxWjE6Kbo1/HeMeUx0hjrWJXxl6K04gTxHXHY+Oj45vipxf6LNy5cDzBPqE44foi40V5iy4s1licvvj4EsUlnCVHEtGJMYktie85oZwGzvTSgKW1S6e4bO4u7hOeB28Hb5Lvyi/nTyS5JpUnPUp2Td6ePJninlKR8lTAFlQLnqf6p9alvk4LTduf9ik9Jr09A5eRmHFUSBGmCfsytTPzMoezzLOKs6TLnJftXDYlChI1ZUPZi7K7xTTZz9SAxESyXjKa45ZTk/MmNzr3SJ5ynjBvYLnZ8k3LJ/J9879egVrBXdFboFuwtmB0pefK+lXQqqWrelfrry5aPb7Gb82BtYS1aWt/KLQuLC98uS5mXU+RVtGaorH1futbixWKRcU3NrhsqNuI2ijYOLhp7qaqTR9LeCUXS61LK0rfb+ZuvviVzVeVX33akrRlsMyhbM9WzFbh1uvb3LcdKFcuzy8f2x6yvXMHY0fJjpc7l+y8UGFXUbeLsEuyS1oZXNldZVC1tep9dUr1SI1XTXutZu2m2te7ebuv7PHY01anVVda926vYO/Ner/6zgajhop9mH05+x42Rjf2f836urlJo6m06cN+4X7pgYgDfc2Ozc0tmi1lrXCrpHXyYMLBy994f9Pdxmyrb6e3lx4ChySHHn+b+O31w0GHe4+wjrR9Z/hdbQe1o6QT6lzeOdWV0iXtjusePhp4tLfHpafje8vv9x/TPVZzXOV42QnCiaITn07mn5w+lXXq6enk02O9S3rvnIk9c60vvG/wbNDZ8+d8z53p9+w/ed71/LELzheOXmRd7LrkcKlzwH6g4wf7HzoGHQY7hxyHui87Xe4Znjd84or7ldNXva+euxZw7dLI/JHh61HXb95IuCG9ybv56Fb6ree3c27P3FlzF3235J7SvYr7mvcbfjT9sV3qID0+6j068GDBgztj3LEnP2X/9H686CH5YcWEzkTzI9tHxyZ9Jy8/Xvh4/EnWk5mnxT8r/1z7zOTZd794/DIwFTs1/lz0/NOvm1+ov9j/0u5l73TY9P1XGa9mXpe8UX9z4C3rbf+7mHcTM7nvse8rP5h+6PkY9PHup4xPn34D94Tz+49wZioAAABjUExURf////fetffelO/Wre/WjN7OpebOhN7OhN7Oe97Fe9a9hNa9c9athM61a8WtjNacWsWca86UWrWUa72UUs6MSrWEUq17UqV7Wox7a5xzUoxrUnNra3NrWntjUmNaUlJKSgAAAIa/w40AAAAhdFJOU///////////////////////////////////////////AJ/B0CEAAAAJcEhZcwAACxIAAAsSAdLdfvwAAAEsSURBVHicXZDNjtswDISHP4ost8Ve9lYYu+//VoGxtwDtJfU6EsnSCdCmJQTw8IkzQ+o7jjozNbn6gr+lj8YRe53t/PY/WSPQZWJ9QneyyiB2QCrW5R8SXnd2Dyo6Pr4/E348IR2lXF6fiJjCWFWCHHLZlj9EbTC7SP6IEVO5K97JrTAckwyAeId+O3IkOYNnmDT6vBWizOf65ZhZ0QQ4KfvPK9eJnDTk4UMGGin2a0MqtW7KdCe5fTib37bWRcYoCGPODMqZGX4ij714wE41Ri8vl01RXPhYlHyvluvAp921saabAS7axXpRMerz1zh8alft2ctgdStpk5PSlfU6HTeeWXse24uapMaIDL+sldrMoJcf4NZIc4/Usq5YPhoGG3H9hOynkkmTbP4beIqL5HGYwHAAAAAASUVORK5CYII=);text-shadow: -1px -1px 0 #FDF1D4, 1px -1px 0 #FDF1D4, -1px 1px 0 #FDF1D4, 1px 1px 0 #FDF1D4; background-size: 21px 18px}#empireBoard #BuildTab table tbody tr td.building.winegrower0:not(:empty) {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAUCAYAAAB4d5a9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAASAAAAEgARslrPgAABQRJREFUOMuV1MuOHFcBxvH/OXWqurqqu6vdM56LZ3wZC5w4G8OCBSAQCCkSEjs2bBBSFlGMxIKd90hIvACWeAUktjwCQjFJhBNMhtie8fSkZ3r6Xvc6dc5hwYaFjcj3AP/f7lO8YcX8BZ7qPFxMP//9p+MPeTb7J23jcyMZcf/GPRbFnLTc8M2b32V3/8EvTVs97m4dvbal3oQ4Y0E6yqJgPJ+xTgvAMtMNx7mmcRW+ryhNhjY1ranelHo9orMrVJiE6fLkrXU9Z1VO0brGU4Lalqz0DOEbnIpZBjOGXkrj8q+GGF2CtT/J8vEHJ/VTTKdE1gLnBNZYdFPTESFeENDQoJ1Gu+arIQAOZz3p235vSCeaUBYtrXaUmcE5h0g0XQFN5jAJtJr/H6mzKSAinIkDf+c0zPbfDuRzgm6FaR1VZslmDnEA/X5Ar7NF38Tf34v2F222+rNzduP3R/8bsbpEeP6Pi+X4D+cnZ+EXH51xpS11CBZBMQe77lBHIVVkSasLzk7/9rNef/jT/tbtx73B4W+yzXTWG+y8HtHVHNXph+V8/L3F+UX49Mkzzk5mrCtBGA8JE0FgHG3XIFSJ2mk4LRd8/I9P2D3o+/f51q9uCRcn/VuP/htSALZZAiK2unq3Xpz/oLw4f3/xfMrkyyV5VXM9HvLO3j7KF1hhSW3Gy3RMXhSEMZioJfVrxuavgjnvHToYJbceZel01uvvoNpq0W/q8kdllv8wnZ+/v766CrPTBek8w5eSuNNh1OshBMSqg5CS5TKnsgIuQOxCnChMBWmz5ovqL8K04j3hBMng8FG6uZypJlv9bjOb/OL5i9Po2dPPOT27gFbwnaO7PDg4YFmWSCkpm5rxZkleN8yKDYO3fAZJRKsrZGCoU0e2dqhww8v6Q6E8+Z7viYvR8P5vVXH16uHl30/47NNjpqsNurZEgU/aVCRxxG6SsCoK5nXDvyaXTLOMOFHc3tlChYa8AuEE0RZIKTCNI+/MuXRPxG69++uoGh4rXaaIquXta9e5k4xY1TWx73OZbfjo7BWDTkimNfM0RbcGTwqGOz7Jnseq0hhjUYCnBEKAaaCtHZldMTHHUccd7KvWWPKmBiEY9npsDQbgHKuy4HhxSVZVaGsZdEMOt0cYYQj2S9pgTZs34AALtgYZgghA55AWFavehEqsUFmRc3w55eJqxXaSsNfr4Xsem7phWZZsioLtfp+v7e1xmAzRXsM8uSTfrDDWISRY45BW4EmwgBeAtQ6DxmJQSsO1KOKlvuLldEpRlgSeR9223EgSpIDr/T5HW1sMOiHnm5qrVxXCaKItiW4N64VjuC/oh5JaO6x1oAVSd5BOobJXOZFQxN0O803KYZIw6vWojUGbluPZlHVecjKf0REeZ4slxD637t4gcHA5zsgmGVHcIg8EnudopcOrQ5LikG4zQk1WCybrDUXdUOmWQmv2g4BICBZ5ThxGSF8hQ8WqLImSLl8/usm9u4coKZisJnySPcepKZ7X0lUS3Vh8EXBNbhOLHurmN45IP3vOnue4di1Gh4JxmaK0wzhLMuryzt277OxsIX0fKSRR3C97w93HUgj6vd2Hnduj7lg8xbhzrKyRQhJ4IUr6CCFQRw++TRh1qPP1fw4SwXxZMXkxI4ljbt4bsXPrwA227/wxCKMngOfgS+EFf0IIBt3ux3eS7Z+7sXl3nBeY3hQhwPdCpJDg4N+FYbSjpEdluAAAAABJRU5ErkJggg==);text-shadow: -1px -1px 0 #FDF1D4, 1px -1px 0 #FDF1D4, -1px 1px 0 #FDF1D4, 1px 1px 0 #FDF1D4; background-size: 20px 20px}#empireBoard #BuildTab table tbody tr td.building.stonemason0:not(:empty) {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAUCAMAAABPqWaPAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAGBQTFRFAAAA8d/I6N/WzcS26NG27Nq68ezjv7Gotq2fyLqk1s3EqJqRraSWsaSW2sit0c2/pJaIrZ+Rn5GDqJqN49bE39rR7Ojaloh639bIxLqtsZ+R+vXxsaia39HEjX9xsaSaTMajHAAAAAF0Uk5TAEDm2GYAAAAJcEhZcwAAAEgAAABIAEbJaz4AAADqSURBVChTpdDRboMwDAVQcBoTEqgDrkMAk/7/XzZM2tpufdt99NGVZTfNf9OCudhPYBE6138g69GHYeyvf4AAKYYhTL/Mkgf0M08hcnijmxFJZolVIvevlUwisHKc47u0IpT9Skhb7cSntAAnGNxFtdpTEmTyhiTtnlXHsb+8islIaTfzKcrXH/EkCCbt3aLOOVX9llSPSfkA1BLU6aTuHNsWs5cE4gXwXnjbmL86FjA7t66GThnKzMxx2yrcAKXuHIPr/ClLpfqgxh6ShOKkyjG6nO6lLHwe2xz1J55inIYwL+EALqXMNcsD5M0SNKvkKqsAAAAASUVORK5CYII=);text-shadow: -1px -1px 0 #FDF1D4, 1px -1px 0 #FDF1D4, -1px 1px 0 #FDF1D4, 1px 1px 0 #FDF1D4; background-size: 21px 20px}#empireBoard #BuildTab table tbody tr td.building.glassblowing0:not(:empty) {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAUCAYAAAB4d5a9AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAASAAAAEgARslrPgAABJxJREFUOBG9wcuKZGcBwPH/dz3n1DlVXdXVPe3ETHomMQaSjYLEUYgv4CZP4VpGwQjZZOvChxDyFBJcBATNQjfiIgbNMEmc7uq6nfv5bjJCgwxMsvP3g/8DwTdw3RYQ8zg1b4cQTKMqTIrkTE4Z+2egttUdvo7ma4Rui9Sm7Jvtz7tm9+s2SH1QkozAWg1jWc7fTYmP+AaaF/DtBill2da7R9vD7v0ntbNHc8EkC3IZiJnUImXvrBYnH3ddPc1mc15E8wLj2CGFfLg97N77y5Wz2zTHFBmZkURheDJpoTr/y0Ttk+8/6XZPfGbzTxIcdXnG/9KuvTlxU/+DPkg7qgxFYiGGKa+qP17dHO0XjTePW4nMFGVISJmAQKsE/x5U2Q37D1y7Cy/Nzbhart+NKX3Ec7Sfuneaev/h08kUo52jCTgx+NLzGyPiaYjJxCiwUqGVJCZwISGFZDvBv652srm5kt9/sNb5ib4/jAPP04Pz+VXrsn8MpRG5RYrERmhzMbXvr0SDjgNSFCgh0BLGEEhSEBP0XcfjL27wfct07zTFRJsQPE8HNXurS40dMcgoUVJQY5icVrUuaBNEEiklIhGXIkSQDrabaw6HIzPpyYUXWRrfPFuflq69aU255paMQp4GlMiNpLAKKUAIGDHsYklnzojSMsXI6CISiUqCpm7Yba4JbsLmOcJkwo3tr/p2/0gIWU7NNbfkFCWNlygSF5Uh15KU+K+QQNkCYwuUtrgUiSnhXGCz3dLUNcUs5/LBJdXFA3pV2rE7vueG+mGYOm7JTPjrLA3ppm5IMbDMNTEmfIj4GBl8ososhVaYFOndwM1+R725QmnNnW/f4+TsLk6XRDsnRm9SnGwKjlvSCv+301x2wnV8frVDi0hhBD4mXEgMPoFULHPNMtcI5/BDQzXLeOXykrOLu3zZeD7bdAwBktQkNFFobslqNv/9+uTkt/fnKe0Oe77at5RWIgU4nxh9oO5HpFLkNsM7h02OV1/5Fm+9dsnd1YIgYNP1NF7Sy4UOMvtxWVala655Ro79oVnl+g+vLnV7nk082R459hMzq4gkfIhMIbDvHTElTnLNd++/zJuv3eflszmnpeW8LMi0YoySYzCia/ePur7/0Tj2PCONLRYIOV/Ol399YynB9zzd1xQ6oUWiGXq0jLTTQDNFLs9P+d7lXc4XM5QUOB+5t8z4zqpi8oLHTeTLLszGwE/L+bKcmg3ST/1PDofN7z7ftw8HNWc+K+nHkWPbU1lJZiTCGJQ1LErLS+uKKCW9S8gkaKeA1ZJ1Zeh85HpM1Mky9Yefjc3+h37qkM45u+/H/NMa/dlYYYqKRVVQT5HCaF6/s+SsynnjbMHr64Jn/rkdeFo7YoRMSVICAeQK+gBfdZpt54suqreL1T2ljbXjIjNTVTfZ3w+JrFqwynMW1rAqDOvS0IWc89wiBXx6M+JCZF1KaufZ947cS0QUrGaa4iA4tp62sKJP5heyH/4k89ni46xaf5iJhNtfMY0Dwzgx+QEjA1oLVoWhMBJSYpo8uRIYJRhcwihBTInBB6wSnGWK09JgZwsm7NxHsfoPqKt+g05SC1UAAAAASUVORK5CYII=);text-shadow: -1px -1px 0 #FDF1D4, 1px -1px 0 #FDF1D4, -1px 1px 0 #FDF1D4, 1px 1px 0 #FDF1D4; background-size: 22px 18px}#empireBoard #BuildTab table tbody tr td.building.alchemist0:not(:empty) {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAUCAMAAABPqWaPAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAGBQTFRFAAAA8d+/9d+W1rZ638Sa8dq29ei69dqD48h60baN9eOf+uzR+uio7NatupZs8d+f+uOR6NGRza1sv5pfrY1oyKRj7Naa//G6/+yftpFa//r1/+yopH9RrYhW2rpx7NGDIqezSAAAAAF0Uk5TAEDm2GYAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAD4SURBVCiRpY/ZcsMwCEUdLQZL3iQZO8RC+v+/jJpMm2mat/IGZw4Xuu6fdVHafAS2BxzsJ9IrcGawf5kfQVllBvOGrPdKTQa1nt82Wr+svQ8xprTRr7Muu3L+uGLiVvPLutz8ovrjvCrizFG26Sf9tjt3nOsKJYkUnTfzrUzVja42gJozVcr5MW+vVKeqrg4JMQqXwvICheoJkUvFJETCTxDGE1N0KxLrClqYRJ7GeASKu6uFOCJUlsRfOX1Qrn1Yr7XExKkAlCwtx/chBB0jroCRmFNbB5R57pYQzDCYHdaHwk0GQMlzZ+00Tda61upE0exmV4CUtztm+xM5HuXJowAAAABJRU5ErkJggg==);text-shadow: -1px -1px 0 #FDF1D4, 1px -1px 0 #FDF1D4, -1px 1px 0 #FDF1D4, 1px 1px 0 #FDF1D4; background-size: 22px 19px}#empireBoard #BuildTab table tbody tr td.building.palace0:not(:empty) {background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAASAAAAEgARslrPgAAA2BJREFUOBEFwU1rXVUUgOF3rb3P1725yU3TWJWohEJxUJ1aOlBQiujQiQNnIo6c+gsExwqCv8BB/0HFoQNxoKK2tIJtKNUYaz5u7kfuOWefvZbPw4M7n/rRwY9/zufnbw/u4u5yPjt55+jJL48e3r3tR38/OJ7N5u9fXKzicrHg8PHPzM/Pbx49+f23+z994wd//JDPTo8/12ZjjuV/r1ruvhra7mbq2tdy7r/ou9P9jY0Gd3bykL4U93erKk6fffH6xOz8s747fGU6XrPVLDVo+kQWhx+6FLcg3nDr7VhD9lDqZfessaxxxljGh3Z1lrI+kEJ/jfHoA8nHm1EL8ICWLyEHd95zqZ/HR9dwNmmaRF2tqEYVcWMPimdoVwOr0wUXXcBCJPhDtptjoOFiLkx2XiW2s4RUh3jbos0lRhFUM+Rt3LbAJoRYE8uBsHhEoSvq8pjg0KVMu4QYz4giEBgIPiNKopKGGDYgNECJSCQUI4oyoN0B2ClVdKJMGcTAhdSuiQioOJGBJhplFQgFuGTAgICIEDwj7SmpOyYVNbFsEHrcA9kyigACIGgo0FihwRDJOAEn4gQEJ4ihPmBpwIeMqCFqSFAigAiIAAhgCAkk41IAEQccQzAcMHfAUUkEBRHQdQd5ANxx67HUkrPiFgFFUBRDLGPmZAN3MAfLjpARG4iHJ7CbYVOcInV4rsm2jdAQyIgouIKDO5hBGpzVGlJf0vZCEyGC899caLOjVSZURgiBUAZ8GNAwYK503cC6c1Zr6DGiDEgTaXulrJW4u1Ox7hLuznIlSOWU0qG0xGGFlHOMmvVizcnS6NewWQujQiE4rSgSIlruvMxkc8JkLNS1EgslFIbIgHuHWwIMCU4ZYdzAqFY8G4uTGX2XCGVF1MuvM+gYWd4je09OiZg6irKlKnukMnJOWDCq6LQ9LBaZfrai65Vm+hyxHhF3965/N2/Gb3G+pXn9F4MM5LZFfU4rJdovsWTkQdDRCKxlnXaRsMX0yh7TK/uMp1eQ+XK1N3SLj3SYXfXh4qkW+aZz94bqE0S3Qd4AuwQ+x/P35PyYlG89tbR9Oyj36o2tF8qqOhJ3BxDA2y69ebE8/Xpxdv/aOM4QE8ymuAfAwM/I3tGynyY7+99uTLY+tpz/GY8b/geGd+pmTCUDLQAAAABJRU5ErkJggg==);text-shadow: -1px -1px 0 #FDF1D4, 1px -1px 0 #FDF1D4, -1px 1px 0 #FDF1D4, 1px 1px 0 #FDF1D4; background-size: 19px 19px}'); if(database.settings.smallFont.value) GM_addStyle('#empireBoard {font-size:11px}'); if(database.settings.hourlyRess.value) GM_addStyle('span.resourceProduction {display: none;} #js_GlobalMenu_wood, #js_GlobalMenu_wine, #js_GlobalMenu_marble, #js_GlobalMenu_crystal, #js_GlobalMenu_sulfur {position:absolute; top:0px; left:31px}'); if(database.settings.wineOut.value) GM_addStyle('#wineOutTable { display: none;}'); if(database.settings.newsTicker.value) GM_addStyle('#GF_toolbar #mmoNewsticker {visibility: hidden !important;}'); if(database.settings.event.value) GM_addStyle('#eventDiv, #genericPopup{display: none;}#redVsBlueInfo, #redVsBlueInfo_c {visibility: hidden !important;}'); if(database.settings.birdSwarm.value) GM_addStyle('.bird_swarm {visibility: hidden !important;}'); if(database.settings.walkers.value) GM_addStyle('#walkers {visibility:hidden !important;}'); if(database.settings.controlCenter.value) GM_addStyle('#js_toggleControlsOn, #mapControls, div.footerleft, div.footerright {display: none;}'); if(database.settings.withoutFable.value) GM_addStyle('#buildUnits li.unit > div > p, div.buildingimg > p, div.buildingDescription > p:nth-child(2), #tavernDesc > p:nth-child(1), .content_left > p:nth-child(3), .ad_banner, #premiumOffers p:first-child {display: none;}#buildUnits li.unit > div img {transform:scale(0.7);}ul#buildings div.buildinginfo img {transform: scale(0.7);}'); if(isChrome && database.settings.withoutFable.value) GM_addStyle('ul#buildings div.buildinginfo img {-webkit-transform: scale(0.7);}#buildUnits li.unit > div img {-webkit-transform: scale(0.8);}'); if(database.settings.ambrosiaPay.value) GM_addStyle('#confirmResourcePremiumBuy, #confirmResourcePremiumBuy_c, #premiumResourceShop, #premiumResourceShop_c, #premiumOffers tr.resourceShop, a.plus_button.plusteaser, div.resourceShopButton, #individualOfferBuildingSpeedup, #premium_btn, div.premiumOfferBox.twoCols, div.actionButton:nth-child(3), .premiumOffer, #cityFlyingShopContainer, #tab_tradeAdvisor > div:nth-child(2), #tab_diplomacyAdvisor > div:nth-child(3), #militaryMovements + div, #tab_researchAdvisor + div, div.premium_research_link, div.bd.mainContentScroll > div.mainContent.minimizableContent > div.center, #setPremiumTransports, [id^="js_offerButton"], [id^="js_orderAvailable"], #mmoNewsticker, #setPremiumJetPropulsion, #setPremiumJetPropulsion + hr { display: none !important;}li.order {visibility: hidden !important;}#js_viewCityMenu ul.menu_slots li[onclick*="view=premiumResourceShop"] { position:absolute; top:-1000px; left:-1000px;}'); if(database.settings.noPiracy.value) GM_addStyle('#position17, #pirateFortressShip {display: none;}'); if(database.settings.noTheater.value) GM_addStyle('#cityCinema {display: none;}'); if(Constant.Buildings.PIRATE_FORTRESS !== 0) GM_addStyle('#pirateFortressBackground{visibility: hidden !important;}'); if(database.settings.donationButtons.value) GM_addStyle('#donateFormInput.textField {' + 'margin-bottom: 6px;' + ';}'); GM_addStyle("/*!* jQuery UI CSS Framework 1.8.21** Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)* Dual licensed under the MIT or GPL Version 2 licenses.* http://jquery.org/license** http://docs.jquery.com/UI/Theming/API*//* Layout helpers----------------------------------*/.ui-helper-hidden { display: none;}.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px, 1px, 1px, 1px); clip: rect(1px, 1px, 1px, 1px);}.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none;}.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: \"\"; display: table;}.ui-helper-clearfix:after { clear: both;}.ui-helper-clearfix { zoom: 1;}.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter: Alpha(Opacity = 0);}/* Interaction Cues----------------------------------*/.ui-state-disabled { cursor: default !important;}/* Icons----------------------------------*//* states and images */.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat;}/* Misc visuals----------------------------------*//* Overlays */.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%;}/*!* jQuery UI CSS Framework 1.8.21** Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)* Dual licensed under the MIT or GPL Version 2 licenses.* http://jquery.org/license** http://docs.jquery.com/UI/Theming/API** To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=bold&fsDefault=1em&cornerRadius=4px&bgColorHeader=F8E7B3&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=ffffff&fcHeader=542c0f&iconColorHeader=542C0F&bgColorContent=f6ebba&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=eccf8e&fcContent=542c0f&iconColorContent=542c0f&bgColorDefault=eccf8e&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=eccf8e&fcDefault=542c0f&iconColorDefault=542c0f&bgColorHover=f6ebba&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=eccf8e&fcHover=542c0f&iconColorHover=542c0f&bgColorActive=f6ebba&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=eccf8e&fcActive=542c0f&iconColorActive=542c0f&bgColorHighlight=f6ebba&bgTextureHighlight=07_diagonals_medium.png&bgImgOpacityHighlight=100&borderColorHighlight=eccf8e&fcHighlight=542c0f&iconColorHighlight=542c0f&bgColorError=f6ebba&bgTextureError=05_inset_soft.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=07_diagonals_medium.png&bgImgOpacityOverlay=75&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px*//* Component containers----------------------------------*/.ui-widget { font-family: Arial, Helvetica, sans-serif; font-size: 1em;}.ui-widget .ui-widget { font-size: 1em; }.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Arial, Helvetica, sans-serif; font-size: 1em;}.ui-widget-content { border: 1px solid #eccf8e; background: #f6ebba url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAfUlEQVRoge3OMQGAIAAAQaR/Iiq5u0oEhht0+Etw13Ovd/zY/DpwUlAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVBtVtsEYluRKCAAAAAASUVORK5CYII=\") 50% 50% repeat-x; color: #542c0f;}.ui-widget-content a { color: #542c0f;}.ui-widget-header { border: 1px solid #ffffff; background: #f8e7b3 url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAYAAAEwK2r2AAAAY0lEQVQYlaWPMQ6DQAwER/v/7+UhQTRH7N00QEESiUAzki17vOb1fEQAR8QDpSaUmhHkYwSAb4LEKD2vAryc3/2JpFC8IDzWfHgg0qcEd47/haT3VEZxbWUKQW89GhFffeEi3kGvSQXcQU8oAAAAAElFTkSuQmCC\") 50% 50% repeat-x; color: #542c0f; font-weight: bold;}.ui-widget-header a { color: #542c0f;}/* Interaction states----------------------------------*/.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #eccf8e; background: #eccf8e url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAASklEQVQ4je3Puw2EABAD0fGw9F8KFSFqgJTgCPhEFHBCmzxN4sCs8/QToGmaz7JvC5JgMiAnhbEwjoiFPpXUXda1SPyHM03TvHEAd0QJtjgD5PAAAAAASUVORK5CYII=\") 50% 50% repeat-x; font-weight: bold; color: #542c0f;}.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #542c0f; text-decoration: none;}.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #eccf8e; background: #f6ebba url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAAR0lEQVQ4je3PMQrAIABD0Z/o/Y/Wk3RwLBSqg0KXHkBKlkeGv4SrHd0AIYTf8twnBmEkDF5IBTMxlupaM1HB0ht7hzMhhC8GEiwJ5YKag9EAAAAASUVORK5CYII=\") 50% 50% repeat-x; font-weight: bold; color: #542c0f;}.ui-state-hover a, .ui-state-hover a:hover { color: #542c0f; text-decoration: none;}.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #eccf8e; background: #f6ebba url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAGQCAYAAABvWArbAAAARklEQVQ4je3PsQnAMBBD0S9l/8kyTFIaDDkXBkMgA5ig5iEdXCHafZYBQgi/5ekXrlmFpQNLxmDMTOv2rrU+kHYYE0L4YgB9ewvfYTVHjwAAAABJRU5ErkJggg==\") 50% 50% repeat-x; font-weight: bold; color: #542c0f;}.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #542c0f; text-decoration: none;}.ui-widget :active { outline: none;}/* Interaction Cues----------------------------------*/.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight { border: 1px solid #eccf8e; background: #f6ebba url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAjElEQVRYhe2UOwqAMBAFx2DlMbz/kSS3MIUIWij4aZ/gK952YZohu0y3zNPGOWur3Kcfxsf7D16c5YBD0FUOoDjLAdeKHeXWVi9BRzk4f9BVDqA4y8HrBt3k0sEveDqo8nRQ5emgytNBlaeDKk8HVZ4OqjwdVHk6qPJ0UOXpoMrTQZWngypPB1Vu38EdG7NcOPXFHAMAAAAASUVORK5CYII=\") 50% 50% repeat; color: #542c0f;}.ui-state-highlight a, .ui-widget-content .ui-state-highlight a, .ui-widget-header .ui-state-highlight a { color: #542c0f;}.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error { border: 1px solid #cd0a0a; background: #f6ebba url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAABkCAYAAABHLFpgAAAASElEQVQYld2PMQ6DUBTDbP/7X4grde/6GACpjN0QS+QkyhC+n20CeI3MQChJJ4GEka7LEtkiRsJF2llw0G02SP5k0oxPOP2P7E3MCpW4kdm7AAAAAElFTkSuQmCC\") 50% bottom repeat-x; color: #cd0a0a;}.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a;}.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a;}.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold;}.ui-priority-secondary, .ui-widget-content .ui-priority-secondary, .ui-widget-header .ui-priority-secondary { opacity: .7; filter: Alpha(Opacity = 70); font-weight: normal;}.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter: Alpha(Opacity = 35); background-image: none;}/* Icons----------------------------------*//* states and images */.ui-icon { width: 16px; height: 16px;}.ui-state-error .ui-icon, .ui-state-error-text .ui-icon { background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAADYSUr5AAAA7VBMVEXMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzMCgzrDkZjAAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAAPhUlEQVR4nO1djWLbthEGyUiq5YSSLXtp7FpLOmfzkmxr126tmi2p03RJ1/Xe/3EGgARxPyAgRbIk2/hkSz4CJO4+HsE7AJSVysjI2AMUUOxahZ2iANhzBtZWr4BoIRSYAVN5u4QwDwQDRbcwfUi5KS3wFuDmFnQLa4Dtb//cqktwD5QEFFwfUs7PoCCA7y4bEJVFizcIob8KmhAplwwqVjt+9FBl3uINQniwEiryEyw9JHqGpQdEFNi+B4QQ7QOiHhysIPoAxUqxvdvvA9K42bsAv4S2fxfYOe57IJSRkZGRkZGxx7jxSHDHcRBXQMTyIjInBgHwBJ/bEx8PEANC+uhbpSSggCBAVODVabpI1S/k4WLZpTn6NpMhoX9Y40hxYERFpMcqUs4AloCtDQdID1YhnyXZ2hLjAYWiO9Dy1PDB7tPhIqLx+uMB8grZaR+Qxl2/C2RkZGRkZGRk7A7rBf7J0DR5/LUTjzUPIPSPGvQJiVJiB7kcQCiUOJrcFNtDZIf2xarQ3aGvLNxAVIFAabz90BFiBIlycTBhgWwOWCH0FLYHlPqwHaCvcIn2ZbosCevfPTRiFFcgvHukCjWwrc3GrGh1fsAof8EaUReKXkCB4/MzFNo97qLpFiKFYv/kNR5YQxQbQEofkZ2OuEOHqqT6gFTpru8CN7x/+jaZkZGRkZGRcV+x/rLUNcMMqUAscgnFocmpqkTzqymwVAPxfJ5PnIUUQOUKT04tEdWZyv3JCQSn96WS4pD97QfyW25A7NhSAbyhmVj0FEltA4vdiygBibXhoUYgykCUP7HwPTDeEqAIcHVMkZg7Zx4k0uFANs63hPQXCoRLAwdgGsr9Az7Qv7sgQGgg1aPl/BJLExBWgG4RFRLFImGmIquPC/klEGyCG0AuAXaJJC+B8FVe9NYQDEcXB8g6AQcjYJ1goJIggHWCrFR0S6kRHN5+4BzFi8NaoN35NRxUvL+JJdZr7PV4wK6fj8nIyMjIyNhr3OxdXAYq7FHZwB6bDSzSh4sF0utChqo0NAvaT1hLzXwFinmCzmeDucEQK18TTaQoFgP7bNC+RZ4OT4T6gQogDFYk+1QxQlj19QGSAWKiLYp8P0Ag1Gbz1ULfWHLg9iUnQNK5QQJcukm04blKLH2GgEJCY+HzXAZWCvHKco3Bp6MIaCjSXXRJyOxeqhnzEaF93MfFGW/O16ZvDL5TM4MJIjujz/cHypkQuuzRwWJ93BKdIt+wCRAPl9kpe2Ikkb2mFgGlxh/i40d3EHfdvoyMjIyMu43ylt/IAmGHnN5iIt7wKfbv01RAcJqFRl9lcjYQSnbQqKgC4fYOwSJt6N6trE0twZ9kN/PqNpTQeICvr4TLsDYC06U7BMjshS+v1/aT7IwQYD5LcgRQXMT2FrBfBLjZ6151jDElk9tPFfpUgk2yregusX25BJbwAFEfM+YI6vGAti4bTtizB+TjfQCrERyhKb2X8D6A9wX75P4t4neBYJeP6pdhg/gQl8MWvytzeSTjgOQBynQdh/iXKdxOrGJ/RkZGRsb9QmXihGr5+g8GGg9uTh+KoVZuNIzV+CwRucFBEyr1mVjx4irOxwM1BhirB6Q+2eNQi4eqR+aF6mELtoMzCR7V9RAFe/ZvQogNiyY8FPSUTFsLp8TeTmMui5mtw7bcaT0Yw2AA4wFRQIlkgq+1DQrNhkmoxS5Jq+u6bMAIGRECEANgXHTgWzwgBOhDH2l0oTQ4D8D5NMktBgNywAEMjo8rwATMZrPY7JGxBoJCkIBDQiAY09EGTUiBCWkUpISfGPR5AAwBfZiG2z7Ayc1yeKTxid39xBNwfHr4O0LA48ePFTvhYrF1r4tyAoz9n2MCqEuBtp/6GDR0oAYfG/R6wJExHYZHfhygsv7fEWCOj4bYmsP5A+pL4MkTfAnMlD4F+r3bobKvTyTA2P/w7PN+Agq2QW8piqMCpTBwenoKvX0AHGkGtP2YAPvTEWA7QUTAudn7/NxtOG46wWNmDtpBEkBzN7rBEvAFHp+YTB/q97qPAN4gHFqgBi8uLsC7qPCA6mg41G/+ErByPwEXDdoNxRhOx+M5jPEzQugS0ht+b1/Y3gEnYMAIAOIBE29/hIDucE8tmMsNOgK4B1RHFu4UCRlMHzv0xzcajcfdXWDs2h8TArBCkoDUJYDLmz6w7ip3BFS0ve5wTRwAn6keMA9I3QYbfSZ0DKbyt+7OXjGI1idPcfNyAyfAMlCrzaGqphYrxHocLHRJVycnfGUcbtT+jIyMjIw9x7Nn8fJSzG0TmFtO8rZT+XT3S3ub+tKJbbLd5diTVp50+zahyeHSslJ/YPrU0fuazrZO2CZ92/ZCCVXlGRiZKPJyPPRxyIFWeXLQBXJBKiq/3divEAN6ZwM200Qjm7EJBZeWm/PRWVCbYK7s7u2l4XaCz+lzgOfMfhMonXr7TWzeZb98dbgIzBT8Ub8eYYUqfZ4rVJ/MDbIDgPqTulJ/xvntWAtjIisqnwxOkGz0n077FARoY79GdA6HPE4rOy196NiMWHTZlSSApcOgXpy/fHV2joaNKu3ffsAnRcBf4K/6NcIG6tIxk3HyoXPjASqfUgXbYN5PzpL2njkR9QMjeDTVHDTCgRuxOegjoO0FvKzP/t/gmVdI24+G7NIe8JX6Wv3dDyldMA+4YB5wwTygtd+dwRqaTqrLb1l73zTSN52CNpnHuQOYPsDblybgxfkXh/oVtr+N1DEBJdhRJyd/Bd/q1z+cbNrD17iVKyajcnv9arhOkRPgsruuD6DmNPwpDNrLw2CoTgHni4yALr0L29+tiKAEIPn868ejx//8rpWP3OEOl5On9OwpcQm0MhafP/ey8f1uvDNIgGLQG8z4YO99ENgg95etwv4uYJYY8fUGHYH6j6fscHFZMftlAl9i+9XL73X3N/n+ZStOzfVfRvYXhrbdKOpEgVQTg/wsDuDD3kwOfQNMTJ5y+/ltUDWLunyxnRF46IqlBzGMY4X7inggREFioIyMjIyMHWCIB6ZNKAcXseo3vLTQTkVE7348dlwJJSz0+wLfmi8BhZqfw3D4ww/wHVLnEd5/fgYvXsDZ3MlsvYUbbnDjDZ3MN3TJG4+bxjAaDl8TBri9qxEw1ccao2wTNAMLHo2f+sjrXwb/9qHoYqgPMBXJTVfOpmrZH23y6uvo0LHSyY6fHGwKfHJlAuMFvObjDYrIqxBgQi20h7Hd/nYVLmno+eaNUm/eeH2GCuopntnhBJAlI2AHo9CCh1I1QxUdAbqqGY9BBLwyc3W4wYVhvY8A4BoIc1l5M7vnPWphZW9/Ses3n37y9a0uGqFwFQZsQQbd386DogpgEk+dzynsAZMJXq8+ns9NeukJ0PYrNATGGefJQlhkLo7DTXr+y3bNiOsDvrXTz/C2q1DXZH84iRNwrP88Nj+u2DjYEE6RBxD9Knj16ujVHC67A7422o02RwD3gB+t7EblWvu9geOFxSnd3ROmT+nJyQkhoPlsxVONc/3TEdBos+jtA+ZzcwHgTvD1cDjaYCcItA8w9i88A8b+mqSjc6Pvqd998QguEQPmQMeo23ODN86+p0/bn1buBkT6+oBhNZ/PYY4ZAHYb3PRd4LkZmPX68NRtMZn4ASvdA+qf0jMA5MP9eeg28Nug9QiLnj5A33U1MAES6xHAUNpz/9zFAYE1gqQDMT3G6xI9pwdw/aIgKoHCS1YGlRnSq9yCjdXjgN3j+N27YyROHxmuNAeNKPpYuXIyIyMjYy0M8eros59MF/PT2c602T7eA7zvhJ9dr/vzDjXaLp4Yc5+0wllzxzHv3gdmMMM7/CcQzKgVBqYTmFn+Z+mKm8J7k0A5F/jgCfjQ1WBhQyiOqD0lYuqBb+AyzMw9Ha2G3m6c8qQx+AlqnIceQp+Sb6i9UyQWbhr54+AjnZ0VzW2TAN0DmBT6PWmc6jDBE2PK2u+nF43dyP7Q0t1pOcX2fdRvH0mF2Q4JqN35rnHjVIeaXfIAVyUuw/aHCCiJy9iF5l1621zweI8KZrPZ9iJdb7DXJ3US0OSrtZ10imt7wHY7QesAzUMz1oZ3noB3qFJ/H18j97FYuw8QDN4oeKf30osvcSW2ExLo+VcbuAuo/sUIm8fMG9xocO3Ea19J9gFYivnHJ2KnyfovZlgW3v6ySx32abQiIyMjIyPjhlFDTLxpwIgFMnTp6A3g4IDKNY+stkwAMAoIAbasxBXqUWneSAWTMjt50lTqT29rFjvXohjsDNm2YPXDFlICmrJOZ3t6tHm8AiEAl0sCeLIIorIRt+cFbew/QRsoAXb4o1XSfoywzm0FTMAoYBNvLyFu8v8HpLBtD1iKgC17wHb7AI6d9wFbvguAIGTHd4E9wG7jgIyMjIyM+434c2R3HeV/Ffx6jtZu6ijl8h59T655jhR+rdHzDOP6beABCheb8O8/WFXeOyzgf5oAhVYnKxP7CwaAf1afJu8bSrhS6tdaXeGnrRenOqOlz9d6QwYnA/3TLd+GE7qe3chA5YF5DfY0vK3adfOX/gyNp2BW25MHdxAB9qvRiiP3/XpQQFGYDU4+Mi///XumXG8pjvaUAOsBGlf4jJt+YYEzeEzAdw06F19R3juM7D1wita86GR0CKfDHgLuXCc4Bri6vMLdfjMc4VNSUNsdodo2xu/1+Xl/K5+az8jIyMhYG/z5gJTMF1GtKq/a3rpyCvz5gJTMl9GtKq/a3rpyCmfQ4WwZmS+kXFVetb115ST48wEf/AGcfG1iw+tWbpbS2vJ3nQxcVr3lH3z5h972FUTLzYpOVk7l5hD+eYcYwDcAnewOotrZ4OtrPDucqi/LRX0/RR4qx7Nn4U8g+qjffvuN6Gf+nC85vwauHjaYyubqvWYKY4VEfSUMitdnBCT1Ue63R5439m+OgCn6DroAAaHPVQxKth/wkJgHmG8bmQMsT0D6EjDfvhVRKO3ywOQUgRA7nmL1uawZmHf1k+DPBwQ6NdcJ+k6Md1LA5f5ONdhJ8vZ5J0vLHT99srkGOjmJbd/G1r2Nriqnse1AZt1AalU5jW2HsuuG0qvKGRkZGRkZGRG0gcONyXsP9v8D0/IdJADiBNiXl3327WRGgOL/9HC/0XwlIURkRhC4tz6Z/fu7fUf2gHvfB9z3u0BGRkZGRkbGplHcnkgguQoSqtUXuhbs/wPtMwqV0HUJAvj5vk32b8IDuL23yn7qAXZ5u32hbRX7d3o82Df1FZXvbh9QOfhyxldr/+3xgXU9oKmvsHyr7F/XA269/eveBXrsv7N9QALe/tvjA0kPWAXGbvebkbHn+D/J5nMcHzx1UAAAAABJRU5ErkJggg==\");}.ui-icon, .ui-widget-content .ui-icon, .ui-widget-header .ui-icon, .ui-state-default .ui-icon, .ui-state-hover .ui-icon, .ui-state-focus .ui-icon, .ui-state-active .ui-icon, .ui-state-highlight .ui-icon { background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAADwCAMAAAGvTnpvAAAA7VBMVEVULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxULgxwjo40AAAATnRSTlMAGBAyBAhQv4OZLiJUcEBmYBoSzQwgPBZCSEoeWiYwUiyFNIeBw2rJz8c4RBy9uXyrtaWNqa2zKP2fJO8KBgKPo2KVoa9s351GPm5+kWho0kj9AAATX0lEQVR4nO1dC2PbthEGyUpaqJii/JgbZ3bTLNmyJns/Oi1bM7vp0q7r/f+fM+JxwOEAkNTTSoxPlqHD83AE7gAQBIUYBHSfQv0XnbsJgH02A3g5ibVzDFNtlkPI1VjIuOUa8eMclOLS1uRSPBETURnOrkbmID9T9fuPyu+cSGYYKya5efeddN9TRS1H8eD4kDjrPutBpptt2apkiqX57A4gfloj7ua9AXMQ3dWvNs8n7NCwZk6bqYSg1CgNsaCBHDAluMQjcihEWBNYSxamUYNMs15KmwMUKhm0S5UBwMQFjcqxelSYskHBtLC26X7/eWQtVB1MaWXzF1OrUyhLgOrFiBwalDwg6+tigfzbnNbM40UlTrrO3clTftcuX7jyY9gkv81RVWI9K0OxNa8Hruw+EFctu6xaqDhCGkjQ2hyMitiXKyR+7xSqx6u6AitlpI3wrBj5OSo5xv8ZShoq5VZE+p/hb/OVzuPHyHGXQLoug9b4af/OzArAqtlvq8PidqZSflOYigVIpTZ33192wQ1jHVXLgjWWeZdAfhn3UteqH43NI9EGSjns7CJ//g8h6o6++UrLBTrOZJUkhy4NxDNAblZld53kJZl34z4jE5cB0HbA5RHnzg9Txud28wwG4aS1pwzKH7t/IyxlEvW2XVQLcf0vyeCWfL9j39vk95iA1alinhtmcHDr34tiSDECRgCXwFMgynMfrB0PlAxMhdUoPyKDo7qq2yNZHa+Li9BQoynz/I9DNkNcFCQSVi2aQbTOJA7S1tIXYpwM9t+PgBYzwFI0mNdt9JjxuGBHXJuwuJO+fq8KYzpDLtDll1XoYZ6k53P9dUNdNzwQZTcsvLw0Cafa0snfyq/WGVUVDo/VxBxXF5ynLZn6zUO/FvTIdjeiw3VUeyUqv7Q5+dIiz+W/VoTs03r+4U/ERpyHVbkIFAU44dGMKQBZfrwrGeAl4litNO9TVGFXRN1TDlfTyGVqdQaVEV7T0ZNJGO/NTQ9nL18aDk29b2Ui2SaqfhltIIMn4gpz+k+TiNNXkjf0LYWzf+DXO4UzHuF49WYS9pIIN3mjcoga1CNDuZ3kKzlja00XXS71OHFZjBhkI1K98WCQ/QC/r9n3qudrYVVea6aE9iP8L1A/KnWuJMZ+jwiyz+P3SFkcguW26os1MoON1p+35uAIgB3fXnzm2hscgvkD0PBi23t8YcEsP2u+gEUvdsXAg4VrA0y2zD/ZBgCjbz07ZNd4bBvYHQMPFcBFznsTv/hBOj9hkE0yvyRHcYZCK5VoEwGHQwU+dJBlX08BOMGx8MBk+I2oMHdQbLZFkGDADfVBQcmCx8Nb6S6fwJqRehFktWEAVsSA0yNP5DQm8wcW6tNr9D/T6PzGVgS2gP3iCoyPB/L4YF2A2ZICUKoZI06GSjdZYhdlxzeOLANIWxfoGkaofzK2BDRlWaq76VMAuRDbiXyhQiYTtV1L7hBS64vLpRJ/xbYMQRcPVPRT4802P5ruaHvrAv3BtDmzxwz3IsFcru92uL4GysByOVV7H4Rx7Xaqax2xvqiNEQId74svvjAcglfgwis/o+vnFdpxsCJHV8uomprlYHfNpPvrV79B4+G75+dG5i3NEGBh0+urAGWrXZ1uItAYmWJNQl28cCs1pd6/AX+c/Q0znEddU8OOLjEDWWF4qcsp8d7DgweI1Vv85bs8or6kK+g+8scLc22/Ed/oVI3WF9iGKrNzybSd8sQsS9u2sFyqiPXbaWpgH2Xg3x0Dclm+whsRABfKOXlh2tCpCqhMo3wGz54pBkxbsAxUN0ejCKbq/xXAt/dS/BPA9VC+EFC6jiTkrS8w3Raj+Sp2U/vcdFdGprxDRcPbAOa7LwYyOtEZlWh08EyUjdA/GtU4Gjs+bDxRN0bi6HbezUEZQGzNwIMHiB+NDMugG1UD7o4YwLne9MIbbEYGKNT9dIA2gLs/ALzrc1PphlwOAO/BC/n7Vk/DuL+lE67wdleAuQEH8sEik0/U0KMNuDMF3XWkvO3+wdDEFZQm6Vh6pAX47qfXeHYGMwcMXHc/wHc/PQYyAslWXNUPjNf3xEAlocNxqJjbQEYcW6sHO6bEH/6+VSgKf75S2AReOLiEa5Y/dEuF3/yKd0ootu+mvgQCzYt04TNUmPsNG0tga4ze+ZSRkYK3DiJCPYDdAb2ZHiiA78JZt/yge6XcIk67fLbVA1jASD1QILmlBDIy9o7Bxsn1APMeG5/b6SB9cHc9sO9sApTgPNXfXbJUuC2AxWPjjUiOzI3Hc8UmphFJCWQ8eAwehjEYbs2338j4cD+Vn4vgNfOwURsvXhxPDzwDay39+UVkOhCsiHrhwPovDyfxPIXC0xVJPeBqWlCPgvVzJ0FWgPEtyGZUxuCe9MB9zUcydgZ7BdksfFhBGKTM8tg2BkGHTlnJuEKx/d56r9m6gRXF7+ByBiJW11NAm8AoCKvj9HyfP7SfkkAwkjq0nc/jio8frDsFw+P0cYU7uvrh4NWz53avCrHwyOAuOAhvZiV6HVMIUk/uyA6GEwJGl0bReIzu8CZc0AY44o0gd/9PBvIcKObhX91HzAPMHrUK2L0tqD/T/oAbEAVx56B3qorHj9VZBNJHBTSN2lQrThpbkD4EC/RmWWQAhN78BuA2yanYE9x9e1pp9+yMdWug0QXeRJ+b8krTnxr80fGjU1xeegxMBSx1Rrr8EnS8y0t5aIIQ9RN9auPZZHJmJOXNM9w8QTEwh8efewwUGHE+n+uI1zpDZKCaLpfGVcGV2b173UGlr29qUk6EgQml57CQG4QcA5TRn1EJGgbsFlOMv4AFnbEALxBdvgfNVlSXn3EMAF/XRwaVyuM5wHNFJFp3uM8A82HXGs7NjxbbRlWKSCMSv/rVCWUgCEfU5jH8Whh3ot1WNz6WbmHTT1vbzSvKgBXBye+/NByKSEYSqpteGwauDQPXhoGW9PvGT69OZr2wvcNUcHph+gXwGgvGgFZATy8vvxby0FPtz11Tf93Pjat3eL9UbtvagQ+qWkfjIwhO/iLZBsC/zWFdc4G1itWc6Lb2WDcKy2DG/aMO1vH6R3t27PjCtIXpP75Wrum0V1/Bjc5GWc2paSvKVSeR8940C1az4gykFNA34hvQJXkPVGDrh6py4wHtoY1Y+WapTwOfBt3Ob+WkQI9BG28+V/sLG+N/bgYypUt/Kt0XZsemTffmjcloOqs3kACgNcVN+ivQjx24eYRO9uwZPMOKUAlMb27YyT4DDJBoOh/HmXbeGkl+hTnp55W6SyA1ZroNZJjnG8S3AGPO9t89njijpTk4Mw+ruUs0avB2BrDuEf+mHHnAE2mlfBlAdjBjThWFg8z2++/ZAw+btanGdivMqTEVhlea0uW7ckrbzTw9UZ2dbbTjWz3h0RgG7igDlkEzTBiQwKbdStXgTB7hhRlYCQiPzMhIAxvLpsnBNjrVrRqhH3ppSv1jpg8nlP9mJoGJj+lM2910mZzNBwDMdn0xw+410wzMfIXDxiWb27aNJeAy0PHvb0PAlm0g497xX3iqXIDt3mO0KVb/A2FGszM8bg9GfHcGm2EN+KCVHh8sl4V+mL7Qy3MAS/NwPezy9UJi1op2pjkxi7ZuJWPR4+4O7+H9TvPLWBs4H+DuO4Af+txUuiGXQ40JrxLu6wE3la7HjTCgmz3OC9TDdhDxd0/Tob+I+/PvTz9h/JuYAjFzAueCHHjHMjIF8PhheogycCPiT9vjfEBVVLq3nced8f9g/FPuHU3PXAG+Czdm3sGA8wHufjfgptINuRkZIfD+YOCyWe/eGlFQEDIg/P1B+2PgviWQkREg3dYO9FRZwACWe6in2gwD+NBtV26B7kElgAwcvPxEGyiKw3GQ8QBRHPv+9K35692kXajXyBZe5INKRO5gouVBMPIoIHi4koV6Ebge4cnDAoLIQYl7hCyKn8naK4CYgHorGAqgh4HDC2AE9tsFeBM8eBfIyMjI6MfeleD9qjw+DnBbmxGRCDy6byf9ChVhdn1mtVBLnIeTCUB05MOieGZqxDigEH4CP3xo2HBQAYzAJ94FMjIyHjq2XnbfMoNgdtx7J2CD2wT9CfANgl4ZfTlAkCNwisfvzz3yLCewQEgEmgxDflgCSAXGyh8Rg1UwfMtiT+KIgHwGY8n7r9BwCT2BkfRrY9sM9pu+dwUqIyPjoaPgkzfRf0s+EhCJ3G/HvdAEAyRc0PnYCIXGz0blRotPziJ2mZcCvQyEwwaP/3CUMzDskBGARqd6HDgHTIAmMnAPR4c+veMwVn5Yg1HBwQKDT7L4rH6CryEERfAKFLQFsJsMMHQbJNrIe4oPCgiCw/wYf/wKRhIwjnsFEEbO44CMjI8ae+3BgZliWiksXKYoPLsSYIDjwDDz6W+wjN4XviWMlUrewFZBPff/I0rWn9+GDPeZBUwLNACCiLuUAJ5sTwsBL9yrYsSqhwz1iShYgIm0ACaAsIXs3K75A5lgnZ7dGBlYxx9a8hkad/QPmzIyMo4O4bvWPipEZxa+4imDCRuf//HnMIcV3bHcEYXYKrJvdUooPbPk2U3pll4OIDhJBVYgfSytZoQAgvj+AoU+rSshAL4+gZU/mgYghrpAtL2T+GX8akLkl0Q48v4EcE/PYWdkfBxQx1SucfLOZ/Ik0c/2x48POGmaKdFz9jAsF0N+F1wLOlXWVpo2h+dVuApcxelg8jc34eZgVjGp5QOE9cRjQARmhE4vg8mqx79mnpeIHlDKg1ZdKmiaotTADLrr4Zd3LpESAOiXooN7N7ppAUjrdX3C8blKbjOcwOnF/OdABSCPdmX15fUP7BSxYr4AZPU/d+FQ+hKFgnnIV+EVy4KsAMHFxUW6BcBy2bWiqXlJvCq4Un9WADJ+RQTwVKZ++hQ9TuXpf7U4ZdUhCSp76CxG8C2576EE8As6Llm0j8EdZxMIICjvmQKT+MReIS6AaqmAHAY0yF42Be+K1LXtAjWWbw8YCRj6Qn18fvpbAA3XXa4RO0NVtQpbvFLaKYCR0WGr0VQ+8zfjoeHLL3uDS3kmqR3Nz6TNe1FPnc551CmRxSOrw6K9r3L+z40Sfo7pYSHBJle+Havreg1az9Tsob2NVOSl7delPHZoQdcnXgK89NmVZyK3F5iZttOWv4LxB3pUQNYDvnr6+s3VUzJaqrqhEzl9VAsgVWH4Lfyu+8xIBaXmrxlNzU43KpqQ8NZn0NgxO27xy/sSSdIKZnDSQmslBLIFuPoFAtAC9wTwi3n3IdWnI11ACVi6BDXYQvoP8Jfu81e3QOJfYUVXjCbh6up1QMPRqKKcZUO7Turntbc2sCEAZPYfWbvSR0Yn7Q6wgf5zw4DrAnJBia8vWCbkxWbZ9dOCn1gddKmSVl+8/vtCiMXfXxuylVe/b/pe94QdLdY5DbRt85HfGfeOKR2MSy0G133R97uMWMNsOn0LtO/3bxsbQtvlVTtNBfI48BXXwxdOKf5T4l9OC6+mXQatm67FzHJkyZXO76nhli9OkYev2/J0gDOrnQ1fyUK9Cvu1Z1rWAwThej7nBLpS9MrSpR9fu3Ob/F0XNAMiwIkCEYBvReTAjUSQ50F3VboQVADdOIxIqr65kXbV0m8lc25cEkiceSTItAD+rWgci5V64OU0cb1SuPCTO3l1NTo/P/cEQASnVicunnZ/bIFjlWwBNzfd7Jxez9rnV+y+C7yUo1Fn97nNWi0WfyaFNd1f6UQAnoM/5+gxRfmbkakSiEKiBcBUAqLnDN4TTu/uTgnZnshxSokvAgt7oF6B2WL9ISPDx3sg58x+h03uu3vk6LB4Ly0HSuCD7m7y/wcbgynBmFFsnGprPSUf8eA0qBcWuNc29BjdfaC7/tJ0vvcK93lYsJONu+gzS8iKN0S3Bzqrq23Z0vWN77t/33sRzrwUhxWAqzAtvJ8HMttUVfdM29YCUMSG7/FYH0Ag6deOfE0jsUSE8KsvdtAFehYfDoEf5FgU3v1wnzwc0SAlI+PTB8zY7MRfJd0DHj3y6cYvrTnkKEAYQ0CF4AnAhFlNr7hrZsAj2C0UcsxAw0Obyq1kOAiQ5GFHAocUQKrGjDygAA7cBfhA6d67QEbGg8eDfj9s2c1s4ceG3C+sm3dskVQC9dLCTJUWG9LHhlK+bvHHRryit5NXF2Lm30Eli6qT80n3Z9ep4RzO6cK9pMGnJ/IzOVLNXur3TVIB6Fax8tahiQC+1sBV2XXpo0MN8OrFK9rm1TCgacg9p8hZUxkZGZ8I+H2AIfoW6dvN6HXL25YeAr8P8AEskFYvQrs19J2Kr8LvLA2cFsnwDy78Q7J8Ab3hcvmUhfu0zsLd1+gDkLu2CVpeO/vSMHAFJuOTaCLiBvHBjz/Ij8BvgpY3fm9swmEBcAYsbLlyX1Wa4WHaz89GSAgIXKy0gHpo/Y67sQLg9wGG6CtHX21Cr1vetvQI8PsAQ/TVt5L+9mpTet3ytqUzMjIGYHTG3uijh5yr0+k6+PvyhJ7PexUU/QIQ9LnA40cWwEPvAhkZGftA/3tFjgqFGDocrRpc0+XV/ahenOIJAAr8ED8qADvbojmAL4BCvUFvX/zuHNsKQMcXlP6IW0AM/V0gUf2PtQVsC3UAp/lmHDv+D/qKcxyg6AblAAAAAElFTkSuQmCC\");}/* positioning */.ui-icon-carat-1-n { background-position: 0 0;}.ui-icon-carat-1-ne { background-position: -16px 0;}.ui-icon-carat-1-e { background-position: -32px 0;}.ui-icon-carat-1-se { background-position: -48px 0;}.ui-icon-carat-1-s { background-position: -64px 0;}.ui-icon-carat-1-sw { background-position: -80px 0;}.ui-icon-carat-1-w { background-position: -96px 0;}.ui-icon-carat-1-nw { background-position: -112px 0;}.ui-icon-carat-2-n-s { background-position: -128px 0;}.ui-icon-carat-2-e-w { background-position: -144px 0;}.ui-icon-triangle-1-n { background-position: 0 -16px;}.ui-icon-triangle-1-ne { background-position: -16px -16px;}.ui-icon-triangle-1-e { background-position: -32px -16px;}.ui-icon-triangle-1-se { background-position: -48px -16px;}.ui-icon-triangle-1-s { background-position: -64px -16px;}.ui-icon-triangle-1-sw { background-position: -80px -16px;}.ui-icon-triangle-1-w { background-position: -96px -16px;}.ui-icon-triangle-1-nw { background-position: -112px -16px;}.ui-icon-triangle-2-n-s { background-position: -128px -16px;}.ui-icon-triangle-2-e-w { background-position: -144px -16px;}.ui-icon-arrow-1-n { background-position: 0 -32px;}.ui-icon-arrow-1-ne { background-position: -16px -32px;}.ui-icon-arrow-1-e { background-position: -32px -32px;}.ui-icon-arrow-1-se { background-position: -48px -32px;}.ui-icon-arrow-1-s { background-position: -64px -32px;}.ui-icon-arrow-1-sw { background-position: -80px -32px;}.ui-icon-arrow-1-w { background-position: -96px -32px;}.ui-icon-arrow-1-nw { background-position: -112px -32px;}.ui-icon-arrow-2-n-s { background-position: -128px -32px;}.ui-icon-arrow-2-ne-sw { background-position: -144px -32px;}.ui-icon-arrow-2-e-w { background-position: -160px -32px;}.ui-icon-arrow-2-se-nw { background-position: -176px -32px;}.ui-icon-arrowstop-1-n { background-position: -192px -32px;}.ui-icon-arrowstop-1-e { background-position: -208px -32px;}.ui-icon-arrowstop-1-s { background-position: -224px -32px;}.ui-icon-arrowstop-1-w { background-position: -240px -32px;}.ui-icon-arrowthick-1-n { background-position: 0 -48px;}.ui-icon-arrowthick-1-ne { background-position: -16px -48px;}.ui-icon-arrowthick-1-e { background-position: -32px -48px;}.ui-icon-arrowthick-1-se { background-position: -48px -48px;}.ui-icon-arrowthick-1-s { background-position: -64px -48px;}.ui-icon-arrowthick-1-sw { background-position: -80px -48px;}.ui-icon-arrowthick-1-w { background-position: -96px -48px;}.ui-icon-arrowthick-1-nw { background-position: -112px -48px;}.ui-icon-arrowthick-2-n-s { background-position: -128px -48px;}.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px;}.ui-icon-arrowthick-2-e-w { background-position: -160px -48px;}.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px;}.ui-icon-arrowthickstop-1-n { background-position: -192px -48px;}.ui-icon-arrowthickstop-1-e { background-position: -208px -48px;}.ui-icon-arrowthickstop-1-s { background-position: -224px -48px;}.ui-icon-arrowthickstop-1-w { background-position: -240px -48px;}.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px;}.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px;}.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px;}.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px;}.ui-icon-arrowreturn-1-w { background-position: -64px -64px;}.ui-icon-arrowreturn-1-n { background-position: -80px -64px;}.ui-icon-arrowreturn-1-e { background-position: -96px -64px;}.ui-icon-arrowreturn-1-s { background-position: -112px -64px;}.ui-icon-arrowrefresh-1-w { background-position: -128px -64px;}.ui-icon-arrowrefresh-1-n { background-position: -144px -64px;}.ui-icon-arrowrefresh-1-e { background-position: -160px -64px;}.ui-icon-arrowrefresh-1-s { background-position: -176px -64px;}.ui-icon-arrow-4 { background-position: 0 -80px;}.ui-icon-arrow-4-diag { background-position: -16px -80px;}.ui-icon-extlink { background-position: -32px -80px;}.ui-icon-newwin { background-position: -48px -80px;}.ui-icon-refresh { background-position: -64px -80px;}.ui-icon-shuffle { background-position: -80px -80px;}.ui-icon-transfer-e-w { background-position: -96px -80px;}.ui-icon-transferthick-e-w { background-position: -112px -80px;}.ui-icon-folder-collapsed { background-position: 0 -96px;}.ui-icon-folder-open { background-position: -16px -96px;}.ui-icon-document { background-position: -32px -96px;}.ui-icon-document-b { background-position: -48px -96px;}.ui-icon-note { background-position: -64px -96px;}.ui-icon-mail-closed { background-position: -80px -96px;}.ui-icon-mail-open { background-position: -96px -96px;}.ui-icon-suitcase { background-position: -112px -96px;}.ui-icon-comment { background-position: -128px -96px;}.ui-icon-person { background-position: -144px -96px;}.ui-icon-print { background-position: -160px -96px;}.ui-icon-trash { background-position: -176px -96px;}.ui-icon-locked { background-position: -192px -96px;}.ui-icon-unlocked { background-position: -208px -96px;}.ui-icon-bookmark { background-position: -224px -96px;}.ui-icon-tag { background-position: -240px -96px;}.ui-icon-home { background-position: 0 -112px;}.ui-icon-flag { background-position: -16px -112px;}.ui-icon-calendar { background-position: -32px -112px;}.ui-icon-cart { background-position: -48px -112px;}.ui-icon-pencil { background-position: -64px -112px;}.ui-icon-clock { background-position: -80px -112px;}.ui-icon-disk { background-position: -96px -112px;}.ui-icon-calculator { background-position: -112px -112px;}.ui-icon-zoomin { background-position: -128px -112px;}.ui-icon-zoomout { background-position: -144px -112px;}.ui-icon-search { background-position: -160px -112px;}.ui-icon-wrench { background-position: -176px -112px;}.ui-icon-gear { background-position: -192px -112px;}.ui-icon-heart { background-position: -208px -112px;}.ui-icon-star { background-position: -224px -112px;}.ui-icon-link { background-position: -240px -112px;}.ui-icon-cancel { background-position: 0 -128px;}.ui-icon-plus { background-position: -16px -128px;}.ui-icon-plusthick { background-position: -32px -128px;}.ui-icon-minus { background-position: -48px -128px;}.ui-icon-minusthick { background-position: -64px -128px;}.ui-icon-close { background-position: -80px -128px;}.ui-icon-closethick { background-position: -96px -128px;}.ui-icon-key { background-position: -112px -128px;}.ui-icon-lightbulb { background-position: -128px -128px;}.ui-icon-scissors { background-position: -144px -128px;}.ui-icon-clipboard { background-position: -160px -128px;}.ui-icon-copy { background-position: -176px -128px;}.ui-icon-contact { background-position: -192px -128px;}.ui-icon-image { background-position: -208px -128px;}.ui-icon-video { background-position: -224px -128px;}.ui-icon-script { background-position: -240px -128px;}.ui-icon-alert { background-position: 0 -144px;}.ui-icon-info { background-position: -16px -144px;}.ui-icon-notice { background-position: -32px -144px;}.ui-icon-help { background-position: -48px -144px;}.ui-icon-check { background-position: -64px -144px;}.ui-icon-bullet { background-position: -80px -144px;}.ui-icon-radio-off { background-position: -96px -144px;}.ui-icon-radio-on { background-position: -112px -144px;}.ui-icon-pin-w { background-position: -128px -144px;}.ui-icon-pin-s { background-position: -144px -144px;}.ui-icon-play { background-position: 0 -160px;}.ui-icon-pause { background-position: -16px -160px;}.ui-icon-seek-next { background-position: -32px -160px;}.ui-icon-seek-prev { background-position: -48px -160px;}.ui-icon-seek-end { background-position: -64px -160px;}.ui-icon-seek-start { background-position: -80px -160px;}/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */.ui-icon-seek-first { background-position: -80px -160px;}.ui-icon-stop { background-position: -96px -160px;}.ui-icon-eject { background-position: -112px -160px;}.ui-icon-volume-off { background-position: -128px -160px;}.ui-icon-volume-on { background-position: -144px -160px;}.ui-icon-power { background-position: 0 -176px;}.ui-icon-signal-diag { background-position: -16px -176px;}.ui-icon-signal { background-position: -32px -176px;}.ui-icon-battery-0 { background-position: -48px -176px;}.ui-icon-battery-1 { background-position: -64px -176px;}.ui-icon-battery-2 { background-position: -80px -176px;}.ui-icon-battery-3 { background-position: -96px -176px;}.ui-icon-circle-plus { background-position: 0 -192px;}.ui-icon-circle-minus { background-position: -16px -192px;}.ui-icon-circle-close { background-position: -32px -192px;}.ui-icon-circle-triangle-e { background-position: -48px -192px;}.ui-icon-circle-triangle-s { background-position: -64px -192px;}.ui-icon-circle-triangle-w { background-position: -80px -192px;}.ui-icon-circle-triangle-n { background-position: -96px -192px;}.ui-icon-circle-arrow-e { background-position: -112px -192px;}.ui-icon-circle-arrow-s { background-position: -128px -192px;}.ui-icon-circle-arrow-w { background-position: -144px -192px;}.ui-icon-circle-arrow-n { background-position: -160px -192px;}.ui-icon-circle-zoomin { background-position: -176px -192px;}.ui-icon-circle-zoomout { background-position: -192px -192px;}.ui-icon-circle-check { background-position: -208px -192px;}.ui-icon-circlesmall-plus { background-position: 0 -208px;}.ui-icon-circlesmall-minus { background-position: -16px -208px;}.ui-icon-circlesmall-close { background-position: -32px -208px;}.ui-icon-squaresmall-plus { background-position: -48px -208px;}.ui-icon-squaresmall-minus { background-position: -64px -208px;}.ui-icon-squaresmall-close { background-position: -80px -208px;}.ui-icon-grip-dotted-vertical { background-position: 0 -224px;}.ui-icon-grip-dotted-horizontal { background-position: -16px -224px;}.ui-icon-grip-solid-vertical { background-position: -32px -224px;}.ui-icon-grip-solid-horizontal { background-position: -48px -224px;}.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px;}.ui-icon-grip-diagonal-se { background-position: -80px -224px;}/* Misc visuals----------------------------------*//* Corner radius */.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 0px; -webkit-border-top-left-radius: 0px; -khtml-border-top-left-radius: 0px; border-top-left-radius: 0px;}.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 0px; -webkit-border-top-right-radius: 0px; -khtml-border-top-right-radius: 0px; border-top-right-radius: 0px;}.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 0px; -webkit-border-bottom-left-radius: 0px; -khtml-border-bottom-left-radius: 0px; border-bottom-left-radius: 0px;}.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 0px; -webkit-border-bottom-right-radius: 0px; -khtml-border-bottom-right-radius: 0px; border-bottom-right-radius: 0px;}/* Overlays */.ui-widget-overlay { background: #aaaaaa url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAh0lEQVRYhe2UsQ3AIAwEL0zC/qMwhTdJiiCRpH2kfPHu0DUnbN0xxjiZU1U8p/f+ev/Bm7MccAu6ygE0ZzlgrdhRrqqWoKMczB90lQNoznLwuUE3uXRwB08HVZ4OqjwdVHk6qPJ0UOXpoMrTQZWngypPB1WeDqo8HVR5OqjydFDl6aDK7Tt4AWXCW8vnTP6PAAAAAElFTkSuQmCC\") 50% 50% repeat; opacity: .30; filter: Alpha(Opacity = 30);}.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAYAAAD0ZHJ6AAAAe0lEQVRoge3OMQHAIBAAMcC/kjdZJHTI0A4XBdkz86wfO18H3hRUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUBVVBVVAVVAVVQVVQFVQFVUFVUBVUF8O8A8WdY6opAAAAAElFTkSuQmCC\") 50% 50% repeat-x; opacity: .30; filter: Alpha(Opacity = 30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px;}/*!* jQuery UI Resizable 1.8.21** Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)* Dual licensed under the MIT or GPL Version 2 licenses.* http://jquery.org/license** http://docs.jquery.com/UI/Resizable#theming*/.ui-resizable { position: relative;}.ui-resizable-handle { position: absolute; font-size: 0.1px; display: block;}.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none;}.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0;}.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0;}.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%;}.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%;}.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px;}.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px;}.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px;}.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*!* jQuery UI Button 1.8.21** Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)* Dual licensed under the MIT or GPL Version 2 licenses.* http://jquery.org/license** http://docs.jquery.com/UI/Button#theming*/.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible;}/* the overflow property removes extra width in IE */.ui-button-icon-only { width: 2.2em;}/* to make room for the icon, a width needs to be set here */button.ui-button-icon-only { width: 2.4em;}/* button elements seem to need a little more width */.ui-button-icons-only { width: 3.4em;}button.ui-button-icons-only { width: 3.7em;}/*button text element */.ui-button .ui-button-text { display: block; line-height: 1.4;}.ui-button-text-only .ui-button-text { padding: .4em 1em;}.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em;}.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em;}.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em;}/* no icon support for input elements, provide padding by default */input.ui-button { padding: .4em 1em;}/*button icon element(s) */.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px;}.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px;}.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em;}.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em;}.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em;}/*button sets*/.ui-buttonset { margin-right: 7px;}.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em;}/* workarounds */button.ui-button::-moz-focus-inner { border: 0; padding: 0;}/* reset extra padding in Firefox *//*! * jQuery UI Dialog 1.8.21 * * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about) * Dual licensed under the MIT or GPL Version 2 licenses. * http://jquery.org/license * * http://docs.jquery.com/UI/Dialog#theming */.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden;}.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;}.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0;}.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px;}.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px;}.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0;}.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em; background: none; overflow: auto; zoom: 1;}.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em;}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right;}.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer;}.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px;}.ui-draggable .ui-dialog-titlebar { cursor: move;}/*!* jQuery UI Tabs 1.8.21** Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)* Dual licensed under the MIT or GPL Version 2 licenses.* http://jquery.org/license** http://docs.jquery.com/UI/Tabs#theming*/.ui-tabs { position: relative; padding: 0em; zoom: 1;}/* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as \"fixed\") */.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0;}.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap;}.ui-tabs .ui-tabs-nav li a { float: left; padding: .2em 1em; text-decoration: none;}.ui-tabs .ui-tabs-nav li.ui-tabs-active { margin-bottom: 0; padding-bottom: 1px;}.ui-tabs .ui-tabs-nav li.ui-tabs-active a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-tabs-loading a { cursor: text;}.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a { cursor: pointer;}/* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 0em 0.1em; background: none;}/*!* jQuery UI Progressbar 1.8.21** Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)* Dual licensed under the MIT or GPL Version 2 licenses.* http://jquery.org/license** http://docs.jquery.com/UI/Progressbar#theming*/.ui-progressbar { height: 4px; text-align: left; overflow: hidden;}.ui-progressbar .ui-progressbar-value { margin: -1px; height: 100%;}.textLineThrough {text-decoration: line-through;color:darkgreen}[id^=registrationGiftDay]{display:none}.speedup:hover{background-position:0px -14px !important}.speedup:active{background-position:0px -28px !important}#city #cityRegistrationGifts {z-index:310;}.empiretooltip {position:static} .empiretooltip div.tooltip-div {display:none !important}.empiretooltip:hover div.tooltip-div {position:fixed !important;z-index:2147483647;display:block !important;white-space:nowrap;}.pirateHighscoreNextCalc .indicator {cursor: pointer;display:inline-block;width:18px;height:16px;background:url(skin/interface/window_control_sprite.png) no-repeat scroll transparent;position:relative;background-position:-72px -1px}.pirateHighscoreNextCalc .indicator:hover {background-position:-72px -20px}.pirateHighscoreNextCalc.active .indicator {background-position:-54px -1px}.pirateHighscoreNextCalc.active .indicator:hover {background-position:-54px -20px}#city #cityRegistrationGifts {z-index:310;}"); }; /************************************************ ******************** ikariam ******************** ************************************************/ var ikariam = { _View: null, _Host: null, _ActionRequest: null, _Units: null, _BuildingsList: null, _AltBuildingsList: null, _Nationality: null, _GameVersion: null, _TemplateView: null, _currentCity: null, closePopup: function(c) { if (c!==undefined&&c!==null&&c!=='popupMessage') { $('#'+c).remove(); } else { $('#popupMessage').children().remove(); } }, url: function() { return 'http://' + this.Host() + '/index.php'; }, get mainView() { return unsafeWindow.ikariam.backgroundView.id; }, get boxViewParams() { if(unsafeWindow.ikariam.mainbox_x || unsafeWindow.ikariam.mainbox_y || unsafeWindow.ikariam.mainbox_z) { return {mainbox_x:unsafeWindow.ikariam.mainbox_x,mainbox_y: unsafeWindow.ikariam.mainbox_y,mainbox_z: unsafeWindow.ikariam.mainbox_z}; } return {}; }, loadUrl: function(ajax, mainView, params) { mainView = mainView || ikariam.mainView; var paramList = {cityId: ikariam.CurrentCityId}; if(ikariam.CurrentCityId !== params.cityId) { paramList.action = 'header'; paramList.function = 'changeCurrentCity'; paramList.actionRequest = unsafeWindow.ikariam.model.actionRequest; paramList.currentCityId = ikariam.CurrentCityId; paramList.oldView = ikariam.mainView; } if(mainView !== undefined && mainView !== ikariam.mainView) { paramList.oldBackgroundView = ikariam.mainView; paramList.backgroundView = mainView; ajax = false; } $.extend(paramList, params); if(ajax) { gotoAjaxURL('?'+$.map(paramList,function(value,key){return key+'='+value;}).join('&')); } else { gotoURL(ikariam.url()+'?'+$.map(paramList,function(value, key){return key+'='+value;}).join('&')); } function gotoURL(url) { window.location.assign(url); } function gotoAjaxURL(url) { document.location = 'javascript:ajaxHandlerCall(' + JSON.stringify(url) + '); void(0);'; } }, Host: function() { if(this._Host == null) { this._Host = ''; this._Host = document.location.host; } return this._Host; }, Server: function(host) { if(this._Server == null) { if(host == undefined) { host = this.Host(); } this._Server = ''; var parts = host.split('.'); this._Server = parts[0].split('-')[0]; } return this._Server; }, Language: function(host) { if(this._Language == null) { if(host == undefined) { host = this.Host(); } this._Language = ''; var parts = host.split('.'); this._Language = parts[0].split('-')[1]; } if ((this._Language == 'us') || (this._Language == 'de') || (this._Language == 'dk')) { this._Language = 'en'; } if (this._Language == 'gr') { this._Language = 'el'; GM_addStyle('#js_worldMapLink > a {white-space: nowrap;font-size:85%');} return this._Language; }, Nationality: function(host) { if(this._Nationality == null) { if(host == undefined) { host = this.Host(); } this._Nationality = ''; var parts = host.split('.'); this._Nationality = parts[0].split('-')[1]; } return this._Nationality; }, GameVersion: function() { if(this._GameVersion == null) { this._GameVersion = $.trim($('.version').text().split('v')[1]); } return this._GameVersion; }, get CurrentCityId() { return unsafeWindow.ikariam.backgroundView && unsafeWindow.ikariam.backgroundView.id === 'city' ? ikariam._currentCity || unsafeWindow.ikariam.model.relatedCityData[unsafeWindow.ikariam.model.relatedCityData.selectedCity].id : unsafeWindow.ikariam.model.relatedCityData[unsafeWindow.ikariam.model.relatedCityData.selectedCity].id; }, get viewIsCity() { return unsafeWindow.ikariam.backgroundView && unsafeWindow.ikariam.backgroundView.id==='city';}, get viewIsIsland() { return unsafeWindow.ikariam.backgroundView && unsafeWindow.ikariam.backgroundView.id==='island';}, get viewIsWorld() {return unsafeWindow.ikariam.backgroundView && unsafeWindow.ikariam.backgroundView.id==='worldmap_iso';}, get getCurrentCity() { return database.cities[ikariam.CurrentCityId]; }, get getCapital() { for(var c in database.cities) { if(database.cities[c].isCapital) { return database.cities[c]; } } return false; }, get getEmbassy() { for(var c in database.cities) { if(database.cities[c].isEmbassy) { return database.cities[c]; } } return false; }, get getSafehouse() { for(var c in database.cities) { if(database.cities[c].isSafehouse) { return database.cities[c]; } } return false; }, get getBranchOffice() { for(var c in database.cities) { if(database.cities[c].isBranchOffice) { return database.cities[c]; } } return false; }, get CurrentTemplateView() { try { this._CurrentTemplateView = unsafeWindow.ikariam.templateView.id; } catch(e) { this._CurrentTemplateView = null; } return this._CurrentTemplateView; }, getLocalizationStrings: function() { var localStrings = unsafeWindow.LocalizationStrings; if(!localStrings) { $('script').each(function(index, script) { var match = /LocalizationStrings = JSON.parse\('(.*)'\);/.exec(script.innerHTML); if(match) { localStrings = JSON.parse(match[1]); return false; } }); } var durshorts = {}; $.extend(durshorts,localStrings.timeunits.short); $.each(durshorts,function(name,value) { database.getGlobalData.addLocalisedString(name.toLowerCase(),value); }); durshorts = null; }, setupEventHandlers: function() { events('ajaxResponse').sub(function(response) { /* clearInterval(autocpinterv); clearInterval(bUpinterv); clearInterval(conversionTimer); clearInterval(coolinterv); clearInterval(durinterv); clearInterval(evtinterv); clearInterval(expinterv); clearInterval(exptxts); clearInterval(foresterinterv); clearInterval(foundationinterv); clearInterval(giftsinterv); clearInterval(interv); clearInterval(missionTimer); clearInterval(palaceinterv); clearInterval(piratesTimer); clearInterval(rPointTimer); clearInterval(theaterinterv); clearInterval(toolinterv); clearInterval(upgradeinterv); clearInterval(warehouseinterv); clearInterval(wonderinterv); clearInterval(workshopinterv); clearInterval(ytplayerinterv); */ var view, html, data, template; var len = response.length; var oldCity = this._currentCity; while(len) { len--; switch(response[len][0]) { case 'updateGlobalData': this._currentCity = parseInt(response[len][1].backgroundData.id); var cityData = $.extend({}, response[len][1].backgroundData, response[len][1].headerData); var friendData = response[len][1].friends; events('updateCityData').pub(this.CurrentCityId, $.extend({}, cityData)); events('updateBuildingData').pub(this.CurrentCityId, cityData.position); break; case 'changeView': view = response[len][1][0]; html = response[len][1][1]; break; case 'updateTemplateData': template = response[len][1]; if(unsafeWindow.ikariam.templateView) { if(unsafeWindow.ikariam.templateView.id == 'researchAdvisor') { view = unsafeWindow.ikariam.templateView.id; } } break; case 'updateBackgroundData': oldCity = this.CurrentCityId; this._currentCity = parseInt(response[len][1].id); events('updateCityData').pub(this._currentCity, $.extend(true, {}, unsafeWindow.dataSetForView, response[len][1])); events('updateBuildingData').pub(this._currentCity, response[len][1].position); break; } } this.parseViewData(view,html,template); if(oldCity !== this.CurrentCityId) { events('cityChanged').pub(this.CurrentCityId); } }.bind(ikariam)); events('formSubmit').sub(function(form) { var formID = form.getAttribute('id'); if(!ikariam[formID + 'Submitted'])return false; var formSubmission = (function formSubmit() { var data = ikariam[formID + 'Submitted'](); return function formSubmitID(response) { var len = response.length; var feedback = 0; while(len) { len--; if(response[len][0] == 'provideFeedback') feedback = response[len][1][0].type; } if(feedback == 10) ikariam[formID + 'Submitted'](data); events('ajaxResponse').unsub(formSubmission); }; })(); events('ajaxResponse').sub(formSubmission); }.bind(ikariam)); events(Constant.Events.CITYDATA_AVAILABLE).sub(ikariam.FetchAllTowns.bind(ikariam)); }, Init: function() { this.setupEventHandlers(); }, parseViewData:function(view,html,tData) { var LD = Constant.LanguageData[database.settings.languageChange.value]; $.each(Object.keys(LD.viewCityMenu),function(k,c) { $('#js_viewCityMenu > ul > li > div.'+c+' + div.name > span.namebox').text(LD.viewCityMenu[c]); }); if(database.settings.ambrosiaPay.value) { $('#js_viewCityMenu ul.menu_slots li[onclick*="view=premiumTrader"]').hide(); } if(typeof(bUpinterv)!='undefined') { clearInterval(bUpinterv); } var citymenu = ''; $.each(database.settings.cityOrder.value,function(k,c) { citymenu += $('#dropDown_js_citySelectContainer > div.bg > ul > li[selectvalue="'+c+'"]').prop('outerHTML'); }); $('#dropDown_js_citySelectContainer > div.bg > ul').empty().append(citymenu); // $('[id^="empire_researchAdvisorPoints"], [id^="empire_researchAdvisorCurrResearchCosts"], [id^="researchAdvisorCurrResearchCostsPercentage"], [id^="empire_researchAdvisorCurrResearchPointsNotEnough"], [id^="empire_researchAdvisorCurrResearchTimeNeeded"], [id^="empire_researchAdvisorProgressTxt"]').remove(); $.each($('#dropDown_js_citySelectContainer > div.bg > ul > li'),function(k,c) { $(c).removeClass('first-child last-child'); $(c).addClass(k==0? 'first-child':(k==database.settings.cityOrder.value.length-1?'last-child':'')); }); $('[id^="registrationGiftDay"]').hide(); if(view!==undefined) { if(ikariam.mainView=='city') { $('#'+view).css('right',(-$('#'+view).width())+'px'); $('#'+view+'_c').css({'left':'auto','right':($('#'+view).width()+60)+'px'}); $('#container .templateView:after').css('left',(parseInt($('#'+view).css('left').replace('px',''))+10)+'px'); $('#container .templateView:before').css('left',(parseInt($('#'+view).css('left').replace('px',''))+10)+'px'); } } var pos = isNaN(parseInt(unsafeWindow.ikariam.model.advisorData.cities.link.split('position=')[1]))? -1 : parseInt(unsafeWindow.ikariam.model.advisorData.cities.link.split('position=')[1]); var city = ikariam.getCurrentCity; // console.log(unsafeWindow.dataSetForView.branchOfficeResources); // console.log(city); if(city.isColony) { $('#cityRegistrationGifts').addClass('invisible'); } if(city.isCapital && !$('#cityRegistrationGifts').hasClass('invisible')) { var giftsinterv = setInterval(function() { $('#cityRegistrationGifts').attr('title',Utils.format(LD.regGiftstxt[14],[Utils.FormatTimeLengthToStr(moment(moment(database.getGlobalData.getRegDate-(moment().utcOffset()*60-unsafeWindow.dataSetForView.serverTimezoneOffset)*1000).startOf('day')+(moment().utcOffset()*60-unsafeWindow.dataSetForView.serverTimezoneOffset)*1000).add(14,'days')-moment(),6),Utils.FormatFullTimeToDateString(moment(moment(database.getGlobalData.getRegDate-(moment().utcOffset()*60-unsafeWindow.dataSetForView.serverTimezoneOffset)*1000).startOf('day')+(moment().utcOffset()*60-unsafeWindow.dataSetForView.serverTimezoneOffset)*1000).add(14,'days'),true)])); if($('#cityRegistrationGifts').hasClass('invisible')) { $('#cityRegistrationGifts').removeAttr('title').hide(); clearInterval(giftsinterv); } else { $('#cityRegistrationGifts').css('display',city.isCapital && database.getGlobalData.getGiftsReceived<7 && !($('#cityRegistrationGifts').hasClass('invisible'))?'block':'none'); } },1000); $('#cityRegistrationGifts').attr('title',Utils.format(LD.regGiftstxt[14],[Utils.FormatTimeLengthToStr(moment(moment(database.getGlobalData.getRegDate-(moment().utcOffset()*60-unsafeWindow.dataSetForView.serverTimezoneOffset)*1000).startOf('day')+(moment().utcOffset()*60-unsafeWindow.dataSetForView.serverTimezoneOffset)*1000).add(14,'days')-moment(),6),Utils.FormatFullTimeToDateString(moment(moment(database.getGlobalData.getRegDate-(moment().utcOffset()*60-unsafeWindow.dataSetForView.serverTimezoneOffset)*1000).startOf('day')+(moment().utcOffset()*60-unsafeWindow.dataSetForView.serverTimezoneOffset)*1000).add(14,'days'),true)])); if($('#cityRegistrationGifts').hasClass('invisible')) { $('#cityRegistrationGifts').removeAttr('title').hide(); clearInterval(giftsinterv); } else { $('#cityRegistrationGifts').css('display',city.isCapital && database.getGlobalData.getGiftsReceived<7 && !($('#cityRegistrationGifts').hasClass('invisible'))?'block':'none'); } } if(city.isColony) { $('#cityRegistrationGifts').addClass('invisible'); clearInterval(giftsinterv); } $('tr[id^=resource_]').each(function() { $(this).find('> td.empireactions > div.transport').css('cursor',parseInt($(this).attr('id').split('_')[1])==city.getId?'default':'pointer').attr('data-tooltip',parseInt($(this).attr('id').split('_')[1])!=city.getId?Utils.format(LD.transporting,[LD[city.isCapital?'capital':'colony'],city._name]):LD.transtip); }); var building = pos!=-1 ? city.getBuildingFromPosition(pos) : ''; if(building!='' && !building.isEmpty) { if($('#informationSidebar').length==1) { $('#informationSidebar').parent().prevAll('a.accordionTitle').contents().first()[0].textContent = building.getLevel+building.isUpgrading<=Constant.BuildingData[building.getName].maxLevel?Utils.format(LD.in_level,[building.getLevel+building.isUpgrading+1]):''; } var ct = $.now(); if($('#upgradeInProgress').length==1) { $('#upgradeInProgress').css({'background-position-x':'2%','height':'61px'}).find('div:first > p').text(LD.level).parent().next('div').css('margin-left','-10px').find('p').text(LD.constructing_mine).next('div').css('width','300px'); $('#buildingSpeedupBuilding').css('right','-309px').attr('title',LD.shortbuildingtime[0]); $('#upgradeInProgress > a').attr('title',LD.pirtxt[12]).text(LD.pirtxt[12]); $('[id^="upgradeEndTime_"]').remove(); $('#upgradeCountDown').hide().after('
    '+Utils.FormatFullTimeToDateString(building.getCompletionTime,false)+'
    ('+Utils.FormatTimeLengthToStr(building.getCompletionTime-moment(),4)+')
    '); var bonTime = 1+Constant.GovernmentData[database.getGlobalData.getGovernmentType].buildingTime; var buildtime = Constant.BuildingData[building.getName].time; buildtime = ((building.getName==Constant.Buildings.PIRATE_FORTRESS?buildtime[building.getLevel]:Math.round(buildtime.a/buildtime.b*Math.pow(buildtime.c,building.getLevel+1)-buildtime.d))-(buildtime.e!=undefined?(buildtime.e[building.getLevel]!=undefined?buildtime.e[building.getLevel]:0):0))*1000*bonTime; $('[id^="upgradePercentage_"]').remove(); $('#upgradeProgress').parent('div').css({'height':'16px'}).after('
    '+(Utils.FormatNumToStr((buildtime-(building.getCompletionTime-$.now()))/buildtime*100,false,2)+' %')+'
    '); $('#buildingSpeedupBuilding').css('top','-44px'); var upgradeinterv = setInterval(function() { var now = moment(); $('#upgradePercentage_'+ct).text(Utils.FormatNumToStr(building.getCompletionTime>now?(buildtime-(building.getCompletionTime-now))*100/buildtime:100,false,2)+' %'); $('#upgradeEndTime_'+ct).html(building.getCompletionTime>now?Utils.FormatFullTimeToDateString(building.getCompletionTime,false)+'
    ('+Utils.FormatTimeLengthToStr(building.getCompletionTime-now,4)+')':' 
     '); $('#buildingSpeedupBuilding').css('top','-44px'); $('#buildingSpeedupBuilding').attr('title',LD.shortbuildingtime[building.getCompletionTime-now>(buildtime/2)?0:1]); if(building.getCompletionTime h3.header').text(LD.demolitiontxt[0]); $('#demolition > div.content > div.warning > h4').text(LD.demolitiontxt[1]); $('#demolition > div.content > div.warning > p:first').text(LD.demolitiontxt[2]); $('#demolition > div.content > div.warning > p.bold').text(LD.demolitiontxt[3]+':'); $('#demolition > div.content > div.warning > ul.resources > li').each(function(i,li) { $(li).attr('title',LD[$(li).attr('class')+'_']).find('span.accesshint').text(LD[$(li).attr('class')+'_']+':'); // console.log($(li)); $(li)[0].lastChild.textContent = Utils.FormatNumToStr(parseInt($(li)[0].lastChild.nodeValue.replace(/\D+/g,'')),false,0); }); $('#demolition > div.content > div.warning > div.centerButton > a.button:first').attr('title',LD.demolitiontxt[4]).text(LD.demolitiontxt[4]); $('#demolition > div.content > div.warning > div.centerButton > a.button:last').attr('title',LD.demolitiontxt[5]).text(LD.demolitiontxt[5]); } $('[id^="restable"]').remove(); var serverTyp = (ikariam.Server()=='s201' || ikariam.Server()=='s202') ? 3 : 1; var uConst = building.isUpgrading; var rtable = ''; var rCost = building.getUpgradeCost; var i = 0; var z = Object.values(rCost).filter(x=>x==0).length; var rC = [ct]; var sum = [0,0,0]; $.each(rCost,function(k,r) { if(k=='time') { i++; rtable += ''; // console.log(i,3*i-1); rC[3*i-2] = Utils.FormatNumToStr(sum[0],false,0)+(database.settings.quantityLoads.value?'
    '+Utils.FormatQuantityToLoad(sum[0]):''); rC[3*i-1] = sum[2]<0?'red':'green'; rC[3*i] = (sum[2]<0?'':' ')+'('+Utils.FormatNumToStr(sum[sum[2]<0?2:1],false,0)+')'+(database.settings.quantityLoads.value?'
    '+Utils.FormatQuantityToLoad(Math.abs(sum[sum[2]<0?2:1]))+'':''); rC[3*i+1] = Utils.FormatFullTimeToDateString(r/serverTyp+(!uConst?$.now():building.getCompletionTime),true)+'
    ('+Utils.FormatTimeLengthToStr(r/serverTyp,4)+')'; } else if(r!=0) { i++; rtable += ''; var c = building.city().getResource(k).getCurrent; var diff = c-r; sum[0] += r; sum[diff<0?2:1] += diff; rC[3*i-2] = Utils.FormatNumToStr(r,false,0)+(database.settings.quantityLoads.value?'
    '+Utils.FormatQuantityToLoad(r):''); rC[3*i-1] = diff<0?'red':'green'; rC[3*i] = (diff<0?'':' ')+'('+Utils.FormatNumToStr(diff,false,0)+')'+(database.settings.quantityLoads.value?'
    '+Utils.FormatQuantityToLoad(Math.abs(diff))+'':''); } // console.log(k,r); }); rtable += '
    Σ{'+(3*i-2)+'}{'+(3*i)+'}
    {'+(3*i+1)+'}
    {'+(3*i-2)+'}{'+(3*i)+'}
    '; // console.log(building.isMaxLevel,building.getLevel,Constant.BuildingData[building.getName].maxLevel,uConst); $('#sidebarWidget > li:nth-child(1) > a').html(LD.upgrade); $('#js_buildingUpgradeButton > span').html($('#js_buildingUpgradeButton').hasClass('disabled')?'':(unsafeWindow.ikariam.model.advisorData.hasPremiumAccount?(building.city().isUpgrading?LD.inqueue:LD.upgrade):LD.upgrade)); $('#buildingUpgrade').parent().css({'padding':'5px 0px 0px 0px'}); $('#buildingUpgrade > div > ul > li.downgrade > a > span').html(LD.downgrade); $('#js_buildingUpgradeButton').attr('title',LD[$('#js_buildingUpgradeButton').hasClass('disabled')?'upbtntitle':(unsafeWindow.ikariam.model.advisorData.hasPremiumAccount?(building.city().isUpgrading?'qubtntitle':'upgrade'):'upgrade')]); $('#buildingUpgrade > div > ul > li.downgrade > a').attr('title',LD.downbtntitle[$('#buildingUpgrade > div > ul > li.downgrade > a').hasClass('disabled')?0:1]); $('#buildingUpgrade > div > ul > li.showLevel > div').html(LD.level); $('#buildingUpgrade > h4').html(building.isMaxLevel||(building.getLevel==Constant.BuildingData[building.getName].maxLevel-1 && uConst)?LD[!uConst?'max_Level_complete':'max_Level_tocomplete']:(LD.next_Level+' '+(building.getLevel+(uConst?2:1)))); if(typeof(bUpinterv)!='undefined') { clearInterval(bUpinterv); } if(!(building.isMaxLevel!==(building.getLevel==Constant.BuildingData[building.getName].maxLevel-1 && uConst))) { if($('#buildingUpgrade').length==1) { $('#restable_'+ct).remove(); var ArC = rC; var bUpinterv = setInterval(function() { var i = 0; var sum = [0,0,0]; $.each(rCost,function(k,r) { if(k=='time') { i++; // console.log(i,3*i-1); ArC[3*i-1] = sum[2]<0?'red':'green'; ArC[3*i] = (sum[2]<0?'':' ')+'('+Utils.FormatNumToStr(sum[sum[2]<0?2:1],false,0)+')'+(database.settings.quantityLoads.value?'
    '+Utils.FormatQuantityToLoad(Math.abs(sum[sum[2]<0?2:1]))+'':''); ArC[3*i+1] = Utils.FormatFullTimeToDateString(r/serverTyp+(!uConst?$.now():building.getCompletionTime),true)+'
    ('+Utils.FormatTimeLengthToStr(r/serverTyp,4)+')'; } else if(r!=0) { i++; var c = building.city().getResource(k).getCurrent; var diff = c-r; sum[0] += r; sum[diff<0?2:1] += diff; ArC[3*i-1] = diff<0?'red':'green'; ArC[3*i] = (diff<0?'':' ')+'('+Utils.FormatNumToStr(diff,false,0)+')'+(database.settings.quantityLoads.value?'
    '+Utils.FormatQuantityToLoad(Math.abs(diff))+'':''); } }); $('td.city_name > span.clickable, td.building > span.clickable, div.city, div.temple, div.pirates, div.spies, div.barracks, div.shipyard, div#HelpTab > span[id^="help"], span.happy, span.growth, span.scientists, [id^="position"], #dropDown_js_citySelectContainer, #js_buildingUpgradeButton').on('click',function(){clearInterval(bUpinterv);}); if($('[id^="restable"]').attr('id')!=undefined && parseInt($('[id^="restable"]').attr('id').replace(/\D+/g,''))>rC[0]){$('[id^="restable"]').remove(); clearInterval(bUpinterv);} $('#rtblcontainer').empty().html(Utils.format(rtable,ArC)); },1000); $('#buildingUpgrade > ul').hide().after('
    '+Utils.format(rtable,ArC)+'
    '); var whtxt, dumptxt = ''; $.each(city.getBuildings,function(k,bld) { if(bld.getName==Constant.Buildings.WAREHOUSE) { whtxt = '{0}'; return false; } }); $.each(city.getBuildings,function(k,bld) { if(bld.getName==Constant.Buildings.DUMP) { dumptxt = '{0}'; } }); var NotEnCap = ''; if(whtxt!='' && dumptxt=='') { NotEnCap = Utils.format(LD.notEnCap[1],[Utils.format(whtxt,[LD.warehouse])]); } else if(whtxt=='' && dumptxt!='') { NotEnCap = Utils.format(LD.notEnCap[2],[Utils.format(dumptxt,[LD.dump])]); } else if(whtxt!='' && dumptxt!='') { NotEnCap = Utils.format(LD.notEnCap[3],[Utils.format(whtxt,[LD.warehouse]),Utils.format(dumptxt,[LD.dump])]); } $('#buildingUpgrade').find('div.red_box > a.bold').remove(); $('#buildingUpgrade').find('div.red_box > div.red').text(LD.notEnCap[0]).after(NotEnCap); } } // Utils.format(rtable,['{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}']) /* var uConst = building.isUpgrading; var resourceCost = building.getUpgradeCost; var serverTyp = (ikariam.Server()=='s201' || ikariam.Server()=='s202') ? 3 : 1; var elem, nelem = ''; var time, ntime = ''; var ctime = 0; var needlevel = 0; var costlevel = 0; // console.log(building); ctime = Constant.BuildingData[building.getName].time; ctime = Math.round(ctime.a / ctime.b * Math.pow(ctime.c, building.getLevel + 1) - ctime.d) * 1000; needlevel = building.getLevel + 2; costlevel = building.getLevel + 1; var restable = ''; var sum = [0,0,0]; for(var key in resourceCost) { if(key == 'time') { ntime = '' time = ''+Utils.FormatFullTimeToDateString(resourceCost[key]/serverTyp+(!uConst?$.now():building.getCompletionTime),true)+'
    ('+Utils.FormatTimeLengthToStr(resourceCost[key]/serverTyp,4)+')'; continue; } if(resourceCost[key]) { var diff = building.city().getResource(key).getCurrent-resourceCost[key]; sum[0] += resourceCost[key]; sum[diff>=0?1:2] += diff; console.log(sum); nelem += ''; elem += ''+Utils.FormatNumToStr(resourceCost[key],false,0)+''; elem += ''+(diff<0 ? '' : '')+' ('+Utils.FormatNumToStr(diff,true,0)+')'; } } elem = (elem!=='') ? ''+elem+''+time+'
    ' : ''; restable = ''+nelem+''+ntime+'
    Σ'+Utils.FormatNumToStr(sum[0],false,0)+'
    '+Utils.FormatQuantityToLoad(sum[0])+'
    ('+Utils.FormatNumToStr(sum[sum[2]<0?2:1],false,0)+')
    '+Utils.FormatQuantityToLoad(Math.abs(sum[sum[2]<0?2:1]))+'
    '; $('#sidebarWidget > li:nth-child(1) > a').html(LD.upgrade); $('#js_buildingUpgradeButton > span').html($('#js_buildingUpgradeButton').hasClass('disabled')?'':(unsafeWindow.ikariam.model.advisorData.hasPremiumAccount?(city.isUpgrading?LD.inqueue:LD.upgrade):LD.upgrade)); if($('#buildingUpgrade').length==1) { $('#restable_'+ct).remove(); clearInterval(interv); $('#buildingUpgrade > div > ul > li.downgrade > a > span').html(LD.downgrade); $('#js_buildingUpgradeButton').attr('title',LD[$('#js_buildingUpgradeButton').hasClass('disabled')?'upbtntitle':(unsafeWindow.ikariam.model.advisorData.hasPremiumAccount?(city.isUpgrading?'qubtntitle':'upgrade'):'upgrade')]); $('#buildingUpgrade > div > ul > li.downgrade > a').attr('title',LD.downbtntitle[$('#buildingUpgrade > div > ul > li.downgrade > a').hasClass('disabled')?0:1]); $('#buildingUpgrade > div > ul > li.showLevel > div').html(LD.level); $('#buildingUpgrade > h4').html(building.isMaxLevel||(building.getLevel==Constant.BuildingData[building.getName].maxLevel-1 && uConst)?LD.max_Level_complete:(LD.next_Level+' '+(building.getLevel+(uConst?2:1)))); if($('#buildingUpgrade > ul').html()!='') { $('#buildingUpgrade > ul').replaceWith(restable); } var remaintime = building.getCompletionTime-$.now(); var s = 0; var interv = setInterval(function() { var sum = [0,0,0]; $.each(resourceCost,function(k,r) { if(building.city().getResource(k)!==undefined) { var diff = building.city().getResource(k).getCurrent-r; sum[0] += r; sum[diff<0?2:1] += diff; $('#curr_'+k+'_'+ct+', #diff_'+k+'_'+ct).empty(); $('#curr_'+k+'_'+ct).html(Utils.FormatNumToStr(r/serverTyp,false,0)+'
    '+Utils.FormatQuantityToLoad(r/serverTyp)+''); $('#diff_'+k+'_'+ct).attr('class',diff<0?'red':diff>0?'green':'').html((diff<0?'':'')+' ('+Utils.FormatNumToStr(diff+city.getResource(k).getProduction*(s/1000),true,0)+')
    '+Utils.FormatQuantityToLoad(Math.abs(diff+city.getResource(k).getProduction*(s/1000)))+''); } }); $('#curr_total_'+ct+', #diff_total_'+ct).empty(); $('#curr_total_'+ct).html(Utils.FormatNumToStr(sum[0]/serverTyp,false,0)+'
    '+Utils.FormatQuantityToLoad(sum[0]/serverTyp)+''); $('#diff_total_'+ct).attr('class',sum[2]<0?'red':sum[1]>0?'green':'').html((sum[2]<0?'':'')+' ('+Utils.FormatNumToStr(sum[sum[2]<0?2:1],true,0)+')
    '+Utils.FormatQuantityToLoad(Math.abs(sum[sum[2]<0?2:1]))+''); $('#btime_'+ct).empty(); $('#btime_'+ct).html(Utils.FormatFullTimeToDateString((!uConst?$.now():building.getCompletionTime)+resourceCost[key]/serverTyp,true)+'
    ('+Utils.FormatTimeLengthToStr(resourceCost[key]/serverTyp,4)+')'); s++; },1000); $('#btime_'+ct).empty(); $('#btime_'+ct).html(Utils.FormatFullTimeToDateString((!uConst?$.now():building.getCompletionTime)+resourceCost[key]/serverTyp,true)+'
    ('+Utils.FormatTimeLengthToStr(resourceCost[key]/serverTyp,4)+')'); $.each(resourceCost,function(i,x) { if(building.city().getResource(i)!==undefined) { var dif = building.city().getResource(i).getCurrent-x; $('#curr_'+i+'_'+ct+', #diff_'+i+'_'+ct).empty(); $('#curr_'+i+'_'+ct).html(Utils.FormatNumToStr(x/serverTyp,false,0)+'
    '+Utils.FormatQuantityToLoad(x/serverTyp)); $('#diff_'+i+'_'+ct).attr('class',dif<0?'red':dif>0?'green':'').html((dif<0?'':'')+' ('+Utils.FormatNumToStr(dif,true,0)+')
    '+Utils.FormatQuantityToLoad(Math.abs(dif))); } }); }*/ } events.scheduleAction(function() { if(moment()>database._globalData._pirates.mission.endtime && database._globalData._pirates.auto[0]==true && $('#pirateFortress').length==0) { var cid = 0; for(var c in database.settings.cityOrder.value) { if(database.getCityFromId(database.settings.cityOrder.value[c]).isPirateFortress) { cid = database.settings.cityOrder.value[c]; break; } } cid = database.getCityFromId(ikariam.CurrentCityId).isPirateFortress ? ikariam.CurrentCityId : cid; var city = database.getCityFromId(cid); var building = city.getBuildingFromName(Constant.Buildings.PIRATE_FORTRESS); if(building!=null) { var params = building.getUrlParams; params.activeTab = 'tabBootyQuest'; params.cityId = city.getId; params.position = 17; if(ikariam.viewIsIsland) { params.currentIslandId = ikariam.getCurrentCity.getIslandID; } ikariam.loadUrl(true,ikariam.mainView,params); render.AddCityCSS(); } } // console.log('Check'); },1000); if(this.getCurrentCity) { switch(view) { case 'registrationGifts': this.parseregGifts(); break; case 'abolishCity': this.parseabolishCity(); break; case 'ambrosiaFountain': this.parseAmbrosiaFountain(); break; case Constant.Buildings.ACADEMY: this.parseAcademy(tData); break; case Constant.Buildings.BLACK_MARKET: this.parseBlackMarket(view,html,tData); break; case Constant.Buildings.WAREHOUSE: case Constant.Buildings.DUMP: this.parseWarehouse(view,tData); break; case 'inventory': this.parsePremium(tData); break; case 'avatarDetails': case 'avatarProfile': this.parsePlayerDetails(view); break; case 'cinema': this.parseTheater(tData); break; case Constant.Buildings.EMBASSY: case 'diplomacyAllyMemberlist': case 'diplomacyAllyInfo': case 'diplomacyAllySearch': this.parseEmbassy(view,tData); break; case 'finances': this.parseFinances($('#finances').find('table.table01 tr').slice(2).children('td')); break; case 'friendListEdit': this.parseInviteFriend(); break; case 'friendListEdit2': this.parseFriendList(); break; case 'highscore': this.parseHighscore(); break; case Constant.Buildings.SAFEHOUSE: this.parseSafehouse(tData); break; case Constant.Buildings.PIRATE_FORTRESS: this.parsePirates(tData); break; case Constant.Buildings.TOWN_HALL: this.parseTownHall(tData); break; case Constant.Buildings.TRADING_POST: case Constant.Buildings.TRADING_POST+'Soldier': case Constant.Buildings.TRADING_POST+'TradePartners': case Constant.Buildings.TRADING_POST+'OwnOffers': this.parseTradingPost(view,tData); break; case 'takeOffer': this.parseTakeOffer(view,html,tData); break; case Constant.Buildings.WALL: this.parseWall(view); break; case 'militaryAdvisor': case 'militaryAdvisorCombatList': case 'militaryAdvisorWarList': this.parseMilitaryAdvisor(view,html,tData); break; case 'cityMilitary': this.parseCityMilitary(); break; case 'garrisonEdit': this.parseDismissUnits(view,tData); break; case 'tradeAdvisor': case 'tradeRoutes': this.parsetradeAdvisor(view,tData); break; case 'researchAdvisor': case 'noViewChange': this.parseResearchAdvisor(tData); break; case 'diplomacyAdvisor': case 'diplomacyAdvisorOutBox': case 'diplomacyAdvisorArchive': case 'diplomacyAdvisorArchiveOutBox': case 'diplomacyIslandBoard': case 'diplomacyTreaty': case 'diplomacyAlly': case 'diplomacyAdvisorSearchUser': case 'ignoreList': this.parseDiplomacyAdvisor(view,html,tData); break; case Constant.Buildings.PALACE: this.parsePalace(); break; case 'changeGovernment': this.parsechangeGovernment(); break; case Constant.Buildings.GOVERNORS_RESIDENCE: this.parseGovResidence(); break; case 'culturalPossessions_assign': this.parseCulturalPossessions(html); break; case Constant.Buildings.MUSEUM: this.parseMuseum(); break; case Constant.Buildings.MUSEUM+'Treaties': this.parseMuseumTreaties(); break; case Constant.Buildings.TAVERN: this.parseTavern(); break; case Constant.Buildings.TRADING_PORT: this.parsePort(view,tData); break; // case 'transport': // this.parseTransport(view,html,tData); case 'transport': case 'plunder': this.transportFormSubmitted(); break; case Constant.Buildings.TEMPLE: this.parseTemple(view,tData); break; case 'wonder': this.parseWonder(tData); break; case Constant.Buildings.BARRACKS: case Constant.Buildings.SHIPYARD: this.parseBarracks(view,html,tData); break; case 'deployment': case 'plunder': this.parseMilitaryTransport(); break; case 'sendIKMessage': this.parseIKMessage(); break; case 'dailyTasks': case 'dailyTasksRewards': this.parseDailyTasks(view,tData); break; case 'tradegood': case 'resource': this.parseResTradeGood(view,tData); break; case Constant.Buildings.MARINE_CHART_ARCHIVE: this.parseSeaChartArchive(view,tData); break; case Constant.Buildings.WORKSHOP: this.parseWorkshop(view,tData); break; case 'barbarianVillage': this.parsebarbarianVillage(); break; case 'premiumDummy': this.parsepremiumDummy(); break; case Constant.Buildings.FORESTER: case Constant.Buildings.WINERY: case Constant.Buildings.STONEMASON: case Constant.Buildings.GLASSBLOWER: case Constant.Buildings.ALCHEMISTS_TOWER: this.parseprodBuild(view,tData); break; case Constant.Buildings.CARPENTER: case Constant.Buildings.VINEYARD: case Constant.Buildings.ARCHITECT: case Constant.Buildings.OPTICIAN: case Constant.Buildings.FIREWORK_TEST_AREA: this.parseReductBuild(view); break; } } $('.empiretooltip').each(function(k,elem) { 'mouseenter mouseleave mousemove mouseout mouseover'.split(' ').forEach(function(event) { elem.addEventListener(event,function(e) { var target = e.target; var t = 0; if($(target).parents('.empiretooltip').find('.tooltip-div').length==1) { t = $(target).parents('.empiretooltip').find('.tooltip-div'); } else if($(target).find('.tooltip-div').length==1) { t = $(target).find('.tooltip-div'); } else { t = $(target); } var top = e.clientY+$(t).outerHeight()+15>$(window).height() ? e.clientY-$(t).outerHeight()-15 : e.clientY+15; var left = e.clientX+$(t).outerWidth()+15>$(window).width() ? e.clientX-$(t).outerWidth()+15 : e.clientX-25; elem.querySelector('div.tooltip-div').style.top = (top+10>0?top+10:0)+'px'; elem.querySelector('div.tooltip-div').style.left = (left+10>0?left+10:0)+'px'; elem.querySelector('div.tooltip-div').style.zIndex = 2147483647; document.querySelector('span.info_tip').style.display = e.type=='mouseleave' ? 'block' : 'none'; },false); }); }); }, parsePalace:function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; // console.log(LD.palacetxt); var city = ikariam.getCurrentCity; var governmentType = $('#formOfRuleContent').find('td.government_pic img').attr('src').slice(16,-8); var changed = (database.getGlobalData.getGovernmentType != governmentType); database.getGlobalData.governmentType = governmentType; if(changed) events(Constant.Events.GLOBAL_UPDATED).pub({type:'government'}); $('[href*="changeGovernment"]').css('display',database.getGlobalData.getResearchTopicLevel(Constant.Research.Science.GOVERNMENT_FORMATION)==0?'none':'inline-block'); $('#js_mainBoxHeaderTitle').text(LD.palace); $('#palace').find('div.buildingDescription > h1').text(LD.palace).next('p').text(LD.palacetxt[0]); $('#palace').find('div.buildingDescription + div > h3').text(Utils.format(LD.palacetxt[1],[LD[database.getGlobalData.governmentType]])); $('#formOfRuleContent').parent().next('div').find('h3:first').text(LD.palacetxt[2]); $('#formOfRuleContent').find('h3.headline').text(LD[database.getGlobalData.governmentType]).next('p').text(LD.palacetxt[3][database.getGlobalData.governmentType]); if($('#formOfRuleContent').find('a.button')[0]!=undefined) { $('#formOfRuleContent').find('a.button')[0].childNodes[2].textContent = LD.palacetxt[4]; } if($('#formOfRuleContent').find('p.anarchy_text')[0]!=undefined) { $('#formOfRuleContent').find('p.anarchy_text')[0].childNodes[0].textContent = LD.palacetxt[15]+': '; } var match = $('#anarchyCounter + script').text().match(/getCountdown\((\{[^]*\}\);)/gm); if(match) { match = eval(match[0].replace('getCountdown','').replace(';','')); enddate = match.enddate*1000; var palaceinterv = setInterval(function() { $('#empire_anarchyCounter').text(Utils.FormatTimeLengthToStr(enddate-moment(),3)); if(moment()>enddate) { clearInterval(palaceinterv); } },1000); $('#anarchyCounter').hide().after(''+Utils.FormatTimeLengthToStr(enddate-moment(),3)+''); } if($('table.government_effects').length==1) { $('table.government_effects').find('tr > td:first').html(''+LD.palacetxt[6]+'
    • '+LD.palacetxt[5][database.getGlobalData.governmentType][0].replace(/\|/g,'
    • ')+'
    '); $('table.government_effects').find('tr > td:last').html(''+LD.palacetxt[7]+'
    • '+LD.palacetxt[5][database.getGlobalData.governmentType][1].replace(/\|/g,'
    • ')+'
    '); } $('#formOfRuleContent').parent().next('div').next('div').find('h3:first').text(LD.palacetxt[8]); $('#formOfRuleContent').parent().next('div').next('div').find('div.content > table > tbody > tr:first').html(''+LD.city+''+LD.level+''+LD.island+''+LD.luxres+''+LD.action+''); if($('#formOfRuleContent').parent().next('div').next('div').find('div.content > table > tbody > tr').length==2) { $('#formOfRuleContent').parent().next('div').next('div').find('div.content > table > tbody > tr:last > td').text(LD.palacetxt[10]); } $('#formOfRuleContent').parent().next('div').next('div').next('div').find('h3:first').text(LD.palacetxt[9]); $('#formOfRuleContent').parent().next('div').next('div').next('div').find('div.content > table > tbody > tr:first').html(''+LD.city+''+LD.level+''+LD.island+''+LD.luxres+''+LD.action+''); if($('#formOfRuleContent').parent().next('div').next('div').next('div').find('div.content > table > tbody > tr').length==2) { $('#formOfRuleContent').parent().next('div').next('div').next('div').find('div.content > table > tbody > tr:last > td').text(LD.palacetxt[11]); } var citysort = ''+LD.city+''+LD.level+''+LD.palace+''+LD.island+''+LD.luxres+''; $.each(database.settings.cityOrder.value,function(k,c) { citysort += $('#formOfRuleContent').parent().next('div').find('div.content > table > tbody > tr:not(:first) > td.left:contains('+database.cities[c].getName+')').parent().prop('outerHTML')+'\r\n'; }); $('#formOfRuleContent').parent().next('div').find('div.content > table > tbody').html(citysort); render.toast(Utils.format('{0}: {1} {2} {3} {4}',[LD.updated_,LD.palace,LD.tothe,LD[city.isCapital?'capital':'colony'],LD.leftquot+city._name+LD.rightquot])); }, parsechangeGovernment:function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; $('#js_mainBoxHeaderTitle').text(LD.palacetxt[4]); $('#changeGovernment').find('div.buildingDescription').html('

    '+LD.palacetxt[4]+'

    '+Utils.format(LD.palacetxt[1],[LD[database.getGlobalData.governmentType]])+'

    '+Utils.format(LD.palacetxt[12],[Utils.FormatNumToStr(5e3,false,0),Utils.FormatNumToStr(5e3*database.settings.cityOrder.value.length,false,0),Utils.FormatTimeLengthToStr(18e5),Utils.FormatTimeLengthToStr(18e5*database.settings.cityOrder.value.length)])); $('#formOfRuleContent').prev('h3').text(LD.palacetxt[13]); $('#formOfRuleContent > table').each(function(k,t) { var gov = $(t).find('tbody > tr > td > img').attr('src').split('/')[2].split('_')[0]; $(t).find('tbody > tr:nth-child(1) > td.government_desc > h4').text(LD[gov]).next('p').text(LD.palacetxt[3][gov]); if($(t).find('tbody > tr:nth-child(2) > td > div').length==1) { $(t).find('tbody > tr:nth-child(2) > td > div').addClass('centerButton').find('a')[0].childNodes[2].textContent = LD.palacetxt[4]; } else { $(t).find('tbody > tr:nth-child(2) > td > p').css('text-align','center').find('b').text(LD.palacetxt[14]); } // $(t).find('tbody > tr:nth-child(2) > td > div > a')[0].childNodes[2].textContent = LD.palacetxt[4]; $(t).find('tbody > tr:nth-child(3) > td > table > tbody > tr > td:first').css('vertical-align','top').html(''+LD.palacetxt[6]+'
    • '+LD.palacetxt[5][gov][0].replace(/\|/g,'
    • ')+'
    '); $(t).find('tbody > tr:nth-child(3) > td > table > tbody > tr > td:last').css('vertical-align','top').html(''+LD.palacetxt[7]+'
    • '+LD.palacetxt[5][gov][1].replace(/\|/g,'
    • ')+'
    '); }); render.toast(Utils.format('{0}',[LD.palacetxt[4]])); }, parseGovResidence:function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var city = ikariam.getCurrentCity; $('#js_mainBoxHeaderTitle').html(LD.palaceColony); $('#palaceColony').find('div.buildingDescription > h1').text(LD.palaceColony); $('#palaceColony').find('div.buildingDescription > p').text(LD.palaceColonytxt[0]); $('#palaceColony').find('div.buildingDescription + div > h3').text(LD.palaceColonytxt[1]); var citysort = ''+LD.city+''+LD.level+''+LD.palace+''+LD.island+''+LD.luxres+''; $.each(database.settings.cityOrder.value,function(k,c) { citysort += $('#palaceColony').find('div.buildingDescription + div > div.content > table > tbody > tr > td:contains('+database.cities[c].getName+')').parent().prop('outerHTML'); }); $('#palaceColony').find('div.buildingDescription + div > div.content > table').empty().append(citysort+''); $('#moveCapital').find('h3').text(LD.palaceColonytxt[2]); var govres = city.getBuildingFromName(Constant.Buildings.GOVERNORS_RESIDENCE).getLevel; console.log(city.getBuildingFromName(Constant.Buildings.GOVERNORS_RESIDENCE).isUpgrading); var colonies = Object.keys(database.cities).length-1; if(govres>=colonies) { $('#moveCapital').find('div.content > p').html(LD.palaceColonytxt[3]); $('#moveCapital').find('div.content > div.centerButton > a').html(LD.palaceColonytxt[5]); $('#moveCapital').find('p.bold.red').text(LD.palaceColonytxt[6]); } else { $('#moveCapital').find('div.content > div.warning').html(Utils.format(LD.palaceColonytxt[4],[(colonies-govres)+' '+LD.levelcnt[colonies-govres==1?1:0]])); } govres = govres + (city.getBuildingFromName(Constant.Buildings.GOVERNORS_RESIDENCE).isUpgrading ? 1 : 0); var corr = Math.floor((1-(govres+2)/(Object.keys(database.cities).length))*100)+Constant.GovernmentData[database.getGlobalData.getGovernmentType].corruption*100; var corruption = govres>(Object.keys(database.cities).length-1) || corr<=0 ? 0 : (corr>100 ? 100 : corr); $('#informationSidebar > div > div').text(function(){return LD.corruption+': '+Utils.FormatNumToStr(-parseInt(corruption),false,0)+' %';}); render.toast(Utils.format('{0}: {1} {2} {3} {4}',[LD.updated_,LD.palaceColony,LD.tothe,LD[city.isCapital?'capital':'colony'],LD.leftquot+city._name+LD.rightquot])); }, parseCulturalPossessions:function(html) { var LD = Constant.LanguageData[database.settings.languageChange.value]; var city = ikariam.getCurrentCity; $('#js_mainBoxHeaderTitle').html(LD.museum); $('#js_tab_museum > b').html(LD.cultinfo[3]); $('#js_tab_museumTreaties > b').html(LD.cultinfo[1]); $('#js_tab_culturalPossessions_assign > b').html(LD.cultinfo[4]); $('#moveCulturalGoods > h3').html(LD.cultinfo[17]); var icons = ['outraged','sad','neutral','happy','ecstatic']; $.each(Object.keys(database.cities),function(k,c) { if(database.cities[c].getBuildingFromName(Constant.Buildings.MUSEUM)!=null) { $('#slider_city_'+c+'_satisfaction').hide().after('
    '); } }); $('[id^="js_museum_setmin_city"],[id^="js_museum_setmax_city"]').each(function(i,a) { var cid = parseInt($(a).attr('id').replace(/\D+/g,'')); $(a).hide().after(''); $(document).ready(function() { $('#empire_slider_city_'+cid+'_satisfaction').text(LD.cultinfo[23+icons.indexOf($('#empire_slider_city_'+cid+'_satisfaction').attr('class').replace('satisfaction ',''))]); $(document).on('click','#empire_museum_set'+(i%2==0?'min':'max')+'_city_'+cid,function(evt) { evt.preventDefault(); $('#textfield_city_'+cid).val(i%2==0?0:parseInt($('#val_change_city_'+cid).text().replace(/\D+/g,''))).trigger('click'); $('#sliderthumb_city_'+cid).css('left',(i%2==0?10:326)+'px'); $('#actualValue_city_'+cid).css('clip','rect(0px,'+(i%2==0?18:334)+'px,auto,0px)'); $('#empire_slider_city_'+cid+'_satisfaction').removeClass('outraged sad neutral happy ecstatic').addClass($('#slider_city_'+cid+'_satisfaction').attr('class').replace('satisfaction ','')).text(LD.cultinfo[23+icons.indexOf($('#empire_slider_city_'+cid+'_satisfaction').attr('class').replace('satisfaction ',''))]); $('#moveCulturalGoodsFormError').text(parseInt($('#cgAmount').text())>0?LD.cultinfo[28]:''); }).on('change click dblclick drag focusin focusout keydown keypress keyup mousedown mouseenter mouseleave mousemove mouseout mouseover mouseup select textInput','#textfield_city_'+cid+',#sliderthumb_city_'+cid+',#actualValue_city_'+cid,function(evt) { $('#empire_slider_city_'+cid+'_satisfaction').removeClass('outraged sad neutral happy ecstatic').addClass($('#slider_city_'+cid+'_satisfaction').attr('class').replace('satisfaction ','')).text(LD.cultinfo[23+icons.indexOf($('#empire_slider_city_'+cid+'_satisfaction').attr('class').replace('satisfaction ',''))]); $('#moveCulturalGoodsFormError').text(parseInt($('#cgAmount').text())>0?LD.cultinfo[28]:''); }); }); }); var max = 0; $.each(database.cities,function(k,ct) { if(ct.getBuildingFromName(Constant.Buildings.MUSEUM)!=null) { max += parseInt(ct.getCulturalGoods); $('#val_change_city_'+ct.getId).html('('+LD.cultinfo[19]+' '+ct.maxculturalgood+')'); $('#textfield_city_'+ct.getId).val(ct.getCulturalGoods); } }); $('#moveCulturalGoods > div.content > p:first').html(Utils.format(LD.cultinfo[18],[max])); $('#moveCulturalGoodsFormSubmit').val(LD.cultinfo[20]); var cts = html.match(/iniValue:\s(\d*)/g); var changes = []; $('#moveCulturalGoods > div.content > ul > li').each(function(k,li) { var elem = $(li).find('div[id^=sliderbg_city_]'); if(elem.length) { var ct = parseInt(cts[k].split(' ')[1]); var cityID = parseInt($(elem).attr('id').split('_')[2]); database.cities[cityID]._culturalGoods = database.cities[cityID]._culturalGoods!=ct ? ct : database.cities[cityID]._culturalGoods; changes.push(cityID); } }); if(changes.length) $.each(changes,function(idx,cityID){events(Constant.Events.CITY_UPDATED).pub(cityID,{culturalGoods:true});}); var citysort = ''; $.each(database.settings.cityOrder.value,function(k,c) { if($('#moveCulturalGoodsFormError').prev('ul').find('li > div[id="slider_city_'+c+'_satisfaction"]').length==1) { citysort += $('#moveCulturalGoodsFormError').prev('ul').find('li > div[id="slider_city_'+c+'_satisfaction"]').parent().prop('outerHTML'); } }); $('#moveCulturalGoodsFormError').prev('ul').html(citysort); render.toast(Utils.format('{0}: {1} {2} {3} {4}',[LD.updated_,LD.cultural,LD.tothe,LD[city.isCapital?'capital':'colony'],LD.leftquot+city._name+LD.rightquot])); }, parseMuseum:function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var city = ikariam.getCurrentCity; // console.log(LD.cultinfo); $('#js_mainBoxHeaderTitle').html(LD.museum); $('#museum').find('div.buildingDescription > h1').text(LD.museum); $('#museum').find('div.buildingDescription > p').css({'text-align':'justify','margin':'0px 15px 10px 0px'}).text(LD.cultinfo[29]); $('#js_tab_museum > b').html(LD.cultinfo[3]); $('#js_tab_museumTreaties > b').html(LD.cultinfo[1]); $('#js_tab_culturalPossessions_assign > b').html(LD.cultinfo[4]); $('#tab_museum > div.contentBox01h.culturalGoods > h3').html(Utils.format(LD.cultinfo[5],[city.getName])); $('#tab_museum > div.contentBox01h.culturalGoods > div.content > p.desc').css('text-align','justify').html(LD.cultinfo[6]); $('#tab_museum > div.contentBox01h.culturalGoods > div.content > div > p').html(LD.cultinfo[7]+':'+$('#tab_museum > div.contentBox01h.culturalGoods > div.content > div > p > span').prop('outerHTML')); $('#tab_museum > div.contentBox01h.culturalGoods > div.content > p.result').html(Utils.format(LD.cultinfo[8],[Utils.FormatNumToStr(city.maxculturalgood*20+city.getCulturalGoods*50),Utils.FormatNumToStr(city.maxculturalgood*20),Utils.FormatNumToStr(city.getCulturalGoods*50)])); for(var i=2;i<=5;i++) { $('#tab_museum > div:nth-child(2) > div.content > table > tbody > tr:first > th:nth-child('+i+')').html(LD.cultinfo[i+7]); } var max = 0; $.each(database.cities,function(k,city) { max += parseInt(city.maxculturalgood); }); var page = parseInt($('#tab_museum > div > div.content > div > div.paginator > div > span.page_link').text()); var pages = parseInt($('#tab_museum > div > div.content > div > div.paginator > div > .page_link:last').text()); var changed; var regText = $('#val_culturalGoodsDeposit').parent().text().match(/(\d+)/g); if(regText.length == 2) { changed = ikariam.getCurrentCity.updateCulturalGoods(parseInt(regText[0])); } if(changed) events(Constant.Events.CITY_UPDATED).pub(ikariam.CurrentCityId, {culturalGoods: true}); if(database.settings.ctfinder.value) { var rows = {}; rows[page] = $('#tab_museum > div:nth-child(2) > div.content > table > tbody > tr:not(:first)'); rows[page] = rows[page].length ? rows[page] : null; if(rows[page]!=null) { $.each(rows[page],function(k,tr) { $(tr).find('a.writeMsg').attr('title',LD.CompMsg).find('img').attr('alt',LD.CompMsg); var cCT = $(tr).find('a.cancelTreaty').attr('href').split('=')[3]; $(tr).find('a.cancelTreaty').attr('title',LD.cultinfo[cCT*0.5-26]).find('img').attr('alt',LD.cultinfo[cCT*0.5-26]); $(tr).find('a.cancelTreaty').after('&#'+(8703-cCT*0.5)+';'); database.getGlobalData.tempdb['pot'][$(tr).find('a.writeMsg').attr('href').split('=')[2]] = {id:parseInt($(tr).find('a.writeMsg').attr('href').split('=')[2]),name:$(tr).find('td.player.center').text(),alliance:$(tr).find('td.ally.center').text(),capital:$(tr).find('td.capital.center').text(),type:parseInt($(tr).find('a.cancelTreaty').attr('href').split('=')[3])}; }); if(page==pages) { database._globalData._potmuseumTreaties = database.getGlobalData.tempdb['pot']; database.getGlobalData.tempdb['pot'] = {}; } } else { database._globalData._potmuseumTreaties = {}; } } $('#tab_museum > div:nth-child(2) > div.content > div').attr('style','display: block !important') $('#tab_museum > div:nth-child(2) > div.content > table').before($('#tab_museum > div:nth-child(2) > div.content > div').clone().attr('style','display: block !important')); $('#tab_museum > div:nth-child(2) > h3').css('height','40px').html(LD.pCTs[Object.keys(database.getGlobalData.getPotMuseumTreaties).length>1?2:(Object.keys(database.getGlobalData.getPotMuseumTreaties).length==1?1:0)]+' '+LD.pCTs[3]+'
    '); $('#tab_museum > div:nth-child(2) > h3').find('span.CTcounter').html(Utils.format('({0}: {1}, {2}: {3}, {4}: {5}, {6}: {7})',[LD.cultinfo[0],max,LD.cultinfo[1],Object.keys(database.getGlobalData.getMuseumTreaties).length,LD.cultinfo[2],max-Object.keys(database.getGlobalData.getMuseumTreaties).length,LD.cultinfo[3],Object.keys(database.getGlobalData.getPotMuseumTreaties).length])); render.toast(Utils.format('{0}: {1}'+(!isNaN(page) && !isNaN(pages) ? ' - {2} {3} / {4}' : ''),[LD.updated_,LD.museum,LD.Page,page,pages])); }, parseMuseumTreaties: function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; $('#js_mainBoxHeaderTitle').html(LD.museum); $('#js_tab_museum > b').html(LD.cultinfo[3]); $('#js_tab_museumTreaties > b').html(LD.cultinfo[1]); $('#js_tab_culturalPossessions_assign > b').html(LD.cultinfo[4]); $('#tab_museumTreaties > div > h3').html(LD.cultinfo[15]); for(var i=1;i<=4;i++) { $('#tab_museumTreaties > div > div.content > table > tbody > tr:nth-child(1) > th:nth-child('+i+')').html(LD.cultinfo[i+8]); } var max = 0; $.each(database.cities,function(k,city) { max += parseInt(city.maxculturalgood); }); var page = parseInt($('#tab_museumTreaties > div > div.content > div > div.paginator > div > span.page_link').text()); var pages = parseInt($('#tab_museumTreaties > div > div.content > div > div.paginator > div > .page_link:last').text()); if(database.settings.ctfinder.value) { var rows = {}; rows[page] = $('#tab_museumTreaties > div > div.content > table > tbody > tr:not(:first)'); rows[page] = rows[page].length ? rows[page] : null; if(rows[page]!=null) { $.each(rows[page],function(k,tr) { $(tr).find('a.writeMsg').attr('title',LD.CompMsg).find('img').attr('alt',LD.CompMsg); $(tr).find('a.cancelTreaty').attr('title',LD.cultinfo[16]).find('img').attr('alt',LD.cultinfo[16]); database.getGlobalData.tempdb['cts'][$(tr).find('a.writeMsg').attr('href').split('=')[2]] = {id:parseInt($(tr).find('a.writeMsg').attr('href').split('=')[2]),name:$.trim($(tr).find('td.player.center').text()),alliance:$(tr).find('td.ally.center').text(),capital:$(tr).find('td.capital.center').text()}; }); if(page==pages) { database._globalData._museumTreaties = database.getGlobalData.tempdb['cts']; database.getGlobalData.tempdb['cts'] = {}; } } else { database._globalData._museumTreaties = {}; } } $('#tab_museumTreaties > div > div.content > div').attr('style','display: block !important') $('#tab_museumTreaties > div > div.content > table').before($('#tab_museumTreaties > div > div.content > div').clone().attr('style','display: block !important')); $('#tab_museumTreaties > div > h3').css('height','40px').append('
    '); $('#tab_museumTreaties > div > h3').find('span.CTcounter').html(Utils.format('({0}: {1}, {2}: {3}, {4}: {5}, {6}: {7})',[LD.cultinfo[0],max,LD.cultinfo[1],Object.keys(database.getGlobalData.getMuseumTreaties).length,LD.cultinfo[2],max-Object.keys(database.getGlobalData.getMuseumTreaties).length,LD.cultinfo[3],Object.keys(database.getGlobalData.getPotMuseumTreaties).length])); render.toast(Utils.format('{0}: {1}'+(!isNaN(page) && !isNaN(pages) ? ' - {2} {3} / {4}' : ''),[LD.updated_,LD.cultural,LD.Page,page,pages])); }, parseTavern: function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; $('#js_mainBoxHeaderTitle').text(LD.tavern); $('#tavern').find('div.buildingDescription > h1').text(LD.tavern); $('#tavernDesc > p').text(LD.taverntxt[0]); $('#tavern').find('div.buildingDescription + div > h3').text(LD.taverntxt[1]); $('#wineAssignForm').find('div.content_left > h4').text(LD.taverntxt[2]); $('#wineAssignForm').find('div.content_left > p').css('text-align','justify').text(LD.taverntxt[3]); $('#wineAssignForm').find('div.content_left > div.sliderinput > a.setMin').removeAttr('title').addClass('empiretooltip').append(''); $('#wineAssignForm').find('div.content_left > div.sliderinput > a.setMax').removeAttr('title').addClass('empiretooltip').append(''); Utils.waitElem('#sliderbg_wine[title!="slider value = 0"]',slider); function slider() { var city = ikariam.getCurrentCity; var vineyard = city.getBuildingFromName(Constant.Buildings.VINEYARD)==null ? 0 : city.getBuildingFromName(Constant.Buildings.VINEYARD).getLevel; $('#wineAssignForm > div.content_left > p+div#tavernlevels').remove(); $('#wineAssignForm > div.content_left > p').after('
    '+$('#sliderbg_wine').attr('title')+' / '+city.maxtavernlevel+'
    '); $('#bonus').parent().css('margin-left','-12px'); $('#bonus').hide().after(''+Utils.FormatNumToStr(parseInt($('#sliderbg_wine').attr('title'))*60,false,0)+''); $('#serve').css('margin-left','90px'); $('#serve > p')[0].childNodes[3].textContent = ' '+LD.taverntxt[parseInt($('#sliderbg_wine').attr('title'))*60==1?7:6]; // console.log($('#serve > p')); $('#wineAmount > option').each(function(k,li) { if(k==0) { $(li).css('text-align','center').text(LD.taverntxt[8]); } else { $(li).css('text-align','right').text(function(){return Utils.format(LD.taverntxt[parseInt($(this).text().replace(/\D+/g,''))==1?10:9],[Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0)])}); } }); $('#dropDown_js_wineAmountContainer > div.bg > ul > li').each(function(k,li) { $(li).css('border',parseInt($('#sliderbg_wine').attr('title'))==k?'solid 1px #000':'none'); if(k==0) { $(li).css('text-align','center').text(LD.taverntxt[8]); } else { $(li).css('text-align','right').text(function(){return Utils.format(LD.taverntxt[parseInt($(this).text().replace(/\D+/g,''))==1?10:9],[Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0)])}); } }); $('#js_wineAmountContainer > span > a').text($('#dropDown_js_wineAmountContainer > div.bg > ul > li[selectvalue="'+$('#sliderbg_wine').attr('title')+'"]').text()); $('#savedWine').hide().parent().html(LD.taverntxt[11]+' '+Utils.FormatNumToStr(Constant.BuildingData[Constant.Buildings.TAVERN].wineUse[$('#sliderbg_wine').attr('title')]*vineyard/100,false,2)+' '+LD.taverntxt[(Constant.BuildingData[Constant.Buildings.TAVERN].wineUse[$('#sliderbg_wine').attr('title')]*vineyard/100)==1?13:12]); $('#citySatisfaction').prev('div').find('input').val(LD.taverntxt[14]); $('#serve, #dropDown_js_wineAmountContainer, div.sliderinput').on('focusin click mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave', function() { $('#currlevel').css('color',parseInt($('#sliderbg_wine').attr('title'))==city.tavernlevel?'blue':(parseInt($('#sliderbg_wine').attr('title')) p')[0].childNodes[3].textContent = ' '+LD.taverntxt[parseInt($('#sliderbg_wine').attr('title'))*60==1?7:6]; $('#js_wineAmountContainer > span > a').text($('#dropDown_js_wineAmountContainer > div.bg > ul > li[selectvalue="'+$('#sliderbg_wine').attr('title')+'"]').text()); $('#empire_savedWine').text(Utils.FormatNumToStr(Constant.BuildingData[Constant.Buildings.TAVERN].wineUse[$('#sliderbg_wine').attr('title')]*vineyard/100,false,2)); }); render.toast(Utils.format('{0}: {1} {2} {3} {4}',[LD.updated_,LD.tavern,LD.tothe,LD[city.isCapital?'capital':'colony'],LD.leftquot+city._name+LD.rightquot])); } }, resTransportObject: function() {return {id:null,wood:0,wine:0,marble:0,glass:0,sulfur:0,gold:0,targetCityId:0,arrivalTime:0,originCityId:0,loadedTime:0,mission:''};}, troopTransportObject: function() {return {id:null,troops:{},targetCityId:0,arrivalTime:0,originCityId:0,returnTime:0,mission:''};}, parseBarracks: function(view,html,data) { // console.log(data); // console.log(Object.keys(data).filter((d) => d.startsWith('js_barracksUnitUnitsAvailable')).length); var LD = Constant.LanguageData[database.settings.languageChange.value]; var city = ikariam.getCurrentCity; var building = city.getBuildingFromName(view); // console.log(building); var type = view == Constant.Buildings.BARRACKS ? 'army' : view == Constant.Buildings.SHIPYARD ? 'fleet' : false; $('#js_mainBoxHeaderTitle').text(LD[view]); $('#buildUnits > div.buildingDescription > h1').text(LD[view]); $('#buildUnits > div.buildingDescription > p').css({'text-align':'justify','margin':'0px 15px 10px 0px'}).text(LD.barrackstxt[view == Constant.Buildings.SHIPYARD?27:0]); $('#js_barracksOccupyNotice > div').html('
    '+LD.barrackstxt[1]+'

    '+LD.barrackstxt[view == Constant.Buildings.SHIPYARD?28:2]+'

    '); $('#selected_units > h3').text(LD.barrackstxt[view == Constant.Buildings.SHIPYARD?29:3]); $('#js_noUnitsSelected').text(LD.barrackstxt[view == Constant.Buildings.SHIPYARD?30:4]); Utils.waitElem('#accumulatedResourcesCosts',parser); function parser() { var now = moment(); // console.log($('#accumulatedResourcesCosts').length); $('#js_unitCountIcons').css('text-align','center').find('div.floatleft').each(function(k,d) { var mid = parseInt($(d).find('div:first').attr('class').replace(/\D+/,'')); $(d).css({'display':'inline-block','float':'none'}).find('div:first').attr('title',LD[Constant.unitIds[mid]]).next('div').text(function(){return Utils.FormatNumToStr($(this).text(),false,0);}); }); var ulcontent = ''; var costs = ['citizens','wood','wine','crystal','sulfur','upkeep','time']; var left = [20,90,175,260,345,430,515]; $('#accumulatedUnitCosts').css({'position':'relative','top':'-8px'}); $('#accumulatedResourcesCosts > li').each(function(i,li) { var litxt = $(li).clone(false); var multiplier = '1e'+parseInt($(li).text().includes('k') ? 3 : ($(li).text().includes('k') ? 6 : 0)); // console.log(Utils.FormatTimeLengthToStr(Utils.FormatLocDurToSecs($(li).text()==''?'0s':$(li).text())*1000,6)); // console.log(Utils.FormatTimeLengthToStr(Utils.FormatLocDurToSecs($(li).text()==''?0:$(li).text())*1000,6)); var tip = !$(li).hasClass('time') ? parseInt($(li).text().replace(/(\d+)[,.](?=\d{3}(\D|$))/g,'$1'))*multiplier : (Utils.FormatLocDurToSecs($(li).text()==''?'0s':$(li).text())*1000); var tiptxt = ''; switch(costs[i]) { case 'citizens': if(tip==0) { tiptxt = LD.barrackstxt[5]; } else if(tip==1) { tiptxt = Utils.FormatNumToStr(tip,false,0)+' '+LD.barrackstxt[7]; } else if(tip>1) { tiptxt = Utils.FormatNumToStr(tip,false,0)+' '+LD.barrackstxt[6]; } break; case 'wood': case 'wine': case 'crystal': case 'sulfur': if(tip==0) { tiptxt = LD.barrackstxt[8]+' '+LD.barrackstxt[13][costs[i]]; } else if(tip==1) { tiptxt = Utils.FormatNumToStr(tip,false,0)+' '+LD.barrackstxt[10]+' '+LD.barrackstxt[13][costs[i]]; } else if(tip>1) { tiptxt = Utils.FormatNumToStr(tip,false,0)+' '+LD.barrackstxt[9]+' '+LD.barrackstxt[13][costs[i]]; } break; case 'upkeep': if(tip==0) { tiptxt = LD.barrackstxt[11]; } else if(tip==1) { tiptxt = LD.barrackstxt[13][costs[i]]+'
    '+Utils.FormatNumToStr(tip,false,0)+' '+LD.barrackstxt[10]+''; } else if(tip>1) { tiptxt = LD.barrackstxt[13][costs[i]]+'
    '+Utils.FormatNumToStr(tip,false,0)+' '+LD.barrackstxt[9]+''; } break; case 'time': if(tip==0) { tiptxt = LD.barrackstxt[view == Constant.Buildings.SHIPYARD?31:12]; // console.log(tiptxt); } else if(tip>1) { tiptxt = (view == Constant.Buildings.SHIPYARD?32:LD.barrackstxt[13][costs[i]])+'
    '+Utils.FormatTimeLengthToStr(tip,6)+''+'
    '+LD.barrackstxt[14]+'
    '+Utils.FormatFullTimeToDateString(moment()+tip,6)+''; // console.log(tiptxt); } break; } $(litxt).attr('id','empire_accumulatedResourcesCosts_'+costs[i]).removeAttr('title').addClass('empiretooltip').css('left',left[i]+'px').append(''); $(litxt)[0].childNodes[0].textContent = costs[i]!='time' ? Utils.FormatNumToStr(tip,false,0) : Utils.FormatTimeLengthToStr(tip,6); // console.log($(litxt)[0].childNodes[0].textContent); // console.log(tip); $(li).hide().after($(litxt).prop('outerHTML')); // ulcontent += '
  • 0
    '+LD[c]+'
  • '; }); } $('#button_purchase').css({'position':'relative','top':'18px','text-align':'center'}).find('input').val(LD.barrackstxt[view == Constant.Buildings.SHIPYARD?38:37]); $('#premium_btn > h3').text(LD.barrackstxt[15]); // console.log(LD.barrackstxt); $('#js_citizensPremiumOffer').find('div.tooltip > span, div.amountAndActiveBox > div:first').text('5 '+LD.citizens); $('#js_citizensPremiumOffer').find('div.options > div').each(function(i,d) { $(d).attr('tooltip',(2.5*i*(i+1)+5)+' '+LD.citizens).on('click',function() { $('#js_citizensPremiumOffer').find('div.tooltip > span, div.amountAndActiveBox > div:first').text($(this).attr('tooltip')); }); }); $('#premium_btn2 > h3').text(LD.barrackstxt[16]); $('#premium_btn2').find('td.left').css('text-align','justify').text(LD.barrackstxt[17]); $('#premium_btn2').find('td:not(.left) > a').text(LD.barrackstxt[18]); $('#premium_btn2 + div.contentBox01h').find('h3').text(LD.barrackstxt[view == Constant.Buildings.SHIPYARD?33:19]); var cat = view == Constant.Buildings.BARRACKS ? 'Units' : view == Constant.Buildings.SHIPYARD ? 'Ships' : false; $('#units > li').each(function(i,u) { var ucn = $(u).attr('class').split(' ')[1]; var offrank = parseInt($(u).find('[id^="js_barracksOffUpgrade"]').attr('src').replace(/\D+/g,'')); var defrank = parseInt($(u).find('[id^="js_barracksDefUpgrade"]').attr('src').replace(/\D+/g,'')); // console.log(ucn,Constant.UnitData[ucn].minlevel); $(u).find('[id^="js_barracksOffUpgrade"]').attr('title',isNaN(offrank)||LD.militaryupgrades[cat][ucn.replace('ship_','')]==undefined?'':LD.militaryupgrades[cat][ucn.replace('ship_','')][0][3-offrank]); $(u).find('[id^="js_barracksDefUpgrade"]').attr('title',isNaN(defrank)||LD.militaryupgrades[cat][ucn.replace('ship_','')]==undefined?'':LD.militaryupgrades[cat][ucn.replace('ship_','')][1][3-defrank]); $(u).find('[id^="js_barracksUnitName"]').text(LD[ucn]); $(u).find('a[id^="js_barracksUnitHelp"]').attr('title',Utils.format(LD.barrackstxt[view == Constant.Buildings.SHIPYARD?34:20],[LD[ucn]])); $(u).find('[id^="js_barracksUnitUnitsAvailable"]').text(function(){return Utils.FormatNumToStr($(this).text(),false,0);}); $(u).find('[id^="js_barracksUnitDescription"]').text(LD.unitdescs[ucn]); $(u).find('a[class="setMin"]').attr('title',LD.barrackstxt[view == Constant.Buildings.SHIPYARD?35:21]); $(u).find('a[class="setMax"]').attr('title',LD.barrackstxt[22]); var error = building.isUpgrading ? LD.barrackstxt[39] : (Constant.UnitData[ucn].minlevel>building.getLevel?Utils.format(LD.barrackstxt[40],[Constant.UnitData[ucn].minlevel]):LD.barrackstxt[41]); $(u).find('[id^="js_barracksProblemTextfield"]').html(function(){return $(this).text().length>0?error:''}); $(u).find('a[id^="js_barracksBuyMax"]').attr('title',LD.barrackstxt[22]).text(LD.barrackstxt[23]); $(u).find('[id^="js_barracksCosts"] > ul.resources > li').each(function(k,r) { switch($(r).attr('class')) { case 'citizens': $(r).attr('title',LD[$(r).attr('class')]).find('span.accesshint').text(LD[$(r).attr('class')]); $(r)[0].childNodes[1].textContent = Utils.FormatNumToStr(parseInt($(r)[0].childNodes[1].nodeValue.replace(/\D+/,'')),false,0); break; case 'wood': case 'wine': case 'glass': case 'sulfur': $(r).attr('title',LD[$(r).attr('class')+'_']).find('span.accesshint').text(LD[$(r).attr('class')+'_']); $(r)[0].childNodes[1].textContent = Utils.FormatNumToStr(parseInt($(r)[0].childNodes[1].nodeValue.replace(/\D+/,'')),false,0); break; case 'upkeep': $(r).attr('title',LD.barrackstxt[24]).find('span.accesshint').text(LD.barrackstxt[25]); $(r)[0].childNodes[1].textContent = Utils.FormatNumToStr(parseInt($(r)[0].childNodes[1].nodeValue.replace(/\D+/,'')),false,0); break; case 'time': $(r).attr('title',LD.barrackstxt[view == Constant.Buildings.SHIPYARD?36:26]).find('span.accesshint').text(LD.barrackstxt[view == Constant.Buildings.SHIPYARD?36:26]); $(r)[0].childNodes[1].textContent = Utils.FormatTimeLengthToStr(Utils.FormatLocDurToSecs($(r)[0].childNodes[1].nodeValue)*1000,6); break; } }); database.getGlobalData.updateImprovements(ucn,isNaN(offrank)?0:4-offrank,isNaN(defrank)?0:4-defrank); }); var city = ikariam.getCurrentCity; var currentUnits = {}; var i = Object.keys(data).filter((d) => d.startsWith('js_barracksUnitUnitsAvailable')).length; while(i--) { if(data['js_barracksUnitUnitsAvailable'+(i-1)]) { currentUnits[data['js_barracksUnitClass'+(i-1)]['class'].split(' ').pop()] = parseInt(data['js_barracksUnitUnitsAvailable'+(i-1)].text); } } var changes = city.military.updateUnits(currentUnits); var elem = $('#unitConstructionList'); if(elem.length) { var tasks = []; tasks.push({units:parseUnits(elem.find('> .army_wrapper .army')),completionTime: parseTime($('#buildCountDown').text()),type:type}); elem.find('div.constructionBlock').each(function() { tasks.push({units:parseUnits($(this).find('> .army_wrapper .army')),completionTime:parseTime($(this).find('h4 > span').text()),type:type}); }); changes = changes.concat(city.military.setTraining(tasks)); } elem = null; if(changes.length) { events(Constant.Events.MILITARY_UPDATED).pub(city.getId, $.exclusive(changes)); } function parseUnits(element) { var units = {}; element.each(function() { units[Constant.unitIds[this.classList.toString().match(/(\d+)/g)]] = parseInt(this.nextElementSibling.textContent.match(/(\d+)/g)); }); return units; } function parseTime(timeText) { var completionTime = new Date(); var server = ikariam.Nationality(); completionTime.setSeconds(completionTime.getSeconds() + (timeText.match(/(\d+)s/) ? parseInt(timeText.match(/(\d+)s/)[1]) : 0)); completionTime.setMinutes(completionTime.getMinutes() + (timeText.match(/(\d+)m/) ? parseInt(timeText.match(/(\d+)m/)[1]) : 0)); completionTime.setHours(completionTime.getHours() + (timeText.match(/(\d+)h/) ? parseInt(timeText.match(/(\d+)h/)[1]) : 0)); completionTime.setDate(completionTime.getDate() + (timeText.match(/(\d+)D/) ? parseInt(timeText.match(/(\d+)D/)[1]) : 0)); switch(server) { case 'de': completionTime.setDate(completionTime.getDate() + (timeText.match(/(\d+)T/) ? parseInt(timeText.match(/(\d+)T/)[1]) : 0)); break; case 'gr': completionTime.setDate(completionTime.getDate() + (timeText.match(/(\d+)M/) ? parseInt(timeText.match(/(\d+)M/)[1]) : 0)); break; } return completionTime.getTime(); } var tp = {'army':'troops','fleet':'fleet'}; render.toast(Utils.format('{0}: {1} {2} {3} {4}',[LD.updated_,LD[tp[type]],LD.tothe,LD[city.isCapital?'capital':'colony'],LD.leftquot+city._name+LD.rightquot])); }, parsePort: function(view,data) { var LD = Constant.LanguageData[database.settings.languageChange.value]; // console.log(LD.porttxt); // console.log(data); // console.log(unsafeWindow); // console.log(unsafeWindow.ikariam); $('#js_mainBoxHeaderTitle').text(LD[view]); $('#port').find('div.buildingDescription > h1').text(LD[view]); $('#port').find('div.buildingDescription > p:first').css({'text-align':'justify','margin':'0px 17px 10px 0px'}).text(LD.porttxt[0]); $('#js_tabSendTransporter > b').text(LD.porttxt[1]); $('#js_tabBuyTransporter > b').text(LD.porttxt[2]); $('#js_tabTradeRoutes > b').text(LD.porttxt[3]); $('#tabSendTransporter > div:first > h3').text(LD.porttxt[4]); $.each(Object.keys(database.cities),function(k,c) { $('#js_cityBox'+c+',#js_cityBoxLink'+c).attr('title',Utils.format(LD.porttxt[5],[LD[database.getCityFromId(c).isCapital?'capital':'colony'],LD.leftquot+database.getCityFromId(c).getName+LD.rightquot])); // console.log(k,c); }); $('#js_noCitiesInfoBox > p').text(LD.porttxt[6]).next('a').text(LD.porttxt[7]); $('#tabSendTransporter > div:nth-child(2) > h3').text(LD.porttxt[8]); $('ul.cities').css('text-align','center'); if($('#js_noCitiesInfoBox').css('display')=='none') { $('[id^="js_cityBox"].cityBox').css({'display':'inline-block','float':'unset','width':'111px','height':'100px'}); $('[id^="js_cityBoxLink"]').css('background-size','108px 102px'); $('[id^="js_cityBoxCoords"]').css('top','7px'); $('[id^="js_cityBoxTradegood"]').css({'top':'10px','right':'21px'}); var px = [2,-67,-67,-132,-136,-136,-202,-202,-202,-278,-278,-278,-347,-347,-347,-417,-417,-485,-485,-485,-485,-485,-485,-485]; $('[id^="js_cityBoxLevel"]').css({'background-size':'557px 65px','background-position':(px[parseInt($('[id^="js_cityBoxLevel"]').attr('class').replace(/\D+/,''))-1])+'px','top':'7px','right':'29px'}); $('[id^="js_cityBoxLevel"] + div.name').css({'top':'77px','left':'8px','width':'90px'}); } var city = ikariam.getCurrentCity; Utils.waitElem('#tabSendTransporter > div:nth-child(2) > div.content > table > tbody > tr:not(:first)',portparser); function portparser() { // console.log(unsafeWindow.ikariam); // var movs = unsafeWindow.ikariam.TemplateView.viewScripts.militaryAdvisor.militaryMovementsFleetMovements || undefined; // if(movs!==undefined) // { // var filter = movs.currentFilter; // var hostile = movs.hostileMissions; // var states = movs.missionStates; // var missions = movs.missions; // var movements = movs.movements; // console.log(movs); // console.log(filter,hostile,states,missions,movements); // } } var Out = $('#js_noOwnOutgoingShips'); var For = $('#js_noStrangeOutgoingShips'); var In = $('#js_noIncomingShips'); var Rd = $('#js_noPlunderShips'); // var portmtitles = [['Target','Quantity','Mission','Status'],['','','',''],['Origin','Quantity','Mission','Arrival'],['','','','']]; var portmtitles = [[LD.porttxt[14],LD.porttxt[15],LD.porttxt[16],LD.porttxt[17]],[LD.porttxt[20],LD.porttxt[21],LD.porttxt[22],LD.porttxt[23]],[LD.porttxt[22],LD.porttxt[23],LD.porttxt[24],LD.porttxt[25]],[LD.porttxt[28],LD.porttxt[29],LD.porttxt[30],LD.porttxt[31]]]; var txt = ''; var eids = []; var now = moment(); $('div.tcap').each(function(k,div) { $(div).text(LD.porttxt[k+9]); $(div).next('p:first').text(LD.porttxt[13]); if($(div).next('table').length==1) { var interv = setInterval(function() { $(div).next('table').find('tbody:first > tr').each(function(k,r) { if(k>0 && data['js_outgoingOwnCountDown'+(k-1)]!=undefined) { $('#empire_outgoingOwnCountDownCounter'+(k-1)).html(Utils.FormatTimeLengthToStr(parseInt(data['js_outgoingOwnCountDown'+(k-1)].progressbar.enddate)*1000-moment(),6)); } }); $('td.city_name > span.clickable, td.building > span.clickable, div.city, div.temple, div.pirates, div.spies, div.barracks, div.shipyard, div#HelpTab > span[id^="help"], span.happy, span.growth, span.scientists, [id^="position"], #dropDown_js_citySelectContainer, #js_buildingUpgradeButton').on('click',function(){clearInterval(interv);}); // if(moment()>parseInt(data['js_outgoingOwnCountDown'+(k-1)].progressbar.enddate)*1000) { clearInterval(interv); } },1000); $(div).next('table').find('tbody:first > tr').each(function(i,tr) { $(tr).children('th,td').each(function(a,td) { if(i==0) { $(td).text(portmtitles[k][a]); } else { var target = $('#js_outgoingOwnShipName'+(i-1)).text(); // Όνομα πόλης var resources = {}; $('#js_outgoingOwnShipTooltip'+(i-1)+' > table > tbody > tr:not(:first) > td').each(function(b,t) { if(b%2==0) { resources[$(t).find('img').attr('src').split('_')[1].split('.')[0]] = parseInt($(t).next('td').text().replace(/(\d+)[,.](?=\d{3}(\D|$))/g,'$1')); $(t).css({'width':'30px'}).next('td').css({'float':'left','padding-left':'5px'}).text(Utils.FormatNumToStr(resources[$(t).find('img').attr('src').split('_')[1].split('.')[0]],false,0)); } }); $('#js_incomingShipTooltip'+(i-1)+' > table > tbody > tr:not(:first) > td').each(function(b,t) { if(b%2==0) { $(t).css({'width':'30px'}).next('td').css({'float':'left','padding-left':'5px'}).text(function(){return Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0)}); } }); var ships = [parseInt($('#js_outgoingOwnShipSet'+(i-1)).text()),parseInt($('#js_incomingShipSet'+(i-1)).text())]; // Πλοία $('#js_outgoingOwnShipMission'+(i-1)).text(LD.porttxt[19]); $('#js_incomingShipMission'+(i-1)).text(LD.porttxt[19]); var countdown = $('#js_outgoingOwnCountDownCounter'+(i-1)).text(); // Χρόνος φόρτωσης // var eid = parseInt($('#js_accloading'+(i-1)).attr('href').split('&')[1].split('=')[1]); // Ταυτότητα μετακίνησης $('#js_outgoingOwnShipTooltip'+(i-1)+' > table > tbody > tr:first > th:first').text(LD.porttxt[18]); $('#js_incomingShipTooltip'+(i-1)+' > table > tbody > tr:first > th:first').text(LD.porttxt[18]); // var callback = $('#js_callBackFleet'+(i-1)).text(); // Διακοπή φόρτωσης } }); if(i>0 && data['js_outgoingOwnCountDown'+(i-1)]!=undefined && $('#empire_outgoingOwnCountDownCounter'+(i-1)).length==0) { $('#js_outgoingOwnCountDownCounter'+(i-1)).hide().after('
    '+Utils.FormatTimeLengthToStr(parseInt(data['js_outgoingOwnCountDown'+(i-1)].progressbar.enddate)*1000-now,6)+'
    '); $('#js_outgoingOwnShipState'+(i-1)).html(LD.porttxt[20]); $('#js_accloading'+(i-1)).attr('title',LD.porttxt[21]); $('#js_callBackFleet'+(i-1)).attr('title',LD.porttxt[26]); } if(i>0 && data['js_incomingShipState'+(i-1)]!=undefined && $('#empire_incomingShipState'+(i-1)).length==0) {// js_incomingShipState0 $('#js_incomingShipState'+(i-1)).html(moment($('#js_incomingShipState'+(i-1)).text(),'HH|mm|ss').format('H:mm:ss')); } }); } }); // console.log(data); var citysort = ''; $.each(database.settings.cityOrder.value,function(k,c) { citysort += $('#js_noCitiesInfoBox').parent().find('li#js_cityBox'+c).length==1 ? $('#js_noCitiesInfoBox').parent().find('li#js_cityBox'+c).prop('outerHTML') : ''; }); $('li[id^="js_cityBox"]').remove(); $('#js_noCitiesInfoBox').before(citysort); $('li[id^="js_cityBox"]:eq('+(Math.ceil($('li[id^="js_cityBox"]').length/2)-1)+')').after('
    '); $('#tabSendTransporter > div:last > h3').text(LD.porttxt[32]); $('#tabSendTransporter > div:last > div.content > p').text(LD.porttxt[33]); $('[id^="js_loadingSpeedImgPort"],[id^="js_loadingSpeedPort"]').each(function(i,ld) { if(i%2==0) { $(ld).attr('title',function(){return Utils.format(LD.porttxt[34],[$(this).attr('title').replace(/\D+/g,'')]);}); } else { $(ld).text(function(){return Utils.format(LD.porttxt[35],[Utils.FormatNumToStr($(this).text().replace(/\D+/g,''),false,0)]);}); } }); $('#js_governmentBonusRow > td > img').attr('title',function(){return Utils.format(LD.porttxt[36],[$(this).attr('title').replace(/\D+/g,'')]);}); $('#js_governmentBonusValue').text(function(){return Utils.format(LD.porttxt[35],[Utils.FormatNumToStr($(this).text().replace(/\D+/g,''),false,0)]);}); $('#js_wonderBonusRow > td > img').attr('title',function(){return Utils.format(LD.porttxt[37],[$(this).attr('title').replace(/\D+/g,'')]);}); $('#js_wonderBonusValue').text(function(){return Utils.format(LD.porttxt[35],[Utils.FormatNumToStr($(this).text().replace(/\D+/g,''),false,0)]);}); $('#js_loadingSpeedSumValue').text(function(){return Utils.format(LD.porttxt[35],[Utils.FormatNumToStr($(this).text().replace(/\D+/g,''),false,0)]);}); $('#tabBuyTransporter > div > h3').text(LD.porttxt[38]); $('#tabBuyTransporter > div > div > p').text(LD.porttxt[39]); $('#tabBuyTransporter > div > div > div > a').attr('title',LD.porttxt[40]); $('#tabBuyTransporter > div > div > div > div').removeAttr('title')[0].childNodes[2].textContent = ' / '+180; var costs = [...Array(181).keys()].slice(1).map(x => 3*Math.round(4500*Math.pow(1.03,x)-4475)); var accumulative = []; costs.reduce(function(a,b,i) { return accumulative[i] = a+b; },0); var allcosts = []; for(var i=0;i<180;i++) { allcosts[i] = [costs[i],accumulative[i],Math.max(...accumulative)-(isNaN(accumulative[i-1])?0:accumulative[i-1])]; } var start = parseInt($('#js_currentBuyableTransporters').text())+1; var tip = ''; for(var i=1;i<=180;i++) { if(i%30==1) { tip += ''; } } tip += '
    '; } tip += ''; if(i%30==0) { tip += '
    '+i+'.:'+Utils.FormatNumToStr(allcosts[i-1][0],false,0)+''+Utils.FormatNumToStr(allcosts[i-1][1],false,0)+'('+Utils.FormatNumToStr(allcosts[i-1][2],false,0)+')
    '; // console.log(database.getGlobalData.finance.currentGold); $('#js_transporterTooltip').parent().empty().addClass('empiretooltip').append(''); $('#js_transporterCosts').prev('span').text(LD.porttxt[42]); $('#js_transporterCosts').text(function(){return Utils.FormatNumToStr($(this).text().replace(/\D+/g,''),false,0);}); if(allcosts[start-1]!=undefined) { $('#js_buyTransporterWarning').removeClass('bold').html(allcosts[start-1][0]>Math.floor(database.getGlobalData.finance.currentGold) ?Utils.format(LD.porttxt[44],[Utils.FormatNumToStr(allcosts[start-1][0]-Math.floor(database.getGlobalData.finance.currentGold),false,0)]) : ''); } else { $('#js_buyTransporterWarning').addClass('bold').text(LD.porttxt[45]); } $('#js_buyTransporterAction').text(LD.porttxt[43]).on('click',function() { $.ajax( { success: function() { if(allcosts[start-1]!=undefined) { $('#js_buyTransporterWarning').removeClass('bold').html(allcosts[start-1][0]>Math.floor(database.getGlobalData.finance.currentGold) ?Utils.format(LD.porttxt[44],[Utils.FormatNumToStr(allcosts[start-1][0]-Math.floor(database.getGlobalData.finance.currentGold),false,0)]) : ''); } else { $('#js_buyTransporterWarning').addClass('bold').text(LD.porttxt[45]); } $('#js_transporterCosts').text(function(){return Utils.FormatNumToStr($(this).text().replace(/\D+/g,''),false,0);}); } }); }); $('#js_currentBuyablePhoenicianTransporters').parent().contents().last().each(function(){$(this).replaceWith(' / '+40);}); var costs = [...Array(41).keys()].slice(1).map(x => (x<5?-3*x+77:(x<17?-2*x+73:-x+57))); var accumulative = []; costs.reduce(function(a,b,i) { return accumulative[i] = a+b; },0); var allcosts = []; for(var i=0;i<40;i++) { allcosts[i] = [costs[i],accumulative[i],Math.max(...accumulative)-(isNaN(accumulative[i-1])?0:accumulative[i-1])]; } var start = parseInt($('#js_currentBuyablePhoenicianTransporters').text())+1; var tip = LD.porttxt[46]+''; for(var i=1;i<=40;i++) { if(i%10==1) { tip += ''; } } tip += '
    '; } tip += ''; if(i%10==0) { tip += '
    '+i+'.:'+Utils.FormatNumToStr(allcosts[i-1][0],false,0)+''+Utils.FormatNumToStr(allcosts[i-1][1],false,0)+'('+Utils.FormatNumToStr(allcosts[i-1][2],false,0)+')
    '; $('#js_phoenicianTransporterTooltip').parent().empty().addClass('empiretooltip').append(''); $('#js_phoenicianTransporterCosts').prev('span').text(LD.porttxt[42]); $('#js_buyPhoenicianTransporterAction').html(LD.porttxt[47]); if(allcosts[start-1]!=undefined) { $('#js_buyPhoenicianTransporterWarning > a').html(allcosts[start-1][0]>parseInt($('#headlineAmbrosia').text()) ? Utils.format('{0}
    {1}',[Utils.format(LD.porttxt[allcosts[start-1][0]-parseInt($('#headlineAmbrosia').text())==1?49:48],[allcosts[start-1][0]-parseInt($('#headlineAmbrosia').text())]),LD.porttxt[50]]) : ''); } else { $('#js_buyPhoenicianTransporterWarning > a').text(LD.porttxt[45]); } $('#js_buyTransporterAction').text(LD.porttxt[43]).on('click',function() { $.ajax( { success: function() { if(allcosts[start-1]!=undefined) { $('#js_buyPhoenicianTransporterWarning > a').html(allcosts[start-1][0]>parseInt($('#headlineAmbrosia').text()) ? Utils.format('{0}
    {1}',[Utils.format(LD.porttxt[allcosts[start-1][0]-parseInt($('#headlineAmbrosia').text())==1?49:48],[allcosts[start-1][0]-parseInt($('#headlineAmbrosia').text())]),LD.porttxt[50]]) : ''); } else { $('#js_buyPhoenicianTransporterWarning > a').text(LD.porttxt[45]); } $('#js_transporterCosts').text(function(){return Utils.FormatNumToStr($(this).text().replace(/\D+/g,''),false,0);}); } }); }); $('#tabBuyTransporter > div > div.content.buyTransporter > div.tradeShip.phoenician').css('z-index','999'); $('#tabBuyTransporter > div > div.content.buyTransporter > table > tbody > tr').each(function(k,tr) { switch(k) { case 0: $(tr).find('th').text(LD.porttxt[51]+':'); break; case 1: $(tr).find('td:first > a').text(LD.porttxt[52]); break; case 2: $(tr).find('td:first').attr('title',LD[database.getGlobalData.getGovernmentType]).find('a').text(LD.porttxt[53]); break; case 3: $(tr).find('td:first').attr('title',LD.porttxt[54]).text(LD.porttxt[54]); break; case 4: case 5: $(tr).find('th,td:first').text(LD.porttxt[55]+(k==4?':':'')); break; case 6: $(tr).find('td:first > a').text(LD.porttxt[56]); break; } }); $('#tradeRouteBox > h3').text(LD.porttxt[57]); $('#tradeRouteBoxContent > p').css('text-align','justify').html(LD.porttxt[59]); var serverTimezoneOffset = unsafeWindow.dataSetForView.serverTimezoneOffset; var diff = (moment().utcOffset()*60-serverTimezoneOffset)/3600; $('[id^="tradeRouteForm"]').each(function(k,r) { $(r).prev('div').find('div:first').text(LD.porttxt[60]+':'); $(r).prev('div').find('div:first + div').text(LD.porttxt[61]); if($(r).find('div.status > span').hasClass('red')) { $(r).find('div.status > span').text(LD.porttxt[62]); $(r).find('div.renew > a').css({'position':'relative','right':'10px'}).attr('title',LD.porttxt[63]).text(LD.porttxt[63]); } else if($(r).find('div.status > span').hasClass('green')) { var dur = $(r).find('div.status > span').text().split(' ').splice(1).join(' '); $(r).find('div.status > span').html(Utils.format(LD.porttxt[67],[Utils.FormatTimeLengthToStr(Utils.FormatLocDurToSecs(dur)*1000,3)])); $(r).find('div.renew > a').css({'position':'relative','right':'10px'}).attr('title',LD.porttxt[68]).text(LD.porttxt[68]); } $(r).find('div.orderBtnTraderoute').attr('title',LD.porttxt[63]); $(r).find('div.save > input').attr('title',LD.porttxt[64]); $(r).find('div.delete > a').attr('title',LD.porttxt[65]); if($(r).find('div.extend > input').is(':not(:checked)')) { $(r).find('div.extend > input').attr('title',LD.porttxt[69]); $(r).find('div.extend > div.tooltip').html('
    '+LD.porttxt[70]+'
    '); $(r).find('div.extend > span.checkbox_label').text(LD.porttxt[69]); } else if($(r).find('div.extend > input').is(':checked')) { $(r).find('div.extend > input').attr('title',LD.porttxt[71]); $(r).find('div.extend > div.tooltip').html('
    '+LD.porttxt[72]+'
    '); $(r).find('div.extend > span.checkbox_label').text(LD.porttxt[71]); } $('#tradegood'+k+' > option').each(function(i,op) { $(op).attr('title',LD[Object.values(Constant.Resources).slice(1)[$(op).attr('value')]+'_']).text(LD[Object.values(Constant.Resources).slice(1)[$(op).attr('value')]+'_']); $('#dropDown_js_tradegood'+k+'Container > div.bg > ul > li[selectvalue="'+$(this).attr('value')+'"] > a').text(LD[Object.values(Constant.Resources).slice(1)[$(op).attr('value')]+'_']); }); $('#time'+k+' > option').each(function(i,op) { $(op).text(function(){return (parseInt($(this).attr('value'))+diff+(parseInt($(this).attr('value'))+diff<0?24:(parseInt($(this).attr('value'))+diff>=24?-24:0)))+':00';}); $('#dropDown_js_time'+k+'Container > div.bg > ul > li[selectvalue="'+$(this).attr('value')+'"] > a').text((parseInt($(this).attr('value'))+diff+(parseInt($(this).attr('value'))+diff<0?24:(parseInt($(this).attr('value'))+diff>=24?-24:0)))+':00'); if($(op).is(':selected')) { // console.log($(op).text()); $(op).parent().next('span.dropDownButton').find('a').text($(op).text()); } }); $('#time'+k).html($('#time'+k).find('option').sort(function(x,y) {return $(x).text().padStart(5,'0') > $(y).text().padStart(5,'0') ? 1 : -1;})); $('#dropDown_js_time'+k+'Container > div.bg > ul').html($('#dropDown_js_time'+k+'Container > div.bg > ul').find('li').sort(function(x,y) {return $(x).text().padStart(5,'0') > $(y).text().padStart(5,'0') ? 1 : -1;}).removeAttr('class').each(function(a,b){$(b).addClass(a==0? 'first-child':(a==$('#dropDown_js_time'+k+'Container > div.bg > ul').find('li').length-1?'last-child':''));})); }); $('#tradeRouteBox').find('div.centerButton > a').text(LD.porttxt[66]); citysort = []; // var startval = []; $('[id^="tradeRouteStart"],[id^="tradeRouteEnd"]').each(function(k,c) { var num = parseInt($(c).attr('id').replace(/\D+/g,'')); var startend = $(c).attr('id').indexOf('Start')!=-1?0:1; var fromto = $(c).attr('id').indexOf('Start')!=-1?LD.traderoutestxt[1]:($(c).attr('id').indexOf('End')!=-1?LD.traderoutestxt[2]:null); // startval[num] = []; citysort[num] = []; // startval[num][startend] += $(c).find('option').is(':selected')? $(c).find('option').text() : ''; citysort[num][startend] = ''; $.each(database.settings.cityOrder.value,function(i,t) { citysort[num][startend] += $(c).find('option[value="'+t+'"]').prop('outerHTML'); }); $(c).empty().append(citysort[num][startend]); if($(c).find('option').is(':selected')) { // console.log($(c).find('option:selected').text()); $(c).next('span.dropDownButton').addClass($(c).find('option:selected').attr('class')).find('a').text($(c).find('option:selected').text()); } }); citysort = ''; $('[id^="dropDown_js_tradeRoute"]').each(function(k,c) { var fromto = $(c).attr('id').indexOf('Start')!=-1?LD.traderoutestxt[1]:($(c).attr('id').indexOf('End')!=-1?LD.traderoutestxt[2]:null); var citysort = '
  • -- '+(fromto!=null?fromto:'')+' --
  • '; $.each(database.settings.cityOrder.value,function(i,t) { citysort += $(c).find('div.bg > ul > li[selectvalue="'+t+'"]').prop('outerHTML'); }); $(c).find('div.bg > ul').empty().append(citysort); // console.log(citysort); }); $('[id^="dropDown_js_tradeRoute"] > div.bg > ul > li').each(function(k,c) { $(c).removeClass('first-child last-child'); $(c).addClass(k==0? 'first-child':(k==database.settings.cityOrder.value.length?'last-child':'')); }); // console.log(LD.porttxt); render.toast(Utils.format('{0}: {1} {2} {3} {4}',[LD.updated_,LD.port,LD.tothe,LD[city.isCapital?'capital':'colony'],LD.leftquot+city._name+LD.rightquot])); }, parseTransport: function(view,html,data) { // translation $('#js_mainBoxHeaderTitle,#mission > div.buildingDescription > h1').html(LD.transprttxt[0]).next('p').html(LD.transprttxt[1]); $('#setPremiumTransports > h3').html(LD.transprttxt[2]); $('#setPremiumTransports > h3 + div > p.description').css('text-align','justify').html(Utils.format(LD.transprttxt[3],[parseInt($('#js_GlobalMenu_maxTransporters').text())])).next('label').html(LD.transprttxt[2]+':'); $('#slider_premium_min').attr('title',LD.transprttxt[4]).find('span').html(LD.transprttxt[5]); $('#slider_premium_max').attr('title',LD.transprttxt[6]).find('span').html(LD.transprttxt[7]); $('#ambrosiaWarningBox').css({'z-index':1,'left':'336px'}).find('a').html(Utils.format(LD.transprttxt[8],[''])); $('#premiumTransporterText').html(Utils.format(LD.transprttxt[9],['0',parseInt($('#headlineAmbrosia').text())])); $('#transportGoods > h3').html(LD.transprttxt[10]).next('div').find('p:first').html(Utils.format(LD.transprttxt[11],[''+ikariam.getCurrentCity.getName+'',''+$('#missionSummary > div > ul > li.journeyTarget').contents().last().text().trim()+''])); $('#transportGoods').find('ul.resourceAssign > li').each(function(k,li) { var res = $(li).attr('class'); $(li).attr('title',Utils.format(LD.transprttxt[12],[LD.transprttxt[13][res]])).find('label').html(Utils.format(LD.transprttxt[12],[LD.transprttxt[13][res]])+':'); $('#slider_'+res+'_min').attr('title',LD.transprttxt[14]); $('#slider_'+res+'_max').attr('title',LD.transprttxt[15]); $('#cargo_'+res+'_minus').attr('title',LD.transprttxt[16]); $('#cargo_'+res+'_plus').attr('title',LD.transprttxt[17]); }); $('#transportGoods').find('div.transportersCapacity > h4').html(LD.transprttxt[18]); $('#transportGoods').find('div.transportersCapacity > p').attr('title',LD.transprttxt[19]).find('span').attr('title',LD.transprttxt[19]).parent().contents().last().each(function(){$(this).replaceWith(' '+LD.transprttxt[20]);}); $('#empire_capacitySpeedValue,#empire_summary_capacity,#empire_speedValue,#empire_summary_triton,#empire_summary_wonder,#empire_summary_total,#floorquantities,#empire_loadingTime,#empire_journeyTime,#empire_arrival').remove(); $('#capacitySpeedValue').hide().after('+ '+Utils.FormatNumToStr(0,false,2)+' %'); $('#summary_capacity').hide().after('+ '+Utils.FormatNumToStr(0,false,2)+' %'); $('#capacityTextfieldValue').on('DOMNodeInserted DOMNodeRemoved DOMSubtreeModified',function() { $('#empire_capacitySpeedValue').html('+ '+Utils.FormatNumToStr((500-parseInt($('#capacityTextfieldValue').text()))/6,false,2)+' %'); $('#empire_summary_capacity').html('+ '+Utils.FormatNumToStr((500-parseInt($('#capacityTextfieldValue').text()))/6,false,2)+' %'); }); $('#setPremiumJetPropulsion > h4').html(LD.transprttxt[21]); $('#setPremiumJetPropulsion > p:first').attr('title',LD.transprttxt[19]).find('span').attr('title',LD.transprttxt[19]).parent().contents().last().each(function(){$(this).replaceWith(' '+LD.transprttxt[20]);}); $('#speedValue').hide().after('+ '+Utils.FormatNumToStr(0,false,0)+' %'); $('#summary_triton').hide().after('+ '+Utils.FormatNumToStr(0,false,0)+' %'); $('#jetTextfieldValue').on('DOMNodeInserted DOMNodeRemoved DOMSubtreeModified',function() { $('#empire_speedValue').html('+ '+Utils.FormatNumToStr(parseInt($('#jetTextfieldValue').text().replace(/\D+/g,'')),false,0)+' %'); $('#empire_summary_triton').html('+ '+Utils.FormatNumToStr(parseInt($('#jetTextfieldValue').text().replace(/\D+/g,'')),false,0)+' %'); }); $('#summary_wonder').hide().after('+ '+Utils.FormatNumToStr($('#summary_wonder').val()==undefined?0:$('#summary_wonder').val().replace(/[+%]/g,''),false,2)+' %'); $('#summary_total').hide().after('+ '+Utils.FormatNumToStr(((500-parseInt($('#capacityTextfieldValue').text()))/6)+parseInt($('#jetTextfieldValue').text().replace(/\D+/g,''))+parseFloat($('#summary_wonder').val()==undefined?0:$('#summary_wonder').val().replace(/[+%]/g,'')),false,2)+' %'); $('#capacityTextfieldValue,#jetTextfieldValue').on('DOMNodeInserted DOMNodeRemoved DOMSubtreeModified',function() { $('#empire_summary_total').html('+ '+Utils.FormatNumToStr(((500-parseInt($('#capacityTextfieldValue').text()))/6)+parseInt($('#jetTextfieldValue').text().replace(/\D+/g,''))+parseFloat($('#summary_wonder').val()==undefined?0:$('#summary_wonder').val().replace(/[+%]/g,'')),false,2)+' %'); }); $('#setPremiumJetPropulsion > div.jetContainer > div:first').html(LD.transprttxt[22]); $('#setPremiumJetPropulsion > p:last').css('text-align','justify').html(LD.transprttxt[23]); $('#missionSummary > div.summaryBox > h3').html(LD.transprttxt[24]); $('#missionSummary > div.summaryBox > ul > li.journeyTime').css({'margin-left':'5px','padding-left':'36px'}).attr('title',LD.transprttxt[25]); $('#missionSummary > div.summaryBox > ul > li.journeyTime > div:first > span:first').html(LD.transprttxt[26]+':'); $('#missionSummary > div.summaryBox > ul > li.journeyTime > div:last > span:first').html(LD.transprttxt[25]+':'); $('#missionSummary > div.summaryBox > ul > li.arrival').css({'margin-left':'2px','padding-left':'36px'}).attr('title',LD.transprttxt[27]); $('#missionSummary > div.summaryBox > ul > li.journeyTarget').css({'margin-left':'2px','padding-left':'36px'}).attr('title',LD.transprttxt[28]).find('span').html(LD.transprttxt[28]+':').parent().contents().last().each(function(){$(this).replaceWith(' '+$(this).text().trim());}); $('#transporterCount').css('width','34px'); $('#totalTansporters').css('margin-left','0px'); $('ul.cargoInfo > li.rowTitle').html(LD.transprttxt[29]+':'); $('ul.cargoInfo > li:not(:first)').each(function(k,li) { var res = $(li).attr('class'); $(li).attr('title',LD.transprttxt[30][res]); }); $('ul.speedInfo > li.rowTitle').html(LD.transprttxt[31]+':'); $('#submit').val(LD.transprttxt[32]); $('#tradeRoute > h3').html(LD.transprttxt[33]); $('#tradeRoute p:first').css('text-align','justify').html(LD.transprttxt[34]); $('#js_tradeRouteButton').val(LD.transprttxt[35]); // checkbox $('#minusPlusValue').after(''); if(database._globalData.floorquantities===true) { $('#floorquantities').attr('checked','checked'); } else {$('#floorquantities').removeAttr('checked'); } $.ajax( { success: function() { // console.log(unsafeWindow); // console.log(unsafeWindow.transportConfig); $('#transportGoods').find('ul.resourceAssign > li').each(function(k,li) { var res = $(li).attr('class'); // console.log(unsafeWindow['i'+res].range); }); $('#floorquantities').on('change click input',function(event) { database._globalData.floorquantities = $(this).is(':checked'); if($(this).is(':checked')) { var cp = parseInt($('#capacityTextfieldValue').text()); // console.log(cp); $('#transportGoods').find('ul.resourceAssign > li').each(function(k,li) { var res = $(li).attr('class'); var v = parseInt(isNaN($('#textfield_'+res).val())? 0 : $('#textfield_'+res).val()); $('#textfield_'+res).val(parseInt(Math.floor(v/cp))==0 ? v : parseInt(Math.floor(v/cp))*cp); }); } }); } }); /* if(database._globalData.floorquantities==true) { var cp = parseInt($('#capacityTextfieldValue').text()); $('#transportGoods').find('ul.resourceAssign > li').each(function(k,li) { var res = $(li).attr('class'); var v = isNaN($('#textfield_'+res).val())? 0 : $('#textfield_'+res).val(); $('#textfield_'+res).val(parseInt(Math.floor(v/cp))==0 ? v : parseInt(Math.floor(v/cp))*cp); }); $('#capacityTextfieldValue,#loadingTime').on('DOMNodeInserted DOMNodeRemoved DOMSubtreeModified',function() { var cp = parseInt($('#capacityTextfieldValue').text()); $('#transportGoods').find('ul.resourceAssign > li').each(function(k,li) { var res = $(li).attr('class'); var v = isNaN($('#textfield_'+res).val())? 0 : $('#textfield_'+res).val(); // console.log(isNaN($('#textfield_'+res).val())? 0 : $('#textfield_'+res).val()); $('#textfield_'+res).val(parseInt(Math.floor(v/cp))==0 ? v : parseInt(Math.floor(v/cp))*cp); }); }); } else { $('#transportGoods').find('ul.resourceAssign > li').each(function(k,li) { var res = $(li).attr('class'); $('#textfield_'+res).val(parseInt(isNaN($('#textfield_'+res).val())? 0 : $('#textfield_'+res).val())); }); } $.ajax( { success: function() { $('#transportGoods').find('ul.resourceAssign > li').each(function(k,li) { var res = $(li).attr('class'); $('#textfield_'+res).val(parseInt(isNaN($('#textfield_'+res).val())? 0 : $('#textfield_'+res).val())); }); var trD = unsafeWindow.transportConfig; var avships = trD.availableTransporters; var speed = trD.transporterSpeed; var lspeed = trD.loadingSpeed; var gov = trD.governmentBonus; var sca = trD.marineChartArchiveBonus; var psd = trD.poseidonEffect; var srv = ikariam.Server() == 's201' || ikariam.Server() == 's202' ? 3 : 1; var draft = 1+((500-parseInt($('#capacityTextfieldValue').text()))/6)/100; var triton = 1+parseInt($('#jetTextfieldValue').text().replace(/\D+/g,''))/100; var rarr = {}; var sum = 0; var rsc = Object.values(Constant.Resources).slice(1); $('div.minusPlusValueOuterContainer,div.transportersCapacity > div.sliderBox,#setPremiumJetPropulsion > div.sliderBox').css('opacity',avships==0 && parseInt($('#totalTansporters').text().replace(/\D+/g,''))==0?0.5:1); $('#totalTansporters').on('DOMNodeInserted DOMNodeRemoved DOMSubtreeModified',function() { $('div.minusPlusValueOuterContainer,div.transportersCapacity > div.sliderBox,#setPremiumJetPropulsion > div.sliderBox').css('opacity',avships==0 && parseInt($('#totalTansporters').text().replace(/\D+/g,''))==0?0.5:1); }); $.each(rsc,function(k,res) { var r = $('input#textfield_'+res); rarr[res] = $('input#textfield_'+res).length==1 ? (isNaN(parseInt($(r).val())) ? 0 : parseInt($(r).val())) : 0; $('#summary_'+res).hide().after(''+rarr[res]+''); }); sum = Object.values(rarr).reduce((a,b)=>a+b); $('#submit').prop('disabled',sum==0); $('#loadingTime').hide().after(''+(sum==0?0+LD.second:Utils.FormatTimeLengthToStr(sum*1000/lspeed,6))+''); $('#journeyTime').hide().after(''+Utils.FormatTimeLengthToStr(Math.ceil((trD.distance*trD.fleetJourneyTime*1000)/(speed*draft*triton*gov*sca*(1+psd)*srv)),6)+''); $('#loadingTime').on('DOMNodeInserted DOMNodeRemoved DOMSubtreeModified',function() { $.each(rsc,function(k,res) { var r = $('input#textfield_'+res); rarr[res] = $('input#textfield_'+res).length==1 ? (isNaN(parseInt($(r).val())) ? 0 : parseInt($(r).val())) : 0; $('#empire_summary_'+res).html(Utils.FormatNumToStr(rarr[res],false,0)); }); sum = Object.values(rarr).reduce((a,b)=>a+b); $('#empire_loadingTime').html(sum==0?0+LD.second:Utils.FormatTimeLengthToStr(sum*1000/lspeed,6)); $('#submit').prop('disabled',sum==0); }); $('#capacityTextfieldValue,#jetTextfieldValue').on('DOMNodeInserted DOMNodeRemoved DOMSubtreeModified',function() { draft = 1+((500-parseInt($('#capacityTextfieldValue').text()))/6)/100; triton = 1+parseInt($('#jetTextfieldValue').text().replace(/\D+/g,''))/100; $('#empire_journeyTime').html(Utils.FormatTimeLengthToStr(Math.ceil((trD.distance*trD.fleetJourneyTime*1000)/(speed*draft*triton*gov*sca*(1+psd)*srv)),6)); }); $('#arrival').hide().after(''+Utils.FormatFullTimeToDateString(moment()+Math.ceil((trD.distance*trD.fleetJourneyTime*1000)/(speed*draft*triton*gov*sca*(1+psd)*srv))+sum*1000/lspeed)+''); var transportinterv = setInterval(function() { draft = 1+((500-parseInt($('#capacityTextfieldValue').text()))/6)/100; triton = 1+parseInt($('#jetTextfieldValue').text().replace(/\D+/g,''))/100; $.each(rsc,function(k,res) { var r = $('input#textfield_'+res); rarr[res] = $('input#textfield_'+res).length==1 ? (isNaN(parseInt($(r).val())) ? 0 : parseInt($(r).val())) : 0; }); sum = Object.values(rarr).reduce((a,b)=>a+b); $('#empire_arrival').html(Utils.FormatFullTimeToDateString(moment()+Math.ceil((trD.distance*trD.fleetJourneyTime*1000)/(speed*draft*triton*gov*sca*(1+psd)*srv))+sum*1000/lspeed)); $('#capacityTextfieldValue,#jetTextfieldValue,#loadingTime').on('DOMNodeInserted DOMNodeRemoved DOMSubtreeModified',function() { draft = 1+((500-parseInt($('#capacityTextfieldValue').text()))/6)/100; triton = 1+parseInt($('#jetTextfieldValue').text().replace(/\D+/g,''))/100; $.each(rsc,function(k,res) { var r = $('input#textfield_'+res); rarr[res] = $('input#textfield_'+res).length==1 ? (isNaN(parseInt($(r).val())) ? 0 : parseInt($(r).val())) : 0; }); sum = Object.values(rarr).reduce((a,b)=>a+b); $('#empire_arrival').html(Utils.FormatFullTimeToDateString(moment()+Math.ceil((trD.distance*trD.fleetJourneyTime*1000)/(speed*draft*triton*gov*sca*(1+psd)*srv))+sum*1000/lspeed)); }); },1000); $('#submit').on('click',function() { clearInterval(transportinterv); }); // console.log(unsafeWindow.transportConfig); } }); $('#capacityTextfieldValue,#loadingTime').on('DOMNodeInserted DOMNodeRemoved DOMSubtreeModified',function() { $('#transportGoods').find('ul.resourceAssign > li').each(function(k,li) { var res = $(li).attr('class'); var v = isNaN($('#textfield_'+res).val())? 0 : $('#textfield_'+res).val(); // console.log(isNaN($('#textfield_'+res).val())? 0 : $('#textfield_'+res).val()); $('#textfield_'+res).val(parseInt(Math.floor(v/cp))==0 ? v : parseInt(Math.floor(v/cp))*cp); }); }); $('#transportGoods').find('ul.resourceAssign > li').each(function(k,li) { var res = $(li).attr('class'); $('#textfield_'+res).val(parseInt(isNaN($('#textfield_'+res).val())? 0 : $('#textfield_'+res).val())); }); */ }, transportFormSubmitted: function(data) { try { if(!data) { var journeyTime = $('#journeyTime').text(); var loadingTime = $('#loadingTime').text(); var wood = parseInt($('#textfield_wood').val()); var wine = parseInt($('#textfield_wine').val()); var marble = parseInt($('#textfield_marble').val()); var glass = parseInt($('#textfield_glass').val()); var sulfur = parseInt($('#textfield_sulfur').val()); var gold = ''; var targetID = parseInt($('input[name=destinationCityId]').val()); var ships = parseInt($('#transporterCount').val()); var arrTime = new Date(); var arrms = Utils.FormatLocDurToSecs(journeyTime)*1000; var lddms = loadingTime=='-'?0:Utils.FormatLocDurToSecs(loadingTime)*1000; var server = ikariam.Nationality(); database.getGlobalData.tempdb['movs'] = { _id: 'XXX-'+(arrms+arrTime.getTime()), _originCityId: this.CurrentCityId, _targetCityId: targetID, _arrivalTime: arrms+lddms+arrTime.getTime(), _mission: 'transport', _loadingTime: lddms+arrTime.getTime(), _resources: {gold: gold || 0, wood: wood || 0, wine: wine || 0, marble: marble || 0, glass: glass || 0, sulfur: sulfur || 0}, _military: undefined, _ships: ships, _eventid: null }; return new Movement(database.getGlobalData.tempdb['movs']); } else { // console.log('########### tempdb after submit ###########'); // console.log(database.getGlobalData.tempdb['movs']); // console.log('########### fleetMovements after submit ###########'); // console.log(data); database.getGlobalData.addFleetMovement(data); events(Constant.Events.MOVEMENTS_UPDATED).pub([data.getTargetCityId]); $.each(database.getGlobalData.fleetMovements,function(k,m) { // console.log(m,m['_id'],m['_eventid']); if(m._id==database.getGlobalData.tempdb['movs']['_id']) { m._eventid = parseInt($('[id^=js_accloading]').last().attr('href').split('eventId=')[1]); } }); // console.log('########### fleetMovements after update ###########'); // console.log(database.getGlobalData.fleetMovements); } } catch(e) { empire.error('transportFormSubmitted', e); } finally { } }, parseMilitaryTransport: function(submit) { var LD = Constant.LanguageData[database.settings.languageChange.value]; submit = submit || false; var that = this; if(submit) { var journeyTime = $('#journeyTime').text(); var returnTime = $('#returnTime').text(); var targetID = parseInt($('input:[name=destinationCityId]').val()); var troops = {}; var mission = ''; $('ul.assignUnits li input.textfield').each(function() { if(this.value !== 0) { troops[this.getAttribute('name').split('_').pop()] = parseInt(this.value); } if(mission === '') { mission = 'deploy' + this.getAttribute('name').match(/_(.*)_/)[1]; } else { mission = 'plunder' + this.getAttribute('name').match(/_(.*)_/)[1]; } }); var arrTime = new Date(); var transport = this.troopTransportObject(); var server = ikariam.Nationality(); transport.id = 'XXX-' + arrTime.getTime(); transport.targetCityId = targetID; transport.originCityId = this.CurrentCityId; transport.mission = mission; transport.troops = troops; arrTime.setSeconds(arrTime.getSeconds() + (journeyTime.match(/(\d+)s/) ? parseInt(journeyTime.match(/(\d+)s/)[1]) : 0)); arrTime.setMinutes(arrTime.getMinutes() + (journeyTime.match(/(\d+)m/) ? parseInt(journeyTime.match(/(\d+)m/)[1]) : 0)); arrTime.setHours(arrTime.getHours() + (journeyTime.match(/(\d+)h/) ? parseInt(journeyTime.match(/(\d+)h/)[1]) : 0)); arrTime.setDate(arrTime.getDate() + (journeyTime.match(/(\d+)D/) ? parseInt(journeyTime.match(/(\d+)D/)[1]) : 0)); if(server=='de') arrTime.setDate(arrTime.getDate() + (journeyTime.match(/(\d+)T/) ? parseInt(journeyTime.match(/(\d+)T/)[1]) : 0)); transport.arrivalTime = arrTime.getTime(); arrTime = new Date(); arrTime.setSeconds(arrTime.getSeconds() + (returnTime.match(/(\d+)s/) ? parseInt(returnTime.match(/(\d+)s/)[1]) : 0)); arrTime.setMinutes(arrTime.getMinutes() + (returnTime.match(/(\d+)m/) ? parseInt(returnTime.match(/(\d+)m/)[1]) : 0)); arrTime.setHours(arrTime.getHours() + (returnTime.match(/(\d+)h/) ? parseInt(returnTime.match(/(\d+)h/)[1]) : 0)); arrTime.setDate(arrTime.getDate() + (returnTime.match(/(\d+)D/) ? parseInt(returnTime.match(/(\d+)D/)[1]) : 0)); if(server=='de') arrTime.setDate(arrTime.getDate() + (returnTime.match(/(\d+)T/) ? parseInt(returnTime.match(/(\d+)T/)[1]) : 0)); transport.returnTime = arrTime.getTime(); database.getGlobalData.addFleetMovement(transport); render.toast(LD.updated_ + ': ' + LD.addtransport); return false; } else { return true; } }, parseFinances: function($elem) { var LD = Constant.LanguageData[database.settings.languageChange.value]; $('span[id^="currGold"').remove(); var updateTime = $.now(); var changed; for(var i=1;i'+LD.income+''+LD.scientists+''+LD.financestxt[4]+''; var sum = [0,0,0]; $.each(database.settings.cityOrder.value,function(k,c) { var city = database.cities[c]; citysort += ''+(k+1)+''+city.getName+''+Utils.FormatNumToStr(city.getIncome,0)+''+Utils.FormatNumToStr(city.getExpenses,0)+''+Utils.FormatNumToStr(city.getIncome+city.getExpenses,0)+'\r\n'; sum[0] += city.getIncome; sum[1] += city.getExpenses; sum[2] += city.getIncome+city.getExpenses; }); citysort += ''+LD.financestxt[2]+'0'+LD.financestxt[3]+''+Utils.FormatNumToStr(sum[0],0)+''+Utils.FormatNumToStr(sum[1],0)+''+Utils.FormatNumToStr(sum[2],0)+''; $('#finances > div.bd.mainContentScroll > div.mainContent.minimizableContent > table:nth-child(4) > tbody').html(citysort); var s = 0; setInterval(function() { s++; $('#currGold_'+updateTime).text(Utils.FormatNumToStr(database.getGlobalData.finance.currentGold+s*((sum[2]-database.getGlobalData.finance.armyCost-database.getGlobalData.finance.fleetCost-database.getGlobalData.finance.armySupply-database.getGlobalData.finance.fleetSupply)/3600),0)); },1000); $('#js_BadTaxAccountantOffer').parent().prevAll('td:not(.sigma)').html(''+Utils.FormatNumToStr(database.getGlobalData.finance.currentGold,0)+''); render.toast(LD.updated_+': '+LD.balances); }, parsetradeAdvisor: function(view,data) { var LD = Constant.LanguageData[database.settings.languageChange.value]; $('#sidebar').hide(); $('#js_mainBoxHeaderTitle').text(LD.mayortxt[0]); $('#'+view).find('div.buildingDescription > h1').text(LD.mayortxt[0]); $('#js_tab_tradeAdvisor > b').text(LD.mayortxt[1]); $('#js_tab_tradeRoutes > b').text(LD.mayortxt[2]); if(view=='tradeAdvisor') { $('#tab_tradeAdvisor > div:first > h3').text(function(){return Utils.format(LD.mayortxt[3],[Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0)])}); $('#filterForm > span.filterEntry').each(function(k,sp) { $(sp).find('span.filterEntryButton > span.name').text(LD.mayortxt[k+4]); }); $('table#inboxCity > tbody > tr:first > th:eq(1)').text(LD.mayortxt[12]); $('table#inboxCity > tbody > tr:first > th:eq(2)').text(LD.mayortxt[13]); $('table#inboxCity > tbody > tr:first > th:eq(3)').text(LD.mayortxt[14]); var cat = ['all','military','transport','production','espionage','diplomacy','plus','piracy']; $('table#inboxCity > tbody > tr:not(:first,:last)').each(function(k,tr) { $(tr).find('td:eq(0)').css({'min-width':'auto','width':'auto','white-space':'nowrap'}); $(tr).find('td:eq(0) > span.category').each(function(i,sp) { $(sp).attr('title',LD.mayortxt[cat.indexOf($(sp).attr('class').split(' ')[1])+4]); }); $(tr).find('td:eq(1) > a').attr('title',function(){return Utils.format(LD.mayortxt[15],[$(this).text().trim()])}); $(tr).find('td:eq(2)').css('text-align','center').text(function(){return moment($(this).text().trim()+'+0200','DD.MM.YYYY HH:mm Z').format(LD.fulldateshort);}); // console.log(moment($(this).text().trim(),'DD.MM.YYYY HH:mm').calendar().split(' ')[0]); }); $('table#inboxCity > tbody > tr:last > td.paginator > a').each(function(i,a) { var t = $(a).find('img').attr('src').split('_')[1].split('.')[0]; // console.log() if(t=='min') { $(a).attr('title',LD.mayortxt[16]); } else if(t=='max') { $(a).attr('title',LD.mayortxt[17]); } }); $('table#inboxCity > tbody > tr:last > td:not(.paginator)').remove(); $('table#inboxCity > tbody > tr:last > td.paginator').attr('colspan',4).css({'text-align':'center','padding':'0px 10px'}).children().css({'float':'none','display':'inline-block'}); // console.log($('table#inboxCity > tbody > tr:last > td.paginator').prop('innerHTML')); if(database.settings.ctfinder.value) { $('#inboxCity > tbody > tr:not(:first)').each(function(k,tr) { var nObjs = $(tr).find('td.subject > a[href*="receiverId="]'); if(nObjs.length) { $(nObjs).each(function(k,n) { var uid = $(n).attr('href').split('&')[1].replace(/\D+/g,''); if(Object.keys(database.getGlobalData.getMuseumTreaties).indexOf(uid)!=-1) { $(n).append(''); } else if(Object.keys(database.getGlobalData.getPotMuseumTreaties).indexOf(uid)!=-1) { $(n).append(''); } }); } }); } $('table#inboxCity > tbody > tr:first').after(''+$('table#inboxCity > tbody > tr:last > td.paginator').prop('innerHTML')+''); } else if(view=='tradeRoutes') { $('#tradeRouteBox > h3').text(LD.porttxt[57]); $('#tradeRouteBoxContent > p').css('text-align','justify').html(LD.porttxt[59]); var serverTimezoneOffset = unsafeWindow.dataSetForView.serverTimezoneOffset; var diff = (moment().utcOffset()*60-serverTimezoneOffset)/3600; $('[id^="tradeRouteForm"]').each(function(k,r) { $(r).prev('div').find('div:first').text(LD.porttxt[60]+':'); $(r).prev('div').find('div:first + div').text(LD.porttxt[61]); if($(r).find('div.status > span').hasClass('red')) { $(r).find('div.status > span').text(LD.porttxt[62]); $(r).find('div.renew > a').css({'position':'relative','right':'10px'}).attr('title',LD.porttxt[63]).text(LD.porttxt[63]); } else if($(r).find('div.status > span').hasClass('green')) { var dur = $(r).find('div.status > span').text().split(' ').splice(1).join(' '); $(r).find('div.status > span').html(Utils.format(LD.porttxt[67],[Utils.FormatTimeLengthToStr(Utils.FormatLocDurToSecs(dur)*1000,3)])); $(r).find('div.renew > a').css({'position':'relative','right':'10px'}).attr('title',LD.porttxt[68]).text(LD.porttxt[68]); } $(r).find('div.orderBtnTraderoute').attr('title',LD.porttxt[63]); $(r).find('div.save > input').attr('title',LD.porttxt[64]); $(r).find('div.delete > a').attr('title',LD.porttxt[65]); if($(r).find('div.extend > input').is(':not(:checked)')) { $(r).find('div.extend > input').attr('title',LD.porttxt[69]); $(r).find('div.extend > div.tooltip').html('
    '+LD.porttxt[70]+'
    '); $(r).find('div.extend > span.checkbox_label').text(LD.porttxt[69]); } else if($(r).find('div.extend > input').is(':checked')) { $(r).find('div.extend > input').attr('title',LD.porttxt[71]); $(r).find('div.extend > div.tooltip').html('
    '+LD.porttxt[72]+'
    '); $(r).find('div.extend > span.checkbox_label').text(LD.porttxt[71]); } $('#tradegood'+k+' > option').each(function(i,op) { $(op).attr('title',LD[Object.values(Constant.Resources).slice(1)[$(op).attr('value')]+'_']).text(LD[Object.values(Constant.Resources).slice(1)[$(op).attr('value')]+'_']); $('#dropDown_js_tradegood'+k+'Container > div.bg > ul > li[selectvalue="'+$(this).attr('value')+'"] > a').text(LD[Object.values(Constant.Resources).slice(1)[$(op).attr('value')]+'_']); }); $('#time'+k+' > option').each(function(i,op) { $(op).text(function(){return (parseInt($(this).attr('value'))+diff+(parseInt($(this).attr('value'))+diff<0?24:(parseInt($(this).attr('value'))+diff>=24?-24:0)))+':00';}); $('#dropDown_js_time'+k+'Container > div.bg > ul > li[selectvalue="'+$(this).attr('value')+'"] > a').text((parseInt($(this).attr('value'))+diff+(parseInt($(this).attr('value'))+diff<0?24:(parseInt($(this).attr('value'))+diff>=24?-24:0)))+':00'); if($(op).is(':selected')) { // console.log($(op).text()); $(op).parent().next('span.dropDownButton').find('a').text($(op).text()); } }); $('#time'+k).html($('#time'+k).find('option').sort(function(x,y) {return $(x).text().padStart(5,'0') > $(y).text().padStart(5,'0') ? 1 : -1;})); $('#dropDown_js_time'+k+'Container > div.bg > ul').html($('#dropDown_js_time'+k+'Container > div.bg > ul').find('li').sort(function(x,y) {return $(x).text().padStart(5,'0') > $(y).text().padStart(5,'0') ? 1 : -1;}).removeAttr('class').each(function(a,b){$(b).addClass(a==0? 'first-child':(a==$('#dropDown_js_time'+k+'Container > div.bg > ul').find('li').length-1?'last-child':''));})); }); $('#tradeRouteBox').find('div.centerButton > a').text(LD.porttxt[66]); citysort = []; $('[id^="tradeRouteStart"],[id^="tradeRouteEnd"]').each(function(k,c) { var num = parseInt($(c).attr('id').replace(/\D+/g,'')); var startend = $(c).attr('id').indexOf('Start')!=-1?0:1; var fromto = $(c).attr('id').indexOf('Start')!=-1?LD.traderoutestxt[1]:($(c).attr('id').indexOf('End')!=-1?LD.traderoutestxt[2]:null); citysort[num] = []; citysort[num][startend] = ''; $.each(database.settings.cityOrder.value,function(i,t) { citysort[num][startend] += $(c).find('option[value="'+t+'"]').prop('outerHTML'); }); $(c).empty().append(citysort[num][startend]); if($(c).find('option').is(':selected')) { $(c).next('span.dropDownButton').addClass($(c).find('option:selected').attr('class')).find('a').text($(c).find('option:selected').text()); } }); citysort = ''; $('[id^="dropDown_js_tradeRoute"]').each(function(k,c) { var fromto = $(c).attr('id').indexOf('Start')!=-1?LD.traderoutestxt[1]:($(c).attr('id').indexOf('End')!=-1?LD.traderoutestxt[2]:null); var citysort = '
  • -- '+(fromto!=null?fromto:'')+' --
  • '; $.each(database.settings.cityOrder.value,function(i,t) { citysort += $(c).find('div.bg > ul > li[selectvalue="'+t+'"]').prop('outerHTML'); }); $(c).find('div.bg > ul').empty().append(citysort); }); $('[id^="dropDown_js_tradeRoute"] > div.bg > ul > li').each(function(k,c) { $(c).removeClass('first-child last-child'); $(c).addClass(k==0? 'first-child':(k==database.settings.cityOrder.value.length?'last-child':'')); }); } render.toast(Utils.format('{0}: {1}',[LD.updated_,LD.advisors[0]])); }, parseDiplomacyAdvisor: function(view,html,data) { var LD = Constant.LanguageData[database.settings.languageChange.value]; $('#js_mainBoxHeaderTitle').text(LD.advisors[3]); $('#tabMenu > li:eq(1) > b').text(function(){return Utils.format(LD.dipladvtxt[0],[Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0)]);}); $('#tabMenu > li:eq(2) > b').text(function(){return Utils.format(LD.dipladvtxt[1],[Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0)]);}); $('#tabMenu > li:eq(3) > b').text(LD.dipladvtxt[2]); $('#tabMenu > li:eq(4) > b').text(function(){return Utils.format(LD.dipladvtxt[3],[Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0)]);}); $('#tabMenu > li:eq(5) > b').text(LD.dipladvtxt[4]); $('#tabMenu > li:eq(6) > b').text(LD.dipladvtxt[5]); if(['diplomacyAdvisor','diplomacyAdvisorOutBox','diplomacyAdvisorArchive','diplomacyAdvisorArchiveOutBox'].indexOf(view)!=-1) { $('#diplomacyAdvisor').find('div.buildingDescription > h1').text(LD.advisors[3]); $('#tab_diplomacyAdvisor > div:first > h3').text(function(){return Utils.format(LD.dipladvtxt[0],[Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0)]);}); $('#tab_diplomacyAdvisor > div:first > div.content > div.filter > span.filterEntry').each(function(k,sp) { $(sp).find('a').attr('title',LD.dipladvtxt[k+7]); $(sp).find('a > span > span:last').text(function(){return Utils.format(LD.dipladvtxt[k+(k<2?0:2)+7]+' ({0})',[Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0)]);}); }); if(view=='diplomacyAdvisor') { $('#sidebarWidget > li:first').hide(); $('#tab_diplomacyAdvisor > div:eq(1) > h3').text(LD.dipladvtxt[7]); var rows = $('form#deleteMessages > table > tbody > tr').length; $('form#deleteMessages > table > tbody > tr').each(function(i,tr) { if(i==0) { if(rows==1) { $(tr).find('th > p').text(LD.dipladvtxt[31]); } else { $(tr).find('th').each(function(k,th) { $(th).text(LD.dipladvtxt[k+13]); }); } } else { if($(tr).attr('id')!=undefined && ($(tr).attr('id').startsWith('message')||$(tr).attr('id').startsWith('gmessage'))) { $(tr).attr('title',LD.dipladvtxt[18]); $(tr).find('td:eq(0)').css({'width':'14px'}); $(tr).find('td:eq(1)').css({'width':'20px','padding':'4px 0px'}); $(tr).find('td:eq(2)').css({'white-space':'nowrap','width':'120px','padding':'4px 0px'}).removeAttr('onclick').find('a').css({'white-space':'nowrap'}).attr({'href':$('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_greply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[href*="receiverId"]').attr('href') || '#','title':LD.dipladvtxt[20]}).text(function(){return $(this).text().trim();}); $(tr).find('td:eq(3)').css({'white-space':'nowrap'}).text(function(){return $(this).text().trim();}); $(tr).find('td:eq(4)').css({'white-space':'nowrap','padding':'4px 3px','width':'225px'}).attr('title',LD.dipladvtxt[19]).find('a').html(function(){return $(this).text().replace(/([^]*)(\[\d+:\d+\])/,'$1 $2');}); $(tr).find('td:eq(5)').css({'white-space':'nowrap','text-align':'center','padding':'4px 0px'}).text(function(){return moment($(this).text().trim()+'+0200','DD.MM.YYYY HH:mm:ss Z').format(LD.fulldateshort+':ss');}); $('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[href*="msgType=79"]').text(LD.dipladvtxt[46]); $('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[href*="msgType=80"]').text(LD.dipladvtxt[47]); $('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_greply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[href*="replyTo"]').text(LD.dipladvtxt[21]); $('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_greply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[onclick^="createDeletePopup"]').text(LD.dipladvtxt[22]).on('click',function() { $('#js_popupBtn1').text(LD.dipladvtxt[29]).parent().prev('div').text(LD.dipladvtxt[28]); $('#js_popupBtn2').text(LD.dipladvtxt[30]); // console.log($('#js_popupBtn1').text()); }); $('#tbl_greply4 > td > span > a').text(LD.dipladvtxt[22]); $('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_greply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[onclick^="createReportPopup"]').attr('title',LD.dipladvtxt[26]).text(LD.dipladvtxt[23]).on('click',function() { $('#js_popupBtn1').text(LD.dipladvtxt[29]).parent().prev('div').css('text-align','justify').html(LD.dipladvtxt[26].replace('\n','
    ')).parent().prev('div').find('div:eq(1) > h3').text(LD.dipladvtxt[28]); $('#js_popupBtn2').text(LD.dipladvtxt[30]); // console.log($('#js_popupBtn1').text()); }); $('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_greply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[href*="allyId"]').text(LD.dipladvtxt[25]); $('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_greply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[href*="ignoreId"]').attr('title',LD.dipladvtxt[27]).text(LD.dipladvtxt[24]); $('#tbl_mail'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_gmail'+$(tr).attr('id').replace(/\D+/g,'')).find('td.msgText').html(function() { anchorme({input:$(this).html(),options:{attributes:{target:'_blank',style:'color:blue'}}}); return anchorme({input:$(this).html(),options:{attributes:{target:'_blank',style:'color:blue'}}}).replace(/(\[\d+:\d+\])/igm,function(x) { var c = x.replace(/(\[|\])/igm,'').split(':'); return '['+c[0]+':'+c[1]+']'; }); }); } } }); if(database.settings.ctfinder.value) { var mids = [], uids = []; $('tr[id^=tbl_reply]').each(function(k,tr) { mids.push($(tr).attr('id').replace(/\D+/g,'')); uids.push($(tr).find('> td > a:nth-child(1)').attr('href')!=undefined?$(tr).find('td > a:nth-child(1)').attr('href').split('&')[1].replace(/\D+/g,''):$(tr).find('> td > div.red_box.warning > div > a').attr('href')!=undefined?$(tr).find('> td > div.red_box.warning > div > a').attr('href').split('&')[1].replace(/\D+/g,''):0); }); for(var i=0;i td:nth-child(3) > a').append(''); } else if(Object.keys(database.getGlobalData.getPotMuseumTreaties).indexOf(uids[i])!=-1) { $('#message'+mids[i]+' > td:nth-child(3) > a').append(''); } } } var pg = $('form#deleteMessages > table > tbody > tr > td.paginator').css('text-align','center').contents().filter(function(){return this.nodeType==Node.TEXT_NODE && $.trim(this.nodeValue)!=='';}).text().trim().split('-'); var prev = parseInt(pg[0])>1?'...'+LD.dipladvtxt[33]+' 10 ':''; var next = parseInt(pg[1]) div:eq(0)').find('span.name:eq(0)').text().replace(/\D+/g,''))?' '+LD.dipladvtxt[32]+' 10...':''; $('form#deleteMessages > table > tbody > tr > td.paginator').html(prev+parseInt(pg[0])+' - '+parseInt(pg[1])+next); $('form#deleteMessages > table > tbody > tr > td.paginator').parent().next('tr').find('td > a').each(function(k,a){return $(a).text(LD.dipladvtxt[k+34]);}); $('input#actionType + input.button').val(LD.dipladvtxt[38]); $('input#actionType + input.button + a.button').attr('title',LD.dipladvtxt[39]).text(LD.dipladvtxt[39]); if($('#sidebarWidget > li:eq(1) > a')[0]!=undefined) { $('#sidebarWidget > li:eq(1) > a')[0].childNodes[0].textContent = LD.dipladvtxt[40]; $('#diplomaticInfluenceSidebar > p').text(function(){return Utils.format(LD.dipladvtxt[41],[$(this).text().replace(/\D+/g,'')]);}); } } else if(view=='diplomacyAdvisorOutBox') { $('#sidebar').hide(); $('#tab_diplomacyAdvisor > div:eq(1) > h3').text(LD.dipladvtxt[8]); var rows = $('form#deleteMessages > table > tbody > tr').length; $('form#deleteMessages > table > tbody > tr').each(function(i,tr) { if(i==0) { if(rows==1) { $(tr).find('th > p').text(LD.dipladvtxt[31]); } else { $(tr).find('th:eq(0)').text(LD.dipladvtxt[13]); $(tr).find('th:eq(1)').text(LD.dipladvtxt[42]); $(tr).find('th:eq(2)').text(LD.dipladvtxt[15]); $(tr).find('th:eq(4)').text(LD.dipladvtxt[17]); } } else { if($(tr).attr('id')!=undefined && $(tr).attr('id').startsWith('message')) { $(tr).attr('title',LD.dipladvtxt[18]); $(tr).find('td:eq(0)').css({'width':'14px'}); $(tr).find('td:eq(1)').css({'width':'20px','padding':'4px 0px'}); $(tr).find('td:eq(2)').find('a').css('white-space','nowrap').removeAttr('href').text(function(){return $(this).text().trim();}); $(tr).find('td:eq(3)').css({'white-space':'nowrap'}).text(function(){return $(this).text().trim();}); $(tr).find('td:eq(5)').css({'white-space':'nowrap','text-align':'center','padding':'4px 0px'}).text(function(){return moment($(this).text().trim()+'+0200','DD.MM.YYYY HH:mm:ss Z').format(LD.fulldateshort+':ss');}); $('#tbl_mail'+$(tr).attr('id').replace(/\D+/g,'')).find('td.msgText').html(function() { anchorme({input:$(this).html(),options:{attributes:{target:'_blank',style:'color:blue'}}}); return anchorme({input:$(this).html(),options:{attributes:{target:'_blank',style:'color:blue'}}}).replace(/(\[\d+:\d+\])/igm,function(x) { var c = x.replace(/(\[|\])/igm,'').split(':'); return '['+c[0]+':'+c[1]+']'; }); }); $('#actionType + a.button').attr('title',LD.dipladvtxt[22]).text(LD.dipladvtxt[22]).on('click',function() { $('#js_popupBtn1').text(LD.dipladvtxt[29]).parent().prev('div').text(LD.dipladvtxt[28]); $('#js_popupBtn2').text(LD.dipladvtxt[30]); // console.log($('#js_popupBtn1').text()); }); } } }); var pg = $('form#deleteMessages > table > tbody > tr > td.paginator').css('text-align','center').contents().filter(function(){return this.nodeType==Node.TEXT_NODE && $.trim(this.nodeValue)!=='';}).text().trim().split('-'); var prev = parseInt(pg[0])>1?'...'+LD.dipladvtxt[33]+' 10 ':''; var next = parseInt(pg[1]) div:eq(0)').find('span.name:eq(1)').text().replace(/\D+/g,''))?' '+LD.dipladvtxt[32]+' 10...':''; $('form#deleteMessages > table > tbody > tr > td.paginator').html(prev+parseInt(pg[0])+' - '+parseInt(pg[1])+next); $('form#deleteMessages > table > tbody > tr > td.paginator').parent().next('tr').find('td > a:first').text(LD.dipladvtxt[34]); $('form#deleteMessages > table > tbody > tr > td.paginator').parent().next('tr').find('td > a:last').text(LD.dipladvtxt[37]); $('input#actionType + a.button').attr('title',LD.dipladvtxt[39]).text(LD.dipladvtxt[39]); // console.log(LD.dipladvtxt); } else if(view=='diplomacyAdvisorArchive') { $('#sidebar').hide(); $('#tab_diplomacyAdvisor > div:eq(1) > h3').text(LD.dipladvtxt[9]); var rows = $('form#deleteMessages > table > tbody > tr').length; $('form#deleteMessages > table > tbody > tr').each(function(i,tr) { if(i==0) { if(rows==1) { $(tr).find('th > p').text(LD.dipladvtxt[31]); } else { $(tr).find('th').each(function(k,th) { $(th).text(LD.dipladvtxt[k+13]); }); } } else { if($(tr).attr('id')!=undefined && ($(tr).attr('id').startsWith('message')||$(tr).attr('id').startsWith('gmessage'))) { $(tr).attr('title',LD.dipladvtxt[18]); $(tr).find('td:eq(0)').css({'width':'14px'}); $(tr).find('td:eq(1)').css({'width':'20px','padding':'4px 0px'}); $(tr).find('td:eq(2)').css({'white-space':'nowrap','width':'120px','padding':'4px 0px'}).removeAttr('onclick').find('a').css({'white-space':'nowrap'}).attr({'href':$('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_greply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[href*="receiverId"]').attr('href') || '#','title':LD.dipladvtxt[20]}).text(function(){return $(this).text().trim();}); $(tr).find('td:eq(3)').css({'white-space':'nowrap'}).text(function(){return $(this).text().trim();}); $(tr).find('td:eq(4)').css({'white-space':'nowrap','padding':'4px 3px','width':'225px'}).attr('title',LD.dipladvtxt[19]).find('a').html(function(){return $(this).text().replace(/([^]*)(\[\d+:\d+\])/,'$1 $2');}); $(tr).find('td:eq(5)').css({'white-space':'nowrap','text-align':'center','padding':'4px 0px'}).text(function(){return moment($(this).text().trim()+'+0200','DD.MM.YYYY HH:mm:ss Z').format(LD.fulldateshort+':ss');}); $('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_greply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[href*="receiverId"]').text(LD.dipladvtxt[21]); $('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_greply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[onclick^="createDeletePopup"]').text(LD.dipladvtxt[22]).on('click',function() { $('#js_popupBtn1').text(LD.dipladvtxt[29]).parent().prev('div').text(LD.dipladvtxt[28]); $('#js_popupBtn2').text(LD.dipladvtxt[30]); // console.log($('#js_popupBtn1').text()); }); $('#tbl_greply4 > td > span > a').text(LD.dipladvtxt[22]); $('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_greply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[onclick^="createReportPopup"]').attr('title',LD.dipladvtxt[26]).text(LD.dipladvtxt[23]).on('click',function() { $('#js_popupBtn1').text(LD.dipladvtxt[29]).parent().prev('div').css('text-align','justify').html(LD.dipladvtxt[26].replace('\n','
    ')).parent().prev('div').find('div:eq(1) > h3').text(LD.dipladvtxt[28]); $('#js_popupBtn2').text(LD.dipladvtxt[30]); // console.log($('#js_popupBtn1').text()); }); $('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_greply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[href*="allyId"]').text(LD.dipladvtxt[25]); $('#tbl_reply'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_greply'+$(tr).attr('id').replace(/\D+/g,'')).find('a[href*="ignoreId"]').attr('title',LD.dipladvtxt[27]).text(LD.dipladvtxt[24]); $('#tbl_mail'+$(tr).attr('id').replace(/\D+/g,'')+',#tbl_gmail'+$(tr).attr('id').replace(/\D+/g,'')).find('td.msgText').html(function() { anchorme({input:$(this).html(),options:{attributes:{target:'_blank',style:'color:blue'}}}); return anchorme({input:$(this).html(),options:{attributes:{target:'_blank',style:'color:blue'}}}).replace(/(\[\d+:\d+\])/igm,function(x) { var c = x.replace(/(\[|\])/igm,'').split(':'); return '['+c[0]+':'+c[1]+']'; }); }); } } }); } else if(view=='diplomacyAdvisorArchiveOutBox') { $('#tab_diplomacyAdvisor > div:eq(1) > h3').text(LD.dipladvtxt[10]); var rows = $('form#deleteMessages > table > tbody > tr').length; $('form#deleteMessages > table > tbody > tr').each(function(i,tr) { if(i==0) { if(rows==1) { $(tr).find('th > p').text(LD.dipladvtxt[31]); } else { $(tr).find('th:eq(0)').text(LD.dipladvtxt[13]); $(tr).find('th:eq(1)').text(LD.dipladvtxt[42]); $(tr).find('th:eq(2)').text(LD.dipladvtxt[15]); $(tr).find('th:eq(4)').text(LD.dipladvtxt[17]); } } else { if($(tr).attr('id')!=undefined && $(tr).attr('id').startsWith('message')) { $(tr).attr('title',LD.dipladvtxt[18]); $(tr).find('td:eq(0)').css({'width':'14px'}); $(tr).find('td:eq(1)').css({'width':'20px','padding':'4px 0px'}); $(tr).find('td:eq(2)').find('a').css('white-space','nowrap').removeAttr('href').text(function(){return $(this).text().trim();}); $(tr).find('td:eq(3)').css({'white-space':'nowrap'}).text(function(){return $(this).text().trim();}); $(tr).find('td:eq(5)').css({'white-space':'nowrap','text-align':'center','padding':'4px 0px'}).text(function(){return moment($(this).text().trim()+'+0200','DD.MM.YYYY HH:mm:ss Z').format(LD.fulldateshort+':ss');}); $('#tbl_mail'+$(tr).attr('id').replace(/\D+/g,'')).find('td.msgText').html(function() { anchorme({input:$(this).html(),options:{attributes:{target:'_blank',style:'color:blue'}}}); return anchorme({input:$(this).html(),options:{attributes:{target:'_blank',style:'color:blue'}}}).replace(/(\[\d+:\d+\])/igm,function(x) { var c = x.replace(/(\[|\])/igm,'').split(':'); return '['+c[0]+':'+c[1]+']'; }); }); $('#actionType + a.button').attr('title',LD.dipladvtxt[22]).text(LD.dipladvtxt[22]).on('click',function() { $('#js_popupBtn1').text(LD.dipladvtxt[29]).parent().prev('div').text(LD.dipladvtxt[28]); $('#js_popupBtn2').text(LD.dipladvtxt[30]); // console.log($('#js_popupBtn1').text()); }); } } }); var pg = $('form#deleteMessages > table > tbody > tr > td.paginator').css('text-align','center').contents().filter(function(){return this.nodeType==Node.TEXT_NODE && $.trim(this.nodeValue)!=='';}).text().trim().split('-'); var prev = parseInt(pg[0])>1?'...'+LD.dipladvtxt[33]+' 10 ':''; var next = parseInt(pg[1]) div:eq(0)').find('span.name:eq(1)').text().replace(/\D+/g,''))?' '+LD.dipladvtxt[32]+' 10...':''; $('form#deleteMessages > table > tbody > tr > td.paginator').html(prev+parseInt(pg[0])+' - '+parseInt(pg[1])+next); $('form#deleteMessages > table > tbody > tr > td.paginator').parent().next('tr').find('td > a:first').text(LD.dipladvtxt[34]); $('form#deleteMessages > table > tbody > tr > td.paginator').parent().next('tr').find('td > a:last').text(LD.dipladvtxt[37]); $('input#actionType + a.button').attr('title',LD.dipladvtxt[39]).text(LD.dipladvtxt[39]); $('#sidebar').hide(); } var toast = LD.advisors[3]; } else if(view=='diplomacyIslandBoard') { $('#sidebarWidget > li:first').hide(); $('#tab_diplomacyIslandBoard > div:first > a').text(LD.dipladvtxt[43]); $('#tab_diplomacyIslandBoard > div:last > h3,#sidebarWidget > li:eq(1) > a').text(LD.dipladvtxt[44]); $('#tab_diplomacyIslandBoard > div:last > div.content > div > p.warning').text(LD.dipladvtxt[45]); $('form.newMessage').css({'width':'520px','margin':'20px auto'}).find('p').css({'text-align':'justify','padding':'4px 0px 4px 20px'}).text(LD.dipladvtxt[102]); $('form.newMessage > div.postMessage > label:first').text(LD.dipladvtxt[103]); $('form.newMessage > div.postMessage > label:last').text(LD.dipladvtxt[104]); $('form.newMessage > div.postMessage > div.centerButton > input').val(LD.dipladvtxt[105]); $('form.newMessage > div.postMessage > div.centerButton > a').text(LD.dipladvtxt[106]); $('form.newMessage > div.postMessage > span.chars').hide().after(''+Utils.format(LD.dipladvtxt[107],[Utils.FormatNumToStr(1000)])+''); $('#js_islandMsgTextInput').on('keyup textInput',function(e) { var len = 1000-e.target.value.length; $('#empire_msgRemainingChars').text(Utils.format(LD.dipladvtxt[len==0?109:(len==1?108:107)],[Utils.FormatNumToStr(len)])); }); var toast = LD.agora; } else if(view=='diplomacyTreaty') { $('#sidebarWidget > li:first').hide(); $('#tab_diplomacyTreaty > div:first > h3').text(LD.dipladvtxt[48]); $('#tab_diplomacyTreaty > div:first > div.content > table > tbody > tr').each(function(k,tr) { if(k==0) { $(tr).html(''+LD.dipladvtxt[49]+''+LD.dipladvtxt[50]+''+LD.dipladvtxt[51]+''+LD.dipladvtxt[52]+''); } else { var cities = $(tr).find('td[id^="show"] > div.tooltip > table > tbody > tr'); $(tr).find('td[id^="show"] > div.tooltip > table').css({'margin':'0 auto'}).find('tbody > tr').each(function(i,ct) { if(i==0) { $(ct).html(''+LD.dipladvtxt[56]+''+LD.dipladvtxt[57]+''+LD.dipladvtxt[58]+''); } else { $(ct).find('td.location').css({'text-align':'center','width':'50px'}).text(function(){return $(this).text().replace(/\[(\d+)?\s+?:(\d+)\][^]*/g,'[$1:$2]')}); $(ct).find('td.cityName').css({'white-space':'nowrap'}); $(ct).find('td.luxuryGood').css({'text-align':'center'}); } }); $(tr).find('td[id^="show"] > div[id^="panel"] > p.city_count').text(Utils.format(LD.dipladvtxt[cities.length==2?55:54],[cities.length-1])); $(tr).find('td.actions > a:first').attr('title',LD.CompMsg).find('img').attr('alt',LD.CompMsg); $(tr).find('td.actions > a:last').attr('title',LD.dipladvtxt[53]).find('img').attr({'title':LD.dipladvtxt[53],'alt':LD.dipladvtxt[53]}); } }); $('#tab_diplomacyTreaty > div:last > h3').text(function(){return Utils.format(LD.dipladvtxt[59],[$(this).text().replace(/[^]*\((\d+)\/(\d+)\)/g,'($1/$2)')]);}); $('#tab_diplomacyTreaty > div:last > div.content > table > tbody > tr:not(:first)').each(function(k,tr) { $(tr).find('td.city').text(function(){return $(this).text().trim();}); var icon = $(tr).find('td:eq(3) > img').attr('src').split('_')[0].split('/').pop(); // console.log(icon); $(tr).find('td:eq(3) > img').attr({'alt':LD[icon],'title':LD[icon]}) $(tr).find('td.actions > a').attr('title',LD.dipladvtxt[60]); }); $('#tab_diplomacyTreaty > div:last > div.content > div.centerButton > a').text(function(){return Utils.format(LD.dipladvtxt[61],[$(this).text().replace(/\D+/g,'')])}); if($('#sidebarWidget > li:eq(1) > a')[0]!=undefined) { $('#sidebarWidget > li:eq(1) > a')[0].childNodes[0].textContent = LD.dipladvtxt[40]; $('#diplomaticInfluenceSidebar > p').text(function(){return Utils.format(LD.dipladvtxt[41],[$(this).text().replace(/\D+/g,'')]);}); } if(database.settings.ctfinder.value) { if($('#tab_diplomacyTreaty > div:first > div.content > table:not(#culturalTreaties,#militaryAccessObtained)').length) { $('#tab_diplomacyTreaty > div:first > div.content > table:not(#culturalTreaties,#militaryAccessObtained) > tbody > tr:not(:first)').each(function(k,tr) { var uid = $(tr).find('td.actions > a:first').attr('href').split('=')[2]; if(Object.keys(database.getGlobalData.getMuseumTreaties).indexOf(uid)!=-1) { $(tr).find('td:first').append(''); } else if(Object.keys(database.getGlobalData.getPotMuseumTreaties).indexOf(uid)!=-1) { $(tr).find('td:first').append(''); } }); } if($('#militaryAccessObtained > tbody > tr:not(:first)').length) { $('#militaryAccessObtained > tbody > tr:not(:first)').each(function(k,tr) { var uid = $(tr).find('td.actions > a:nth-child(1)').attr('href').split('&')[1].replace(/\D+/g,''); if(Object.keys(database.getGlobalData.getMuseumTreaties).indexOf(uid)!=-1) { $(tr).find('td:first').append(''); } else if(Object.keys(database.getGlobalData.getPotMuseumTreaties).indexOf(uid)!=-1) { $(tr).find('td:first').append(''); } }); } } var citysort = ''+LD.city+''+LD.cultural+''+LD.museumlvl+''+LD.satisfaction+''+LD.action+''; $.each(database.settings.cityOrder.value,function(k,c) { citysort += $('#culturalTreaties > tbody > tr:not(:first) > td.actions > a[href*="cityId='+c+'"]').parents('tr').prop('outerHTML')+'\r\n'; }); $('#culturalTreaties > tbody').html(citysort); $('#culturalTreaties > tbody > tr:not(:first)').each(function(k,c) { $(c).removeClass('alt').addClass(k%2==1?'alt':'').find('td:first').before(''+(k+1)+''); }); var toast = LD.treaties_; } else if(view=='diplomacyAlly') { $('#sidebar').hide(); $('#tab_diplomacyAlly > div:first > h3')[0].childNodes[0].textContent = LD.dipladvtxt[6]+' '; $('#tab_diplomacyAlly > div:first > h3 > a').attr('title',LD.embassytxt[36]).find('span').text(LD.embassytxt[36]); $('#tab_diplomacyAlly > div:first > div.content > div.filter > span.filterEntry:eq(0) > a').attr('title',LD.dipladvtxt[62]).find('span.filterEntryButton > span:last').text(function(){return Utils.format(LD.dipladvtxt[63],[Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0)]);}); $('#tab_diplomacyAlly > div:first > div.content > div.filter > span.filterEntry:eq(1) > a').attr('title',LD.dipladvtxt[64]).find('span.filterEntryButton > span:last').text(LD.dipladvtxt[65]); $('#tab_diplomacyAlly > div:first > div.content > div.filter > span.filterEntry:eq(2) > a').attr('title',LD.dipladvtxt[66]).find('span.filterEntryButton > span:last').text(LD.dipladvtxt[66]); $('#tab_diplomacyAlly > div:first > div.content > div.filter > span.filterEntry:eq(3) > a').attr('title',LD.dipladvtxt[67]).find('span.filterEntryButton > span:last').text(LD.dipladvtxt[67]); $('#tab_diplomacyAlly > div:last > h3').text(LD.dipladvtxt[62]); $('#tab_diplomacyAlly > div:last > div.content > table.topic_table > tbody > tr').each(function(k,tr) { if(k==0) { $(tr).html(''+LD.dipladvtxt[68]+''+LD.dipladvtxt[69]+''+LD.dipladvtxt[70]+''+LD.dipladvtxt[71]+''); } else { $(tr).find('td:eq(2)').text(function(){return Utils.format(LD.dipladvtxt[72],[Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0)]);}); $(tr).find('td:eq(3)').css({'white-space':'nowrap','text-align':'center','padding':'4px 0px'}).text(function(){return moment($(this).text().trim()+'+0200','DD.MM.YYYY HH:mm:ss Z').format(LD.fulldateshort+':ss');}); } }); $('#tab_diplomacyAlly > div:last > div.content > table.board_header_table:first > tbody > tr.header_bar > td:first > a:first').text(LD.dipladvtxt[62]); $('#tab_diplomacyAlly > div:last > div.content > table.thread_table > tbody > tr').each(function(k,tr) { if(k==0) { $(tr).html(''+LD.dipladvtxt[73]+''+LD.dipladvtxt[74]+''+LD.dipladvtxt[70]+''+LD.dipladvtxt[71]+''); } else { $(tr).find('td:eq(1)').text(function(){return Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0);}); $(tr).find('td:eq(2)')[0].childNodes[2].textContent = moment($(tr).find('td:eq(2)')[0].childNodes[2].nodeValue.trim()+'+0200','DD.MM.YYYY HH:mm:ss Z').format(LD.fulldateshort+':ss'); } }); $('#tab_diplomacyAlly > div:last > div.content > table.board_header_table:last > tbody > tr > td:first > div.thread_buttons > a').attr('title',LD.dipladvtxt[75]).text(LD.dipladvtxt[75]); $('#tab_diplomacyAlly > div:last > div.content > table.board_header_table:last > tbody > tr > td:first > div.posting_table_footer > a:first').attr('title',LD.dipladvtxt[76]).text(LD.dipladvtxt[76]); $('#tab_diplomacyAlly > div:last > div.content > table.posting_table > tbody > tr').each(function(k,tr) { $(tr).find('td.posting_right_column > div.posting_header > table > tbody > tr > td:eq(1) > span').text(function(){return moment($(this).text().trim()+'+0200','DD.MM.YYYY HH:mm:ss Z').format(LD.fulldateshort+':ss');}); $(tr).find('td.posting_right_column > div.posting_header > table > tbody > tr > td:eq(2) > a:first').attr('title',LD.dipladvtxt[78]); $(tr).find('td.posting_right_column > div.posting_header > table > tbody > tr > td:eq(2) > a:last').attr('title',LD.dipladvtxt[79]); $(tr).find('td.posting_right_column > div.posting_footer').text(function(){return $(this).text().replace(/\(([^]*)\)/,'('+(moment($(this).text().replace(/[^]*\(([^]*)\)/,'$1').trim()+'+0200','DD.MM.YYYY HH:mm:ss Z').format(LD.fulldateshort+':ss'))+')');}); }); $('#tab_diplomacyAlly > div:last > div.content > table.board_header_table:last > tbody > tr > td:first > div.posting_table_footer > a:last').attr('title',LD.dipladvtxt[77]).find('img').attr({'alt':LD.dipladvtxt[77],'title':LD.dipladvtxt[77]}); $('#js_ThreadTitleInput').prev('label').text(LD.dipladvtxt[80]); $('#js_CreateSubmit').val(LD.dipladvtxt[81]); $('#js_CreateSubmit + span.smallFont:first').hide().after(''+Utils.format(LD.dipladvtxt[82],[Utils.FormatNumToStr(10000)])+''); $('#js_ThreadTextInput').on('keyup',function(e) { var target = e.target; // console.log($(target).val()); var chars = $(target).val().length==10000 ? LD.dipladvtxt[84] : Utils.format(LD.dipladvtxt[10000-$(target).val().length==1?83:82],[Utils.FormatNumToStr(10000-$(target).val().length,false,0)]); $('#empire_nrChars').html(chars); }); var toast = LD.dipladvtxt[6]; } else if(view=='diplomacyAdvisorSearchUser') { $('#sidebar').hide(); $('#tab_diplomacyAdvisor > div > h3').text(LD.dipladvtxt[4]); $('#tab_diplomacyAdvisor').find('div.userSearchContainer').css({'margin':'5px auto','text-align':'center'}); $('#tab_diplomacyAdvisor').find('form > span.player_name_label').text(LD.dipladvtxt[85]+':'); $('#tab_diplomacyAdvisor').find('form > input[type="submit"]').val(LD.dipladvtxt[86]); $('#userSearchTable > thead > tr > th').each(function(k,th){return $(th).text(LD.dipladvtxt[k+87]);}); $('#userSearchTable > tbody > tr').each(function(i,tr) { if($('#userSearchTable > tbody > tr').length==1&&$('#userSearchTable > tbody > tr > td:first').attr('colspan')!=undefined) { $(tr).find('td').attr('colspan',6).text(LD.dipladvtxt[93]); } else { $(tr).find('td:eq(0)').text(function(){return Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0);}); $(tr).find('td:eq(4)').text(function(){return Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0);}); $(tr).find('td:eq(5)').css('text-align','center').find('a').attr('title',LD.CompMsg).find('img').attr({'alt':LD.CompMsg,'title':LD.CompMsg}); } }); if(database.settings.ctfinder.value) { $('#userSearchTable > tbody > tr').each(function(k,tr) { var uid = 0; if($(tr).find('td:nth-child(3) > a').length) { uid = $(tr).find('td:nth-child(3) > a').attr('href').split('&')[1].replace(/\D+/g,''); if(Object.keys(database.getGlobalData.getMuseumTreaties).indexOf(uid)!=-1) { $(tr).find('td:nth-child(3) > a').append(''); } else if(Object.keys(database.getGlobalData.getPotMuseumTreaties).indexOf(uid)!=-1) { $(tr).find('td:nth-child(3) > a').append(''); } } }); } var toast = LD.playersearch; } else if(view=='ignoreList') { $('#sidebar').hide(); $('#tabMenu + div.contentBox01h > h3').text(LD.dipladvtxt[94]); $('#tabMenu + div.contentBox01h > div.content > p').text(LD.dipladvtxt[95]); $('#ignoreListTable > thead > tr > th').each(function(k,th){$(th).text(LD.dipladvtxt[k+96]);}); $('#ignoreListTable > tbody > tr > td:last > a').attr('title',LD.dipladvtxt[100]).text(LD.dipladvtxt[101]); var toast = LD.ignoreList; } render.toast(Utils.format('{0}: {1}',[LD.updated_,toast])); }, parseResearchAdvisor: function(data) { var now = moment(); $('[id^="empire_researchAdvisorPoints"], [id^="empire_researchAdvisorCurrResearchCosts"], [id^="researchAdvisorCurrResearchCostsPercentage"], [id^="empire_researchAdvisorCurrResearchPointsNotEnough"], [id^="empire_researchAdvisorCurrResearchTimeNeeded"], [id^="empire_researchAdvisorProgressTxt"]').remove(); var LD = Constant.LanguageData[database.settings.languageChange.value]; var tot = [0,parseInt($('#js_researchAdvisorPoints').text().replace(/(\d+)[,.](?=\d{3}(\D|$))/g,'$1')),0,0,0,0,0]; $.each(database.cities,function(k,c) { tot[0] += c.research.getResearchers; tot[2] += c.research.getResearch; tot[3] += c.research.researchData.researchBonus; tot[4] += c.research.researchData.corruption; tot[5] += c.research.researchData.premiumCulturalGoodsBonus; tot[6] += c.research.researchData.culturalGoods; }); $('#js_mainBoxHeaderTitle').text(LD.advisors[2]); database.getGlobalData._research.unused = parseInt($('#js_researchAdvisorPoints').text().replace(/(\d+)[,.](?=\d{3}(\D|$))/g,'$1')); database.getGlobalData._research.lastUpdate = $.now(); $.ajax( { success: function() { var check = $('#js_researchAdvisorCurrResearchesArr > li:last > a').attr('href').replace(/\D+/g,''); var selected = $('#js_researchAdvisorCurrResearchesArr > li.selected > a').attr('href').replace(/\D+/g,''); var rtype = 0; for(var i=0;i<4;i++) { var nextcost = parseInt($('#js_researchAdvisorNextResearchCost'+i).text().replace(/\D+/g,'')); $('#js_researchAdvisorNextResearchCost'+i).text(Utils.FormatNumToStr(nextcost)); $('#js_researchAdvisorChangeResearchTypeTxt'+i).text(LD.researchzones[i]); var next = 0, flvl = 0; $.each(Object.values(Object.values(Constant.Research)[i]),function(a,n) { if(database.getGlobalData.getResearchTopicLevel(n)==0 || (a==Object.values(Object.values(Constant.Research)[i]).length-1 && database.getGlobalData.getResearchTopicLevel(n)>0)) { next = n; flvl = a==Object.values(Object.values(Constant.Research)[i]).length-1 ? database.getGlobalData.getResearchTopicLevel(n)+1:0; // console.log(next,flvl); return false; } }); $('#js_researchAdvisorNextResearchName'+i+',#js_researchAdvisorNextResearchTooltipName'+i).text(LD.researchtxt[next]+(flvl>0?' ('+flvl+')':'')); $('#js_researchAdvisorNextResearchTooltipShortDesc'+i).text(LD.researchshortdesc[next]); $('#js_researchAdvisorProgressTxt'+i).hide().after('
    '+(tot[0]==0?LD.resadvtxt[0]:(tot[1]'); $.each(Object.values(Constant.Research)[i],function(k,n) { rtype += n==check ? i : 0; }); } $('#js_researchAdvisorScientists').parent().html(LD.scientists+': '+Utils.FormatNumToStr(tot[0])+''); $('#js_researchAdvisorPoints').hide().parent().contents().first().each(function(){$(this).replaceWith(LD.researchP+': ');}); $('#js_researchAdvisorPoints').after(''+Utils.FormatNumToStr(tot[1])+''); $('#js_researchAdvisorTime').parent().html(LD.resadvtxt[3]+': '+Utils.FormatNumToStr(tot[2],false,2)+'
    '+(tot[6]>0?'':'')+'
    '+LD.resadvtxt[4]+':'+Utils.FormatNumToStr(tot[0],false,2)+'
    '+LD.corruption+':'+(tot[4]==0?'+':'-')+' '+Utils.FormatNumToStr(tot[4],false,2)+'
    '+LD.resadvtxt[5]+':+ '+Utils.FormatNumToStr(tot[5],false,2)+'
    '+LD.research+':+ '+Utils.FormatNumToStr(tot[3],false,2)+'
    '+LD.cultural+''+Utils.FormatNumToStr(tot[6],false,2)+'
      
    '+LD.total_+':'+Utils.FormatNumToStr(tot[0]-tot[4]+tot[3]+tot[5]+tot[6],false,2)+'
    '); $('#js_researchAdvisorCurrResearchName').text(LD.researchtxt[selected]+(selected%1000==999?' ('+(database.getGlobalData.getResearchTopicLevel(selected)+1)+')':'')); var CurrCost = parseInt($('#js_researchAdvisorCurrResearchCosts').text().replace(/(\d+)[,.](?=\d{3}(\D|$))/g,'$1')); var n = {b:'buildingId',f:'formId',h:'helpId',sh:'subHelpId',s:'shipId',u:'unitId',v:'view'}; var v = {b:'buildingDetail',f:'formOfRuleDetail',i:'ikipedia',u:'unitdescription'}; $('#js_researchAdvisorCurrResearchDesc').html(LD.researchdesc[selected].replace(/\[\[([^\[\]]*)\]\]/g,function(match) { var m = match.split('|'); var href = m[0].split(','); var hf = ''+m[1].replace(/\]/g,'')+''; return hf; })); $('#js_researchAdvisorCurrResearchDesc + span.desc').css('width','100px').text(LD.resadvtxt[9]+':'); var rtptxt = ['seafaring','economy','knowledge','military']; var precondsum = 0; $('#js_researchAdvisorCurrResearchPrecondArr > li').each(function(k,li) { var rid = parseInt($(li).find('a').attr('href').replace(/\D+/,'')); var rt = rtptxt.indexOf($(li).find('a').attr('href').split('=')[3]); precondsum += database.getGlobalData.getResearchTopicLevel(rid)==0?Constant.Research.Costs[rid]:0; $(li).find('a').html(LD.researchtxt[rid]+' ('+LD.researchzones[rt]+')0?' class="arrow_ok"':' style="float:right"')+'>'+(database.getGlobalData.getResearchTopicLevel(rid)>0?'':Utils.FormatNumToStr(Constant.Research.Costs[rid])+' ')+''); }); $('#js_researchAdvisorCurrResearchPrecondArr').css('margin-left','100px').append($('#js_researchAdvisorCurrResearchPrecondArr > li').length>1 && precondsum>0?'
  • Σ'+Utils.FormatNumToStr(precondsum)+'
  • ':''); $('#js_researchAdvisorCurrResearchPrecondArr + span.desc').text(LD.resadvtxt[10]+':'); $('[id^="empire_researchAdvisorCurrResearchCosts"]').remove(); $('span#js_researchAdvisorCurrResearchCosts').hide().after(''); $('span#empire_researchAdvisorCurrResearchCosts_'+now).html(Utils.FormatNumToStr(CurrCost,false,0)+($('#js_researchAdvisorCurrResearchesArr > li.selected:not(.explored)').length>0 && tot[1]<=CurrCost ?' ('+Utils.FormatNumToStr((1-((CurrCost-tot[1])/CurrCost))*100,false,3)+' %)':'')); $('[id^="empire_researchAdvisorCurrResearchPointsNotEnough"]').remove(); $('span#js_researchAdvisorCurrResearchPointsNotEnough').hide().after(''); $('span#empire_researchAdvisorCurrResearchPointsNotEnough_'+now).text($('#js_researchAdvisorCurrResearchesArr > li.selected:not(.explored)').length>0 && tot[1]<=CurrCost ?LD.resadvtxt[6]:''); $('#js_researchesOfTypeDetails > span.desc').text(LD.resadvtxt[11]+':'); $('[id^="empire_researchAdvisorCurrResearchTimeNeeded"]').remove(); $('#js_researchAdvisorCurrResearchTimeNeeded').hide().after(''); // console.log(rtype); $('#empire_researchAdvisorCurrResearchTimeNeeded_'+now).html($('#js_researchAdvisorCurrResearchesArr > li.selected.explored').length>0?LD.resadvtxt[7]:(tot[1]>=CurrCost || data['js_researchAdvisorProgressbar'+rtype].progressbar==undefined ?LD.resadvtxt[8]:Utils.FormatFullTimeToDateString(data['js_researchAdvisorProgressbar'+rtype].progressbar.enddate*1000)+'
    ('+Utils.FormatTimeLengthToStr(data['js_researchAdvisorProgressbar'+rtype].progressbar.enddate*1000-moment(),5)+')')); $('#tab_researchAdvisor > h3.header').html(LD.zones[rtype]); $('#js_researchAdvisorConservationLink').text(LD.research); var changes = []; var selected = 0; $('#js_researchAdvisorCurrResearchesArr > li').each(function(a,li) { var id = parseInt($(li).find('a').attr('href').replace(/\D+/g,'')); var level = parseInt($(li).find('a').text().replace(/\D+/,'')); var explored = !isNaN(level) ? level-1 : ($(li).hasClass('explored')===true ? 1 : 0); selected += parseInt($(li).hasClass('selected')===true ? id : 0); var changed = database.getGlobalData.updateResearchTopic(id,explored); if(changed) changes.push({type:'research_topic',subType:id}); $(li).css({'list-style-position':'outside','margin-left':'20px'}).find('a').css({'margin':'0px'}).text(LD.researchtxt[id]+(id==((rtype+1)*1000)+999?' ('+(database.getGlobalData.getResearchTopicLevel(id)+1)+')':'')); }); if(changes.length) events(Constant.Events.GLOBAL_UPDATED).pub(changes); var s = 0; var cc = parseInt(unsafeWindow.ikariam.templateView.script.params.currResearchCosts.replace(/(\d+)[,.](?=\d{3}(\D|$))/g,'$1')); if(tot[0]>0) { var rate = parseFloat((tot[0]-tot[4]+tot[3]+tot[5])/3600); var rPointTimer = setInterval(function() { var CurrCost = parseInt($('#js_researchAdvisorCurrResearchCosts').text().split(' ')[0].replace(/(\d+)[,.](?=\d{3}(\D|$))/g,'$1')); $('#empire_researchAdvisorPoints_'+now).text(Utils.FormatNumToStr(tot[1]+(s*rate),false,0)); $('#researchAdvisorCurrResearchCostsPercentage_'+now).text(Utils.FormatNumToStr((1-((cc-tot[1]-(s*rate))/cc))*100,false,3)); $('#empire_researchAdvisorCurrResearchPointsNotEnough_'+now).text($('#js_researchAdvisorCurrResearchesArr > li.selected:not(.explored)').length>0 && tot[1]+(s*rate)<=CurrCost ?LD.resadvtxt[6]:''); if(tot[1]+(s*rate)<=CurrCost && $('#js_researchAdvisorCurrResearchesArr > li.selected:not(.explored)')) { $('#empire_researchAdvisorCurrResearchTimeNeeded_'+now).html($('#js_researchAdvisorCurrResearchesArr > li.selected.explored').length>0?LD.resadvtxt[7]:(tot[1]>=CurrCost || data['js_researchAdvisorProgressbar'+rtype].progressbar==undefined ?LD.resadvtxt[8]:Utils.FormatFullTimeToDateString(data['js_researchAdvisorProgressbar'+rtype].progressbar.enddate*1000)+'
    ('+Utils.FormatTimeLengthToStr(data['js_researchAdvisorProgressbar'+rtype].progressbar.enddate*1000-moment(),5)+')')); $('#js_researchAdvisorConservationLink').removeClass('invisible flowright button').addClass($('#js_researchAdvisorCurrResearchesArr > li.selected.explored').length>0?'invisible':(tot[1]>=CurrCost?'flowright button':'invisible')); } $('a[id^="js_researchAdvisorChangeResearchType"]').each(function(k,r) { var nextcost = parseInt($('#js_researchAdvisorNextResearchCost'+k).text().replace(/(\d+)[,.](?=\d{3}(\D|$))/g,'$1')); $('#empire_researchAdvisorProgressTxt'+k+'_'+now).html(tot[0]==0?LD.resadvtxt[0]:(tot[1] li > a').on('click',function() { if(tot[1]+(s*rate)>CurrCost){clearInterval(rPointTimer);} }); },1000); } else { clearInterval(rPointTimer); } render.toast(Utils.format('{0}: {1} - {2}',[LD.updated_,LD.advisors[2],LD['zones'][rtype]])); } }); }, parseregGifts:function() { var LD = Constant.LanguageData[database.settings.languageChange.value]; var now = moment(); $('#js_mainBoxHeaderTitle').text(LD.regGiftstxt[0]); $('#registrationGifts > div.bd.mainContentScroll > div.mainContent.minimizableContent > div.buildingDescription > p').text(LD.regGiftstxt[1]).prev().text(LD.regGiftstxt[0]); $('#registrationGifts > div.bd.mainContentScroll > div.mainContent.minimizableContent > div.contentBox01h > h3').text(LD.overview); var serverTimezoneOffset = unsafeWindow.dataSetForView.serverTimezoneOffset; var diff = -(moment(now).utcOffset()*60-serverTimezoneOffset)*1000; var d = moment(moment(now)+diff).endOf('day')-diff; var giftq = [200,15,2,[100,15],100,80,150]; var gifts = $('[id^=registrationGiftDay]').length; var startofshow = moment(database.getGlobalData.getRegDate+diff).startOf('day')-diff; var endofshow = moment(startofshow).add(gifts*2,'days'); var dis = gifts-moment(now).diff(startofshow,'days'); var giftcnt = $('[id^="registrationGiftDay"].button_disabled').length; $('[id^="registrationGiftDay"]').hide(); $('[id^="regGiftDay"], [id^="regGiftsRemTime"]').remove(); setInterval(function() { $('[id^=registrationGiftDay]').each(function(k,rd) { $('#regGiftDay'+(k+2)+'_'+now).attr({'class':$('#registrationGiftDay'+(k+2)).attr('class'),'href':$('#registrationGiftDay'+(k+2)).attr('href')}).prop('disabled',$('#registrationGiftDay'+(k+2)).hasClass('button_disabled')).html(dis+k('+Utils.FormatTimeLengthToStr(moment(startofshow).add(k+1,'days')-moment(),4)+')'); }); $('#regGiftsRemTime_'+now).html(moment(endofshow).subtract(7,'days')0?12:12],[Utils.FormatTimeLengthToStr(endofshow-moment(),4),Utils.FormatFullTimeToDateString(endofshow,true)]):''); },1000); var received = 0; $('[id^=registrationGiftDay]').each(function(k,rd) { received += dis+k li > span').text(Utils.format(k==3?LD.regGiftstxt[k+3][0]:LD.regGiftstxt[k+3],[Utils.FormatNumToStr(k==3?giftq[k][0]:giftq[k],false,0)])); $(rd).parent().prevAll('td.left').find('ul > li:nth-child(2) > span').text(Utils.format(k==3?LD.regGiftstxt[k+3][1]:LD.regGiftstxt[k+3],[Utils.FormatNumToStr(k==3?giftq[k][0]:giftq[k],false,0)])); $('#registrationGiftDay'+(k+2)).hide().after(''); $('#regGiftDay'+(k+2)+'_'+now).html(dis+k('+Utils.FormatTimeLengthToStr(moment(startofshow).add(k+1,'days')-now,4)+')'); }); $('#registrationGiftsRemainingTimeContainer').hide().after('

    '+(moment(endofshow).subtract(7,'days')0?12:13],[Utils.FormatTimeLengthToStr(endofshow-now,4),Utils.FormatFullTimeToDateString(endofshow,true)]):'')+'

    '); $('[id^="regGiftDay"]:not(".button_disabled")').on('click',function() { $('[id^="registrationGiftDay"]').hide(); $('[id^="regGiftDay"], [id^="regGiftsRemTime"]').remove(); giftcnt = $('[id^="registrationGiftDay"].button_disabled').length; setInterval(function() { $('[id^=registrationGiftDay]').each(function(k,rd) { $('#regGiftDay'+(k+2)+'_'+now).attr({'class':$('#registrationGiftDay'+(k+2)).attr('class'),'href':$('#registrationGiftDay'+(k+2)).attr('href')}).prop('disabled',$('#registrationGiftDay'+(k+2)).hasClass('button_disabled')).html(dis+k('+Utils.FormatTimeLengthToStr(moment(startofshow).add(k+1,'days')-moment(),4)+')'); }); $('#regGiftsRemTime_'+now).html(moment(endofshow).subtract(7,'days')0?12:13],[Utils.FormatTimeLengthToStr(endofshow-moment(),4),Utils.FormatFullTimeToDateString(endofshow,true)]):''); },1000); $('[id^=registrationGiftDay]').each(function(k,rd) { $(rd).parent().prevAll('td.registrationGiftsFirstColumn').css('opacity',dis+k li > span').text(Utils.format(k==3?LD.regGiftstxt[k+3][0]:LD.regGiftstxt[k+3],[Utils.FormatNumToStr(k==3?giftq[k][0]:giftq[k],false,0)])); $(rd).parent().prevAll('td.left').find('ul > li:nth-child(2) > span').text(Utils.format(k==3?LD.regGiftstxt[k+3][1]:LD.regGiftstxt[k+3],[Utils.FormatNumToStr(k==3?giftq[k][0]:giftq[k],false,0)])); $('#registrationGiftDay'+(k+2)).hide().after(''); $('#regGiftDay'+(k+2)+'_'+now).html(dis+k('+Utils.FormatTimeLengthToStr(moment(startofshow).add(k+1,'days')-now,4)+')'); }); $('#registrationGiftsRemainingTimeContainer').hide().after('

    '+(moment(endofshow).subtract(7,'days')0?12:12],[Utils.FormatTimeLengthToStr(endofshow-moment(),4),Utils.FormatFullTimeToDateString(endofshow,true)]):'')+'

    '); }); $.ajax( { success: function() { database.getGlobalData._giftsreceived = $('td.registrationGiftsFirstColumn').filter(function(){return $(this).css('opacity')==0.5;}).length; } }); render.toast(Utils.format('{0}: {1}',[LD.updated_,LD.regGiftstxt[0]])); }, parseabolishCity: function(data) { var LD = Constant.LanguageData[database.settings.languageChange.value]; var city = ikariam.getCurrentCity; $('#js_mainBoxHeaderTitle').text(LD.abandoncitytxt[1]); $('#abolishCity').find('div.buildingDescription > h1').text(LD.abandoncitytxt[1]); $('#abolishCity').find('div.buildingDescription > p').css({'text-align':'justify','margin':'0px 15px 10px 0px'}).text(LD.abandoncitytxt[2]); $('#abolishCity').find('form > div > h3.header').text(LD.abandoncitytxt[1]+' : '+city.getName); $('#abolishCity').find('form > div > div.content > p:first').css({'text-align':'justify','margin':'0px 15px 10px 0px'}).text(LD.abandoncitytxt[3]); $('#abolishCity').find('form > div > div.content > div:first > label').text(LD.abandoncitytxt[4]+':'); $('#abolishCity').find('form > div > div.content > div:last > input').val(LD.abandoncitytxt[1]+': '+city.getName); var previous = 'captchaImage0'; $('#abolishCity').find('form > div > div.content > img').before('
    '); $('#abolishCity').find('form > div > div.content > img').appendTo('#captchaimgcontainer'); $('#captchaimgcontainer > img.captchaImage').css({'cursor':'zoom-in'}).attr('id','captchaImage1').on('click',function() { var s=$(this).attr('id'); $('#'+s).animate({'width':'360px','height':'83px','top':'-5px','left':'15px'}); $('#'+s).css({'cursor':'zoom-out'}); if($('#'+previous).width()!=269 || $('#'+previous).height()!=62) { $('#'+previous).animate({'width':'269px','height':'62px','top':'0px','left':'78px'}); $('#'+previous).css({'cursor':'zoom-in'}); } $('#captcha').focus(); previous=s; }); if($('#captcha').length==1) { $('#captcha').after('
    ('+$('#captcha').val().length+' '+LD.chrcnt[($('#captcha').val().length==1?1:0)]+')
    '); } $('#captcha').attr({'autocomplete':'off','size':'14'}).css({'text-align':'center','font':'bold 150% monospace','letter-spacing':'10px','width':'158px'}).on('keydown',function(event) { if(event.originalEvent.code=='NumpadEnter' || event.originalEvent.code=='Enter' || event.originalEvent.code=='ArrowLeft' || event.originalEvent.code=='ArrowRight' || event.originalEvent.code=='Home' || event.originalEvent.code=='End' || event.originalEvent.code=='Tab' || (event.ctrlKey && event.originalEvent.code=='KeyC')) { return true; } else if(event.originalEvent.code=='Backspace' || event.originalEvent.code=='Delete') { $('#captchtxtcnter').html('('+(event.target.value.length-1)+' '+LD.chrcnt[event.target.value.length-1==1?1:0]+')'); return true; } else if((event.ctrlKey && event.originalEvent.code=='KeyX') || (event.ctrlKey && event.originalEvent.code=='KeyV')) { $('#captchtxtcnter').html('('+($('#captcha').val().length)+' '+LD.chrcnt[$('#captcha').val().length==1?1:0]+')'); return true; } event.preventDefault(); var c = event.originalEvent.code; var val = event.target.value; event.target.value = val+(val.length>7?'':(c.startsWith('Key') || c.startsWith('Digit') || c.startsWith('Numpad')?c.replace(/Key([A-Z])|Digit([0-9])|Numpad([0-9])|Numpad([A-Za-z]+)/,'$1$2$3'):'')); $('#captchtxtcnter').html('('+$('#captcha').val().length+' '+LD.chrcnt[$('#captcha').val().length==1?1:0]+')'); }).focus(); $('#abolishCity').find('form').submit(function(e) { e.preventDefault(); $.ajax( { url: $('#abolishCity').find('form').attr('action'), type: 'POST', data: $('#abolishCity').find('form').serialize(), success: function(data) { delete database.cities[city.getId]; $.each(database.settings.cityOrder.value,function(k,v) { if(Object.keys(database.cities).indexOf(v)==-1) { database.settings.cityOrder.value.splice(k,1); } }); // console.log(data); // console.log('City with id: '+city.getId+' was deleted!'); } }); return false; }); render.toast(Utils.format(LD.abandoncitytxt[0],[LD.colony,LD.leftquot+city._name+LD.rightquot])); }, parseAmbrosiaFountain: function(data) { var LD = Constant.LanguageData[database.settings.languageChange.value]; var city = ikariam.getCurrentCity; $('#js_mainBoxHeaderTitle').text(LD.ambrosiaFountain); $('#ambrosiaFountain').find('div.buildingDescription > h1').text(LD.ambrosiaFountain); $('#ambrosiaFountain').find('div.buildingDescription + div > h3').text(LD.ambrosiaFountain); $('#ambrosiaFountain').find('div.buildingDescription + div > div > table > tbody > tr:last > td').each(function(k,td) { $(td).find('div > div:first').html(Utils.Nth(k+1)+' '+LD.day_long); $(td).find('div > div:last > img').attr('alt',LD.ambrosia); }); $('#js_buyAmbrosiaText').text(function(){return Utils.format(LD.ambrosiaFountaintxt[parseInt($(this).text().replace(/\D+/g,''))==1?1:0],[Utils.FormatNumToStr(parseInt($(this).text().replace(/\D+/g,'')),false,0)])}).next('span').text(LD.ambrosiaFountaintxt[2]); $('#ambrosiaFountain').find('div.buildingDescription + div + div > h3').text(LD.ambrosiaFountain); $('#ambrosiaFountain').find('div.buildingDescription + div + div > div > p').each(function(k,p) { $(p).css('text-align','justify').html(LD.ambrosiaFountaintxt[k+3]); }); $('#ambrosiaFountain').find('div.buildingDescription + div + div > div > div > ul > li').each(function(k,li) { $(li).css('text-align','justify').html(LD.ambrosiaFountaintxt[k+6]); }); render.toast(Utils.format('{0}: {1} {2} {3} {4}',[LD.updated_,LD.ambrosiaFountain,LD.tothe,LD[city.isCapital?'capital':'colony'],LD.leftquot+city._name+LD.rightquot])); }, parseAcademy: function(data) { var now = moment(); $('[id^="empire_expachivtxt"],[id^="empire_expcosttxt"],[id^="empire_expachiv"],[id^="empire_expcost"]').remove(); var LD = Constant.LanguageData[database.settings.languageChange.value]; var city = ikariam.getCurrentCity; $('#js_mainBoxHeaderTitle').text(LD.academy); if($('#upgradeInProgress').length==0) { $('#setScientists').prev('div.buildingDescription').find('h1').text(LD.academy); $('#setScientists').prev('div.buildingDescription').find('p').css({'text-align':'justify','margin':'0px 15px 10px 0px'}).text(LD.academytxt[0]); } $('#setScientists > div > h3.header').text(LD.academytxt[1]); $('#valueCitizens').parent()[0].childNodes[0].nodeValue = LD.citizens+':'; $('#valueWorkers').parent()[0].childNodes[0].nodeValue = LD.scientists+':'; $('#gainPoints').prev('span.smallFont').text(LD.academytxt[2]+':'); var researchkeys = ['scientists','premiumScientistBonus|premiumResearchBonus|premiumCulturalGoodsBonus','researchBonus','culturalGoods','corruption','total'] $('#gainPoints').nextAll('div.tooltip').find('table > tbody > tr').each(function(k,tr) { $(tr).find('td:first').css('white-space','nowrap').html(k==5?' ':LD.academytxt[k+5-(k==6?1:0)]+':'); if(k==1) { var premsum = 0; var keys = researchkeys[k].split('|'); $.each(keys,function(key,rk) { premsum += city.research.researchData[rk]; }); } $(tr).find('td:last').css('white-space','nowrap').html(k==5?' ':Utils.FormatNumToStr(k==1?premsum:city.research.researchData[researchkeys[k-(k==6?1:0)]],k==6?false:true,2)); }); $('#overchargeMsg').text(LD.academytxt[11]+':'); $('#js_AcademySlider').find('a.setMin').addClass('empiretooltip').removeAttr('title').append(''); $('#js_AcademySlider').find('a.setMax').addClass('empiretooltip').removeAttr('title').append(''); $('#inputWorkersSubmit').val(LD.academytxt[14]); //$('#accelerateResearch > h3').text(LD.academytxt[15]); // console.log(city.getBuildingFromName(Constant.Buildings.OPTICIAN).getLevel); var rp = 0, gl = 0; var prc = city.getBuildingFromName(Constant.Buildings.OPTICIAN)==null?0:city.getBuildingFromName(Constant.Buildings.OPTICIAN).getLevel; var exptxts = setInterval(function() { if((database.getGlobalData.getTotalRPntsProduced+database.getGlobalData.getUnusedRPs)<=4.5e6) { rp = Math.ceil((database.getGlobalData.getTotalRPntsProduced+database.getGlobalData.getUnusedRPs)/30+1); gl = Math.floor(rp*(100-prc)/50-1); $('#empire_expachivtxt_'+now+',#empire_expachiv_'+now).html(Utils.FormatNumToStr(rp,false,0)); $('#empire_expcosttxt_'+now+',#empire_expcost_'+now).html(Utils.FormatNumToStr(gl,false,0)); $('#empire_ExperimentAcceleration').css('display',city._resources.glass.getCurrent h3.header').text(LD.academytxt[15]).next('p').css('text-align','justify').html(Utils.format(LD.academytxt[16],[''+Utils.FormatNumToStr(rp,false,0)+'',''+Utils.FormatNumToStr(gl,false,0)+''])); $('#accelerateResearch > div.centerButton > p.notice').text(LD.academytxt[17]); $('#accelerateResearch > div.centerButton > table > tbody > tr:first > td.left').text(LD.academytxt[18]); $('#accelerateResearch > div.centerButton > table > tbody > tr:first > td.right').addClass('empiretooltip').html(''+Utils.FormatNumToStr(rp,false,0)+''); $('#accelerateResearch > div.centerButton > table > tbody > tr:last > td.left').text(LD.academytxt[19]); var glcities = ''; var i = 0, sm = 0; $.each(database.settings.cityOrder.value,function(k,c) { c = database.cities[c]; if(c.getTradeGoodID==3) { i++; sm += c.getResource(Constant.Resources.GLASS).getProduction; glcities += ''+i+''+c.getName+''+Utils.FormatNumToStr(c.getResource(Constant.Resources.GLASS).getProduction*3600,false,0)+''+Utils.FormatTimeLengthToStr(gl*1000/c.getResource(Constant.Resources.GLASS).getProduction,6)+''; } }); glcities = ''+glcities+(i>1?'':'')+'
    '+LD.incr+''+Utils.format(LD.academytxt[33],[LD[i==1?'city':'towns']])+''+LD.academytxt[34]+''+LD.academytxt[35]+'
    Σ'+i+' '+LD[i==1?'city':'towns']+''+Utils.FormatNumToStr(sm*3600,false,0)+''+Utils.FormatTimeLengthToStr(gl*1000/sm,6)+'
    '; $('#accelerateResearch > div.centerButton > table > tbody > tr:last > td.right').addClass('empiretooltip').html(''+Utils.FormatNumToStr(gl,false,0)+''); $('#js_ExperimentAcceleration').hide().before('
    '); // $('#js_ExperimentAcceleration').css('display',city._resources.glass.getCurrent div.empiretooltip'); $('div.centerButton > div.empiretooltip > #js_ExperimentAcceleration').attr('id','empire_ExperimentAcceleration'); $('#empire_ExperimentAcceleration').css('display',city._resources.glass.getCurrent div.empiretooltip').append((city._resources.glass.getCurrent'+LD.academytxt[20]+'':'')+'