Ikariam Upgrade Watcher 2

Attaches a simple icon on each building which show level and if upgradeable

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name           Ikariam Upgrade Watcher 2
// @version        2.6.3
// @namespace      ikariam
// @description    Attaches a simple icon on each building which show level and if upgradeable
// @author         rmeza (update for ikariam v0.7.0)
//                 boun (update for greasemonkey 2.0+)
//                 Apollo ヅ, mrkokaney
//                 based on an original script from Anh Tuan Nguyen Dao (http://www.atdao.dk) (Update by michalis)
//                 Almost entirely rewritten for ikariam v0.5.0,
//                 Original from Anh Tuan Nguyen Dao : http://userscripts.org/scripts/show/49385
//                 Michalis update : http://userscripts.org/scripts/show/58694
//
// @include        http://s*.ikariam.gameforge.com/*?action=loginAvatar&*
// @include        http://s*.ikariam.gameforge.com/*?view=city&*
// @include        http://s*.ikariam.gameforge.com/*?*&function=changeCurrentCity&*
//
// @grant          none
//
// ==/UserScript==

// Changelog:
//      v2.6.3 (jan 8, 2016) (rmeza)
//              - Update temple and shipyard levels
//      v2.6.2 (dec 6, 2014) (boun)
//              - New building Sea Chart Archive (Thanks to Emmanuel who provided all datas!)
//	v2.6.1 (sept 24, 2014) (boun)
//		- Fix for greaemonkey 2.0+ (removed GM_ uses, moved saved data to localStorage, using grant none)
//		- Copied to greasyfork from old script (fetched on userscripts)
//	v2.6.0 (oct 21, 2013)
//		- Add black market (Thx Valkazaar).
//		- Fix building costs errors (thx mrkokaney).
//		- Fix host detection bug (Thx Scavenger) and icon hide bug.
//	v2.5.3 (sept 12, 2013) new gameforge servers
//	v2.5.2 (aug 23, 2013) Regression fix: city change
//	v2.5.1 (aug 23, 2013)
//		- Fix: undeclared variable bug (thanks Qmegas)
//		- A lot of code cleanup
//		- GreaseKit support dropped. Please use TamperMonkey.
//	v2.5 (mrkokaney, aug 12, 2013)
//		- massive costs updates
//		- tables are now easier to be modified (maybe for future updates) as resources and levels are clearly seperated
//		- comments over the tables with building names and resources needed for the upgrades were modified
//		- jQuery upgrade
//	v2.4 (dec 17, 2012)
//		- New building Pirate Fortress
//	v2.3.1 (dec 17, 2012)
//		- Fix : Hanged when reloading the view before spirit was researched.
//	v2.3 (dec 16, 2012)
//		- Fix : icon on position 16 can be hovered again.
//	v2.2 (dec 15, 2012)
//		- Fix : building updates when changing from enemy to own city and vice-versa.
//	v2.1 (sept 10, 2012)
//		- Fix : reduction buildings detected even when they are in construction.
//		- Fix : CSS issue with firefox 15, the tooltip appeared as if it had no background.
//	v2.0.6 (july 31, 2012)
//		- Fix : the port appeared not-upgradeable when busy.
//	v2.0.5 (june 24, 2012)
//		- massive update of the costs, thanks to Woeka and ManicMiner.
//		- Fix: detection of construction site (the GF changed it...)
//		- jQuery is now used in noConflict mode, to allow the use of multiple scripts in Chrome/Tampermonkey
//	v2.0.4 (may 25, 2012)
//		- right alignment of numbers, minor corrections on optician costs for levels 28-32
//		- palace constructionSite bugfix
//	v2.0.3 (may 9, 2012)
//		- display gray icons in cities that are not your own.
//	v2.0.2 (may 5, 2012)
//		- Fix : displays also on the first city view after you login !
//		- Fix : proper display for small buildings using only wood.
//	v2.0.1 (may 5, 2012)
//		- Thousands separator
//	v2.0.0 (may 5, 2012)
//		- New author :)
//		- Upgrade for ikariam v0.5.0
//		- Removed ajax use to find research levels : No network activity whatsoever.
//		- Removed support for older ikariam versions.
//		- show info box is not an option anymore (maybe back later... no time now)
//		- Uses jQuery (much easier...)
// Updates by michalis
//	v1.4.2 (20. February 2011)
//		- Added Support for museum with costs till level 21.
//	v1.4.1 (16. September 2010)
//		- Added Support for the new dump building with costs till level 40 and fix the problem with info box.
// Original author Anh Tuan Nguyen Dao
//	v1.3.2 (26. October 2009)
//		- Fixed icon and tooltip positioning for temple (thanks to Lordshinjo "http://userscripts.org/users/114555" for pointing out the problem).
//	v1.3.1 (16. October 2009)
//		- Fixed the building cost calculation has been revised in Ikariam version 0.32 which I did not know, so the calculation are all wrong. This is now fixed (thanks to RandomMan "http://userscripts.org/users/91016" for pointing out the problem).
//		- Fixed a bug with dot-notation problem for servers which uses such notation (thanks to malus "http://userscripts.org/users/109688" for posting the bug).
//		- For servers which are still at version 0.31, the "old" building cost calculation is still supported.
//	v1.3.0 (15. October 2009)
//		- Building cost database updated.
//		- Images are now linked in place.
//		- Ready for Ikariam version 0.32.
//		- Fixed a bug where the info box is not positioning correctly on palace or residence construction spot.
//		- Fixed a bug for servers which use dot-notation as thousand seperator in stead of comma (thanks to Carpediem "http://userscripts.org/users/100184" for pointing out the bug).
//	v1.2.2 (27. June 2009)
//		- Now supporting CreaseKit and Fluid (thanks to Kahil Young "http://userscripts.org/users/69426" for the suggestion and testing the mod in Fluid).
//	v1.2.1 (8. June 2009)
//		- Fixed a bug which caused no resource reduction when a reduction building is being upgrade.
//		- Improved positioning of the icons. Icon and info box at construction spot are now correctly positioned.
//	v1.2.0 (2. June 2009)
//		- New: Added icon and info box to construction spot (thanks to giangkid "http://userscripts.org/users/86129" for the suggestion).
//	v1.1.1 (26. May 2009)
//		- Fixed a bug when NOT using Black Canvas add-on to Firefox, the level indication is not centralized correctly.
//	v1.1.0 (25. May 2009)
//		- New: Added a info box which shows up when mouse over the icon, the box can be turned off in the options page.
//		- Fixed a bug where in a rare case, an icon is not shown on the wall.
//		- Fixed a bug which caused no sulfur reduction bonus.
//	v1.0.3 (17. May 2009)
//		- Fixed first time running check which caused unnecessarily research checks.
//	v1.0.2 (17. May 2009)
//		- Fixed the parsing of the building level correctly for different languages (thanks to oliezekat "http://userscripts.org/users/78627").
//		- Improved bureaucracy-spot check.
//	v1.0.1 (17. May 2009)
//		- Fixed bureaucracy-spot, not showing if you are not done with that research.
//		- Removed alert boxes which shows up at the start.
//	v1.0.0 (16. May 2009)

// only for debug...
//restore_consolelog();

var imgYes	= "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH9SURBVHjatJbdK0NhHMd/Oy5ES5oUF/I2skySaBx5acWNXCrhwkuGC+IPIS4w5Qopl3JDLbOMFZLQxAy5mPKStJQL5vddz7RwZrPjV989ned0Pt+z55zn9z2aQCBAESqVVcYqYWlZWWL+huVnHbEOWE9KAI2CQQqrhSXP7y5IGx47Pb48kvvWHTxpyDCQLllHDfp66qzoeOcpJ2uF9RyNQTHLMrE5mTi1NU1vgbdI/5ASNAk0WDNAw3VDr3xoZZ1EMjA7Lhyti/tLZDuzUSxlLjRTe3kb1ebXLvOh7SeDUlZ/43ST5H24pL9UXlourQ+sYclmWIeYk8IeZlf3Uu+f4ShcCwZYgvlp0DxmH0/i5aF4CwywwAwZ6PC2WJ2zpFYJlgw2DCpntq3Sb29LLAUWmGDjx+D0Okntcl25MBTBICOeB6tU53ceDJkw0GKXql2CqZXonwsGfvQVtUsw/TC4xQ5UuwrS9Rh8MHDLebLqBqYcE4ZTGOz1V1ve0RXVKrDABBsG9+jnFrlPNQPBwua6D71Fq6P1I6/cauOGgwEWmOHNDpE3h34ezwPHtWCAFYrRb4HDQRMMnFg7K+4ccA4excAJD54ebrmJ6IrRRCbWXCzLXChofgv9VBH6VeGhf+w7Dp40Zhq/hv6OCP2naL8qlD5bssX8dbSfLR8CDACURMy5Nc8LLAAAAABJRU5ErkJggg==";
var imgWait	= "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH/SURBVHjatJbNSwJRFMWvg2DCGFKEComLCLIPMqIiWlW7qCSIiDYRLfof2rduGS0k2lS0CSvaVauQqEjpwyCCwkDDCkmhhNDuGd6EfahjTheOMG+c35l5b+aeZ8hms1SgrKw2VgtLZjnFeISVYp2xTlmJfABDHoNK1jCrx7/3JB2GkpRIvtNN5E05WeesIKvFSF2tFvL2VWd46IC1yXrRYtDEmln2P5hWtuOUyRR8QpIkA00M1tCk15bmw0XWRSGD/qPz5NjW/jMFgi9USnV7Kmmot4o6mi3rfLirjhtz/tPKGl1YjVIklqZSCzd0z9d1zFlG+fCRFVKeMGcxp2bnb6W/wNXCtWCAJZifBoNLGw9mnh4qt8AAC0zVoApvy9pOnPQqweoBGwadPCAVe1tKKbDABBs/7pPLFOldwbDCbICB/b6Mhc1Xd1GF6YCBjK9U7xJMWaJ/Lhik0Ff0LsFMwSBWazfpbuByKMwoDMLtjbLuBh63wryCwfH4QE0GXVG3eWcWmGBLojEd8IBuBoKFjHhU36LtqRFbmltt2XAwwAIzt9kh8nzo584yFhzXggGWGqM/Aof7uhI4pXZW3DngHDxfAue3yETwTHPLNaEraolMzLmYFp8aNMVC3ypCvzs39K/vXpWT9S7z99APiNBPaN1V5Nu2uNRepnXb8iHAALTTzrv1a76ZAAAAAElFTkSuQmCC";
var imgNo	= "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH6SURBVHjatJa7S8NgFMVvo7UGiq9JBxGnWkTEwYoPXFzFRelc6VDp0H/A2X9B7FDoXHQRVxfxgQ8QEalOUhx0EFu10NZq6jkxkfpIjTZeOP1ISn43373kns9VqVSkRrRBQ9AA5IW6jftXUB46hY6hnBXAZZGgBZqBxouplFLe3pZKNivPFxf6n40+n7ja28U9MSHNwaCGWzvQOvRgJ0E/FCnE455CIiGiaVIzFEXUcFjUSKSEqzh0VivBVHl3N1haXZWnrS35TTRNTopnbk7cY2MpXG5+l2AQWrifnVVeMhn5SzT09Ejr2hq3vAKd6Busaub8Yyz2ZziDz5JBlsF8TzBdWF5WUR6pN8ggi0yzRB1Yl+4CAeXHhtoNNL7j4ICwRe4gUEwmnYMzwNKZYPPHX97fF6ejfHjIpY8JOutprGXDLy+5dDGBV8NX6nQYTK8i/xxMkFcwVxwHvzHzTHDDL9DpaOjt5XLNBGn3yIjjCdzDw1zOmeCoORTS+HE4Vx9FdCbYpN5ynquhkGN8g0WPuDVfe0ONRksYtfWXBgyyyKwedrS8BOd5PQ3ns2SQZdroF8OB0eiG89vJyjcnHMZjaTjVxhPGyPUUkkl7lomaG2VJmEbzk+m3GaY/+sH00+k30/f7P5v+nmH6ObunCqtji9mgjN1jy6sAAwD9Hc4TcS9VxQAAAABJRU5ErkJggg==";
var imgUnknown	= "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHmSURBVHjatJYxT8JQFIUvXYgJGOJkQ0zDpoiIDCbGsWETSUjjbhz8MfwCBzcmQ0gQN9LRuBhERHQjjSE4MBBhYSne0zwIqMXW1pscmj5433m8tvc0MJlMaElFWHusHVaItSHG31gj1hPrgTWwAwRsDFZZx6zDWq0mNRoNGg6HZBiG9aWiKBQOhymVSlEmkzF56JZ1zfpwYrDNOi+Xy8FKpUKmaS77hyRJEuVyOcrn82M+vWA9LzNQm83mia7rVK/XyU2l02lSVZWSyeQVn+qzBcz9ZpelFYtF13AU5mAuGIK1YICLeVooFKRer0d/LcwFAyzBnBkclUqlFd4e8lpggAXm1GANd0u1WiW/SrAOwYbBPg9Iv90tbgosMMHGx1ar1SK/q91u47AJg3UvF9auut0uDjIMQnhK/S7BDEn0zwWDEfqK3yWYIxi8y7Lsu0E0GrWePRi8JBIJ3w3i8TgOrzC4z2azJrqib/vOLDDBBrWPfs4DvhkIFjKiP132jaZpY261nuFggAXmfLND5F2in3u54JgLBljTGP0WONzXrcBx21mxcsA5eBYC56fIRFicccsNois6iUzsudgWrPzRSehHROgfzId+p9OxvozFYl9D/06E/sDpW4Xda4sixg2nry2fAgwA7hjKmyGdaWoAAAAASUVORK5CYII=";
var imgWood	= "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAMCAYAAAC9QufkAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH9SURBVHjadJJNSNNxGMc///lvrb3828q1FJ1MKHCjlF4ouihJB4O69HJO8FCX6NC5a0XdeoGgc5ZEkIJ1iBpJRQmh4jxs2pZzm5ub/jfHxl7s3/6/sbJgz+V5+fF9nu/z/T1S6ttTtlsur2rBuWcUkmX6zlxBsdolmpjhf+Ce1p2cPD2Mu8/F/Mt7yKai1gwsN4ItaUaTJJVSyS7yHbt2E4+pvB99wn5Ht3Zw4LzUdHIhr/7jDdUi6Vyte3aNdOQrQf+41nRy+MdPPN1dwjsdGULTUfxhCKQLuCy/6N+Y1JtonsER2jo9goWkC6bvtZ4u4R+7jd3RxoOJVVrym9y6uI+FUEowKJvstBtVEV+9+0iAZV2kaOgzxbWIYPB4NERLzd+84aOz18viizf4zFmShTowXZT/0rbYIrglM7R7ReG6IcaJ4UsE5mbJb2Q4erafpS9BvJWseM/EEiSiYU2nLusC5TYLVIpZjDYLkVhdMN/hXlLRJRSbGbPLyKvn66LedaiHwMP79Axd1mQd2Pgahayg1mioOPayHC+Ig1EcVqaiW0xOrOA2QeunMWSb9RSR8OvaJRlZnklyZ0rj2OyCYGGoWsnMR/n4ISwGDDqr4KwBFYiX7XW19R3evR1nerHCiqqxmkhx7VwHRwYO8N0f+lPv2HapF4aO81uAAQAil+gxsz59XAAAAABJRU5ErkJggg==";
var imgWine	= "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAMCAYAAABSgIzaAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHGSURBVHjaYnx1ag4DOtj38OT/vefPM4iJMjDoyhgy2MmaM7AwMTAiq2FhwAKWnFgGpr//YmH4wXSP4SfTKwZPBl8UNUzomv78Y/gvIAYx78OrPwxf3/1jePLwBYbhGBpBThJXYYbzv7z7z2Dy3Q9DIyOyH1+/+/B/3oTdDFsunmeQU2cFi7Ebf2CQ0YCwHQRCGZzkzRlRbARpOrnkIsOD128YfPQNGfK1/BkaLKIZXh3mhtt8X3YDOODgGs/fePk/KLGLQYyPlyHR3JxBW0SMYcO1ywzzTxxnUDaTAWsC+ffh5d8MZ37thngJFBi/TzwF2wJS/P7zNwYFURGGwzdvMrz4+JlhUpcbw+79dxnUrdihNn9g2M6w+T/L+w8fGNp372JINrdkuPrmFcPqU2cYJJ7xMpQ7u4MVXr59GEyDQpdbCOKzZ/+OIeJx6/VrYNpFUwtMq8tIMtx88pzhxrnX8MARkUaENrP8N56Gjz9+MJjJyzOEm5kwCLFzMtx+85ph/YULDOefPmGYlFPKoH5eg+EYwxkGMQVmhm+f/zNE/KuERAcoREGmgKJCVUWVwS/GACOJgQLwDOcmhndMtxmSuKsYAAIMAHIKugpSnTR5AAAAAElFTkSuQmCC";
var imgMarble	= "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGoSURBVHjahFJdL8NgFH46XddtXZdN4yOWmBAXSCSEGy5dSvxB/8MdQUSQIBIuFqLD0q7ZlK5dt7a8+p6Jj2Tm3PT07Xue83xUsE63MahYqsAcYRRC4xLpdBrJISb8/C4OGg7fBCYWF1C/ucLxwQ1EgWFtuczKE8NfIIlBw5VmqteHXQQdH1G8fPe4Ar3WZP8CXOghtJExRP4LvJaLtufiLQZqOQ529mJGlzrrC8A111Fm2ZxCW4/2D8D7jc2tWH+PeRAE+JMBN0yWZahqHr7fQUbJYW5xhdhIchrFQv7X/b4SnBcbRq0Wuy7Tdi6jeneL6r1OIJqm4cF4JS/6AvDNk9MzKE3Nkn5ejboJv+1BkmRksgqdnVw9fcdIkZXWKbJ8oUAyLOORgNqdEE37FS3Xg+vYcD2fZorDxR7Ac6CwIbWETjxwdrgLMSnCcVyiOr+0Cnl8HO9Rl4YMo46cqpKR/E6Cbw4lDRk5iYZlovvpcBQGeKjquD4/JU8SYu+f4DLEpEQ9jzZhhiP0YpoWPXnOPL5ULIEXpyxEPlzbQk7J0pndbHz59SHAAPFG0oxdJVVKAAAAAElFTkSuQmCC";
var imgSulfur	= "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAMCAYAAABr5z2BAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH0SURBVHjajJJNaxNRFIafGZNp08zEJE3EaFOTCNFaRFqUggURddWFKC5cCP4H8V+4cVNc6cK6caMuBEGQaoVGLA1aJVosbZqONmnMh81kMu1UM85MQYrU4IELF877de49QnnmLp3KK723PmRyDJy8JuzWFzuSg6LVNosMnx1hLjtltdtb1n8L+A8mLYkiohRDbxyiNxrk47sMf4vsKuCAjPIL2FpCil7GaL1lLf+K0sJLHtwZ75wgfPyKpcTT7BE0TO8oPitDfypKS9NpapvIXWXu3bpp3R+/bf0zQXXxKR5JRtkrYKwvs6HXiCfDyEoXP+omp88NUy8v83VlzvojIHp9luP+bfo6oUg3tdUc048maAtR8vN5egIBhkbTLtbn07h0dYDnDye2Ezjk4NExNPUJ4QOD/DSbzL7OkUjLmM0F1KXvtBoNO5Gfvn4FNV9zTzAkIe4kO69eKZWYfPyMUxcuumKLuYI7f7Wyibauc2ZsiC+fqrSaJqrawuPbtx/1zQ032sq8DdYrHDmRwN+tUvhcd53KRQ3ZJvT4I8TiEuljvWRn1kimDiO632VXvaZgCn0Mjpy3QSGaDdON7Tg5FYmFXHGnHANF9rh3YecqO/+vKLP2CqYw9ASGsbq9kaLszCo4fX+gQL2yQaX8i+zkFL8FGABBCeG3MCTxbAAAAABJRU5ErkJggg==";
var imgCrystal	= "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAMCAYAAAC9QufkAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAHdSURBVHjabFLPTxNREP62u12WbdfSLiVSa1OgGIEABWMImiByENFoAvwBXLh68MK/4cmb8Wi4kXA0Bi7EH5Sfxq5GGzCSIpTYlO12a9utD3aq1Y2dy8y8N9+bb755XGb9GRrZT+ZmCWEY160tSFyFa1QjNDp8uhdix3wQ0VAL0uId3JC+skgx+d8Drkbg7SxPvlCuwixb+PgritWMh9lsHODPeYktcvfZ88okS5bb6wVKE49iqUxFacPCk2UNb05EJ+10kYcpWZS84waQ9cnn0QblplVrlNLek7/UXHXS1gwfbnW1UiKLAr78MCFIMpjohSxweL2r4UPiLSYnRuGPz+Jf6q5e7ykuuIFuVab5bOtq9ZA/KZSQ2VmjONYzBL3i1IazVzW/cZndi3cipTM0N4lI7h9g+loMS5sp9Mt5DMRHsJw8JMCjKwb+KE9qDwWqePnpCBFVqYu0+z2PQFXH3fHbuBqUEQkotf17onXqLjt40OcnqmLFwGC7gottbUT58cxETSivG2MdKhbGY3ih6bA/D4G/GTxe6WGoahAre7nafs+7P+wLUZw4yDnmtO92dOXvzHNLBuu4OYWwWMJYLAi/r4W6LW7uY7AzjMOcCfP3OIWCgaxRpLozAQYAw+q/LLa8YygAAAAASUVORK5CYII=";
var imgScroll	= 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAJCAYAAAA2NNx1AAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9wFCQkMAyatkzcAAAAdaVRYdENvbW1lbnQAAAAAAENyZWF0ZWQgd2l0aCBHSU1QZC5lBwAAATJJREFUKM+10j8vA3Ecx/H37+7X9jSSYnCVdBHtQNKh6WDC0HgEHoMHYDEYJRaLzSIsHoPEnzQi0ZOII40IEZaqgRCl1/rhej9rJSfR4DN/X8kn33wEwMLUqAZ4UZL6k2LZcQUdJMwbXy4Cza/S5oVf3dK10jzH++cUXUUmJZnIxVnb8Mhn09h2i8HsED0Ji2jc4L0ZUHtWAJwVHQpz64R5A18BGqFNtDbRgcAwjZ+3/MYLv17V6u6ISrlE5fKa/gFBX9LCOZCM5HMkEoLe9BhdVjdmTNJ683lVHgDe7QXJ4XHCvOTxBOUucrN3xbbbIJOSFPIWp8UG0fsytt0i8rCLTFiIuMFHM8Bre0VydjXUGxAAAlMGxCKCWERjdrSJcC92Vmb04abDn89tcnpJ/MfcPgHFJapS8yGUIAAAAABJRU5ErkJggg==';

var IUW_stylesheet =
	'.iuwIcon { position: absolute; z-index: 499; padding-top: 5px; height: 19px; width: 24px; text-align: center; color:white; font-weight:bold; cursor:default } ' +
	'.iuwyes { background-image: url(' + imgYes + '); } ' +
	'.iuwno { background-image: url(' + imgNo + '); } ' +
	'.iuwwait { background-image: url(' + imgWait + '); } ' +
	'.iuwunknown { background-image: url(' + imgUnknown + '); } ' +
	'#iuwtooltip {position:absolute;line-height:19px; text-align:right; font-size:smaller;opacity:0.85;color:#333;display:none;z-index:499; font-weight:bold; border:solid #c3802d;	border-width:4px 10px 4px 11px;	-moz-border-image:url('+imgScroll+') 4 10 4 11 fill repeat; -webkit-border-image:url('+imgScroll+') 4 10 4 11 fill repeat; } ' +
	'.iuwgreen { color:green; } ' +
	'.iuwred   { color:red; } ' +
	'.iuwwood    { padding-left:20px; background:url(' + imgWood + ') 2px 50% no-repeat; } ' +
	'.iuwwine    { padding-left:20px; background:url(' + imgWine + ') 2px 50% no-repeat; } ' +
	'.iuwmarble  { padding-left:20px; background:url(' + imgMarble + ') 0 50% no-repeat; } ' +
	'.iuwcrystal { padding-left:20px; background:url(' + imgCrystal + ') 2px 50% no-repeat; } ' +
  '.iuwsulfur  { padding-left:20px; background:url(' + imgSulfur + ') 0 50% no-repeat; }';

var IUW = (function() {
	"use strict";
	// Materials reduction from researches
	var pulley = Number(localStorage.getItem("_iuw_pulley", 0)),
		geometry = Number(localStorage.getItem("_iuw_geometry", 0)),
		spirit = Number(localStorage.getItem("_iuw_spirit", 0));

	var icons = [];
	var redCoef = null; // reduction coefficients

	var screen = null,
		spot = null,
		ownCity = true;

	// Startup - called once on page load.
	function init() {
		// Add stylesheet to document, avoiding GM_addstyle use.
		var IUW_css = document.createElement("style");
		IUW_css.type = "text/css";
		IUW_css.innerHTML = IUW_stylesheet;
		document.body.appendChild(IUW_css);

		screen = ikariam.getScreen();
		spot = screen.data.position;

		// Create all 18 icons.
		for(var i = 0; i < spot.length; i++) {
			icons.push( new IUWIcon(i) );
		}

		// When we get a new popup (changeView event), we may deduce info about researches and building prices.
		// We do this only if the last building research (Spirit Level) isn't complete.
		// Once Spirit Level has been completed, we don't need anymore research info.
		if(!spirit) {
			ajax.Responder.IUW_IkaChangeView = ajax.Responder.changeView;
			ajax.Responder.changeView = function(params) {
				ajax.Responder.IUW_IkaChangeView(params);
				var id = params[0];
				var div = document.getElementById('buildingUpgrade');
				if(div) {
					checkResearch(div, id);
				}
			};
		}

		// Some important data may have changed. Check if the building icons need to be refreshed.
		var screenUpdate = screen.update;
		screen.update = function(data) {
			screenUpdate.call(screen, data);
			reload();
		};
	}

	// We inspect the building upgrade popup to check for pricing distorsion
	// and deduce which researches are completed.
	//
	// @param buildingUpgradeDiv a DOM object containing all the info - used to restrict DOM lookups.
	// @param buildingType string the building type,  used as key in the BUILDINGS database.
	function checkResearch(buildingUgradeDiv, buildingType) {
		// Buliding level
		var level = IUW.$('ul.actions li:eq(1)', buildingUgradeDiv).text(); // 3 action list elements : upgrade, level, downgrade
		if(!level) return;
		level = parseInt(level.replace(/[^0-9]/g, ''), 10);

		// wood price - actual price displayed on screen, with all reductions
		var wood = IUW.$('li.wood', buildingUgradeDiv).text();
		if(!wood) return;
		wood = parseInt(wood.replace(/[^0-9]/g, ''), 10);

		// wood price - base price from DB without any reductions
		var prices = IUW.BUILDINGS[buildingType];
		if(!prices) return;
		var baseWood = prices[level-1].wood;

		// minus the reductions we know about
		var theoretical = Math.floor(baseWood * redCoef.wood);

		// Match ?
		if(theoretical > wood) { // theoretical price is never underestimated, since all you get in the game are reductions
			// difference between old and new reduction. Can be 2, 4, 6, 8, 12, 14
			// Pulley +2
			// Geometry +4
			// Spirit +8
			var difference = Math.round((theoretical - wood)/baseWood*100);	// in percent
			pulley   = (difference >= 2) ? 1 : 0;
			geometry = (difference >= 4) ? 1 : 0;
			spirit   = (difference >= 14) ? 1 : 0;

			localStorage.setItem("_iuw_pulley", pulley);
			localStorage.setItem("_iuw_geometry", geometry);
			localStorage.setItem("_iuw_spirit", spirit);
		}
	}

	// updates reduction coefficients redCoef.
	// This method is called on several occasions.
	function getReductions() {
		// Just in case ikariam creates new objects every now and then.
		screen = ikariam.getScreen();
		spot = screen.data.position;

		// Reduced materials
		var redAll = 0, redWood = 0, redWine = 0, redMarble = 0, redCrystal = 0, redSulfur = 0;

		// Assigning reductions in %
		if (pulley)   { redAll = 2;          }
		if (geometry) { redAll = redAll + 4; }
		if (spirit)   { redAll = redAll + 8; }

		// We check if the user has built some material reduction buildings
		for (var i = 0; i < spot.length; i++) {
			// 'carpenter' or 'carpentering constructionSite' or 'buildingGround shore' or 'buildingGround land' or 'buildingGround wall' ...
			var buildingType = spot[i].building.split(/ /)[0];
			switch (buildingType) {
				case 'architect':
					redMarble = parseInt(spot[i].level, 10);
					break;
				case 'optician':
					redCrystal = parseInt(spot[i].level, 10);
					break;
				case 'carpentering':
					redWood = parseInt(spot[i].level, 10);
					break;
				case 'vineyard':
					redWine = parseInt(spot[i].level, 10);
					break;
				case 'fireworker':
					redSulfur = parseInt(spot[i].level, 10);
					break;
			}
		}

		// Setting the material reduction coefficients
		redCoef = {
			wood    : 1 - (redWood    + redAll)/100,
			wine    : 1 - (redWine    + redAll)/100,
			marble  : 1 - (redMarble  + redAll)/100,
			crystal : 1 - (redCrystal + redAll)/100,
			sulfur  : 1 - (redSulfur  + redAll)/100
		};
	}

	/**
	 * Main function : loops through building locations, retrieves building types and levels,
	 * and updates their icon accordingly.
	 * This method is called on several occasions.
	 */
	function updateIcons() {
		// Bureaucracy
		var lockedPosition = screen.data.lockedPosition ? screen.data.lockedPosition[0] : -1;

		// Info about each building/spot
		var level, busy, underConstruction, upLevel, posTop, posRight;
		var cityBusy = (IUW.$('.constructionSite').length > 0);		// 2 divs if under construction

		// Updating the icon for each building
		for (var i = 0; i < spot.length; i++) {

			// Check for bureaucracy spot
			if (i === lockedPosition) {
				// If the research have not been done
				// we skip skip the position 13
				icons[i].hide();
				continue;
			}

			// Gets the level of a building
			level = spot[i].level;
			underConstruction = false;		// detected later
			var buildingType = spot[i].building;
			// Busy buildings : port, workshop, shipyard, barracks, hideout(?)
			busy = spot[i].isBusy && (buildingType !== 'port');		// 'port constructionSite' ⇒ busy too because cityBusy = true
			busy = busy || cityBusy;

			if(buildingType.substr(0, 15) === 'buildingGround ')	{		// buildingGround land, buildingGround shore
				icons[i].hide();
				continue;
			}
			else if(buildingType.substr(-17) === ' constructionSite')	{ // palace constructionSite
				buildingType = buildingType.substr(0, buildingType.length-17);
				underConstruction = true;
			}

			// The upgrade level
			// Note: because the database starts with lvl 2 of all buildings,
			// and the index starts with 0, we have to get one level below
			if (underConstruction) {
				// If we find a contruction spot, we would like to see the level after the construction
				upLevel = parseInt(level, 10);

				// Positioning for construction spot
				posTop = IUW.POSITIONS.constructionSite.y;
				posRight = IUW.POSITIONS.constructionSite.x;

			}
			else if (IUW.POSITIONS.hasOwnProperty(buildingType) && IUW.BUILDINGS.hasOwnProperty(buildingType)) {
				// Positioning for other buildings
				upLevel = parseInt(level, 10) - 1;
				var POS = IUW.POSITIONS[buildingType];
				// Ports on the right spot have a different image
				if(i === 2) {
					POS = IUW.POSITIONS[buildingType+'2'];
				}
				posTop = POS.y;
				posRight = POS.x;
			}
			else {
				console.warn('Ikariam Upgrade Watcher 2 : unknown building '+buildingType);
				icons[i].hide();
				continue;
			}

			// Is the building known in DB ?
			// If the level is out of bound in DB, we make the icon black.
			var requirements = null;

			if(ownCity) {
				// Get basic resource requirements in the DB
				var basicRequirements = IUW.BUILDINGS[buildingType][upLevel];
				if(basicRequirements) {
					// And apply deductions
					requirements = {
						wood    : Math.floor( basicRequirements.wood    * redCoef.wood   ), // all buildings require wood
						wine    : Math.floor( basicRequirements.wine    * redCoef.wine   ), // NaN for unused materials
						marble  : Math.floor( basicRequirements.marble  * redCoef.marble ),
						crystal : Math.floor( basicRequirements.crystal * redCoef.crystal),
						sulfur  : Math.floor( basicRequirements.sulfur  * redCoef.sulfur )
					};
				}
			}

			// Updates the icon
			icons[i].update(posTop, posRight, busy, level, requirements);

		}  // end of iteration through buildings
	}

	function reload () {
		// Get each building/spot from the new building list
		spot = screen.data.position;

		// Is this our city ?
		ownCity = (screen.data.ownerId === ikariam.model.avatarId);

		if(ownCity) {
			getReductions();
		}

		// Own city or not :
		updateIcons();
	}

	// Public
	return {
		init: init,
		reload: reload
	};
})();

//---------------------------- CLASSES ----------------------------//
/**
 * Creates an icon to attach a building
 * @param object obj
 * @param int     position building position spot number
 * @param integer position top
 * @param integer position right
 * @param string  img = 'wait', 'yes', 'no', unknown'
 * @param integer level
 * @param req     array [wood, wine, marble, crystal, sulfur]
 * @return void
 */
var IUWIcon = function(position) {
	"use strict";

	this.position = position; // position number in the city, from 0 to 16
	this.level = 0; // building level
	this.requirements = null; // { wood, wine, marble, wrystal, sulfur }
	this.top = 0;
	this.right = 0;

	this.createDiv();
	this.icon = IUW.$('#iuwIcon'+this.position); // for faster access
	this.setTooltip();
};

IUWIcon.prototype.hide = function() {
	"use strict";
	this.icon.hide();
};

// Updates the icon position, class and text
IUWIcon.prototype.update = function(top, right, busy, level, req) {
	"use strict";
	this.level = level; // building level
	this.requirements = req; // { wood, wine, marble, crystal, sulfur }
	this.top = top;
	this.right = right;

	// position
	// icon#16 is positionned relative to the global #locations container. See IUWIcon.prototype.createDiv
	if(this.position === 16) {
		this.icon.css('top', this.top + 319);
		this.icon.css('left', 1088 + 86 - 24 - this.right); // #position16.left - #position16.width - this.width = 1088 + 86 - 24.
	}
	else {
		this.icon.css('top', this.top);
		this.icon.css('right', this.right);
	}

	// class
	// no.png = red
	// yes.png = green
	// wait.png = blue
	// unknown.png = grey
	this.icon.show();
	var img = 'no';
	if(!this.requirements) {
		img = 'unknown';
	}
	else if(hasEnoughResources(this.requirements)) {
		img = busy ? "wait": 'yes';
	}
	this.icon.removeClass('iuwyes iuwno iuwwait iuwunknown').addClass('iuw'+img);

	// text : building level
	this.icon.text(this.level);
};

// Create the empty icon div.
IUWIcon.prototype.createDiv = function() {
	"use strict";
	if(this.position === 16) {
		// #position16 has a z-index below that of #position10, which prevents the icon to get the mouseover event.
		// So in order to have icon#16 above #position10, we must not create it inside #position16 container.
		// It will have to be positionned relative to the #locations container, not #position16, obviously.
		IUW.$('#position16').after('<div id="iuwIcon16" class="iuwIcon" style="display:none"></div>');
	}
	else {
		IUW.$('#position'+this.position).append('<div id="iuwIcon'+ this.position +'" class="iuwIcon" style="display:none"></div>');
	}
};

IUWIcon.prototype.info = function() {
	"use strict";
	// Get current resources
	var ikares = ikariam.model.currentResources;
	var curRes = {
		wood   :ikares.resource,
		wine   :ikares[1],
		marble :ikares[2],
		crystal:ikares[3],
		sulfur :ikares[4]
	};

	// Estimating the resource status
	var html = '';
	for(var name in this.requirements) {
		// Process only required resources
		var required = this.requirements[name];
		if(required) {
			var current = curRes[name];
			var estimated = current - required;
			// Adding color to the values
			// Red if negative
			// Green if 0 or positive
			var color = (estimated >= 0) ? "iuwgreen": 'iuwred';
			html += '<div class="iuw' + name + ' ' + color + '">'+ estimated.toLocaleString() +'</div>';
		}
	}

	return html;
};

IUWIcon.prototype.setTooltip = function() {
	"use strict";
	var xOffset = 10;
	var yOffset = 0;
	var self = this;
	this.icon.hover(
		function(e){
			if(!self.requirements)		// unknown.png (maximum level building)
				return;
			var tooltip = IUW.$("#iuwtooltip");
			if(tooltip.length === 0) {
				IUW.$("body").append('<div id="iuwtooltip"></div>');
				tooltip = IUW.$("#iuwtooltip");
			}
			tooltip
				.html(self.info())
				.css("top",(e.pageY - yOffset) + "px")
				.css("left",(e.pageX + xOffset) + "px")
				.stop(true, true)
				.fadeIn("fast");
		},
		function(){
			IUW.$("#iuwtooltip").stop(true, true).fadeOut("fast");
		}
	);
	this.icon.mousemove(function(e){
		IUW.$("#iuwtooltip")
			.css("top",(e.pageY - yOffset) + "px")
			.css("left",(e.pageX + xOffset) + "px");
	});
};

//---------------------------- FUNCTIONS ----------------------------//
function hasEnoughResources(requirements) {
	"use strict";
	// Get the resources we have in town
	var current = ikariam.model.currentResources;
	return (
		(isNaN(requirements.wood)    || (current.resource >= requirements.wood)) &&
		(isNaN(requirements.wine)    || (current[1] >= requirements.wine)) &&
		(isNaN(requirements.marble)  || (current[2] >= requirements.marble)) &&
		(isNaN(requirements.crystal) || (current[3] >= requirements.crystal)) &&
		(isNaN(requirements.sulfur)  || (current[4] >= requirements.sulfur))
	);
}

function restore_consolelog() {
	// FOR DEBUG PURPOSE
	// Restore console.log function (overloaded/disabled by Ikariam script).
	var i = document.createElement('iframe');
	document.body.appendChild(i);
	window.console = i.contentWindow.console;
}


//---------------------------- DATABASE ----------------------------//

// Positions for each icon. Some of these won't work for left-to-right
// writing countries, where the icons are reversed.
IUW.POSITIONS = {
	academy:	{ x:50, y:38 },
	alchemist:	{ x:50, y:40 },
	architect:	{ x:60, y:35 },
	barracks:	{ x:32, y:40 },
	blackMarket: { x:-5, y:20 },
	branchOffice:{ x:50, y:45 },
	carpentering:{ x:30, y:30 },
	constructionSite:{ x:85, y:48 }, // (left side)  or { x:35, y:65 } for below
	dump:		{ x:40, y:40 },
	embassy:	{ x:40, y:40 },
	fireworker:	{ x:40, y:40 },
	forester:	{ x:45, y:30 },
	glassblowing:{ x:50, y:37 },
	museum:		{ x:45, y:40 },
	optician:	{ x:46, y:38 },
	port:		{ x:-40, y:50 }, // left side
	port2:		{ x:95, y:55 }, // right side
	palace:		{ x:60, y:40 },
	palaceColony:{ x:60, y:40 },
	pirateFortress: { x:70, y:-60 },
	safehouse:	{ x:25, y:35 },
	shipyard:	{ x:70, y:40 }, // left side
	shipyard2:	{ x:30, y:40 }, // right side
	stonemason:	{ x:50, y:30 },
	tavern:		{ x:30, y:35 },
	temple:		{ x:26, y:30 },
	townHall:	{ x:35, y:45 },
	vineyard:	{ x:50, y:34 },
	wall:		{ x:20, y:30 },
	warehouse:	{ x:60, y:43 },
	winegrower:	{ x:25, y:40 },
	workshop:	{ x:45, y:35 },
	marineChartArchive: { x:15, y:35 }
};

