· 9 years ago · Nov 10, 2016, 03:54 PM
1// ==UserScript==
2// @name FC Enhance working on scale
3// @namespace catastrophe.box.eggsal.com
4// @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.
5// @include *fantasticcontraption.com*
6// @exclude *archive.org*
7// @require http://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js
8// @version 3.2
9// @updateURL https://openuserjs.org/meta/marjo/FC_Enhance.meta.js
10// @grant GM_xmlhttpRequest
11// @grant GM_setValue
12// @grant GM_getValue
13// @grant unsafeWindow
14// ==/UserScript==
15//First we must detect if the page is simply the advertisement page and break here
16var scale = screen.width/1920;
17
18var locationBox = document.getElementsByClassName('left')[0].getBoundingClientRect();
19console.log(locationBox);
20
21console.log(scale);
22if (unsafeWindow.location.href.search(/fantasticcontraption.com\/original/) < 0 && unsafeWindow.location.href.search(/fantasticcontraption.com\/\?/) < 0) {
23 throw new Error(); //First try to stop script
24}
25
26try {
27 if (window.constructor != unsafeWindow.constructor) window = unsafeWindow;
28 //document.body.overflow = "hidden";
29 //Add Fonts
30 //document.head.innerHTML += "<link href='https://fonts.googleapis.com/css?family=Open+Sans' rel='stylesheet' type='text/css'>";
31 //Fonts Added
32 //document.body.style.fontFamily = "'Open Sans', sans-serif";
33
34 function makeid(len) //Create random sequence of characters to use for username, email, password
35 {
36 var text = "";
37 var possible = "abcdefghijklmnopqrstuvwxyz";
38
39 for( var i=0; i < len; i++ )
40 text += possible.charAt(Math.floor(Math.random() * possible.length));
41
42 return text;
43 }
44
45 function getCookie(cname) { //Get a cookie by its name
46 var name = cname + "=";
47 var ca = document.cookie.split(';');
48 for(var i=0; i<ca.length; i++) {
49 var c = ca[i];
50 while (c.charAt(0)==' ') c = c.substring(1);
51 if (c.indexOf(name) == 0) return c.substring(name.length,c.length);
52 }
53 return false;
54 }
55
56 //We must set a cookie to give each user a different ID. We must create a new account and store the id.
57 if (!getCookie("userid")) {
58 $.ajax({
59 type: "POST",
60 dataType: "xml",
61 url: "newUser.php",
62 data: {
63 userName: Math.floor(Math.random() * 100000000000000),
64 password: Math.floor(Math.random() * 100000000000000),
65 email: makeid(10) + "@gmail.com"
66 },
67 success: function(data){
68 var newId;
69 try {
70 newId = data.getElementsByTagName('userId')[0].innerHTML;
71 }
72 catch(err) {
73 unsafeWindow.location.reload();
74 }
75 if (newId) { //If the acount was created successfully
76 document.cookie = "userid=" + newId + "; expires=01 Jan 2999 00:00:00 UTC; path=/";
77 }
78 else {
79 unsafeWindow.location.reload();
80 }
81 }
82 });
83 }
84
85 //To get the contraption swf
86 function getFlash()
87 {
88 movieName = "contraption";
89 if (unsafeWindow.document[movieName])
90 {
91 return unsafeWindow.document[movieName];
92 }
93 if (navigator.appName.indexOf("Microsoft Internet")==-1)
94 {
95 if (document.embeds && document.embeds[movieName])
96 return document.embeds[movieName];
97 }
98 else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
99 {
100 return document.getElementById(movieName);
101 }
102 }
103
104 //...SOME VARIABLES...|<
105 var inFullScreen = false;
106 var pageLocked = false;
107 var defaultOnBeforeUnload = window.onbeforeunload;
108 var messageTimeout;
109 var contraption = getFlash();
110 var currentPageNumber = 0;
111 var centered = document.getElementsByClassName("centered")[currentPageNumber]; //This is where we shall add the stuff for the main screen
112 centered.setAttribute("data-pagedescription", "Fantastic Contraption");
113
114 var randLevDisplayPlaceholder = "data:image/png;base64,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";
115 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==";
116 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";
117 var refreshPic = "data:image/png;base64,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";
118 var chatButtonPic = "data:image/png;base64,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";
119 var chatButtonHoverPic = "data:image/png;base64,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";
120 var rightArrowPic = "data:image/png;base64,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";
121 var leftArrowPic = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAARAAAAEQCAYAAAB4CisVAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAITJJREFUeNrsnXuMVsd5xmcvwC67LCwmwJrbspgEHMlcnNROAAWHRHaLpTihVRPhPyChamgdVYodqbWbRmntVlWcVlWskDYkdtWg2GqQHcmkjhLHuMbGjRswlsxF1ICN7cXY5rJmvctlofOcbw4+LLvsdzkz886c55FGH17wfufMmfOb9zYzdbtu3qSowqoux991gd1ZPDWyC6KGwwTdFmY+G3Rbav4eP1uQ4/c9q9s53U7otsv8bJv5GT7P8pEQIJRMtev2MQOHWbpdo9sSx9eQ/b7PDfH3J3V70bRXzSfBQoBQjjXKgOJ687nQQEO6xuv2KdOy2mVgsssA5QU+YgKEyk9XGVAsM583RHZ/Cwa5UqcNSJ4xn9vMzygChCpDXQYUaZtfsPsfo9sK01K9kIEJwPI2h4kM1TEL413zdFtuYIHPaeySEfWyblsNUPB5hF1CgBRFTbrdlgHGR9klNevZDFCeYHfQhYlNUzPQwGcLuyRXLVEfZIHe0O0xAxN89rN7aIGEbmmsITS8qFe3hwxMHmZ3ECAh6JYMNBjPkKOXMzB5nt1BF0aatQFg3KrbSnaHSCHW9B3z5y26/YRWCS0Q30IGBenGv9BtLrsjOCE9/GNjmTBWQoA4Bccq3b6lSpWhVNhC4HWDbpt128vuKF/17IKKwXGPbi/pdi/hEY2mmef5knm+89glBAjBQVWqUQQJAZKnmgiOwoPkq2YcUARIRVpNcBAkqhQbwTj4IruDAClHSMP+SpXSfMysUMqMg5/q9p+63cjuIECGEsrN79Ptcd0+w+6ghtAf6rbduLUUAXJRXzRm6t3sCqoMwa39rWLRYOEBAqvje8Y8/RDfC6oCfdxYq/cRIMW2Ou7gu0DVoLuLbI0UFSC0OihaIwRIxUIE/Xe0OiiL1shWVaBtKL2vxr3uvo84+Z6X7tl3p/64v0ijuaGpXjV3NKn65tIn1DK72fxdg/7ZmNy+69TB95PP833nVd+R0h7IvQfev+TvCqJPGdd4vR7bGx2M62IDxEEHT1alYqAvxA6Klq6xavSERjWqfZRqnT3W6TVkv6/t2tbSHz591cWfDfRrsHT3q/7u0+rM8bPJZ8RgwXv1Qz32PmlAcjrmG40ZHp838JgS033hZW3S1kP6ObpdfqEsIIfrHQy2Pg2Sfg0WfPZqoOAzIq3V7Vo9DgGRnQRIWPCAu3JnDPcCV6NFv3iY2V1bFi7uDa09Y6nA9YF10rPnVGKtBC6c47NDj8evaYg8QIDIBwcyKz/X7RMh3wdgMX5+q/4cl8zeRRHuFfeOdvXKyQlAAJKe3adCd3m+Z1yatTG5NI2RwQO0f1S3jlChMXHR+A9iCFTink36ZHvSYJ307H5PnTRACVBf0m0hXGsNkX0EiCx4/KmJd9SFFs9oX9xWOEujWuukffH4pAEmx3ecTFpgcROkeLebuMgjBIgMeHxff6wP7UXArBpCAFRqH6aWCQDyznPHE+sEYAlACPk8rMftAg2RuwkQf+BAIcNTocQ7ECzEgAc8qHz7dcaqqWpg5eTEIgFMAgm+/pUew50hx0UaA4YHKtAeDAEecFMmr7gqugyKZKuk5N70hBB4RVykU4/nm0KESGPA8IDl0UFwUEP6CCZWAoAcffJd6SDBJLgzxOBqfYDwuEE6PACMrnUzkkZ48FmUKQRXnzKTIwFiCR5/LBkeBEcYIBEcuO4IDSLBAMTAAzGPZmnXhgGJIB7BEQZI5t3VlTwvoWlzQGS7Ge8ESMzwwACcsmKSmntHJzMrgQnPa9435iQBV4mXh/EeAkTEA0QqPDCTARxTPn0VC8ACFZ4byuXxHAVajs0hQET0yJcIDwy6ztXTpPvSVCVvaseY5HkCJsImA/EQEQsQifDAGhWYvVyrEqfgzgi0RjD+N0gNrIoEiDR4pFYHGt2VuAWrUqA1gpiIyOyMuLchU2EqAh5J1J5WRyGtka51M3Pd9rFGiUzxigJIpsJUBDyQYcFsRKujmAI84NIIytQAIo+aNWAEyCB4TFFCisQAjDTDQlFwZwS5r2nFqgiIiOgR0xkiNgJKXRZBpislQHBhMakIGRdYO7OBAPlAjyoBq2pLfi9dFmpolQKsM6UUDa7VE+/f+76Iul03b/J9DSI2A0JpM6tJqXKFPUfe3HJUwqXgiFZvO5v5nmpv9w2PNN5BeFCVWqtC4iJwZbxlZnzePW7633z2fKkCcSbjHVRVQlwE48czRNpNCMDLIPZ152nQ1Fu6lvCg8hpHAoKryMw8WCSAPKg8HkBc2htiJoOlVC5Kg6ueIYKtEZ0fGu/jDbrD3Kwfe2/xeGZaqNyF8SQAIt/TbVHMAFlkbtIbPJBtoSibEPEckN+gHMZDXG6qPEZ5LH4hPErnzuIgaxx5cObEueRnOIc2VZ/+u3LOVcEs29DUUJqBmuv1fzcZ17BZ1eufFzmuBIik4ww7w3vQDeY9+3JsANlgbo7wcKDsqff9uuW5K/ngk+DSYybfGhQXaEoOzm5SzVPHqJausYVyGz1DZK1uz+m20fYXuSokW6fbDwkPu8DAIdTpyfYSBai0zB6bWCpFOcrz8OYjviACE/M63faEDhBkW15SHs6giR0emPlLB00Hc6TjZa4QnhGgEqvbg+dyYONrvs7vfVq35aEDZKtunyI8CI2RrBNUd7bNb41uq0jPEMF6mXtCBch9ujk/PDgt7olFCHoe39mTmMKBnPlak1Cn0764LarlBZ4hcqtuW0IDyErdHvcBj1iKxHoPvq+O7ejx5UOLsEoAEVgmMTxPwH//A4d8WI4v6PZ7Nn5xw/prVtm6aJBpmusBd81XZwU/2ACO1zcfUW/95t0kg1JU4UVLIPrbE+rCgEoyOvWNdcHeT0Nzgxr34VZ18qUedeHcBZdfjfdwtG6/CQUgcF2+6PThaGjMXhP2UQtZcJw5cVZRJeFliwUko8Y1Jg0ZM8daptv/6rZfugvjxXUJ+VhJmLYAh/AT5OXM5HqymLRkYtBbTnraTyR3V8aGBeLcdUG2Zfy144I00Y/88m312iPdtDiqsEgQWEbMK0Src+yM5qQa2LGLivcS9SHP5PUL8w4W/LluH3fZIwiyhRitRzp273deSWYiqnrL7ZWNh9WhTW8EmdLGZs0e6l/u1e1GiRbIPN1+jt/pqifQ+bPXTA/O6njtkTeTOIfjQFq0Ov32mSQ+Uj+qPpnZQxHiOOPmtiRZNsdjoVO3/5BmgdypmzNbEn7wrNXTghroqdWRrh2h8gUzYgqhWSNwv2ascn4YwWdUTkmOvACCi1nnNu7REYzvG+rgDlEppHsDCkhja0QPh1f9rW5NUgDyFZd3npQ8B3LUJCoPUYHIWIdbYCM2AjcxFHmIh8zN473NAyBfNSaRs7gHOjuU2dBj+XLh9daT7+j+PxyM1TddW9WOiyD/WZVil94AAhPo667uFp07fVVHGINXz350WfwLtTWhQByTI85jdijEAGrKotQKkDXGFHIidG4Iy76xBwRmP0qWGxlCXATuueOCyG/VYoXUAhCn1gc6VdAp6cP63lgsVdTFb9KfDeIiITyb6aumunRlarJCarlKZ9ZHyXWZKn6AMt4hXx53CCtbyC46dmWqtkKqBYhT6wOdKTllS3iEBxHpGRrHrkzVVki1AHFmfSDmIdl1ITzCFGJUAIlkdbjNNlZlhVQDEKfWR4fglC3hEbbgykiGiOOsDKyQ5S4Acpsr6wOL5KQu0Sc84oGIZHfG8W5sX1cVVqdWc2W3u7gTdJrUgjHCIz53Rmpg1fF7MNeEJ6wB5BZV2jDIPnmXTBS5NSHhEackZ2dgiTusf7rVJkBWuLiDJI0ldLcpLIojPOKFiNRn6zAWuNIYCrkDBIUY613cgWR4sEgsbkm1LluTE/2cxQOX2gAIgqctLqwPiTuMARxcURu/4KK+vrlb5BqmySucTaxrVJnB1EoAcquLK5dofWBG8rABLuXxeR/WECmwFTLNGAy5AeRG5SB4KtH6wEz0KlfVFk7YikFietehFVJWtrVcgCx1ccUSrQ/MREU4TpK6XEjvSlvB69AKgcEw4gK0cgFym+2rlWh9IObB/UuLLWRmpFmfDq2QEd/7cgAC92VJ0awPWB3c04PCOJAWD4EF4mhx6Yhxz3IAYt19QcFYm7CDoV4XOPNQfgQrVJol6mjCHdGNKQcg1t0XuC6Sqk7huvCYSepSV0ZWatfhO7O8FoBMdeG+SFquT9eFGkrp0RyS5ChmuLQWgFi3PnA8g6TNgt78xVG6LtSQQjGhpKyMo4l3TS0AsR7/mLhITuYFg4NZF+qKE4wgKwQTr4OULqrPb6wWIMttXlkpeCrngCjpO1RR/oUqVUnrodoXt3l1Y64EEGxvNs3uzcuxPjAoWDBGlWuFSHFzkb10EExdXg1Altu+KkkACekYRMqvAA8pCysdlUBUBRCr8Q/4b1IOicJgoPVBVTRmnj0mxgoZP996GABxkI+JskDa5suJfXCZPhWyFYI4ogM3ZlklAOlSBYl/MPZB1WKFSJEDN2ZpJQApjPvC2AdVixUiJSPjwI2RAxAp7gtqPmh9UDFMQC1d1utBsCnrh0UARMpZL8d2cn9TqjZhApJQneqopmppOQDBMr/5dv21VhEPnlWnVC4T0Y4eEdfhYGIuCyCFsD569hAeVD5CHERCSrfF/ru1rByALAvcVytLTN1SuU5Iu9/zfg1ITFhO516jBu0P4twCaZnd7L2jsZ6BwVMqT50UYtE6mKAv4UPjoL/EuvobYndhYjgcCjNNc0eTatKzTjYt3qR/NtwslAb7AM8zJ86p3gPva5j2c/uCXCyQU0k/+t4YC++X5dgeAPKz4QDC+Idgof8QgIavW00dTeojt8w2PzDb4qWZBMyigAqBUr0b47tAssl+fdWNV7JArg/85kZUMvsG5L4AFNg4xuaqS1gwo9vHXxz8mMGQ4maWqnI3xjdAHEzSNxhP5WwhLZBQrA8MxImL21xE1i8TrBw0gPb4zh5RC8ckC9abFEvV8p6+4MRTQwFkYewWiPTNkvHwp6+aKmKbR1wDdv+GBYSsFUFyZaFv4Aq2eJ4o8Z5ZHucLhwIIRuws2wOSs8TwfTNDg6NFSJwoK7hOAEn7orZkz1i6NleaoPq8P0MH79lFTtQXyX1B+lbiDIoZfu4dnSLhMXhgdq6eljRJx3DQjXFu6V/cG6SxSO6LtHNO8RJ23j5NPDgGC/GReV1zkrNSaI3Ic5EdTNY46qVOtwvZacTqUVcNzQ0iLBApQnZl3jfmBAePS+CnLZGrV04mNQSOMwcW4gSnLoyECtT+7n4RAwwZFrgsMbgBcL/mrJtBl0bYOEORoWUtHAyQCXaJSAskhQeCpTEJVlTXupmEiKBxNsp+ILUzCxD4Mwtsm+w+JSH+ESM8ss8XVpWUneb8WiD+ATLaMUAsWx/+Z6aBPr/Zl5jhkR2001d1FN4S6ZPgwky1DvIFWYBYzcA48MdGfqhH/M0KRYBH1hIpujsjoVSgvtltELUx9ofqa/0LXqiiZSpwz0hPF9sK8evGjJ7g1oWxm4ERsInQWQ8AwSxc1NkYgdUip3jP9w94dyctC9WodYUZ2QMeHihm4SKb8qVVxK2FvHdJNUdWXaV0suQDzVdTVkwKtkgsT80oaFBVQhzERSbGjQsjoIjM9YOb8umrFFVy4wARysM4nOAOIJwNcp11p3L0ZgQ3prVg1pjUVd+2XJio5bK0ON1ykLpU0wlVAoQaWVf/AReXDefWSTlQvTAvt4NakMLUgbgQXhAJmyZJFeNCbuViQR0AgnUwS2x+S1H8X74gI1shRU3r0oWhRoQkrY+RNXER3RgChLpMKJqiRhYsEIKWAKEyQq0DTfMKIDKffUWAUJlZdRw7oUJ3jyJAKKPxnFErdmMoAoQykrDamFYIx4QvgFzQzepx9TGfZoa9L7gXaOVq4taHUVkgL9r8Et9bvDVZLKhpErDbWohiJoYuTDCyaSFwE2H2m1Q5WNC3jbY3XwTKglqLsYXFuXq+6LVp1ASa4nT96MIUwI2xs+kafXl5biXlHiDbrPpiB/u83+govuiEiMvxJsAyPXPC+kbih9InOBD7YLVhKdD6qNWtjNONARgljA0HR5kcKk4MxMJJXaMZ/6hJsRZbFamw0I0LI2B/yIZm+tzSFOuiOglLGxycQrBLtwvpW3Uu+tmOC7gEujBjonQDJYw1B+cgnchaIFFXomYHLCVLse2TKmW/k/P2D5O/BCAn7NJQxlqYvGsPTh18nwSoFSCL2qK6Hyk7rjk4TH5XFiAX0h8E7JPRAglQMe3WLmnP14E+ty6MAyvEf6aYcRCZimUzakn30W9/wn5xMECiLyazsfS+l25MLjN36HvKYn8TSZaUg7jjZQB5N3CTqjwrJOcc/UDfeRIgj9l7xaSgK1M7Vso6UMxB3PEyF8ZqJqZfQAwknSlyJf2R03z7cxDg0Xn7tGDhJym+5iC4/6wqxU3duTBSMhZ5x0GKcoiyq2cTmiuDCUlaDOes/RL2/0v/kAUIvvVVm9/qoDZ/ROVdvCSlxiUWXa1dgVCyMhhLswRaTY6qUC8DSGHcmDxLqOFruk5R9+w+FT1EpKfcMQl1rZspMm7jKgMzFEDs1oIIiRfkPcP17HH3Qh/efES989zxqAGClxIvp9TjHwC3uXd0ig36OggXbBsOINEvqrPhxvTsfs8ZPI7vOFkItykJqq6eJi4mgpiHVMvDofty1gtAJJV+5+nG4KHZfnApPFK3qSiCOwOQSHhhkW3pWjdDdLq516H1MRRA+lQBStqhvGe29OW2DY9URYIIXBm4DL4Oo0pdlhAqZk95Boh9N0aIFQIXJs8BiRfcxks9FDyg/oJlf0pByxmJNeJqtSssDVhAgEco66hcHOXgFSCS3Jj2xfmtBAU88g5uDgePIgvWyLy7utSMVVOtvdQAFMAx7xtzgqpLgXVv2TI9qNvr2R80ugaIpBQksjFv/ebd3OpT3nn2WDLg8vCRR4LHqYN9hV4ciGeHhpcG/YRMWC3PEc+s7dpxyW5ioR7+7Tr+MRxAXjekmW3TCpFyuHICkSffydUKqdVXpuVRWXyiWVsLsBgAELxEZ06cu2jKD2XxlhZVNiTn88LaAIhj2OrhlBCApP/QGkBghUgBCCwGWA55mX61WiHlwkNCVa/EOMnodlPjE8kWAcKs+8sAUl/uP8z1RvfIcWPwok9aMjHXWMjhzd3WLY+zBAjlFh7HdNstAiCYPaWkc1MrJM/cPh5mpQ+UbgtVi07ucW99XAkguw1xrEnSRjx5WyElIHSX7WZUAw/ux0pdOmlZr4Z+phKAWLdCpM22eVshcGVe3fQGLQ/KifvioLCwIgtkWOLkJbgwkgKBadFQ3vcIQNiChyQ3kIrafenV7XlRFggkbVUpUrp5p/MAiKHuMw/L43z/AN8eyoX7snW4v7gSQJ435LF343vk7WtxtYW9Ld/ccvQSWOTltnA/VsqR+1IVQKDHbF4VXBhpm+PY2lYvhUaeMQ/ux0od2+kkfratWoBYd2NOCrRCbO0QzoApFeAEPGz8oxyAbLV9dXihpFVVAh4zVnWIH0Dc0LnYOr6zx8XXXNELGQkge1VpC/cYOqIiYUFVbAc/U5EBZIdf96UcgIxIoIA6omIhoCrhpPVhTdgTLGcvMjwcWe41WSAjEigvX04iRODKzFot97AjLqgrMkCcWO1bdDtSK0AQQHnZ9pViXw6JQl3I1cKOLcyqSFsbUiVhGYOjpQyPj/QPyk01WHdjMJtKXd+BtK7UeEg/D7YqnBwWYI743pcLkG0urvbok++KfWghHHZExS+HtVMjui+VAOQJ5SAb49A0q1jpYUfStvTnephiyaGr/3g5/6iSt+EnRbdCJEKEMZBiWR+Okg29qsywRSVvwmMurhwWiOSzX+HGSCoyYyamOHrzF0ddfdWGctyXSgGCX7gxso6qSigyw7ECEsStDYshxxPrk+X+w0pt8c2RmWpVC1mZ1gIfq0C5lUPXHrHOJ2wBxEkwNbFCthwV7d9jYZyEgC+3NoxfmEwdPueKYp31tr+gWgEeeZ3XYgMeXFVLOXsP3GVesAfnQ7YBgi/Y7+JuUDAjLU0pER5M5cYrvAMOA+UInlZUmVgNQPAF/+Tqjrq3yAmoSrU8uLVhnAI4HFrhoFTFMc5qCxq2mi904uNL2DtVstvCrQ3j1Oubj7j8un9Rpe07nAAEX/RtV3cGCvusd5Ae8+DWhvHJceAUerKa/6mWksrNrqwQBJIc0zgYeFDxCeP9TbeuO+q7nqjmf6wFIE6tEB+uTCjw4NaGcQmnGjouYai6vqvWRR0/0u3tGF0ZWh6UD2GSdLyU4/5qrY88AAK/4m9cmnblHBeZh/8ZEjy4tWEccpx1USYE8aNafkEey0ofUo7qQiDUPNgsrEnPbglt4FHhC5OjY9fl26qKzEveAOl3aYWkroyNCHWI8MhaZ1S4QtDUcUEgJv3v1vpL8trY4mHdfuaU1j95I9eZN2R4JBTn1obBCjEPD7VO31YVVp3aBIjKg2aVzrh5xUNChwcVrjAJIuviWL/WbVMevyhPgGD39r922Qsw+Wp98WOBB9fDhOl2eoh75DrZ57033326veCyJwCAas2/mCwPxkDCk4e4B3SvqiFtO1iNlnyrx10/iNETRiU7hVWipo4mNWfdjEtm8eyL2Nfdr85n1pkgXSo148FMTFhCJtFDqcB+M8kryQDBdvB/r9vdLnsGfmRX+8yKjl4Y/G9bKtxhDC/t2UwNBha1ZdelDPQNqP5BM4yt9Q3c2jAcARye9rpBtrRfOkCge3T7rG4fd2nCH9j4mpp7R6ez82zxPYO/q1IrqHcQUE4d7BsU27jUCsJ/010JV3nE7arUA6qULc1Vdbtu3mTrgle6dmVSq0Li+S02XZfUCmrhHq3i4YFJzsMEsEO36238YptvWerKFOUheREsIICD8JAPeo/j0lqhp+1pGq7M04QIVWR5TNcqM4lvCRUg0HrdzvmACKpVKco3PDCZearTedpM4tbkAiB7DEScCxkPVphSBYXHORfvnatII3Y8etBHL7JMnSogPFLLf08sAElvaJ8viBzy54NShIdrPagcHUPrEiCnfbkyEFY8MrBKFQAeTkMGroslntLtm756ltkZKnJ4QKvNZB0lQCAs5vkvQoSKSRhXe7/zim94fE23nS6/0Fe55ueVgwDPlR72/gcOcQk8FdOk9FNVKld3Kl8AOW0g0uert9PKQEKEqkUI0AuABybjtT6+2OeCkX2+bjrrs8IS4fENVDXCPjQoEfAMj+NmMvYyEzasv2aVz5t/WTesqV/m8yJ69pxKBsG4D7fwraDKEsDx9n8fk3ApmISf9vXl3pesXnffR+42/pv32YS1IlRgVutf6vaIzwuQsuYdFN3u+yLSWhHGRaihJCTTkmqDnnz/0fdFiACI7gg8kZuUx8xMdpAAIoyLUIMtVFgeQizU7fqd+TMJFyJm1x0DEQSDun1fCwYJfFwBATJKwFiAa4t9d4Vou5lsRUjUtl0aIvtM53RLuB5YIawXKa6wmhsui+PDrq8kWOg3mcmWAAkBIqgXAURsnsdLybM6YHEc2HhYkgWK9+HzkuAhEiAZiHgtNBss7KJNa6QYVgees4ejJkeCx03mvRAlsTsP6876H1XKzoiBSFoCT2skbqtD2Bk7YuEhGiAGIo9Ig0hqjey9/4C1M14ot0KMQ6DVIR4e4gGSgYiI7ExWpbU0h5NMDU+FC1PpM0SWReAzFA+PIABiIPJLJSiwmlWaqYFbw5RvWO6KYCsyCHgEAxADEVHZmcEDMg2ysgBNtgB6pGYFuivBwSMogEiHSGoSw6XBzEaQyLMU8VwAesGWIorEFoQCj+AAkoHIIiVg7QxBEg44AohVbTeWx9sh9W+QB8jqTn7LWCLbJV/nYJAwRuLQpdSuyst/tz+UIPeDSliFablqDHWQmM7+5Ev37Pu+8rjbeyUgadhyVE1aMlG1L2pLzrSl8u9ngKNn93shwfofzJYWQaox9EGDVYkaIrv0HzfoVid+ZtQ+OFrbta1q4qLxySdVu5tyfEdPaHU5qG1aa8oUFAHiFyL/qiFyyJiCHSFcM4qX0GCJtM1vVe2Lx6vmjjGkQblvX/fpJJMSmLWRKqhMS/QAMRD5pYbITQYinwjJ7MaLgAaAACQACl2coaEBawNbUAZcvIe43edCC5ZGDxADkX0GInBn1ob4gvRtOZoUOaWWCVyc1tljCwsNWGknNTB6tXsSQcXvd/UYvSum59MY24AzwdUva5A8Z0AS5D1mLZOGpnrV0jU2AUmLbjG7Oohj9B7sU70H3o9prRGyhuv12Hw0tufVGOtA1A9ro4bIs/qPPwrJpRlK8PHTmAmUAqW5o0kDpTn5xM9ChGQ/rK4jp2MDRlY4hXGNHo9HY7y5aAFiIIIdnJDqvV9/3hnLfQ0GCgSXp0lbJoBJ89Qxqr65Xozrg+vt6+5PYHERGvq/C1AX8009Bu+N+QYbVQEEv9NYI3BppsR4j3gx0QZvvwfLBFCBYLUksJnQqEZlgrTVgib5zhMfxCXgeiTA6BtIIDHQP1DUDZj2GZflqdhvtG7XzZuK9GAnG4h8QVGUHf1YlQobzxThZusL9nDhh+Iovrs4zqmcBVNsnW5fKQo8igiQVN9VpcDqrznuqRz0M3jKqhSwL5TqC/zQn9fts7RGqBysjj/SbW8RO6CeY4DWCEWrgwDJxxpZb2YVihpOKEG/vchWBwEyvH5gZpWN7ApqCN1rxscmdgUBMpwwq/yJbrfSraEy7srv6/ZN3Y6wOwiQcrTFuDUwV/ezOwopTCBfMu7KE+wOAqQabTJm63qCpDDab543JpCH2R0ESK3qVx/ERwiS+MFxnXneFAFCkFBluSpZcPSzSwgQVyD5kmKwNVRtMc/vswRHdWpkF9QMkodNu0W3FWYma2HXiNUbuj2k2zbFwGjNKtpqXBeaqtttqpS9WcLuEGVtPG7gQUuDAAlCN+q2VLc1un2U3eFc2APmMWNtPM/uIEBC1i0GJstpmRAasYgxEHd6IuNzzzMgudV8MmZSvRDT2GqAAXCwUpQAiV57TfvBIFdnOYFSETC2Ki5oowtDXabFBihp6yhwX+w3sEB7RrH2hgChKtacDEyW6faRiO/1dwYUKTTe4uOnC0PVpldM+3fz3x8yMLnefC7UbXyA9/Wqbi/qtisDjD4+bgKEsitsavOoaalmG5CgLdBtkpKT7TlpQPFiBhpox/koCRBKhg6aloVKnW4TDFQajbUCzdKtMzMGqgUNYHAo89+wIAZ0O2EAkX5e4OMhQKjwdMHM8ukBR78a5t/V1fD7qQLr/wUYAORDxsLB1fTBAAAAAElFTkSuQmCC";
122 var settingsPic = "data:image/png;base64,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";
123 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";
124 //Zones
125 var bottomZone;
126 var rightZone;
127 ////////////////////////
128
129
130 //-------- BEGIN THE LONG FUNCTION THAT ALLOWS ME TO HAVE OTHER FUNCTIONS IN IT! --------
131 //(function() {
132 //Disable if no cookies
133 if (!navigator.cookieEnabled) {
134 alert("Sorry, you need cookies enabled to run FC Enhance.\nIf you think this is a mistake, please contact marjo.");
135 return "Browser does not support cookies.";
136 }
137
138 //Add some zones for standard layout
139 function addZones() {
140 //Bottom zone
141 bottomZone = document.createElement("div");
142 with (bottomZone) {
143 style.position = "absolute";
144 style.bottom = "1px";
145 style.width = "99%";
146 style.textAlign = "center";
147 id = "bottomZone";
148 }
149 document.body.appendChild(bottomZone);
150
151 rightZone = document.createElement("div");
152 with (rightZone) {
153 style.position = "absolute";
154 style.bottom = "0";
155 }
156 document.body.appendChild(rightZone);
157 }
158 addZones();
159
160 //-------- ADD THE RANDOM LEVEL GENERATOR BUTTON --------
161 function addRandLevelStuff() {
162 var randLevelHub = document.createElement('div');
163 randLevelHub.style.position = "absolute";
164 randLevelHub.style.top = 48*scale+"px";
165 randLevelHub.style.right = 20*scale+"px";
166 randLevelHub.style.width = 300*scale+"px";
167 randLevelHub.style.borderStyle = "solid";
168 randLevelHub.style.borderRadius = 25*scale+"px";
169 randLevelHub.style.borderColor = "blue";
170 randLevelHub.id = "randLevelHub";
171 randLevelHub.style.fontSize = 1*scale+"em";
172 randLevelHub.innerHTML = "<center><div id = 'innerHub'><legend>ID36 Random Unsolved Level Hub</legend></div><center>";
173 centered.appendChild(randLevelHub);
174 var innerHub = document.getElementById('innerHub');
175
176 var display = document.createElement('img');
177 display.src = randLevDisplayPlaceholder;
178 display.style.height = 132*scale+"px";
179 display.style.border = "none";
180 display.id = "randLevelDisplay";
181 innerHub.appendChild(display);
182
183 innerHub.innerHTML += "<br />";
184
185 var genButton = document.createElement('input');
186 genButton.type = "button";
187 genButton.value = "New level";
188 genButton.style.padding = 3*scale+"px";
189 genButton.id = "randLevelButton";
190 genButton.addEventListener('click', function(event) {
191 getRandLevel();
192 });
193 innerHub.appendChild(genButton);
194 //genButton.click(); Uncomment if we want this to run at page load
195 }
196 addRandLevelStuff();
197
198 function getRandLevel() {
199 document.getElementById('randLevelDisplay').removeEventListener('click', this.redirectToRandLevel);
200 document.getElementById('randLevelButton').disabled = "true";
201 document.getElementById('randLevelButton').value = "Loading...";
202 document.getElementById('randLevelDisplay').src = randLevDisplayPlaceholder;
203 document.getElementById('randLevelDisplay').style.border = "none";
204 document.getElementById('randLevelDisplay').style.cursor = "auto";
205 document.getElementById('randLevelDisplay').style.height = 132*scale+"px";
206 GM_xmlhttpRequest({
207 method: "GET",
208 dataType: "text",
209 url: "http://id36.ueuo.com/lvl-us.php",
210 onload: function(response) {
211 setRandLevel(response);
212 }
213 });
214 function setRandLevel(response) {
215 srcXML = response.responseText;
216 //Find image data URL
217 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.
218 dataURL = dataURL.substring(5, dataURL.length-1);
219
220 //Now find link
221 var href = srcXML.match(/href='http:\/\/FantasticContraption.com\/\?levelId=\d*/g)[0];
222 href = href.substring(6);
223 var unsLevId = href.split("=")[1];
224 document.getElementById('randLevelDisplay').src = dataURL;
225 this.redirectToRandLevel = function(event) {
226 //unsafeWindow.location.href = href;
227 loadLvl(unsLevId);
228 };
229 document.getElementById('randLevelDisplay').addEventListener('click', this.redirectToRandLevel);
230 document.getElementById('randLevelDisplay').style.border = "1px solid black";
231 document.getElementById('randLevelDisplay').style.height = 130*scale+"px";
232 document.getElementById('randLevelDisplay').style.cursor = "pointer";
233 document.getElementById('randLevelButton').disabled = false;
234 document.getElementById('randLevelButton').value = "New level";
235 }
236 }
237
238 //A big thank you to uJellyBrah for the idea and major help in the making of the chat hub, and the multiple pages feature
239 function addChatHub(changingNick) { //We will in this function add the default username box etc. This is the logic thatcontrols the chat
240 if (!changingNick) { //If we are not changing the nick create the hub
241 //Add the base DIV
242 var chatHub = document.createElement('div'); //Create the surrounding div
243 chatHub.style.position = "absolute"; //Positioning
244 chatHub.style.top = 258*scale+"px"; //etc.
245 chatHub.style.right = 27*scale+"px"; //etc.
246 chatHub.style.width = 284*scale+"px";
247 chatHub.style.borderStyle = "none";
248 chatHub.style.borderRadius = 25*scale+"px";
249 chatHub.style.borderColor = "blue";
250
251 //chatHub.style.textAlign = "center"; //Center everything
252 chatHub.id = "chatHub"; //Set an id
253 document.body.appendChild(chatHub); //Add the div to the document. It will not dissapear when other pages are requested
254 }
255
256 //First, check if there already exists a cookie for chatusername, meaning we have already stored this.
257 if (!getCookie('chatusername') || changingNick) { //So if the cookie hasn't been set, or we are changing the nick
258 //Add a title
259 var title = document.createElement("h4"); //Just a text element
260 title.innerHTML = "What is your chat nickname?"; //Text to show
261 title.id = "chatHubTitle";
262 document.getElementById("chatHub").appendChild(title); //Must use the id and not the variable name becaue if changingNick the var is not defined
263
264 //Create a box to enter username
265 var chatInput = document.createElement("input"); //Create the input
266 chatInput.type = "text"; //Textbox
267 chatInput.id = "chatInput";
268 chatInput.style.padding = 5*scale+"px"; //Just some styles
269 chatInput.style.borderRadius = 5*scale+"px";
270 chatInput.style.border = "none";
271 chatInput.style.height = 30*scale+"px";
272
273 //Now create a button to save the info
274 var chatSubmit = document.createElement("input"); //Create the button. May want to replace with an image later because images>buttons
275 chatSubmit.type = "button"; //Button
276 chatSubmit.value = "Save"; //What the button says
277 chatSubmit.id = "chatSubmit";
278 chatSubmit.style.marginLeft = 5*scale+"px";
279 chatSubmit.style.width = 160*scale+"px";
280 chatSubmit.style.height = 56*scale+"px";
281 chatSubmit.style.padding = 5*scale+"px";
282 chatSubmit.style.border = "none";
283 chatSubmit.style.borderRadius = 5*scale+"px";
284 chatSubmit.style.height = 40*scale+"px";
285 chatSubmit.style.cursor = "pointer"; //Set cursor to pointer, to make it obvious it is clickable
286
287 chatInput.addEventListener("keypress", function(event) { //So pressing ENTER submits the thing
288 if (event.keyCode == 13) {
289 chatSubmit.click();
290 }
291 });
292
293 //Now create an invisible submit button so by default pressing ENTER will
294
295 chatSubmit.addEventListener('click', function() { //When the button is clicked
296 if (!chatInput.value) return false; //If blank was entered
297 if (chatInput.value.toUpperCase() == "COLIN") {
298 alert("Welcome overlord and savior!");
299 }
300 document.cookie = "chatusername=" + chatInput.value + "; expires=01 Jan 2999 00:00:00 UTC; path=/"; //Set a cookie using the value of the input textbox
301 giveMessage("Default chat username set to " + chatInput.value + "."); //Let the user now something has happened
302 //We also want to hide this stuff and add the box to start chatting.
303 document.getElementById("chatHub").removeChild(document.getElementById("chatInput")); //Remove the textbox
304 document.getElementById("chatHub").removeChild(document.getElementById("chatSubmit")); //Remove the button
305 document.getElementById("chatHub").removeChild(document.getElementById("chatHubTitle")); //REmove the title
306 addChatHub(); //Call itself, because cookie is set it will progress down the 'if cookie exists' branch
307 });
308
309 //Now add the things to the Hub
310 document.getElementById("chatHub").appendChild(chatInput);
311 document.getElementById("chatHub").appendChild(chatSubmit);
312 }
313 else { //If the cookie exists
314 var startChatButton = document.createElement("img"); //Create the button to load the chat
315 startChatButton.style.marginTop = 30*scale+"px"; //Offset it a little bit
316 startChatButton.id = "startChatButton";
317 startChatButton.style.width = 160*scale+"px";
318 startChatButton.style.height = 56*scale+"px";
319 startChatButton.src = chatButtonPic; //Set the image. This variable was defined in the variables section
320 //We want to add a hover image, to make it clear you can click it.
321 startChatButton.addEventListener('mouseover', function() { //When the mouse hovers on the button
322 this.src = chatButtonHoverPic;
323 });
324 startChatButton.addEventListener('mouseout', function() { //When the mouse leaves the button
325 this.src = chatButtonPic;
326 });
327
328 startChatButton.addEventListener('click', function() { //On click
329 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
330 document.getElementById("chatHub").removeChild(this);
331 document.getElementById("chatHub").removeChild(document.getElementById("changeNickLink"));
332 });
333
334 //Add the button to the hub
335 document.getElementById("chatHub").appendChild(startChatButton);
336
337 //Also add a small "link" to change your nickname
338 var changeNickLink = document.createElement("a"); //We are using an a tag since it is blue, default pointer cursor, and small. Links with no underline look really good under bigger buttons
339 changeNickLink.innerHTML = "Change nick";
340 changeNickLink.id = "changeNickLink";
341 changeNickLink.style.textDecoration = "none";
342 changeNickLink.style.display = "block"; //So it starts on a new line
343 changeNickLink.style.fontSize = .8*scale+"em";
344 changeNickLink.href = "javascript:void(0);";
345 changeNickLink.addEventListener('click', function() {
346 document.getElementById("chatHub").removeChild(this);
347 document.getElementById("chatHub").removeChild(document.getElementById("startChatButton"));
348 addChatHub(true);
349 });
350 document.getElementById("chatHub").appendChild(changeNickLink);
351 }
352 }
353 addChatHub();
354
355 function addChat(userName, area) { //When this function is called, it will add the iframe and set the src to include the username
356 var chatHub = area; //Take note of the area to put the chat in
357 var chatFrame = document.createElement('iframe'); //Create the iframe
358 chatFrame.src = "https://widget00.mibbit.com/?server=frozen.coldfront.net&channel=%23fc&noServerTab=false&autoConnect=true&nick=" + userName; //Set the source
359 chatHub.appendChild(chatFrame); //Add in the iframe
360 chatFrame.id = "chat"; //St an id for the iframe
361
362 window.addEventListener("resize", function() { //This is all just to make sure the iframe resizes based on the window dimensions
363 var vw = unsafeWindow.innerWidth / 100;
364 var vh = unsafeWindow.innerHeight / 100;
365
366 var heightPercentage = 60; //Change this value to tune
367
368 var chatWidth = 291*scale+"px";
369 var chatHeight = (heightPercentage * vh) + "px";
370
371 chatHub.style.width = chatWidth;
372 chatHub.style.height = chatHeight;
373 chatFrame.style.borderStyle = "solid";
374 chatFrame.style.borderRadius = 25*scale+"px";
375 chatFrame.style.borderColor = "#2550FF";
376
377 chatFrame.width = chatWidth;
378 chatFrame.height = chatHeight;
379 });
380
381 window.dispatchEvent(new Event('resize')); //Set initial sizes based on window size
382 }
383
384 //Add button to go full screen...
385 function addFullScreenButton() {
386 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=';
387 minusIcon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAACXBIWXMAAA9hAAAPYQGoP6dpAAACOElEQVRYhe2WTU8TURSGn3NnBtpCW4y2aP1AQghxTUTj/zFx5w9g4wrD3gXRjVt/gnHlgmBxIS5dIBNE2mkp/QLa0t65LkpTLDVGrFMXPZs5597znuedSSY5srzaZJihhkofGRgZ+B8M2D31YyD1D3lNIA+86jWQmIpLLpGQ/XhcUgByTnU+R3rqngYBrl9p517x5zbtm2alSj6XMy8PSyYJ5G2A6aTklu5bRKN04fJ7uPQ0dNL5m2evq8H4oBS0fDiuiXNUJ3VYhI0POrfvGVGWxUokLG40enHoZeAI7OXbqWPBmAO2BSEHrsZgJgnzdyASEde2WJEXr1tmcdEiFhsMvJOHxyARg1MNvgFLQSTUvf/0BdIfNSrjmfyg4QC1U/hWAK8E+TJki7CTaZsBuDcLe/vmQFWqTA0aDiA9Bx2t67Xr8TGYnJBtu1E3TlDwzmMnC7YNs3dlTiFQOwkO3omWhokwcSXA5qYOFH5eqxB4v66HAj+pUVYimFoDtA4WDvDVNdtKCUYJZDLBwgU4OjZzKhSSAwTevmsGCi9V4FZKrinHIRkeF9w9QzqtA4EjsPXZd7OeeS7Lq80n9TrPMp4/rXV7sJL2fyoCE2Hh0ZLiwUNrYPByBdY3NN8zRmxgLRSCmdvq6fGJWfD9sz7pCja3fGqncGNaXfwUv4L3qVst06geUfByJlUomiR094E1pShGJ2Whjw4Ad9fg7up+V38SDaBAn4UE4M3fTr9MDH0nHBkYGRi6gR8d572lMfn5PQAAAABJRU5ErkJggg==';
388 fullScreenToggle = document.createElement("img");
389 with (fullScreenToggle) {
390 setAttribute("src", plusIcon);
391 id = "fullScreenButton";
392 style.height = 32*scale+"px";
393 title = "Toggle Fullscreen";
394 style.width = 32*scale+"px";
395 style.position = "absolute";
396 style.top = 4*scale+"px";
397 style.left = 4*scale+"px";
398 style.cursor = "pointer";
399 }
400 //The toggle
401 fullScreenToggle.addEventListener('click', function(event){
402 if (!inFullScreen) {
403 var game = contraption;
404 with (game) {
405 style.position = "absolute";
406 style.top = "45px";
407 style.left = "calc(50% - "+540*scale+"px)";
408 style.border = 10*scale+"px solid #2550FF";
409 style.borderRadius = 25*scale+"px";
410 height = 771.42857*scale+"px";
411 width = 1080*scale+"px";
412
413
414 }
415
416
417 var freeLevel = document.getElementsByClassName("right")[0]; //Free level of the month
418 with (freeLevel) {
419 style.display = "none";
420 }
421
422 var border = document.getElementsByClassName("border")[0]; //Blue border
423 with (border) {
424 style.padding = "0px";
425 style.backgroundImage = "url('')";
426 //style.backgroundImage = "initial";
427 }
428
429
430 var titlePic = document.getElementsByTagName("h1")[0]; //FC Logo
431 with (titlePic) {
432 style.display = "none";
433 }
434
435 var topText = document.getElementsByTagName("h2")[0]; //Fun online physic... etc.
436 with (topText) {
437 style.display = "none";
438 }
439
440 with (fullScreenToggle) {
441 setAttribute("src", minusIcon);
442 }
443
444 inFullScreen = true;
445 document.cookie = "fullscreen=yes; expires=01 Jan 2999 00:00:00 UTC; path=/";
446 }
447 else {
448 with (fullScreenToggle) {
449 setAttribute("src", plusIcon);
450 }
451 var game = contraption;
452 var border = document.getElementById("maincontent");
453 with (game) {
454 style.position = "initial";
455 style.left = "initial";
456 style.border = "";
457 style.borderRadius = "";
458 height = "500px";
459 width = "700px";
460 }
461
462
463 var freeLevel = document.getElementsByClassName("right")[0]; //Free level of the month
464 with (freeLevel) {
465 style.display = "initial";
466 }
467
468 var border = document.getElementsByClassName("border")[0]; //Blue border
469 with (border) {
470 style.padding = "20px 0px 0px 20px";
471 style.backgroundImage = "url('http://fantasticcontraption.com/images/fantastic_contraption_border.png')";
472 }
473
474 var titlePic = document.getElementsByTagName("h1")[0]; //FC Logo
475 with (titlePic) {
476 style.display = "initial";
477 }
478
479 var topText = document.getElementsByTagName("h2")[0]; //Fun online physic... etc.
480 with (topText) {
481 style.display = "block";
482 }
483
484 inFullScreen = false;
485 document.cookie = "fullscreen=no; expires=01 Jan 2999 00:00:00 UTC; path=/";
486 }
487
488 });
489
490 centered.appendChild(fullScreenToggle);
491 if (getCookie("fullscreen") == "yes") {
492 fullScreenToggle.click();
493 }
494 }
495 addFullScreenButton();
496
497 function addLockButton() {
498 var lockToggle = document.createElement("img");
499 with (lockToggle) {
500 //setAttribute("src", plusIcon);
501 src = unlockPic;
502 id = "lockButton";
503 style.height = 32*scale+"px";
504 title = "Lock Page";
505 style.width = 32*scale+"px";
506 style.position = "absolute";
507 style.top = 4*scale+"px";
508 style.left = 40*scale+"px";
509 style.cursor = "pointer";
510 }
511 lockToggle.addEventListener("click", function(event) {
512 if (!pageLocked) {
513 pageLocked = true;
514 (window || unsafeWindow).onbeforeunload = function() {
515 giveMessage("FC Enhance is locked.");
516 return "This page is locked by FC Enhance.";
517 };
518 giveMessage("Page locked.");
519 this.src = lockPic;
520 document.cookie = "locked=yes; expires=01 Jan 2999 00:00:00 UTC; path=/";
521 }
522 else {
523 pageLocked = false;
524 window.onbeforeunload = defaultOnBeforeUnload; //Likely a blank string, or null
525 giveMessage("Page unlocked.");
526 this.src = unlockPic;
527 document.cookie = "locked=no; expires=01 Jan 2999 00:00:00 UTC; path=/";
528 }
529 });
530 //Let's set it to locked if the cookie says so
531 centered.appendChild(lockToggle);
532 if (getCookie("locked") == "yes") {
533 lockToggle.click();
534 lockToggle.src = lockPic;
535 }
536 }
537 addLockButton();
538
539 //----------Create_Info_Box---------//
540 function getUseFlashVars() { //For creating the info box, now based on flashvars
541 var fvars = contraption.getAttribute("flashvars");; //Get the type (level, design) and the id
542 var key = fvars.split("=")[0];
543 if (!key) {return "No level/design to load info";} //Before we go on we should return if there is no key=value
544 var value = fvars.split("=")[1].split("&")[0];
545
546 //We don't want to do any more if we don't have something for the type that we can deal with
547 key = key.toUpperCase(); //For no case sensativity
548 if (key != "LEVELID" && key != "DESIGNID") {
549 return "Not a recognized type";
550 }
551
552 var area = document.getElementsByClassName("centered")[0];
553 //First delete previous zone
554 var prevZone = document.getElementById('zone');
555 if (prevZone)
556 {
557 area.removeChild(prevZone);
558 }
559 var zone = document.createElement("div");
560 area.appendChild(zone); //Add the zone element which we will be putting stuff inside
561 zone.id = "zone";
562 //zone.style.float = "right";
563
564 var contentTitle = document.createElement("span");
565 contentTitle.innerHTML = "<br><br><br><h1 style = 'font-size:1em;'>Current " + (key == "DESIGNID" ? "Design" : "Level") + "</h1>";
566
567 //contentTitle.style.fontFamily = "'Poiret One', cursive";
568 zone.appendChild(contentTitle);
569
570 //Name and author
571 var contentName = document.createElement("span");
572 contentName.id = "contentName";
573 zone.appendChild(contentName); //This will be filled by an AJAX req later
574 var contentAuthor = document.createElement("span");
575 contentAuthor.id = "contentAuthor";
576 zone.appendChild(contentAuthor); //This will be filled by an AJAX req later. Currently no way to do this
577
578 var thumb = document.createElement("img");
579 thumb.id = "thumbnail";
580 thumb.style.width = "12%";
581 thumb.style.display = "block";
582 thumb.style.margin = "auto";
583 thumb.style.border = "1px solid black";
584 zone.appendChild(thumb);
585
586 //FCR links now
587 var links;
588 switch (key) {
589 case "LEVELID":
590 links = "\
591<div class = 'links'>\
592<a href = 'http://fantasticcontraption.com/?levelId=" + value + "'>Reload this level</a><br />\
593<a href = 'http://fc.sk89q.com/level?levelId=" + value + "'>Level on FCR</a><br />\
594<a href = 'http://id36.ueuo.com/shw-dsgn-lvl.php?levelId=" + value + "'>Solutions</a><br />\
595<a href = 'http://fc.sk89q.com/export?type=level&id=" + value + "&format=fcml'>FCML</a>\
596</div>\
597";
598 break;
599
600 case "DESIGNID":
601 links = "\
602<div class = 'links'>\
603<a id = 'playLink' href = '#'>Play this level</a><br />\
604<a href = 'http://fc.sk89q.com/design?designId=" + value + "'>Design on FCR</a><br />\
605<a href = 'http://fc.sk89q.com/export?type=design&id=" + value + "&format=fcml'>FCML</a>\
606</div>\
607";
608 break;
609 }
610 zone.innerHTML += links;
611 with (document.getElementsByClassName('links')[0]) {
612 style.textAlign = "left";
613 style.display = "inline-block";
614 //style.fontFamily = "'Poiret One', cursive";
615 }
616 //Add rating stars
617 var emptyStarImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAASCAYAAACuLnWgAAAACXBIWXMAAA9hAAAPYQGoP6dpAAABmklEQVQ4jbXUsWpTYRTA8d9XaknTBmlSg4Pd1IqkCLq4CC7dnfoODuIr+BYO4gsILo4ahyq1bTahIlShs8akYk2CJM11+G7VtEluI3rgwnfO+Z/7vxcOX/BHJMldGbHIXJ3WOXwZB4bw8Nd5Kuutg1GqcSGhtDXJ1CSSFRrfWQo0Oqj8B0nxKTdW4vl6heKTfy25SrPLwpEQzYArpxmeHlLL4RIuE65RuElY5XwyiC0v8+k9/RccbJG8xYf06YyRFJ5xsBrBhUDpIvkcBcyGQXYpsCjy7Vs0PrLfjx84/xx3jsiBwXSFE26P+Mms6GEdScha4TKv0oFJBa+RlI93hknq9MtsTCDqifxhOc5nS1JRt8wmDk8h2BT5k4JxklQ09ZjPGZI6wqNRgiwJ5tbIZ0jymF8bR2RI2oWTks6xfBbts38rKdJuciZNv6Fa4x2q2zGHGbT3/b4OJpJUsEML6xvs/cA9vgbcZ68b6y2RG31hjpP0MM0uug+o51BLe9vUZ2J9V+RG7/s4yRvCSxoB1RFMNfZDVdzjofET5Zhz1MEgqqgAAAAASUVORK5CYII=";
618 var fullStarImage = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAASCAYAAACuLnWgAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAB60lEQVQ4ja3UzU/TYBzA8e+zds86QbE6G92hEBAwZose/QPkaggm86wH0YPxIlfCWfwHDPGGkODLwaPCEYWpMRoSEzHEeEBjmehC3OjKHg/lsGpXWsKT9PB7ez59yyOUukmClaO643BEOwFsxB1KJRFYd8u83lKsu0tJxpIgRfJyi4sbgrysAYWDR765T7jvFAGYcgp8d+cOGjnLKdngRtWPrlfhpBTAmTjDekjOAPqBAeAcFe8CTTXEhz8q0LXwe5DioY9o4gXH9SXgPbC6e9VaW0Xg79r0nmHqQ8AqPxqCT7XTfHUN3tXh3vb/tzNmwPkM2LLOQPYzVroJ9PPLe85RfTgc8Zfi8hd4uhPnTQTXiAaPe0AgWtNh38TiUY8/kBSY6waB9W8pDHFIYTHbHR8a0WDWBk1YgBMH8SEpLB7acGkPaFiDaRtkKhSIQnyoqR5wrSsaudoFiql2wF4IVLwSa240suZCpVGKaolGTP0wb+rB3JgRjN/WwdQjHzcKOUan9pMZz48mO0D1lbljgepb5m6Hn5/2oFPbBMz9IAVghfEsuL2LlMxt4BZWWgC3uWI2cHsXGc8CrBBxYEYhHqAzmoO0mMDOGEB5t7aMnZGkxQSjOfCPJ28/yEtggbwUwHybnvmW+qt2G/0FAaiK7RPPbmEAAAAASUVORK5CYII=";
619
620 var stars = document.createElement('div');
621 stars.innerHTML = "<i>Your vote is being cast for the " + (key == "LEVELID" ? "level on the right" : "design on the right") + ".</i><br />";
622 stars.style.display = "inline-block";
623 stars.style.marginLeft = -3*scale+"px";
624 var i;
625 for (i = 0; i < 5; i++) {
626 stars.innerHTML += "<img id = '" + i + "' src = '" + emptyStarImage + "' />";
627 }
628 zone.appendChild(stars);
629 for (i = 0; i < 5; i++) {
630 document.getElementById(i).addEventListener('mouseover', function(event) {
631 var obj = event.target; //The star that caused this
632 var i;
633 for (i = Number(obj.id); i >= 0; i--) {
634 document.getElementById(i).src = fullStarImage;
635 }
636 });
637 document.getElementById(i).addEventListener('mouseout', function(event) {
638 var obj = event.target; //The star that caused this
639 var i;
640 for (i = Number(obj.id); i >= 0; i--) {
641 document.getElementById(i).src = emptyStarImage;
642 }
643 });
644 document.getElementById(i).addEventListener('click', function(event) {
645 var rate = Number(event.target.id) + 1; //The star that caused this. Add one because star starts at 0.
646 $.ajax({
647 type: "POST",
648 url: "http://www.fantasticcontraption.com/setRating.php",
649 data: {
650 xml: "<setRating><" + (key == "LEVELID" ? "level" : "design") + "Id>" + value + "</" + (key == "LEVELID" ? "level" : "design") + "Id><qualityRating>" + rate + "</qualityRating><userId>" + getCookie("userid") + "</userId></setRating>"
651 }
652 });
653 giveMessage((key == "LEVELID" ? "Level" : "Design") + " rated " + rate + " " + (rate > 1 ? "stars" : "star") + ".");
654 });
655 }
656
657 $.ajax({
658 type: "POST",
659 dataType: "xml",
660 url: "http://fantasticcontraption.com/retrieveLevel.php",
661 data: {
662 id: value,
663 loadDesign: (key == "DESIGNID" ? 1 : 0)
664 },
665 success: function(data) {
666 document.getElementById('contentName').innerHTML = data.getElementsByTagName('name')[0].innerHTML;// + "<br />";
667 document.getElementById('playLink').href = "http://fantasticcontraption.com/?levelId=" + data.getElementsByTagName('levelId')[0].innerHTML;
668 //document.getElementById('contentAuthor').innerHTML = "<b>By</b> " + ;
669 }
670 });
671
672 //Now let's load a screenshot
673 if (key == "LEVELID") {
674 GM_xmlhttpRequest({
675 method: "GET",
676 dataType: "text",
677 url: "http://id36.ueuo.com/shw-dsgn-lvl.php?levelId=" + value,
678 onload: function(response) {
679 parse(response);
680 }
681 });
682 }
683 function parse(response) {
684 srcXML = response.responseText;
685 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.
686 dataURL = dataURL.substring(5, dataURL.length-1);
687 document.getElementById('thumbnail').src = dataURL;
688 }
689 }
690 getUseFlashVars();
691
692 function createRefreshButton() {
693 var refreshButton = document.createElement("img");
694 with (refreshButton) {
695 id = "refreshButton";
696 title = "Refresh The Game!";
697 style.position = "absolute";
698 style.right = 4*scale+"px";
699 style.top = 4*scale+"px";
700 style.cursor = "pointer";
701 style.width = 32*scale+'px';
702 style.zIndex = "100";
703 title = "Game lagging? Click here to make it run quickly again. Does not reload the page. You will not lose your progress.";
704 src = refreshPic;
705 }
706
707 function refreshSWF() {
708 var contrap = getFlash();
709 contrap.Zoom(50);
710 contrap.Zoom(0);
711 giveMessage("Game refreshed.");
712 this.blur(); //This will always work. So user doesn't reactivate upon hitting space to try to start contraption.
713 contraption.focus(); //This only works for embed swf in IE.
714 }
715
716 refreshButton.addEventListener('click', refreshSWF);
717 centered.appendChild(refreshButton);
718
719 }
720 createRefreshButton();
721
722 //Let's deactivate moving back a page when the user hits the backspace button..
723 //We have JQuery so let's use this:
724 $(document).unbind('keydown').bind('keydown', function (event) {
725 var doPrevent = false;
726 if (event.keyCode === 8) {
727 var d = event.srcElement || event.target;
728 if ((d.tagName.toUpperCase() === 'INPUT' &&
729 (
730 d.type.toUpperCase() === 'TEXT' ||
731 d.type.toUpperCase() === 'PASSWORD' ||
732 d.type.toUpperCase() === 'FILE' ||
733 d.type.toUpperCase() === 'SEARCH' ||
734 d.type.toUpperCase() === 'EMAIL' ||
735 d.type.toUpperCase() === 'NUMBER' ||
736 d.type.toUpperCase() === 'DATE' )
737 ) ||
738 d.tagName.toUpperCase() === 'TEXTAREA'
739 || d.tagName.toUpperCase() === 'EMBED'
740 || d.tagName.toUpperCase() === 'OBJECT') {
741 doPrevent = d.readOnly || d.disabled;
742 }
743 else {
744 doPrevent = true;
745 }
746 }
747
748 if (doPrevent) {
749 event.preventDefault();
750 giveMessage("Backspace denied.");
751 }
752 });
753
754 function hide(el) {
755 if (el == centered) { //Main game section
756 el.style.width = 1*scale+"px";
757 el.style.height = 1*scale+"px";
758 el.style.overflow = "hidden";
759
760 //Hide position:absolute children
761 var children = el.children;
762 for (var i = 0; i < children.length; i++) {
763 var child = children[i];
764 if (child.style.position == "absolute") {
765 child.style.display = "none";
766 }
767 }
768 }
769 else {
770 el.style.display = "none";
771 }
772 }
773
774 function show(el) {
775 if (el == centered) {
776 el.style.width = 900*scale+"px";
777 el.style.height = "initial";
778 el.style.overflow = "visible";
779
780 //Show position:absolute children
781 var children = el.children;
782 for (var i = 0; i < children.length; i++) {
783 var child = children[i];
784 if (child.style.position == "absolute") {
785 child.style.display = "initial";
786 }
787 }
788 }
789 else {
790 el.style.display = "block";
791 }
792 }
793
794 //=====Add webpage
795 function addPage(url, description, id) {
796 var aPage = document.createElement("div");
797 aPage.className = "centered";
798 aPage.style.position = "absolute";
799 aPage.style.left = "0";
800 aPage.setAttribute("data-pagedescription", description);
801 aPage.style.position = "absolute";
802 aPage.style.top = 45*scale+"px";
803 aPage.style.backgroundColor = "#2550FF";
804 aPage.style.left = "calc(50% - "+540*scale+"px)";
805 aPage.style.border = 15*scale+"px solid #2550FF";
806 aPage.style.borderRadius = 25*scale+"px";
807 aPage.style.height = 786.42857*scale+"px";
808 aPage.style.width = 1100*scale+"px";
809 var frame = document.createElement("iframe");
810 frame.src = url;
811 frame.id = id;
812 frame.style.height = "100%";
813 frame.style.width = "100%";
814 frame.style.backgroundColor = "#FFFFFF";
815 aPage.appendChild(frame);
816 document.body.appendChild(aPage);
817 hide(aPage);
818
819 window.addEventListener("resize", function() { //This is all just to make sure the iframe resizes based on the window dimensions
820 if (aPage == centered) return "We don't resize the main game page"; //If it is hidden, don't resize it
821
822 var vw = unsafeWindow.innerWidth / 100;
823 var vh = unsafeWindow.innerHeight / 100;
824
825 //var frameWidth = ((vw * 100) - 310) + "px";
826 //var frameHeight = (vh * 92) + "px";
827
828 //aPage.style.width = frameWidth;
829 //aPage.style.height = frameHeight;
830
831 //frame.width = frameWidth;
832 //frame.height = frameHeight;
833 });
834
835 window.dispatchEvent(new Event('resize')); //Set initial sizes based on window size
836 }
837 addPage("http://fc.sk89q.com/webfcml/", "FCML Editor", "editor");
838 addPage("http://id36.ueuo.com/", "Other Website", "otherSites");
839
840 function getNextPage(direction) { //direction="right" or "left"
841 var pages = document.getElementsByClassName("centered");
842 var hub = 0;
843
844 hide(pages[currentPageNumber]);
845
846 if (direction == "right") {
847 if (currentPageNumber + 1 >= pages.length) {
848 currentPageNumber = 0;
849 }
850 else {
851 currentPageNumber += 1;
852 }
853 }
854
855 if (direction == "left") {
856 if (currentPageNumber - 1 < 0) {
857 currentPageNumber = pages.length - 1;
858 }
859 else {
860 currentPageNumber -= 1;
861 }
862 }
863
864 show(pages[currentPageNumber]);
865 if (currentPageNumber == 0){
866 if(document.getElementById("sHubs").checked){
867 document.getElementById('lateHub').style.display = 'none';
868 document.getElementById('TopHub').style.display = 'none';
869 document.getElementById('dsgHub').style.display = 'none';
870 document.getElementById('cAmt').style.display = 'none';
871 document.getElementById('cInput').style.display = 'none';
872 document.getElementById('ctitle').style.display = 'none';
873 document.getElementById('cSubmit').style.display = 'none';
874 document.getElementById('resetHub').style.display = "none";
875 }else{
876 document.getElementById('lateHub').style.display = 'block';
877 document.getElementById('TopHub').style.display = 'none';
878 document.getElementById('dsgHub').style.display = 'none';
879 document.getElementById('cAmt').style.display = 'block';
880 document.getElementById('cInput').style.display = 'block';
881 document.getElementById('ctitle').style.display = 'block';
882 document.getElementById('cSubmit').style.display = 'block';
883 document.getElementById('resetHub').style.display = "block";
884 }
885 if(document.getElementById("sLvl").checked){
886 document.getElementById("randLevelHub").style.display = 'none';
887 }else{
888 document.getElementById("randLevelHub").style.display = 'block';
889 }
890 if(document.getElementById("sChat").checked){
891 document.getElementById("chatHub").style.display = 'none';
892 }else{
893 document.getElementById("chatHub").style.display = 'block';
894 }
895
896 if(document.getElementById("sScroll").checked){
897 document.getElementById("leftBtn").style.display = 'none';
898 document.getElementById("rightBtn").style.display = 'none';
899 document.getElementById("pageDescription").style.display = 'none';
900 }else{
901 document.getElementById("leftBtn").style.display = 'block';
902 document.getElementById("rightBtn").style.display = 'block';
903 document.getElementById("pageDescription").style.display = 'block';
904 }
905 }
906 if (currentPageNumber != 0){
907 document.getElementById('chatHub').style.display = 'none';
908 document.getElementById('tweakBtn').src = btnOff;
909 btnState = "Off";
910 document.getElementById('rArrow').style.display = 'none';
911 }
912 if (currentPageNumber == 1){
913 document.getElementById('fcmlHub').style.display = 'block';
914 document.getElementById('fcmlHubE').style.display = 'block';
915 }
916 if (currentPageNumber != 1){
917 document.getElementById('fcmlHub').style.display = 'none';
918 document.getElementById('fcmlHubE').style.display = 'none';
919
920 }
921 if (currentPageNumber == 2){
922 document.getElementById("iframeHub").style.display = "block";
923 document.getElementById('rArrow').style.display = 'none';
924 }
925 if (currentPageNumber != 2){
926 document.getElementById("iframeHub").style.display = "none";
927 }
928
929
930 if (currentPageNumber < 100){
931 document.getElementById("leftBtn").style.display = "block";
932 document.getElementById("rightBtn").style.display = "block";
933 document.getElementById("pageDescription").style.display = "block";
934 document.getElementById("sHub").style.display = 'none';
935 }
936
937 document.getElementById("pageDescription").innerHTML = pages[currentPageNumber].getAttribute("data-pagedescription");
938 }
939
940
941
942
943
944 function addScrollElements() {
945 var leftButton = document.createElement("img");
946 var rightButton = document.createElement("img");
947
948 var centerDescOffset = 13*scale;
949
950 leftButton.style.width = 2.5*scale+"em";
951 rightButton.style.width = 2.5*scale+"em";
952 leftButton.id = "leftBtn";
953 rightButton.id = "rightBtn";
954 leftButton.style.cursor = "pointer";
955 rightButton.style.cursor = "pointer";
956 leftButton.style.position = "absolute";
957 rightButton.style.position = "absolute";
958 leftButton.style.top = 0*scale+"px";
959 leftButton.style.right = 275*scale+"px";
960 rightButton.style.top = 0*scale+"px";
961 rightButton.style.right = 90*scale+"px";
962 leftButton.src = leftArrowPic;
963 rightButton.src = rightArrowPic;
964
965 var pageName = document.createElement("div");
966 pageName.style.position = "absolute";
967 pageName.style.width = 160*scale+"px";
968 pageName.style.top = "0px";
969 pageName.style.right = 120*scale+"px";
970 pageName.style.fontSize = 0.9*scale+"em";
971 pageName.id = "pageDescription";
972 pageName.innerHTML = centered.getAttribute("data-pagedescription");
973 pageName.style.textAlign = "center";
974
975 leftButton.addEventListener("click", function() {
976 getNextPage("left");
977 });
978
979 rightButton.addEventListener("click", function() {
980 getNextPage("right");
981 });
982
983 centered.appendChild(leftButton);
984 centered.appendChild(pageName);
985 centered.appendChild(rightButton);
986 }
987 addScrollElements();
988
989 //So let's create a way to add simple textfield button widget for input
990 function addInputWidget(leftAmount, topAmount, titleText, actionText, callback) {
991 //Add the base DIV
992 var section = document.createElement('div'); //Create the surrounding div
993 section.style.position = "absolute"; //Positioning
994 section.style.top = topAmount*scale; //etc.
995 section.style.left = leftAmount*scale; //etc.
996 section.style.width = 284*scale+"px";
997 section.style.textAlign = "center"; //Center everything
998 document.body.appendChild(section); //Add the div to the document. It will not dissapear when other pages are requested
999
1000 //Add a title
1001 var title = document.createElement("h4"); //Just a text element
1002 title.innerHTML = titleText; //Text to show
1003 section.appendChild(title);
1004
1005 //Create a box to enter some input!
1006 var input = document.createElement("input"); //Create the input
1007 input.type = "text"; //Textbox
1008 input.style.padding = 5*scale+"px"; //Just some styles
1009 input.style.borderRadius = 5*scale+"px";
1010 input.style.border = "none";
1011 input.style.height = 30*scale+"px";
1012
1013 //Now create a button to save the info
1014 var submit = document.createElement("input"); //Create the button. May want to replace with an image later because images>buttons
1015 submit.type = "button"; //Button
1016 submit.value = actionText; //What the button says
1017 submit.style.marginLeft = 5*scale+"px";
1018 submit.style.padding = 5*scale+"px";
1019 submit.style.border = "none";
1020 submit.style.borderRadius = 5*scale+"px";
1021 submit.style.height = 40+scale+"px";
1022 submit.style.cursor = "pointer"; //Set cursor to pointer, to make it obvious it is clickable
1023
1024 input.addEventListener("keypress", function(event) { //So pressing ENTER submits the thing
1025 if (event.keyCode == 13) {
1026 submit.click();
1027 }
1028 });
1029
1030 //Now create an invisible submit button so by default pressing ENTER will
1031
1032 submit.addEventListener('click', function() {
1033 if (!input.value) return false; //If blank was entered
1034 callback(input.value);
1035 });
1036
1037 //Now add the things
1038 section.appendChild(input);
1039 section.appendChild(submit);
1040 }
1041 //addInputWidget("4px", "500px", "Load a level", "Load", alert);
1042
1043 function addRedArrowBlocker()
1044 {
1045 var blocker = document.createElement("div");
1046 var boundingSWF = document.getElementById('contraption').getBoundingClientRect();
1047 console.log(boundingSWF);
1048 with (blocker)
1049 {
1050 style.width = 90*scale+"px";
1051 style.height = 90*scale+"px";
1052 //style.backgroundColor = "red";
1053 //style.left = 400*scale+"px";
1054 //style.top = 400*scale+"px";
1055 style.left = (boundingSWF.right - 60*scale) + "px";
1056 style.top = (boundingSWF.top + 15*scale) + "px";
1057 console.log(style.left);
1058 style.backgroundImage = "url('http://i.imgur.com/FXfHqwG.png')";
1059 style.backgroundSize= "100% auto";
1060 style.borderRadius = 35*scale+"px";
1061 style.position = "absolute";
1062 style.display = "none";
1063 style.zIndex = "101";
1064 id = "rArrow";
1065 }
1066
1067 function drag(e)
1068 {
1069 var diffX = cursorOffsetX - (e.clientX - Number(blocker.style.left.split('p')[0]));
1070 var diffY = cursorOffsetY - (e.clientY - Number(blocker.style.top.split('p')[0]));
1071 var dist = Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2));
1072 if (dist > 20)
1073 {
1074 blocker.style.top = e.clientY - cursorOffsetY + "px";
1075 blocker.style.left = e.clientX - cursorOffsetX + "px";
1076 }
1077 }
1078
1079 function addDrag(e)
1080 {
1081 window.addEventListener("mousemove", drag);
1082 }
1083
1084 document.body.appendChild(blocker);
1085 blocker.addEventListener("mousedown", function(e) {
1086 cursorOffsetX = e.clientX - Number(blocker.style.left.split('p')[0]);
1087 cursorOffsetY = e.clientY - Number(blocker.style.top.split('p')[0]);
1088 addDrag(e);
1089 });
1090 window.addEventListener("mouseup", function() {
1091 window.removeEventListener('mousemove', drag);
1092 });
1093 }
1094 addRedArrowBlocker();
1095
1096
1097
1098 //-----------------------------STUFF PERRY IS ADDING -------------------------------------------------------------------
1099 //Variables
1100 var topLvlListId = [];
1101 var topLvlListName = [];
1102 var lateLvlListId = [];
1103 var lateLvlListName = [];
1104 var dsgId = [];
1105 var dsgName = [];
1106 var dsgUser = [];
1107 var topItr = 0;
1108 var lateItr = 0;
1109 var maxL = 5;
1110 var contHolder = "";
1111 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=";
1112 var dBtn = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAMAAAANmfvwAAAAbFBMVEUAzAACxA8GtC8JrT8EvB8Sjn8fX98kUP8dZ88Wfp9XYOM9WPFwaNXkjJfxkZENnV/Sfn6HUVG0bGyKcMgAAABpPz+WWloeEhIPCQnhh4dLLS3DdXU8JCR4SEilY2MtGxtaNjYwVPghV+8PlW+2AEVVAAAAAnRSTlMAAHaTzTgAAAAJcEhZcwAAAEgAAABIAEbJaz4AAAEySURBVDjLjZTrgoIgEIUho8kyC0RFcbet3v8dd0ARBXH3/AFnPm4DR0KMDllGQh2z7OD6lJ0goROjljjDjs6GyU3vcomzVxvLcRJsilu5qVuBSUruiMfJBxe2vQLcCQOoYkJKWZtOBcC2EY6InBGCy0VIg0Rre5idEYyqbiI6rqTsdYgMOJCPhFDSqgkQE/sa9zoRUn6vEdxhOy40OMKs7BHxtKGf6cBOjUe0i/VlqQcvj3TtPI4Hx3dI46duE8iwWF5sI+EN1b34A1FjSfYQX8UkgltTeg951FhG5XazhXRqdbQNpHvOF6QTCPcV6h0SPMxlFRdvt1ggWnjhZ2GQDOCVsBEa6QWAbn+vp1kJJ3mjYZnxZhUbpawqNJrxyH9sT2ieJnLq/jYfxuI0Y5+jyf4C80c40pSTUtsAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDktMTZUMTA6MDE6MTYtMDU6MDA+zJb2AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA5LTE2VDEwOjAxOjE2LTA1OjAwT5EuSgAAAABJRU5ErkJggg==";
1113 var hBtn = "data:image/png;base64,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";
1114 //-----Create the areas-------------------------------------------------------------------------------------------------
1115
1116 //-----CREATE LATEST LEVEL HUB
1117 var lateHub = document.createElement("div");
1118 lateHub.style.position = "absolute";
1119 lateHub.style.display = "block";
1120 lateHub.style.borderStyle = "solid";
1121 lateHub.style.borderRadius = 25*scale+"px";
1122 lateHub.style.borderColor = "blue";
1123 lateHub.style.top = 48*scale+"px";
1124 lateHub.style.left = 20*scale+"px";
1125 lateHub.style.backgroundImage = "url('http://i67.tinypic.com/w6w514.jpg')";
1126 lateHub.style.width = locationBox.left - 50+"px";
1127 if(locationBox.left - 50 > 320){
1128 lateHub.style.width = "320px"
1129 }
1130 lateHub.style.height="85%";
1131 lateHub.id = "lateHub";
1132 lateHub.innerHTML = "<img src ='http://i68.tinypic.com/2m5hvh1.gif' width='100%' title= 'Switch to Top Levels' id='displayTop'>";
1133 centered.appendChild(lateHub);
1134 //------Create Area where Levels Generate
1135 var lateInnerHub = document.createElement("div");
1136 lateInnerHub.style.position = "absolute";
1137 lateInnerHub.id = "lateInnerHub";
1138 lateInnerHub.style.width = locationBox.left - 50+"px";
1139 if(locationBox.left - 50 > 320){
1140 lateInnerHub.style.width = "320px"
1141 }
1142 lateInnerHub.style.overflowY = "scroll";
1143 lateInnerHub.style.maxHeight="85%";
1144 lateHub.appendChild(lateInnerHub);
1145 //-----CREATE TOP LEVEL HUB
1146 var TopHub = document.createElement("div");
1147 TopHub.style.position = "absolute";
1148 TopHub.style.display = "none";
1149 TopHub.style.borderStyle = "solid";
1150 TopHub.style.borderRadius = 25*scale+"px";
1151 TopHub.style.borderColor = "blue";
1152 TopHub.style.top = 48*scale+"px";
1153 TopHub.style.left = 20+scale+"px";
1154 TopHub.style.backgroundImage = "url('http://i67.tinypic.com/w6w514.jpg')";
1155 TopHub.style.width = locationBox.left - 50+"px";
1156 if(locationBox.left - 50 > 320){
1157 TopHub.style.width = "320px"
1158 }
1159 TopHub.style.height="85%";
1160 TopHub.id = "TopHub";
1161 TopHub.innerHTML = "<img src='http://i63.tinypic.com/2uixhg8.gif' width='100%' title='Switch to Latest Levels' id='displayLatest'>";
1162 centered.appendChild(TopHub);
1163 //-----Create area where levels generate
1164 var lateTopHub = document.createElement("div");
1165 lateTopHub.style.position = "absolute";
1166 lateTopHub.id = "TopInnerHub";
1167 lateTopHub.style.overflowY = "scroll";
1168 lateTopHub.style.width = locationBox.left - 50+"px";
1169 if(locationBox.left - 50 > 320){
1170 lateTopHub.style.width = "320px"
1171 }
1172 lateTopHub.style.maxHeight="85%";
1173 TopHub.appendChild(lateTopHub);
1174 //-----CREATE DESIGN HUB
1175 var dsgHub = document.createElement("div");
1176 dsgHub.style.position = "absolute";
1177 dsgHub.style.display = "none";
1178 dsgHub.style.borderStyle = "solid";
1179 dsgHub.style.borderRadius = "25px";
1180 dsgHub.style.borderColor = "blue";
1181 dsgHub.style.backgroundImage = "url('http://i67.tinypic.com/w6w514.jpg')";
1182 dsgHub.style.top = 48*scale+"px";
1183 dsgHub.style.left = 20*scale+"px";
1184 dsgHub.style.width = locationBox.left - 50+"px";
1185 if(locationBox.left - 50 > 320){
1186 dsgHub.style.width = "320px"
1187 }
1188 dsgHub.style.height="85%";
1189 dsgHub.id = "dsgHub";
1190 dsgHub.innerHTML = "<img src='http://i67.tinypic.com/imjmzo.gif' width='100%' title='Click to go Back' id='backBtn'>";
1191 centered.appendChild(dsgHub);
1192 //-----Create area where designs generate
1193 var dsgInnerHub = document.createElement("div");
1194 dsgInnerHub.style.position = "absolute";
1195 dsgInnerHub.id = "dsgInnerHub";
1196 dsgInnerHub.style.overflowY = "scroll";
1197 dsgInnerHub.style.maxHeight="85%";
1198 dsgInnerHub.style.width = locationBox.left - 50+"px";
1199 if(locationBox.left - 50 > 320){
1200 dsgInnerHub.style.width = "320px"
1201 }
1202 dsgInnerHub.style.textAlign="left";
1203 dsgHub.appendChild(dsgInnerHub);
1204 //-----Code to switch between top and latest
1205 document.getElementById("displayLatest").onclick = function(){
1206 document.getElementById('lateHub').style.display = 'block';
1207 document.getElementById('TopHub').style.display = 'none';
1208 document.getElementById('dsgHub').style.display = 'none';
1209 };
1210 document.getElementById("displayTop").onclick = function(){
1211 document.getElementById('TopHub').style.display = 'block';
1212 document.getElementById('lateHub').style.display = 'none';
1213 document.getElementById('dsgHub').style.display = 'none';
1214 };
1215 document.getElementById("backBtn").onclick = function(){
1216 document.getElementById('lateHub').style.display = 'block';
1217 document.getElementById('TopHub').style.display = 'none';
1218 document.getElementById('dsgHub').style.display = 'none';
1219 };
1220
1221 //Button to reset hub
1222 var reset = document.createElement("input");
1223 reset.type = "image";
1224 reset.src = hBtn;
1225 reset.title = "Reset Hub";
1226 reset.style.height = 40*scale+"px";
1227 reset.style.width = 40*scale+"px";
1228 reset.style.padding = "0px";
1229 reset.id = "resetHub";
1230 reset.style.position = "absolute";
1231 reset.style.top = "0px";
1232 reset.style.left = 72*scale+"px";
1233 reset.style.display = "none";
1234 centered.appendChild(reset);
1235 document.getElementById("resetHub").onclick = function(){
1236 if (pageLocked)
1237 {
1238 giveMessage("You cannot do that while the page is locked.");
1239 }
1240 else
1241 {
1242 var r = confirm("Refreshing the Hub will refresh the game. All current designs will be lost. Are you sure you want to continue?");
1243 if(r == true){
1244 contHolder = ctr.innerHTML;
1245 document.getElementsByClassName("border")[0].style.backgroundImage = "url('http://fantasticcontraption.com/images/fantastic_contraption_border.png')";
1246 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>";
1247 lateItr = 0;
1248 topItr = 0;
1249 resetHub();
1250 }else{
1251 giveMessage("The Hub Was Not Refreshed");
1252 }
1253 }
1254 };
1255 //Settings area
1256 var settingFC = document.createElement("input");
1257 settingFC.type = "image";
1258 settingFC.src = settingsBtn;
1259 settingFC.title = "Settings";
1260 settingFC.style.height = 40*scale+"px";
1261 settingFC.style.width = 40*scale+"px";
1262 settingFC.style.padding = "0px";
1263 settingFC.id = "settingsHub";
1264 settingFC.style.position = "absolute";
1265 settingFC.style.top = "0px";
1266 settingFC.style.right = 45*scale+"px";
1267 centered.appendChild(settingFC);
1268 var sHub = document.createElement("div");
1269 sHub.style.position = "absolute";
1270 sHub.id = "sHub";
1271 sHub.style.top = "0px";
1272 sHub.style.left = 25*scale+"%";
1273 sHub.style.zIndex = "102";
1274 //sHub.style.height = 234*scale+"px";
1275 sHub.style.height = "234px";
1276 //sHub.style.width = 900*scale+"px";
1277 sHub.style.width = "900px";
1278 sHub.style.backgroundSize="cover";
1279 sHub.style.backgroundImage = "url('http://i.imgur.com/UIFAk04.png')";
1280 sHub.style.display = "none";
1281 sHub.class = "centered";
1282 centered.appendChild(sHub);
1283 document.getElementById("settingsHub").onclick = function (){
1284 if (sHub.style.display == "none"){
1285 sHub.style.display = "block";
1286 }else{
1287 sHub.style.display = "none";
1288 }
1289 };
1290 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>';
1291 //Start doing stuff when boxes are checked
1292 document.getElementById("sHubs").onclick = function (){
1293 if(document.getElementById("sHubs").checked){
1294 document.getElementById('lateHub').style.display = 'none';
1295 document.getElementById('TopHub').style.display = 'none';
1296 document.getElementById('dsgHub').style.display = 'none';
1297 document.getElementById('cAmt').style.display = 'none';
1298 document.getElementById('cInput').style.display = 'none';
1299 document.getElementById('ctitle').style.display = 'none';
1300 document.getElementById('cSubmit').style.display = 'none';
1301 document.getElementById('resetHub').style.display = "none";
1302 }else{
1303 document.getElementById('lateHub').style.display = 'block';
1304 document.getElementById('TopHub').style.display = 'none';
1305 document.getElementById('dsgHub').style.display = 'none';
1306 document.getElementById('cAmt').style.display = 'block';
1307 document.getElementById('cInput').style.display = 'block';
1308 document.getElementById('ctitle').style.display = 'block';
1309 document.getElementById('cSubmit').style.display = 'block';
1310 document.getElementById('resetHub').style.display = "block";
1311 }
1312 };
1313 document.getElementById("sLvl").onclick = function (){
1314 if(document.getElementById("sLvl").checked){
1315 document.getElementById("randLevelHub").style.display = 'none';
1316 }else{
1317 document.getElementById("randLevelHub").style.display = 'block';
1318 }
1319
1320 };
1321 document.getElementById("sChat").onclick = function (){
1322 if(document.getElementById("sChat").checked){
1323 document.getElementById("chatHub").style.display = 'none';
1324 }else{
1325 document.getElementById("chatHub").style.display = 'block';
1326 }
1327
1328 };
1329 document.getElementById("sScroll").onclick = function (){
1330 if(document.getElementById("sScroll").checked){
1331 document.getElementById("leftBtn").style.display = 'none';
1332 document.getElementById("rightBtn").style.display = 'none';
1333 document.getElementById("pageDescription").style.display = 'none';
1334 }else{
1335 document.getElementById("leftBtn").style.display = 'block';
1336 document.getElementById("rightBtn").style.display = 'block';
1337 document.getElementById("pageDescription").style.display = 'block';
1338 }
1339
1340 };
1341
1342
1343 //FCML Hub
1344 var fcmlHub = document.createElement("div");
1345 fcmlHub.style.position = "absolute";
1346 fcmlHub.style.display = "none";
1347 fcmlHub.style.borderStyle = "solid";
1348 fcmlHub.style.borderRadius = 25*scale+"px";
1349 fcmlHub.style.borderColor = "blue";
1350 fcmlHub.style.backgroundImage = "url('http://i67.tinypic.com/w6w514.jpg')";
1351 fcmlHub.style.top = 48*scale+"px";
1352 fcmlHub.style.right = 20*scale+"px";
1353 fcmlHub.style.width = 320*scale+"px";
1354 fcmlHub.style.height="85%";
1355 fcmlHub.id = "fcmlHub";
1356 centered.appendChild(fcmlHub);
1357 fcmlHub.innerHTML = "<center><div id = 'fcmlInnerHub'><h1>FCML EXPORT HUB</h1></div><center>";
1358 document.getElementById("fcmlInnerHub").style.height = "100%";
1359 document.getElementById("fcmlInnerHub").style.overflowY = "scroll";
1360 var exportInput = document.createElement("input");
1361 exportInput.type = "text";
1362 exportInput.id = "exportInput";
1363 exportInput.style.width = "95%";
1364 exportInput.style.borderRadius = 5*scale+"px";
1365 exportInput.style.border = 5*scale+"px";
1366 exportInput.style.textAlign = "center";
1367 exportInput.style.height = 30*scale+"px";
1368 document.getElementById("fcmlInnerHub").appendChild(exportInput);
1369 var exportButton = document.createElement("input");
1370 exportButton.type = "submit";
1371 exportButton.id = "exportButton";
1372 exportButton.style.width = "95%";
1373 exportButton.style.borderRadius = 5*scale+"px";
1374 exportButton.style.border = 5*scale+"px";
1375 exportButton.value = "Enter Level ID and Click for FCML Export";
1376 document.getElementById("fcmlInnerHub").appendChild(exportButton);
1377 var exportFrame = document.createElement("iframe");
1378 exportFrame.id = "exportFrame";
1379 exportFrame.src = "";
1380 exportFrame.width = "90%";
1381 exportFrame.height = 575*scale+"px";
1382 exportFrame.style.overflowY = "scroll";
1383 document.getElementById("fcmlInnerHub").appendChild(exportFrame);
1384 var exportClear = document.createElement("input");
1385 exportClear.type = "submit";
1386 exportClear.id = "exportClear";
1387 exportClear.style.width = "95%";
1388 exportClear.value = "Clear FCML";
1389 exportClear.style.borderRadius = 5*scale+"px";
1390 exportClear.style.border = 5*scale+"px";
1391 exportClear.style.display = "none";
1392 document.getElementById("fcmlInnerHub").appendChild(exportClear);
1393 var switchEditor = document.createElement("input");
1394 switchEditor.type = "submit";
1395 switchEditor.id = "switchEditor";
1396 switchEditor.style.width = "95%";
1397 switchEditor.style.height= '30px';
1398 switchEditor.value = "Switch Editors";
1399 switchEditor.style.borderRadius = 5*scale+"px";
1400 switchEditor.style.border = 5*scale+"px";
1401 document.getElementById("fcmlHub").appendChild(switchEditor);
1402 //Do stuff to load the FCML export
1403 document.getElementById("exportButton").onclick = function() {
1404 var exportId = document.getElementById("exportInput").value;
1405 if (exportId % 1 === 0 && !isNaN(exportId) && exportId.length > 0){
1406 $.ajax({
1407 type: "POST",
1408 dataType: "xml",
1409 url: "http://fantasticcontraption.com/retrieveLevel.php",
1410 data: {
1411 id: exportId,
1412 },
1413 error: function(data){
1414 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.");
1415 document.getElementById("exportFrame").src = "";
1416 },
1417 success: function(data) {
1418 //console.log(data);
1419 var x = data.getElementsByTagName('levelId');
1420 //console.log(x);
1421 var y = x[0].innerHTML;
1422 //console.log(y);
1423 if(y == exportId){
1424 document.getElementById("exportFrame").src = "http://fc.sk89q.com/export?type=level&id=" + exportId + "&format=fcml";
1425 document.getElementById("exportFrame").style.backgroundColor = "#87BEF1";
1426 document.getElementById("exportClear").style.display = "block";
1427 }else{
1428 alert("ID does not Exist!");
1429 document.getElementById("exportFrame").src = "";
1430 }
1431 }
1432 });
1433 }else{
1434 alert("Please Enter A Valid ID!");
1435 }
1436 };
1437 //Do stuff to clear FCML
1438 document.getElementById("exportClear").onclick = function() {
1439 document.getElementById("exportFrame").src = "";
1440 document.getElementById("exportFrame").style.backgroundColor = "";
1441 document.getElementById("exportClear").style.display = "none";
1442 document.getElementById("exportInput").value = "";
1443
1444 };
1445 //Switch to the new editor in window
1446 document.getElementById("switchEditor").onclick = function() {
1447 var currentEditor = document.getElementById("editor").src;
1448 //console.log(currentEditor);
1449 if(currentEditor == "http://fc.sk89q.com/webfcml/"){
1450 //document.getElementById().style.display = 'none';
1451 document.getElementById("fcmlInnerHub").style.display = 'none';
1452 document.getElementById("fcmlHub").style.height = '35px';
1453 document.getElementById("fcmlHubE").style.display = 'none';
1454 document.getElementById("editor").src = 'http://editor.eu5.org/';
1455 }else{
1456 document.getElementById("fcmlHub").style.height = '85%';
1457 document.getElementById("fcmlInnerHub").style.display = 'block';
1458 document.getElementById("fcmlHubE").style.display = 'block';
1459 document.getElementById("editor").src = 'http://fc.sk89q.com/webfcml/';
1460 }
1461 }
1462 //Add the FCML peice conversion area
1463 var fcmlHubE = document.createElement("div");
1464 fcmlHubE.style.position = "absolute";
1465 fcmlHubE.style.display = "none";
1466 fcmlHubE.style.borderStyle = "solid";
1467 fcmlHubE.style.borderRadius = 25*scale+"px";
1468 fcmlHubE.style.borderColor = "blue";
1469 fcmlHubE.style.backgroundImage = "url('http://i67.tinypic.com/w6w514.jpg')";
1470 fcmlHubE.style.top = 48*scale+"px";
1471 fcmlHubE.style.left = 20*scale+"px";
1472 fcmlHubE.style.width = 360*scale+"px";
1473 fcmlHubE.style.height="85%";
1474 fcmlHubE.id = "fcmlHubE";
1475 centered.appendChild(fcmlHubE);
1476 fcmlHubE.innerHTML = "<center><div id = 'fcmlInnerHubE'><h1>FCML Special Piece Conversion</h1></div><center>";
1477 document.getElementById("fcmlInnerHubE").style.height = "100%";
1478 document.getElementById("fcmlInnerHubE").style.width = "90%";
1479 document.getElementById("fcmlInnerHubE").style.overflowY = "scroll";
1480 var hr1 = document.createElement("hr");
1481 hr1.style.borderStyle = "inset";
1482 hr1.style.borderWidth = 5*scale+"px";
1483 hr1.style.borderColor = "#87BEF1";
1484 document.getElementById("fcmlInnerHubE").appendChild(hr1);
1485 var pgpTitle = document.createElement("h4"); //Just a text element
1486 pgpTitle.innerHTML = "Powered wheels ➞ Powered goal pieces"; //Text to show
1487 pgpTitle.id = "pgpTitle";
1488 document.getElementById("fcmlInnerHubE").appendChild(pgpTitle);
1489 var exportPGP = document.createElement("input");
1490 exportPGP.type = "text";
1491 exportPGP.value = "Enter an ID";
1492 exportPGP.id = "exportPGP";
1493 exportPGP.style.width = "35%";
1494 exportPGP.style.borderRadius = 5*scale+"px";
1495 exportPGP.style.border = 5*scale+"px";
1496 exportPGP.style.textAlign = "center";
1497 exportPGP.style.height = 20*scale+"px";
1498 document.getElementById("fcmlInnerHubE").appendChild(exportPGP);
1499 var PGPButton = document.createElement("input");
1500 PGPButton.type = "submit";
1501 PGPButton.id = "PGPButton";
1502 PGPButton.style.borderRadius = 5*scale+"px";
1503 PGPButton.style.border = 5*scale+"px";
1504 PGPButton.value = "Convert!";
1505 PGPButton.style.height = 20*scale+"px";
1506 document.getElementById("fcmlInnerHubE").appendChild(PGPButton);
1507 var exportPGP2 = document.createElement("input");
1508 exportPGP2.type = "text";
1509 exportPGP2.id = "exportPGP2";
1510 exportPGP2.style.width = "35%";
1511 exportPGP2.style.borderRadius = 5*scale+"px";
1512 exportPGP2.style.border = 5*scale+"px";
1513 exportPGP2.style.textAlign = "center";
1514 exportPGP2.style.height = 20*scale+"px";
1515 document.getElementById("fcmlInnerHubE").appendChild(exportPGP2);
1516 document.getElementById("PGPButton").onclick = function(){
1517 var levelId = document.getElementById("exportPGP").value;
1518 if (levelId % 1 === 0 && !isNaN(levelId) && levelId.length > 0){
1519 GM_xmlhttpRequest({
1520 method: "POST",
1521 dataType: "xml",
1522 url: "http://id36.ueuo.com/ver-fcml-pgp.php",
1523 data: "levelid="+levelId+"",
1524 headers: {
1525 "Content-Type": "application/x-www-form-urlencoded"
1526 },
1527 onload: function(response) {
1528 var x = response.responseText;
1529 var y = x.match(/<div.+?(?=<\/div>)/g);
1530 if(y){
1531 //alert("Ad");
1532 x = x.split(y[0]).pop();
1533 x = x.split("<img").pop();
1534 x = x.split("</div>").pop();
1535 x.split("\n").pop();
1536 document.getElementById("exportPGP2").value = x;
1537 document.getElementById("exportPGP").value = "SUCCESS!!!!";
1538 setTimeout(function(){ document.getElementById("exportPGP").value = "Enter an ID"; }, 1000);
1539 }else{
1540 document.getElementById("exportPGP2").value = x;
1541 document.getElementById("exportPGP").value = "SUCCESS!!!!";
1542 setTimeout(function(){ document.getElementById("exportPGP").value = "Enter an ID"; }, 1000);
1543 }
1544 }
1545 });
1546 }else{
1547 alert("Please Enter A Valid ID!");
1548 }
1549 };
1550 var PinTitle = document.createElement("h4"); //Just a text element
1551 PinTitle.innerHTML = "(Powered) wheels ➞ Pins"; //Text to show
1552 PinTitle.id = "PinTitle";
1553 document.getElementById("fcmlInnerHubE").appendChild(PinTitle);
1554 var exportPin = document.createElement("input");
1555 exportPin.type = "text";
1556 exportPin.value = "Enter an ID";
1557 exportPin.id = "exportPin";
1558 exportPin.style.width = "35%";
1559 exportPin.style.borderRadius = 5*scale+"px";
1560 exportPin.style.border = 5*scale+"px";
1561 exportPin.style.textAlign = "center";
1562 exportPin.style.height = 20*scale+"px";
1563 document.getElementById("fcmlInnerHubE").appendChild(exportPin);
1564 var PinButton = document.createElement("input");
1565 PinButton.type = "submit";
1566 PinButton.id = "PinButton";
1567 PinButton.style.borderRadius = 5*scale+"px";
1568 PinButton.style.border = 5*scale+"px";
1569 PinButton.value = "Convert!";
1570 PinButton.style.height = 20*scale+"px";
1571 document.getElementById("fcmlInnerHubE").appendChild(PinButton);
1572 var exportPin2 = document.createElement("input");
1573 exportPin2.type = "text";
1574 exportPin2.id = "exportPin2";
1575 exportPin2.style.width = "35%";
1576 exportPin2.style.borderRadius = 5*scale+"px";
1577 exportPin2.style.border = 5*scale+"px";
1578 exportPin2.style.textAlign = "center";
1579 exportPin2.style.height = 20*scale+"px";
1580 document.getElementById("fcmlInnerHubE").appendChild(exportPin2);
1581 document.getElementById("PinButton").onclick = function(){
1582 var levelId = document.getElementById("exportPin").value;
1583 if (levelId % 1 === 0 && !isNaN(levelId) && levelId.length > 0){
1584 GM_xmlhttpRequest({
1585 method: "POST",
1586 dataType: "xml",
1587 url: "http://id36.ueuo.com/ver-fcml-pin.php",
1588 data: "levelid="+levelId+"",
1589 headers: {
1590 "Content-Type": "application/x-www-form-urlencoded"
1591 },
1592 onload: function(response) {
1593 var x = response.responseText;
1594 var y = x.match(/<div.+?(?=<\/div>)/g);
1595 if(y){
1596 x = x.split(y[0]).pop();
1597 x = x.split("<img").pop();
1598 x = x.split("</div>").pop();
1599 x.split("\n").pop();
1600 document.getElementById("exportPin2").value = x;
1601 document.getElementById("exportPin").value = "SUCCESS!!!!";
1602 setTimeout(function(){ document.getElementById("exportPin").value = "Enter an ID"; }, 1000);
1603 }else{
1604 document.getElementById("exportPin2").value = x;
1605 document.getElementById("exportPin").value = "SUCCESS!!!!";
1606 setTimeout(function(){ document.getElementById("exportPin").value = "Enter an ID"; }, 1000);
1607 }
1608 }
1609 });
1610 }else{
1611 alert("Please Enter A Valid ID!");
1612 }
1613 };
1614 var GhostTitle = document.createElement("h4"); //Just a text element
1615 GhostTitle.innerHTML = "Dynamic pieces ➞ Ghost pieces"; //Text to show
1616 GhostTitle.id = "GhostTitle";
1617 document.getElementById("fcmlInnerHubE").appendChild(GhostTitle);
1618 var exportGhost = document.createElement("input");
1619 exportGhost.type = "text";
1620 exportGhost.value = "Enter an ID";
1621 exportGhost.id = "exportGhost";
1622 exportGhost.style.width = "35%";
1623 exportGhost.style.borderRadius = "5px";
1624 exportGhost.style.border = "5px";
1625 exportGhost.style.textAlign = "center";
1626 exportGhost.style.height = "20px";
1627 document.getElementById("fcmlInnerHubE").appendChild(exportGhost);
1628 var GhostButton = document.createElement("input");
1629 GhostButton.type = "submit";
1630 GhostButton.id = "GhostButton";
1631 GhostButton.style.borderRadius = "5px";
1632 GhostButton.style.border = "5px";
1633 GhostButton.value = "Convert!";
1634 GhostButton.style.height = "20px";
1635 document.getElementById("fcmlInnerHubE").appendChild(GhostButton);
1636 var exportGhost2 = document.createElement("input");
1637 exportGhost2.type = "text";
1638 exportGhost2.id = "exportGhost2";
1639 exportGhost2.style.width = "35%";
1640 exportGhost2.style.borderRadius = "5px";
1641 exportGhost2.style.border = "5px";
1642 exportGhost2.style.textAlign = "center";
1643 exportGhost2.style.height = "20px";
1644 document.getElementById("fcmlInnerHubE").appendChild(exportGhost2);
1645 document.getElementById("GhostButton").onclick = function(){
1646 var levelId = document.getElementById("exportGhost").value;
1647 if (levelId % 1 === 0 && !isNaN(levelId) && levelId.length > 0){
1648 GM_xmlhttpRequest({
1649 method: "POST",
1650 dataType: "xml",
1651 url: "http://id36.ueuo.com/ver-fcml-dgp.php",
1652 data: "levelid="+levelId+"",
1653 headers: {
1654 "Content-Type": "application/x-www-form-urlencoded"
1655 },
1656 onload: function(response) {
1657 var x = response.responseText;
1658 var y = x.match(/<div.+?(?=<\/div>)/g);
1659 if(y){
1660 x = x.split(y[0]).pop();
1661 x = x.split("<img").pop();
1662 x = x.split("</div>").pop();
1663 x.split("\n").pop();
1664 document.getElementById("exportGhost2").value = x;
1665 document.getElementById("exportGhost").value = "SUCCESS!!!!";
1666 setTimeout(function(){ document.getElementById("exportGhost").value = "Enter an ID"; }, 1000);
1667 }else{
1668 document.getElementById("exportGhost2").value = x;
1669 document.getElementById("exportGhost").value = "SUCCESS!!!!";
1670 setTimeout(function(){ document.getElementById("exportGhost").value = "Enter an ID"; }, 1000);
1671 }
1672 }
1673 });
1674 }else{
1675 alert("Please Enter A Valid ID!");
1676 }
1677 };
1678 var PhantomTitle = document.createElement("h4"); //Just a text element
1679 PhantomTitle.innerHTML = "Static pieces ➞ Phantom pieces"; //Text to show
1680 PhantomTitle.id = "PhantomTitle";
1681 document.getElementById("fcmlInnerHubE").appendChild(PhantomTitle);
1682 var exportPhantom = document.createElement("input");
1683 exportPhantom.type = "text";
1684 exportPhantom.value = "Enter an ID";
1685 exportPhantom.id = "exportPhantom";
1686 exportPhantom.style.width = "35%";
1687 exportPhantom.style.borderRadius = "5px";
1688 exportPhantom.style.border = "5px";
1689 exportPhantom.style.textAlign = "center";
1690 exportPhantom.style.height = "20px";
1691 document.getElementById("fcmlInnerHubE").appendChild(exportPhantom);
1692 var PhantomButton = document.createElement("input");
1693 PhantomButton.type = "submit";
1694 PhantomButton.id = "PhantomButton";
1695 PhantomButton.style.borderRadius = "5px";
1696 PhantomButton.style.border = "5px";
1697 PhantomButton.value = "Convert!";
1698 PhantomButton.style.height = "20px";
1699 document.getElementById("fcmlInnerHubE").appendChild(PhantomButton);
1700 var exportPhantom2 = document.createElement("input");
1701 exportPhantom2.type = "text";
1702 exportPhantom2.id = "exportPhantom2";
1703 exportPhantom2.style.width = "35%";
1704 exportPhantom2.style.borderRadius = "5px";
1705 exportPhantom2.style.border = "5px";
1706 exportPhantom2.style.textAlign = "center";
1707 exportPhantom2.style.height = "20px";
1708 document.getElementById("fcmlInnerHubE").appendChild(exportPhantom2);
1709 document.getElementById("PhantomButton").onclick = function(){
1710 var levelId = document.getElementById("exportPhantom").value;
1711 if (levelId % 1 === 0 && !isNaN(levelId) && levelId.length > 0){
1712 GM_xmlhttpRequest({
1713 method: "POST",
1714 dataType: "xml",
1715 url: "http://id36.ueuo.com/ver-fcml-spp.php",
1716 data: "levelid="+levelId+"",
1717 headers: {
1718 "Content-Type": "application/x-www-form-urlencoded"
1719 },
1720 onload: function(response) {
1721 var x = response.responseText;
1722 var y = x.match(/<div.+?(?=<\/div>)/g);
1723 if(y){
1724 x = x.split(y[0]).pop();
1725 x = x.split("<img").pop();
1726 x = x.split("</div>").pop();
1727 x.split("\n").pop();
1728 document.getElementById("exportPhantom2").value = x;
1729 document.getElementById("exportPhantom").value = "SUCCESS!!!!";
1730 setTimeout(function(){ document.getElementById("exportPhantom").value = "Enter an ID"; }, 1000);
1731 }else{
1732 document.getElementById("exportPhantom2").value = x;
1733 document.getElementById("exportPhantom").value = "SUCCESS!!!!";
1734 setTimeout(function(){ document.getElementById("exportPhantom").value = "Enter an ID"; }, 1000);
1735 }
1736 }
1737 });
1738 }else{
1739 alert("Please Enter A Valid ID!");
1740 }
1741 };
1742 var NinjaTitle = document.createElement("h4"); //Just a text element
1743 NinjaTitle.innerHTML = "Static pieces ➞ Ninja pieces"; //Text to show
1744 NinjaTitle.id = "NinjaTitle";
1745 document.getElementById("fcmlInnerHubE").appendChild(NinjaTitle);
1746 var exportNinja = document.createElement("input");
1747 exportNinja.type = "text";
1748 exportNinja.value = "Enter an ID";
1749 exportNinja.id = "exportNinja";
1750 exportNinja.style.width = "35%";
1751 exportNinja.style.borderRadius = "5px";
1752 exportNinja.style.border = "5px";
1753 exportNinja.style.textAlign = "center";
1754 exportNinja.style.height = "20px";
1755 document.getElementById("fcmlInnerHubE").appendChild(exportNinja);
1756 var NinjaButton = document.createElement("input");
1757 NinjaButton.type = "submit";
1758 NinjaButton.id = "NinjaButton";
1759 NinjaButton.style.borderRadius = "5px";
1760 NinjaButton.style.border = "5px";
1761 NinjaButton.value = "Convert!";
1762 NinjaButton.style.height = "20px";
1763 document.getElementById("fcmlInnerHubE").appendChild(NinjaButton);
1764 var exportNinja2 = document.createElement("input");
1765 exportNinja2.type = "text";
1766 exportNinja2.id = "exportNinja2";
1767 exportNinja2.style.width = "35%";
1768 exportNinja2.style.borderRadius = "5px";
1769 exportNinja2.style.border = "5px";
1770 exportNinja2.style.textAlign = "center";
1771 exportNinja2.style.height = "20px";
1772 document.getElementById("fcmlInnerHubE").appendChild(exportNinja2);
1773 document.getElementById("NinjaButton").onclick = function(){
1774 var levelId = document.getElementById("exportNinja").value;
1775 if (levelId % 1 === 0 && !isNaN(levelId) && levelId.length > 0){
1776 GM_xmlhttpRequest({
1777 method: "POST",
1778 dataType: "xml",
1779 url: "http://id36.ueuo.com/ver-fcml-snp.php",
1780 data: "levelid="+levelId+"",
1781 headers: {
1782 "Content-Type": "application/x-www-form-urlencoded"
1783 },
1784 onload: function(response) {
1785 var x = response.responseText;
1786 var y = x.match(/<div.+?(?=<\/div>)/g);
1787 if(y){
1788 x = x.split(y[0]).pop();
1789 x = x.split("<img").pop();
1790 x = x.split("</div>").pop();
1791 x.split("\n").pop();
1792 document.getElementById("exportNinja2").value = x;
1793 document.getElementById("exportNinja").value = "SUCCESS!!!!";
1794 setTimeout(function(){ document.getElementById("exportNinja").value = "Enter an ID"; }, 1000);
1795 }else{
1796 document.getElementById("exportNinja2").value = x;
1797 document.getElementById("exportNinja").value = "SUCCESS!!!!";
1798 setTimeout(function(){ document.getElementById("exportNinja").value = "Enter an ID"; }, 1000);
1799 }
1800 }
1801 });
1802 }else{
1803 alert("Please Enter A Valid ID!");
1804 }
1805 };
1806 var hr2 = document.createElement("hr");
1807 hr2.style.borderStyle = "inset";
1808 hr2.style.borderWidth = "5px";
1809 hr2.style.borderColor = "#87BEF1";
1810
1811 document.getElementById("fcmlInnerHubE").appendChild(hr2);
1812 var noteTitle = document.createElement("h4"); //Just a text element
1813 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
1814 noteTitle.id = "noteTitle";
1815 document.getElementById("fcmlInnerHubE").appendChild(noteTitle);
1816 //Add Iframe Changing Hub
1817 var iframeHub = document.createElement("div");
1818 iframeHub.style.position = "absolute";
1819 iframeHub.style.display = "none";
1820 iframeHub.style.borderStyle = "solid";
1821 iframeHub.style.borderRadius = 25*scale+"px";
1822 iframeHub.style.borderColor = "blue";
1823 iframeHub.style.backgroundImage = "url('http://i67.tinypic.com/w6w514.jpg')";
1824 iframeHub.style.top = 48*scale+"px";
1825 iframeHub.style.right = 20*scale+"px";
1826 iframeHub.style.width = 320*scale+"px";
1827 iframeHub.style.height="85%";
1828 iframeHub.id = "iframeHub";
1829 centered.appendChild(iframeHub);
1830 iframeHub.innerHTML = "<center><div id = 'iframeInnerHub'><h1>Other Website Hub</h1></div><center>";
1831 document.getElementById("iframeInnerHub").style.height = "100%";
1832 var id36Button = document.createElement("input");
1833 id36Button.type = "image";
1834 id36Button.id = "id36Button";
1835 id36Button.src = "http://i.imgur.com/iGWIDjI.gif";
1836 id36Button.style.width = "85%";
1837 id36Button.style.borderRadius = "5px";
1838 id36Button.style.border = "5px";
1839 id36Button.value = "ID36's Website";
1840 document.getElementById("iframeInnerHub").appendChild(id36Button);
1841 var br = document.createElement("br");
1842 document.getElementById("iframeInnerHub").appendChild(br);
1843 var fcrButton = document.createElement("input");
1844 fcrButton.type = "image";
1845 fcrButton.id = "fcrButton";
1846 fcrButton.style.width = "85%";
1847 fcrButton.style.borderRadius = "5px";
1848 fcrButton.style.border = "5px";
1849 fcrButton.value = "Fantastic Contraption Resource";
1850 fcrButton.src = "http://i.imgur.com/3KHnMxW.gif";
1851 document.getElementById("iframeInnerHub").appendChild(fcrButton);
1852 document.getElementById("iframeInnerHub").appendChild(br);
1853 var forumButton = document.createElement("input");
1854 forumButton.type = "image";
1855 forumButton.id = "forumButton";
1856 forumButton.style.width = "85%";
1857 forumButton.style.borderRadius = "5px";
1858 forumButton.style.border = "5px";
1859 forumButton.value = "Fantastic Contraption Resource";
1860 forumButton.src = "http://i.imgur.com/ahpcfYU.gif";
1861 document.getElementById("iframeInnerHub").appendChild(forumButton);
1862 document.getElementById("iframeInnerHub").appendChild(br);
1863 var feedbackButton = document.createElement("input");
1864 feedbackButton.type = "image";
1865 feedbackButton.id = "feedbackButton";
1866 feedbackButton.style.width = "85%";
1867 feedbackButton.style.borderRadius = "5px";
1868 feedbackButton.style.border = "5px";
1869 feedbackButton.value = "Fantastic Contraption Resource";
1870 feedbackButton.src = "http://i.imgur.com/Y9EgMW6.gif";
1871 document.getElementById("iframeInnerHub").appendChild(feedbackButton);
1872 document.getElementById("iframeInnerHub").appendChild(br);
1873 document.getElementById("id36Button").onclick = function(){
1874 document.getElementById("otherSites").src = "http://id36.ueuo.com/index.php";
1875 };
1876 document.getElementById("fcrButton").onclick = function(){
1877 document.getElementById("otherSites").src = "http://fc.sk89q.com/";
1878 };
1879 document.getElementById("forumButton").onclick = function(){
1880 document.getElementById("otherSites").src = "http://fc2.boards.net/";
1881 };
1882 document.getElementById("feedbackButton").onclick = function(){
1883 document.getElementById("otherSites").src = "http://fc2.boards.net/conversation/new/110,12,96,3";
1884 };
1885
1886 //Input to change the amount loaded
1887 var cAmt = document.createElement("div");
1888 cAmt.style.position = "absolute";
1889 cAmt.id = "cAmt";
1890 cAmt.style.top="89%";
1891 cAmt.style.left=10*scale+"px";
1892 cAmt.style.textAlign="left";
1893 centered.appendChild(cAmt);
1894
1895 var ctitle = document.createElement("h4"); //Just a text element
1896 ctitle.innerHTML = "<center><table><tr><td> </td><td>Change How Many Levels <br>Per Hub To Load:</td></tr></table></center>"; //Text to show
1897 ctitle.id = "ctitle";
1898 ctitle.style.fontSize = 0.9*scale+"em";
1899 ctitle.style.display = "none";
1900 document.getElementById("cAmt").appendChild(ctitle); //Must use the id and not the variable name becaue if changingNick the var is not defined
1901
1902 //Create a box to enter amount
1903 var cInput = document.createElement("input"); //Create the input
1904 cInput.type = "text"; //Textbox
1905 cInput.id = "cInput";
1906 cInput.style.padding = "5px"; //Just some styles
1907 cInput.style.borderRadius = "5px";
1908 cInput.style.border = "none";
1909 cInput.style.display = "none";
1910 cInput.style.height = 30*scale+"px";
1911 cInput.style.width = 30*scale+"px";
1912 cInput.style.position = "absolute";
1913 cInput.style.top="95%";
1914 cInput.style.left=64*scale+"px";
1915 centered.appendChild(cInput);
1916
1917 //Now create a button to save the info
1918 var cSubmit = document.createElement("input"); //Create the button. May want to replace with an image later because images>buttons
1919 cSubmit.type = "button"; //Button
1920 cSubmit.value = "Go!"; //What the button says
1921 cSubmit.id = "cSubmit";
1922 cSubmit.style.marginLeft = "5px";
1923 cSubmit.style.padding = "5px";
1924 cSubmit.style.display = "none";
1925 cSubmit.style.border = "none";
1926 cSubmit.style.borderRadius = "5px";
1927 cSubmit.style.position = "absolute";
1928 cSubmit.style.top="95%";
1929 cSubmit.style.left=120*scale+"px";
1930 cSubmit.style.height = 40*scale+"px";
1931 cSubmit.style.cursor = "pointer"; //Set cursor to pointer, to make it obvious it is clickable
1932 centered.appendChild(cSubmit);
1933 document.getElementById("cSubmit").onclick = function(){
1934 var hMany = document.getElementById("cInput").value;
1935 if(!isNaN(hMany) && hMany > 0 && hMany < 101 && hMany % 1 === 0){
1936 if (pageLocked)
1937 {
1938 giveMessage("You cannot do that while the page is locked.");
1939 }
1940 else
1941 {
1942 var r = confirm("Refreshing the Hub will refresh the game. All current designs will be lost. Are you sure you want to continue?");
1943 if(r == true){
1944 maxL = hMany;
1945 contHolder = ctr.innerHTML;
1946 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>";
1947 lateItr = 0;
1948 topItr = 0;
1949 t = new Date();
1950 console.log(t);
1951 document.getElementById('dsgHub').style.display = 'none';
1952 document.getElementById('lateHub').style.display = 'block';
1953 document.getElementById('TopHub').style.display = 'none';
1954 resetHub();
1955 }else{
1956 giveMessage("The Hub Was Not Refreshed");
1957 }
1958 }
1959 }else{
1960 alert("Please Enter a Number between 1-100!");
1961 }
1962 };
1963
1964
1965 //-----End of Creating Areas-----------------------------------------------------------------------------------------------------------
1966 //Hide SWF while loading Hubs
1967 var ctr = document.getElementById("maincontent");
1968 contHolder = ctr.innerHTML;
1969 document.getElementsByClassName("border")[0].style.backgroundImage = "url('http://fantasticcontraption.com/images/fantastic_contraption_border.png')";
1970 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>";
1971 //Load the SWF once hubs complete
1972 function hubsLoaded(){
1973 if(topItr == maxL && lateItr == maxL){
1974 ctr.innerHTML = contHolder;
1975 contraption = getFlash();
1976 if(inFullScreen){
1977 document.getElementsByClassName("border")[0].style.backgroundImage = "url('')";
1978 }
1979 getUseFlashVars();
1980 if(currentPageNumber == 0){
1981 reset.style.display = "block";
1982 ctitle.style.display = "block";
1983 cSubmit.style.display = "block";
1984 cInput.style.display = "block";
1985 }
1986 }
1987 }
1988
1989 //True Fullscreen Mode
1990 var trueFull = "false";
1991 var oldW;
1992 var oldH;
1993 //(document.getElementById("sHubs")
1994 //(document.getElementById("sLvl")
1995 //(document.getElementById("sChat")
1996 //(document.getElementById("sScroll")
1997 var checkHub;
1998 var checkLvl;
1999 var checkChat;
2000 var checkScroll;
2001 function KeyPress(e) {
2002 //console.log(e.keyCode);
2003 //console.log(e.shiftKey);
2004 if (e.keyCode == 70 && e.shiftKey == true) {
2005 //alert("HI");
2006 var w = screen.width;
2007 //console.log(w);
2008 var h = screen.height;
2009 //console.log(h);
2010 contHolder = ctr.innerHTML;
2011 //console.log(contHolder);
2012 if(window.innerHeight != document.getElementById("contraption").height){
2013 oldH = document.getElementById("contraption").height;
2014 oldW = document.getElementById("contraption").width;
2015 checkHub = document.getElementById("sHubs").checked;
2016 checkLvl = document.getElementById("sLvl").checked;
2017 checkChat = document.getElementById("sChat").checked;
2018 checkScroll = document.getElementById("sScroll").checked;
2019 document.getElementById("contraption").style.position = "absolute";
2020 document.getElementById("contraption").style.top = "0px";
2021 document.getElementById("contraption").style.left = "0px";
2022 document.getElementById("contraption").style.backgroundColor = "green";
2023 document.getElementById("contraption").height = window.innerHeight;
2024 document.getElementById("contraption").width = window.innerWidth;
2025 document.getElementById("contraption").style.border = "";
2026 document.getElementById('lateHub').style.display = 'none';
2027 document.getElementById('TopHub').style.display = 'none';
2028 document.getElementById('dsgHub').style.display = 'none';
2029 document.getElementById('cAmt').style.display = 'none';
2030 document.getElementById('cInput').style.display = 'none';
2031 document.getElementById('ctitle').style.display = 'none';
2032 document.getElementById('cSubmit').style.display = 'none';
2033 document.getElementById('resetHub').style.display = "none";
2034 document.getElementById("randLevelHub").style.display = 'none';
2035 document.getElementById("chatHub").style.display = 'none';
2036 document.getElementById("leftBtn").style.display = 'none';
2037 document.getElementById("rightBtn").style.display = 'none';
2038 document.getElementById("pageDescription").style.display = 'none';
2039 document.getElementById("settingsHub").style.display = 'none';
2040 document.getElementById("fullScreenButton").style.display = 'none';
2041 document.getElementById("tweakBtn").style.right = 45*scale+'px';
2042 giveMessage("TRUE FULLSCREEN ACTIVATED");
2043 }else{
2044 document.getElementById("contraption").height = oldH;
2045 document.getElementById("contraption").width = oldW;
2046 document.getElementById("settingsHub").style.display = 'block';
2047 document.getElementById("fullScreenButton").style.display = 'block';
2048 document.getElementById("tweakBtn").style.right = 315*scale+'px';
2049 giveMessage("TRUE FULLSCREEN DEACTIVATED");
2050 if(document.getElementById("sHubs").checked){
2051 document.getElementById('lateHub').style.display = 'none';
2052 document.getElementById('TopHub').style.display = 'none';
2053 document.getElementById('dsgHub').style.display = 'none';
2054 document.getElementById('cAmt').style.display = 'none';
2055 document.getElementById('cInput').style.display = 'none';
2056 document.getElementById('ctitle').style.display = 'none';
2057 document.getElementById('cSubmit').style.display = 'none';
2058 document.getElementById('resetHub').style.display = "none";
2059 }else{
2060 document.getElementById('lateHub').style.display = 'block';
2061 document.getElementById('TopHub').style.display = 'none';
2062 document.getElementById('dsgHub').style.display = 'none';
2063 document.getElementById('cAmt').style.display = 'block';
2064 document.getElementById('cInput').style.display = 'block';
2065 document.getElementById('ctitle').style.display = 'block';
2066 document.getElementById('cSubmit').style.display = 'block';
2067 document.getElementById('resetHub').style.display = "block";
2068 }
2069 if(document.getElementById("sLvl").checked){
2070 document.getElementById("randLevelHub").style.display = 'none';
2071 }else{
2072 document.getElementById("randLevelHub").style.display = 'block';
2073 }
2074 if(document.getElementById("sChat").checked){
2075 document.getElementById("chatHub").style.display = 'none';
2076 }else{
2077 document.getElementById("chatHub").style.display = 'block';
2078 }
2079
2080 if(document.getElementById("sScroll").checked){
2081 document.getElementById("leftBtn").style.display = 'none';
2082 document.getElementById("rightBtn").style.display = 'none';
2083 document.getElementById("pageDescription").style.display = 'none';
2084 }else{
2085 document.getElementById("leftBtn").style.display = 'block';
2086 document.getElementById("rightBtn").style.display = 'block';
2087 document.getElementById("pageDescription").style.display = 'block';
2088 }
2089 if(inFullScreen){
2090 //console.log(inFullScreen);
2091 document.getElementById("contraption").style.position = "absolute";
2092 document.getElementById("contraption").style.top = "45px";
2093 document.getElementById("contraption").style.left = "calc(50% - "+540*scale+"px)";
2094 document.getElementById("contraption").style.border = 10+scale+"px solid #2550FF";
2095 document.getElementById("contraption").style.borderRadius = 25*scale+"px";
2096 }else{
2097 document.getElementById("contraption").style.position = "initial";
2098 document.getElementById("contraption").style.top = "initial";
2099 document.getElementById("contraption").style.left = "initial";
2100 document.getElementById("contraption").style.border = "initial";
2101 }
2102 }
2103 }
2104 }
2105
2106 document.onkeydown = KeyPress;
2107
2108
2109 //Red Arrow Blocker Toggle
2110 var btnOff = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABIAAAASABGyWs+AAAHaklEQVRYw7VXa2xUxxX+Zubu3n0/7PXaix/YxgY7OBAHjCEERIyiQCFRpUSBiKqkKa4IkIjShoaKBIUmLlKUtKVOi0WBRiikUaBRI6Q0EBrAvGIK2GbB2Mb4idfGXq93fdf7uvdOfxgSv7Z2Cv2k+XE1Z845853vnpkhmCRMACQAf3l6ETufMy8h1TXFcdxdPy0Qk1nJtPQOznlnYvNV79lDn8UURvnXijopv2Qig+UrlsHU2cIsy56foaTnLPUarAv7BH2uoNEm9YcjjoiikhSjzh+Oxrx2HmuySb5LZu/t42J15WU+vSDs/e0ufPy/JLD552vx+/f/ijU7ygo6krNLw+aE58J6c0qIMKqAgIMDhIAA4HzIEQGHDios0UG/Neg77upt32O89NUpPiVLLt9dPvkEyvdUQLzTIZ5Mzl/TZnRs7xbNWTJhAPiElPG7bgVwJMaC/c7+7j253pZ3edGSvveeWjBxAqveeR9sULL0Zz70VpfNVeongnGyOhmbDIGeK8q0wd4vLe31r/YbrE1Ht5SOsGHDPzbtLENy4I6lbnpxWZvZuXGQCuKEIpmgvjIh1Kc15EqiqcDV3Xx26pr1vrk3q+Du9QMA6D3j17e/gYcr/86ac+e+3mdKfDnGBHY/wYdDBkHAZC/pS83dnXjlVIL8zNqRDFjMZkw/fgz1g+blDfa0dwJUY3hQwe9BJQRB0ZhtcyQFPt268Wxg/c9w4d+XhjTw442vgkZCGc3zV3zeYZ8yG5w/4PDfFcWlhjrn+ttXBIlQvXfdarA3XtmAhqUvQGc0/agtIe2lCKETN4f7QJgIZg2j0Y9Kf3gsuGETZ0nT82GrrrS3FSzc2aezZI5ewAmBShkIIRAoBWUMlNK4A5RCIeTufsdCAQFTlbTqwoe/4PakHsEyqwhyODQ7qNEXqXzkIpVQOAI+FDReR1ZoAFNELbjXC8gxgNExzgkIgrKMBnMC3AWFaE9KAVHVUTYcPiamdpgcJbHiJ68L3TPmIsl7e3ZE1BvutREAUCnFTE8H1tWeQeH8QhhnLgIIQeTUafTv249YnTtuqRZTAXfSs3F47SZ8PasIoxUVpQJCOvPCQ/NS/8Qa/raPlK9cva5Pb310OO0pvl5sqT6NxS+vhblkMTTORGicDuiKi6B5/HEEz5yD0tMDDgYOOmKAA2Z/L/Ku16DpoUfQlegEGSZsDoBQ0l+TbDpCsX8r01tticOJUglB0Y1aFJY8Bk3+DPBYDFxRh4Ysw1iQD9umTQDTxBWbCgZrTyeWnPon2KgycBBQQlwZ+TOtFD/ZjgS7fQSdgqoiJyLBOGsmuKKM9c5V6IrnAY4kAPGPXQ4gu6UR1lh0VBk4TEYjHi0sBB1PqwSAhjFA0GDcnsABiDpAK+K/gQMQwaEh40/KsgKK8m3w9nlHZChTitYYR/SqG4SxsYsZQ+R6HdDdhWHdfAwoOFodyfBRYdQ2CQakAVRdrALFK+WKIPm9wnALDpzLmw33sZNQuu+ACAJAyND5rxEQbboF/x92A9FQ3OAEKiRzAk48sQJRQRjDsIHCM9h4zc/OHz4NS6A3y2uwLovd7YIEHAGLDa3BCDKP/gNWnQii00GVghj85hK8v9qG2NmToCCj9P/tfwDJ5sChVT/FmQVPjCkyBeAM+b86+ObWT8nm3RWISNKCmuw5X3QJBisZVgxOCLK6OvDYzevICEug0gB4Wyt4wA/QONRrtOjJycPFR4rhnpoDlYwMzwGYVBmzem6uDznTK4RATRVSY5Lb5Mq9RM36kuFaIJzjVkoaml3pYNEoCFcBQofKEZd7AkWjgco5qDreH0JgiEi3xfbGSp2nBTTqacfFtTsG7HLogJ7L0dGap5yDqCpUQYCi0UIRBCiMxR+UAooSJzggcBXmsHTkxV1v3xhwXwarbWzCM/lZcPR52n1G+0JJa8z8fx3GIAQJIX9n2u2G104/+bTnyAe/G7qQ2OUQ1FUbwvb2+m7JaFsepFr9gz6SOQADV6I5wZ4d6zev+/w8jaL+VvNQAo2tbVipi6L0k7JbFwuX0qjetCRENfRBJcEB6LmKjJDvw4LOurIrT62MHqz4M4Bhl9LKKzWIPFvKjTXna52ZWdYBnWlOiLD7TuJe8LwBz7+m1Fb+QiKsZ8+b276dH9Hmrly5jEU/WBmxNdWeUS12EtabZ0eoIH7foN+BwKDG5Iyw78OpV89sCSeltu7bsW2ExZg++82FC1jwwouRjFb3SUEUbxKtmBcWtEkKCOGY+C1372GiAYcjKnVm9bbtctRV/cav0d05+Navx9iz8ZycO/4l5htFXv7BH69dnj/nqEGn72ZcTeWE2hVCKQcZ9UYaeqJRACauqAlRyeMK9R/I9rb+Mu+jdz8jTAjvraiIw9EE+OSl5/D8/sN4befbaa1W12JJa1g6YE1KD8tKptlkopRSBINBqByehLC/wxkOnDP3eU6IVSfqPa4M5eO9ByYo0vfEe1lWem3Zap3JmZZYPG8e0Ypa1NbWkhs36vpXt1yQnj1WrRgADE7S338AAO4QNROqELwAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTYtMDktMjhUMTM6NDM6MDQtMDU6MDAfB+UfAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE2LTA5LTI4VDEzOjQzOjA0LTA1OjAwblpdowAAAABJRU5ErkJggg==";
2111 var btnOn = "data:image/png;base64,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";
2112 var tweakBtn = document.createElement("input");
2113 var btnState = "Off";
2114 tweakBtn.type = "image";
2115 tweakBtn.src = btnOff;
2116 tweakBtn.title = "Toggle Red Arrow Blocker";
2117 tweakBtn.style.width = 2.5*scale+"em";
2118 tweakBtn.id = "tweakBtn";
2119 tweakBtn.style.cursor = "pointer";
2120 tweakBtn.style.position = "absolute";
2121 tweakBtn.style.top = "0px";
2122 tweakBtn.style.right = 315*scale+"px";
2123 centered.appendChild(tweakBtn);
2124 document.getElementById("tweakBtn").onclick = function(){
2125 if(btnState == "Off"){
2126 tweakBtn.src = btnOn;
2127 btnState = "On";
2128 giveMessage("Red Arrow Blocker On");
2129 document.getElementById('rArrow').style.display = "block";
2130
2131 }else{
2132 tweakBtn.src = btnOff;
2133 btnState = "Off";
2134 giveMessage("Red Arrow Blocker Off");
2135 document.getElementById('rArrow').style.display = "none";
2136 }
2137 };
2138
2139 //-----Fill areas----------------------------------------------------------------------------------------------------------------------
2140 function createCanvas(id,itr,hub){
2141 var levelId = id;
2142 var itr = itr;
2143 var wHub;
2144 var cId;
2145 var cId = "img"+levelId+"";
2146 if(hub == "top"){
2147 wHub = document.getElementById("TopInnerHub");
2148 } else{
2149 wHub = document.getElementById("lateInnerHub");
2150 }
2151 //console.log("Calling ajax now for " + id + " " + hub);
2152 $.ajax({
2153 type: "POST",
2154 dataType: "xml",
2155 url: "http://fantasticcontraption.com/retrieveLevel.php",
2156 data: {
2157 id: levelId
2158 },
2159 error: function() {
2160 console.log("Error on ajax for: "+levelId+"...skipping Id");
2161 if(hub == "top"){
2162 wHub.innerHTML += "<h4>Level ID: "+levelId+" skipped due to error</h4><br>";
2163 topItr++
2164 setTop();
2165
2166 }else{
2167 wHub.innerHTML += "<h4>Level ID: "+levelId+" skipped due to error</h4><br>";
2168 lateItr++
2169 setLate();
2170 }
2171 },
2172 success: function(data) {
2173 //GET ALL THE ELEMENTS
2174 //console.log("Recieved Ajax from "+id+" "+ hub);
2175 var sR = data.getElementsByTagName('StaticRectangle');
2176 var sC = data.getElementsByTagName('StaticCircle');
2177 var dR = data.getElementsByTagName('DynamicRectangle');
2178 var dC = data.getElementsByTagName('DynamicCircle');
2179 var bA = data.getElementsByTagName('start');
2180 var gA = data.getElementsByTagName('end');
2181 var uW = data.getElementsByTagName('NoSpinWheel');
2182 var gR = data.getElementsByTagName('JointedDynamicRectangle');
2183 var gC = [];
2184 var NongC = [];
2185 for (i = 0; i < uW.length; i++){
2186 if(uW[i].getElementsByTagName('goalBlock')[0].innerHTML=='true'){
2187 gC.push(uW[i]);
2188 }else{
2189 NongC.push(uW[i]);
2190 }
2191 }
2192 var cW = data.getElementsByTagName('ClockwiseWheel');
2193 var ccW = data.getElementsByTagName('CounterClockwiseWheel');
2194 //Try and get the centers of a level
2195 var xx = data.getElementsByTagName('x');
2196 var xNum = [];
2197 for(i = 0; i < xx.length; i++){
2198 xNum[i] = xx[i].innerHTML;
2199 }
2200 var yy = data.getElementsByTagName('y');
2201 var yNum = [];
2202 for(i = 0; i < yy.length; i++){
2203 yNum[i] = yy[i].innerHTML;
2204 }
2205 var xMin = Math.min.apply(null, xNum);
2206 var xMax = Math.max.apply(null, xNum);
2207 var xCenter = (xMax + xMin)/2;
2208 var yMin = Math.min.apply(null, yNum);
2209 var yMax = Math.max.apply(null, yNum);
2210 var yCenter = (yMax + yMin)/2;
2211 //START TO CREATE CANVAS
2212 var defaultWidth = 1800;
2213 var defaultHeight = 1440;
2214 var scale = 1/6;
2215 var canvasWidth = defaultWidth * scale;
2216 var canvasHeight = defaultHeight * scale;
2217 wHub.innerHTML += '<canvas id="'+cId+'" width="'+canvasWidth+'" height="'+canvasHeight+'" style="border:1px solid #d3d3d3;"><br>';
2218 var canvas = document.getElementById(cId);
2219 var centerX = (canvasWidth * 0.5);
2220 var centerY = (canvasHeight * 0.5);
2221 canvas.style.visibility = "hidden";
2222 canvas.style.zIndex = "1000";
2223 var ctx = canvas.getContext("2d");
2224 ctx.strokeStyle = "#85AFF3";
2225 ctx.strokeRect(0,0,900,720);
2226 ctx.fillStyle = "#85AFF3";
2227 ctx.fillRect(0,0,900,720);
2228 for(i = 0; i < bA.length; i++){
2229 var x = (bA[i].getElementsByTagName('x')[0].innerHTML);
2230 var y = (bA[i].getElementsByTagName('y')[0].innerHTML);
2231 x = x-xCenter;
2232 y = y-yCenter;
2233 var w = bA[i].getElementsByTagName('width')[0].innerHTML;
2234 var h = bA[i].getElementsByTagName('height')[0].innerHTML;
2235 var type = 1;
2236 drawObject(x*scale,y*scale,w*scale,h*scale,0,type);
2237 }
2238 for(i = 0; i < bA.length; i++){
2239 var x = bA[i].getElementsByTagName('x')[0].innerHTML;
2240 var y = bA[i].getElementsByTagName('y')[0].innerHTML;
2241 x = x-xCenter;
2242 y = y-yCenter;
2243 var w = bA[i].getElementsByTagName('width')[0].innerHTML;
2244 var h = bA[i].getElementsByTagName('height')[0].innerHTML;
2245 var type = 1;
2246 fillObject(x*scale,y*scale,w*scale,h*scale,0,type);
2247 }
2248 for(i = 0; i < gA.length; i++){
2249 var x = gA[i].getElementsByTagName('x')[0].innerHTML;
2250 var y = gA[i].getElementsByTagName('y')[0].innerHTML;
2251 x = x-xCenter;
2252 y = y-yCenter;
2253 var w = gA[i].getElementsByTagName('width')[0].innerHTML;
2254 var h = gA[i].getElementsByTagName('height')[0].innerHTML;
2255 var type = 2;
2256 drawObject(x*scale,y*scale,w*scale,h*scale,0,type);
2257 }
2258 for(i = 0; i < gA.length; i++){
2259 var x = gA[i].getElementsByTagName('x')[0].innerHTML;
2260 var y = gA[i].getElementsByTagName('y')[0].innerHTML;
2261 x = x-xCenter;
2262 y = y-yCenter;
2263 var w = gA[i].getElementsByTagName('width')[0].innerHTML;
2264 var h = gA[i].getElementsByTagName('height')[0].innerHTML;
2265 var type = 2;
2266 fillObject(x*scale,y*scale,w*scale,h*scale,0,type);
2267 }
2268 for(i = 0; i < sR.length; i++){
2269 var x = sR[i].getElementsByTagName('x')[0].innerHTML;
2270 var y = sR[i].getElementsByTagName('y')[0].innerHTML;
2271 x = x-xCenter;
2272 y = y-yCenter;
2273 var w = sR[i].getElementsByTagName('width')[0].innerHTML;
2274 var h = sR[i].getElementsByTagName('height')[0].innerHTML;
2275 var a = sR[i].getElementsByTagName('rotation')[0].innerHTML;
2276 var type = 3;
2277 drawObject(x*scale,y*scale,w*scale,h*scale,a,type);
2278 }
2279 for(i = 0; i < sC.length; i++){
2280 var x = sC[i].getElementsByTagName('x')[0].innerHTML;
2281 var y = sC[i].getElementsByTagName('y')[0].innerHTML;
2282 x = x-xCenter;
2283 y = y-yCenter;
2284 var w = sC[i].getElementsByTagName('width')[0].innerHTML;
2285 if(w < 8){
2286 w = 8.001;
2287 }
2288 var h = sC[i].getElementsByTagName('height')[0].innerHTML;
2289 var a = sC[i].getElementsByTagName('rotation')[0].innerHTML;
2290 var type = 4;
2291 drawObject(x*scale,y*scale,w*scale,h*scale,a,type);
2292 }
2293 for(i = 0; i < dR.length; i++){
2294 var x = dR[i].getElementsByTagName('x')[0].innerHTML;
2295 var y = dR[i].getElementsByTagName('y')[0].innerHTML;
2296 x = x-xCenter;
2297 y = y-yCenter;
2298 var w = dR[i].getElementsByTagName('width')[0].innerHTML;
2299 var h = dR[i].getElementsByTagName('height')[0].innerHTML;
2300 var a = dR[i].getElementsByTagName('rotation')[0].innerHTML;
2301 var type = 5;
2302 drawObject(x*scale,y*scale,w*scale,h*scale,a,type);
2303 }
2304 for(i = 0; i < dC.length; i++){
2305 var x = dC[i].getElementsByTagName('x')[0].innerHTML;
2306 var y = dC[i].getElementsByTagName('y')[0].innerHTML;
2307 x = x-xCenter;
2308 y = y-yCenter;
2309 var w = dC[i].getElementsByTagName('width')[0].innerHTML;
2310 if(w < 8){
2311 w = 8.001;
2312 }
2313 var h = dC[i].getElementsByTagName('height')[0].innerHTML;
2314 var a = dC[i].getElementsByTagName('rotation')[0].innerHTML;
2315 var type = 6;
2316 drawObject(x*scale,y*scale,w*scale,h*scale,a,type);
2317 }
2318 for(i = 0; i < gR.length; i++){
2319 var x = gR[i].getElementsByTagName('x')[0].innerHTML;
2320 var y = gR[i].getElementsByTagName('y')[0].innerHTML;
2321 x = x-xCenter;
2322 y = y-yCenter;
2323 var w = gR[i].getElementsByTagName('width')[0].innerHTML;
2324 var h = gR[i].getElementsByTagName('height')[0].innerHTML;
2325 var a = gR[i].getElementsByTagName('rotation')[0].innerHTML;
2326 var type = 7;
2327 drawObject(x*scale,y*scale,w*scale,h*scale,a,type);
2328 }
2329 for(i = 0; i < gC.length; i++){
2330 var x = gC[i].getElementsByTagName('x')[0].innerHTML;
2331 var y = gC[i].getElementsByTagName('y')[0].innerHTML;
2332 x = x-xCenter;
2333 y = y-yCenter;
2334 var w = gC[i].getElementsByTagName('width')[0].innerHTML;
2335 if(w < 8){
2336 w = 8.001;
2337 }
2338 var h = gC[i].getElementsByTagName('height')[0].innerHTML;
2339 var a = gC[i].getElementsByTagName('rotation')[0].innerHTML;
2340 var type = 8;
2341 drawObject(x*scale,y*scale,w*scale,h*scale,a,type);
2342 }
2343 for(i = 0; i < NongC.length; i++){
2344 var x = NongC[i].getElementsByTagName('x')[0].innerHTML;
2345 var y = NongC[i].getElementsByTagName('y')[0].innerHTML;
2346 x = x-xCenter;
2347 y = y-yCenter;
2348 var w = NongC[i].getElementsByTagName('width')[0].innerHTML;
2349 if(w < 8){
2350 w = 8.001;
2351 }
2352 var h = NongC[i].getElementsByTagName('height')[0].innerHTML;
2353 var a = NongC[i].getElementsByTagName('rotation')[0].innerHTML;
2354 var type = 9;
2355 drawObject(x*scale,y*scale,w*scale,h*scale,a,type);
2356 }
2357 for(i = 0; i < cW.length; i++){
2358 var x = cW[i].getElementsByTagName('x')[0].innerHTML;
2359 var y = cW[i].getElementsByTagName('y')[0].innerHTML;
2360 x = x-xCenter;
2361 y = y-yCenter;
2362 var w = cW[i].getElementsByTagName('width')[0].innerHTML;
2363 if(w < 8){
2364 w = 8.001;
2365 }
2366 var h = cW[i].getElementsByTagName('height')[0].innerHTML;
2367 var a = cW[i].getElementsByTagName('rotation')[0].innerHTML;
2368 var type = 10;
2369 drawObject(x*scale,y*scale,w*scale,h*scale,a,type);
2370 }
2371 for(i = 0; i < ccW.length; i++){
2372 var x = ccW[i].getElementsByTagName('x')[0].innerHTML;
2373 var y = ccW[i].getElementsByTagName('y')[0].innerHTML;
2374 x = x-xCenter;
2375 y = y-yCenter;
2376 var w = ccW[i].getElementsByTagName('width')[0].innerHTML;
2377 if(w < 8){
2378 w = 8.001;
2379 }
2380 var h = ccW[i].getElementsByTagName('height')[0].innerHTML;
2381 var a = ccW[i].getElementsByTagName('rotation')[0].innerHTML;
2382 var type = 11;
2383 drawObject(x*scale,y*scale,w*scale,h*scale,a,type);
2384 }
2385 //Start Filling Objects
2386
2387 for(i = 0; i < sR.length; i++){
2388 var x = sR[i].getElementsByTagName('x')[0].innerHTML;
2389 var y = sR[i].getElementsByTagName('y')[0].innerHTML;
2390 x = x-xCenter;
2391 y = y-yCenter;
2392 var w = sR[i].getElementsByTagName('width')[0].innerHTML;
2393 var h = sR[i].getElementsByTagName('height')[0].innerHTML;
2394 var a = sR[i].getElementsByTagName('rotation')[0].innerHTML;
2395 var type = 3;
2396 fillObject(x*scale,y*scale,w*scale,h*scale,a,type);
2397 }
2398 for(i = 0; i < sC.length; i++){
2399 var x = sC[i].getElementsByTagName('x')[0].innerHTML;
2400 var y = sC[i].getElementsByTagName('y')[0].innerHTML;
2401 x = x-xCenter;
2402 y = y-yCenter;
2403 var w = sC[i].getElementsByTagName('width')[0].innerHTML;
2404 if(w < 8){
2405 w = 8.001;
2406 }
2407 var h = sC[i].getElementsByTagName('height')[0].innerHTML;
2408 var a = sC[i].getElementsByTagName('rotation')[0].innerHTML;
2409 var type = 4;
2410 fillObject(x*scale,y*scale,w*scale,h*scale,a,type);
2411 }
2412 for(i = 0; i < dR.length; i++){
2413 var x = dR[i].getElementsByTagName('x')[0].innerHTML;
2414 var y = dR[i].getElementsByTagName('y')[0].innerHTML;
2415 x = x-xCenter;
2416 y = y-yCenter;
2417 var w = dR[i].getElementsByTagName('width')[0].innerHTML;
2418 var h = dR[i].getElementsByTagName('height')[0].innerHTML;
2419 var a = dR[i].getElementsByTagName('rotation')[0].innerHTML;
2420 var type = 5;
2421 fillObject(x*scale,y*scale,w*scale,h*scale,a,type);
2422 }
2423 for(i = 0; i < dC.length; i++){
2424 var x = dC[i].getElementsByTagName('x')[0].innerHTML;
2425 var y = dC[i].getElementsByTagName('y')[0].innerHTML;
2426 x = x-xCenter;
2427 y = y-yCenter;
2428 var w = dC[i].getElementsByTagName('width')[0].innerHTML;
2429 if(w < 8){
2430 w = 8.001;
2431 }
2432 var h = dC[i].getElementsByTagName('height')[0].innerHTML;
2433 var a = dC[i].getElementsByTagName('rotation')[0].innerHTML;
2434 var type = 6;
2435 fillObject(x*scale,y*scale,w*scale,h*scale,a,type);
2436 }
2437 for(i = 0; i < gR.length; i++){
2438 var x = gR[i].getElementsByTagName('x')[0].innerHTML;
2439 var y = gR[i].getElementsByTagName('y')[0].innerHTML;
2440 x = x-xCenter;
2441 y = y-yCenter;
2442 var w = gR[i].getElementsByTagName('width')[0].innerHTML;
2443 var h = gR[i].getElementsByTagName('height')[0].innerHTML;
2444 var a = gR[i].getElementsByTagName('rotation')[0].innerHTML;
2445 var type = 7;
2446 fillObject(x*scale,y*scale,w*scale,h*scale,a,type);
2447 }
2448 for(i = 0; i < gC.length; i++){
2449 var x = gC[i].getElementsByTagName('x')[0].innerHTML;
2450 var y = gC[i].getElementsByTagName('y')[0].innerHTML;
2451 x = x-xCenter;
2452 y = y-yCenter;
2453 var w = gC[i].getElementsByTagName('width')[0].innerHTML;
2454 if(w < 8){
2455 w = 8.001;
2456 }
2457 var h = gC[i].getElementsByTagName('height')[0].innerHTML;
2458 var a = gC[i].getElementsByTagName('rotation')[0].innerHTML;
2459 var type = 8;
2460 fillObject(x*scale,y*scale,w*scale,h*scale,a,type);
2461 }
2462 for(i = 0; i < NongC.length; i++){
2463 var x = NongC[i].getElementsByTagName('x')[0].innerHTML;
2464 var y = NongC[i].getElementsByTagName('y')[0].innerHTML;
2465 x = x-xCenter;
2466 y = y-yCenter;
2467 var w = NongC[i].getElementsByTagName('width')[0].innerHTML;
2468 if(w < 8){
2469 w = 8.001;
2470 }
2471 var h = NongC[i].getElementsByTagName('height')[0].innerHTML;
2472 var a = NongC[i].getElementsByTagName('rotation')[0].innerHTML;
2473 var type = 9;
2474 fillObject(x*scale,y*scale,w*scale,h*scale,a,type);
2475 }
2476 for(i = 0; i < cW.length; i++){
2477 var x = cW[i].getElementsByTagName('x')[0].innerHTML;
2478 var y = cW[i].getElementsByTagName('y')[0].innerHTML;
2479 x = x-xCenter;
2480 y = y-yCenter;
2481 var w = cW[i].getElementsByTagName('width')[0].innerHTML;
2482 if(w < 8){
2483 w = 8.001;
2484 }
2485 var h = cW[i].getElementsByTagName('height')[0].innerHTML;
2486 var a = cW[i].getElementsByTagName('rotation')[0].innerHTML;
2487 var type = 10;
2488 fillObject(x*scale,y*scale,w*scale,h*scale,a,type);
2489 }
2490 for(i = 0; i < ccW.length; i++){
2491 var x = ccW[i].getElementsByTagName('x')[0].innerHTML;
2492 var y = ccW[i].getElementsByTagName('y')[0].innerHTML;
2493 x = x-xCenter;
2494 y = y-yCenter;
2495 var w = ccW[i].getElementsByTagName('width')[0].innerHTML;
2496 if(w < 8){
2497 w = 8.001;
2498 }
2499 var h = ccW[i].getElementsByTagName('height')[0].innerHTML;
2500 var a = ccW[i].getElementsByTagName('rotation')[0].innerHTML;
2501 var type = 11;
2502 fillObject(x*scale,y*scale,w*scale,h*scale,a,type);
2503 }
2504 //Convert Canvas to Image
2505 var dataURL = canvas.toDataURL();
2506 wHub.removeChild(canvas);
2507 //Top Hub
2508 if (hub == "top"){
2509 wHub.innerHTML += "<img src='"+dataURL+"' alt='' border='1' width='95%' style='display:inline;vertical-align: middle'></img><br>";
2510 wHub.innerHTML += "<span style='vertical-align: middle;'><strong><font size='3'>" + (itr + 1) + ") " + topLvlListName[itr] + " </strong></font></span>";
2511 //Create Load Button
2512 var genButtonLoad = document.createElement("input");
2513 genButtonLoad.type = "image";
2514 genButtonLoad.src = lBtn;
2515 genButtonLoad.style.verticalAlign = "middle";
2516 genButtonLoad.style.padding = "1px";
2517 genButtonLoad.id = topLvlListId[itr];
2518 genButtonLoad.title = "Play Level";
2519 genButtonLoad.setAttribute("class", "loadClass");
2520 wHub.appendChild(genButtonLoad);
2521 //Add space between buttons
2522 wHub.innerHTML += " ";
2523 //Create Design Button
2524 var genButtonDesign = document.createElement("input");
2525 genButtonDesign.type = "image";
2526 genButtonDesign.title = "See Designs";
2527 genButtonDesign.src = dBtn;
2528 genButtonDesign.width = "30";
2529 genButtonDesign.height = "30";
2530 genButtonDesign.style.verticalAlign = "middle";
2531 genButtonDesign.style.padding = "1px";
2532 genButtonDesign.id = "designId="+topLvlListId[itr];
2533 genButtonDesign.setAttribute("class", "designClass");
2534 wHub.appendChild(genButtonDesign);
2535 wHub.innerHTML += "<br>";
2536 topItr++
2537 setTop();
2538 }else{
2539 wHub.innerHTML += "<img src='"+dataURL+"' alt='' border='1' width='95%' style='display:inline;vertical-align: middle'></img><br>";
2540 wHub.innerHTML += "<span style='vertical-align: middle;'><strong><font size='3'>" + (itr + 1) + ") " + lateLvlListName[itr] + " </strong></font></span>";
2541 //Create Load Button
2542 var genButtonLoad = document.createElement("input");
2543 genButtonLoad.type = "image";
2544 genButtonLoad.src = "http://i66.tinypic.com/9kzatg.png";
2545 genButtonLoad.style.verticalAlign = "middle";
2546 genButtonLoad.title = "Play Level";
2547 genButtonLoad.style.padding = "1px";
2548 genButtonLoad.id = lateLvlListId[itr];
2549 genButtonLoad.setAttribute("class", "loadClass");
2550 wHub.appendChild(genButtonLoad);
2551 //Add space between buttons
2552 wHub.innerHTML += " ";
2553 //Create Design Button
2554 var genButtonDesign = document.createElement("input");
2555 genButtonDesign.type = "image";
2556 genButtonDesign.title = "See Designs";
2557 genButtonDesign.src = "http://i68.tinypic.com/eleiv7.png";
2558 genButtonDesign.width = "30";
2559 genButtonDesign.height = "30";
2560 genButtonDesign.style.verticalAlign = "middle";
2561 genButtonDesign.style.padding = "1px";
2562 genButtonDesign.id = "designId="+lateLvlListId[itr];
2563 genButtonDesign.setAttribute("class", "designClass");
2564 wHub.appendChild(genButtonDesign);
2565 wHub.innerHTML += "<br>";
2566 lateItr++
2567 setLate();
2568 }
2569 //Start Awesome Functions Created by Zhyrek to draw canvas
2570 function drawObject(x, y, w, h, a, type)
2571 {
2572 w -= 8 * scale;
2573 h -= 8 * scale;
2574 var ca = Math.cos(a);
2575 var sa = Math.sin(a);
2576 ctx.transform(1,0,0,1,x+centerX,y+centerY);
2577 ctx.transform(ca,sa,-sa,ca,0,0);
2578 ctx.lineJoin="round";
2579 ctx.lineWidth = 4 * scale;
2580 if(type == 1)//buildArea
2581 {
2582 ctx.strokeStyle = "#7F66ED";
2583 ctx.strokeRect(-w/2,-h/2,w,h);
2584 }
2585 else if(type == 2)//goalArea
2586 {
2587 ctx.strokeStyle = "#B46268";
2588 ctx.strokeRect(-w/2,-h/2,w,h);
2589 }
2590 else if(type == 3)//staticRect
2591 {
2592 ctx.strokeStyle = "#1D8501";
2593 ctx.strokeRect(-w/2,-h/2,w,h);
2594 }
2595 else if(type == 4)//staticCircle
2596 {
2597 ctx.strokeStyle = "#1D8501";
2598 ctx.arc(0,0,w,0,Math.PI*2);
2599 ctx.stroke();
2600 ctx.beginPath();
2601 }
2602 else if(type == 5)//dynamicRect
2603 {
2604 ctx.strokeStyle = "#BD5420";
2605 ctx.strokeRect(-w/2,-h/2,w,h);
2606 }
2607 else if(type == 6)//dynamicCircle
2608 {
2609 ctx.strokeStyle = "#BD5420";
2610 ctx.arc(0,0,w,0,Math.PI*2);
2611 ctx.stroke();
2612 ctx.beginPath();
2613 }
2614 else if(type == 7)//goalRect
2615 {
2616 ctx.strokeStyle = "#BD5420";
2617 ctx.strokeRect(-w/2,-h/2,w,h);
2618 }
2619 else if(type == 8)//goalCircle
2620 {
2621 ctx.strokeStyle = "#B46268";
2622 ctx.arc(0,0,w/2,0,Math.PI*2);
2623 ctx.stroke();
2624 ctx.beginPath();
2625 }
2626 else if(type == 9)//blueWheel
2627 {
2628 ctx.strokeStyle = "#4452FC";
2629 ctx.arc(0,0,w/2,0,Math.PI*2);
2630 ctx.stroke();
2631 ctx.beginPath();
2632 }
2633 else if(type == 10)//yellowWheel
2634 {
2635 ctx.strokeStyle = "#F37E22";
2636 ctx.arc(0,0,w/2,0,Math.PI*2);
2637 ctx.stroke();
2638 ctx.beginPath();
2639 }
2640 else if(type == 11)//pinkWheel
2641 {
2642 ctx.strokeStyle = "#CB2EA5";
2643 ctx.arc(0,0,w/2,0,Math.PI*2);
2644 ctx.stroke();
2645 ctx.beginPath();
2646 }
2647 ctx.setTransform(1,0,0,1,0,0);
2648 }
2649 function fillObject(x, y, w, h, a, type)
2650 {
2651 w -= 8 * scale;
2652 h -= 8 * scale;
2653 var ca = Math.cos(a);
2654 var sa = Math.sin(a);
2655 ctx.transform(1,0,0,1,x+centerX,y+centerY);
2656 ctx.transform(ca,sa,-sa,ca,0,0);
2657 ctx.lineJoin="round";
2658 ctx.lineWidth = 4 * scale;
2659 if(type == 1)//buildArea
2660 {
2661 ctx.fillStyle = "#BFD8F8";
2662 ctx.fillRect(-w/2,-h/2,w,h);
2663 }
2664 else if(type == 2)//goalArea
2665 {
2666 ctx.fillStyle = "#EA8C92";
2667 ctx.fillRect(-w/2,-h/2,w,h);
2668 }
2669 else if(type == 3)//staticRect
2670 {
2671 ctx.fillStyle = "#2BC500";
2672 ctx.fillRect(-w/2,-h/2,w,h);
2673 }
2674 else if(type == 4)//staticCircle
2675 {
2676 ctx.fillStyle = "#2BC500";
2677 ctx.arc(0,0,w,0,Math.PI*2);
2678 ctx.fill();
2679 ctx.beginPath();
2680 }
2681 else if(type == 5)//dynamicRect
2682 {
2683 ctx.fillStyle = "#F2DF37";
2684 ctx.fillRect(-w/2,-h/2,w,h);
2685 }
2686 else if(type == 6)//dynamicCircle
2687 {
2688 ctx.fillStyle = "#F0873A";
2689 ctx.arc(0,0,w,0,Math.PI*2);
2690 ctx.fill();
2691 ctx.beginPath();
2692 }
2693 else if(type == 7)//goalRect
2694 {
2695 ctx.fillStyle = "#F65D6A";
2696 ctx.fillRect(-w/2,-h/2,w,h);
2697 ctx.lineWidth = 2 * scale;
2698 ctx.strokeStyle = "#828282";
2699 ctx.arc(0,0,1.5,0,Math.PI*2);
2700 ctx.stroke();
2701 ctx.beginPath();
2702 ctx.arc(w/2,h/2,3*scale,0,Math.PI*2);
2703 ctx.stroke();
2704 ctx.beginPath();
2705 ctx.arc(w/2,-h/2,3*scale,0,Math.PI*2);
2706 ctx.stroke();
2707 ctx.beginPath();
2708 ctx.arc(-w/2,-h/2,3*scale,0,Math.PI*2);
2709 ctx.stroke();
2710 ctx.beginPath();
2711 ctx.arc(-w/2,h/2,3*scale,0,Math.PI*2);
2712 ctx.stroke();
2713 ctx.beginPath();
2714 }
2715 else if(type == 8)//goalCircle
2716 {
2717 ctx.fillStyle = "#F65D6A";
2718 ctx.arc(0,0,w/2,0,Math.PI*2);
2719 ctx.fill();
2720 ctx.beginPath();
2721 }
2722 else if(type == 9)//blueWheel
2723 {
2724 ctx.fillStyle = "#94FEE1";
2725 ctx.arc(0,0,w/2,0,Math.PI*2);
2726 ctx.fill();
2727 ctx.beginPath();
2728 }
2729 else if(type == 10)//yellowWheel
2730 {
2731 ctx.fillStyle = "#F9F316";
2732 ctx.arc(0,0,w/2,0,Math.PI*2);
2733 ctx.fill();
2734 ctx.beginPath();
2735 }
2736 else if(type == 11)//pinkWheel
2737 {
2738 ctx.fillStyle = "#FBC9CC";
2739 ctx.arc(0,0,w/2,0,Math.PI*2);
2740 ctx.fill();
2741 ctx.beginPath();
2742 }
2743 if(type > 7)
2744 {
2745 w += 4;
2746 h += 4;
2747 ctx.lineWidth = 2 * scale;
2748 ctx.strokeStyle = "#828282";
2749 ctx.arc(0,h*scale,3*scale,0,Math.PI*2);
2750 ctx.stroke();
2751 ctx.beginPath();
2752 ctx.arc(w*scale,0,3*scale,0,Math.PI*2);
2753 ctx.stroke();
2754 ctx.beginPath();
2755 ctx.arc(0,-h*scale,3*scale,0,Math.PI*2);
2756 ctx.stroke();
2757 ctx.beginPath();
2758 ctx.arc(-w*scale,0,3*scale,0,Math.PI*2);
2759 ctx.stroke();
2760 ctx.beginPath();
2761 ctx.strokeStyle = "#FFFFFF";
2762 ctx.arc(0,0,3*scale,0,Math.PI*2);
2763 ctx.stroke();
2764 ctx.beginPath();
2765 }
2766 ctx.setTransform(1,0,0,1,0,0);
2767 }
2768 }
2769 });
2770 }
2771 //Reset Hub---------------------------------
2772 function resetHub(){
2773 lateInnerHub.innerHTML = "";
2774 lateTopHub.innerHTML = "";
2775 reset.style.display = "none";
2776 ctitle.style.display = "none";
2777 cSubmit.style.display = "none";
2778 cInput.style.display = "none";
2779 getTop();
2780 getLatest();
2781 }
2782 //End of Reset Hub--------------------------
2783 function getTop(){
2784 $.ajax({
2785 type: "POST",
2786 dataType: "xml",
2787 url: "http://fantasticcontraption.com/getUserGenLevels.php",
2788 data: {
2789 limitCount: maxL
2790 },
2791 success: function(data) {
2792 var str = new XMLSerializer().serializeToString(data);
2793 topLvlListId = str.match(/levelId......./g);
2794 topLvlListName = str.match(/levelName>.+?(?=<)/g);
2795 for(var j = 0; j < topLvlListId.length; j++) {
2796 var holder = topLvlListId[j];
2797 holder = holder.split(">").pop();
2798 topLvlListId[j] = holder;
2799 }
2800 for(var i = 0; i < topLvlListName.length; i++) {
2801 var holder = topLvlListName[i];
2802 holder = holder.split(">").pop();
2803 topLvlListName[i] = holder;
2804 }
2805 setTop();
2806 }
2807 });
2808 }
2809 getTop();
2810 function setTop(){
2811 var lateTopHub = document.getElementById('TopInnerHub');
2812 if(topItr < maxL){
2813 createCanvas(topLvlListId[topItr], topItr, "top");
2814 }else{
2815 hubsLoaded();
2816 }
2817 }
2818 function getLatest(){
2819 $.ajax({
2820 type: "POST",
2821 dataType: "xml",
2822 url: "http://fantasticcontraption.com/getUserGenLevels.php",
2823 data: {
2824 limitCount: maxL,
2825 orderBy: "date"
2826 },
2827 success: function(data) {
2828 var str = new XMLSerializer().serializeToString(data);
2829 lateLvlListId = str.match(/levelId......./g);
2830 lateLvlListName = str.match(/levelName>.+?(?=<)/g);
2831 for(var j = 0; j < lateLvlListId.length; j++) {
2832 var holder = lateLvlListId[j];
2833 holder = holder.split(">").pop();
2834 lateLvlListId[j] = holder;
2835 }
2836 for(var i = 0; i < lateLvlListName.length; i++) {
2837 var holder = lateLvlListName[i];
2838 holder = holder.split(">").pop();
2839 lateLvlListName[i] = holder;
2840 }
2841 setLate();
2842 }
2843 });
2844 }
2845 getLatest();
2846 function setLate(){
2847 var lateInnerHub = document.getElementById('lateInnerHub');
2848 if(lateItr < maxL){
2849 createCanvas(lateLvlListId[lateItr], lateItr, "late");
2850 //console.log("Createing Canvas for "+lateLvlListId[lateItr]+ " late");
2851
2852 }else{
2853 hubsLoaded();
2854 }
2855 }
2856 function getDsg(id){
2857 var levelId = id.split("=").pop();
2858 dsgId = [];
2859 dsgName = [];
2860 dsgUser = [];
2861 dsgInnerHub.innerHTML = "";
2862 $.ajax({
2863 type: "POST",
2864 dataType: "xml",
2865 url: "http://fantasticcontraption.com/getUserDesigns.php",
2866 data: {
2867 levelId: levelId,
2868 onlyPublished: 1,
2869 userId: 1672546,
2870 limitOffset: 0,
2871 limitCount: 2000000000
2872 },
2873 success: function(data) {
2874 var str = new XMLSerializer().serializeToString(data);
2875 dsgId = str.match(/designId>.+?(?=<)/g);
2876 if (dsgId)
2877 {
2878 document.getElementById('dsgHub').style.display = 'block';
2879 document.getElementById('lateHub').style.display = 'none';
2880 document.getElementById('TopHub').style.display = 'none';
2881 for (i = 0; i < dsgId.length; i++){
2882 dsgId[i] = dsgId[i].split(">").pop();
2883 }
2884 dsgName = str.match(/name>.+?(?=<)/g);
2885 for (i = 0; i < dsgName.length; i++){
2886 dsgName[i] = dsgName[i].split(">").pop();
2887 }
2888 dsgUser = str.match(/userName>.+?(?=<)/g);
2889 for (i = 0; i < dsgUser.length; i++){
2890 dsgUser[i] = dsgUser[i].split(">").pop();
2891 }
2892 for (i = 0; i < dsgId.length; i++){
2893 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>";
2894 var genButtonDesign = document.createElement("input");
2895 genButtonDesign.type = "image";
2896 genButtonDesign.src = "http://i66.tinypic.com/9kzatg.png";
2897 genButtonDesign.title = "Load Design";
2898 genButtonDesign.style.padding = "3px";
2899 genButtonDesign.id = dsgId[i];
2900 genButtonDesign.setAttribute("class", "designLoad");
2901 dsgInnerHub.appendChild(genButtonDesign);
2902 dsgInnerHub.innerHTML += "<br /><br>";
2903 }
2904 }else{
2905 alert("There are no designs for this level.");
2906 }
2907 }
2908 });
2909 }
2910
2911 //-----End of fill areas-----------------------------------------------------------------------------------------------------------------------
2912 //-----START AREA THAT CHANGES THE SWF---------------------------------------------------------------------------------------------------------
2913 document.onclick=function(event){
2914 if(event.target.getAttribute("class") == "loadClass"){
2915 loadLvl(event.target.id);
2916 }
2917 else if(event.target.getAttribute("class") == "designClass"){
2918 getDsg(event.target.id);
2919 }
2920 else if(event.target.getAttribute("class") == "designLoad"){
2921 setDsg(event.target.id);
2922 }
2923 };
2924 function setDsg(id){
2925 if (pageLocked)
2926 {
2927 giveMessage("You cannot do that while the page is locked.");
2928 }
2929 else
2930 {
2931 var h = document.getElementById("contraption").height;
2932 var w = document.getElementById("contraption").width;
2933 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">';
2934 setTimeout(function(){
2935 document.elementFromPoint(10*scale, 10*scale).click();
2936 }, 1);
2937 document.elementFromPoint(10*scale, 10*scale).click();
2938 contraption=getFlash();
2939 getUseFlashVars();
2940 }
2941 }
2942 function loadLvl(id){
2943 if (pageLocked)
2944 {
2945 giveMessage("You cannot do that while the page is locked.");
2946 }
2947 else
2948 {
2949 var h = document.getElementById("contraption").height;
2950 var w = document.getElementById("contraption").width;
2951 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">';
2952 setTimeout(function(){
2953 document.elementFromPoint(10, 10).click();
2954 }, 1);
2955 document.elementFromPoint(10, 10).click();
2956 contraption = getFlash();
2957 getUseFlashVars();
2958 }
2959 }
2960
2961 //-----END OF AREA THAT CHANGES THE SWF--------------------------------------------------------------------------------------------------------
2962 //------------------------END OF STUFF PERRY IS ADDING------------------------------------
2963
2964 //Create a way of showing messages
2965 //Let's reserve the bottom left corner for messages
2966 function setupMessageSpace() {
2967 var messageSpace = document.createElement('div');
2968 with (messageSpace) {
2969 id = "msg";
2970 style.position = "absolute";
2971 style.right = 40*scale+"px";
2972 style.bottom = 8*scale+"px";
2973 style.fontSize = 1.5*scale+"em";
2974 }
2975 document.body.appendChild(messageSpace);
2976 }
2977 setupMessageSpace();
2978
2979 //Now the function to display a message!
2980 function giveMessage(message) {
2981 var msgSpace = document.getElementById('msg');
2982 msgSpace.innerHTML = message;
2983 //Now fade out the message
2984 clearTimeout(messageTimeout); //First clear the old one if we are overriting it
2985 messageTimeout = setTimeout(fadeText, "2000");
2986 function fadeText() {$(msgSpace).stop(true, true).fadeOut( "slow", function() {msgSpace.innerHTML = ""; msgSpace.style.display = 'initial';} );}
2987 }
2988
2989
2990 //Setup the SWF to interact with javascript
2991 contraption.setAttribute("swliveconnect", true); //Don't think this actually does anything, but alas
2992
2993
2994 //})();
2995
2996} //End try
2997catch(err) {
2998 alert("It looks like an error occured:\n> " + err.message + "\nIf you would like, please let marjo know.");
2999}