`);
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;
}
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.");}