NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript== // @name FC Enhance--Jelly's Dev Version // @namespace catastrophe.box.eggsal.com // @description Adds functionality to FC | Creators: Marjo, uJellyBrah, Zhyrek, and ID36. Links to website by ID36, links to fc resource by sk89q, inspiration from FC++ by sk89q. // @include *fantasticcontraption.com* // @exclude *archive.org* // @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js // @version 4.0 // @updateURL https://openuserjs.org/meta/Pravet/FC_Enhance--Jellys_Dev_Version.meta.js // @grant GM_xmlhttpRequest // @grant GM_setValue // @grant GM_getValue // @grant unsafeWindow // ==/UserScript== //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////SCREEN SCALE///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var scale = screen.width/1920; // Used to scale elements by brute force for different resolutions //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////SWF LOCATION///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var locationBox = document.getElementsByClassName('left')[0].getBoundingClientRect(); // Get the pixel location of the centered div...used to position other elements relative to its location //First we must detect if the page is simply the advertisement page and break here if (unsafeWindow.location.href.search(/fantasticcontraption.com\/original/) < 0 && unsafeWindow.location.href.search(/fantasticcontraption.com\/\?/) < 0) { throw new Error(); //First try to stop script } try { if (window.constructor != unsafeWindow.constructor) window = unsafeWindow; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////MAKE ID////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function makeid(len) //Create random sequence of characters to use for username, email, password { var text = ""; var possible = "abcdefghijklmnopqrstuvwxyz"; for( var i=0; i < len; i++ ) text += possible.charAt(Math.floor(Math.random() * possible.length)); return text; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////GET COOKIES////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function getCookie(cname) { //Get a cookie by its name var name = cname + "="; var ca = document.cookie.split(';'); for(var i=0; i<ca.length; i++) { var c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1); if (c.indexOf(name) == 0) return c.substring(name.length,c.length); } return false; } //We must set a cookie to give each user a different ID. We must create a new account and store the id. if (!getCookie("userid")) { $.ajax({ type: "POST", dataType: "xml", url: "newUser.php", data: { userName: Math.floor(Math.random() * 100000000000000), password: Math.floor(Math.random() * 100000000000000), email: makeid(10) + "@gmail.com" }, success: function(data){ var newId; try { newId = data.getElementsByTagName('userId')[0].innerHTML; } catch(err) { unsafeWindow.location.reload(); } if (newId) { //If the acount was created successfully document.cookie = "userid=" + newId + "; expires=01 Jan 2999 00:00:00 UTC; path=/"; } else { unsafeWindow.location.reload(); } } }); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////GET FLASH//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function getFlash() { movieName = "contraption"; if (unsafeWindow.document[movieName]) { return unsafeWindow.document[movieName]; } if (navigator.appName.indexOf("Microsoft Internet")==-1) { if (document.embeds && document.embeds[movieName]) return document.embeds[movieName]; } else { return document.getElementById(movieName); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////VARIABLES//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var inFullScreen = false; var pageLocked = false; var defaultOnBeforeUnload = window.onbeforeunload; var messageTimeout; var contraption = getFlash(); var currentPageNumber = 0; var centered = document.getElementsByClassName("centered")[currentPageNumber]; //This is where we shall add the stuff for the main screen centered.setAttribute("data-pagedescription", "Fantastic Contraption"); var randLevDisplayPlaceholder = "data:image/png;base64,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"; var lockPic = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAE5ElEQVRYhcWWzU9cVRTAf+e+NzMUmIHh0wqVjxYsaVVoUCi2VWOsqQvjSmOMceeCjRtdNF241P4BfiQumrpQG2OiTUyaJtYu3BAz/SBiW1qhBpDODJ/Dx8zAzDsu3gzMAAPUUnsmmXffveec3zn3nvPek1Onl9mGlPr98rkI78ZiOlhbI8slJeIv3kUAIOjHKvdTrA7O4LDeCU9yZTamvwBntnJsb6VQvEu+XIzrO82NYu3bZ/D5aBUAcdcFMAaKfVBWgtXdSdvvV3X/yD969Nawdi0s6klgupB/2WQHAtVVchGVxu5uU+v3rwJz4SuOjHtfXw3FXkinoe+qkwr9oaFwRF8FZjeCmEL0YLl8PTGh7Y6jtUVFm8MRQEEVRiIwuwCWBT2dxm7fLx0VQTlbiFPoCN5MJmm1PfgOHLDwePLhM9MQiylLS+6cMZBaVkbHlIMHLUTAUQiWwtFu4719N/3k1DRvAefWgjY6An9NjcRGRxyOHfPQUA+2xwUNDDjxa/1OYk+dBOfm+SE2pzcBSkqkJ7XMS8mk3p2c1Mbu5wydnRZ7HwevDVPT8M35NPfCWgbEttqB3tFRTezZYxc1N61mHgo5kekZHQNeHhnTvKKam9Ps8L22NvNB6LrTXlZuxLaEljqoCEL7fkleCGsv8Gmu7doaKKmvk1NlAYpa9skKPDYHM7NaE47oITapaODsvbAeb2k28tPPKa5dV6KZ0nu23fhE+ATwbhZA79CQWgG/UFrKyplfupTuuxfWE5uAc2ViPKwnWppN30Q0zXgUUmnw+eDFw2YW6C0YgGUR9Psp7uiwqKx05xJx8HnpAi5sMwCACz4vXXeGlRs3HWYW3MlAiQQsi5qCAex+TD50BGzLvRdgaMiJxxN8dh9wAOIJvjjSY8Wv96eYzQTQulekpkpO5urlFmFgdExTVUHxBMpW+/xqvzMIRIGP7yeAxbiGQ9d00LLkGYDJGMwsQLmfwfEwbwPfQqYNqyvlcnRSO+rrJPxEndWCgKAg7hNNdY132XCY/3ACvF7BY4NkFnweiE46U31XnLmqCumfmNLX7WC5nC/1S+Px41YACEiuO9kAsBFc1sNlzYTXhvoqEDEVr7xgKr770VFjcdlMz+jTPYdNw7oMdhAuwHIahsOwkIAiD7zxmmmMRPWQaWo0+Q4fAjz3/RGZccflJfB8l+U3VZXS8H/BszIcdq+WARt0pcgk+1bLcai4c1kHmnWYo7eim/WT+cu11ZygRYXxKUg7OW24LvoCWa/NZkPdLXZMURJL7siMjiqx+XyXDxO+1s6MhzVaHng0cACzsEj5o4ID2EtJ9ewk3OQZ5T9CTR5dV/UT8Z2DK4qKroO7HeX+XDPJ2AChUHpH4NmFLe0ygQiCsSy4eDnF2FhuE/+3M1fRbcDzxYD7VeuxHwy+vczzZTGus8aT+fi4+7fzQPC1shUcIB5nzgQCJI2BX39LE42uL5ztwGUNZDtwgBu3nZixbfEV+YR0SvjqTIpz3y/jOA9v27Py5w2cpiekTU6dXq7eVURkfl5TkUm1NQOvrhRa90JTo6G4WKiqli3h2T53K7ywhCNw8ZJDIqlVNhCNJ6jwePlod615P5lUfyqNd2kZBm7BwC0HEfDYpI70WHbBzDPo7EgygeRKPM7slX7nr4Y6qUsk9Slg8l/hKc2kABfa4wAAAABJRU5ErkJggg=="; var unlockPic = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAEL0lEQVRYhcWWz29UVRSAv3PfezO17QxDOxVKqy0WCAYwojFEMGpMZMHC+De4cKcrTEwwmpBIwsKYsHDjwq3GjeKOhRLARBJpIhFIAYPQlqFT2jLTzq838+5xMfPqm2mhA3TgzMx7d84953zn3HfPy5Ujx6tEZWhQtOJzcctmxmJx6Qn1VqGwqExc1z8Ax3F4LQhAgN5emSiWdLPjkNyQQLa9YIjH4K+/lYWcCg8QE/0zMMD4dEbvbN7EyK7dpmf7diH8BYH6k7eVRK9sEuSMDfgSEM+Tr1IptgEbhgYlv5DTwuUJe+fGLWUhp88+CA7ghgPHcMwGsnf3Llncs1sSUaOz5+w1taQrZfk6sPppdM6v6uHJKQ7HY3rC9+WjWk3yuTzXcnkdXAvetAL9/XJobl7Pxjztjhr8/Is971cpz2T1m1Z4VCq+fDydUQGeA95sB76cgDEc9X0dHt4io2Njxgknz5y1V+Mx9hUK/FkL+KzNmPl24dB4BK4j3aUy/cahu+orjiNcvWqD2xnN9KXkZqGgHzxM0IcRA1ALtFip6GKpqLHFgiACqlhVDhSLXO8UfDkB15FuIBEogQ0Ua+vtBVgvTlfHE/CretgxYGtqYnFwDOzcaTzgcj6vJzqeAHB0cFBQJDN3t6ER2JCUYHiI8SeRwOeTU/p7UKPL95WlQl35ztvm1WJRxHgc61QCyy+iREKuLy3py9msMjysCMKtSRss3NNzyYSM5qr6xTox54GTwE0AOXK8ykC/nJ6d0707thub3mhSCAhK/S6IUXw/EkJWHdL60p9baNZ5DvT06Pz5cbuY7pOLd+f1PXdjSk72JmT04EEn2RxEwi9N19XgshIuLYqYC8NpEJG+d98yfd//ZNU4nDYL9/Sl/a+bkRUVyCrVPSJcgGoAN2agUIYuD94/ZEazs/qK2TpqmgN2AB4aCZC9Vx+neuDAPidh0v0y8qTgodyYqd8dAy4oqpEAChoJqNR1YYDweCERu2XbME7jEvXVSNKiQmYeAhtpwxXZ36fq1mpWtV1jxRSl7NdHZmpKyS81h+wkvNXPZGZ0NpV8OnAAUyiSelpwANevqLeecNPkFN2mYJro+r99ubR+cEVR0RXwekfVP3U3afgAFy4E6wIPJ9b0ayQiCMZx4NTpGtPT0SZ+tGeuom3AmyU8FeO5jwdvr/JmKZY0Z7zGIfzfm/ax4K2yFhygVGLRJJNUjIHfzgXMzq7cOO3ApQXSDhzgyjWbN64r8a64ENSEb7+r8cOP1fqpuEPLHsrlK9itz8uLcuR4deCZLrJLS1rLzqmrDfhAv7BjDLaOGrq7hfSArAkP+7y+w+8vM1k49aulXNG0C8yWyvR5MT4Z3GQ+rFQ0UQuI+VW4NAGXJiwi4LnU3tjvuPetvIEOR9JIJCqlErnxi/afkSEZKld0DzD3H5ktqvdt6Z2LAAAAAElFTkSuQmCC"; var refreshPic = "data:image/png;base64,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"; var chatButtonPic = "data:image/png;base64,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"; var chatButtonHoverPic = "data:image/png;base64,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"; var rightArrowPic = "data:image/png;base64,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"; var leftArrowPic = "data:image/png;base64,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"; var settingsPic = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABHgAAAEqCAYAAABujOcYAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAABIAAAASABGyWs+AAA0pklEQVR42u3df3xU9Z3v8fd43dv8qI9bQjRLkFAzoFCyBCWWJST0LguRXq9QwAq7hcVurYJd3dgqVeyy1FVYLZRUtxDUWxt+bMHyWykQkC0kEJUgPww/ND8gYOIKGLu3krh3cc794zAYYM7Mmd9nZl7Px8OHmplMzsycM3PO+/v5fr4SAAAAAAAAAAAAAAAAAAAAAAAAACBErnhvgC9rdxpG2xnprQbz//94Xjp2It5bBQAAAAAAks3Am6TrMs3/HlYg9b5BmjTK5ci8xB/HbPDzqwxjx1sEOQAAAAAAIP4G3iSNHiY9PCUxwp64b+TM+WawAwAAAAAA4ESjh0lLnnB20BO3jfvx84axbme8nz4AAAAAAIA9E0dJzz7szKAn5hu19g3DeOZXZl8dAAAAAACARHJdpvTk30qT/tJZQU9MN+b5VYbxwqp4P2UAAAAAAIDwPDTFWf15YrYhTMkCAAAAAADJxElTtmKyEeMeMQxWxwIAAAAAAMlm4E3SpkXxD3muifYf+PHzhDsAAAAAACA5HTthZh/x3o6oBjy/+A3TsgAAAAAAQHJbt9PMQOK5DVErIVr7hmE8/sLVP493pHVdpjRmmDSsQLrxBqnvzRfivEUAAAAAAMCf1vev1dET0lsN0o634r01Jl+Byj8/FL/VtaL2R2/7jmH4Wgo9XgHPxFHSpFEEOgAAAAAAJLo9tddq3U4z8IkXX4HKdZnSOyuTKOCZ9QvDWP9vvm+LZcDT+wbp4SnSiBJCHQAAAAAAktGr667VK69JvopMoskqUJnwF9Jzfx/7kCcqf7D/t6znncUi4Bl4k3TvXQQ7AAAAAACkii3brtXzq2IX9PgLVBo3JEHAM3O+YfibDxfNgIeKHQAAAAAAUlusKnr8BSqjh0lLnohtyBPxP+avekeKXsDz8BTpnokEOwAAAAAAQJq78NqoNmQOFKjEuoonosukx2NJsN43SJsWEe4AAAAAAIAvzP3RBT37sNn4OB5inZFENOB54+1YbrrZZ2f1v1xQVm/CHQAAAAAAcLkRJRe05ZULGlYQ+78d64wkouVCgaZnSZGZonVdplT5BEueAwAAAAAAe7Zsu1bP/J/IPZ6dQCWW07QiVsGz9o3YlB4NvEna8soFwh0AAAAAAGDbN++4oJVPx3bK1podsZumFbGA54Mz0d/Y0cOkl54l2AEAAAAAAMHre7M5ZWvgTbH5e21nY/fcIhbwvNUQ3Q2dOMpskAQAAAAAABCOl56NTcgT7ayku4g2WY6We++SfjiDcAcAAAAAAETGS8/Gp/lytEQs4GmPUtnRk9+T7ptGuAMAAAAAACJr4ZwLGj0seo//aWfsnkvEAp62KPTgmTjKbIIEAAAAAAAQDXN/FL3pWsdOxO55OHaK1sRRTMsCAAAAAADRF6uePNHkyIBn9DDCHQAAAAAAEDsvPXtBvW+I91aEznEBz8CbWC0LAAAAAADE3pInpOsy470VoXFUwHNdppmYAQAAAAAAxFpW7wt67uF4b0VoHBXwJOqLCAAAAAAAksOf3XpB994V760InmMCnnvvMl9EAAAAAACAeLpvWuI1XXZEwHNdpvniAQAAAAAAOMFPvhfvLQiOIwKeyifivQUAAAAAAABf6HvzBT08Jd5bYV/cA55hBeaLBgAAAAAA4CT3TLyQMKtqxT3gWTiHcAcAAAAAADhTokzVimvAM3FUvJ8+AAAAAACAtRElF9T7hnhvRWBxDXh+OIPqHQAAAAAA4GyJ0IsnbgHP1wfF+6kDAAAAAAAENqLE+b144hbwMD0LAAAAAAAkijHD4r0F/sUl4LkuQyopZXoWAAAAAABIDPfeFe8t8C8uAQ/VOwAAAAAAIJFk9b6ggTfFeyusEfAAAAAAABLSH9uu0bYNrkv/ANHm5Dzj2lj/wesyDPW88fN4P28AAAAAQAKresnQ9l2Xt/7Iuf6/acgII96bhiT29UGGJGeGiTGv4BlWEO+nDAAAACAYf2hp1n9+2B7vzQAkSbXV0gP3e7R919VBzvI1FBMgunre+LljV9OKeQUPy6MDAAAAieUr+e54bwKgxgMuVS77XB+dtb7PR2elD993qdfNVPEgeoYVSDveivdWXC32AQ8VPAAAAAAAmw7scWn7Lo8OH/XYun/zSUO9bo73ViOZfX2QoR1vOW+aVswDnuw+lMwBAAAAAKz93w+uUfUuj7bv8uh8Z3C/e+iooZIy5118I3k4dSWtmAc8QLKrrZb21psloZkZ0g/K+XIBAAAAAml/36W9+wwdPupRS6u9ah1f6uoN/cChTXCRHG665XM5MU5x3hYBCW75mstHGQ7fb+i5Odfqf9wY+pcUAAAAkGxqqqXzndLho4YOH41sz5z3D7h086304UH0XJcpfXo+3ltxOQIeIILeP+C6qoT0fKf0g8cvaMw3XJr+fUYSAAAAkNra33dp4RL/zZIDycnq0ISS3Trc0k97G65u9FpX79HNt3LujegZeJO0ryHeW3G5mC+TDiSzllbrUYLtuwzNedKj9w/wRQMAAIDUFU64k5nWpUcnr9LKyl6uu6dOdg3Ob/J5v737qN5BdDmxDw8BDxBBgb5GWlqlpxZ+rl9WGPrDBxx+AAAASC1/+OCakMKdQneTHp28ShuXfcU1dtL0SyOmd0+d7HP09Hyn1PY+A6uInusynBcicoUJxEFdvaG/e/yC1qyM95YAAAAAsXO+0/5FcWZalyaW1mjHq19yLZw/6LJgp7tCt+8qnu276IGJ6LkuM95bcDV68AARFGxzuA1bPNqwRfqzr7n0rW9eo1toBAcAAIAkFuhst9DdpMHuZhUPalD/4bNdG5cFfswxRfU61Nzvqp/X7TN0Lz0wESUDHDhFi4AHcIB3jxp69+jnuuF6aXjRNRr9jWvUg1W3AAAAkCLcuW1aWpHv2hHC746dNN01+p4pV2VH5zul9w64GERFymCKFhADxQX22qufOStt3OLRQ49f0AP3e/QvFYa2bJA+YP4wAAAAktiX07vC+v2yon0+f75hC4OmSB1U8AAR1HLS9+jAU3OGuhrr5hkLVk9Rc3tvW491vlN6s97Qm/WXP2Z+Xyn/qy7KTQEAAJBwrBosD3Y3h/W4xYMaVF1/+1U/f/eoIYnzZqQGKniACDrfaX1b/+GzXUsr8l0LZixRTlZHyH+jpVXascvQb2nQDAAAgATz0dnoTJcquXOGy+oc+3cb4v2skYycOPGPgAeIMndu22X/P2RUuWtlZS/XghlLbE/d8mUj5aYAAABINFG8Kp5Qstvnzzf+jvNmRIEDEx4CHiBCTr/nu/TTaj7xkFHlrqfmDHXtePVLromlNcpMC2/eMQAAAJCoInEufPfUyS5fj3O+U9pfyzQtRFbb2fAfI9IIeIAICWc+8YMPjXZtXPYV14IZS0TYAwAAgGRl9sS5Wr/cDyPy+CMsKuRXrvk83k8dSabtTLy34Go0WQYi5IzFfOJgwpoho8ovDS001s0zmtt763CzW3saCnT+s/Sr7n/6PZf63OLA2kAAAAAgDmbNKnGNvuc/rzpBPnNOqq91qaiEc2ckLyp4gAhpaY3saET/4bNdYydNd82aVeLq17stpMcAAAAAnMTqnLn7QGe4rJZM/1eqeJDkCHiACLFaESASX1Zui5Do8FFGIAAAAJA4/K06GymzZpX4PP8+c07aVxvvVwCIHgIeIEJOtF79s0j10slMj8E3IQAAABBFH5/2Pe555aqzkWBVxfPyMlbUQvIi4AEioNViBa1ITa0qzG/x+fN3qeABAABAgrCqeLdadTYcVlU85zul32+L9yuBZODEKzECHiACTpz0fXjbWUHLDqsKnvOdTvxYAQAAAK7mq+Jditw585WmlflOcn6zlioeJCcCHiACrJrFuXu1R+Tx+w+f7XMEwupLEgAAAHAaq3PmnB6fROXvTb9vnMtXy4TzndKvXmSgFMmHgAeIgAaLqVIld86I2GoAVnOTT74XsT8BAAAARM0Ziyla0ejB4zVx5G6fP9+52+A8GkmHgAeIgDPnrv5ZpL+o3Lm+q4GspocBAAAATmJVfW5VrR4J0+8b58rJ6vB52/NLWDYdyYWABwjT2xZLLVoFMqHKtwiMTrQS8AAAAMDZrKplCt1NUf/bM+/a6PPnZ85Jr6+P68sCRBQBDxAmq+lZxYMaIvp3+uV+GNTfBwAAAJzC6pzVbXGOG0kld85wWS2bvmqtR2dPM1ULyYGABwjTW/XR778jSUNGlft8PF/TwwAAAAAnsQp48qPYf6e7WbNKfDZclqTnK5mqheA5cZidgAcIw9nTLp33sYJ5tBrFWZWwWk0TAwAAAJyg4Zjvy+Gxk6bHrHxm5njfU7VOtEqrVzrxch0IDgEPEIY3dnl8/ry4ILLTs7wGu5t9/vxdpmkBAADAoRre8f1zq+bH0TJ20nSX1YDpa1sMnTjOVC0EwYGXYAQ8QBispmdFuv+OV2F+S1DbAQAAAMSb1fSsEYOOxHxbFs4fxFQtJC0CHiBEZ065dNZH/5ucrI6oLfU4ZFS5zy+kzk5zewAAAACnsRqMHJwf/RW0fHls8iqfPz97Tpr/DAOnSFwEPECIdu72PT0r2iMRhf18T9Oy2h4AAAAgXj6yGBSVIr8oiV0ld85wTSyt8XnbkWOGVq0g5EFgTtxLCHiAEO3c7fuQHlP0dlT/rtX0L6ZpAQAAwGn+bXdse1ba9eBDo11WC6O8vtXQmzVBPiDgAAQ8QAjerDGnRV3JndsWtelZXlYrDZw9Z46QAAAAAE4R656VwVhakW/Zj+dXyz2cWyPhEPAAIXi73qp6Z19M/r7ViMdrW5mmBQAAAGdoPm49PSuWy6P7Y7V0emen9A9P03QZiYWABwjB2/t9Bzx3T50cky8qqxGPt5mmBQAAAIdw6vSs7sZOmu6aVrbN522dndJPnmQAFYmDgAcI0qb1vn9eFqPqHcn8IrJaTYv5wgAAAHACq8HHsqGxO2+2Y/p941xWodPJVkIeJA4CHiBIr2/x/QFfVlQf0+2443bff+91pmkBAAAgzupqDJ89KzPTuuK2epY/T80Zatl0+WSr9ItFnGPjcoYD19Ei4AGCsGm97y+qnKwODRlVHtMvqgcfGu3z751slZqPx+f1AQAAACTp1bW+L35HOGh61pX8NV3et196+UXnXdAD3RHwAEF4fYvvD/VpY6rjsj2F7iafP391LSMMAAAAiI/D78iyufKE0t3x3jy/FsxcLKuQ5/e7DUIeXOLE/qcEPIBNG/1U78RrFYAxFtPCjhyTmqjiAQAAQBxYtTQodDep//DZjpue1V3/4bNdC2Yutrz997sNPVLu0X98HO8tRbz8x8fSI+UenWyN95ZcjYAHsGmzw6p3JLPZck5Wh8/bqOIBAABArDUdl44e833bmBj3rAxV/+GzXXOnv2J5+9lz0tx/IuRJRf/xsfneW1WoxRsBD2CDE6t3vKwCpqNU8QAAACDGrAYZnXDeHIySO2e4Hp28yvL2s+ekx57wqP1UvLcUsdJ+ynzPnRruSAQ8gC1OrN7xsloyXaKKBwAAALHT6Kd6xwnnzcEaO2m635Cns1Oa+7RHjQyqJr3G4+Z77WvQ30kSIuBpPGb+A8TDS0udW73jNXP8Rp8/P3pM2lvjvOZfAAAASD6/XpYc1TvdjZ003TWtbJvl7Z2d0s9+7uGcO4ntrTH00wQIdySHBzwH90tTp3r002fMf56cTTUCYusP56RdNc6t3vHy14vnt2v5sgEAAEB07a0x1GoxXclJ582hmH7fuIAhz+Klhjau47w72fzrCkOLlybO++rogGfx0ssDndZT0h6SUcTQlfugV6G7yXGjEFZfnGfPSRv4sgEAAEAUWQ0qJnL1TnfT7xvnd7qWJP12naGXEigMgH8Vizz63Vbr9/OTtvVq3OBy2fmn++999Sa38eKy30ZlR3FswPPkbN8lUFXLOWAQG3tqDD9ziLfHe/OuMnbSdFehu8nnbWvWGWqjARwAAACiYMM6w7Lx7My7Ngb3YA4WqCePZFb/Pznbo08c3IgX/rWdMvOI+v3+79f85rdDCi5Pnmh2zfvHx6Oy7Y4MeCoWeSzL+zo7RSqKmLAKE4sLGjRkVLkjRyFmjLP+Al1cyRRHAAAARFbbKXMw0ZdCd5NK7pzhyPPmUI2dNN21YMYSWS1yIpkzT34826OD+4N4YDjCnov9dlr9DI5npnVpx6tfCmu/PnmiOSrHheMCHjtJ2a4aQ+/TdBlRVLHIdwVZZlqXnpoz1LFfUv2Hz3ZNLK3xeVvrKaZqAQAAILKqllsPIvobfExkQ0aVuxbMXCyrHpiSWZiwYJFHK1dw/p0oVq4wtMRigR2vnKwOLZi5ON6baslRAc+Ts/0nZd0tWEQ1AqJjT41hGTJOHLk73psX0IMPjbZcNn3NOkMfMFULAAAAEVC91bqlQVnRPvUfPtuxA6Ph6j98tmtlZS+XO7fN7/22bDX0SDlTtpzsg1PSI+UebdnqP4xz57ZpZWUvl5P3a0cEPAf2S/ffbz/ckZiqhej45Jz11KxCd5Om3zfOsQdzd4/5mRu8hKlaAAAACNMHfqZmZaZ1adaskoQ4bw7X0op8V3FBg9/7nD1nTtmq3sr1q9NUbzX01NMeyx5SXsUFDVpake/4fTruAc/6dYYWLgptTfldNYbeYV4jImjxUuupWYlUYlpy5wzLL5rWU9KLhKMAAAAIQ9Vy62u4meMT57w5Ep6aM9Q1Y9wGv/fp7JSWrTD0zDMedVDNE3enT0nPPOPRshVGwCxixrgNjm7T0V3cAp7Tp6Tyco/WBugJUlzQoB2vfslyyknlUg4QRMb6dYaOWZSYThy5O+FKTJ+aM9TyuNldY2gbIwgAAAAIgb/z5kJ3U1Isix6su6dOdi15ZKHf5suSdOyY9HC5R+vpjRk3K1cYemK2x3If9spM69KSRxbq7qmTE2Z/jnnA03HObGD7xGyPzgUIZsqK9l1Kyn5676993qezU1r4c6acIDzvHZNl2JhIU7OuZHXcSNLyFYbeo1k5AAAAguDvvDkzrUsL5w9KyPPmSOg/fLZr47KvBJyyJZmv4ZOzPcxIiaHaGkPlNnrtSGahycZlX3F0vx1fIrax/b9l2Iog+/73/2fr8aaVbbvqonrxCzuMdTWlPu8/stSl+x9IqNceDvHxOemJ2dZTszYu+0pC71j+jpuMDOknP7lGeXnx3koAAAA4nb/zZkl6dPKqlKze8WXr2ipjweoptu47dKg0aRLn5NFy/Ji0dl3gih2vRN6PHRfwZKZ16af3/lpDRpX73LYHyluM5vbePn/3gQdcKi1NyPcBceRv9ba5019RyZ0zEn6n8nfc9M2TnpkX93ZcAAAAcDh/583FBQ0J06ckVhrr5hkLVk+R1Xn4lcaOdembY13qmR3vLU8OH5+Tli33aL/NKil3bpsenbwq4VpzdOeogKe4oEHTxmwL+IKO/5s/GOc/S/d527x5JJ+w78WlhnbX+N51J5bW6MGHRifswX0lf8fNwIHSk08S8gAAAMA3f+fNOVkdWlnZK2nOmyOt6uVNxrrdI2V1Lt5dRoY0ciRBTzg+PietXWu9v14pM61LE0fuTti2HN0l5BOo3VxpzK36rs/bMjKkefNcys5OyKeGGFq3ztA6i/nD7ty2hFgGLxgHd1YYj1bOtLy9tFR64AFCHgAAAFzO33mzJC15ZGFCVz3Eyo+eOGIcau5n+/5jx5pVPVzb2nPsmKGtWw3bFTtS8lWeJewTqXp5k7G8+g6ft+XlmZU8gJWaGkNLl1o3h0v0vjtWAs0FJuQBAABAd/7OmyVzCelEWmUo3mo3VxpLXhuvjzqybP9OaalZ1TNwIC+zL/v3m8GO3R47kjmgP21MdVK04+guoZ/Mc8/VGtX1t/u8jZAHVvbXG1pUYR3u+OsBlQz8NV2WCHkAAABgOnbM0DPPWIc7ZUX7NGtWSdKeN0dTMNO2vPLypL59CXskqWa3ofr9hlpbFXB17u4y07o0rWxb0oaSCf+k/DWPpa8IrtTaan5JpXrnf3/hqETIAwAAkOoCnTcnY0uDeAg0+GolO1uaONGlkSNT5y04e9ZQTY20dav1fumPr5W6k01SPDl/zWO5UIVXoC+pVDjguws0B5gqOAAAgNREuBN7gQZgrWRkmFU9Q4e6NHZs8r0lZ8+a069OnVJQU7C6S7bFc/xJiifZWDfPeHTJgyLkgZVAX1KpWl7qrwJOIuQBAABINYHOmzPTurRg5mKaKkdJqEGP18CB0sCBrkv/TkTHjhnavducfnXqVGiPkUwrYwUjaZ5soJDntqHSDx/hQjUV1dcbevFF6y+pZOucHixCHgAAAEjS0WOGKhb5n/7CilmxsfiFHca2fUVB9ei5UkaGlNfXDHr65knZ10tf7eust+5k68Ugp9VQ6ynpeIhVOl45WR2aULI7aXvsBJJUT9rf8ulSalyodnR06MJ//Zc+//zzsB/r2muv1Z/8yZ/oKz16xPtphWzXbkMvvWjdGI7yUhMhT+KprzeXK/WOalCpCAAAwhHovFmS5k5/JelWHXK6rWurjO31RWpq6x1W2OOVlydlZEp986S8vi5df73Zz+eG66P7tp5sNYNDb5hz9px07mxwDZKt5GR1yJ3brrKh+1J+/0y6Jx9oGWguVFMH4U5wApWDZmdL5Y+4HJf6p6Knn/H4HN0oL3epqIj3BwAABMdOuJMqi5E42da1Vcb6mlL5G5gNR3a2WeVj9vUJ761uvRjonGpVSA2R7SguaNDEkpqkXgE5WEn5QhDygHAnNIFCnowM6e8fcWlQgs7nTQazZ3ss5yKXlEozqOIBAABBINxJPI1184z1NSO1p6EgIlU9iSQnq0NlRftSrreOXUn7otiZrvX9B1y6iWqEpLN2naH166y/pArdTVo4fxBvvAU7jd0IEmLvRKuh+c/4nxOfnS1VVPC+JLMTrcalkbBvJuFKGYiPZcu/CI6zs6UJE13KiXKpPgBnCBTuZKZ1aeb4jYQ7DuYNe5rbc6NW2RNvhe4mDXY3E+rYkNQv0MGdFcajlTMtb8/IkL4z1aVvjEzqlyGlWE1d8SLcscdOyDNgoPSTJwkTYmHXbkMrVxi2ylv/6RmC62S1bLlH1du++P/sbLOijvcb4fB1cce+BaSGyqUe1dZY385qWYmp6uVNRnN7b+1tKIj3poQsM61LIwoalJ/blrLNkkOV9C9WoJBHku6736X/SciT8PxNXZEId4JV9fImY3n1HX7vk50t3feASwVM2Yqany/y6J399u//rYku3T2R9yPZWH2+ZWRIjz/pUj4X4ghBS6uhOU9aj9xzfgQkr0DnzYQ7yaGxbp7R3N5bLe29tefIIH3UkRXvTfLJndum4oIGuXu1p3yT5HClxIsXaAl1iSkniayl1dA/B5i6Ula0T7NmlaTE/h5JgfpZeZXdIf3NNI6fSHq73tCGbqtk2cU0reQT6CScvnIIhZ3vTkn666ku/S+mAwJJw86xT7iT/Go3VxrNH+bqcLNbknSouV/U/2ZmWpf69W5TZvpncue2qTC/hebIUZAyL2hj3TxjbtV3/aaWeXlmNQIjoYljzTrzItifiaU1evCh0bypIWqsm2csWD0l4JzevDzpr6dRzRMJV07FCdbjT/I+JIOWVkPPLzJsLR9KyINg3X+/x/aqJnl50sOPuPSnDu3L83a9oXf2m8dKRoYZSjl1W4F4+v1uQ/+6gnAH1g7urDAk6dOuNDV/mBvWY7l7tevL6Z8pM72T/SmGUu6FfqC8xfB3oZqRYZYkf52lhh3PztQVOv5Hzpyn9ht25vJSzRO6YKp2Hp28Sks2jvdZmUhFYuJbttzsixDMsqKEPLArUFWYFadNAW04ZujlpVeHoBwLwNXsnDfn57bpsXtWq3/xE8450AEEJSUPXjsXqlwgOdfb9ebog79R7cy0Lv303l9T9hdhi1/YYayrKQ14v+xsqWwsZf12/ftZc5+202vHndumRyevUv/hs13++iQtWMQIdqT8bqtZHSCZ+/ZtQ6M3CGDn880fmp8jkFDDHa/sbLNCJt4DYYEuVgl5AJPdatD83Da9WJHPiQOQ4FL2ILbbQPbhR5iy5SR2pq50vwCO9/Ymo9rNlcaS18bbatI2YKA54st0IWvBTMfy1Utq9D3/6XOOotNG2hOV1fszYKAZ9EQqxPz9brN6y06wk5PV4ff4Y4ACVgKtmDOtbJvW7R7pt2ehV3a2+TkTyybMLa2Gqrcafp9Dd4Q8SHV2q0FnjNuou6few0kDkARS+kCu3Vxp/Gz1lIAnMiNKpZmcLMfVu0cNPV9hqCvAF1RxQYOemjM0pffrWLE7ZUuSbr3NrOj5s6/x1nj9dq2h6m2B92nJ/3x4qyXt0zOkl17kcysc7x419Ow8/z2+0jOkAQOkAQNdGjBQcn/V3j7+4RlDx49Jx48b2mPzYlX6oqeY1fvu9b3vu/QX3+B4wxcW/tyjA+9Y3z6tbJum3zfO1Vg3z1i+/Q7by+umZ0i3DZVKSqPzGd980jxWamsMnQ6h8qhntvRwucv2sYnoaT5p6J/nmd97PbOlx2e71OsG3pdoePeoWQ0a6JjJTOvSzHEbNfZu2hkAyYKDWYH78kjmF9FfT3VpGL15Ym7JUo+tC6AZ4zbo7qmTeYNiaOvaKmP59jLbSy4S9EhVF0fT7AQ7UuAV4Brr5hkzF/3I521j7pCm0w8pZHY/e67UJ8/s52bl1Cn7779XZlqXZo7feFlPsUAhz/gJLn17Uuoea/hCoHDH1+fM4hd2GNv2Fdmq5vEKNfDs7sMzZh+yd/YbOndWeu94+M8/PcMMEwh54uuJ2Z6rAodbbzPPrwl6Isfud1dOjw7Nnf5r+u0ASYYD+iK7vUVuvU36q6lS7g1cNEXbzl0e/WZl4AuhnKwOzZ3+ClOy4iiYah7JDEzHT5BGfSM1jqOmk+bJ1vYgVsbKTOvSY5NXqeTOGQH36x89ccSwWt7yuZ/zeRWKw0c9em5evLfC5K8y0d97LxHywfdFdXf+QmS7qyj60zPbnM5lRyTCHCvpGdKPZ0v9vsrxEA/+9sP0DPOc4H9/k/cmHK9v8Wj7NuljG1N9J5Ts1g8eHsN5M5CEOLC7sTtlSzK/iL49iS+iaDh81KPfrJCtUmymZDlHKBcC3tL+8ROSM4R4fYsZ7AQzrSAzrUt33F6vBx8abXu/9lfFc8sA6R9+knyvbbT909OeqF5s2uHObdO0MdUBQ75AVahMM05N7Wc8eqHC/+ePO7dNS200VV2zYrWxvnak7WrNWPOeCwSqakvPkB4qlwZ/jeMhVoI5p+uTZw6i8v4E58168zW2E+xkpnXp0cmrVGpj8AhAYuLg9iHQiKgXIw6R1XTS/IKyc1GVmdalaWXbmJLlQKFeCPTJM8OeEaWJHfa8We/Rnt3yOx3CSnFBg6aN2RZSNZq/C5u/K5f+vChxX9NYe32LR6tWxu/vF7qbNKao/rLpWIEEqkK99TbpRz9kH0gVTSfNcMffBV+hu0kL5w8K6rNmzYrVxvLqO4KathVNvgZ57FRkE3rGRqjTXHtmS9+7n6AnkGDCM0kqHtSgp/6RQVEg2XGQWwimtwhBT3gOHfVox1b7F8SBepLAGape3mTYXY3lSn3ypFsGmifh/R1eTt92xqP3jkkH9kvHjwffW0UyL7RmjNsY9jTD8X/zB8PX652eIc19WuqdwMFZrLSd8WjuT3y/j95m1+trRupQizvi1QxlRfs0oXR3yPtBoNUh++RJ81lRKOkdOurRv1T4/ywKt/p169oqY3t9kewMhkWanSrHrWurjAWrp/h9nOJS6UFCnqhZvNSjvSGEO931yZPGTZSGM0Bxmbp6j1bZrNiRaKQMpBoO9ADs9uaRzBGHEaXSPUzdsiXYYCcnq0OP3bNaQ0aVs98mkHBHfL1NO/v0NUOfwjiP6DWeNAOdc+fMUMfuCZYvxQUNmlhSE7F9es2K1Ublpm/5vI2pWvb46xMxd/orl02XOrizwjjUkq/m9t461OQOeh9357apuKBBhfktEdsHAoU8PbPNii6nB6cIjZ3qs0gPkqxZsdqoO1IQ1bDHG+oUD2qwfazYCXkIPaMjUN+nzLQufTm9Sx99Yi8kT8+Q/uo75jlAKg9UBNNjx4teO0Dq4YC34eDOCmPJpnFB9RYpLjXDnnhfjDpRKF9Q3uVb473tCN3WtVXG+prSsJp1enlXKbploBn8ZGRE/lg7dNQjSXrvmNTZKZ1uDW31I1/CrdTwx98U0ynfodLQn18v92iHRSNs7/LkgR7j4M4KI9B9oh1SB7qwTc+Q/vZ+RsWTjZ2KiWhXwHpDz8PNbjW19Q452C90N8md+6Hyc9uCmqp4pa1rqowFr/oPeTgeIqeu3qNfvRj4e3JJ+c/Vv/gJ1y+f326srx1p+/G9Az6jx6bO+XXjSfOcOdhqqMH5zZpWVq1bGRQFUg4HfRC2rq0ylmwcH9QJS6qtFmQl1C8omignn9rNlcbeIwXy1wgzHMGs2OJLtBrr5mR1qKxoX0yCSqupWpL02OzUOTEORl29R7+s8H2b3Ua0TlK7udKYW/Vdv/cZN4GK02TQdsackhWoD0e8Bkoa6+YZ57sybN03GuHngYuDdC0BBheYshUeOwFjfm6bZo7bdFno0Lh3vrFk03gdbnEH9fe8VfMjSpOvqqfxpEcH9kt7aoKvEs7p0aEJpTW6e+o9CfWdBSByOPhDEEpvkfQM6dah5jSJv0yRsOeDM+aX/YH9wa0iJEWuJwmcrerlTUZ1/e2OXZklXJlpXRpR0KDiQQ22ljuPFH8X9+kZZshzM1N0Ljl01KOfWSyJ7u27k4ifRY1184xHlzzo97vqlgHSD8qlrC+zPySiN3aZU7ICVUxcOb0wFd1f3mIECnn4fAze+yfNz89A+2B+bpte9BOU12yuNNbXjAw66JHMsMfbty9RBzAOHTVDnVCnfhPsAPDiQyAMoTaR9YY93sAnmU6s37/Yn2RvkEtDexW6mzRtzHb67KSYxrp5l6p6kiHsKb4Y6oQztSBc/lbV6pkt/ePTyfXZE6pAFyfJcGEcaBl1pqgkno5PPdq0XpZTCr0SOaCMhmefqzW226geLS41K9xuTLLKkEj64Iy5D9qpzB5TtE8/tjk1cOuaKqO6/vaQgh6vWwaYgc+Qoc4N67zny+8dMyuHQ53+TbAD4Ep8GERAuFUIffIuhj0OaCAbrA8uriD03nFz1CHUL6hIN5tFYtu6tsrYe6QgpMa18eDObVOhu0WD85scFQb468fTJ88cqU7lkCfQakPJ1PtrzlP7jb0NBX7vM/oO6d5pqbs/JIpDR80+J4FG+RNxamEs2O37kp5hhjx30bfsKq9tMcMdO+d808ZUa/r37wp6P2zcO99Yvr1Me48UBPurV/GeZ/fMlrKvj/259qGjHp1qNY/Z062RmQqe06ND08ZUszIWgKvwoRBBkWoie/OAL5rH9syWbnHI6MPHn5qrIpxuNatz3jsW3gpC3ukr0Wo2i+TQWDfPONTs1uGWfmpuz3VEhU+hu0mD3c1y92p3VKDji7/qjZ7Z0oPlzvmMiaVXlnv0hp/qh2g3o42HQCtsSeaF0L33p+Y+4XQfX6zaeWNb4PvSv86/xr3zjUcrZ9oaQEjPkL57v1RMhZv21nv0io0mypIZQMyd/mv1L34i7P3w2edqjcPNbturbtmRnvHFgg19+po/u2VgeI/53jHz36dbzcUZPj4X3nmyL8WDGjShtIbmyQAs8eEQBY1184zm9t5avr0sYhejNw/44kvIu2pQnzypZxRG39876VHXxVWDzl0cbYjkl1RZ0T6VFdVTrYOQHdxZYTS199L5z9J1uNks4470Er05WR360x4dykz/TO7ctoQIc6z4a7qcniE9Oju1LugDNQNNxnDHq3ZzpfGz1VMCXtgWl0qTvxOd7xgE7+BR88LazvfwjHEbdPfUyUm5/0banJ/uN+xWiPTJk+6amJpBz956j15bZ3/qfbSW5g6nT08iy89tU1lRPdOwANjCB0WUHdxZYVTXF0VtxSDpi1GIcHR2Sh+E0DPHrpysDk0o2c1JJ6IumBVbfEnG4DFQs930DLOS59YEmyIail8u9ajOT7iTKtNaAvXlkcz94t77pREpeEHrFOc+9Wj1SvndZ71ysjo0d/orVMQGaeuaKmP59jLb1SE35pnTGYcMlbKTOAA996lHB/ebfZ7snh/GctrQmhWvGoeb3RGZwuVEOT06VDyoQWVF9RGpggKQOvjAiKFoLw/tNN5Qp1/uh0l50QwkEjsrKt01QZqcpMtmv3fSHIE++I71fXKyOrSyslfKfFbZmbIlmRe032XaVsytXuvRjm32psMwJSt8dhswe6VnmEHP8FIpL4maMZ86Y4bgdvc9r2hV7dhRs7nyUtgTyWlcsTY4v1nFBQ1U6gAICx8gceINe5rbc8Pu2eMUmWld6te7TcMHNRDqAA4VqHJj+MWpOck0Mn3gqEeLK/xfrKRK5c6VGuvmGXOrvmtrOvGQ26R7pibXxawT7an36NUV9qZjZaZ16bHJqxJ2+qjTHNhZYSzZNE6BllO/UqJX9YRSreOVn9umx+5Z7agqE291T3N7rqMDn8H5zSp0Nys/t02lHMMAIoQPEwfw9uzxBj5OaCJrV6G7Se7cD1U8qIFAB0gQgUKentnSPd+RRtyeeBcqV1q11qPX1/u/T6qGO90tfmGHsa6m1NZ9R5VJf3mH1Dcn8fcPJ9mzz6PX1tu/wKZqJ3rWrHjVWF9TGlI4cPOAi8tzD5AG3OTcY+T4CY/ePy4d3C+9H8KqTom0itOBnRWXAp9//6RH0AFeuDLTuuTObb8U5vxpj08cFYgBSC58uDjUwZ0VxqGWfDW393ZM6OMNc/Jz2+TObWOeP5DA7PRgGVVmTtu6/jrnXqRYOX7CoyW/YCnpYBzcWWH87NXJtr5v0jOk4SUEPZHwzhEzhLR7kU3VTuxUvfSasa6m1NZqW770zDaDnj594x/4eAOd063mvhbqwhk5PTo0obQmKaYRHdhZYXzU0UMffZKlT7vSwq6od+e26cvpn0mSBrubJYnVrgDEHB86CSSWKwfl9PhEOVkdcvdqV05WB2EOkISee67WCNQTLD3DrOYZ843EuIg/+0ezCmJndeD7FrqbtHD+ID7brrBmxWpjefUdti9qC28zg0AnVys40fZdHr0R5JSYiaU1evCh0eyzMbZmxavG8uqykIMeL++iGDfmSdnXm//OyIjssXP8hOfSwhnnzpr/Pn0quH46viRSxQ4ApDI+pJPIwZ0VRii/l5neSYADpCi7jXZ7Zkvf/o5U4tBpW2f+6NHOaukNm41Bk3kp9EixEwB2d/MAs4dTooSB8eDdT+tqgqugKHQ3aca4jXxXx9nWNVXGutrSqE3xuXlA6L8byjQrO4oHNWhM0T56xABAguDDGgBSXGPdPGPB6im2ytN7ZpsX8VMcstrWmT969NuV5upYdoKdzLQuLZi5mAtlmxrr5hmVm8YHXS16Y545fYuwJ/RQRzKramfetZHpWA7TuHe+UV1fpOr628Ou6nEi7xLd8VoVCwAQOj64AQCSpDlP7Tf2NhTYvv/wEjPsuW1Q7C/it+8yl/INZtSaKVmhO3hxdaFge1Skcq+ed46Y+2hdbfC/m5N1cTrMJKbDOF3NxVVRg1li3Yky07pUXNCg4kENVOsAQALjAxwAcEkwjXa90jPMPiyFF1eOyYlCU+aTH5kNQt8/Jr0Z5AVzZlqXppVt091TJ/OdF6bazZXG+trSkPq/3Xix98ioO6SvJWm/npp9Hr1ZY/Y86QihiW1OVocmlOxmX01QNZsrjZb23qquL3L08txe+bltGjHoiIoHNbCqEwAkCT7MAQBXWfzCDmPbvqKQph94L+R7Xm8GPj2zpa8GUb1x9IRHXZ1mdc4HraFfLEssJR0tB3dWGOtqSxVMxdeV/rxEurGvNOS24PYPJzl6wqND75jBY2MYPVDcuW2aUFpDxU6SqdlceXF57t463OKO9+ZocH7zpaW6qdIBgOTEhzsAwFKw07acgqa0sfPcc7XGnoaCsHqReKvAbuxrrjI0NA7T/gL56I+eSysSfdAafCWZL4XuJk0oqaHHTgo5sLPCONzs1r9/0kMfdWSpuT03on18MtO65M5tv7gq6ica7G5mqW4ASCF84AMAAorERXwsFBc0aGJJjYZwQRMXkdxPuleCZWWblWBFMQp+6o+YYU5Xp3S61VxqOtQqsisVFzTIndum6feNYx/FZQ7srDC67xTBLI1KiAMAkAh4AABB2Lq2yli+vSyoHj3RlpnWpTtur9eYorep2HGINStWG+trR0ZtP+l/cTnp9AypT9/wHut06xcrsIUzzcof7z764EOj2T8BAEDUcKIBAAjawZ0Vxt4jBQq1T08kFLqbNKaonr4lDlf18iajuv52R4WCsZCZ1qV+vdvYRwEAQMxwwgEACEtj3TzjULNbh1v6hdV0N5CcrA4V5jdrsLuZC+YEVfXyJuNwszukVbgSQU5Wh9y57Soe1MA+CgAAYo6TDwBARB3cWWE0tffS+c/SdbjZXDkmmAt6b+VDZvpncue2qTC/hZ46Sah2c6Wx90iBmttz1dzeO96bExLvvjp8UIP65X7IfgoAAOKKExEAABB33mCwpb23Y0Mfb4UOwSMAAHAiTkwAAIAjhVsNFqruQU5mWhfVOQAAICFwsgIAABLOwZ0VhiT9+yc99NEnPUJ+HHevdn05/TNJIsQBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAIvj/kMoUfjBCiVIAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDktMjZUMDg6Mjc6NDEtMDU6MDBybwYFAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA5LTI2VDA4OjI3OjQxLTA1OjAwAzK+uQAAAABJRU5ErkJggg=="; var settingsBtn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAACxIAAAsSAdLdfvwAAARfSURBVEjHfVV7UJRVFP/d+327yy6vZXmJjEIwGISMTJr5SBhUlGZ6SFTaTNmMj2m0kRSr0cwmxybJaYac0RknJhm0ZHwwkUEllQ6aGKQZjwTTFDWJl7ss7Lfs857+2HVd4NvO/e/e8/ud+zv3nHsYxhmhHjHGn3JvLFbyPDlOkxOAjjSDUXfif0trmHluZLQYbByCBYOPYlrED8uurVIKnLGCMf8hASAw0lsim6Z8seaXWaMQbDLBLaRi78zO7QPFDj0DBwMLHBIIgBcErS2uLqt8Z5ddhAcTOKADNFuW/b135DEGyQ9lE8QRBAQIER2ZOz5t+F3MfkBghYbrpV3rW3eNxsngYOBQM/KTeGDoS9xYXddC83wETmg1W4v+/Nw+xQdXM+6XAT+Fvi//3R1H7mA6JMCD85mdlbZHZNXIDLLDdCGzyR47Fv1wzxlhyX6z+bt/L4IT1hrbt1izJNXYBNmZvHvHC/IVJY78LwJwSDDPOFdaoq8GZziQb13pSxlNWsD05g8O1qV3bnXoCdoxYy8Fcj9UfOrp1xm/HHnzVVckV4UTJOhqXzbbE7x6gGPaifRqBgKBgcMV1fvGDZMUPvfuNmGQoG6cIo/fbqvoGey2pkf1P//27aSB5SIgz2mynpfvP+eI435tKjlg+qQ/dBb3zm8//NVgKO7/KtsT8GWwx9wqkpUCAQ5SSSGBIf7KU/VwcWJo7CvUbn7RViKCClzAvEBWZpA/gZMJwgcX73/pupui+Z7k00/ULO1daTeycZ6OTFmJYqoCCFqRsn/9YXg17MfE7sq7hR4uEOxLABwmPhao8vELSGhYXcU83xAi6ktvL3Vy7wQ/AjAGmVSvD8T2zPt4/j0C9O/lda1zqT4TAeBaEpMICNrRrPK3ulvEVHyZ2rHTFqcOF9AQ1w5OLh8ZqTXrjhwa/h5nwus2WJ5ULzKCQJhFNly3JRDGd3/8pYWfZNgJkLatGVrrDdGhBEJ0D9c3MYhxhWwYyHh/480+gFctbi9zGkLHZ9Cc5oXtYWYvRGBT9mZXlje75ER+PLZhsyVVhIQL6IbSGvmSnyOaCA/d4s/qNcXHyopgatx0r9AL/A9B+NlnW6Wv7fNcA894tNzf6TmNnfl9ixTlpqttz5hBXT1A8EKj5H50sF2yIqO/KWV0FuBr6fDh9A6b8uiltvXmtNBwAcLUE6Wf5bqZGfPxWu6ZY/dnSOAANK6UJkNX/4KBOaE6FBDwwnh1dom5uwoMUGCQ31lx8YAtQfJ/5wwCoaMTvAjrXVBaUduKuT6/HqRoXllxq8KRzIPGSajoApFDj2/fV8MUX9YApOKwu+ZkfpnprwdtEirzHghEXZ2zYV+tsA8BDwuQAIAdWlS/6c5yd6TaaPFR6JTEUxm7K7rMEvMCMZgwXIEWY82Sa6stCx0mYvDL8f3OjHSDiZdnHc2rq7ftg8pwDdyDX4g+mXOj0FM4kuaOczBAR/ph0z/iVFLDqs4CN5ygYNB/xXtE6Ef2QakAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDktMjZUMDg6MzE6NDktMDU6MDCNEOflAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA5LTI2VDA4OjMxOjQ5LTA1OjAw/E1fWQAAABF0RVh0anBlZzpjb2xvcnNwYWNlADG1fAQlAAAAGHRFWHRqcGVnOnNhbXBsaW5nLWZhY3RvcgAxeDEWroPbAAAAAElFTkSuQmCC"; //Zones var bottomZone; var rightZone; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //-------- BEGIN THE LONG FUNCTION THAT ALLOWS ME TO HAVE OTHER FUNCTIONS IN IT! --------///////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Disable if no cookies if (!navigator.cookieEnabled) { alert("Sorry, you need cookies enabled to run FC Enhance.\nIf you think this is a mistake, please contact marjo."); return "Browser does not support cookies."; } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////ADD ZONES//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function addZones() { //Bottom zone bottomZone = document.createElement("div"); with (bottomZone) { style.position = "absolute"; style.bottom = "1px"; style.width = "99%"; style.textAlign = "center"; id = "bottomZone"; } //document.body.appendChild(bottomZone); rightZone = document.createElement("div"); with (rightZone) { style.position = "absolute"; style.bottom = "0"; } //document.body.appendChild(rightZone); } addZones(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////RANDOM LEVEL HUB///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function addRandLevelStuff() { var randLevelHub = document.createElement('div'); randLevelHub.style.position = "absolute"; randLevelHub.style.top = 48*scale+"px"; randLevelHub.style.right = 20*scale+"px"; randLevelHub.style.width = 300*scale+"px"; randLevelHub.style.borderStyle = "solid"; randLevelHub.style.borderRadius = 25*scale+"px"; randLevelHub.style.borderColor = "blue"; randLevelHub.id = "randLevelHub"; randLevelHub.style.fontSize = 1*scale+"em"; randLevelHub.innerHTML = "<center><div id = 'innerHub'><legend>ID36 Random Unsolved Level Hub</legend></div><center>"; centered.appendChild(randLevelHub); var innerHub = document.getElementById('innerHub'); var display = document.createElement('img'); display.src = randLevDisplayPlaceholder; display.style.height = 132*scale+"px"; display.style.border = "none"; display.id = "randLevelDisplay"; innerHub.appendChild(display); innerHub.innerHTML += "<br />"; var genButton = document.createElement('input'); genButton.type = "button"; genButton.value = "New level"; genButton.style.padding = 3*scale+"px"; genButton.id = "randLevelButton"; genButton.addEventListener('click', function(event) { getRandLevel(); }); innerHub.appendChild(genButton); } addRandLevelStuff(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////GET RANDOM LEVEL///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function getRandLevel() { document.getElementById('randLevelDisplay').removeEventListener('click', this.redirectToRandLevel); document.getElementById('randLevelButton').disabled = "true"; document.getElementById('randLevelButton').value = "Loading..."; document.getElementById('randLevelDisplay').src = randLevDisplayPlaceholder; document.getElementById('randLevelDisplay').style.border = "none"; document.getElementById('randLevelDisplay').style.cursor = "auto"; document.getElementById('randLevelDisplay').style.height = 132*scale+"px"; GM_xmlhttpRequest({ method: "GET", dataType: "text", url: "http://id36.ueuo.com/lvl-us.php", onload: function(response) { setRandLevel(response); } }); function setRandLevel(response) { srcXML = response.responseText; //Find image data URL var dataURL = srcXML.match(/src='data:image.*?[\w=]'/g)[0]; //Match starting with the data: and ending in either an equals sign or a space. Nongreedy star. dataURL = dataURL.substring(5, dataURL.length-1); //Now find link var href = srcXML.match(/href='http:\/\/FantasticContraption.com\/\?levelId=\d*/g)[0]; href = href.substring(6); var unsLevId = href.split("=")[1]; document.getElementById('randLevelDisplay').src = dataURL; this.redirectToRandLevel = function(event) { //unsafeWindow.location.href = href; loadLvl(unsLevId); }; document.getElementById('randLevelDisplay').addEventListener('click', this.redirectToRandLevel); document.getElementById('randLevelDisplay').style.border = "1px solid black"; document.getElementById('randLevelDisplay').style.height = 130*scale+"px"; document.getElementById('randLevelDisplay').style.cursor = "pointer"; document.getElementById('randLevelButton').disabled = false; document.getElementById('randLevelButton').value = "New level"; } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////CHAT HUB///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function addChatHub(changingNick) { //We will in this function add the default username box etc. This is the logic thatcontrols the chat //Add the base DIV var chatHub = document.createElement('div'); //Create the surrounding div chatHub.style.position = "absolute"; //Positioning chatHub.style.top = 258*scale+"px"; //etc. chatHub.style.right = 27*scale+"px"; //etc. chatHub.style.width = 284*scale+"px"; chatHub.style.borderStyle = "none"; chatHub.style.borderRadius = 25*scale+"px"; chatHub.style.borderColor = "blue"; chatHub.id = "chatHub"; //Set an id document.body.appendChild(chatHub); //Add the div to the document. It will not dissapear when other pages are requested var startChatButton = document.createElement("img"); //Create the button to load the chat startChatButton.style.marginTop = 30*scale+"px"; //Offset it a little bit startChatButton.id = "startChatButton"; startChatButton.style.width = 160*scale+"px"; startChatButton.style.height = 56*scale+"px"; startChatButton.src = chatButtonPic; //Set the image. This variable was defined in the variables section //We want to add a hover image, to make it clear you can click it. startChatButton.addEventListener('mouseover', function() { //When the mouse hovers on the button this.src = chatButtonHoverPic; }); startChatButton.addEventListener('mouseout', function() { //When the mouse leaves the button this.src = chatButtonPic; }); startChatButton.addEventListener('click', function() { //On click addChat(getCookie('chatusername'), chatHub); //Add the chat, passing in the username value, which is simply the value of the cookie, and chatHub as the element to put the chat inside document.getElementById("chatHub").removeChild(this); }); //Add the button to the hub document.getElementById("chatHub").appendChild(startChatButton); } addChatHub(); function addChat(userName, area) { //When this function is called, it will add the iframe and set the src to include the username var chatHub = area; //Take note of the area to put the chat in var chatFrame = document.createElement('iframe'); //Create the iframe chatFrame.src = "http://www3.yourshoutbox.com/shoutbox/sb.php?key=733328453"; //Set the source chatHub.appendChild(chatFrame); //Add in the iframe chatFrame.id = "chat"; //Set an id for the iframe window.addEventListener("resize", function() { //This is all just to make sure the iframe resizes based on the window dimensions var vw = unsafeWindow.innerWidth / 100; var vh = unsafeWindow.innerHeight / 100; var heightPercentage = 60; //Change this value to tune var chatWidth = 291*scale+"px"; var chatHeight = (heightPercentage * vh) + "px"; chatHub.style.width = chatWidth; chatHub.style.height = chatHeight; chatFrame.style.borderStyle = "solid"; chatFrame.style.borderRadius = 25*scale+"px"; chatFrame.style.borderColor = "#2550FF"; chatFrame.width = chatWidth; chatFrame.height = chatHeight; }); window.dispatchEvent(new Event('resize')); //Set initial sizes based on window size } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////FULLSCREEN TOGGLE//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function addFullScreenButton() { plusIcon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA9hAAAPYQGoP6dpAAAD7ElEQVRYhcWXz28bVRDHP/PW63idOE6axClW2jhNSwo9VgTEgf8GhHrhxAF6aLi06r2qKrjABcQJrqinUkUlRYKWIpWCklqNW8d2U+eXfyX7djhsfhjTxE6ozBz27ezbnc93n3Zm58nFq1t0Yo7D5dSwfJIvaKmvVx6fGJNTXpwkQL3G6pOcLmxs6MRrx2WkWNIr1vJpJ3GlAwEjoykpxj3JnjtnMv39ILB9CAcvCqODUGvAX4vw4PcgW6tpZqmgKaB0UPBIG3jfQFKK0285JBJkdrlNcBGIx6AnCrEoTL8J5yZM5mEWbt22xfKKHgPK+wFMGwEXxk9KLZHYA7bCVWF5Hf7MwaMc1Dah14PjwzB5SnzgwkGAdgI8Nyrey+AQwpE9H2CxGI7JPnAcidBmldsJ2AO2wHcc2ee++mbLvUcVcBQ4bK9AB6/XujzvA+l9hXQIB4g6EAS77qXtcYswK75oFTAykJTiyIg8SyYl3RxvIiOHgjfPTZwSwJnZ8W2gW2vrlIpF/fzFSpiiEYDR1G6qpVuDHhUOcGYMTqcFY8APoFITd6NO+kUZ7vxki88KKsZxuBz3JLtfqh0aLpDbLj2uA1EXIg7EXBjqh/EUnDkJ8bhkIw6X5dqXvp4/7/CyCncU+M65F4WRfti0EGj4QcZje/O/PoK5ny0mX9DSq4ZDWJAWl6GwAqVVWCrD43woBuCNCcg90+dmbZ2BVw2HsEq2hAKBbCH0e6LQ1yvzkUZd3W7Bd4bHSxCJwERGJg0CtWr34DvmW+j1SBoB7t61XYU3P2sQuDVr/xd4tcaqEUFrDbC2u3CAhazOGyOoEcjnuwsXYKOikyYWk+cI/HBzq6vwlTUYS8uwcV1SXo+QzSlzc7YrcATu3Q+ySwW9Ihevbn1YrzOTLwSj1oaBjYR5KgK9nvDutOHtd5xXBl9dg9k7lqd5lQhwIxaD8RPmo0pVp4IAUQXrQwBUasrNHy0Dg8LUlDkUfGsT5hd095Lva2N9g+VCUdPLZU3BXj9wwxjKiT6ZAkSVQd/nPVVO110SGxUlvxRw9uw/W5x2bz6/oMzO2ZmmmQawzEsaEoBvd58XcF0ALlnLjAhMve7QbJ0u+7Z99u9LoXXWlIrgNkk9JPxAaysg4ghG4MlicCh4azofVUAjmaAhBm7fCVh+roeCVyta5oBdUScCrqtIT9QN/15ffe3z3fd+c7d7YKo9yekgcP0gQEeb03hMivWG+i9WNSIafqTDx4TJDIyPGzxPGBqS3Qp3736QrdY08zT/3zenAKVqXY9FHD4e6JcPrCVhLdFKFX57CA/+CJejx8W3yi9jaZleKug3fofb878BWK9v5p5d7BYAAAAASUVORK5CYII='; minusIcon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA9hAAAPYQGoP6dpAAACOElEQVRYhe2WTU8TURSGn3NnBtpCW4y2aP1AQghxTUTj/zFx5w9g4wrD3gXRjVt/gnHlgmBxIS5dIBNE2mkp/QLa0t65LkpTLDVGrFMXPZs5597znuedSSY5srzaZJihhkofGRgZ+B8M2D31YyD1D3lNIA+86jWQmIpLLpGQ/XhcUgByTnU+R3rqngYBrl9p517x5zbtm2alSj6XMy8PSyYJ5G2A6aTklu5bRKN04fJ7uPQ0dNL5m2evq8H4oBS0fDiuiXNUJ3VYhI0POrfvGVGWxUokLG40enHoZeAI7OXbqWPBmAO2BSEHrsZgJgnzdyASEde2WJEXr1tmcdEiFhsMvJOHxyARg1MNvgFLQSTUvf/0BdIfNSrjmfyg4QC1U/hWAK8E+TJki7CTaZsBuDcLe/vmQFWqTA0aDiA9Bx2t67Xr8TGYnJBtu1E3TlDwzmMnC7YNs3dlTiFQOwkO3omWhokwcSXA5qYOFH5eqxB4v66HAj+pUVYimFoDtA4WDvDVNdtKCUYJZDLBwgU4OjZzKhSSAwTevmsGCi9V4FZKrinHIRkeF9w9QzqtA4EjsPXZd7OeeS7Lq80n9TrPMp4/rXV7sJL2fyoCE2Hh0ZLiwUNrYPByBdY3NN8zRmxgLRSCmdvq6fGJWfD9sz7pCja3fGqncGNaXfwUv4L3qVst06geUfByJlUomiR094E1pShGJ2Whjw4Ad9fg7up+V38SDaBAn4UE4M3fTr9MDH0nHBkYGRi6gR8d572lMfn5PQAAAABJRU5ErkJggg=='; fullScreenToggle = document.createElement("img"); with (fullScreenToggle) { setAttribute("src", plusIcon); id = "fullScreenButton"; style.height = 32*scale+"px"; title = "Toggle Fullscreen"; style.width = 32*scale+"px"; style.position = "absolute"; style.top = 4*scale+"px"; style.left = 4*scale+"px"; style.cursor = "pointer"; } //The toggle fullScreenToggle.addEventListener('click', function(event){ if (!inFullScreen) { var game = contraption; with (game) { style.position = "absolute"; style.top = "45px"; style.left = "calc(50% - "+540*scale+"px)"; style.border = 10*scale+"px solid #2550FF"; style.borderRadius = 25*scale+"px"; height = 771.42857*scale+"px"; width = 1080*scale+"px"; } var freeLevel = document.getElementsByClassName("right")[0]; //Free level of the month with (freeLevel) { style.display = "none"; } var border = document.getElementsByClassName("border")[0]; //Blue border with (border) { style.padding = "0px"; style.backgroundImage = "url('')"; } var titlePic = document.getElementsByTagName("h1")[0]; //FC Logo with (titlePic) { style.display = "none"; } var topText = document.getElementsByTagName("h2")[0]; //Fun online physic... etc. with (topText) { style.display = "none"; } with (fullScreenToggle) { setAttribute("src", minusIcon); } inFullScreen = true; document.cookie = "fullscreen=yes; expires=01 Jan 2999 00:00:00 UTC; path=/"; } else { with (fullScreenToggle) { setAttribute("src", plusIcon); } var game = contraption; var border = document.getElementById("maincontent"); with (game) { style.position = "initial"; style.left = "initial"; style.border = ""; style.borderRadius = ""; height = "500px"; width = "700px"; } var freeLevel = document.getElementsByClassName("right")[0]; //Free level of the month with (freeLevel) { style.display = "initial"; } var border = document.getElementsByClassName("border")[0]; //Blue border with (border) { style.padding = "20px 0px 0px 20px"; style.backgroundImage = "url('http://fantasticcontraption.com/images/fantastic_contraption_border.png')"; } var titlePic = document.getElementsByTagName("h1")[0]; //FC Logo with (titlePic) { style.display = "initial"; } var topText = document.getElementsByTagName("h2")[0]; //Fun online physic... etc. with (topText) { style.display = "block"; } inFullScreen = false; document.cookie = "fullscreen=no; expires=01 Jan 2999 00:00:00 UTC; path=/"; } }); centered.appendChild(fullScreenToggle); if (getCookie("fullscreen") == "yes") { fullScreenToggle.click(); } } addFullScreenButton(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////ADD LOCK BUTTON////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function addLockButton() { var lockToggle = document.createElement("img"); with (lockToggle) { src = unlockPic; id = "lockButton"; style.height = 32*scale+"px"; title = "Lock Page"; style.width = 32*scale+"px"; style.position = "absolute"; style.top = 4*scale+"px"; style.left = 40*scale+"px"; style.cursor = "pointer"; } lockToggle.addEventListener("click", function(event) { if (!pageLocked) { pageLocked = true; (window || unsafeWindow).onbeforeunload = function() { giveMessage("FC Enhance is locked."); return "This page is locked by FC Enhance."; }; giveMessage("Page locked."); this.src = lockPic; document.cookie = "locked=yes; expires=01 Jan 2999 00:00:00 UTC; path=/"; } else { pageLocked = false; window.onbeforeunload = defaultOnBeforeUnload; //Likely a blank string, or null giveMessage("Page unlocked."); this.src = unlockPic; document.cookie = "locked=no; expires=01 Jan 2999 00:00:00 UTC; path=/"; } }); //Let's set it to locked if the cookie says so centered.appendChild(lockToggle); if (getCookie("locked") == "yes") { lockToggle.click(); lockToggle.src = lockPic; } } addLockButton(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////INFO BOX AND RATING SYSTEM/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function getUseFlashVars() { //For creating the info box, now based on flashvars var fvars = contraption.getAttribute("flashvars");; //Get the type (level, design) and the id var key = fvars.split("=")[0]; if (!key) {return "No level/design to load info";} //Before we go on we should return if there is no key=value var value = fvars.split("=")[1].split("&")[0]; //We don't want to do any more if we don't have something for the type that we can deal with key = key.toUpperCase(); //For no case sensativity if (key != "LEVELID" && key != "DESIGNID") { return "Not a recognized type"; } var area = document.getElementsByClassName("centered")[0]; //First delete previous zone var prevZone = document.getElementById('zone'); if (prevZone) { area.removeChild(prevZone); } var zone = document.createElement("div"); area.appendChild(zone); //Add the zone element which we will be putting stuff inside zone.id = "zone"; var contentTitle = document.createElement("span"); contentTitle.innerHTML = "<br><br><br><h1 style = 'font-size:1em;'>Current " + (key == "DESIGNID" ? "Design" : "Level") + "</h1>"; zone.appendChild(contentTitle); //Name and author var contentName = document.createElement("span"); contentName.id = "contentName"; zone.appendChild(contentName); //This will be filled by an AJAX req later var contentAuthor = document.createElement("span"); contentAuthor.id = "contentAuthor"; zone.appendChild(contentAuthor); //This will be filled by an AJAX req later. Currently no way to do this var thumb = document.createElement("img"); thumb.id = "thumbnail"; thumb.style.width = "12%"; thumb.style.display = "block"; thumb.style.margin = "auto"; thumb.style.border = "1px solid black"; zone.appendChild(thumb); //FCR links now var links; switch (key) { case "LEVELID": links = "\ <div class = 'links'>\ <a href = 'http://fantasticcontraption.com/?levelId=" + value + "'>Reload this level</a><br />\ <a href = 'http://fc.sk89q.com/level?levelId=" + value + "'>Level on FCR</a><br />\ <a href = 'http://id36.ueuo.com/shw-dsgn-lvl.php?levelId=" + value + "'>Solutions</a><br />\ <a href = 'http://fc.sk89q.com/export?type=level&id=" + value + "&format=fcml'>FCML</a>\ </div>\ "; break; case "DESIGNID": links = "\ <div class = 'links'>\ <a id = 'playLink' href = '#'>Play this level</a><br />\ <a href = 'http://fc.sk89q.com/design?designId=" + value + "'>Design on FCR</a><br />\ <a href = 'http://fc.sk89q.com/export?type=design&id=" + value + "&format=fcml'>FCML</a>\ </div>\ "; break; } zone.innerHTML += links; with (document.getElementsByClassName('links')[0]) { style.textAlign = "left"; style.display = "inline-block"; } var emptyStarImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAASCAYAAACuLnWgAAAACXBIWXMAAA9hAAAPYQGoP6dpAAABmklEQVQ4jbXUsWpTYRTA8d9XaknTBmlSg4Pd1IqkCLq4CC7dnfoODuIr+BYO4gsILo4ahyq1bTahIlShs8akYk2CJM11+G7VtEluI3rgwnfO+Z/7vxcOX/BHJMldGbHIXJ3WOXwZB4bw8Nd5Kuutg1GqcSGhtDXJ1CSSFRrfWQo0Oqj8B0nxKTdW4vl6heKTfy25SrPLwpEQzYArpxmeHlLL4RIuE65RuElY5XwyiC0v8+k9/RccbJG8xYf06YyRFJ5xsBrBhUDpIvkcBcyGQXYpsCjy7Vs0PrLfjx84/xx3jsiBwXSFE26P+Mms6GEdScha4TKv0oFJBa+RlI93hknq9MtsTCDqifxhOc5nS1JRt8wmDk8h2BT5k4JxklQ09ZjPGZI6wqNRgiwJ5tbIZ0jymF8bR2RI2oWTks6xfBbts38rKdJuciZNv6Fa4x2q2zGHGbT3/b4OJpJUsEML6xvs/cA9vgbcZ68b6y2RG31hjpP0MM0uug+o51BLe9vUZ2J9V+RG7/s4yRvCSxoB1RFMNfZDVdzjofET5Zhz1MEgqqgAAAAASUVORK5CYII="; var fullStarImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAASCAYAAACuLnWgAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAB60lEQVQ4ja3UzU/TYBzA8e+zds86QbE6G92hEBAwZose/QPkaggm86wH0YPxIlfCWfwHDPGGkODLwaPCEYWpMRoSEzHEeEBjmehC3OjKHg/lsGpXWsKT9PB7ez59yyOUukmClaO643BEOwFsxB1KJRFYd8u83lKsu0tJxpIgRfJyi4sbgrysAYWDR765T7jvFAGYcgp8d+cOGjnLKdngRtWPrlfhpBTAmTjDekjOAPqBAeAcFe8CTTXEhz8q0LXwe5DioY9o4gXH9SXgPbC6e9VaW0Xg79r0nmHqQ8AqPxqCT7XTfHUN3tXh3vb/tzNmwPkM2LLOQPYzVroJ9PPLe85RfTgc8Zfi8hd4uhPnTQTXiAaPe0AgWtNh38TiUY8/kBSY6waB9W8pDHFIYTHbHR8a0WDWBk1YgBMH8SEpLB7acGkPaFiDaRtkKhSIQnyoqR5wrSsaudoFiql2wF4IVLwSa240suZCpVGKaolGTP0wb+rB3JgRjN/WwdQjHzcKOUan9pMZz48mO0D1lbljgepb5m6Hn5/2oFPbBMz9IAVghfEsuL2LlMxt4BZWWgC3uWI2cHsXGc8CrBBxYEYhHqAzmoO0mMDOGEB5t7aMnZGkxQSjOfCPJ28/yEtggbwUwHybnvmW+qt2G/0FAaiK7RPPbmEAAAAASUVORK5CYII="; var stars = document.createElement('div'); stars.innerHTML = "<i>Your vote is being cast for the " + (key == "LEVELID" ? "level on the right" : "design on the right") + ".</i><br />"; stars.style.display = "inline-block"; stars.style.marginLeft = -3*scale+"px"; var i; for (i = 0; i < 5; i++) { stars.innerHTML += "<img id = '" + i + "' src = '" + emptyStarImage + "' />"; } zone.appendChild(stars); for (i = 0; i < 5; i++) { document.getElementById(i).addEventListener('mouseover', function(event) { var obj = event.target; //The star that caused this var i; for (i = Number(obj.id); i >= 0; i--) { document.getElementById(i).src = fullStarImage; } }); document.getElementById(i).addEventListener('mouseout', function(event) { var obj = event.target; //The star that caused this var i; for (i = Number(obj.id); i >= 0; i--) { document.getElementById(i).src = emptyStarImage; } }); document.getElementById(i).addEventListener('click', function(event) { var rate = Number(event.target.id) + 1; //The star that caused this. Add one because star starts at 0. $.ajax({ type: "POST", url: "http://www.fantasticcontraption.com/setRating.php", data: { xml: "<setRating><" + (key == "LEVELID" ? "level" : "design") + "Id>" + value + "</" + (key == "LEVELID" ? "level" : "design") + "Id><qualityRating>" + rate + "</qualityRating><userId>" + getCookie("userid") + "</userId></setRating>" } }); giveMessage((key == "LEVELID" ? "Level" : "Design") + " rated " + rate + " " + (rate > 1 ? "stars" : "star") + "."); }); } $.ajax({ type: "POST", dataType: "xml", url: "http://fantasticcontraption.com/retrieveLevel.php", data: { id: value, loadDesign: (key == "DESIGNID" ? 1 : 0) }, success: function(data) { document.getElementById('contentName').innerHTML = data.getElementsByTagName('name')[0].innerHTML;// + "<br />"; document.getElementById('playLink').href = "http://fantasticcontraption.com/?levelId=" + data.getElementsByTagName('levelId')[0].innerHTML; } }); //Now let's load a screenshot if (key == "LEVELID") { GM_xmlhttpRequest({ method: "GET", dataType: "text", url: "http://id36.ueuo.com/shw-dsgn-lvl.php?levelId=" + value, onload: function(response) { parse(response); } }); } function parse(response) { srcXML = response.responseText; var dataURL = srcXML.match(/src='data:image.*?[\w=]'/g)[0]; //Match starting with the data: and ending in either an equals sign or a space. Nongreedy star. dataURL = dataURL.substring(5, dataURL.length-1); document.getElementById('thumbnail').src = dataURL; } } getUseFlashVars(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////REFRESH FLASH//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function createRefreshButton() { var refreshButton = document.createElement("img"); with (refreshButton) { id = "refreshButton"; title = "Refresh The Game!"; style.position = "absolute"; style.right = 4*scale+"px"; style.top = 4*scale+"px"; style.cursor = "pointer"; style.width = 32*scale+'px'; style.zIndex = "200"; title = "Game lagging? Click here to make it run quickly again. Does not reload the page. You will not lose your progress."; src = refreshPic; } function refreshSWF() { var contrap = getFlash(); contrap.Zoom(50); contrap.Zoom(0); giveMessage("Game refreshed."); this.blur(); //This will always work. So user doesn't reactivate upon hitting space to try to start contraption. contraption.focus(); //This only works for embed swf in IE. } refreshButton.addEventListener('click', refreshSWF); centered.appendChild(refreshButton); } createRefreshButton(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////BACKSPACE NAVIGATION PREVENTION////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// $(document).unbind('keydown').bind('keydown', function (event) { var doPrevent = false; if (event.keyCode === 8) { var d = event.srcElement || event.target; if ((d.tagName.toUpperCase() === 'INPUT' && ( d.type.toUpperCase() === 'TEXT' || d.type.toUpperCase() === 'PASSWORD' || d.type.toUpperCase() === 'FILE' || d.type.toUpperCase() === 'SEARCH' || d.type.toUpperCase() === 'EMAIL' || d.type.toUpperCase() === 'NUMBER' || d.type.toUpperCase() === 'DATE' ) ) || d.tagName.toUpperCase() === 'TEXTAREA' || d.tagName.toUpperCase() === 'EMBED' || d.tagName.toUpperCase() === 'OBJECT') { doPrevent = d.readOnly || d.disabled; } else { doPrevent = true; } } if (doPrevent) { event.preventDefault(); giveMessage("Backspace denied."); } }); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////HIDE ELEMENTS ON SCROLL////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function hide(el) { if (el == centered) { //Main game section el.style.width = 1*scale+"px"; el.style.height = 1*scale+"px"; el.style.overflow = "hidden"; //Hide position:absolute children var children = el.children; for (var i = 0; i < children.length; i++) { var child = children[i]; if (child.style.position == "absolute") { child.style.display = "none"; } } } else { el.style.display = "none"; } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////SHOW PAGES ON SCROLL///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function show(el) { if (el == centered) { el.style.width = "900px"; el.style.height = "initial"; el.style.overflow = "visible"; //Show position:absolute children var children = el.children; for (var i = 0; i < children.length; i++) { var child = children[i]; if (child.style.position == "absolute") { child.style.display = "initial"; } } } else { el.style.display = "block"; } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////ADD WEBPAGES///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function addPage(url, description, id, div) { var aPage = document.createElement("div"); aPage.className = "centered"; aPage.style.position = "absolute"; aPage.id = div; aPage.style.left = "0"; aPage.setAttribute("data-pagedescription", description); aPage.style.position = "absolute"; aPage.style.top = 45*scale+"px"; aPage.style.backgroundColor = "#2550FF"; aPage.style.left = "calc(50% - "+540*scale+"px)"; aPage.style.border = 15*scale+"px solid #2550FF"; aPage.style.borderRadius = 25*scale+"px"; aPage.style.height = 786.42857*scale+"px"; aPage.style.width = 1100*scale+"px"; var frame = document.createElement("iframe"); frame.src = url; frame.id = id; frame.style.height = "100%"; frame.style.width = "100%"; frame.style.backgroundColor = "#FFFFFF"; aPage.appendChild(frame); document.body.appendChild(aPage); hide(aPage); window.addEventListener("resize", function() { //This is all just to make sure the iframe resizes based on the window dimensions if (aPage == centered) return "We don't resize the main game page"; //If it is hidden, don't resize it var vw = unsafeWindow.innerWidth / 100; var vh = unsafeWindow.innerHeight / 100; }); window.dispatchEvent(new Event('resize')); //Set initial sizes based on window size } addPage("http://fc.sk89q.com/webfcml/", "FCML Editor", "editor", "editdiv"); addPage("http://id36.ueuo.com/", "Other Website", "otherSites", "otherdiv"); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////PAGE SCROLL CODE///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function getNextPage(direction) { //direction="right" or "left" var pages = document.getElementsByClassName("centered"); var hub = 0; hide(pages[currentPageNumber]); if (direction == "right") { if (currentPageNumber + 1 >= pages.length) { currentPageNumber = 0; } else { currentPageNumber += 1; } } if (direction == "left") { if (currentPageNumber - 1 < 0) { currentPageNumber = pages.length - 1; } else { currentPageNumber -= 1; } } show(pages[currentPageNumber]); if (currentPageNumber == 0){ if(document.getElementById("sHubs").checked){ document.getElementById('lateHub').style.display = 'none'; document.getElementById('TopHub').style.display = 'none'; document.getElementById('dsgHub').style.display = 'none'; document.getElementById('cAmt').style.display = 'none'; document.getElementById('cInput').style.display = 'none'; document.getElementById('ctitle').style.display = 'none'; document.getElementById('cSubmit').style.display = 'none'; document.getElementById('resetHub').style.display = "none"; }else{ document.getElementById('lateHub').style.display = 'block'; document.getElementById('TopHub').style.display = 'none'; document.getElementById('dsgHub').style.display = 'none'; document.getElementById('cAmt').style.display = 'block'; document.getElementById('cInput').style.display = 'block'; document.getElementById('ctitle').style.display = 'block'; document.getElementById('cSubmit').style.display = 'block'; document.getElementById('resetHub').style.display = "block"; } if(document.getElementById("sLvl").checked){ document.getElementById("randLevelHub").style.display = 'none'; }else{ document.getElementById("randLevelHub").style.display = 'block'; } if(document.getElementById("sChat").checked){ document.getElementById("chatHub").style.display = 'none'; }else{ document.getElementById("chatHub").style.display = 'block'; } if(document.getElementById("sScroll").checked){ document.getElementById("leftBtn").style.display = 'none'; document.getElementById("rightBtn").style.display = 'none'; document.getElementById("pageDescription").style.display = 'none'; }else{ document.getElementById("leftBtn").style.display = 'block'; document.getElementById("rightBtn").style.display = 'block'; document.getElementById("pageDescription").style.display = 'block'; } } if (currentPageNumber != 0){ document.getElementById('chatHub').style.display = 'none'; document.getElementById('tweakBtn').src = btnOff; btnState = "Off"; document.getElementById('rArrow').style.display = 'none'; } if (currentPageNumber == 1){ document.getElementById('fcmlHub').style.display = 'block'; if(document.getElementById("editor").src == "http://fc.sk89q.com/webfcml/"){ document.getElementById('fcmlHubE').style.display = 'block'; } } if (currentPageNumber != 1){ document.getElementById('fcmlHub').style.display = 'none'; document.getElementById('fcmlHubE').style.display = 'none'; } if (currentPageNumber == 2){ document.getElementById("iframeHub").style.display = "block"; document.getElementById('rArrow').style.display = 'none'; } if (currentPageNumber != 2){ document.getElementById("iframeHub").style.display = "none"; } if (currentPageNumber < 100){ document.getElementById("leftBtn").style.display = "block"; document.getElementById("rightBtn").style.display = "block"; document.getElementById("pageDescription").style.display = "block"; document.getElementById("sHub").style.display = 'none'; } document.getElementById("pageDescription").innerHTML = pages[currentPageNumber].getAttribute("data-pagedescription"); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////SCROLL ELEMENTS////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function addScrollElements() { var leftButton = document.createElement("img"); var rightButton = document.createElement("img"); var centerDescOffset = 13*scale; leftButton.style.width = 2.5*scale+"em"; rightButton.style.width = 2.5*scale+"em"; leftButton.id = "leftBtn"; rightButton.id = "rightBtn"; leftButton.style.cursor = "pointer"; rightButton.style.cursor = "pointer"; leftButton.style.position = "absolute"; rightButton.style.position = "absolute"; leftButton.style.top = 0*scale+"px"; leftButton.style.right = 275*scale+"px"; rightButton.style.top = 0*scale+"px"; rightButton.style.right = 90*scale+"px"; leftButton.src = leftArrowPic; rightButton.src = rightArrowPic; var pageName = document.createElement("div"); pageName.style.position = "absolute"; pageName.style.width = 160*scale+"px"; pageName.style.top = "0px"; pageName.style.right = 120*scale+"px"; pageName.style.fontSize = 0.9*scale+"em"; pageName.id = "pageDescription"; pageName.innerHTML = centered.getAttribute("data-pagedescription"); pageName.style.textAlign = "center"; leftButton.addEventListener("click", function() { getNextPage("left"); }); rightButton.addEventListener("click", function() { getNextPage("right"); }); centered.appendChild(leftButton); centered.appendChild(pageName); centered.appendChild(rightButton); } addScrollElements(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////TEXTFIELD BUTTON WIDGET////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function addInputWidget(leftAmount, topAmount, titleText, actionText, callback) { //Add the base DIV var section = document.createElement('div'); //Create the surrounding div section.style.position = "absolute"; //Positioning section.style.top = topAmount*scale; //etc. section.style.left = leftAmount*scale; //etc. section.style.width = 284*scale+"px"; section.style.textAlign = "center"; //Center everything document.body.appendChild(section); //Add the div to the document. It will not dissapear when other pages are requested //Add a title var title = document.createElement("h4"); //Just a text element title.innerHTML = titleText; //Text to show section.appendChild(title); //Create a box to enter some input! var input = document.createElement("input"); //Create the input input.type = "text"; //Textbox input.style.padding = 5*scale+"px"; //Just some styles input.style.borderRadius = 5*scale+"px"; input.style.border = "none"; input.style.height = 30*scale+"px"; //Now create a button to save the info var submit = document.createElement("input"); //Create the button. May want to replace with an image later because images>buttons submit.type = "button"; //Button submit.value = actionText; //What the button says submit.style.marginLeft = 5*scale+"px"; submit.style.padding = 5*scale+"px"; submit.style.border = "none"; submit.style.borderRadius = 5*scale+"px"; submit.style.height = 40+scale+"px"; submit.style.cursor = "pointer"; //Set cursor to pointer, to make it obvious it is clickable input.addEventListener("keypress", function(event) { //So pressing ENTER submits the thing if (event.keyCode == 13) { submit.click(); } }); //Now create an invisible submit button so by default pressing ENTER will submit.addEventListener('click', function() { if (!input.value) return false; //If blank was entered callback(input.value); }); //Now add the things section.appendChild(input); section.appendChild(submit); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////RED ARROW BLOCKER//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function addRedArrowBlocker() { var blocker = document.createElement("div"); var boundingSWF = document.getElementById('contraption').getBoundingClientRect(); with (blocker) { style.width = 90*scale+"px"; style.height = 90*scale+"px"; style.left = (boundingSWF.right - 60*scale) + "px"; style.top = (boundingSWF.top + 15*scale) + "px"; style.backgroundImage = "url('http://i.imgur.com/FXfHqwG.png')"; style.backgroundSize= "100% auto"; style.borderRadius = 35*scale+"px"; style.position = "absolute"; style.display = "none"; style.zIndex = "200"; id = "rArrow"; } function drag(e) { var diffX = cursorOffsetX - (e.clientX - Number(blocker.style.left.split('p')[0])); var diffY = cursorOffsetY - (e.clientY - Number(blocker.style.top.split('p')[0])); var dist = Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)); if (dist > 20) { blocker.style.top = e.clientY - cursorOffsetY + "px"; blocker.style.left = e.clientX - cursorOffsetX + "px"; } } function addDrag(e) { window.addEventListener("mousemove", drag); } document.body.appendChild(blocker); blocker.addEventListener("mousedown", function(e) { cursorOffsetX = e.clientX - Number(blocker.style.left.split('p')[0]); cursorOffsetY = e.clientY - Number(blocker.style.top.split('p')[0]); addDrag(e); }); window.addEventListener("mouseup", function() { window.removeEventListener('mousemove', drag); }); } addRedArrowBlocker(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////VARIABLES FOR HUBS/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var topLvlListId = []; var topLvlListName = []; var lateLvlListId = []; var lateLvlListName = []; var dsgId = []; var dsgName = []; var dsgUser = []; var topItr = 0; var lateItr = 0; var maxL = 5; var contHolder = ""; var lBtn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAdCAYAAAEhlFeZAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAABR1JREFUeNpi+P//P8OfBmYQPgNiM4IIhreM//8dZmL4/4CRgeVvI0sjoxITAwMXAwNz7F8GBqiW///fMPwH0vEAAQQTOAMyB6z9Tz9EFozBhgIZ//YBDbzGyAAETSDl8VD9YBUAAQQz48TfmUxwrSA2SAxiZgPzTLAx54Buu8n4/+8aoGQ33BUzISY0Iiz+0weVbGT+j/AZEAA9BKICGSBgPXP9HzADIIDACqCS3kC8BYh9gJJbwbLIvoZbAXM9ssS/XYwoCpjA2r8CTXjLyMCoDLRiCjMDDIAt+/+VkeH/aSAWZoSI/oJQYJ2MYv8ZmLz/Ae0ABn8qMPjZoFphDvp3HmIfiIY5iAWqhvHfRrAh+UA8EeZPgACCBwQ0MDKA1HQG3CATqHEGjAMLpBAgezWT0z8GRq3/OHWCohsU7UAQCjRkDSPQfVpAzlXmbKBHGNEUnwMqPgZUzAv0aPxfqCDQhVPBwaUN8tNkiBuAgvOAgt+wWPmZARy+TLZAl+nDXTYZpNkTiH+CIoI56S+qpvdATUshkcIcB5Tjg0QYFPjA/KwP5FwAx0fYP5x+/rcKmMxfgf1mAPTzRfTQlgBSz/GEtiRQ0wsYByAAH1XP0kAQRHcnSCAJWoldirRWKUxjc7YWVvofDKRLb9DeHxK0kDQR/4H+BLGyOSSCJEVIkdv17exObm8hNzBwOzdvP968mVSzfEP4I/w6rJ/hY4Aqb0qBtuZEBbCuCFLtyIcIb8DkSRVvf1CqJ3KbWwELSZzZGBV1B+5awIEJoBEvhgloBTbnYHNRKkVyHIZYEO1ASWyIudFlpgB/6pK2thcDC5IGvob2G42XaxaB/dN+xCHZvAH85cGS68k5ws934o7dK4JXUo3bgnNLIMpOfaPMlvg0jnbA3KHlDSFOpU+tj+cR0Hxgt7NC0XlVduYlgHqQ5IX/53JldmSugkGLpQFgl5rfRJeBg18tEsmkjhssmtwprQi8jSSyDm2IKOp4EEuOP3QX17pKrjwjZjyWXarVe/jdHmIfAJrUdYez43i6wxcy+cT+Bai0en4ZCKLwbLcpIhEi0YY6aIqEi4v4eRRc9IaDEwfu/hB3PXByoDdOoolIhEsPIioR4qIcOAmypLHjezOz29ntdluTvMx2Zjrfmzff+954clLLTeczTaoH22SNty1SUQA91FpQC/SA1NGzsIeL2LFefLdySdsvWSbYk2LscxX5cgBfCgUF2A66VXdyFBc0ZrP/tgD27wJ8zV8jiBslWEIMjgBsug6YLRWcNcGaayw5B/iVC05SmST1cy7v3gGMzEG4+kOFT4SRcpVZyvNOhH5KhV9r5DiPY+2xyK6EwklRQVvHx7b483AlDRtp/BobFiKVOoZEoxQ3Br3g9ilOXHRPvEEnzbix7uPuSfgd7NGQlRXhM2Jc6t6vEnNTjXdwxstYVJZZbJ/AiQLA520RAWdfDTRDoJZHBpga+ZCaIgAs6nzMNJQaxQJC8CmLL2tXznnT1CLQrFPq+A2eT2numiDLjyKNo/CmAqP+HVNnFbkRvqQUCdu0ayh6HM467L3Aj4mG75XCmNfA4IQxgP+N20LjQ+7zEuyd1KXMBSYvzUVcXksIMAnDiyFeTfQ0kY9GPYjYM2eKYqoDBonDArpDd4DYOAtCJHnjjC4Zom76XmYZAB7Vk8EZdHuwLs8EsbWbywhEFUEsdeLvqm1eYSsAy/snojUcpoVxrWqQ6C9j4yGRRsHtFravxP4tLBp/SOukRRARfxgAAAAASUVORK5CYII="; var dBtn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAMAAAANmfvwAAAAbFBMVEUAzAACxA8GtC8JrT8EvB8Sjn8fX98kUP8dZ88Wfp9XYOM9WPFwaNXkjJfxkZENnV/Sfn6HUVG0bGyKcMgAAABpPz+WWloeEhIPCQnhh4dLLS3DdXU8JCR4SEilY2MtGxtaNjYwVPghV+8PlW+2AEVVAAAAAnRSTlMAAHaTzTgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAEySURBVDjLjZTrgoIgEIUho8kyC0RFcbet3v8dd0ARBXH3/AFnPm4DR0KMDllGQh2z7OD6lJ0goROjljjDjs6GyU3vcomzVxvLcRJsilu5qVuBSUruiMfJBxe2vQLcCQOoYkJKWZtOBcC2EY6InBGCy0VIg0Rre5idEYyqbiI6rqTsdYgMOJCPhFDSqgkQE/sa9zoRUn6vEdxhOy40OMKs7BHxtKGf6cBOjUe0i/VlqQcvj3TtPI4Hx3dI46duE8iwWF5sI+EN1b34A1FjSfYQX8UkgltTeg951FhG5XazhXRqdbQNpHvOF6QTCPcV6h0SPMxlFRdvt1ggWnjhZ2GQDOCVsBEa6QWAbn+vp1kJJ3mjYZnxZhUbpawqNJrxyH9sT2ieJnLq/jYfxuI0Y5+jyf4C80c40pSTUtsAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDktMTZUMTA6MDE6MTYtMDU6MDA+zJb2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA5LTE2VDEwOjAxOjE2LTA1OjAwT5EuSgAAAABJRU5ErkJggg=="; var hBtn = "data:image/png;base64,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"; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////LATEST HUB/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var lateHub = document.createElement("div"); lateHub.style.position = "absolute"; lateHub.style.display = "block"; lateHub.style.borderStyle = "solid"; lateHub.style.borderRadius = 25*scale+"px"; lateHub.style.borderColor = "blue"; lateHub.style.top = 48*scale+"px"; lateHub.style.left = 20*scale+"px"; lateHub.style.backgroundImage = "url('http://i67.tinypic.com/w6w514.jpg')"; lateHub.style.width = locationBox.left - 50+"px"; if(locationBox.left - 50 > 320){ lateHub.style.width = "320px" } lateHub.style.height="85%"; lateHub.id = "lateHub"; lateHub.innerHTML = "<img src ='http://i68.tinypic.com/2m5hvh1.gif' width='100%' title= 'Switch to Top Levels' id='displayTop'>"; centered.appendChild(lateHub); //------Create Area where Levels Generate var lateInnerHub = document.createElement("div"); lateInnerHub.style.position = "absolute"; lateInnerHub.id = "lateInnerHub"; lateInnerHub.style.width = locationBox.left - 50+"px"; if(locationBox.left - 50 > 320){ lateInnerHub.style.width = "320px" } lateInnerHub.style.overflowY = "auto"; lateInnerHub.style.maxHeight="85%"; lateHub.appendChild(lateInnerHub); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////TOP HUB////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var TopHub = document.createElement("div"); TopHub.style.position = "absolute"; TopHub.style.display = "none"; TopHub.style.borderStyle = "solid"; TopHub.style.borderRadius = 25*scale+"px"; TopHub.style.borderColor = "blue"; TopHub.style.top = 48*scale+"px"; TopHub.style.left = 20+scale+"px"; TopHub.style.backgroundImage = "url('http://i67.tinypic.com/w6w514.jpg')"; TopHub.style.width = locationBox.left - 50+"px"; if(locationBox.left - 50 > 320){ TopHub.style.width = "320px" } TopHub.style.height="85%"; TopHub.id = "TopHub"; TopHub.innerHTML = "<img src='http://i63.tinypic.com/2uixhg8.gif' width='100%' title='Switch to Latest Levels' id='displayLatest'>"; centered.appendChild(TopHub); //-----Create area where levels generate var lateTopHub = document.createElement("div"); lateTopHub.style.position = "absolute"; lateTopHub.id = "TopInnerHub"; lateTopHub.style.overflowY = "auto"; lateTopHub.style.width = locationBox.left - 50+"px"; if(locationBox.left - 50 > 320){ lateTopHub.style.width = "320px" } lateTopHub.style.maxHeight="85%"; TopHub.appendChild(lateTopHub); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////DESIGN HUB/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var dsgHub = document.createElement("div"); dsgHub.style.position = "absolute"; dsgHub.style.display = "none"; dsgHub.style.borderStyle = "solid"; dsgHub.style.borderRadius = "25px"; dsgHub.style.borderColor = "blue"; dsgHub.style.backgroundImage = "url('http://i67.tinypic.com/w6w514.jpg')"; dsgHub.style.top = 48*scale+"px"; dsgHub.style.left = 20*scale+"px"; dsgHub.style.width = locationBox.left - 50+"px"; if(locationBox.left - 50 > 320){ dsgHub.style.width = "320px" } dsgHub.style.height="85%"; dsgHub.id = "dsgHub"; dsgHub.innerHTML = "<img src='http://i67.tinypic.com/imjmzo.gif' width='100%' title='Click to go Back' id='backBtn'>"; centered.appendChild(dsgHub); //-----Create area where designs generate var dsgInnerHub = document.createElement("div"); dsgInnerHub.style.position = "absolute"; dsgInnerHub.id = "dsgInnerHub"; dsgInnerHub.style.overflowY = "auto"; dsgInnerHub.style.maxHeight="85%"; dsgInnerHub.style.width = locationBox.left - 50+"px"; if(locationBox.left - 50 > 320){ dsgInnerHub.style.width = "320px" } dsgInnerHub.style.textAlign="left"; dsgHub.appendChild(dsgInnerHub); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////HUB TOGGLE CODE////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// document.getElementById("displayLatest").onclick = function(){ document.getElementById('lateHub').style.display = 'block'; document.getElementById('TopHub').style.display = 'none'; document.getElementById('dsgHub').style.display = 'none'; }; document.getElementById("displayTop").onclick = function(){ document.getElementById('TopHub').style.display = 'block'; document.getElementById('lateHub').style.display = 'none'; document.getElementById('dsgHub').style.display = 'none'; }; document.getElementById("backBtn").onclick = function(){ document.getElementById('lateHub').style.display = 'block'; document.getElementById('TopHub').style.display = 'none'; document.getElementById('dsgHub').style.display = 'none'; }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////HUB REFRESH BUTTON/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var reset = document.createElement("input"); reset.type = "image"; reset.src = hBtn; reset.title = "Reset Hub"; reset.style.height = 40*scale+"px"; reset.style.width = 40*scale+"px"; reset.style.padding = "0px"; reset.id = "resetHub"; reset.style.position = "absolute"; reset.style.top = "0px"; reset.style.left = 72*scale+"px"; reset.style.display = "none"; centered.appendChild(reset); document.getElementById("resetHub").onclick = function(){ if (pageLocked) { giveMessage("You cannot do that while the page is locked."); } else { var r = confirm("Refreshing the Hub will refresh the game. All current designs will be lost. Are you sure you want to continue?"); if(r == true){ contHolder = ctr.innerHTML; document.getElementsByClassName("border")[0].style.backgroundImage = "url('http://fantasticcontraption.com/images/fantastic_contraption_border.png')"; ctr.innerHTML = "<center><br><br><h1>Please Wait While Hubs Load</h1><br><br><h2>This may take a minute depending on the size of the levels.<br>Thank you for your patience!</h2><br><br><br><h4>--FC Enhance Development Team</h4></center>"; lateItr = 0; topItr = 0; resetHub(); }else{ giveMessage("The Hub Was Not Refreshed"); } } }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////SETTINGS BOX///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var settingFC = document.createElement("input"); settingFC.type = "image"; settingFC.src = settingsBtn; settingFC.title = "Settings"; settingFC.style.height = 40*scale+"px"; settingFC.style.width = 40*scale+"px"; settingFC.style.padding = "0px"; settingFC.id = "settingsHub"; settingFC.style.position = "absolute"; settingFC.style.top = "0px"; settingFC.style.right = 45*scale+"px"; centered.appendChild(settingFC); var sHub = document.createElement("div"); sHub.style.position = "absolute"; sHub.id = "sHub"; sHub.style.top = "0px"; sHub.style.left = 25*scale+"%"; sHub.style.zIndex = "202"; sHub.style.height = "234px"; sHub.style.width = "900px"; sHub.style.backgroundSize="cover"; sHub.style.backgroundImage = "url('http://i.imgur.com/UIFAk04.png')"; sHub.style.display = "none"; sHub.class = "centered"; centered.appendChild(sHub); document.getElementById("settingsHub").onclick = function (){ if (sHub.style.display == "none"){ sHub.style.display = "block"; }else{ sHub.style.display = "none"; } }; sHub.innerHTML = '<br><form action="" id="sForm"><h1>Hide Features On Page</h1><br><input type="checkbox" value="hubs" id="sHubs">Level Hubs <input type="checkbox" value="rLvl" id="sLvl">Random Level Hub <input type="checkbox" value="chat" id="sChat">Chat Hub <input type="checkbox" value="lvlScroll" id="sScroll">Feature Scroll</form>'; //Start doing stuff when boxes are checked document.getElementById("sHubs").onclick = function (){ if(document.getElementById("sHubs").checked){ document.getElementById('lateHub').style.display = 'none'; document.getElementById('TopHub').style.display = 'none'; document.getElementById('dsgHub').style.display = 'none'; document.getElementById('cAmt').style.display = 'none'; document.getElementById('cInput').style.display = 'none'; document.getElementById('ctitle').style.display = 'none'; document.getElementById('cSubmit').style.display = 'none'; document.getElementById('resetHub').style.display = "none"; }else{ document.getElementById('lateHub').style.display = 'block'; document.getElementById('TopHub').style.display = 'none'; document.getElementById('dsgHub').style.display = 'none'; document.getElementById('cAmt').style.display = 'block'; document.getElementById('cInput').style.display = 'block'; document.getElementById('ctitle').style.display = 'block'; document.getElementById('cSubmit').style.display = 'block'; document.getElementById('resetHub').style.display = "block"; } }; document.getElementById("sLvl").onclick = function (){ if(document.getElementById("sLvl").checked){ document.getElementById("randLevelHub").style.display = 'none'; }else{ document.getElementById("randLevelHub").style.display = 'block'; } }; document.getElementById("sChat").onclick = function (){ if(document.getElementById("sChat").checked){ document.getElementById("chatHub").style.display = 'none'; }else{ document.getElementById("chatHub").style.display = 'block'; } }; document.getElementById("sScroll").onclick = function (){ if(document.getElementById("sScroll").checked){ document.getElementById("leftBtn").style.display = 'none'; document.getElementById("rightBtn").style.display = 'none'; document.getElementById("pageDescription").style.display = 'none'; }else{ document.getElementById("leftBtn").style.display = 'block'; document.getElementById("rightBtn").style.display = 'block'; document.getElementById("pageDescription").style.display = 'block'; } }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////FCML EXPORT HUB////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var fcmlHub = document.createElement("div"); fcmlHub.style.position = "absolute"; fcmlHub.style.display = "none"; fcmlHub.style.borderStyle = "solid"; fcmlHub.style.borderRadius = 25*scale+"px"; fcmlHub.style.borderColor = "blue"; fcmlHub.style.backgroundImage = "url('http://i67.tinypic.com/w6w514.jpg')"; fcmlHub.style.top = 48*scale+"px"; fcmlHub.style.right = 20*scale+"px"; fcmlHub.style.width = 320*scale+"px"; fcmlHub.style.height="85%"; fcmlHub.id = "fcmlHub"; centered.appendChild(fcmlHub); fcmlHub.innerHTML = "<center><div id = 'fcmlInnerHub'><h1>FCML EXPORT HUB</h1></div><center>"; document.getElementById("fcmlInnerHub").style.height = "100%"; document.getElementById("fcmlInnerHub").style.overflowY = "auto"; var exportInput = document.createElement("input"); exportInput.type = "text"; exportInput.id = "exportInput"; exportInput.style.width = "95%"; exportInput.style.borderRadius = 5*scale+"px"; exportInput.style.border = 5*scale+"px"; exportInput.style.textAlign = "center"; exportInput.style.height = 30*scale+"px"; document.getElementById("fcmlInnerHub").appendChild(exportInput); var exportButton = document.createElement("input"); exportButton.type = "submit"; exportButton.id = "exportButton"; exportButton.style.width = "95%"; exportButton.style.borderRadius = 5*scale+"px"; exportButton.style.border = 5*scale+"px"; exportButton.value = "Enter Level ID and Click for FCML Export"; document.getElementById("fcmlInnerHub").appendChild(exportButton); var exportFrame = document.createElement("iframe"); exportFrame.id = "exportFrame"; exportFrame.src = ""; exportFrame.width = "90%"; exportFrame.height = 575*scale+"px"; exportFrame.style.overflowY = "auto"; document.getElementById("fcmlInnerHub").appendChild(exportFrame); var exportClear = document.createElement("input"); exportClear.type = "submit"; exportClear.id = "exportClear"; exportClear.style.width = "95%"; exportClear.value = "Clear FCML"; exportClear.style.borderRadius = 5*scale+"px"; exportClear.style.border = 5*scale+"px"; exportClear.style.display = "none"; document.getElementById("fcmlInnerHub").appendChild(exportClear); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////EDITOR TOGGLE BUTTON///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var switchEditor = document.createElement("input"); switchEditor.type = "submit"; switchEditor.id = "switchEditor"; switchEditor.style.width = "95%"; switchEditor.style.height= '30px'; switchEditor.style.margin = "5px"; switchEditor.value = "Switch Editors"; switchEditor.style.borderRadius = 5*scale+"px"; switchEditor.style.border = 5*scale+"px"; document.getElementById("fcmlHub").appendChild(switchEditor); //Do stuff to load the FCML export document.getElementById("exportButton").onclick = function() { var exportId = document.getElementById("exportInput").value; if (exportId % 1 === 0 && !isNaN(exportId) && exportId.length > 0){ $.ajax({ type: "POST", dataType: "xml", url: "http://fantasticcontraption.com/retrieveLevel.php", data: { id: exportId, }, error: function(data){ alert("Unabale to load FCML for ID: "+exportId+" due to corrupted level data!\nIf you feel this is an error, please contact FC Enhance development team."); document.getElementById("exportFrame").src = ""; }, success: function(data) { var x = data.getElementsByTagName('levelId'); var y = x[0].innerHTML; if(y == exportId){ document.getElementById("exportFrame").src = "http://fc.sk89q.com/export?type=level&id=" + exportId + "&format=fcml"; document.getElementById("exportFrame").style.backgroundColor = "#87BEF1"; document.getElementById("exportClear").style.display = "block"; }else{ alert("ID does not Exist!"); document.getElementById("exportFrame").src = ""; } } }); }else{ alert("Please Enter A Valid ID!"); } }; //Do stuff to clear FCML document.getElementById("exportClear").onclick = function() { document.getElementById("exportFrame").src = ""; document.getElementById("exportFrame").style.backgroundColor = ""; document.getElementById("exportClear").style.display = "none"; document.getElementById("exportInput").value = ""; }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////SWITCH EDITORS/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// document.getElementById("switchEditor").onclick = function() { var currentEditor = document.getElementById("editor").src; var conf = confirm("Switching Editors Will Result In Loss of Work!\n\n Do You Wish To Continue?"); if(conf){ if(currentEditor == "http://fc.sk89q.com/webfcml/"){ document.getElementById("fcmlInnerHub").style.display = 'none'; document.getElementById("fcmlHub").style.height = '35px'; document.getElementById("fcmlHubE").style.display = 'none'; document.getElementById("editor").src = 'http://editor.eu5.org/'; document.getElementById("editdiv").style.left = "calc(50% - "+840*scale+"px)"; document.getElementById("editdiv").style.width = 1400*scale+"px"; }else{ document.getElementById("fcmlHub").style.height = '85%'; document.getElementById("fcmlInnerHub").style.display = 'block'; document.getElementById("fcmlHubE").style.display = 'block'; document.getElementById("editor").src = 'http://fc.sk89q.com/webfcml/'; document.getElementById("editdiv").style.left = "calc(50% - "+540*scale+"px)"; document.getElementById("editdiv").style.width = 1100*scale+"px"; } } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////FCML CONVERSION HUB////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var fcmlHubE = document.createElement("div"); fcmlHubE.style.position = "absolute"; fcmlHubE.style.display = "none"; fcmlHubE.style.borderStyle = "solid"; fcmlHubE.style.borderRadius = 25*scale+"px"; fcmlHubE.style.borderColor = "blue"; fcmlHubE.style.backgroundImage = "url('http://i67.tinypic.com/w6w514.jpg')"; fcmlHubE.style.top = 48*scale+"px"; fcmlHubE.style.left = 20*scale+"px"; fcmlHubE.style.width = 360*scale+"px"; fcmlHubE.style.height="85%"; fcmlHubE.id = "fcmlHubE"; centered.appendChild(fcmlHubE); fcmlHubE.innerHTML = "<center><div id = 'fcmlInnerHubE'><h1>FCML Special Piece Conversion</h1></div><center>"; document.getElementById("fcmlInnerHubE").style.height = "100%"; document.getElementById("fcmlInnerHubE").style.width = "90%"; document.getElementById("fcmlInnerHubE").style.overflowY = "auto"; var hr1 = document.createElement("hr"); hr1.style.borderStyle = "inset"; hr1.style.borderWidth = 5*scale+"px"; hr1.style.borderColor = "#87BEF1"; document.getElementById("fcmlInnerHubE").appendChild(hr1); var pgpTitle = document.createElement("h4"); //Just a text element pgpTitle.innerHTML = "Powered wheels ➞ Powered goal pieces"; //Text to show pgpTitle.id = "pgpTitle"; document.getElementById("fcmlInnerHubE").appendChild(pgpTitle); var exportPGP = document.createElement("input"); exportPGP.type = "text"; exportPGP.value = "Enter an ID"; exportPGP.id = "exportPGP"; exportPGP.style.width = "35%"; exportPGP.style.borderRadius = 5*scale+"px"; exportPGP.style.border = 5*scale+"px"; exportPGP.style.textAlign = "center"; exportPGP.style.height = 20*scale+"px"; document.getElementById("fcmlInnerHubE").appendChild(exportPGP); var PGPButton = document.createElement("input"); PGPButton.type = "submit"; PGPButton.id = "PGPButton"; PGPButton.style.borderRadius = 5*scale+"px"; PGPButton.style.border = 5*scale+"px"; PGPButton.value = "Convert!"; PGPButton.style.height = 20*scale+"px"; document.getElementById("fcmlInnerHubE").appendChild(PGPButton); var exportPGP2 = document.createElement("input"); exportPGP2.type = "text"; exportPGP2.id = "exportPGP2"; exportPGP2.style.width = "35%"; exportPGP2.style.borderRadius = 5*scale+"px"; exportPGP2.style.border = 5*scale+"px"; exportPGP2.style.textAlign = "center"; exportPGP2.style.height = 20*scale+"px"; document.getElementById("fcmlInnerHubE").appendChild(exportPGP2); document.getElementById("PGPButton").onclick = function(){ var levelId = document.getElementById("exportPGP").value; if (levelId % 1 === 0 && !isNaN(levelId) && levelId.length > 0){ GM_xmlhttpRequest({ method: "POST", dataType: "xml", url: "http://id36.ueuo.com/ver-fcml-pgp.php", data: "levelid="+levelId+"", headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function(response) { var x = response.responseText; var y = x.match(/<div.+?(?=<\/div>)/g); if(y){ x = x.split(y[0]).pop(); x = x.split("<img").pop(); x = x.split("</div>").pop(); x.split("\n").pop(); document.getElementById("exportPGP2").value = x; document.getElementById("exportPGP").value = "SUCCESS!!!!"; setTimeout(function(){ document.getElementById("exportPGP").value = "Enter an ID"; }, 1000); }else{ document.getElementById("exportPGP2").value = x; document.getElementById("exportPGP").value = "SUCCESS!!!!"; setTimeout(function(){ document.getElementById("exportPGP").value = "Enter an ID"; }, 1000); } } }); }else{ alert("Please Enter A Valid ID!"); } }; var PinTitle = document.createElement("h4"); //Just a text element PinTitle.innerHTML = "(Powered) wheels ➞ Pins"; //Text to show PinTitle.id = "PinTitle"; document.getElementById("fcmlInnerHubE").appendChild(PinTitle); var exportPin = document.createElement("input"); exportPin.type = "text"; exportPin.value = "Enter an ID"; exportPin.id = "exportPin"; exportPin.style.width = "35%"; exportPin.style.borderRadius = 5*scale+"px"; exportPin.style.border = 5*scale+"px"; exportPin.style.textAlign = "center"; exportPin.style.height = 20*scale+"px"; document.getElementById("fcmlInnerHubE").appendChild(exportPin); var PinButton = document.createElement("input"); PinButton.type = "submit"; PinButton.id = "PinButton"; PinButton.style.borderRadius = 5*scale+"px"; PinButton.style.border = 5*scale+"px"; PinButton.value = "Convert!"; PinButton.style.height = 20*scale+"px"; document.getElementById("fcmlInnerHubE").appendChild(PinButton); var exportPin2 = document.createElement("input"); exportPin2.type = "text"; exportPin2.id = "exportPin2"; exportPin2.style.width = "35%"; exportPin2.style.borderRadius = 5*scale+"px"; exportPin2.style.border = 5*scale+"px"; exportPin2.style.textAlign = "center"; exportPin2.style.height = 20*scale+"px"; document.getElementById("fcmlInnerHubE").appendChild(exportPin2); document.getElementById("PinButton").onclick = function(){ var levelId = document.getElementById("exportPin").value; if (levelId % 1 === 0 && !isNaN(levelId) && levelId.length > 0){ GM_xmlhttpRequest({ method: "POST", dataType: "xml", url: "http://id36.ueuo.com/ver-fcml-pin.php", data: "levelid="+levelId+"", headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function(response) { var x = response.responseText; var y = x.match(/<div.+?(?=<\/div>)/g); if(y){ x = x.split(y[0]).pop(); x = x.split("<img").pop(); x = x.split("</div>").pop(); x.split("\n").pop(); document.getElementById("exportPin2").value = x; document.getElementById("exportPin").value = "SUCCESS!!!!"; setTimeout(function(){ document.getElementById("exportPin").value = "Enter an ID"; }, 1000); }else{ document.getElementById("exportPin2").value = x; document.getElementById("exportPin").value = "SUCCESS!!!!"; setTimeout(function(){ document.getElementById("exportPin").value = "Enter an ID"; }, 1000); } } }); }else{ alert("Please Enter A Valid ID!"); } }; var GhostTitle = document.createElement("h4"); //Just a text element GhostTitle.innerHTML = "Dynamic pieces ➞ Ghost pieces"; //Text to show GhostTitle.id = "GhostTitle"; document.getElementById("fcmlInnerHubE").appendChild(GhostTitle); var exportGhost = document.createElement("input"); exportGhost.type = "text"; exportGhost.value = "Enter an ID"; exportGhost.id = "exportGhost"; exportGhost.style.width = "35%"; exportGhost.style.borderRadius = "5px"; exportGhost.style.border = "5px"; exportGhost.style.textAlign = "center"; exportGhost.style.height = "20px"; document.getElementById("fcmlInnerHubE").appendChild(exportGhost); var GhostButton = document.createElement("input"); GhostButton.type = "submit"; GhostButton.id = "GhostButton"; GhostButton.style.borderRadius = "5px"; GhostButton.style.border = "5px"; GhostButton.value = "Convert!"; GhostButton.style.height = "20px"; document.getElementById("fcmlInnerHubE").appendChild(GhostButton); var exportGhost2 = document.createElement("input"); exportGhost2.type = "text"; exportGhost2.id = "exportGhost2"; exportGhost2.style.width = "35%"; exportGhost2.style.borderRadius = "5px"; exportGhost2.style.border = "5px"; exportGhost2.style.textAlign = "center"; exportGhost2.style.height = "20px"; document.getElementById("fcmlInnerHubE").appendChild(exportGhost2); document.getElementById("GhostButton").onclick = function(){ var levelId = document.getElementById("exportGhost").value; if (levelId % 1 === 0 && !isNaN(levelId) && levelId.length > 0){ GM_xmlhttpRequest({ method: "POST", dataType: "xml", url: "http://id36.ueuo.com/ver-fcml-dgp.php", data: "levelid="+levelId+"", headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function(response) { var x = response.responseText; var y = x.match(/<div.+?(?=<\/div>)/g); if(y){ x = x.split(y[0]).pop(); x = x.split("<img").pop(); x = x.split("</div>").pop(); x.split("\n").pop(); document.getElementById("exportGhost2").value = x; document.getElementById("exportGhost").value = "SUCCESS!!!!"; setTimeout(function(){ document.getElementById("exportGhost").value = "Enter an ID"; }, 1000); }else{ document.getElementById("exportGhost2").value = x; document.getElementById("exportGhost").value = "SUCCESS!!!!"; setTimeout(function(){ document.getElementById("exportGhost").value = "Enter an ID"; }, 1000); } } }); }else{ alert("Please Enter A Valid ID!"); } }; var PhantomTitle = document.createElement("h4"); //Just a text element PhantomTitle.innerHTML = "Static pieces ➞ Phantom pieces"; //Text to show PhantomTitle.id = "PhantomTitle"; document.getElementById("fcmlInnerHubE").appendChild(PhantomTitle); var exportPhantom = document.createElement("input"); exportPhantom.type = "text"; exportPhantom.value = "Enter an ID"; exportPhantom.id = "exportPhantom"; exportPhantom.style.width = "35%"; exportPhantom.style.borderRadius = "5px"; exportPhantom.style.border = "5px"; exportPhantom.style.textAlign = "center"; exportPhantom.style.height = "20px"; document.getElementById("fcmlInnerHubE").appendChild(exportPhantom); var PhantomButton = document.createElement("input"); PhantomButton.type = "submit"; PhantomButton.id = "PhantomButton"; PhantomButton.style.borderRadius = "5px"; PhantomButton.style.border = "5px"; PhantomButton.value = "Convert!"; PhantomButton.style.height = "20px"; document.getElementById("fcmlInnerHubE").appendChild(PhantomButton); var exportPhantom2 = document.createElement("input"); exportPhantom2.type = "text"; exportPhantom2.id = "exportPhantom2"; exportPhantom2.style.width = "35%"; exportPhantom2.style.borderRadius = "5px"; exportPhantom2.style.border = "5px"; exportPhantom2.style.textAlign = "center"; exportPhantom2.style.height = "20px"; document.getElementById("fcmlInnerHubE").appendChild(exportPhantom2); document.getElementById("PhantomButton").onclick = function(){ var levelId = document.getElementById("exportPhantom").value; if (levelId % 1 === 0 && !isNaN(levelId) && levelId.length > 0){ GM_xmlhttpRequest({ method: "POST", dataType: "xml", url: "http://id36.ueuo.com/ver-fcml-spp.php", data: "levelid="+levelId+"", headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function(response) { var x = response.responseText; var y = x.match(/<div.+?(?=<\/div>)/g); if(y){ x = x.split(y[0]).pop(); x = x.split("<img").pop(); x = x.split("</div>").pop(); x.split("\n").pop(); document.getElementById("exportPhantom2").value = x; document.getElementById("exportPhantom").value = "SUCCESS!!!!"; setTimeout(function(){ document.getElementById("exportPhantom").value = "Enter an ID"; }, 1000); }else{ document.getElementById("exportPhantom2").value = x; document.getElementById("exportPhantom").value = "SUCCESS!!!!"; setTimeout(function(){ document.getElementById("exportPhantom").value = "Enter an ID"; }, 1000); } } }); }else{ alert("Please Enter A Valid ID!"); } }; var NinjaTitle = document.createElement("h4"); //Just a text element NinjaTitle.innerHTML = "Static pieces ➞ Ninja pieces"; //Text to show NinjaTitle.id = "NinjaTitle"; document.getElementById("fcmlInnerHubE").appendChild(NinjaTitle); var exportNinja = document.createElement("input"); exportNinja.type = "text"; exportNinja.value = "Enter an ID"; exportNinja.id = "exportNinja"; exportNinja.style.width = "35%"; exportNinja.style.borderRadius = "5px"; exportNinja.style.border = "5px"; exportNinja.style.textAlign = "center"; exportNinja.style.height = "20px"; document.getElementById("fcmlInnerHubE").appendChild(exportNinja); var NinjaButton = document.createElement("input"); NinjaButton.type = "submit"; NinjaButton.id = "NinjaButton"; NinjaButton.style.borderRadius = "5px"; NinjaButton.style.border = "5px"; NinjaButton.value = "Convert!"; NinjaButton.style.height = "20px"; document.getElementById("fcmlInnerHubE").appendChild(NinjaButton); var exportNinja2 = document.createElement("input"); exportNinja2.type = "text"; exportNinja2.id = "exportNinja2"; exportNinja2.style.width = "35%"; exportNinja2.style.borderRadius = "5px"; exportNinja2.style.border = "5px"; exportNinja2.style.textAlign = "center"; exportNinja2.style.height = "20px"; document.getElementById("fcmlInnerHubE").appendChild(exportNinja2); document.getElementById("NinjaButton").onclick = function(){ var levelId = document.getElementById("exportNinja").value; if (levelId % 1 === 0 && !isNaN(levelId) && levelId.length > 0){ GM_xmlhttpRequest({ method: "POST", dataType: "xml", url: "http://id36.ueuo.com/ver-fcml-snp.php", data: "levelid="+levelId+"", headers: { "Content-Type": "application/x-www-form-urlencoded" }, onload: function(response) { var x = response.responseText; var y = x.match(/<div.+?(?=<\/div>)/g); if(y){ x = x.split(y[0]).pop(); x = x.split("<img").pop(); x = x.split("</div>").pop(); x.split("\n").pop(); document.getElementById("exportNinja2").value = x; document.getElementById("exportNinja").value = "SUCCESS!!!!"; setTimeout(function(){ document.getElementById("exportNinja").value = "Enter an ID"; }, 1000); }else{ document.getElementById("exportNinja2").value = x; document.getElementById("exportNinja").value = "SUCCESS!!!!"; setTimeout(function(){ document.getElementById("exportNinja").value = "Enter an ID"; }, 1000); } } }); }else{ alert("Please Enter A Valid ID!"); } }; var hr2 = document.createElement("hr"); hr2.style.borderStyle = "inset"; hr2.style.borderWidth = "5px"; hr2.style.borderColor = "#87BEF1"; document.getElementById("fcmlInnerHubE").appendChild(hr2); var noteTitle = document.createElement("h4"); //Just a text element noteTitle.innerHTML = "Note: For more information on pieces, how the convertors work, and the requirements for the conversions please visit ID36's website at <a href='http://id36.ueuo.com/fcml-conv.php' target='_blank'>http://id36.ueuo.com/fcml-conv.php</a><br><br>All credit to the FCML conversions go to ID36 and all parties involved in its creation. This hub is merely an ease of access used in the addon."; //Text to show noteTitle.id = "noteTitle"; document.getElementById("fcmlInnerHubE").appendChild(noteTitle); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////OTHER RESOURCE IFRAME//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var iframeHub = document.createElement("div"); iframeHub.style.position = "absolute"; iframeHub.style.display = "none"; iframeHub.style.borderStyle = "solid"; iframeHub.style.borderRadius = 25*scale+"px"; iframeHub.style.borderColor = "blue"; iframeHub.style.backgroundImage = "url('http://i67.tinypic.com/w6w514.jpg')"; iframeHub.style.top = 48*scale+"px"; iframeHub.style.right = 20*scale+"px"; iframeHub.style.width = 320*scale+"px"; iframeHub.style.height="85%"; iframeHub.id = "iframeHub"; centered.appendChild(iframeHub); iframeHub.innerHTML = "<center><div id = 'iframeInnerHub'><h1>Other Website Hub</h1></div><center>"; document.getElementById("iframeInnerHub").style.height = "100%"; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////ID36 BUTTON////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var id36Button = document.createElement("input"); id36Button.type = "image"; id36Button.id = "id36Button"; id36Button.src = "http://i.imgur.com/iGWIDjI.gif"; id36Button.style.width = "85%"; id36Button.style.borderRadius = "5px"; id36Button.style.border = "5px"; id36Button.value = "ID36's Website"; document.getElementById("iframeInnerHub").appendChild(id36Button); var br = document.createElement("br"); document.getElementById("iframeInnerHub").appendChild(br); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////FCR BUTTON/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var fcrButton = document.createElement("input"); fcrButton.type = "image"; fcrButton.id = "fcrButton"; fcrButton.style.width = "85%"; fcrButton.style.borderRadius = "5px"; fcrButton.style.border = "5px"; fcrButton.value = "Fantastic Contraption Resource"; fcrButton.src = "http://i.imgur.com/3KHnMxW.gif"; document.getElementById("iframeInnerHub").appendChild(fcrButton); document.getElementById("iframeInnerHub").appendChild(br); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////FORUM BUTTON///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var forumButton = document.createElement("input"); forumButton.type = "image"; forumButton.id = "forumButton"; forumButton.style.width = "85%"; forumButton.style.borderRadius = "5px"; forumButton.style.border = "5px"; forumButton.value = "Fantastic Contraption Resource"; forumButton.src = "http://i.imgur.com/ahpcfYU.gif"; document.getElementById("iframeInnerHub").appendChild(forumButton); document.getElementById("iframeInnerHub").appendChild(br); //////////////////////////////////////////////////// ///////////////FEEDBACK BUTTON////////////////////// //////////////////////////////////////////////////// var feedbackButton = document.createElement("input"); feedbackButton.type = "image"; feedbackButton.id = "feedbackButton"; feedbackButton.style.width = "85%"; feedbackButton.style.borderRadius = "5px"; feedbackButton.style.border = "5px"; feedbackButton.value = "Fantastic Contraption Resource"; feedbackButton.src = "http://i.imgur.com/Y9EgMW6.gif"; document.getElementById("iframeInnerHub").appendChild(feedbackButton); document.getElementById("iframeInnerHub").appendChild(br); document.getElementById("id36Button").onclick = function(){ document.getElementById("otherSites").src = "http://id36.ueuo.com/index.php"; }; document.getElementById("fcrButton").onclick = function(){ document.getElementById("otherSites").src = "http://fc.sk89q.com/"; }; document.getElementById("forumButton").onclick = function(){ document.getElementById("otherSites").src = "http://fc2.boards.net/"; }; document.getElementById("feedbackButton").onclick = function(){ document.getElementById("otherSites").src = "http://fc2.boards.net/conversation/new/110,12,96,3"; }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////HUB REFRESH AREA///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var cAmt = document.createElement("div"); cAmt.style.position = "absolute"; cAmt.id = "cAmt"; cAmt.style.top="89%"; cAmt.style.left=10*scale+"px"; cAmt.style.textAlign="left"; centered.appendChild(cAmt); var ctitle = document.createElement("h4"); //Just a text element ctitle.innerHTML = "<center><table><tr><td> </td><td>Change How Many Levels <br>Per Hub To Load:</td></tr></table></center>"; //Text to show ctitle.id = "ctitle"; ctitle.style.fontSize = 0.9*scale+"em"; ctitle.style.display = "none"; document.getElementById("cAmt").appendChild(ctitle); //Must use the id and not the variable name becaue if changingNick the var is not defined //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////HUB REFRESH INPUT//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var cInput = document.createElement("input"); //Create the input cInput.type = "number"; //Textbox cInput.id = "cInput"; cInput.style.padding = "5px"; //Just some styles cInput.style.borderRadius = "5px"; cInput.style.border = "none"; cInput.style.display = "none"; cInput.style.height = 30*scale+"px"; cInput.style.width = 45*scale+"px"; cInput.style.position = "absolute"; cInput.style.top="95%"; cInput.style.left=64*scale+"px"; centered.appendChild(cInput); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////HUB REFRESH BUTTON/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var cSubmit = document.createElement("input"); //Create the button. May want to replace with an image later because images>buttons cSubmit.type = "button"; //Button cSubmit.value = "Go!"; //What the button says cSubmit.id = "cSubmit"; cSubmit.style.marginLeft = "5px"; cSubmit.style.padding = "5px"; cSubmit.style.display = "none"; cSubmit.style.border = "none"; cSubmit.style.borderRadius = "5px"; cSubmit.style.position = "absolute"; cSubmit.style.top="95%"; cSubmit.style.left=120*scale+"px"; cSubmit.style.height = 40*scale+"px"; cSubmit.style.cursor = "pointer"; //Set cursor to pointer, to make it obvious it is clickable centered.appendChild(cSubmit); document.getElementById("cSubmit").onclick = function(){ var hMany = document.getElementById("cInput").value; if(!isNaN(hMany) && hMany > 0 && hMany < 101 && hMany % 1 === 0){ if (pageLocked) { giveMessage("You cannot do that while the page is locked."); } else { var r = confirm("Refreshing the Hub will refresh the game. All current designs will be lost. Are you sure you want to continue?"); if(r == true){ maxL = hMany; contHolder = ctr.innerHTML; ctr.innerHTML = "<center><br><br><h1>Please Wait While Hubs Load</h1><br><br><h2>This may take a minute depending on the size of the levels.<br>Thank you for your patience!</h2><br><br><br><h4>--FC Enhance Development Team</h4></center>"; lateItr = 0; topItr = 0; t = new Date(); console.log(t); document.getElementById('dsgHub').style.display = 'none'; document.getElementById('lateHub').style.display = 'block'; document.getElementById('TopHub').style.display = 'none'; resetHub(); }else{ giveMessage("The Hub Was Not Refreshed"); } } }else{ alert("Please Enter a Number between 1-100!"); } }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////HIDE SWF WHILE HUBS LOAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var ctr = document.getElementById("maincontent"); contHolder = ctr.innerHTML; document.getElementsByClassName("border")[0].style.backgroundImage = "url('http://fantasticcontraption.com/images/fantastic_contraption_border.png')"; ctr.innerHTML = "<center><br><br><h1>Please Wait While Hubs Load</h1><br><br><h2>This may take a minute depending on the size of the levels.<br>Thank you for your patience!</h2><br><br><br><h4>--FC Enhance Development Team</h4></center>"; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////LOAD SWF WHEN HUBS LOAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function hubsLoaded(){ if(topItr == maxL && lateItr == maxL){ ctr.innerHTML = contHolder; contraption = getFlash(); if(inFullScreen){ document.getElementsByClassName("border")[0].style.backgroundImage = "url('')"; } getUseFlashVars(); if(currentPageNumber == 0){ reset.style.display = "block"; ctitle.style.display = "block"; cSubmit.style.display = "block"; cInput.style.display = "block"; } } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////KEYDOWN CODING/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var trueFull = false; var oldW; var oldH; var checkHub; var checkLvl; var checkChat; var checkScroll; function KeyPress(e) { //SHIFT + LEFT ARROW if(e.keyCode == 37 && e.shiftKey == true){ if(!trueFull){ getNextPage("left"); }else{ giveMessage("Can't Do This In FullScreen Mode!"); } } //SHIFT + RIGHT ARROW if(e.keyCode == 39 && e.shiftKey == true){ if(!trueFull){ getNextPage("right"); }else{ giveMessage("Can't Do This In FullScreen Mode!"); } } //TRUE FULSCREEN MODE //SHIFT + CONTROL + F if (e.keyCode == 70 && e.shiftKey == true && (e.ctrlKey == true || e.metaKey == true)) { if(currentPageNumber == 0){ var w = screen.width; var h = screen.height; contHolder = ctr.innerHTML; if(window.innerHeight != document.getElementById("contraption").height){ oldH = document.getElementById("contraption").height; oldW = document.getElementById("contraption").width; checkHub = document.getElementById("sHubs").checked; checkLvl = document.getElementById("sLvl").checked; checkChat = document.getElementById("sChat").checked; checkScroll = document.getElementById("sScroll").checked; document.getElementById("contraption").style.position = "absolute"; document.getElementById("contraption").style.top = "0px"; document.getElementById("contraption").style.left = "0px"; document.getElementById("contraption").style.backgroundColor = "green"; document.getElementById("contraption").height = window.innerHeight; document.getElementById("contraption").width = window.innerWidth; document.getElementById("contraption").style.border = ""; document.getElementById('lateHub').style.display = 'none'; document.getElementById('TopHub').style.display = 'none'; document.getElementById('dsgHub').style.display = 'none'; document.getElementById('cAmt').style.display = 'none'; document.getElementById('cInput').style.display = 'none'; document.getElementById('ctitle').style.display = 'none'; document.getElementById('cSubmit').style.display = 'none'; document.getElementById('resetHub').style.display = "none"; document.getElementById("randLevelHub").style.display = 'none'; document.getElementById("chatHub").style.display = 'none'; document.getElementById("leftBtn").style.display = 'none'; document.getElementById("rightBtn").style.display = 'none'; document.getElementById("pageDescription").style.display = 'none'; document.getElementById("settingsHub").style.display = 'none'; document.getElementById("sHub").style.display = 'none'; document.getElementById("fullScreenButton").style.display = 'none'; document.getElementById("tweakBtn").style.right = 45*scale+'px'; giveMessage("TRUE FULLSCREEN ACTIVATED"); trueFull = true; }else{ document.getElementById("contraption").height = oldH; document.getElementById("contraption").width = oldW; document.getElementById("settingsHub").style.display = 'block'; document.getElementById("fullScreenButton").style.display = 'block'; document.getElementById("tweakBtn").style.right = 315*scale+'px'; giveMessage("TRUE FULLSCREEN DEACTIVATED"); if(document.getElementById("sHubs").checked){ document.getElementById('lateHub').style.display = 'none'; document.getElementById('TopHub').style.display = 'none'; document.getElementById('dsgHub').style.display = 'none'; document.getElementById('cAmt').style.display = 'none'; document.getElementById('cInput').style.display = 'none'; document.getElementById('ctitle').style.display = 'none'; document.getElementById('cSubmit').style.display = 'none'; document.getElementById('resetHub').style.display = "none"; }else{ document.getElementById('lateHub').style.display = 'block'; document.getElementById('TopHub').style.display = 'none'; document.getElementById('dsgHub').style.display = 'none'; document.getElementById('cAmt').style.display = 'block'; document.getElementById('cInput').style.display = 'block'; document.getElementById('ctitle').style.display = 'block'; document.getElementById('cSubmit').style.display = 'block'; document.getElementById('resetHub').style.display = "block"; } if(document.getElementById("sLvl").checked){ document.getElementById("randLevelHub").style.display = 'none'; }else{ document.getElementById("randLevelHub").style.display = 'block'; } if(document.getElementById("sChat").checked){ document.getElementById("chatHub").style.display = 'none'; }else{ document.getElementById("chatHub").style.display = 'block'; } if(document.getElementById("sScroll").checked){ document.getElementById("leftBtn").style.display = 'none'; document.getElementById("rightBtn").style.display = 'none'; document.getElementById("pageDescription").style.display = 'none'; }else{ document.getElementById("leftBtn").style.display = 'block'; document.getElementById("rightBtn").style.display = 'block'; document.getElementById("pageDescription").style.display = 'block'; } if(inFullScreen){ document.getElementById("contraption").style.position = "absolute"; document.getElementById("contraption").style.top = "45px"; document.getElementById("contraption").style.left = "calc(50% - "+540*scale+"px)"; document.getElementById("contraption").style.border = 10+scale+"px solid #2550FF"; document.getElementById("contraption").style.borderRadius = 25*scale+"px"; }else{ document.getElementById("contraption").style.position = "initial"; document.getElementById("contraption").style.top = "initial"; document.getElementById("contraption").style.left = "initial"; document.getElementById("contraption").style.border = "initial"; } trueFull = false; } }else{ giveMessage("Need to be on Game Page!"); } } } document.onkeydown = KeyPress; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////RED ARROW BLOCKER//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// var btnOff = "data:image/png;base64,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"; var btnOn = "data:image/png;base64,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"; var tweakBtn = document.createElement("input"); var btnState = "Off"; tweakBtn.type = "image"; tweakBtn.src = btnOff; tweakBtn.title = "Toggle Red Arrow Blocker"; tweakBtn.style.width = 2.5*scale+"em"; tweakBtn.id = "tweakBtn"; tweakBtn.style.cursor = "pointer"; tweakBtn.style.position = "absolute"; tweakBtn.style.top = "0px"; tweakBtn.style.right = 315*scale+"px"; centered.appendChild(tweakBtn); document.getElementById("tweakBtn").onclick = function(){ if(btnState == "Off"){ tweakBtn.src = btnOn; btnState = "On"; giveMessage("Red Arrow Blocker On"); document.getElementById('rArrow').style.display = "block"; }else{ tweakBtn.src = btnOff; btnState = "Off"; giveMessage("Red Arrow Blocker Off"); document.getElementById('rArrow').style.display = "none"; } }; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////CREATE THUMBNAILS//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function createCanvas(id,itr,hub){ var levelId = id; var itr = itr; var wHub; var cId; var cId = "img"+levelId+""; if(hub == "top"){ wHub = document.getElementById("TopInnerHub"); } else{ wHub = document.getElementById("lateInnerHub"); } $.ajax({ type: "POST", dataType: "xml", url: "http://fantasticcontraption.com/retrieveLevel.php", data: { id: levelId }, error: function() { console.log("Error on ajax for: "+levelId+"...skipping Id"); if(hub == "top"){ wHub.innerHTML += "<h4>Level ID: "+levelId+" skipped due to error</h4><br>"; topItr++ setTop(); }else{ wHub.innerHTML += "<h4>Level ID: "+levelId+" skipped due to error</h4><br>"; lateItr++ setLate(); } }, success: function(data) { //GET ALL THE ELEMENTS var sR = data.getElementsByTagName('StaticRectangle'); var sC = data.getElementsByTagName('StaticCircle'); var dR = data.getElementsByTagName('DynamicRectangle'); var dC = data.getElementsByTagName('DynamicCircle'); var bA = data.getElementsByTagName('start'); var gA = data.getElementsByTagName('end'); var uW = data.getElementsByTagName('NoSpinWheel'); var gR = data.getElementsByTagName('JointedDynamicRectangle'); var gC = []; var NongC = []; for (i = 0; i < uW.length; i++){ if(uW[i].getElementsByTagName('goalBlock')[0].innerHTML=='true'){ gC.push(uW[i]); }else{ NongC.push(uW[i]); } } var cW = data.getElementsByTagName('ClockwiseWheel'); var ccW = data.getElementsByTagName('CounterClockwiseWheel'); //Try and get the centers of a level var xx = data.getElementsByTagName('x'); var xNum = []; for(i = 0; i < xx.length; i++){ xNum[i] = xx[i].innerHTML; } var yy = data.getElementsByTagName('y'); var yNum = []; for(i = 0; i < yy.length; i++){ yNum[i] = yy[i].innerHTML; } var xMin = Math.min.apply(null, xNum); var xMax = Math.max.apply(null, xNum); var xCenter = (xMax + xMin)/2; var yMin = Math.min.apply(null, yNum); var yMax = Math.max.apply(null, yNum); var yCenter = (yMax + yMin)/2; //START TO CREATE CANVAS var defaultWidth = 1800; var defaultHeight = 1440; var scale = 1/6; var canvasWidth = defaultWidth * scale; var canvasHeight = defaultHeight * scale; wHub.innerHTML += '<canvas id="'+cId+'" width="'+canvasWidth+'" height="'+canvasHeight+'" style="border:1px solid #d3d3d3;"><br>'; var canvas = document.getElementById(cId); var centerX = (canvasWidth * 0.5); var centerY = (canvasHeight * 0.5); canvas.style.visibility = "hidden"; canvas.style.zIndex = "1000"; var ctx = canvas.getContext("2d"); ctx.strokeStyle = "#85AFF3"; ctx.strokeRect(0,0,900,720); ctx.fillStyle = "#85AFF3"; ctx.fillRect(0,0,900,720); for(i = 0; i < bA.length; i++){ var x = (bA[i].getElementsByTagName('x')[0].innerHTML); var y = (bA[i].getElementsByTagName('y')[0].innerHTML); x = x-xCenter; y = y-yCenter; var w = bA[i].getElementsByTagName('width')[0].innerHTML; var h = bA[i].getElementsByTagName('height')[0].innerHTML; var type = 1; drawObject(x*scale,y*scale,w*scale,h*scale,0,type); } for(i = 0; i < bA.length; i++){ var x = bA[i].getElementsByTagName('x')[0].innerHTML; var y = bA[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = bA[i].getElementsByTagName('width')[0].innerHTML; var h = bA[i].getElementsByTagName('height')[0].innerHTML; var type = 1; fillObject(x*scale,y*scale,w*scale,h*scale,0,type); } for(i = 0; i < gA.length; i++){ var x = gA[i].getElementsByTagName('x')[0].innerHTML; var y = gA[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = gA[i].getElementsByTagName('width')[0].innerHTML; var h = gA[i].getElementsByTagName('height')[0].innerHTML; var type = 2; drawObject(x*scale,y*scale,w*scale,h*scale,0,type); } for(i = 0; i < gA.length; i++){ var x = gA[i].getElementsByTagName('x')[0].innerHTML; var y = gA[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = gA[i].getElementsByTagName('width')[0].innerHTML; var h = gA[i].getElementsByTagName('height')[0].innerHTML; var type = 2; fillObject(x*scale,y*scale,w*scale,h*scale,0,type); } for(i = 0; i < sR.length; i++){ var x = sR[i].getElementsByTagName('x')[0].innerHTML; var y = sR[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = sR[i].getElementsByTagName('width')[0].innerHTML; var h = sR[i].getElementsByTagName('height')[0].innerHTML; var a = sR[i].getElementsByTagName('rotation')[0].innerHTML; var type = 3; drawObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < sC.length; i++){ var x = sC[i].getElementsByTagName('x')[0].innerHTML; var y = sC[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = sC[i].getElementsByTagName('width')[0].innerHTML; if(w < 8){ w = 8.001; } var h = sC[i].getElementsByTagName('height')[0].innerHTML; var a = sC[i].getElementsByTagName('rotation')[0].innerHTML; var type = 4; drawObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < dR.length; i++){ var x = dR[i].getElementsByTagName('x')[0].innerHTML; var y = dR[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = dR[i].getElementsByTagName('width')[0].innerHTML; var h = dR[i].getElementsByTagName('height')[0].innerHTML; var a = dR[i].getElementsByTagName('rotation')[0].innerHTML; var type = 5; drawObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < dC.length; i++){ var x = dC[i].getElementsByTagName('x')[0].innerHTML; var y = dC[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = dC[i].getElementsByTagName('width')[0].innerHTML; if(w < 8){ w = 8.001; } var h = dC[i].getElementsByTagName('height')[0].innerHTML; var a = dC[i].getElementsByTagName('rotation')[0].innerHTML; var type = 6; drawObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < gR.length; i++){ var x = gR[i].getElementsByTagName('x')[0].innerHTML; var y = gR[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = gR[i].getElementsByTagName('width')[0].innerHTML; var h = gR[i].getElementsByTagName('height')[0].innerHTML; var a = gR[i].getElementsByTagName('rotation')[0].innerHTML; var type = 7; drawObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < gC.length; i++){ var x = gC[i].getElementsByTagName('x')[0].innerHTML; var y = gC[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = gC[i].getElementsByTagName('width')[0].innerHTML; if(w < 8){ w = 8.001; } var h = gC[i].getElementsByTagName('height')[0].innerHTML; var a = gC[i].getElementsByTagName('rotation')[0].innerHTML; var type = 8; drawObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < NongC.length; i++){ var x = NongC[i].getElementsByTagName('x')[0].innerHTML; var y = NongC[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = NongC[i].getElementsByTagName('width')[0].innerHTML; if(w < 8){ w = 8.001; } var h = NongC[i].getElementsByTagName('height')[0].innerHTML; var a = NongC[i].getElementsByTagName('rotation')[0].innerHTML; var type = 9; drawObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < cW.length; i++){ var x = cW[i].getElementsByTagName('x')[0].innerHTML; var y = cW[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = cW[i].getElementsByTagName('width')[0].innerHTML; if(w < 8){ w = 8.001; } var h = cW[i].getElementsByTagName('height')[0].innerHTML; var a = cW[i].getElementsByTagName('rotation')[0].innerHTML; var type = 10; drawObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < ccW.length; i++){ var x = ccW[i].getElementsByTagName('x')[0].innerHTML; var y = ccW[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = ccW[i].getElementsByTagName('width')[0].innerHTML; if(w < 8){ w = 8.001; } var h = ccW[i].getElementsByTagName('height')[0].innerHTML; var a = ccW[i].getElementsByTagName('rotation')[0].innerHTML; var type = 11; drawObject(x*scale,y*scale,w*scale,h*scale,a,type); } //Start Filling Objects for(i = 0; i < sR.length; i++){ var x = sR[i].getElementsByTagName('x')[0].innerHTML; var y = sR[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = sR[i].getElementsByTagName('width')[0].innerHTML; var h = sR[i].getElementsByTagName('height')[0].innerHTML; var a = sR[i].getElementsByTagName('rotation')[0].innerHTML; var type = 3; fillObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < sC.length; i++){ var x = sC[i].getElementsByTagName('x')[0].innerHTML; var y = sC[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = sC[i].getElementsByTagName('width')[0].innerHTML; if(w < 8){ w = 8.001; } var h = sC[i].getElementsByTagName('height')[0].innerHTML; var a = sC[i].getElementsByTagName('rotation')[0].innerHTML; var type = 4; fillObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < dR.length; i++){ var x = dR[i].getElementsByTagName('x')[0].innerHTML; var y = dR[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = dR[i].getElementsByTagName('width')[0].innerHTML; var h = dR[i].getElementsByTagName('height')[0].innerHTML; var a = dR[i].getElementsByTagName('rotation')[0].innerHTML; var type = 5; fillObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < dC.length; i++){ var x = dC[i].getElementsByTagName('x')[0].innerHTML; var y = dC[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = dC[i].getElementsByTagName('width')[0].innerHTML; if(w < 8){ w = 8.001; } var h = dC[i].getElementsByTagName('height')[0].innerHTML; var a = dC[i].getElementsByTagName('rotation')[0].innerHTML; var type = 6; fillObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < gR.length; i++){ var x = gR[i].getElementsByTagName('x')[0].innerHTML; var y = gR[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = gR[i].getElementsByTagName('width')[0].innerHTML; var h = gR[i].getElementsByTagName('height')[0].innerHTML; var a = gR[i].getElementsByTagName('rotation')[0].innerHTML; var type = 7; fillObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < gC.length; i++){ var x = gC[i].getElementsByTagName('x')[0].innerHTML; var y = gC[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = gC[i].getElementsByTagName('width')[0].innerHTML; if(w < 8){ w = 8.001; } var h = gC[i].getElementsByTagName('height')[0].innerHTML; var a = gC[i].getElementsByTagName('rotation')[0].innerHTML; var type = 8; fillObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < NongC.length; i++){ var x = NongC[i].getElementsByTagName('x')[0].innerHTML; var y = NongC[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = NongC[i].getElementsByTagName('width')[0].innerHTML; if(w < 8){ w = 8.001; } var h = NongC[i].getElementsByTagName('height')[0].innerHTML; var a = NongC[i].getElementsByTagName('rotation')[0].innerHTML; var type = 9; fillObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < cW.length; i++){ var x = cW[i].getElementsByTagName('x')[0].innerHTML; var y = cW[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = cW[i].getElementsByTagName('width')[0].innerHTML; if(w < 8){ w = 8.001; } var h = cW[i].getElementsByTagName('height')[0].innerHTML; var a = cW[i].getElementsByTagName('rotation')[0].innerHTML; var type = 10; fillObject(x*scale,y*scale,w*scale,h*scale,a,type); } for(i = 0; i < ccW.length; i++){ var x = ccW[i].getElementsByTagName('x')[0].innerHTML; var y = ccW[i].getElementsByTagName('y')[0].innerHTML; x = x-xCenter; y = y-yCenter; var w = ccW[i].getElementsByTagName('width')[0].innerHTML; if(w < 8){ w = 8.001; } var h = ccW[i].getElementsByTagName('height')[0].innerHTML; var a = ccW[i].getElementsByTagName('rotation')[0].innerHTML; var type = 11; fillObject(x*scale,y*scale,w*scale,h*scale,a,type); } //Convert Canvas to Image var dataURL = canvas.toDataURL(); wHub.removeChild(canvas); //Top Hub if (hub == "top"){ wHub.innerHTML += "<img src='"+dataURL+"' alt='' border='1' width='95%' style='display:inline;vertical-align: middle'></img><br>"; wHub.innerHTML += "<span style='vertical-align: middle;'><strong><font size='3'>" + (itr + 1) + ") " + topLvlListName[itr] + " </strong></font></span>"; //Create Load Button var genButtonLoad = document.createElement("input"); genButtonLoad.type = "image"; genButtonLoad.src = lBtn; genButtonLoad.style.verticalAlign = "middle"; genButtonLoad.style.padding = "1px"; genButtonLoad.id = topLvlListId[itr]; genButtonLoad.title = "Play Level"; genButtonLoad.setAttribute("class", "loadClass"); wHub.appendChild(genButtonLoad); //Add space between buttons wHub.innerHTML += " "; //Create Design Button var genButtonDesign = document.createElement("input"); genButtonDesign.type = "image"; genButtonDesign.title = "See Designs"; genButtonDesign.src = dBtn; genButtonDesign.width = "30"; genButtonDesign.height = "30"; genButtonDesign.style.verticalAlign = "middle"; genButtonDesign.style.padding = "1px"; genButtonDesign.id = "designId="+topLvlListId[itr]; genButtonDesign.setAttribute("class", "designClass"); wHub.appendChild(genButtonDesign); wHub.innerHTML += "<br>"; topItr++ setTop(); }else{ wHub.innerHTML += "<img src='"+dataURL+"' alt='' border='1' width='95%' style='display:inline;vertical-align: middle'></img><br>"; wHub.innerHTML += "<span style='vertical-align: middle;'><strong><font size='3'>" + (itr + 1) + ") " + lateLvlListName[itr] + " </strong></font></span>"; //Create Load Button var genButtonLoad = document.createElement("input"); genButtonLoad.type = "image"; genButtonLoad.src = "http://i66.tinypic.com/9kzatg.png"; genButtonLoad.style.verticalAlign = "middle"; genButtonLoad.title = "Play Level"; genButtonLoad.style.padding = "1px"; genButtonLoad.id = lateLvlListId[itr]; genButtonLoad.setAttribute("class", "loadClass"); wHub.appendChild(genButtonLoad); //Add space between buttons wHub.innerHTML += " "; //Create Design Button var genButtonDesign = document.createElement("input"); genButtonDesign.type = "image"; genButtonDesign.title = "See Designs"; genButtonDesign.src = "http://i68.tinypic.com/eleiv7.png"; genButtonDesign.width = "30"; genButtonDesign.height = "30"; genButtonDesign.style.verticalAlign = "middle"; genButtonDesign.style.padding = "1px"; genButtonDesign.id = "designId="+lateLvlListId[itr]; genButtonDesign.setAttribute("class", "designClass"); wHub.appendChild(genButtonDesign); wHub.innerHTML += "<br>"; lateItr++ setLate(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////DRAW THUMBNAIL OBJECTS/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Start Awesome Functions Created by Zhyrek to draw canvas function drawObject(x, y, w, h, a, type) { w -= 8 * scale; h -= 8 * scale; var ca = Math.cos(a); var sa = Math.sin(a); ctx.transform(1,0,0,1,x+centerX,y+centerY); ctx.transform(ca,sa,-sa,ca,0,0); ctx.lineJoin="round"; ctx.lineWidth = 4 * scale; if(type == 1)//buildArea { ctx.strokeStyle = "#7F66ED"; ctx.strokeRect(-w/2,-h/2,w,h); } else if(type == 2)//goalArea { ctx.strokeStyle = "#B46268"; ctx.strokeRect(-w/2,-h/2,w,h); } else if(type == 3)//staticRect { ctx.strokeStyle = "#1D8501"; ctx.strokeRect(-w/2,-h/2,w,h); } else if(type == 4)//staticCircle { ctx.strokeStyle = "#1D8501"; ctx.arc(0,0,w,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); } else if(type == 5)//dynamicRect { ctx.strokeStyle = "#BD5420"; ctx.strokeRect(-w/2,-h/2,w,h); } else if(type == 6)//dynamicCircle { ctx.strokeStyle = "#BD5420"; ctx.arc(0,0,w,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); } else if(type == 7)//goalRect { ctx.strokeStyle = "#BD5420"; ctx.strokeRect(-w/2,-h/2,w,h); } else if(type == 8)//goalCircle { ctx.strokeStyle = "#B46268"; ctx.arc(0,0,w/2,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); } else if(type == 9)//blueWheel { ctx.strokeStyle = "#4452FC"; ctx.arc(0,0,w/2,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); } else if(type == 10)//yellowWheel { ctx.strokeStyle = "#F37E22"; ctx.arc(0,0,w/2,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); } else if(type == 11)//pinkWheel { ctx.strokeStyle = "#CB2EA5"; ctx.arc(0,0,w/2,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); } ctx.setTransform(1,0,0,1,0,0); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////FILL THUMBNAIL OBJECTS/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function fillObject(x, y, w, h, a, type) { w -= 8 * scale; h -= 8 * scale; var ca = Math.cos(a); var sa = Math.sin(a); ctx.transform(1,0,0,1,x+centerX,y+centerY); ctx.transform(ca,sa,-sa,ca,0,0); ctx.lineJoin="round"; ctx.lineWidth = 4 * scale; if(type == 1)//buildArea { ctx.fillStyle = "#BFD8F8"; ctx.fillRect(-w/2,-h/2,w,h); } else if(type == 2)//goalArea { ctx.fillStyle = "#EA8C92"; ctx.fillRect(-w/2,-h/2,w,h); } else if(type == 3)//staticRect { ctx.fillStyle = "#2BC500"; ctx.fillRect(-w/2,-h/2,w,h); } else if(type == 4)//staticCircle { ctx.fillStyle = "#2BC500"; ctx.arc(0,0,w,0,Math.PI*2); ctx.fill(); ctx.beginPath(); } else if(type == 5)//dynamicRect { ctx.fillStyle = "#F2DF37"; ctx.fillRect(-w/2,-h/2,w,h); } else if(type == 6)//dynamicCircle { ctx.fillStyle = "#F0873A"; ctx.arc(0,0,w,0,Math.PI*2); ctx.fill(); ctx.beginPath(); } else if(type == 7)//goalRect { ctx.fillStyle = "#F65D6A"; ctx.fillRect(-w/2,-h/2,w,h); ctx.lineWidth = 2 * scale; ctx.strokeStyle = "#828282"; ctx.arc(0,0,1.5,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); ctx.arc(w/2,h/2,3*scale,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); ctx.arc(w/2,-h/2,3*scale,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); ctx.arc(-w/2,-h/2,3*scale,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); ctx.arc(-w/2,h/2,3*scale,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); } else if(type == 8)//goalCircle { ctx.fillStyle = "#F65D6A"; ctx.arc(0,0,w/2,0,Math.PI*2); ctx.fill(); ctx.beginPath(); } else if(type == 9)//blueWheel { ctx.fillStyle = "#94FEE1"; ctx.arc(0,0,w/2,0,Math.PI*2); ctx.fill(); ctx.beginPath(); } else if(type == 10)//yellowWheel { ctx.fillStyle = "#F9F316"; ctx.arc(0,0,w/2,0,Math.PI*2); ctx.fill(); ctx.beginPath(); } else if(type == 11)//pinkWheel { ctx.fillStyle = "#FBC9CC"; ctx.arc(0,0,w/2,0,Math.PI*2); ctx.fill(); ctx.beginPath(); } if(type > 7) { w += 4; h += 4; ctx.lineWidth = 2 * scale; ctx.strokeStyle = "#828282"; ctx.arc(0,h*scale,3*scale,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); ctx.arc(w*scale,0,3*scale,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); ctx.arc(0,-h*scale,3*scale,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); ctx.arc(-w*scale,0,3*scale,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); ctx.strokeStyle = "#FFFFFF"; ctx.arc(0,0,3*scale,0,Math.PI*2); ctx.stroke(); ctx.beginPath(); } ctx.setTransform(1,0,0,1,0,0); } } }); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////RESET THE HUB//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function resetHub(){ lateInnerHub.innerHTML = ""; lateTopHub.innerHTML = ""; reset.style.display = "none"; ctitle.style.display = "none"; cSubmit.style.display = "none"; cInput.style.display = "none"; getTop(); getLatest(); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////GET TOP LEVELS/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function getTop(){ $.ajax({ type: "POST", dataType: "xml", url: "http://fantasticcontraption.com/getUserGenLevels.php", data: { limitCount: maxL }, success: function(data) { var str = new XMLSerializer().serializeToString(data); topLvlListId = str.match(/levelId......./g); topLvlListName = str.match(/levelName>.+?(?=<)/g); for(var j = 0; j < topLvlListId.length; j++) { var holder = topLvlListId[j]; holder = holder.split(">").pop(); topLvlListId[j] = holder; } for(var i = 0; i < topLvlListName.length; i++) { var holder = topLvlListName[i]; holder = holder.split(">").pop(); topLvlListName[i] = holder; } setTop(); } }); } getTop(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////TOP HUB THUMBNAIL//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function setTop(){ var lateTopHub = document.getElementById('TopInnerHub'); if(topItr < maxL){ createCanvas(topLvlListId[topItr], topItr, "top"); }else{ hubsLoaded(); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////GET LATEST LEVELS//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function getLatest(){ $.ajax({ type: "POST", dataType: "xml", url: "http://fantasticcontraption.com/getUserGenLevels.php", data: { limitCount: maxL, orderBy: "date" }, success: function(data) { var str = new XMLSerializer().serializeToString(data); lateLvlListId = str.match(/levelId......./g); lateLvlListName = str.match(/levelName>.+?(?=<)/g); for(var j = 0; j < lateLvlListId.length; j++) { var holder = lateLvlListId[j]; holder = holder.split(">").pop(); lateLvlListId[j] = holder; } for(var i = 0; i < lateLvlListName.length; i++) { var holder = lateLvlListName[i]; holder = holder.split(">").pop(); lateLvlListName[i] = holder; } setLate(); } }); } getLatest(); //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////LATEST HUB THUMBNAIL///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function setLate(){ var lateInnerHub = document.getElementById('lateInnerHub'); if(lateItr < maxL){ createCanvas(lateLvlListId[lateItr], lateItr, "late"); }else{ hubsLoaded(); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////GET DESIGNS////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// function getDsg(id){ var levelId = id.split("=").pop(); dsgId = []; dsgName = []; dsgUser = []; dsgInnerHub.innerHTML = ""; $.ajax({ type: "POST", dataType: "xml", url: "http://fantasticcontraption.com/getUserDesigns.php", data: { levelId: levelId, onlyPublished: 1, userId: 1672546, limitOffset: 0, limitCount: 2000000000 }, success: function(data) { var str = new XMLSerializer().serializeToString(data); dsgId = str.match(/designId>.+?(?=<)/g); if (dsgId) { document.getElementById('dsgHub').style.display = 'block'; document.getElementById('lateHub').style.display = 'none'; document.getElementById('TopHub').style.display = 'none'; for (i = 0; i < dsgId.length; i++){ dsgId[i] = dsgId[i].split(">").pop(); } dsgName = str.match(/name>.+?(?=<)/g); for (i = 0; i < dsgName.length; i++){ dsgName[i] = dsgName[i].split(">").pop(); } dsgUser = str.match(/userName>.+?(?=<)/g); for (i = 0; i < dsgUser.length; i++){ dsgUser[i] = dsgUser[i].split(">").pop(); } for (i = 0; i < dsgId.length; i++){ dsgInnerHub.innerHTML += "<span style='text-align: left;'><strong><font size='3'><left>Name: </strong></font><b>" + dsgName[i] + "</b><br><strong><font size='3'>Author: </strong></font><b>"+ dsgUser[i] +"</b><br></strong></font></left></span>"; var genButtonDesign = document.createElement("input"); genButtonDesign.type = "image"; genButtonDesign.src = "http://i66.tinypic.com/9kzatg.png"; genButtonDesign.title = "Load Design"; genButtonDesign.style.padding = "3px"; genButtonDesign.id = dsgId[i]; genButtonDesign.setAttribute("class", "designLoad"); dsgInnerHub.appendChild(genButtonDesign); dsgInnerHub.innerHTML += "<br /><br>"; } }else{ alert("There are no designs for this level."); } } }); } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////LEVEL/DESIGN LOADING BUTTONS////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// document.onclick=function(event){ if(event.target.getAttribute("class") == "loadClass"){ loadLvl(event.target.id); } else if(event.target.getAttribute("class") == "designClass"){ getDsg(event.target.id); } else if(event.target.getAttribute("class") == "designLoad"){ setDsg(event.target.id); } }; function setDsg(id){ if (pageLocked) { giveMessage("You cannot do that while the page is locked."); } else { var h = document.getElementById("contraption").height; var w = document.getElementById("contraption").width; document.getElementById("maincontent").innerHTML = '<embed type="application/x-shockwave-flash" src="/game/Contraption.swf" width="'+w+'" height="'+h+'" id="contraption" name="contraption" quality="high" allowfullscreen="true" allowscriptaccess="always" flashvars="designId=' + id + '&wMode=true" swliveconnect="true">'; setTimeout(function(){ document.elementFromPoint(10*scale, 10*scale).click(); }, 1); document.elementFromPoint(10*scale, 10*scale).click(); contraption=getFlash(); getUseFlashVars(); } } function loadLvl(id){ if (pageLocked) { giveMessage("You cannot do that while the page is locked."); } else { var h = document.getElementById("contraption").height; var w = document.getElementById("contraption").width; document.getElementById("maincontent").innerHTML = '<embed type="application/x-shockwave-flash" src="/game/Contraption.swf" width="'+w+'" height="'+h+'" id="contraption" name="contraption" quality="high" allowfullscreen="true" allowscriptaccess="always" flashvars="levelId=' + id + '&wMode=true" swliveconnect="true">'; setTimeout(function(){ document.elementFromPoint(10, 10).click(); }, 1); document.elementFromPoint(10, 10).click(); contraption = getFlash(); getUseFlashVars(); } } //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////MESSAGE BOX////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //Create a way of showing messages //Let's reserve the bottom left corner for messages function setupMessageSpace() { var messageSpace = document.createElement('div'); with (messageSpace) { id = "msg"; style.position = "absolute"; style.right = 40*scale+"px"; style.bottom = 8*scale+"px"; style.fontSize = 1.5*scale+"em"; } document.body.appendChild(messageSpace); } setupMessageSpace(); //Now the function to display a message! function giveMessage(message) { var msgSpace = document.getElementById('msg'); msgSpace.innerHTML = message; //Now fade out the message clearTimeout(messageTimeout); //First clear the old one if we are overriting it messageTimeout = setTimeout(fadeText, "2000"); function fadeText() {$(msgSpace).stop(true, true).fadeOut( "slow", function() {msgSpace.innerHTML = ""; msgSpace.style.display = 'initial';} );} } //Setup the SWF to interact with javascript contraption.setAttribute("swliveconnect", true); //Don't think this actually does anything, but alas //})(); } //End try catch(err) { alert("It looks like an error occured:\n> " + err.message + "\nIf you would like, please let marjo know."); }