1 2const msgWin = document.getElementById("messageWindow"); 3 4function contactForm(){showMessageWindow(); msgWin.innerHTML = "<img src='/images/close.webp' class='trMsg' onclick='clearMessageWindow()'><iframe src='https://www.mathematics-monster.com/admin/contact_mathematics_monster.html' frameborder='0' style='width: 100%; height: 100%;' title='window for contact form'></iframe>";} 5 6function moreButton(e,z){ 7let nearSpanHeight = 0; 8const nearPara = e.nextElementSibling.getElementsByTagName("p"); 9if (z==1){ 10const nearSpan = nearPara[0].getElementsByTagName("span"); 11nearSpanHeight = (nearSpan[0].offsetHeight)+20; 12e.querySelector("IMG").style.transform = 'rotate(45deg)'; 13e.querySelectorAll("P")[0].style.background = "red"; 14e.querySelectorAll("P")[1].innerHTML = "less"; 15e.setAttribute("onclick","moreButton(this,2)"); 16} 17else { 18e.querySelector("IMG").style.transform = 'rotate(0deg)'; 19e.querySelectorAll("P")[0].style.background = "green"; 20e.querySelectorAll("P")[1].innerHTML = "more..."; 21e.setAttribute("onclick","moreButton(this,1)"); 22} 23nearPara[0].style.height = nearSpanHeight + "px"; 24} 25 26function scrollToThis(z,fromContents){ 27if (fromContents){ 28const nowStr = z.parentElement.innerHTML; 29z.parentElement.innerHTML = nowStr.substr(0,nowStr.indexOf("<div class")); 30z = document.querySelector(".tableOfContents"); 31} 32const nowCoords = z.getBoundingClientRect(); 33let nowYpos = nowCoords.top; // if (screen.width < 1199){nowYpos -=200;} 34window.scrollBy({ 35 top: nowYpos-100, 36 left: 0, 37 behavior: 'smooth' 38}); 39} 40 41function createQRCode(){nextLesson(2);} 42function QRCodeWindow(){nextLesson(3);} 43 44function clearMessageWindow(z){ 45msgWin.style.display = "none"; 46msgWin.classList.remove("bounce-in-top"); 47document.querySelector("body").querySelector(".overlay")?.remove(); 48} 49 50function showMessageWindow(z){ 51msgWin.style.display = "block"; 52msgWin.classList.add("bounce-in-top"); 53} 54 55function nextLesson(z){ 56const startPoint = document.URL.indexOf(".com/") + 5; 57let passOnURL = "something went wrong" 58// let startPoint = document.URL.indexOf("nster/") + 5; 59let endPoint = document.URL.indexOf(".html")+5; if (endPoint == 4){endPoint = document.URL.indexOf(".htm")+4}; 60 61if (z < 4){passOnURL = document.URL.substr(startPoint,document.URL.indexOf(".htm")-startPoint);} 62else {passOnURL = document.URL.substr(startPoint,endPoint-startPoint);} 63if (z == 1){window.location = ("/admin/next_lesson.html?" + passOnURL);} 64if (z == 2){window.location = ("/admin/create-a-QR-code.html?" + passOnURL);} 65if (z == 3){showMessageWindow(); msgWin.innerHTML = "<img src='/images/close.webp' class='trMsg' onclick='clearMessageWindow()'><iframe src='https://www.mathematics-monster.com/admin/create-QR-window.html?"+passOnURL+"' frameborder='0' style='width: 100%; height: 100%;' scrolling='no' title='window for contact form'></iframe>";} 66if (z == 99){return passOnURL;} 67} 68 69function getMySearchFile(){ 70if (typeof(vibor) == "undefined"){ 71document.querySelector("#searchBox").setAttribute("placeholder","Loading..."); 72var mySearchFile=document.createElement('script'); mySearchFile.setAttribute("type","text/javascript"); mySearchFile.setAttribute("src","/scripts/search27May24.js"); document.getElementsByTagName("head")[0].appendChild(mySearchFile);}} 73 74 75// navbox 76//const mobNavBtn = document.querySelector("#searchHolder").querySelector(".mobileOnly"); 77 78let navTimer; 79 80function showMobNav(){ 81clearMessageWindow(); 82const navZone = document.createElement("div"); 83navZone.setAttribute("class","nowNavZone"); 84document.getElementsByClassName("upperDiv")[0].prepend(navZone) 85navZone.innerHTML = "<div class='navHolder'><center><b>Curriculums</b></center><div><img src='/images/navAlgebra.webp'/><a href='/algebra.html'>algebra</a></div><div><img src='/images/navFractions.webp'/><a href='/fractions.html'>fractions</a></div><div><img src='/images/navPercentages.webp'/><a href='/percentages.html'>percentages</a></div><div><img src='/images/navGeometry.webp'/><a href='/geometry.html'>geometry</a></div><div><img src='/images/navTrig.webp'/><a href='/trigonometry.html'>trigonometry</a></div><div><img src='/images/navFunctions.webp'/><a href='/functions.html'>functions</a></div><div><img src='/images/navTransformations.webp'/><a href='/transformations.html'>transformations</a></div><div><img src='/images/navGraphs.webp'/><a href='/graphs_and_coordinate_geometry.html'>graphs</a></div><div><img src='/images/navStatistics.webp'/><a href='/statistics.html'>statistics</a></div><center><b>More</b></center><div><img src='/images/navAZ.webp'/><a href='/mathematical_terms_and_definitions.html'>glossary</a></div><div style='margin-bottom: 10px;'><img src='/images/navSearch.webp'/><a href='/admin/sitemap-and-search.html'>sitemap</a></div><center><button style='background: red;' onclick='hideMobNav()'>close</button></center></div>"; 86navTimer = setTimeout(delayNav,20) 87if (typeof(vibor) != "undefined"){hideSearchBox();} 88window.addEventListener('scroll', checkScrollDistance); 89//mobNavBtn.setAttribute("onclick","hideMobNav()"); 90} 91 92function delayNav(){ 93clearTimeout(navTimer) 94document.querySelector(".navHolder").setAttribute("style","transform: translateX(0px);"); 95} 96 97 98function hideMobNav(elm){ 99document.querySelector(".nowNavZone")?.remove(); 100// document.getElementsByClassName("nowNavZone")[0].remove(); 101// closeNavWindow(); 102window.removeEventListener('scroll', checkScrollDistance); 103//mobNavBtn.setAttribute("onclick","showMobNav()"); 104} 105 106function addOverlay(elm){ 107const endOverlay = document.createElement("DIV"); 108endOverlay.classList.add("overlay"); 109elm.append(endOverlay); 110} 111 112 113 114let windUp = false, nowScrollY = 0; 115 116/* 117function showNavWindow(){ 118windUp = true; 119nowScrollY = window.pageYOffset; 120window.addEventListener('scroll', checkScrollDistance); 121msgWin.style.display = "block"; 122msgWin.classList.add("bounce-in-top") 123} 124*/ 125 126function closeNavWindow(){ 127clearMessageWindow(); 128windUp = false; 129window.removeEventListener('scroll', checkScrollDistance); 130document.querySelector(".nowNavZone")?.remove(); 131//mobNavBtn.setAttribute("onclick","showMobNav()"); 132} 133 134function checkScrollDistance(){ 135if (Math.abs(nowScrollY-window.pageYOffset) > 200){ 136if (typeof(vibor) != "undefined"){hideSearchBox();} 137closeNavWindow();} 138} 139 140/* 141function joinColumns(z){ 142if (z){ 143document.querySelector(".rightDiv").style.display = "none"; 144// document.querySelector(".leftDiv").style.width = "100%"; 145} 146if (!z){ 147document.querySelector(".rightDiv").style.display = "block"; 148// document.querySelector(".leftDiv").style.width = "790px"; 149if (document.querySelector("#canvasFrank") != null){document.querySelector("#canvasFrank").width = 708;} 150} 151const allExpanders = document.querySelectorAll(".clearDecks"); 152for (const expander of allExpanders){ 153expander.innerHTML = "<img src='../images/"+((z)? "normalPage":"exp
153andPage")+".webp' width='22' height='22' onclick='joinColumns("+((z)? "false":"true")+")'/>"; 154} 155if (document.querySelector("#canvasFrank") != null || document.querySelector("#canvasFrankLocked") != null){setTimeout(fixMouse,100);} 156} // end joinColumns 157*/ 158 159function downloadImage(myCanvas,fileName){ 160var canvas = document.getElementById(myCanvas); 161image = canvas.toDataURL("image/png").replace("image/png", "image/octet-stream"); 162var link = document.createElement('a'); 163link.download = fileName+".png"; 164link.href = image; 165link.click(); 166} 167 168function shareImage(myCanvas){ 169async function shareCanvas() { 170 const canvasElement = document.getElementById(myCanvas); 171 const dataUrl = canvasElement.toDataURL('image/png', 1.0); 172 const blob = await (await fetch(dataUrl)).blob(); 173 const filesArray = [ 174 new File( 175 [blob], 176 'myEmoji.jpg', 177 { 178 type: blob.type, 179 lastModified: new Date().getTime() 180 } 181 ) 182 ]; 183const shareData = {files: filesArray}; 184navigator.share(shareData); 185} // end shareCanvas 186shareCanvas(); 187} 188 189function copyImage(myCanvas){ 190const canvasElement = document.getElementById(myCanvas); 191const dataUrl = canvasElement.toDataURL('image/png', 1.0); 192//var img = document.getElementById('copyeeImage'); 193//img.src = dataUrl; 194async function copyToClipboard(src){ 195 const data = await fetch(src); 196 const blob = await data.blob(); 197 198 try { 199 await navigator.clipboard.write([ 200 new ClipboardItem({ 201 [blob.type]: blob, 202 }) 203 ]) 204 console.log("success"); 205 } catch(e){ 206 console.log(e); 207 } 208} 209copyToClipboard(dataUrl); 210// copyButtons[1].querySelector("P").innerHTML = "copied"; 211} 212 213const copySpace = document.getElementById("urlArea"); if (copySpace){copySpace.innerHTML = document.URL;} 214const shareURL = document.URL; 215const shareMeId = document.getElementsByClassName("shareMe"); 216let delayedClear; 217if (!navigator.share){shareMeId[0].style.display = "none";} 218function shareMyURL(){navigator.share({text: shareURL});} 219function copyMyURL(){ 220const copyArea = document.createElement("textarea"); 221copyArea.style.position = "fixed"; 222copyArea.style.opacity = "0"; 223document.body.appendChild(copyArea); 224copyArea.select(); 225copyArea.setSelectionRange(0,copyArea.value.length) 226document.execCommand("copy"); 227document.body.removeChild(copyArea); 228shareMeId[1].innerHTML = "copied"; 229copySpace.style.background = "#C7CC68"; 230delayedClear = setTimeout(delayReturnFmCopy,1000) 231} 232 233function delayReturnFmCopy(){ 234clearTimeout(delayedClear); 235shareMeId[1].innerHTML = "copy"; 236copySpace.style.background = "white"; 237}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.