Daymap Graphics

Allows Daymap to be customised.

  1. // ==UserScript==
  2. // @name Daymap Graphics
  3. // @namespace apate98
  4. // @version 7.2.0
  5. // @description Allows Daymap to be customised.
  6. // @author apate98
  7. // @match https://*.daymap.net/*
  8. // @icon https://www.google.com/s2/favicons?domain=daymap.net
  9. // @grant none
  10. // @license GNU GPLv3
  11. // ==/UserScript==
  12.  
  13. // Changelog
  14. // 6.0.0: Added changelog and introduced compatibility for Daymap's timetable view.
  15. // 6.0.1: Fixed a problem where opacity is reversed in timetable view.
  16. // 6.0.2: Changed the manual background change to apply to underlay rather than body. Increased speed of underlay rainbow.
  17. // 6.0.3: Allowed manual changing of the attendance indicator colour to anything, replacing the old background-color with background.
  18. // 6.1.0: Allows blurring behind the foreground cards, giving a glassy effect.
  19. // 6.1.1: Made header also change opacity and made logo transparent.
  20. // 7.0.0: Removed all jQuery usage to enable compatibility with new Daymap. Also basically rewrote a bunch of code to work with new Daymap.
  21. // 7.0.1: Fixed an issue to do with timetable view transparency. Also made transparent cards match with dark mode or light mode.
  22. // 7.0.2: Fixed transparency... again. This time for feed view. Also changed the namespace.
  23. // 7.1.0: Made the header less obtrusive and made dark mode work properly.
  24. // 7.2.0: Added option to revert to original layout.
  25.  
  26. // Credits and thanks:
  27. // Special thanks to Kelvin for troubleshooting many issues when transferring to the new Daymap, whom without I could not have solved any of the problems.
  28.  
  29. // Notes:
  30. // Some versions may not be available on Greasyfork.
  31.  
  32. // TODO:
  33. // Presets
  34. // Fix animated profile picture
  35. // Change homework page opacity
  36. // Change summary/portfolio page opacity
  37. // Make diary look a bit nicer
  38. // Change class list opacity
  39. // Change task finder opacity
  40. // Change results page opacity
  41. // Change schedule page opacity
  42. // Change my messages page opacity
  43. // Change my calenders page opacity
  44.  
  45. // Compatibile pages:
  46. // Feed View
  47. // Timetable
  48. // Mobile Daymap
  49. // My Details
  50.  
  51. // Tips:
  52. // Change the Daymap.Web_DaymapIdentityCookie cookie expiry date to 2038-01-18T18:14:07.000Z every time you log into Daymap. Daymap Graphics cannot do this automatically as the cookie is HTTP only, and creating another cookie witht the same data can lock a person out of Daymap.
  53.  
  54. // Known issues:
  55. // When changing messages pages, the messages are opaque.
  56. // Khan Academy returns a 403 error when using embeds. This will be fixed by using p5.js.
  57. // Evil mode no longer works.
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68. // Local storage functions by DY from Khan Academy at https://www.khanacademy.org/profile/darrylyeo/projects
  69. var storage;
  70. (function() {
  71. storage = localStorage;
  72. })();
  73.  
  74. function getItem(key) {
  75. if(storage != undefined) {
  76. return storage.getItem(key);
  77. }
  78. storage = this.localStorage;
  79. return null;
  80. };
  81.  
  82. function setItem(key, value) {
  83. if(storage != undefined) {
  84. storage.setItem(key, value);
  85. } else {
  86. storage = this.localStorage;
  87. }
  88. };
  89.  
  90. function rainbowMove(val1, val2, val3, val4, val5, speed) {
  91. speed = speed ? speed : 1;
  92. val1 += (Math.random() - val4) * speed;
  93. val2 += (Math.random() - val5) * speed;
  94. val1 = val1 < 0 ? 0 : val1 > 410 ? 410 : val1;
  95. val2 = val2 < 0 ? 0 : val2 > 410 ? 410 : val2;
  96. return [val1, val2, val3, val4, val5];
  97. }
  98.  
  99. function constrain(num, min, max) {
  100. return num < min ? min : num > max ? max : num;
  101. }
  102.  
  103.  
  104. var lessonStart;
  105. var lessonEnd;
  106.  
  107. function timeOfDiaryEl(lessonEl) {
  108. if(lessonEl.innerText.substr(1, 1) === ":" && lessonEl.innerText.substr(12, 1) !== ":") {
  109. lessonStart = lessonEl.innerText.substr(0, 1) + lessonEl.innerText.substr(2, 2);
  110. lessonEnd = lessonEl.innerText.substr(11, 2) + lessonEl.innerText.substr(14, 2);
  111. if(lessonEl.innerText.substr(5, 1) === "P") {
  112. lessonStart = Number(lessonStart) + 1200;
  113. }
  114. }
  115. if(lessonEl.innerText.substr(1, 1) === ":" && lessonEl.innerText.substr(12, 1) === ":") {
  116. lessonStart = lessonEl.innerText.substr(0, 1) + lessonEl.innerText.substr(2, 2);
  117. lessonEnd = lessonEl.innerText.substr(11, 1) + lessonEl.innerText.substr(13, 2);
  118. if(lessonEl.innerText.substr(5, 1) === "P") {
  119. lessonStart = Number(lessonStart) + 1200;
  120. }
  121. if(lessonEl.innerText.substr(16, 1) === "P") {
  122. lessonEnd = Number(lessonEnd) + 1200;
  123. }
  124. }
  125. if(lessonEl.innerText.substr(1, 1) !== ":" && lessonEl.innerText.substr(13, 1) !== ":") {
  126. lessonStart = lessonEl.innerText.substr(0, 2) + lessonEl.innerText.substr(3, 2);
  127. lessonEnd = lessonEl.innerText.substr(12, 2) + lessonEl.innerText.substr(15, 2);
  128. }
  129. if(lessonEl.innerText.substr(1, 1) !== ":" && lessonEl.innerText.substr(13, 1) === ":") {
  130. lessonStart = lessonEl.innerText.substr(0, 2) + lessonEl.innerText.substr(3, 2);
  131. lessonEnd = lessonEl.innerText.substr(12, 1) + lessonEl.innerText.substr(14, 2);
  132. if(lessonEl.innerText.substr(17, 1) === "P") {
  133. lessonEnd = Number(lessonEnd) + 1200;
  134. }
  135. }
  136. return [lessonStart, lessonEnd];
  137. }
  138.  
  139. // By joshuacockrell based on a post by Maxwell Collard and edited by Mahdi https://stackoverflow.com/a/25582882/#36481059
  140. function randn_bm() {
  141. let u = 0, v = 0;
  142. while(u === 0) u = Math.random(); //Converting [0,1) to (0,1)
  143. while(v === 0) v = Math.random();
  144. let num = Math.sqrt( -2.0 * Math.log( u ) ) * Math.cos( 2.0 * Math.PI * v );
  145. num = num / 10.0 + 0.5; // Translate to 0 -> 1
  146. if (num > 1 || num < 0) return randn_bm(); // resample between 0 and 1
  147. return num;
  148. }
  149.  
  150. var attendanceColour = "#7FFFD4";
  151. var bodyColour = "#ABCDEF";
  152. var cardColour = "#E6E6E6";
  153. var date;
  154. var classEls = [];
  155. var i;
  156. var anything = [];
  157. const animatedPhotoLinks = [5097557231353856, 6056784221388800, 5537046336684032]; //4617381095718912 (khanemon), 5169842873122816 (were in a comic, not working yet)
  158. const animatedPhotoLinks2 = [5097557231353856, 6056784221388800, 4617381095718912];
  159. var r50d = [];
  160.  
  161.  
  162.  
  163. (function() {
  164. 'use strict';
  165. try {
  166. if(!getItem("usedTools")) {
  167. document.querySelector("body").appendChild((() => {
  168. let something = document.createElement("div"); something.innerHTML = `
  169. <div id='guide'></div>
  170. <style>
  171. #guide {
  172. position: absolute;
  173. }
  174. </style>
  175. `; return something;})());
  176. }
  177. document.querySelector("body").style.fontFamily='Roboto, "Helvetica Neue", Helvetica, Arial, sans-serif';
  178. document.querySelector("head").appendChild((() => {let something = document.createElement("style");something.innerHTML = `
  179. #toolbox {
  180. top: 15vh;
  181. left: 20vw;
  182. background-color: rgba(229, 229, 229, 0.8);
  183. position: fixed;
  184. width: 60vw;
  185. height: 70vh;
  186. padding: 50px;
  187. border-width: 50px;
  188. border-image: linear-gradient(red, yellow);
  189. }
  190. #closeToolbox {
  191. float: right;
  192. color: rgb(200, 200, 200);
  193. font-size: 2.5vw;
  194. cursor: pointer;
  195. background-color: rgba(255, 255, 255, 0.6);
  196. border-radius: 50%;
  197. width: 2.5vw;
  198. height: 2.5vw;
  199. text-align: center;
  200. vertical-align: baseline;
  201. line-height: 2.3vw;
  202. }
  203. #reloadBtn {
  204. position: absolute;
  205. bottom: 2vw;
  206. background-image: radial-gradient(100% 100% at 100% 0, #5adaff 0, #5468ff 100%);
  207. border: 0;
  208. border-radius: 4.25%;
  209. width: 15vw;
  210. height: 4vh;
  211. color: white;
  212. cursor: pointer;
  213. }
  214. #bodyBackground, #additionalCSS {
  215. display:inline-block;
  216. width:100%;
  217. }
  218. `; return something;})());
  219. {
  220. let toolbox = document.createElement("div");
  221. toolbox.innerHTML = `<div id='closeToolbox'>×</div>
  222. <div>
  223. <form oninput='blurAmount.value=parseFloat(blur.value)'>
  224. Opacity: <input id='translucent' type='range' min='0' max='1' step='0.001'></input><br/>
  225. Blur amount: <input id='blur' type='range' min='0' max='50' step='0.1' name='blur'></input>
  226. <input id='blurAmount' name='blurAmount' readonly='true' style='background-color:light-gray;'></input><br/>
  227. Auto animated photo:<input id='autoAnimatedPhoto' type='checkbox'></input><br/>
  228. Auto attendance rainbow:<input id='autoAttendanceRainbow' type='checkbox'></input><br/>
  229. Animated profile project id:&nbsp;<input id='animatedProfileProjectId' type='number'></input><br/>
  230. Auto body background:<input id='autoBackground' type='checkbox'/><br/>
  231. Revert to original layout:<input id='originalLayout' type='checkbox'/><br/>
  232. Dark mode:<input id='darkMode' type='checkbox'/><br/>
  233. Body background CSS property (value only):<input type='text' id='bodyBackground'/><br/>
  234. Additional CSS (CSS style declaration):<textarea id='additionalCSS' rows='3'></textarea>
  235. </form>
  236. </div>
  237. <button id='reloadBtn'>&nbsp;Apply changes and reload page</button>`;
  238. toolbox.setAttribute("id","toolbox");
  239. toolbox.style.display = "none";
  240. document.querySelector(".main-layout").appendChild(toolbox);
  241. }
  242. document.querySelector("head").appendChild((() => {let something = document.createElement("style");something.setAttribute("id", "customStyles"); return something;})());
  243. var tools = setInterval(function() {if(document.querySelector("li[menu-id='60']")) {document.querySelector("li[menu-id='60']").parentNode.innerHTML = "<tr><div class='tools' style='border-left: 2px solid #a0d7f1; text-align: left; padding: 7px 11px;' onclick='document.getElementById(`toolbox`).style.display = `block`;'>Daymap Graphics Command Center</div></div></tr><style>.tools:hover{background-color:#e5e5e5}</style>"; clearInterval(tools)}}, 50);
  244. {
  245. let bodyUnderlay = document.createElement("div");
  246. bodyUnderlay.setAttribute("id", "bodyUnderlay");
  247. document.querySelector("head").innerHTML += "<style>#bodyUnderlay {position: fixed; width: 100%; height: 100%; top: 0; z-index: -2147483647;}</style>";
  248. document.querySelector("body").appendChild(bodyUnderlay);
  249. }
  250. document.querySelector("#reloadBtn").innerHTML = '<svg width="0.75vw" height="0.75vw" viewBox="0 0 24 24" class="_18zn2ntb"><path fill="currentColor" d="M18.071 18.644c-3.532 3.232-9.025 3.13-12.452-.297a9.014 9.014 0 0 1-2.636-6.866 1 1 0 0 1 1.997.105 7.014 7.014 0 0 0 2.053 5.346c2.642 2.642 6.856 2.747 9.606.31h-1.81a1 1 0 1 1 0-2h4.242a1 1 0 0 1 1 1v4.243a1 1 0 0 1-2 0v-1.84zM7.361 6.757h1.81a1 1 0 0 1 0 2H4.93a1 1 0 0 1-1-1V3.515a1 1 0 1 1 2 0v1.84c3.532-3.231 9.025-3.13 12.452.298a9.014 9.014 0 0 1 2.636 6.866 1 1 0 1 1-1.997-.105 7.014 7.014 0 0 0-2.053-5.346c-2.642-2.642-6.856-2.747-9.606-.31z"></path></svg>' + document.querySelector("#reloadBtn").innerHTML;
  251. document.querySelector("#blurAmount").value = getItem("blurAmount");
  252. document.querySelector("#animatedProfileProjectId").value = getItem("animatedProfileProjectId");
  253. document.querySelector("#bodyBackground").value = getItem("bodyBackground");
  254. document.querySelector("#translucent").setAttribute("value", getItem("translucentMode"));
  255. document.querySelector("#blur").setAttribute("value", getItem("blurAmount"));
  256. if(getItem("autoAnimatedPhoto") != 0 && getItem("autoAnimatedPhoto")) {
  257. document.querySelector("#autoAnimatedPhoto").setAttribute("checked", 1);
  258. }
  259. if(getItem("autoAttendanceRainbow") != 0 && getItem("autoAttendanceRainbow")) {
  260. document.querySelector("#autoAttendanceRainbow").setAttribute("checked", 1);
  261. }
  262. if(getItem("originalLayout") != 0 && getItem("originalLayout")) {
  263. document.querySelector("#originalLayout").setAttribute("checked", 1);
  264. }
  265. if(document.cookie != "" ? parseInt(document.cookie.substr(document.cookie.length - 1, 1)) == 1 : 0) {
  266. document.querySelector("#darkMode").setAttribute("checked", 1);
  267. }
  268. if(getItem("autoBackground") != 0 && getItem("autoBackground")) {
  269. document.querySelector("#autoBackground").setAttribute("checked", 1);
  270. if(getItem("bodyBackground") != "" && getItem("bodyBackground") != undefined) {
  271. document.querySelector("#bodyUnderlay").style.background=getItem("bodyBackground");
  272. if(getItem("bodyBackground") === "linear-gradient(to bottom right, yellow, black, black, black)") {
  273. document.querySelector("#bodyUnderlay").innerHTML += "<style></style>";
  274. for(i = 0; i < 500; i ++) {
  275. anything[0] = Math.random() * 7.5;
  276. anything[1] = randn_bm() * 255;
  277. anything[2] = Math.random() * 100;
  278. anything[3] = Math.random() * 100;
  279. anything[4] = Math.random() + 1;
  280. anything[5] = (Math.random() - 0.5) * 90;
  281. if(anything[2] < 37.5 && anything[3] < 37.5) {
  282. continue;
  283. }
  284. document.querySelector("#bodyUnderlay").innerHTML += "<div class='r50d' style='width:" + anything[0] + "px;height:" + anything[0] + "px;top:" + anything[2] + "vh;left:" + anything[3] + "vw;position:absolute;border-radius:" + constrain(randn_bm() * 50, 0, 50) + "%;background-color:rgba(" + constrain(anything[1] * anything[4], 0, 255) + ", " + constrain((anything[1] > 127.5 ? (127.5 - anything[1]) : anything[1]) * anything[4], 0, 255) + ", " + constrain((255 - anything[1]) * anything[4], 0, 255) + ", " + Math.random() / 1.5 +");transform:rotate("+ anything[5] + "deg);'></div>";
  285. r50d.push("1," + Math.random() / 100 + "," + anything[5] + "," + (randn_bm() - 0.5) * 15);
  286. }
  287. }
  288. if(getItem("bodyBackground") === "url('https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB_p0PncTtkrhaNDZtntrE3gKkoYw')") {
  289. setItem("bodyBackground", "black url('https://i.ytimg.com/vi/dQw4w9WgXcQ/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB_p0PncTtkrhaNDZtntrE3gKkoYw')");
  290. window.location.href = "https://www.youtube.com/watch?v=dQw4w9WgXcQ";
  291. }
  292. }
  293. }
  294. document.querySelector("#customStyles").innerText = getItem("additionalCSS");
  295. document.querySelector("#additionalCSS").value = getItem("additionalCSS");
  296. i = 0;
  297.  
  298. setInterval(function() {
  299. for(i = 0; i < document.querySelectorAll(".r50d").length; i++) {
  300. document.querySelectorAll(".r50d")[i].style.transform = "scale(" + r50d[i].split(",")[0] + ", " + r50d[i].split(",")[0] + ") rotate(" + r50d[i].split(",")[2] + "deg)";
  301. r50d[i] = (parseFloat(r50d[i].split(",")[0]) + parseFloat(r50d[i].split(",")[1])) + "," + (parseFloat(r50d[i].split(",")[0]) >= 1.1 ? Math.abs(parseFloat(r50d[i].split(",")[1])) * -1 : parseFloat(r50d[i].split(",")[0]) <= 0.9 ? Math.abs(r50d[i].split(",")[1]) : parseFloat(r50d[i].split(",")[1])) + "," + (parseFloat(r50d[i].split(",")[2]) + parseFloat(r50d[i].split(",")[3])) + "," + parseFloat(r50d[i].split(",")[3]); i = i >= r50d.length - 1 ? 0 : i + 1;
  302. }
  303. }, 30);
  304.  
  305. document.querySelector("#closeToolbox").addEventListener("click", function() {
  306. document.querySelector("#toolbox").style.display = "none";
  307. });
  308. document.querySelector("#reloadBtn").addEventListener("click", function() {
  309. setItem("animatedProfileProjectId", document.querySelector("#animatedProfileProjectId").value);
  310. setItem("bodyBackground", document.querySelector("#bodyBackground").value);
  311. setItem("translucentMode", document.querySelector("#translucent").value);
  312. setItem("additionalCSS", document.querySelector("#additionalCSS").value);
  313. setItem("blurAmount", document.querySelector("#blur").value);
  314. location.reload();
  315. });
  316. document.querySelector("#autoAnimatedPhoto").addEventListener("click", function() {setItem("autoAnimatedPhoto", getItem("autoAnimatedPhoto") != 0 && getItem("autoAnimatedPhoto") ? 0 : 1);});
  317. document.querySelector("#autoAttendanceRainbow").addEventListener("click", function() {setItem("autoAttendanceRainbow", getItem("autoAttendanceRainbow") != 0 ? 0 : 1);});
  318. document.querySelector("#autoBackground").addEventListener("click", function() {setItem("autoBackground", getItem("autoBackground") != 0 && getItem("autoBackground") ? 0 : 1);});
  319. document.querySelector("#originalLayout").addEventListener("click", function() {setItem("originalLayout", getItem("originalLayout") != 0 && getItem("originalLayout") ? 0 : 1);});
  320. document.querySelector("#darkMode").addEventListener("click", function() {let _dark = document.cookie != "" ? parseInt(document.cookie.substr(document.cookie.length - 1, 1)) == 1 ? "darkMode=0": "darkMode=1" : "darkMode=1"; document.cookie.split(";").forEach(function(c) { document.cookie = c.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date().toUTCString() + ";path=/");}); document.cookie = _dark;});
  321. if (!document.querySelector(".sdIndicator")) {
  322. if(document.querySelector(".StudentBox > table > tbody")) {
  323. document.querySelector(".StudentBox > table > tbody").innerHTML += ('<tr><td colspan="3"><div id="divIndicators"><div><div class="sdIndicator" title="Term" style="background-color:#65EC0B">100</div><div class="sdCap">Attendance Tracking</div></div></div></td></tr>');
  324. document.querySelector(".sdIndicator").innerHTML += ("<style>.sdIndicator{color: #302F46;font-size: 16pt;width: 50px;height: 50px;border-radius: 25px;text-align: center;vertical-align: baseline;margin-left: auto;margin-right: auto;line-height: 50px;}</style>");
  325. } else {
  326. document.querySelector(".expContent").innerHTML += ('<tr><td colspan="3"><div id="divIndicators"><div><div class="sdIndicator" title="Term" style="background-color:#65EC0B">100</div><div class="sdCap">Attendance Tracking</div></div></div></td></tr>');
  327. document.querySelector(".sdIndicator").innerHTML += ("<style>.sdIndicator{color: #302F46;font-size: 16pt;width: 50px;height: 50px;border-radius: 25px;text-align: center;vertical-align: baseline;margin-left: auto;margin-right: auto;line-height: 50px;}</style>");
  328. }
  329. }
  330. for(i = 0; i < document.querySelectorAll(".itm .Error").length; i ++) {
  331. document.querySelectorAll(".itm .Error")[i].innerText = "Uh did you submit on Turnitin or something?";
  332. }
  333. var attendanceEl = document.querySelector(".sdIndicator");
  334. attendanceEl.classList.add("attendance");
  335. var cardEl = document.querySelector(".diaryDay");
  336. var attendanceRainbow = [0, 0, 0, 0.5, 0.5];
  337. var attendanceRainbow1 = [400, 5, 0, 0.5, 0.5];
  338. var attendanceRainbow2 = [210, 350, 0, 0.5, 0.5];
  339. var bodyRainbow = [200, 200, 0, 0.5, 0.5];
  340. var cardRainbow = [200, 200, 0, 0.5, 0.5];
  341. // To make random numbers into colours that actually look good, there is a method by Weather: https://www.khanacademy.org/computer-programming/the-randomish-quiz/6515084802260992
  342. setInterval(function(){attendanceRainbow = rainbowMove(attendanceRainbow[0], attendanceRainbow[1], attendanceRainbow[2], attendanceRainbow[3], attendanceRainbow[4] , 15); attendanceRainbow1 = rainbowMove(attendanceRainbow1[0], attendanceRainbow1[1], attendanceRainbow1[2], attendanceRainbow1[3], attendanceRainbow1[4] , 15); attendanceRainbow2 = rainbowMove(attendanceRainbow2[0], attendanceRainbow2[1], attendanceRainbow2[2], attendanceRainbow2[3], attendanceRainbow2[4] , 15)}, 10);
  343. setInterval(function(){if(attendanceRainbow[2]) {document.querySelector(".attendance").style.backgroundImage = "linear-gradient(" + attendanceRainbow[0] + "deg, rgb(" + bodyRainbow[0] + "," + (400 - attendanceRainbow1[0] + attendanceRainbow1[1]) / 2.5 + "," + (400 - attendanceRainbow1[1]) + ") -75%, rgb(" + attendanceRainbow[0] + "," + (400 - attendanceRainbow[0] + attendanceRainbow[1]) / 2.5 + "," + (400 - attendanceRainbow[1]) + ") 50%, rgb(" + attendanceRainbow2[0] + "," + (400 - attendanceRainbow2[0] + attendanceRainbow2[1]) / 2.5 + "," + (400 - attendanceRainbow2[1]) + ") 175%)";}}, 10);
  344. setInterval(function(){attendanceRainbow[3] = Math.random() / 2 + 0.25; attendanceRainbow[4] = Math.random() / 2 + 0.25; attendanceRainbow1[3] = Math.random() / 2 + 0.25; attendanceRainbow1[4] = Math.random() / 2 + 0.25; attendanceRainbow2[3] = Math.random() / 2 + 0.25; attendanceRainbow2[4] = Math.random() / 2 + 0.25;}, 5000);
  345. setInterval(function(){bodyRainbow = rainbowMove(bodyRainbow[0], bodyRainbow[1], bodyRainbow[2], bodyRainbow[3], bodyRainbow[4] , 10)}, 10);
  346. setInterval(function(){if(bodyRainbow[2]) {document.querySelector("#bodyUnderlay").style.backgroundColor = "rgb(" + bodyRainbow[0] + "," + (400 - bodyRainbow[0] + bodyRainbow[1]) / 2.5 + "," + (400 - bodyRainbow[1]) + ")";}}, 10);
  347. setInterval(function(){bodyRainbow[3] = Math.random() / 2 + 0.25; bodyRainbow[4] = Math.random() / 2 + 0.25;}, 2000);
  348. setInterval(function(){cardRainbow = rainbowMove(cardRainbow[0], cardRainbow[1], cardRainbow[2], cardRainbow[3], cardRainbow[4] , 10)}, 10);
  349. setInterval(function(){if(cardRainbow[2]) {cardEl.style.backgroundColor = "rgb(" + cardRainbow[0] + "," + (400 - cardRainbow[0] + cardRainbow[1]) / 2.5 + "," + (400 - cardRainbow[1]) + ")";}}, 10);
  350. setInterval(function(){cardRainbow[3] = Math.random() / 2 + 0.25; cardRainbow[4] = Math.random() / 2 + 0.25;}, 5000);
  351. attendanceRainbow[2] = getItem("autoAttendanceRainbow") != 0 && getItem("autoAttendanceRainbow") ? 1 : 0;
  352. attendanceEl.addEventListener("click", function() {
  353. attendanceColour = prompt("Please enter a colour", "#7FFFD4");
  354. if (attendanceColour && attendanceColour != "RAINBOW") {
  355. attendanceRainbow[2] = 0;
  356. attendanceEl.style.backgroundImage = "";
  357. attendanceEl.style.background = attendanceColour;
  358. } else if (attendanceColour === "RAINBOW") {
  359. attendanceRainbow[2] = 1;
  360. }
  361. });
  362. if(cardEl) {
  363. cardEl.addEventListener("click", function() {
  364. cardColour = prompt("Please enter a colour", "#7FFFD4");
  365. if (cardColour && cardColour != "RAINBOW") {
  366. cardRainbow[2] = 0;
  367. cardEl.style.backgroundColor = cardColour;
  368. } else if (cardColour === "RAINBOW") {
  369. cardRainbow[2] = 1;
  370. }
  371. });
  372. }
  373. if(document.querySelector(".diaryWeek")) {
  374. document.querySelector(".diaryWeek").addEventListener("click", function() {
  375. alert("rgb(" + attendanceRainbow[0] + "," + (400 - attendanceRainbow[0] + attendanceRainbow[1]) / 2.5 + "," + (400 - attendanceRainbow[1]) + ")");
  376. });
  377. }
  378. if(document.querySelector(".diaryDay")) {
  379. switch(Date().substr(4, 3)) {
  380. case "Jan":
  381. date = Date().substr(11, 4) + "-01-" + Date().substr(8, 2);
  382. break;
  383. case "Feb":
  384. date = Date().substr(11, 4) + "-02-" + Date().substr(8, 2);
  385. break;
  386. case "Mar":
  387. date = Date().substr(11, 4) + "-03-" + Date().substr(8, 2);
  388. break;
  389. case "Apr":
  390. date = Date().substr(11, 4) + "-04-" + Date().substr(8, 2);
  391. break;
  392. case "May":
  393. date = Date().substr(11, 4) + "-05-" + Date().substr(8, 2);
  394. break;
  395. case "Jun":
  396. date = Date().substr(11, 4) + "-06-" + Date().substr(8, 2);
  397. break;
  398. case "Jul":
  399. date = Date().substr(11, 4) + "-07-" + Date().substr(8, 2);
  400. break;
  401. case "Aug":
  402. date = Date().substr(11, 4) + "-08-" + Date().substr(8, 2);
  403. break;
  404. case "Sep":
  405. date = Date().substr(11, 4) + "-09-" + Date().substr(8, 2);
  406. break;
  407. case "Oct":
  408. date = Date().substr(11, 4) + "-10-" + Date().substr(8, 2);
  409. break;
  410. case "Nov":
  411. date = Date().substr(11, 4) + "-11-" + Date().substr(8, 2);
  412. break;
  413. case "Dec":
  414. date = Date().substr(11, 4) + "-12-" + Date().substr(8, 2);
  415. break;
  416. }
  417. var time = Number(Date().substr(16, 2) + Date().substr(19, 2));
  418. var lessonEls = [document.querySelector(".diaryDay[data-date='"+date+"']").nextSibling, document.querySelector(".diaryDay[data-date='"+date+"']").parentNode.childNodes[1], document.querySelector(".diaryDay[data-date='"+date+"']").parentNode.childNodes[2], document.querySelector(".diaryDay[data-date='"+date+"']").parentNode.childNodes[3], document.querySelector(".diaryDay[data-date='"+date+"']").parentNode.childNodes[4], document.querySelector(".diaryDay[data-date='"+date+"']").parentNode.childNodes[5]];
  419. var lessonEl;
  420.  
  421. i = 0;
  422. while (!lessonEl && i < 10) {
  423. if (lessonEls[i]) {
  424. if (timeOfDiaryEl(lessonEls[i])[0] < time && timeOfDiaryEl(lessonEls[i])[1] >= time) {
  425. lessonEl = lessonEls[i];
  426. }
  427. }
  428. i ++;
  429. }
  430. var evilEl;
  431. for(var i = 0; i < document.querySelectorAll(".L").length; i++) {
  432. let evils = ["ELZ", "ENG", "LLS", "LLH"];
  433. let something = document.querySelectorAll(".L")[i];
  434. if(evils.indexOf(something.childNodes[1].childNodes[0].innerText.substr(0, 3))) {
  435. something.classList.add("evil");
  436. }
  437. }
  438. if(lessonEl != undefined) {
  439. lessonEl.style.transformOrigin = "50% 50%";
  440. lessonEl.style.borderRadius = "5px";
  441.  
  442. lessonEl.innerHTML += "<style>@keyframes lessonAnimation {from, to {} 50% {}} .lessonEl {animation: lessonAnimation 15s infinite;}</style>";
  443. lessonEl.classList.add("lessonEl");
  444. document.querySelector(".lessonEl .t").addEventListener("click", function() {
  445. lessonEl.style.borderRadius = prompt("Enter the radius", "5px");
  446. });
  447. }
  448. if(document.querySelector(".evil")) {
  449. document.querySelector(".evil .t").addEventListener("click", function() {
  450. if(confirm("Are you sure you would like to enable evil mode? You will need to refresh the page to revert this.")) {
  451. document.querySelector("daymap-menu div").style.backgroundColor = "rgb(85, 2, 2)";
  452. document.querySelector(".menu-list li").style.backgroundColor = "rgb(85, 2, 2)";
  453. document.querySelector("daymap-menu div").style.borderBottom = "rgb(0, 0, 0)";
  454. document.querySelector("#bodyUnderlay").style.backgroundColor = "rgb(85, 10, 10)";
  455. {
  456. let something = document.createElement("div");
  457. something.setAttribute("class", "bodyOverlay");
  458. something.setAttribute("style", "background-color:rgba(113,13,13,0.5);width:100vw; height: 100vh; position:fixed;");
  459. document.querySelector(".main-layout").appendChild(something);
  460. document.querySelector("head").innerHTML += "<style>.bodyOverlay {background-color:rgba(113,13,13,0.5);width:100vw; height: 100vh; position:fixed;}</style>";
  461. }
  462. document.querySelector(".Toolbar").style.background = "rgb(100, 20, 20)";
  463. for (i = 0; i < document.querySelectorAll(".grid div").length; i++) {
  464. document.querySelectorAll(".grid div")[i].style.backgroundColor = "rgb(100, 20, 40)";
  465. };
  466. for (i = 0; i < document.querySelectorAll(".msgHead .icon").length; i++) {
  467. document.querySelectorAll(".msgHead icon")[i].innerText("Mua ha ha ha!");
  468. };
  469. for (i = 0; i < document.querySelectorAll(".msgHead .icon").length; i++) {
  470. document.querySelectorAll(".msgHead icon")[i].nextSibling.nextSibling.innerText("Always.");
  471. };
  472. for (i = 0; i < document.querySelectorAll(".msg table tbody tr:nth-child(2) td").length; i++) {
  473. document.querySelectorAll(".msg table tbody tr:nth-child(2) td")[i].innerText("Daymap bows down to my power.");
  474. };
  475. }
  476. });
  477. }
  478. document.querySelector(".MasterContent table tbody tr td .Header").addEventListener("click", function() {
  479. bodyColour = prompt("Please enter a background", "#ABCDEF");
  480. if (bodyColour && bodyColour != "RAINBOW") {
  481. bodyRainbow[2] = 0;
  482. document.querySelector("#bodyUnderlay").style.background = bodyColour;
  483. } else if (bodyColour === "RAINBOW") {
  484. bodyRainbow[2] = 1;
  485. }
  486. });
  487. }
  488. if(getItem("autoBodyRainbow")) {
  489. setTimeout(bodyRainbow[2]=1,1)
  490. }
  491. if(getItem("autoCardRainbow")) {
  492. setTimeout(cardRainbow[2]=1,1)
  493. }
  494. if(getItem("translucentMode") && getItem("translucentMode") < 1) {
  495. var dark = document.cookie.substr(document.cookie.length - 1, document.cookie.length);
  496. dark = dark == "1" ? 1 : 0;
  497. for(i = 0; i < document.querySelectorAll(".card, .msg, .ditm, .Toolbar").length; i ++) {
  498. document.querySelectorAll(".card, .msg, .ditm, .Toolbar")[i].style.background = "rgba(" + (dark ? "37, 37, 37," : "237, 235, 233,") + getItem("translucentMode") + ")";
  499. }
  500. for(i = 0; i < document.querySelectorAll(".item-container").length; i ++) {
  501. document.querySelectorAll(".item-container")[i].style.background = "rgba(255, 255, 255, 0)";
  502. }
  503. for(i = 0; i < document.querySelectorAll(".hasDatepicker").length; i ++) {
  504. document.querySelectorAll(".hasDatepicker")[i].style.backgroundColor = "rgba(" + (dark ? "37, 37, 37," : "237, 235, 233,") + getItem("translucentMode") * 0.7 + ")";
  505. }
  506. for(i = 0; i < document.querySelectorAll(".ditm, .Toolbar").length; i ++) {
  507. document.querySelectorAll(".ditm, .Toolbar")[i].style.outline = "3px solid rgba(250, 250, 250, " + getItem("translucentMode") * 0.45 + ")";
  508. }
  509. for(i = 0; i < document.querySelectorAll(".msg").length; i ++) {
  510. document.querySelector(".msg").style.border = "3px solid rgba(220, 220, 220, " + getItem("translucentMode") * 0.45 + ")";
  511. }
  512. if(document.querySelector("#bCalendar")) {
  513. document.querySelector("#bCalendar").style.backgroundColor = "rgba(31, 157, 217, " + getItem("translucentMode") * 1.6 + ")";
  514. document.querySelector("#btnDiary").style.backgroundColor = "rgba(31, 157, 217, " + getItem("translucentMode") * 1.6 + ")";
  515. }
  516.  
  517. for(i = 0; i < document.querySelectorAll(".card, .msg, .ditm, .Toolbar, .ditm .t, .ditm .c, .hasDatepicker, #tblTt tbody tr td, #tblTt tbody tr td .ttCell, .msg, #bCalendar, #btnDiary").length; i ++) {
  518. document.querySelectorAll(".card, .msg, .ditm, .Toolbar, .ditm .t, .ditm .c, .hasDatepicker, #tblTt tbody tr td, #tblTt tbody tr td .ttCell, .msg, #bCalendar, #btnDiary")[i].style.backdropFilter = "blur(" + getItem("blurAmount") + "px)";
  519. }
  520. for(i = 0; i < document.querySelectorAll(".nav-container, .nav-user-container").length; i++) {
  521. document.querySelectorAll(".nav-container, .nav-user-container")[i].style.backgroundColor = "rgba(" + (dark ? "37, 37, 37," : "237, 235, 233,") + getItem("translucentMode") * 0.7 + ")";
  522. }
  523. window.setTimeout(function() {
  524. document.querySelector("daymap-header").style.backgroundColor = "rgba(255, 255, 255, " + getItem("translucentMode") * 1.2 + ")";
  525. document.querySelector("daymap-header").style.backdropFilter = "blur(" + getItem("blurAmount") * 3 + "px)";
  526. for(i = 0; document.querySelectorAll("daymap-header div ul li").length; i++) {
  527. document.querySelectorAll("daymap-header div ul li")[i].style.backgroundColor = "rgba(255, 255, 255, " + getItem("translucentMode") * 0.8 + ")";
  528. }
  529. }, 500);
  530. }
  531. document.querySelector("#customStyles").innerHTML = getItem("additionalCSS");
  532. window.setInterval(function() {
  533. let length = document.querySelectorAll(".fa-mail-bulk").length;
  534. for(i = 0; i < length; i++) {
  535. document.querySelector(".fa-mail-bulk").outerHTML = "<img src='https://qasmt.eq.daymap.net/Daymap/images/coms/post32.png'/>";
  536. }
  537. length = document.querySelectorAll(".img-container .fa-comment-alt").length;
  538. for(i = 0; i < length; i++) {
  539. document.querySelector(".img-container .fa-comment-alt").outerHTML = "<img src='https://qasmt.eq.daymap.net/Daymap/images/coms/newmsg.png'/>";
  540. }
  541. length = document.querySelectorAll(".fa-comment-alt-dots").length;
  542. for(i = 0; i < length; i++) {
  543. document.querySelector(".fa-comment-alt-dots").outerHTML = "<img src='https://qasmt.eq.daymap.net/Daymap/images/coms/newmsg.png'/>";
  544. }
  545. length = document.querySelectorAll(".fa-paperclip").length;
  546. for(i = 0; i < length; i++) {
  547. document.querySelector(".fa-paperclip").outerHTML = "<img src='https://qasmt.eq.daymap.net/Daymap/images/buttons/attachment.gif'/>";
  548. }
  549. }, 1000);
  550. if(getItem("originalLayout")) {
  551. let megaphone = window.setInterval(() => {
  552. if(document.querySelector(".atooltip")) {
  553. let link = document.createElement("div");
  554. link.innerHTML = `
  555. <div class="post-ticker">
  556. <div id="ctl00_divTickerPosts"><div class="post-subject current"><div id="divBulletinContainer"></div></div></div>
  557. <div class="post-nav">
  558. <i class="mdi mdi-chevron-left" aria-hidden="true" id="postNavPrev"></i>
  559. <span id="postCounter">1/1</span>
  560. <i class="mdi mdi-chevron-right" aria-hidden="true" id="postNavPrev"></i>
  561. </div>
  562. </div>
  563. <style>
  564. .post-ticker {
  565. position: fixed;
  566. top: 74px;
  567. margin-top: 2px;
  568. right: -4px;
  569. height: 34px;
  570. display: flex;
  571. align-items: center;
  572. flex-flow: row;
  573. background-color: rgb(31, 157, 217);
  574. box-shadow: rgba(31, 157, 217, 0.7) 0px 0px 8px 1px;
  575. padding-left: 15px;
  576. padding-right: 18px;
  577. border-radius: 3px;
  578. z-index: 1080;
  579. color: rgb(255, 255, 255);
  580. transition: top 0.5s ease 0s;
  581. }
  582. </style>
  583. `;
  584. document.querySelector(".main-layout").appendChild(link);
  585. window.clearInterval(megaphone);
  586. document.querySelector("header").remove();
  587. } else if (!document.querySelector(".header-announcements[style='display:block']")) {
  588. window.clearInterval(megaphone);
  589. document.querySelector("header").remove();
  590. }
  591. }, 100);
  592. window.setTimeout(() => {document.querySelector("body").prepend((() => {let header = document.createElement("div");header.innerHTML = `
  593. <div class="header" style="background-color: rgba(255, 255, 255, 0.416); backdrop-filter: blur(0px);">
  594. <div role="navigation" class="menuContainer" id="menuContainer">
  595. <div id="mnu"><table class="lpMenuTop"><tbody><tr><td href="/daymap/student/portfolio.aspx" menuid="272" style="background-color: rgba(255, 255, 255, 1);">Portfolio</td><td href="/daymap/default.aspx?hideNav=1" menuid="1" style="background-color: rgba(255, 255, 255, 0.28);">Day Plan</td><td href="/daymap/student/classes.aspx" menuid="4" style="background-color: rgba(255, 255, 255, 0.28);">Classes</td><td href="" menuid="5" style="background-color: rgba(255, 255, 255, 0.28);">Assessment</td><td href="" menuid="87" style="background-color: rgba(255, 255, 255, 0.28);">Communications</td><td href="" menuid="67" style="background-color: rgba(255, 255, 255, 0.28);">Calendars</td><td href="javascript:window.open('/Depot/', '_blank');" menuid="261" style="background-color: rgba(255, 255, 255, 0.28);">Depot</td><td href="" menuid="16" style="background-color: rgba(255, 255, 255, 0.28);">Tools</td></tr></tbody></table></div>
  596. <!-- HORIZONTAL MENU ITEMS INSERTED HERE -->
  597. </div>
  598. <div class="header-logo">
  599. <div class="landing-button" id="divLandingButton">
  600. <i class="mdi mdi-menu" aria-hidden="true"></i>
  601. </div>
  602. <a href="/daymap">
  603. <img src="https://portal-beta.daymap.net/daymapidentity/logo.png" class="logo" alt="" style="margin-top: -1.5px; margin-left: 43px; width: 122px;" class="logo-img">
  604. </a>
  605. </div>
  606. <div class="header-user">
  607. <div class="notification">
  608. <a href="/daymap/coms/Messaging.aspx" id="divAlertCount"><i class="mdi mdi-message" title="Go to my messages"></i>` + (!document.querySelector("li[menu-id='1151'] .menu-item-container .menu-item .menu-message-count.hidden") ? `<div class="notification-amount" title="New messages"> ${(document.querySelector("li[menu-id='1151'] .menu-item-container .menu-item .menu-message-count").innerHTML ? document.querySelector("li[menu-id='1151'] .menu-item-container .menu-item .menu-message-count").innerHTML : ``)}</div>` : ``) + `</a>
  609. </div>
  610. <div id="divUserAvatar" class="avatar" style="background-Image: url('/DayMap/Images/profile-icon-grey.png'), url('/DayMap/Images/profile-icon-grey.png');" tabindex="1">
  611. <div class="vertical-menu open-from-right user-menu" style="top:45px"><a class="menu-label">Logged in as ` + document.querySelector(".sname").innerHTML + `</a><a tabindex="3">Sign Out</a><a tabindex="4">My Details</a></div></div>
  612. </div>
  613. </div>
  614. <style>
  615. .header {
  616. transition: all 0.5s ease 0s;
  617. position: fixed;
  618. left: 0px;
  619. right: 0px;
  620. top: 0px;
  621. height: 78px;
  622. box-shadow: rgba(0, 0, 0, 0.05) 0px 0px 1em 0.5em;
  623. border-bottom: 1px solid gainsboro;
  624. background-color: rgb(255, 255, 255);
  625. z-index: 1100;
  626. text-align: center;
  627. display: flex;
  628. flex-flow: row wrap;
  629. justify-content: space-between;
  630. align-items: center;
  631. }
  632. .menuContainer {
  633. width: 100%;
  634. font-size: .8rem;
  635. position: relative;
  636. }
  637. .menuContainer .lpMenuTop {
  638. cursor: pointer;
  639. }
  640. .menuContainer .lpMenuTop:hover td, .menuContainer .lpMenuTop.active td {
  641. color: #6f6f6f;
  642. }
  643. .menuContainer .lpMenuTop td {
  644. color: #bcbcbc;
  645. background-color: white;
  646. border-bottom: 1px solid white;
  647. border-left: 2px solid transparent;
  648. padding: 4px 9px 7px 9px;
  649. transition: border-bottom .5s, color .2s;
  650. white-space: nowrap;
  651. }
  652. .menuContainer .lpMenuTop td:hover, .menuContainer .lpMenuTop td.active {
  653. border-left: 2px solid #1F9DD9;
  654. background-color: #f0f0f0;
  655. color: #000;
  656. }
  657. .menuContainer div.lpMenu {
  658. cursor: pointer;
  659. position: absolute;
  660. box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 8px rgba(0, 0, 0, 0.2);
  661. z-index: 1425;
  662. }
  663. .menuContainer div.lpMenu table.lpMenu {
  664. background-color: white;
  665. color: #3c3c3c;
  666. }
  667. .menuContainer div.lpMenu table.lpMenu tr .lpMenuTd1, .menuContainer div.lpMenu table.lpMenu tr .lpMenuTd1a {
  668. display: none;
  669. }
  670. .menuContainer div.lpMenu table.lpMenu tr .lpMenuTd2, .menuContainer div.lpMenu table.lpMenu tr .lpMenuTd2a {
  671. text-align: left;
  672. padding: 7px 11px;
  673. }
  674. .menuContainer div.lpMenu table.lpMenu tr .lpMenuTd2 {
  675. border-left: 2px solid #a0d7f1;
  676. }
  677. .menuContainer div.lpMenu table.lpMenu tr .lpMenuTd2a {
  678. border-left: 2px solid #1F9DD9;
  679. }
  680. .menuContainer div.lpMenu table.lpMenu tr:hover {
  681. background-color: #f0f0f0;
  682. color: #000;
  683. }
  684. </style>`;
  685. document.querySelector("daymap-nav").remove();
  686. document.querySelector("daymap-menu").remove();
  687. document.querySelector(".main-layout").style.marginLeft = "0px";
  688. document.querySelector(".main-layout").style.marginTop = "38.2px";
  689. for(i = 0; i < document.querySelectorAll(".card").length; i ++) {
  690. document.querySelectorAll(".card")[i].style.border = "1px solid " + (dark ? "gray" : "gainsboro");
  691. document.querySelectorAll(".card")[i].style.borderRadius = "4px";
  692. }
  693. for(i = 0; i < header.querySelectorAll("td").length; i++) {
  694. header.querySelectorAll("td")[i].style.backgroundColor = "rgba(" + (dark ? "37, 37, 37," : "237, 235, 233,") + getItem("translucentMode") * 1.2 + ")";
  695. }
  696. header.querySelector(".header").style.backgroundColor = "rgba(" + (dark ? "37, 37, 37," : "237, 235, 233,") + getItem("translucentMode") * 1.3 + ")";
  697. header.querySelector(".header").style.backdropFilter = "blur(" + getItem("blurAmount") + "px)";
  698. return header;})()); if(getItem("translucentMode")) {
  699. }}, 500);
  700. window.setTimeout(() => {
  701. let lpmenuScript = document.createElement("script");
  702. lpmenuScript.textContent = "let _mnu = new LoopMenu(document.querySelector('#mnu'), null); _mnu.MenuHtml[272] = null; _mnu.MenuHtml[1] = \"<table class='lpMenu' cellspacing='0'><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>Feed View</td><td class='lpMenuTd3' href=\\\"/daymap/student/dayplan.aspx\\\" menuId='2'>&nbsp;</td></tr><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>Timetable</td><td class='lpMenuTd3' href=\\\"/daymap/timetable/timetable.aspx\\\" menuId='3'>&nbsp;</td></tr><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>Homework</td><td class='lpMenuTd3' href=\\\"/daymap/student/homework.aspx\\\" menuId='36'>&nbsp;</td></tr><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>Summary</td><td class='lpMenuTd3' href=\\\"/daymap/student/studentreport.aspx\\\" menuId='56'>&nbsp;</td></tr><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>Portfolio</td><td class='lpMenuTd3' href=\\\"/daymap/student/portfolio.aspx\\\" menuId='175'>&nbsp;</td></tr><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>Mobile Daymap</td><td class='lpMenuTd3' href=\\\"/daymap/m/index.aspx\\\" menuId='141'>&nbsp;</td></tr></table>\";_mnu.MenuHtml[2] = null;_mnu.MenuHtml[3] = null;_mnu.MenuHtml[36] = null;_mnu.MenuHtml[56] = null;_mnu.MenuHtml[175] = null;_mnu.MenuHtml[141] = null;_mnu.MenuHtml[4] = \"<table class='lpMenu' cellspacing='0'><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>Diary</td><td class='lpMenuTd3' href=\\\"/daymap/timetable/diary.aspx\\\" menuId='46'>&nbsp;</td></tr><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>Class List</td><td class='lpMenuTd3' href=\\\"/daymap/student/classes.aspx\\\" menuId='47'>&nbsp;</td></tr></table>\";_mnu.MenuHtml[46] = null;_mnu.MenuHtml[47] = null;_mnu.MenuHtml[5] = \"<table class='lpMenu' cellspacing='0'><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>Task Finder</td><td class='lpMenuTd3' href=\\\"/daymap/student/assignments.aspx\\\" menuId='6'><img src='/DayMap/images/arrow_right.gif' align='right' border='0'></td></tr><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>Results</td><td class='lpMenuTd3' href=\\\"/daymap/student/portfolio.aspx?tab=Assessment_Results\\\" menuId='274'>&nbsp;</td></tr><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>Schedule</td><td class='lpMenuTd3' href=\\\"/daymap/student/portfolio.aspx?tab=Assessment_Schedule\\\" menuId='275'>&nbsp;</td></tr></table>\";_mnu.MenuHtml[6] = \"<table class='lpMenu' cellspacing='0'><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>Current</td><td class='lpMenuTd3' href=\\\"/daymap/student/assignments.aspx?Status=1\\\" menuId='8'>&nbsp;</td></tr><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>All For This Year</td><td class='lpMenuTd3' href=\\\"/daymap/student/assignments.aspx?Status=2\\\" menuId='9'>&nbsp;</td></tr><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>All</td><td class='lpMenuTd3' href=\\\"/daymap/student/assignments.aspx?Status=0\\\" menuId='41'>&nbsp;</td></tr></table>\";_mnu.MenuHtml[8] = null;_mnu.MenuHtml[87] = \"<table class='lpMenu' cellspacing='0'><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>My Messages</td><td class='lpMenuTd3' href=\\\"/daymap/coms/Messaging.aspx\\\" menuId='134'>&nbsp;</td></tr></table>\";_mnu.MenuHtml[134] = null;_mnu.MenuHtml[67] = \"<table class='lpMenu' cellspacing='0'><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2'>My Calendars</td><td class='lpMenuTd3' href=\\\"/daymap/calendar/MyCalendar.aspx\\\" menuId='196'>&nbsp;</td></tr></table>\";_mnu.MenuHtml[9] = null;_mnu.MenuHtml[41] = null;_mnu.MenuHtml[274] = null;_mnu.MenuHtml[275] = null;_mnu.MenuHtml[196] = null;_mnu.MenuHtml[261] = null;_mnu.MenuHtml[16] = \"<table class='lpMenu' cellspacing='0'><tr><td class='lpMenuTd1'><div></div></td><td class='lpMenuTd2' onclick=\\\"document.querySelector('#toolbox').style.display = 'block'\\\">Daymap Graphics Command Center</td><td class='lpMenuTd3' menuId='60'>&nbsp;</td></tr></table>\";_mnu.MenuHtml[60] = null;";
  703. document.querySelector("body").appendChild(lpmenuScript);
  704. }, 1000);
  705. }
  706. } catch (error) {
  707. //alert("An error has occured with the script. Please contact apate98.\n" + error)
  708. }
  709. })();