// All building costs. These are base costs, without any reduction. That's why they
// DON'T match the costs you can see in the online help. When you have completed all the researches,
// the costs you see in the help are 14 % less than these.
// So Cost Here * 0.86 = Cost seen in the help when you have completed all research.
// All indexes start with level 2
IUW.BUILDINGS = {
	// Academy
	// Type of resources needed: Wood, Crystal
	"academy": [
		{ "wood": 68 },                          // level 2
		{ "wood": 115 },                         // level 3
		{ "wood": 263 },                         // level 4
		{ "wood": 382,     "crystal": 225 },     // level 5
		{ "wood": 626,     "crystal": 428 },     // level 6
		{ "wood": 982,     "crystal": 744 },     // level 7
		{ "wood": 1330,    "crystal": 1089 },    // level 8
		{ "wood": 2004,    "crystal": 1748 },    // level 9
		{ "wood": 2665,    "crystal": 2454 },    // level 10
		{ "wood": 3916,    "crystal": 3786 },    // level 11
		{ "wood": 5156,    "crystal": 5216 },    // level 12
		{ "wood": 7446,    "crystal": 7862 },    // level 13
		{ "wood": 9753,    "crystal": 10729 },   // level 14
		{ "wood": 12751,   "crystal": 14599 },   // level 15
		{ "wood": 18163,   "crystal": 21627 },   // level 16
		{ "wood": 23691,   "crystal": 29322 },   // level 17
		{ "wood": 33451,   "crystal": 43020 },   // level 18
		{ "wood": 43572,   "crystal": 58213 },   // level 19
		{ "wood": 56729,   "crystal": 78724 },   // level 20
		{ "wood": 73833,   "crystal": 106414 },  // level 21
		{ "wood": 103459,  "crystal": 154857 },  // level 22
		{ "wood": 144203,  "crystal": 224146 },  // level 23
		{ "wood": 175058,  "crystal": 282572 },  // level 24
		{ "wood": 243930,  "crystal": 408877 },  // level 25
		{ "wood": 317208,  "crystal": 552141 },  // level 26
		{ "wood": 439968,  "crystal": 795252 },  // level 27
		{ "wood": 536310,  "crystal": 1006648 }, // level 28
		{ "wood": 743789,  "crystal": 1449741 }, // level 29
		{ "wood": 1027470, "crystal": 2079651 }, // level 30
		{ "wood": 1257246, "crystal": 2642548 }, // level 31
		{ "wood": 1736683, "crystal": 3790483 }  // level 32
	],

	// Alchemist's Tower
	// Type of resources needed: Wood, Marble
	"alchemist": [
		{ "wood": 467,     "marble": 116 },     // level 2
		{ "wood": 718,     "marble": 255 },     // level 3
		{ "wood": 1045,    "marble": 436 },     // level 4
		{ "wood": 1469,    "marble": 671 },     // level 5
		{ "wood": 2021,    "marble": 977 },     // level 6
		{ "wood": 2738,    "marble": 1375 },    // level 7
		{ "wood": 3671,    "marble": 1892 },    // level 8
		{ "wood": 4883,    "marble": 2564 },    // level 9
		{ "wood": 6459,    "marble": 3437 },    // level 10
		{ "wood": 8508,    "marble": 4572 },    // level 11
		{ "wood": 11172,   "marble": 6049 },    // level 12
		{ "wood": 14634,   "marble": 7968 },    // level 13
		{ "wood": 19135,   "marble": 10462 },   // level 14
		{ "wood": 24987,   "marble": 13705 },   // level 15
		{ "wood": 32594,   "marble": 17921 },   // level 16
		{ "wood": 42483,   "marble": 23402 },   // level 17
		{ "wood": 55339,   "marble": 30527 },   // level 18
		{ "wood": 72050,   "marble": 39790 },   // level 19
		{ "wood": 93778,   "marble": 51830 },   // level 20
		{ "wood": 122021,  "marble": 67485 },   // level 21
		{ "wood": 158740,  "marble": 87835 },   // level 22
		{ "wood": 206471,  "marble": 114289 },  // level 23
		{ "wood": 268524,  "marble": 148680 },  // level 24
		{ "wood": 349194,  "marble": 193389 },  // level 25
		{ "wood": 454063,  "marble": 251512 },  // level 26
		{ "wood": 590393,  "marble": 327069 },  // level 27
		{ "wood": 767620,  "marble": 425294 },  // level 28
		{ "wood": 998018,  "marble": 552986 },  // level 29
		{ "wood": 1297536, "marble": 718988 },  // level 30
		{ "wood": 1686906, "marble": 934789 },  // level 31
		{ "wood": 2193089, "marble": 1215330 }  // level 32
	],

	// Architect's office
	// Type of resources needed: Wood, Marble
	"architect": [
		{ "wood": 291,     "marble": 160 },     // level 2
		{ "wood": 413,     "marble": 222 },     // level 3
		{ "wood": 555,     "marble": 295 },     // level 4
		{ "wood": 720,     "marble": 379 },     // level 5
		{ "wood": 911,     "marble": 475 },     // level 6
		{ "wood": 1133,    "marble": 587 },     // level 7
		{ "wood": 1390,    "marble": 716 },     // level 8
		{ "wood": 1689,    "marble": 865 },     // level 9
		{ "wood": 2035,    "marble": 1036 },    // level 10
		{ "wood": 2437,    "marble": 1233 },    // level 11
		{ "wood": 2902,    "marble": 1460 },    // level 12
		{ "wood": 3443,    "marble": 1722 },    // level 13
		{ "wood": 4070,    "marble": 2023 },    // level 14
		{ "wood": 4797,    "marble": 2369 },    // level 15
		{ "wood": 5640,    "marble": 2767 },    // level 16
		{ "wood": 6618,    "marble": 3226 },    // level 17
		{ "wood": 7754,    "marble": 3752 },    // level 18
		{ "wood": 9070,    "marble": 4358 },    // level 19
		{ "wood": 10598,   "marble": 5056 },    // level 20
		{ "wood": 12369,   "marble": 5857 },    // level 21
		{ "wood": 14424,   "marble": 6778 },    // level 22
		{ "wood": 16807,   "marble": 7836 },    // level 23
		{ "wood": 19573,   "marble": 9052 },    // level 24
		{ "wood": 22780,   "marble": 10448 },   // level 25
		{ "wood": 26501,   "marble": 12054 },   // level 26
		{ "wood": 30817,   "marble": 13899 },   // level 27
		{ "wood": 35826,   "marble": 16289 },   // level 28
		{ "wood": 41631,   "marble": 18450 },   // level 29
		{ "wood": 48371,   "marble": 21246 },   // level 30
		{ "wood": 56185,   "marble": 24455 },   // level 31
		{ "wood": 65251,   "marble": 28141 }    // level 32
	],

	// Barracks
	// Type of resources needed: Wood, Marble
	"barracks": [
		{ "wood": 114 },                        // level 2
		{ "wood": 195 },                        // level 3
		{ "wood": 296 },                        // level 4
		{ "wood": 420 },                        // level 5
		{ "wood": 574 },                        // level 6
		{ "wood": 766 },                        // level 7
		{ "wood": 1003 },                       // level 8
		{ "wood": 1297,    "marble": 178 },     // level 9
		{ "wood": 1662,    "marble": 431 },     // level 10
		{ "wood": 2115,    "marble": 745 },     // level 11
		{ "wood": 2676,    "marble": 1134 },    // level 12
		{ "wood": 3371,    "marble": 1616 },    // level 13
		{ "wood": 4234,    "marble": 2214 },    // level 14
		{ "wood": 5304,    "marble": 2956 },    // level 15
		{ "wood": 6630,    "marble": 3875 },    // level 16
		{ "wood": 8275,    "marble": 5015 },    // level 17
		{ "wood": 10314,   "marble": 6429 },    // level 18
		{ "wood": 12843,   "marble": 8183 },    // level 19
		{ "wood": 15979,   "marble": 10357 },   // level 20
		{ "wood": 19868,   "marble": 13052 },   // level 21
		{ "wood": 24690,   "marble": 16395 },   // level 22
		{ "wood": 30669,   "marble": 20540 },   // level 23
		{ "wood": 38083,   "marble": 25680 },   // level 24
		{ "wood": 47277,   "marble": 32054 },   // level 25
		{ "wood": 58676,   "marble": 39957 },   // level 26
		{ "wood": 72812,   "marble": 49757 },   // level 27
		{ "wood": 90341,   "marble": 61909 },   // level 28
		{ "wood": 112076,  "marble": 76977 },   // level 29
		{ "wood": 139028,  "marble": 95661 },   // level 30
		{ "wood": 172448,  "marble": 118830 },  // level 31
		{ "wood": 213889,  "marble": 147560 },  // level 32
		{ "wood": 265276,  "marble": 183185 },  // level 33
		{ "wood": 328996,  "marble": 227359 },  // level 34
		{ "wood": 408008,  "marble": 282136 },  // level 35
		{ "wood": 505984,  "marble": 350059 },  // level 36
		{ "wood": 627473,  "marble": 434283 },  // level 37
		{ "wood": 778120,  "marble": 538721 },  // level 38
		{ "wood": 964923,  "marble": 668224 },  // level 39
		{ "wood": 1196558, "marble": 828808 },  // level 40
		{ "wood": 1483785, "marble": 1027932 }, // level 41
		{ "wood": 1839947, "marble": 1274847 }, // level 42
		{ "wood": 2281588, "marble": 1581020 }, // level 43
		{ "wood": 2829223, "marble": 1960675 }, // level 44
		{ "wood": 3508290, "marble": 2431447 }, // level 45
		{ "wood": 4350333, "marble": 3015205 }, // level 46
		{ "wood": 5394466, "marble": 3739064 }, // level 47
		{ "wood": 6689191, "marble": 4636650 }, // level 48
		{ "wood": 8294651, "marble": 5749656 }  // level 49 max
	],

	// BlackMarket
	// Type of resources needed: Wood, Marble
	"blackMarket": [
		{ "wood": 887,    "marble": 525},   // level 2
		{ "wood": 1360,   "marble": 807},   // level 3
		{ "wood": 1890,   "marble": 1126},  // level 4
		{ "wood": 2516,   "marble": 1509},  // level 5
		{ "wood": 3288,   "marble": 1988},  // level 6
		{ "wood": 4263,   "marble": 2601},  // level 7
		{ "wood": 5505,   "marble": 3390},  // level 8
		{ "wood": 7086,   "marble": 4403},  // level 9
		{ "wood": 9086,   "marble": 5693},  // level 10
		{ "wood": 11590,  "marble": 7315},  // level 11
		{ "wood": 14691,  "marble": 9331},  // level 12
		{ "wood": 18489,  "marble": 11807}, // level 13
		{ "wood": 23088,  "marble": 14812}, // level 14
		{ "wood": 28600,  "marble": 18420}, // level 15
		{ "wood": 35143,  "marble": 22708}, // level 16
		{ "wood": 42839,  "marble": 27757}, // level 17
		{ "wood": 51820,  "marble": 33654}, // level 18
		{ "wood": 62218,  "marble": 40486}, // level 19
		{ "wood": 74175,  "marble": 48348}, // level 20
		{ "wood": 87838,  "marble": 57334}, // level 21
		{ "wood": 103356, "marble": 67546}, // level 22
		{ "wood": 120888, "marble": 79087}, // level 23
		{ "wood": 140596, "marble": 92064}, // level 24
		{ "wood": 162647, "marble": 106587} // level 25
	 ],

	// Trading post
	// Type of resources needed: Wood, Marble
	"branchOffice": [
		{ "wood": 173 },                        // level 2
		{ "wood": 346 },                        // level 3
		{ "wood": 581 },                        // level 4
		{ "wood": 896,     "marble": 540 },     // level 5
		{ "wood": 1314,    "marble": 792 },     // level 6
		{ "wood": 1863,    "marble": 1123 },    // level 7
		{ "wood": 2580,    "marble": 1555 },    // level 8
		{ "wood": 3509,    "marble": 2115 },    // level 9
		{ "wood": 4706,    "marble": 2837 },    // level 10
		{ "wood": 6241,    "marble": 3762 },    // level 11
		{ "wood": 8203,    "marble": 4945 },    // level 12
		{ "wood": 10699,   "marble": 6450 },    // level 13
		{ "wood": 13866,   "marble": 8359 },    // level 14
		{ "wood": 17872,   "marble": 10774 },   // level 15
		{ "wood": 22926,   "marble": 13820 },   // level 16
		{ "wood": 29286,   "marble": 17654 },   // level 17
		{ "wood": 37272,   "marble": 22469 },   // level 18
		{ "wood": 47283,   "marble": 28503 },   // level 19
		{ "wood": 59806,   "marble": 36051 },   // level 20
		{ "wood": 75447,   "marble": 45482 },   // level 21
		{ "wood": 94954,   "marble": 57240 },   // level 22
		{ "wood": 119245,  "marble": 71883 },   // level 23
		{ "wood": 149453,  "marble": 90092 },   // level 24
		{ "wood": 186977,  "marble": 112712 },  // level 25
		{ "wood": 233530,  "marble": 121067 },  // level 26
		{ "wood": 291225,  "marble": 175556 },  // level 27
		{ "wood": 362658,  "marble": 218617 },  // level 28
		{ "wood": 451015,  "marble": 271878 },  // level 29
		{ "wood": 560208,  "marble": 337705 },  // level 30
		{ "wood": 695038,  "marble": 418983 },  // level 31
		{ "wood": 861391,  "marble": 519260 }   // level 32
	],

	// Carpenter
	// Type of resources needed: Wood, Marble
	"carpentering": [
		{ "wood": 122 },                        // level 2
		{ "wood": 191 },                        // level 3
		{ "wood": 274 },                        // level 4
		{ "wood": 372 },                        // level 5
		{ "wood": 486 },                        // level 6
		{ "wood": 620 },                        // level 7
		{ "wood": 777,     "marble": 359 },     // level 8
		{ "wood": 962,     "marble": 444 },     // level 9
		{ "wood": 1178,    "marble": 546 },     // level 10
		{ "wood": 1432,    "marble": 669 },     // level 11
		{ "wood": 1730,    "marble": 816 },     // level 12
		{ "wood": 2078,    "marble": 993 },     // level 13
		{ "wood": 2486,    "marble": 1205 },    // level 14
		{ "wood": 2964,    "marble": 1459 },    // level 15
		{ "wood": 3524,    "marble": 1765 },    // level 16
		{ "wood": 4178,    "marble": 2131 },    // level 17
		{ "wood": 4945,    "marble": 2571 },    // level 18
		{ "wood": 5841,    "marble": 3097 },    // level 19
		{ "wood": 6890,    "marble": 3731 },    // level 20
		{ "wood": 8117,    "marble": 4490 },    // level 21
		{ "wood": 9550,    "marble": 5402 },    // level 22
		{ "wood": 11229,   "marble": 6496 },    // level 23
		{ "wood": 13190,   "marble": 7809 },    // level 24
		{ "wood": 15484,   "marble": 9383 },    // level 25
		{ "wood": 18166,   "marble": 11274 },   // level 26
		{ "wood": 21299,   "marble": 13543 },   // level 27
		{ "wood": 24963,   "marble": 16265 },   // level 28
		{ "wood": 29245,   "marble": 19531 },   // level 29
		{ "wood": 34247,   "marble": 23450 },   // level 30
		{ "wood": 40096,   "marble": 28154 },   // level 31
		{ "wood": 46930,   "marble": 33798 }    // level 32
	],

	// Dump
	// Type of resources needed: Wood, Marble, Crystal, Sulfur
	"dump": [
		{ "wood": 1152,    "marble": 932,     "crystal": 1146,    "sulfur": 845 },     // level 2
		{ "wood": 1766,    "marble": 1445,    "crystal": 1668,    "sulfur": 1398 },    // level 3
		{ "wood": 2504,    "marble": 2050,    "crystal": 2278,    "sulfur": 2061 },    // level 4
		{ "wood": 3388,    "marble": 2762,    "crystal": 2991,    "sulfur": 2857 },    // level 5
		{ "wood": 4450,    "marble": 3609,    "crystal": 3526,    "sulfur": 3813 },    // level 6
		{ "wood": 5724,    "marble": 4604,    "crystal": 4803,    "sulfur": 4960 },    // level 7
		{ "wood": 7253,    "marble": 5778,    "crystal": 5946,    "sulfur": 6336 },    // level 8
		{ "wood": 9088,    "marble": 7164,    "crystal": 7283,    "sulfur": 7987 },    // level 9
		{ "wood": 11289,   "marble": 8799,    "crystal": 8847,    "sulfur": 9968 },    // level 10
		{ "wood": 13931,   "marble": 10728,   "crystal": 10678,   "sulfur": 12346 },   // level 11
		{ "wood": 17101,   "marble": 13005,   "crystal": 12819,   "sulfur": 15199 },   // level 12
		{ "wood": 20905,   "marble": 15691,   "crystal": 15325,   "sulfur": 18623 },   // level 13
		{ "wood": 25470,   "marble": 18862,   "crystal": 18257,   "sulfur": 22731 },   // level 14
		{ "wood": 30948,   "marble": 22602,   "crystal": 21687,   "sulfur": 27661 },   // level 15
		{ "wood": 37522,   "marble": 27016,   "crystal": 25700,   "sulfur": 33578 },   // level 16
		{ "wood": 45410,   "marble": 32225,   "crystal": 30395,   "sulfur": 40677 },   // level 17
		{ "wood": 54876,   "marble": 38371,   "crystal": 35889,   "sulfur": 49197 },   // level 18
		{ "wood": 66236,   "marble": 45623,   "crystal": 42316,   "sulfur": 59420 },   // level 19
		{ "wood": 79867,   "marble": 54181,   "crystal": 49837,   "sulfur": 71688 },   // level 20
		{ "wood": 96223,   "marble": 64278,   "crystal": 58635,   "sulfur": 86409 },   // level 21
		{ "wood": 115852,  "marble": 76194,   "crystal": 68929,   "sulfur": 104076 },  // level 22
		{ "wood": 139407,  "marble": 90256,   "crystal": 80973,   "sulfur": 125274 },  // level 23
		{ "wood": 167672,  "marble": 106847,  "crystal": 95065,   "sulfur": 150714 },  // level 24
		{ "wood": 201592,  "marble": 126424,  "crystal": 111553,  "sulfur": 181241 },  // level 25
		{ "wood": 242293,  "marble": 149528,  "crystal": 130843,  "sulfur": 217872 },  // level 26
		{ "wood": 291136,  "marble": 176787,  "crystal": 153414,  "sulfur": 261830 },  // level 27
		{ "wood": 349749,  "marble": 208956,  "crystal": 179821,  "sulfur": 314581 },  // level 28
		{ "wood": 420081,  "marble": 246913,  "crystal": 201716,  "sulfur": 377881 },  // level 29
		{ "wood": 504483,  "marble": 291702,  "crystal": 246864,  "sulfur": 453842 },  // level 30
		{ "wood": 605763,  "marble": 344555,  "crystal": 289157,  "sulfur": 544994 },  // level 31
		{ "wood": 727300,  "marble": 406921,  "crystal": 338642,  "sulfur": 654378 },  // level 32
		{ "wood": 873143,  "marble": 480512,  "crystal": 396536,  "sulfur": 785637 },  // level 33
		{ "wood": 1048157, "marble": 567350,  "crystal": 464274,  "sulfur": 943149 },  // level 34
		{ "wood": 1258171, "marble": 669817,  "crystal": 543528,  "sulfur": 1132163 }, // level 35
		{ "wood": 1510191, "marble": 790730,  "crystal": 636253,  "sulfur": 1358979 }, // level 36
		{ "wood": 1812613, "marble": 933408,  "crystal": 744742,  "sulfur": 1631159 }, // level 37
		{ "wood": 2175519, "marble": 1101767, "crystal": 871676,  "sulfur": 1957774 }, // level 38
		{ "wood": 2611007, "marble": 1300431, "crystal": 1020187, "sulfur": 2349714 }, // level 39
		{ "wood": 3133592, "marble": 1534855, "crystal": 1193945, "sulfur": 2820041 }  // level 40
	],

	// Embassy
	// Type of resources needed: Wood, Marble
	"embassy": [
		{ "wood": 415,     "marble": 342 },     // level 2
		{ "wood": 623,     "marble": 571 },     // level 3
		{ "wood": 873,     "marble": 850 },     // level 4
		{ "wood": 1173,    "marble": 1190 },    // level 5
		{ "wood": 1532,    "marble": 1606 },    // level 6
		{ "wood": 1964,    "marble": 2112 },    // level 7
		{ "wood": 2482,    "marble": 2730 },    // level 8
		{ "wood": 3103,    "marble": 3484 },    // level 9
		{ "wood": 3849,    "marble": 4404 },    // level 10
		{ "wood": 4743,    "marble": 5527 },    // level 11
		{ "wood": 5817,    "marble": 6896 },    // level 12
		{ "wood": 7105,    "marble": 8566 },    // level 13
		{ "wood": 8651,    "marble": 10604 },   // level 14
		{ "wood": 10507,   "marble": 13090 },   // level 15
		{ "wood": 12733,   "marble": 16123 },   // level 16
		{ "wood": 15404,   "marble": 19824 },   // level 17
		{ "wood": 18610,   "marble": 24339 },   // level 18
		{ "wood": 22457,   "marble": 29846 },   // level 19
		{ "wood": 27074,   "marble": 36566 },   // level 20
		{ "wood": 32614,   "marble": 44764 },   // level 21
		{ "wood": 39261,   "marble": 54765 },   // level 22
		{ "wood": 47239,   "marble": 66967 },   // level 23
		{ "wood": 56811,   "marble": 81853 },   // level 24
		{ "wood": 68299,   "marble": 100014 },  // level 25
		{ "wood": 82084,   "marble": 122170 },  // level 26
		{ "wood": 98625,   "marble": 149201 },  // level 27
		{ "wood": 118475,  "marble": 182178 },  // level 28
		{ "wood": 142295,  "marble": 222411 },  // level 29
		{ "wood": 170879,  "marble": 271495 },  // level 30
		{ "wood": 205180,  "marble": 331377 },  // level 31
		{ "wood": 246341,  "marble": 404433 }   // level 32
	],

	// Firework Test Area
	// Type of resources needed: Wood, Marble
	"fireworker": [
		{ "wood": 353,     "marble": 212 },     // level 2
		{ "wood": 445,     "marble": 302 },     // level 3
		{ "wood": 551,     "marble": 405 },     // level 4
		{ "wood": 673,     "marble": 526 },     // level 5
		{ "wood": 813,     "marble": 665 },     // level 6
		{ "wood": 974,     "marble": 827 },     // level 7
		{ "wood": 1159,    "marble": 1015 },    // level 8
		{ "wood": 1373,    "marble": 1233 },    // level 9
		{ "wood": 1618,    "marble": 1486 },    // level 10
		{ "wood": 1899,    "marble": 1779 },    // level 11
		{ "wood": 2223,    "marble": 2120 },    // level 12
		{ "wood": 2596,    "marble": 2514 },    // level 13
		{ "wood": 3025,    "marble": 2972 },    // level 14
		{ "wood": 3517,    "marble": 3503 },    // level 15
		{ "wood": 4084,    "marble": 4119 },    // level 16
		{ "wood": 4736,    "marble": 4834 },    // level 17
		{ "wood": 5485,    "marble": 5662 },    // level 18
		{ "wood": 6346,    "marble": 6623 },    // level 19
		{ "wood": 7338,    "marble": 7738 },    // level 20
		{ "wood": 8478,    "marble": 9032 },    // level 21
		{ "wood": 9790,    "marble": 10534 },   // level 22
		{ "wood": 11297,   "marble": 12275 },   // level 23
		{ "wood": 13030,   "marble": 13355 },   // level 24
		{ "wood": 14990,   "marble": 16636 },   // level 25
		{ "wood": 17317,   "marble": 19354 },   // level 26
		{ "wood": 19954,   "marble": 22507 },   // level 27
		{ "wood": 22986,   "marble": 26163 },   // level 28
		{ "wood": 26472,   "marble": 30404 },   // level 29
		{ "wood": 30484,   "marble": 35325 },   // level 30
		{ "wood": 35096,   "marble": 41033 },   // level 31
		{ "wood": 40399,   "marble": 47652 }    // level 32
	],

	// Forester's House
	// Type of resources needed: Wood, Marble
	"forester": [
		{ "wood": 430,     "marble": 104 },     // level 2
		{ "wood": 664,     "marble": 237 },     // level 3
		{ "wood": 968,     "marble": 410 },     // level 4
		{ "wood": 1364,    "marble": 635 },     // level 5
		{ "wood": 1878,    "marble": 928 },     // level 6
		{ "wood": 2546,    "marble": 1309 },    // level 7
		{ "wood": 3415,    "marble": 1803 },    // level 8
		{ "wood": 4544,    "marble": 2446 },    // level 9
		{ "wood": 6013,    "marble": 3282 },    // level 10
		{ "wood": 7922,    "marble": 4368 },    // level 11
		{ "wood": 10403,   "marble": 5781 },    // level 12
		{ "wood": 13629,   "marble": 7617 },    // level 13
		{ "wood": 17823,   "marble": 10004 },   // level 14
		{ "wood": 23274,   "marble": 13108 },   // level 15
		{ "wood": 30362,   "marble": 17142 },   // level 16
		{ "wood": 39574,   "marble": 22386 },   // level 17
		{ "wood": 51552,   "marble": 29204 },   // level 18
		{ "wood": 67123,   "marble": 38068 },   // level 19
		{ "wood": 87363,   "marble": 49589 },   // level 20
		{ "wood": 113680,  "marble": 64569 },   // level 21
		{ "wood": 147889,  "marble": 84041 },   // level 22
		{ "wood": 192360,  "marble": 109356 },  // level 23
		{ "wood": 250173,  "marble": 142266 },  // level 24
		{ "wood": 325330,  "marble": 185046 },  // level 25
		{ "wood": 423034,  "marble": 240663 },  // level 26
		{ "wood": 550049,  "marble": 312965 },  // level 27
		{ "wood": 715169,  "marble": 406956 },  // level 28
		{ "wood": 929826,  "marble": 529144 },  // level 29
		{ "wood": 1208878, "marble": 687989 },  // level 30
		{ "wood": 1571647, "marble": 894489 },  // level 31
		{ "wood": 2043246, "marble": 1162937 }  // level 32
	],

	// Glassblower
	// Type of resources needed: Wood, Marble
	"glassblowing": [
		{ "wood": 467,     "marble": 116 },     // level 2
		{ "wood": 718,     "marble": 255 },     // level 3
		{ "wood": 1045,    "marble": 436 },     // level 4
		{ "wood": 1469,    "marble": 671 },     // level 5
		{ "wood": 2021,    "marble": 977 },     // level 6
		{ "wood": 2738,    "marble": 1375 },    // level 7
		{ "wood": 3671,    "marble": 1892 },    // level 8
		{ "wood": 4883,    "marble": 2564 },    // level 9
		{ "wood": 6459,    "marble": 3437 },    // level 10
		{ "wood": 8508,    "marble": 4572 },    // level 11
		{ "wood": 11172,   "marble": 6049 },    // level 12
		{ "wood": 14634,   "marble": 7968 },    // level 13
		{ "wood": 19135,   "marble": 10462 },   // level 14
		{ "wood": 24987,   "marble": 13705 },   // level 15
		{ "wood": 32594,   "marble": 17921 },   // level 16
		{ "wood": 42483,   "marble": 23402 },   // level 17
		{ "wood": 55339,   "marble": 30527 },   // level 18
		{ "wood": 72050,   "marble": 39790 },   // level 19
		{ "wood": 93778,   "marble": 51830 },   // level 20
		{ "wood": 122021,  "marble": 67485 },   // level 21
		{ "wood": 158740,  "marble": 87835 },   // level 22
		{ "wood": 206471,  "marble": 114289 },  // level 23
		{ "wood": 268524,  "marble": 148680 },  // level 24
		{ "wood": 349194,  "marble": 193389 },  // level 25
		{ "wood": 454063,  "marble": 251512 },  // level 26
		{ "wood": 590393,  "marble": 327069 },  // level 27
		{ "wood": 767620,  "marble": 425294 },  // level 28
		{ "wood": 998018,  "marble": 552986 },  // level 29
		{ "wood": 1297536, "marble": 718988 },  // level 30
		{ "wood": 1686906, "marble": 934789 },  // level 31
		{ "wood": 2193089, "marble": 1215330 }  // level 32
	],

	// Museum
	// Type of resources needed: Wood, Marble
	"museum": [
		{ "wood": 1435,    "marble": 1190 },    // level 2
		{ "wood": 2748,    "marble": 2573 },    // level 3
		{ "wood": 4716,    "marble": 4676 },    // level 4
		{ "wood": 7669,    "marble": 7871 },    // level 5
		{ "wood": 12099,   "marble": 12729 },   // level 6
		{ "wood": 18744,   "marble": 20112 },   // level 7
		{ "wood": 28710,   "marble": 31335 },   // level 8
		{ "wood": 43661,   "marble": 48394 },   // level 9
		{ "wood": 66086,   "marble": 74323 },   // level 10
		{ "wood": 99724,   "marble": 113736 },  // level 11
		{ "wood": 150181,  "marble": 173643 },  // level 12
		{ "wood": 225866,  "marble": 264701 },  // level 13
		{ "wood": 339394,  "marble": 403110 },  // level 14
		{ "wood": 509686,  "marble": 613492 },  // level 15
		{ "wood": 765124,  "marble": 933272 },  // level 16
		{ "wood": 1148281, "marble": 1419338 }, // level 17
		{ "wood": 1723017, "marble": 2158158 }, // level 18
		{ "wood": 2585121, "marble": 3281165 }, // level 19
		{ "wood": 3878276, "marble": 4988136 }, // level 20
		{ "wood": 5818009, "marble": 7582731 }  // level 21
	],

	// Optician's
	// Type of resources needed: Wood, Marble
	"optician": [
		{ "wood": 188,     "marble": 35 },      // level 2
		{ "wood": 269,     "marble": 96 },      // level 3
		{ "wood": 362,     "marble": 167 },     // level 4
		{ "wood": 471,     "marble": 249 },     // level 5
		{ "wood": 597,     "marble": 345 },     // level 6
		{ "wood": 742,     "marble": 455 },     // level 7
		{ "wood": 912,     "marble": 584 },     // level 8
		{ "wood": 1108,    "marble": 733 },     // level 9
		{ "wood": 1335,    "marble": 905 },     // level 10
		{ "wood": 1600,    "marble": 1106 },    // level 11
		{ "wood": 1906,    "marble": 1338 },    // level 12
		{ "wood": 2261,    "marble": 1608 },    // level 13
		{ "wood": 2673,    "marble": 1921 },    // level 14
		{ "wood": 3152,    "marble": 2283 },    // level 15
		{ "wood": 3706,    "marble": 2704 },    // level 16
		{ "wood": 4348,    "marble": 3191 },    // level 17
		{ "wood": 5096,    "marble": 3759 },    // level 18
		{ "wood": 5962,    "marble": 4416 },    // level 19
		{ "wood": 6966,    "marble": 5178 },    // level 20
		{ "wood": 8131,    "marble": 6062 },    // level 21
		{ "wood": 9482,    "marble": 7087 },    // level 22
		{ "wood": 11050,   "marble": 8276 },    // level 23
		{ "wood": 12868,   "marble": 9656 },    // level 24
		{ "wood": 14978,   "marble": 11257 },   // level 25
		{ "wood": 17424,   "marble": 13113 },   // level 26
		{ "wood": 20262,   "marble": 15267 },   // level 27
		{ "wood": 23553,   "marble": 17762 },   // level 28
		{ "wood": 27373,   "marble": 20662 },   // level 29
		{ "wood": 31804,   "marble": 24024 },   // level 30
		{ "wood": 36943,   "marble": 27922 },   // level 31
		{ "wood": 42904,   "marble": 32447 }    // level 32
	],

	// Palace
	// Type of resources needed: Wood, Wine, Marble, Crystal, Sulfur
	"palace": [
		{ "wood": 5824,    "marble": 1434 },                                                            // level 2
		{ "wood": 16048,   "marble": 4546,    "sulfur": 3089 },                                         // level 3
		{ "wood": 36496,   "marble": 10770,   "sulfur": 10301,   "wine": 10898 },                       // level 4
		{ "wood": 77392,   "marble": 23218,   "sulfur": 24725,   "wine": 22110,   "crystal": 21188 },   // level 5
		{ "wood": 159184,  "marble": 48114,   "sulfur": 53573,   "wine": 44534,   "crystal": 42400 },   // level 6
		{ "wood": 322768,  "marble": 97906,   "sulfur": 111269,  "wine": 89382,   "crystal": 84824 },   // level 7
		{ "wood": 649936,  "marble": 197490,  "sulfur": 226661,  "wine": 179078,  "crystal": 169672 },  // level 8
		{ "wood": 1304272, "marble": 396658,  "sulfur": 457445,  "wine": 358470,  "crystal": 339368 },  // level 9
		{ "wood": 2612944, "marble": 794994,  "sulfur": 919013,  "wine": 717254,  "crystal": 678760 },  // level 10
		{ "wood": 4743518, "marble": 1591666, "sulfur": 1842149, "wine": 1434822, "crystal": 1357544 }  // level 11 max
	],

	// Governor's Residence
	// Type of resources needed: Wood, Wine, Marble, Crystal, Sulfur
	"palaceColony": [
		{ "wood": 5824,    "marble": 1434 },                                                            // level 2
		{ "wood": 16048,   "marble": 4546,    "sulfur": 3089 },                                         // level 3
		{ "wood": 36496,   "marble": 10770,   "sulfur": 10301,   "wine": 10898 },                       // level 4
		{ "wood": 77392,   "marble": 23218,   "sulfur": 24725,   "wine": 22110,   "crystal": 21188 },   // level 5
		{ "wood": 159184,  "marble": 48114,   "sulfur": 53573,   "wine": 44534,   "crystal": 42400 },   // level 6
		{ "wood": 322768,  "marble": 97906,   "sulfur": 111269,  "wine": 89382,   "crystal": 84824 },   // level 7
		{ "wood": 649936,  "marble": 197490,  "sulfur": 226661,  "wine": 179078,  "crystal": 169672 },  // level 8
		{ "wood": 1304272, "marble": 396658,  "sulfur": 457445,  "wine": 358470,  "crystal": 339368 },  // level 9
		{ "wood": 2612944, "marble": 794994,  "sulfur": 919013,  "wine": 717254,  "crystal": 678760 },  // level 10
		{ "wood": 4743518, "marble": 1591666, "sulfur": 1842149, "wine": 1434822, "crystal": 1357544 }  // level 11 max
	],

	// Pirate Fortress
	// Type of resources needed: Wood, Marble
	pirateFortress: [
		{ "wood": 906,     "marble": 505 },     // level 2
		{ "wood": 1389,    "marble": 783 },     // level 3
		{ "wood": 1935,    "marble": 1112 },    // level 4
		{ "wood": 2593,    "marble": 1534 },    // level 5
		{ "wood": 3427,    "marble": 2103 },    // level 6
		{ "wood": 4516,    "marble": 2883 },    // level 7
		{ "wood": 5950,    "marble": 3949 },    // level 8
		{ "wood": 7834,    "marble": 5388 },    // level 9
		{ "wood": 10284,   "marble": 7296 },    // level 10
		{ "wood": 13430,   "marble": 9782 },    // level 11
		{ "wood": 17415,   "marble": 12964 },   // level 12
		{ "wood": 22394,   "marble": 16970 },   // level 13
		{ "wood": 28534,   "marble": 21938 },   // level 14
		{ "wood": 36015,   "marble": 28019 },   // level 15
		{ "wood": 45029,   "marble": 35370 },   // level 16
		{ "wood": 55779,   "marble": 44162 },   // level 17
		{ "wood": 68482,   "marble": 54573 },   // level 18
		{ "wood": 83366,   "marble": 66793 },   // level 19
		{ "wood": 100671,  "marble": 81020 },   // level 20
		{ "wood": 120648,  "marble": 97463 },   // level 21
		{ "wood": 143562,  "marble": 116341 },  // level 22
		{ "wood": 169686,  "marble": 137883 },  // level 23
		{ "wood": 199309,  "marble": 162325 },  // level 24
		{ "wood": 232729,  "marble": 189915 },  // level 25
		{ "wood": 270255,  "marble": 220912 },  // level 26
		{ "wood": 312210,  "marble": 255580 },  // level 27
		{ "wood": 358926,  "marble": 294197 },  // level 28
		{ "wood": 410748,  "marble": 337048 },  // level 29
		{ "wood": 468032,  "marble": 384429 }   // level 30
	],

	// Trading port
	// Type of resources needed: Wood, Marble
	"port": [
		{ "wood": 150 },                        // level 2
		{ "wood": 274 },                        // level 3
		{ "wood": 429 },                        // level 4
		{ "wood": 637 },                        // level 5
		{ "wood": 894,     "marble": 176 },     // level 6
		{ "wood": 1207,    "marble": 326 },     // level 7
		{ "wood": 1645,    "marble": 540 },     // level 8
		{ "wood": 2106,    "marble": 791 },     // level 9
		{ "wood": 2735,    "marble": 1138 },    // level 10
		{ "wood": 3537,    "marble": 1598 },    // level 11
		{ "wood": 4492,    "marble": 2176 },    // level 12
		{ "wood": 5689,    "marble": 2928 },    // level 13
		{ "wood": 7103,    "marble": 3859 },    // level 14
		{ "wood": 8849,    "marble": 5051 },    // level 15
		{ "wood": 11094,   "marble": 6628 },    // level 16
		{ "wood": 13731,   "marble": 8566 },    // level 17
		{ "wood": 17062,   "marble": 11089 },   // level 18
		{ "wood": 21097,   "marble": 14265 },   // level 19
		{ "wood": 25965,   "marble": 18241 },   // level 20
		{ "wood": 31810,   "marble": 23197 },   // level 21
		{ "wood": 39190,   "marble": 29642 },   // level 22
		{ "wood": 47998,   "marble": 37636 },   // level 23
		{ "wood": 58713,   "marble": 47703 },   // level 24
		{ "wood": 71955,   "marble": 60556 },   // level 25
		{ "wood": 87627,   "marble": 76367 },   // level 26
		{ "wood": 107102,  "marble": 96639 },   // level 27
		{ "wood": 130776,  "marble": 122156 },  // level 28
		{ "wood": 159019,  "marble": 153754 },  // level 29
		{ "wood": 193938,  "marble": 194089 },  // level 30
		{ "wood": 235849,  "marble": 244300 },  // level 31
		{ "wood": 286515,  "marble": 307174 },  // level 32
		{ "wood": 348718,  "marble": 386956 },  // level 33
		{ "wood": 423990,  "marble": 486969 },  // level 34
		{ "wood": 513947,  "marble": 610992 },  // level 35
		{ "wood": 625160,  "marble": 769302 },  // level 36
		{ "wood": 758178,  "marble": 965792 },  // level 37
		{ "wood": 919693,  "marble": 1212790 }, // level 38
		{ "wood": 1116013, "marble": 1523570 }, // level 39
		{ "wood": 1353517, "marble": 1913073 }, // level 40
		{ "wood": 1642275, "marble": 2403314 }, // level 41
		{ "wood": 1990224, "marble": 3015689 }, // level 42
		{ "wood": 2411062, "marble": 3782993 }, // level 43
		{ "wood": 2923229, "marble": 4749576 }, // level 44
		{ "wood": 3541580, "marble": 5959027 }, // level 45
		{ "wood": 4291524, "marble": 7478201 }, // level 46
		{ "wood": 5199343, "marble": 9383420 }  // level 47 max
	],

	//Hideout
	// Type of resources needed: Wood, Marble
	"safehouse": [
		{ "wood": 248 },                        // level 2
		{ "wood": 402 },                        // level 3
		{ "wood": 578,     "marble": 129 },     // level 4
		{ "wood": 779,     "marble": 197 },     // level 5
		{ "wood": 1007,    "marble": 275 },     // level 6
		{ "wood": 1267,    "marble": 366 },     // level 7
		{ "wood": 1564,    "marble": 471 },     // level 8
		{ "wood": 1903,    "marble": 593 },     // level 9
		{ "wood": 2288,    "marble": 735 },     // level 10
		{ "wood": 2728,    "marble": 900 },     // level 11
		{ "wood": 3230,    "marble": 1090 },    // level 12
		{ "wood": 3801,    "marble": 1312 },    // level 13
		{ "wood": 4453,    "marble": 1569 },    // level 14
		{ "wood": 5195,    "marble": 1866 },    // level 15
		{ "wood": 6042,    "marble": 2212 },    // level 16
		{ "wood": 7008,    "marble": 2613 },    // level 17
		{ "wood": 8108,    "marble": 3078 },    // level 18
		{ "wood": 9363,    "marble": 3617 },    // level 19
		{ "wood": 10793,   "marble": 4243 },    // level 20
		{ "wood": 12423,   "marble": 4968 },    // level 21
		{ "wood": 14282,   "marble": 5810 },    // level 22
		{ "wood": 16401,   "marble": 6787 },    // level 23
		{ "wood": 18816,   "marble": 7919 },    // level 24
		{ "wood": 21570,   "marble": 9233 },    // level 25
		{ "wood": 24709,   "marble": 10758 },   // level 26
		{ "wood": 28288,   "marble": 12526 },   // level 27
		{ "wood": 32368,   "marble": 14577 },   // level 28
		{ "wood": 37019,   "marble": 16956 },   // level 29
		{ "wood": 42321,   "marble": 19716 },   // level 30
		{ "wood": 48365,   "marble": 22917 },   // level 31
		{ "wood": 55255,   "marble": 26631 }    // level 32
	],

	// Shipyard
	// Type of resources needed: Wood, Marble
	"shipyard": [
		{ "wood": 202 },                        // level 2
		{ "wood": 324 },                        // level 3
		{ "wood": 477 },                        // level 4
		{ "wood": 671 },                        // level 5
		{ "wood": 914,     "marble": 778 },     // level 6
		{ "wood": 1222,    "marble": 1052 },    // level 7
		{ "wood": 1609,    "marble": 1397 },    // level 8
		{ "wood": 2096,    "marble": 1832 },    // level 9
		{ "wood": 2711,    "marble": 2381 },    // level 10
		{ "wood": 3485,    "marble": 3071 },    // level 11
		{ "wood": 4460,    "marble": 3942 },    // level 12
		{ "wood": 5689,    "marble": 5038 },    // level 13
		{ "wood": 7238,    "marble": 6420 },    // level 14
		{ "wood": 9190,    "marble": 8161 },    // level 15
		{ "wood": 11648,   "marble": 10354 },   // level 16
		{ "wood": 14746,   "marble": 13118 },   // level 17
		{ "wood": 18649,   "marble": 16601 },   // level 18
		{ "wood": 23568,   "marble": 20989 },   // level 19
		{ "wood": 29765,   "marble": 26517 },   // level 20
		{ "wood": 37573,   "marble": 33484 },   // level 21
		{ "wood": 47412,   "marble": 42261 },   // level 22
		{ "wood": 59808,   "marble": 53321 },   // level 23
		{ "wood": 75428,   "marble": 67256 },   // level 24
		{ "wood": 95108,   "marble": 84814 },   // level 25
		{ "wood": 119906,  "marble": 106938 },  // level 26
		{ "wood": 151151,  "marble": 134814 },  // level 27
		{ "wood": 190520,  "marble": 169937 },  // level 28
		{ "wood": 240124,  "marble": 214192 },  // level 29
		{ "wood": 302626,  "marble": 269954 },  // level 30
		{ "wood": 381378,  "marble": 340214 },  // level 31
		{ "wood": 480605,  "marble": 428741 },   // level 32
		{ "wood": 520843,  "marble": 464645 },   // level 33
		{ "wood": 656322,  "marble": 585515 },   // level 34
		{ "wood": 827026,  "marble": 737811 },   // level 35
		{ "wood": 1042112,  "marble": 929703 },   // level 36
		{ "wood": 1313121,  "marble": 1171488 },   // level 37
		{ "wood": 1654593,  "marble": 1476136 }   // level 38
	],

	//Stonemason
	// Type of resources needed: Wood, Marble
	"stonemason": [
		{ "wood": 467,     "marble": 116 },     // level 2
		{ "wood": 718,     "marble": 255 },     // level 3
		{ "wood": 1045,    "marble": 436 },     // level 4
		{ "wood": 1469,    "marble": 671 },     // level 5
		{ "wood": 2021,    "marble": 977 },     // level 6
		{ "wood": 2738,    "marble": 1375 },    // level 7
		{ "wood": 3671,    "marble": 1892 },    // level 8
		{ "wood": 4883,    "marble": 2564 },    // level 9
		{ "wood": 6459,    "marble": 3437 },    // level 10
		{ "wood": 8508,    "marble": 4572 },    // level 11
		{ "wood": 11172,   "marble": 6049 },    // level 12
		{ "wood": 14634,   "marble": 7968 },    // level 13
		{ "wood": 19135,   "marble": 10462 },   // level 14
		{ "wood": 24987,   "marble": 13705 },   // level 15
		{ "wood": 32594,   "marble": 17921 },   // level 16
		{ "wood": 42483,   "marble": 23402 },   // level 17
		{ "wood": 55339,   "marble": 30527 },   // level 18
		{ "wood": 72050,   "marble": 39790 },   // level 19
		{ "wood": 93778,   "marble": 51830 },   // level 20
		{ "wood": 122021,  "marble": 67485 },   // level 21
		{ "wood": 158740,  "marble": 87835 },   // level 22
		{ "wood": 206471,  "marble": 114289 },  // level 23
		{ "wood": 268524,  "marble": 148680 },  // level 24
		{ "wood": 349194,  "marble": 193389 },  // level 25
		{ "wood": 454063,  "marble": 251512 },  // level 26
		{ "wood": 590393,  "marble": 327069 },  // level 27
		{ "wood": 767620,  "marble": 425294 },  // level 28
		{ "wood": 998018,  "marble": 552986 },  // level 29
		{ "wood": 1297536, "marble": 718988 },  // level 30
		{ "wood": 1686906, "marble": 934789 },  // level 31
		{ "wood": 2193089, "marble": 1215330 }  // level 32
	],

	//Tavern
	// Type of resources needed: Wood, Marble
	"tavern": [
		{ "wood": 222 },                        // level 2
		{ "wood": 367 },                        // level 3
		{ "wood": 541,     "marble": 94 },      // level 4
		{ "wood": 750,     "marble": 122 },     // level 5
		{ "wood": 1001,    "marble": 158 },     // level 6
		{ "wood": 1302,    "marble": 206 },     // level 7
		{ "wood": 1663,    "marble": 267 },     // level 8
		{ "wood": 2097,    "marble": 348 },     // level 9
		{ "wood": 2617,    "marble": 452 },     // level 10
		{ "wood": 3241,    "marble": 587 },     // level 11
		{ "wood": 3990,    "marble": 764 },     // level 12
		{ "wood": 4888,    "marble": 993 },     // level 13
		{ "wood": 5967,    "marble": 1290 },    // level 14
		{ "wood": 7261,    "marble": 1677 },    // level 15
		{ "wood": 8814,    "marble": 2181 },    // level 16
		{ "wood": 10678,   "marble": 2835 },    // level 17
		{ "wood": 12914,   "marble": 3685 },    // level 18
		{ "wood": 15598,   "marble": 4791 },    // level 19
		{ "wood": 18818,   "marble": 6228 },    // level 20
		{ "wood": 22683,   "marble": 8097 },    // level 21
		{ "wood": 27320,   "marble": 10526 },   // level 22
		{ "wood": 32885,   "marble": 13684 },   // level 23
		{ "wood": 39562,   "marble": 17789 },   // level 24
		{ "wood": 47576,   "marble": 23125 },   // level 25
		{ "wood": 57192,   "marble": 30063 },   // level 26
		{ "wood": 68731,   "marble": 39082 },   // level 27
		{ "wood": 82578,   "marble": 50806 },   // level 28
		{ "wood": 99194,   "marble": 66048 },   // level 29
		{ "wood": 119134,  "marble": 85862 },   // level 30
		{ "wood": 143061,  "marble": 111621 },  // level 31
		{ "wood": 171774,  "marble": 145107 },  // level 32
		{ "wood": 206230,  "marble": 188640 },  // level 33
		{ "wood": 247577,  "marble": 245232 },  // level 34
		{ "wood": 297193,  "marble": 318801 },  // level 35
		{ "wood": 356732,  "marble": 414441 },  // level 36
		{ "wood": 428179,  "marble": 538774 },  // level 37
		{ "wood": 513916,  "marble": 700406 },  // level 38
		{ "wood": 616800,  "marble": 910528 },  // level 39
		{ "wood": 740261,  "marble": 1183686 }, // level 40
		{ "wood": 888413,  "marble": 1538791 }, // level 41
		{ "wood": 1066197, "marble": 2000428 }, // level 42
		{ "wood": 1279538, "marble": 2600558 }, // level 43
		{ "wood": 1535545, "marble": 3380726 }, // level 44
		{ "wood": 1842756, "marble": 4394943 }, // level 45
		{ "wood": 2211407, "marble": 5713425 }, // level 46
		{ "wood": 2653789, "marble": 7427454 }  // level 47 max
	],

	// Temple
	// Type of resources needed: Wood, Crystal
	"temple": [
		{ "wood": 228,     "crystal": 190 },     // level 2
		{ "wood": 333,     "crystal": 290 },     // level 3
		{ "wood": 465,     "crystal": 423 },     // level 4
		{ "wood": 598,     "crystal": 567 },     // level 5
		{ "wood": 760,     "crystal": 752 },     // level 6
		{ "wood": 958,     "crystal": 989 },     // level 7
		{ "wood": 1197,    "crystal": 1290 },    // level 8
		{ "wood": 1432,    "crystal": 1610 },    // level 9
		{ "wood": 1773,    "crystal": 2080 },    // level 10
		{ "wood": 2112,    "crystal": 2586 },    // level 11
		{ "wood": 2512,    "crystal": 3210 },    // level 12
		{ "wood": 3082,    "crystal": 4109 },    // level 13
		{ "wood": 3655,    "crystal": 5084 },    // level 14
		{ "wood": 4458,    "crystal": 6471 },    // level 15
		{ "wood": 5126,    "crystal": 7765 },    // level 16
		{ "wood": 6232,    "crystal": 9851 },    // level 17
		{ "wood": 7167,    "crystal": 11821 },   // level 18
		{ "wood": 8688,    "crystal": 14952 },   // level 19
		{ "wood": 10247,   "crystal": 18402 },   // level 20
		{ "wood": 11784,   "crystal": 22082 },   // level 21
		{ "wood": 14229,   "crystal": 27824 },   // level 22
		{ "wood": 16753,   "crystal": 34184 },   // level 23
		{ "wood": 19266,   "crystal": 41020 },   // level 24
		{ "wood": 23156,   "crystal": 51514 },   // level 25
		{ "wood": 26664,   "crystal": 61817 },   // level 26
		{ "wood": 32027,   "crystal": 77477 },   // level 27
		{ "wood": 36831,   "crystal": 92972 },   // level 28
		{ "wood": 43257,   "crystal": 113941 },  // level 29
		{ "wood": 50782,   "crystal": 139577 },  // level 30
		{ "wood": 59591,   "crystal": 170911 },  // level 31
		{ "wood": 68529,   "crystal": 205093 },   // level 32
		{ "wood": 69131,   "crystal": 215889 },   // level 33
		{ "wood": 82618,   "crystal": 269226 },   // level 34
		{ "wood": 93217,   "crystal": 316976 },   // level 35
		{ "wood": 111324,   "crystal": 395001 },   // level 36
		{ "wood": 128023,   "crystal": 474001 },   // level 37
		{ "wood": 149952,   "crystal": 579334 }   // level 38
	],


	// Town Hall
	// Type of resources needed: Wood, Marble
	"townHall": [
		{ "wood": 158 },                        // level 2
		{ "wood": 335 },                        // level 3
		{ "wood": 623 },                        // level 4
		{ "wood": 923,     "marble": 285 },     // level 5
		{ "wood": 1390,    "marble": 551 },     // level 6
		{ "wood": 2015,    "marble": 936 },     // level 7
		{ "wood": 2706,    "marble": 1411 },    // level 8
		{ "wood": 3661,    "marble": 2091 },    // level 9
		{ "wood": 4776,    "marble": 2945 },    // level 10
		{ "wood": 6173,    "marble": 4072 },    // level 11
		{ "wood": 8074,    "marble": 5664 },    // level 12
		{ "wood": 10281,   "marble": 7637 },    // level 13
		{ "wood": 13023,   "marble": 10214 },   // level 14
		{ "wood": 16424,   "marble": 13575 },   // level 15
		{ "wood": 20986,   "marble": 18254 },   // level 16
		{ "wood": 25423,   "marble": 23250 },   // level 17
		{ "wood": 32285,   "marble": 31022 },   // level 18
		{ "wood": 40232,   "marble": 40599 },   // level 19
		{ "wood": 49286,   "marble": 52216 },   // level 20
		{ "wood": 61207,   "marble": 68069 },   // level 21
		{ "wood": 74804,   "marble": 87316 },   // level 22
		{ "wood": 93956,   "marble": 115101 },  // level 23
		{ "wood": 113035,  "marble": 145326 },  // level 24
		{ "wood": 141594,  "marble": 191053 },  // level 25
		{ "wood": 170213,  "marble": 241039 },  // level 26
		{ "wood": 210011,  "marble": 312128 },  // level 27
		{ "wood": 258875,  "marble": 403825 },  // level 28
		{ "wood": 314902,  "marble": 515593 },  // level 29
		{ "wood": 387657,  "marble": 666229 },  // level 30
		{ "wood": 471194,  "marble": 850031 },  // level 31
		{ "wood": 572581,  "marble": 1084293 }, // level 32
		{ "wood": 695617,  "marble": 1382827 }, // level 33
		{ "wood": 854729,  "marble": 1783721 }, // level 34
		{ "wood": 1037816, "marble": 2273687 }, // level 35
		{ "wood": 1274043, "marble": 2930330 }, // level 36
		{ "wood": 1529212, "marble": 3692591 }, // level 37
		{ "wood": 1876201, "marble": 4756439 }, // level 38
		{ "wood": 2276286, "marble": 6058643 }, // level 39
		{ "wood": 2761291, "marble": 7716366 }  // level 40 max
	],

	// Wine Press
	// Type of resources needed: Wood, Marble
	"vineyard": [
		{ "wood": 423,     "marble": 198 },     // level 2
		{ "wood": 520,     "marble": 285 },     // level 3
		{ "wood": 631,     "marble": 387 },     // level 4
		{ "wood": 758,     "marble": 504 },     // level 5
		{ "wood": 905,     "marble": 640 },     // level 6
		{ "wood": 1074,    "marble": 798 },     // level 7
		{ "wood": 1269,    "marble": 981 },     // level 8
		{ "wood": 1492,    "marble": 1194 },    // level 9
		{ "wood": 1749,    "marble": 1440 },    // level 10
		{ "wood": 2045,    "marble": 1726 },    // level 11
		{ "wood": 2384,    "marble": 2058 },    // level 12
		{ "wood": 2775,    "marble": 2443 },    // level 13
		{ "wood": 3225,    "marble": 2889 },    // level 14
		{ "wood": 3741,    "marble": 3407 },    // level 15
		{ "wood": 4336,    "marble": 4008 },    // level 16
		{ "wood": 5019,    "marble": 4705 },    // level 17
		{ "wood": 5813,    "marble": 5513 },    // level 18
		{ "wood": 6875,    "marble": 6450 },    // level 19
		{ "wood": 7941,    "marble": 7537 },    // level 20
		{ "wood": 8944,    "marble": 8800 },    // level 21
		{ "wood": 10319,   "marble": 10263 },   // level 22
		{ "wood": 11900,   "marble": 11961 },   // level 23
		{ "wood": 13718,   "marble": 13930 },   // level 24
		{ "wood": 15809,   "marble": 16214 },   // level 25
		{ "wood": 18215,   "marble": 18864 },   // level 26
		{ "wood": 20978,   "marble": 21938 },   // level 27
		{ "wood": 24159,   "marble": 25503 },   // level 28
		{ "wood": 27816,   "marble": 29639 },   // level 29
		{ "wood": 32021,   "marble": 34437 },   // level 30
		{ "wood": 36857,   "marble": 40002 },   // level 31
		{ "wood": 42419,   "marble": 46457 }    // level 32
	],

	//Town Wall
	// Type of resources needed: Wood, Marble
	"wall": [
		{ "wood": 361,     "marble": 203 },     // level 2
		{ "wood": 657,     "marble": 516 },     // level 3
		{ "wood": 1012,    "marble": 892 },     // level 4
		{ "wood": 1439,    "marble": 1344 },    // level 5
		{ "wood": 1951,    "marble": 1885 },    // level 6
		{ "wood": 2565,    "marble": 2535 },    // level 7
		{ "wood": 3302,    "marble": 3315 },    // level 8
		{ "wood": 4186,    "marble": 4251 },    // level 9
		{ "wood": 5247,    "marble": 5374 },    // level 10
		{ "wood": 6521,    "marble": 6721 },    // level 11
		{ "wood": 8049,    "marble": 8338 },    // level 12
		{ "wood": 9882,    "marble": 10279 },   // level 13
		{ "wood": 12083,   "marble": 12608 },   // level 14
		{ "wood": 14724,   "marble": 15402 },   // level 15
		{ "wood": 17892,   "marble": 18755 },   // level 16
		{ "wood": 21695,   "marble": 22779 },   // level 17
		{ "wood": 26258,   "marble": 27607 },   // level 18
		{ "wood": 31733,   "marble": 33402 },   // level 19
		{ "wood": 38304,   "marble": 40355 },   // level 20
		{ "wood": 46189,   "marble": 48699 },   // level 21
		{ "wood": 55650,   "marble": 58711 },   // level 22
		{ "wood": 67004,   "marble": 70726 },   // level 23
		{ "wood": 80629,   "marble": 85144 },   // level 24
		{ "wood": 96979,   "marble": 102446 },  // level 25
		{ "wood": 116599,  "marble": 123208 },  // level 26
		{ "wood": 140143,  "marble": 148122 },  // level 27
		{ "wood": 168395,  "marble": 178019 },  // level 28
		{ "wood": 202298,  "marble": 213896 },  // level 29
		{ "wood": 242982,  "marble": 256948 },  // level 30
		{ "wood": 291802,  "marble": 308610 },  // level 31
		{ "wood": 350387,  "marble": 370605 },  // level 32
		{ "wood": 420688,  "marble": 444998 },  // level 33
		{ "wood": 505049,  "marble": 534270 },  // level 34
		{ "wood": 606284,  "marble": 641397 },  // level 35
		{ "wood": 727765,  "marble": 769949 },  // level 36
		{ "wood": 873541,  "marble": 924213 },  // level 37
		{ "wood": 1048473, "marble": 1109328 }, // level 38
		{ "wood": 1258393, "marble": 1331467 }, // level 39
		{ "wood": 1510294, "marble": 1598031 }, // level 40
		{ "wood": 1812577, "marble": 1917913 }, // level 41
		{ "wood": 2175317, "marble": 2301767 }, // level 42
		{ "wood": 2610603, "marble": 2762392 }, // level 43
		{ "wood": 3132948, "marble": 3315144 }, // level 44
		{ "wood": 3759764, "marble": 3978446 }, // level 45
		{ "wood": 4511941, "marble": 4774409 }, // level 46
		{ "wood": 5414554, "marble": 5729565 }, // level 47
		{ "wood": 6497687, "marble": 6875750 }  // level 48
	],

	// Warehouse
	// Type of resources needed: Wood, Marble
	"warehouse": [
		{ "wood": 288 },                        // level 2
		{ "wood": 442 },                        // level 3
		{ "wood": 626,     "marble": 96 },      // level 4
		{ "wood": 847,     "marble": 211 },     // level 5
		{ "wood": 1113,    "marble": 349 },     // level 6
		{ "wood": 1431,    "marble": 515 },     // level 7
		{ "wood": 1813,    "marble": 714 },     // level 8
		{ "wood": 2272,    "marble": 953 },     // level 9
		{ "wood": 2822,    "marble": 1240 },    // level 10
		{ "wood": 3483,    "marble": 1584 },    // level 11
		{ "wood": 4275,    "marble": 1997 },    // level 12
		{ "wood": 5226,    "marble": 2492 },    // level 13
		{ "wood": 6368,    "marble": 3086 },    // level 14
		{ "wood": 7737,    "marble": 3800 },    // level 15
		{ "wood": 9380,    "marble": 4656 },    // level 16
		{ "wood": 11353,   "marble": 5683 },    // level 17
		{ "wood": 13719,   "marble": 6915 },    // level 18
		{ "wood": 16559,   "marble": 8394 },    // level 19
		{ "wood": 19967,   "marble": 10169 },   // level 20
		{ "wood": 24056,   "marble": 12299 },   // level 21
		{ "wood": 28963,   "marble": 14855 },   // level 22
		{ "wood": 34852,   "marble": 17922 },   // level 23
		{ "wood": 41918,   "marble": 21602 },   // level 24
		{ "wood": 50398,   "marble": 26019 },   // level 25
		{ "wood": 60574,   "marble": 31319 },   // level 26
		{ "wood": 72784,   "marble": 37678 },   // level 27
		{ "wood": 87437,   "marble": 45310 },   // level 28
		{ "wood": 105021,  "marble": 54468 },   // level 29
		{ "wood": 126121,  "marble": 65458 },   // level 30
		{ "wood": 151441,  "marble": 78645 },   // level 31
		{ "wood": 181825,  "marble": 94471 },   // level 32
		{ "wood": 218286,  "marble": 113461 },  // level 33
		{ "wood": 262039,  "marble": 136249 },  // level 34
		{ "wood": 314543,  "marble": 163595 },  // level 35
		{ "wood": 377548,  "marble": 196409 },  // level 36
		{ "wood": 453153,  "marble": 235787 },  // level 37
		{ "wood": 543880,  "marble": 283041 },  // level 38
		{ "wood": 652752,  "marble": 339745 },  // level 39
		{ "wood": 783398,  "marble": 407790 }   // level 40
	],

	// Winegrower
	// Type of resources needed: Wood, Marble
	"winegrower": [
		{ "wood": 467,     "marble": 116 },     // level 2
		{ "wood": 718,     "marble": 255 },     // level 3
		{ "wood": 1045,    "marble": 436 },     // level 4
		{ "wood": 1469,    "marble": 671 },     // level 5
		{ "wood": 2021,    "marble": 977 },     // level 6
		{ "wood": 2738,    "marble": 1375 },    // level 7
		{ "wood": 3671,    "marble": 1892 },    // level 8
		{ "wood": 4883,    "marble": 2564 },    // level 9
		{ "wood": 6459,    "marble": 3437 },    // level 10
		{ "wood": 8508,    "marble": 4572 },    // level 11
		{ "wood": 11172,   "marble": 6049 },    // level 12
		{ "wood": 14634,   "marble": 7968 },    // level 13
		{ "wood": 19135,   "marble": 10462 },   // level 14
		{ "wood": 24987,   "marble": 13705 },   // level 15
		{ "wood": 32594,   "marble": 17921 },   // level 16
		{ "wood": 42483,   "marble": 23402 },   // level 17
		{ "wood": 55339,   "marble": 30527 },   // level 18
		{ "wood": 72050,   "marble": 39790 },   // level 19
		{ "wood": 93778,   "marble": 51830 },   // level 20
		{ "wood": 122021,  "marble": 67485 },   // level 21
		{ "wood": 158740,  "marble": 87835 },   // level 22
		{ "wood": 206471,  "marble": 114289 },  // level 23
		{ "wood": 268524,  "marble": 148680 },  // level 24
		{ "wood": 349194,  "marble": 193389 },  // level 25
		{ "wood": 454063,  "marble": 251512 },  // level 26
		{ "wood": 590393,  "marble": 327069 },  // level 27
		{ "wood": 767620,  "marble": 425294 },  // level 28
		{ "wood": 998018,  "marble": 552986 },  // level 29
		{ "wood": 1297536, "marble": 718988 },  // level 30
		{ "wood": 1686906, "marble": 934789 },  // level 31
		{ "wood": 2193089, "marble": 1215330 }  // level 32
	],

	// Workshop
	// Type of resources needed: Wood, Marble
	"workshop": [
		{ "wood": 383,     "marble": 167 },     // level 2
		{ "wood": 569,     "marble": 251 },     // level 3
		{ "wood": 781,     "marble": 349 },     // level 4
		{ "wood": 1023,    "marble": 461 },     // level 5
		{ "wood": 1299,    "marble": 592 },     // level 6
		{ "wood": 1613,    "marble": 744 },     // level 7
		{ "wood": 1971,    "marble": 920 },     // level 8
		{ "wood": 2380,    "marble": 1125 },    // level 9
		{ "wood": 2846,    "marble": 1362 },    // level 10
		{ "wood": 3377,    "marble": 1637 },    // level 11
		{ "wood": 3982,    "marble": 1956 },    // level 12
		{ "wood": 4671,    "marble": 2326 },    // level 13
		{ "wood": 5457,    "marble": 2755 },    // level 14
		{ "wood": 6355,    "marble": 3253 },    // level 15
		{ "wood": 7377,    "marble": 3831 },    // level 16
		{ "wood": 8542,    "marble": 4500 },    // level 17
		{ "wood": 9870,    "marble": 5279 },    // level 18
		{ "wood": 11385,   "marble": 6180 },    // level 19
		{ "wood": 13111,   "marble": 7226 },    // level 20
		{ "wood": 15078,   "marble": 8439 },    // level 21
		{ "wood": 17321,   "marble": 9847 },    // level 22
		{ "wood": 19481,   "marble": 11478 },   // level 23
		{ "wood": 22796,   "marble": 13373 },   // level 24
		{ "wood": 26119,   "marble": 15570 },   // level 25
		{ "wood": 29909,   "marble": 18118 },   // level 26
		{ "wood": 34228,   "marble": 21074 },   // level 27
		{ "wood": 39153,   "marble": 24503 },   // level 28
		{ "wood": 44766,   "marble": 28481 },   // level 29
		{ "wood": 51166,   "marble": 33095 },   // level 30
		{ "wood": 58462,   "marble": 38447 },   // level 31
		{ "wood": 66778,   "marble": 44656 }    // level 32
	],
	
	"marineChartArchive": [
		{ "wood": 1298, "marble": 1066, "crystal": 611 }, // level 2
		{ "wood": 2133, "marble": 1916, "crystal": 1142 },
		{ "wood": 3102, "marble": 2918, "crystal": 1769 },
		{ "wood": 4226, "marble": 4101, "crystal": 2508 },
		{ "wood": 5530, "marble": 5497, "crystal": 3380 },
		{ "wood": 7042, "marble": 7144, "crystal": 4410 },
		{ "wood": 8796, "marble": 9088, "crystal": 5625 },
		{ "wood": 10831, "marble": 11381, "crystal": 7058 },
		{ "wood": 13191, "marble": 14088, "crystal": 8750 }, // level 10
		{ "wood": 15929, "marble": 17281, "crystal": 10746 },
		{ "wood": 19106, "marble": 21050, "crystal": 13101 },
		{ "wood": 22790, "marble": 25496, "crystal": 15880 },
		{ "wood": 27064, "marble": 30743, "crystal": 19159 },
		{ "wood": 32022, "marble": 36935, "crystal": 23029 },
		{ "wood": 37773, "marble": 44241, "crystal": 27595 },
		{ "wood": 44444, "marble": 52862, "crystal": 32984 },
		{ "wood": 52183, "marble": 63035, "crystal": 39342 },
		{ "wood": 61159, "marble": 75039, "crystal": 46844 },
		{ "wood": 71572, "marble": 89204, "crystal": 55697 }, // level 20
		{ "wood": 83651, "marble": 105918, "crystal": 66144 },
		{ "wood": 97663, "marble": 125641, "crystal": 78470 },
		{ "wood": 113917, "marble": 148914, "crystal": 93016 },
		{ "wood": 132771, "marble": 176377, "crystal": 110180 },
		{ "wood": 154642, "marble": 208782, "crystal": 130434 },
		{ "wood": 180012, "marble": 247021, "crystal": 154333 },
		{ "wood": 209442, "marble": 292142, "crystal": 182533 },
		{ "wood": 243580, "marble": 345385, "crystal": 215810 },
		{ "wood": 283180, "marble": 408212, "crystal": 255077 },
		{ "wood": 329116, "marble": 482348, "crystal": 301412 }, // level 30
		{ "wood": 382402, "marble": 569829, "crystal": 356088 },
		{ "wood": 444214, "marble": 673055, "crystal": 420604 },
		{ "wood": 515916, "marble": 794863, "crystal": 496734 },
		{ "wood": 599090, "marble": 938596, "crystal": 586567 },
		{ "wood": 695572, "marble": 1108201, "crystal": 692571 },
		{ "wood": 807491, "marble": 1308335, "crystal": 817654 },
		{ "wood": 937317, "marble": 1544493, "crystal": 965253 },
		{ "wood": 1087916, "marble": 1823160, "crystal": 1139420 },
		{ "wood": 1262610, "marble": 2151986, "crystal": 1344936 },
		{ "wood": 1465255, "marble": 2540001, "crystal": 1587446 } // level 40
	]
};

/* Launch IUW using jQuery loaded inside the ikariam page */
IUW.$ = jQuery;
IUW.$(function(){
	"use strict";
	IUW.init();
	IUW.reload();
});