Skip to content

Instantly share code, notes, and snippets.

@italoveloso
Created April 23, 2013 11:40
Show Gist options
  • Save italoveloso/5442897 to your computer and use it in GitHub Desktop.
Save italoveloso/5442897 to your computer and use it in GitHub Desktop.
if (window != top) top.location.href = location.href;
var id = 0;
var maxid = 0;
var zoom = false;
function addEvent(obj, method, func) {
if (obj.addEventListener) {
obj.addEventListener(method, func, false)
} else if (obj.attachEvent) {
if (!obj.events_size) obj.events_size = 0;
var id = obj.events_size;
obj.events_size++;
obj["event_" + id] = func;
obj.attachEvent("on" + method, obj["event_" + id])
} else {
if (!obj.events) obj.events = {};
if (!obj.events[method]) obj.events[method] = [];
obj.events[method].push(func);
obj["on" + method] = function (evt) {
evt = evt || window.event;
var size = this.events[method].length;
for (var i = 0; i < size; i++) {
if (this.events[method][i](evt) === false) {
return false
}
}
}
}
}
function update(scroll) {
scroll = typeof scroll !== "undefined" ? scroll : false;
var iel = document.getElementById("imgs");
var imgs = iel.children;
var par = iel.parentNode;
for (var i = imgs.length; i--;) {
imgs[i].style.display = "none";
imgs[i].style.maxHeight = imgs[i].style.maxWidth = ""
}
imgs[id].style.display = "block";
if (scroll) imgs[id].scrollIntoView();
var zel = document.getElementById("zoom");
if (zoom) {
var screenWidth = window.innerWidth || document.documentElement.clientWidth;
var screenHeight = window.innerHeight || document.documentElement.clientHeight;
imgs[id].style.maxWidth = screenWidth + "px";
imgs[id].style.maxHeight = screenHeight + "px";
var imgWidth = imgs[id].clientWidth;
var imgHeight = imgs[id].clientHeight;
zel.style.display = "block";
par.style.position = "fixed";
par.style.zIndex = 1000;
par.style.width = imgWidth + "px";
par.style.height = imgHeight + "px";
par.style.top = ((screenHeight - imgHeight) / 2) + "px";
par.style.left = ((screenWidth - imgWidth) / 2) + "px";
par.style.maxWidth = "100%";
par.style.maxHeight = "100%";
document.body.style.overflow = "hidden"
} else {
zel.style.display = "none";
par.style.position = "relative";
document.body.style.overflow = par.style.maxHeight = par.style.maxWidth = par.style.left = par.style.top = par.style.height = par.style.width = par.style.zIndex = ""
}
document.getElementById("pagina").value = id
}
addEvent(window, "load", function () {
var cancels = ["contextmenu", "selectstart", "dragstart", "dblclick"];
for (var i = cancels.length; i--;) {
addEvent(window, cancels[i], function (e) {
e = e || window.event;
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;
return false
})
}
addEvent(window, "mousedown", function (e) {
e = e || window.event;
var target = e.target || e.srcElement;
if (target.nodeType == 3) target = target.parentNode;
if (target.nodeName == "SELECT") return;
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;
return false
});
var keyevents = ["keypress", "keydown"];
for (var i = keyevents.length; i--;) {
addEvent(window, keyevents[i], function (e) {
e = e || window.event;
var key = e.keyCode || e.which;
if (key == 17 || e.ctrlKey) {
e.which = e.keyCode = 0;
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;
return false
}
})
}
addEvent(window, "keyup", function (e) {
e = e || window.event;
var key = e.keyCode || e.which;
if (key == 90) {
zoom = !zoom;
update()
}
if (key == 27 && zoom) {
zoom = false;
update()
}
if (key == 39) document.getElementById("next").click();
if (key == 37) document.getElementById("prev").click()
});
addEvent(document.getElementById("zoom"), "click", function () {
zoom = false;
update()
});
addEvent(window, "resize", function (e) {
if (zoom) update()
});
addEvent(document.getElementById("next"), "click", function (e) {
e = e || window.event;
id++;
if (id >= maxid) {
location.href = "?mod=reader&project=Kenichi&release=Cap+511";
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;
return false
}
update(true);
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;
return false
});
addEvent(document.getElementById("prev"), "click", function (e) {
e = e || window.event;
id--;
if (id < 0) {
location.href = "?mod=reader&project=Kenichi&release=Cap+509";
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;
return false
}
update(true);
if (e.preventDefault) e.preventDefault();
else e.returnValue = false;
return false
});
var addPage = function (imgs, id) {
var el = document.createElement("img");
var addEvent = window.addEvent;
el.src = "?mod=file&id=" + id;
addEvent(el, "click", function () {
document.getElementById("next").click()
});
addEvent(el, "load", function () {
var nel = document.createElement("img");
nel.src = el.src + "#x";
nel.style.display = "none";
addEvent(nel, "load", function () {
nel.parentNode.removeChild(nel)
});
imgs.parentNode.appendChild(nel)
});
imgs.appendChild(el)
};
var imgs = document.getElementById("imgs");
var ids = ["2120629768517671249daa57.81224693", "793655408517671249dac78.40750833", "102400830517671249dacd3.34153211", "1420067469517671249dad12.90935445", "334654491517671249dad60.23722753", "218363952517671249dada9.44631135", "1049274685517671249dade3.02810922", "51155670517671249daf62.73784080", "2066167007517671249dafc0.19128179", "1728742760517671249db011.85489788", "69909767517671249db053.35860152", "1534005778517671249db091.72521047", "861681604517671249db0e9.77200351", "822793560517671249db121.40190851", "751976739517671249db160.76648767", "1437605415517671249db1b0.17411374", "1094063518517671249db206.70739752"];
maxid = ids.length;
for (var i = 0; i < maxid; i++) {
addPage(imgs, ids[i])
}
var el = document.createElement("div");
var par = imgs.parentNode;
par.style.overflow = "hidden";
par.style.position = "relative";
par.style.display = "inline-block";
par.appendChild(el);
var nel = document.createElement("img");
nel.src = "background.gif";
el.style.position = nel.style.position = "absolute";
el.style.top = el.style.left = nel.style.top = nel.style.left = "0px";
el.style.width = el.style.height = nel.style.width = nel.style.height = "100%";
addEvent(el, "click", function () {
document.getElementById("next").click()
});
el.appendChild(nel);
par = document.getElementById("pagina");
for (var i = 0; i < maxid; i++) {
el = document.createElement("option");
el.value = i;
el.appendChild(document.createTextNode((i < 9) ? "0" + (i + 1) : i + 1));
par.appendChild(el)
}
addEvent(document.getElementById("pagina"), "change", function () {
id = parseInt(document.getElementById("pagina").value);
update()
});
addEvent(document.getElementById("cap"), "change", function () {
location.href = "?mod=reader&project=" + encodeURIComponent(document.getElementById("manga").value) + "&release=" + encodeURIComponent(document.getElementById("cap").value)
});
addEvent(document.getElementById("manga"), "change", function () {
location.href = "?mod=releases&project=" + encodeURIComponent(document.getElementById("manga").value)
});
var nojs = document.getElementById("noscript");
nojs.parentNode.removeChild(nojs);
setInterval(function () {
if (window.clipboardData) window.clipboardData.clearData()
}, 100);
update();
window.addEvent = null;
window.addEvent = undefined;
delete window.addEvent
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment