Ikariam Upgrade Watcher 3

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

질문, 리뷰하거나, 이 스크립트를 신고하세요.
// ==UserScript==
// @name           Ikariam Upgrade Watcher 3
// @version        2.6.4
// @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        /*?action=loginAvatar&*
// @include        https://s5-gr.ikariam.gameforge.com/*?view=city&*
// @include        https://s5-gr.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();
});