/* LOL HEYURI */ document.write(``); /* Gallery (submodule) */ const kkgal = { startup: function () { var df = $id("delform"); if (!df) return; if (document.querySelector("#galfuncs")) return; df.insertAdjacentHTML("beforebegin", '
'); $doc.body.insertAdjacentHTML("beforeend", `
Gallery Image
×
`); kkgal.gframe = $id("galframe"); kkgal.gimg = $id("galimg"); kkgal.gctrl = $id("galctrl"); var side = $id("galside"); for (var i=0; i'; kkgal.imgindex[i] = pno; } kkgal.getfit(); window.addEventListener("resize", kkgal._evresize); }, reset: function () { var df = $id("delform"); if (!df) return; kkgal.contract(); $del($id("galfuncs")); $del(kkgal.gframe); window.removeEventListener("resize", kkgal._evresize); }, /* - */ gframe: null, gimg: null, gctrl: null, imgindex: Array(), /* Event */ _evresize: function (event) { kkgal.getfit(); }, _evkeypress: function (event) { switch (event.key) { case "ArrowLeft": case "ArrowUp": case "PageUp": // normal person keys (:^|) case "h": case "j": // autist keys (hjkl) case "<": case "[": // chad keys (*pounds keyboard*) case "w": case "a": // gamer keys (wasd) $id("galimgprev").click(); event.preventDefault(); break; case "ArrowRight": case "ArrowDown": case "PageDown": case "l": case "k": case ">": case "]": case "s": case "d": $id("galimgnext").click(); event.preventDefault(); break; case "Escape": case "q": case "x": kkgal.contract(); event.preventDefault(); break; case "Home": case "^": kkgal.expand(kkgal.imgindex[0]); event.preventDefault(); break; case "End": case "$": kkgal.expand(kkgal.imgindex[kkgal.imgindex.length-1]); event.preventDefault(); break; default: if (event.key.match(/^\d$/i)) { var i = parseInt(event.key)-1; if (typeof(kkgal.imgindex[i])!="undefined") kkgal.expand(kkgal.imgindex[i]); event.preventDefault(); } break; } }, /* Function */ getfit: function () { var d = $doc.documentElement; kkgal.gimg.style.maxWidth = (d.clientWidth-200)+"px"; kkgal.gimg.style.maxHeight = (d.clientHeight-FONTSIZE*2.5)+"px"; }, expand: function (no=0) { $doc.addEventListener("keypress", kkgal._evkeypress); var _a = $class("activethumb"); if (_a.length) _a[0].classList.remove("activethumb"); if (!no) no = ($class("postimg")[0].parentNode).parentNode.id.substr(1); for (var i=0; i ×'; kkgal.gctrl.appendChild(fs); } } kkgal.gframe.style.display = "flex"; $doc.body.style.overflow = "hidden"; $id("hoverimg").style.display = "none"; }, contract: function (no=0) { $doc.removeEventListener("keypress", kkgal._evkeypress); kkgal.gframe.style.display = "none"; $doc.body.style.overflow = ""; }, }; /* Module */ const kkimg = { name: "KK Image Features", startup: function () { if (!localStorage.getItem("imgexpand")) localStorage.setItem("imgexpand", "true"); kkimg.postimg = $class("postimg"); for (var i=0; i'); kkgal.startup(); return true; }, reset: function () { if (!kkimg.postimg) { console.log("ERROR: Reset expand not initialized!"); return; } kkgal.reset(); for (var i=0; iInline image expansion `; }, /* - */ postimg: null, imgext: Array("png","jpg","jpeg","gif","giff","bmp","jfif"), vidext: Array("webm","mp4"), swfext: Array("swf"), /* event */ _evexpand: function (event) { if (localStorage.getItem("imgexpand")!="true") return; var p = this.parentNode; var no = p.id.substr(1); if (localStorage.getItem("galmode")=="true") { kkgal.expand(no); event.preventDefault(); return; } if ( kkimg.expand(no) ) event.preventDefault(); }, _evhover1: function (event) { if (localStorage.getItem("imghover")!="true") return; $id("hoverimg").src = this.href; }, _evhover2: function (event) { var hi = $id("hoverimg"); hi.style.display = ""; hi.src = ""; }, /* function */ expand: function (no) { var p = $id("p"+no); var thumb = p.getElementsByClassName("postimg")[0]; if (!thumb) return; var a = thumb.parentNode; if (!a || a.tagName != "A") return; var ext; _split = a.href.split("."); ext = _split[_split.length-1]; a.style.display = "none" if (kkimg.imgext.includes(ext)) { a.insertAdjacentHTML("afterend", ''); return true; } else if (kkimg.vidext.includes(ext)) { a.insertAdjacentHTML("afterend", '
'+ ''+ ''+ '
'); return true; } else if (kkimg.swfext.includes(ext)) { a.insertAdjacentHTML("afterend", '
'+ ''+ ''+ ''+ ''+ ''+ '
'); return true; } return false; }, contract: function (no) { var p = $id("p"+no); var exp = p.getElementsByClassName("expand")[0]; if (!exp) return; exp.remove(); var a = p.getElementsByClassName("postimg")[0].parentNode; a.style.display = ""; }, error: function (no) { var p = $id("p"+no); var exp = p.getElementsByClassName("expand")[0]; exp.innerHTML = 'Error loading file! [Close]'; } }; /* Register */ if(typeof(KOKOJS)!="undefined"){kkjs.modules.push(kkimg);}else{console.log("ERROR: KOKOJS not loaded!\nPlease load 'koko.js' before this script.");}