summaryrefslogtreecommitdiff
path: root/static/files/def.js
diff options
context:
space:
mode:
Diffstat (limited to 'static/files/def.js')
-rw-r--r--static/files/def.js110
1 files changed, 110 insertions, 0 deletions
diff --git a/static/files/def.js b/static/files/def.js
index d377bf09..7e7e46d9 100644
--- a/static/files/def.js
+++ b/static/files/def.js
@@ -43,9 +43,14 @@ function formhid() {
formsubs[i] = !formsubs[i];
}
}
+ if(x('screenshots') && !formsubs['scr'])
+ scrLoad();
}
function formtoggle(n) {
formsubs[n] = !formsubs[n];
+ if(x('screenshots') && !formsubs['scr'] && !x('scrTbl'))
+ scrLoad();
+
var i;
var l = document.forms[1].getElementsByTagName('a');
for(i=0; i<l.length; i++)
@@ -208,6 +213,102 @@ function ad_dosearch() {
+/* S C R E E N S H O T S */
+
+var scrNsfwEnabled = null;
+function scrNsfwHid() {
+ var l=x('screenshots').getElementsByTagName('a');
+ var i;
+ if(scrNsfwEnabled == null)
+ scrNsfwEnabled = 0;
+ else {
+ for(i=0;i<l.length;i++)
+ if(l[i].className.indexOf('scr_nsfw')>=0)
+ l[i].style.display = scrNsfwEnabled ? 'block' : 'none';
+ scrNsfwEnabled = scrNsfwEnabled ? 0 : 1;
+ }
+
+ var t=0;var n=0;
+ for(i=0;i<l.length;i++) {
+ t++;
+ if(l[i].className.indexOf('scr_nsfw')>=0)
+ n++;
+ if(l[i].style.display == 'none')
+ scrNsfwEnabled = 1;
+ }
+ x('scrNsfwHid').innerHTML = 'Showing '+(t-(scrNsfwEnabled?n:0))+' out of '+t+' items. '
+ +(scrNsfwEnabled ? '<a href="javascript:scrNsfwHid()">Show</a> / hide' : 'Show / <a href="javascript:scrNsfwHid()">hide</a>')
+ +' nsfw.';
+}
+var scrInt;
+function scrView() {
+ var u=this.href;
+ var ol=x('screenshots').getElementsByTagName('a');
+ var l=[];
+
+ // remove NSFW
+ for(i=0;i<ol.length;i++)
+ if(!scrNsfwEnabled || ol[i].className.indexOf('scr_nsfw')<0)
+ l[l.length] = ol[i];
+
+ // fix prev/next links
+ for(i=0;i<l.length;i++)
+ if(l[i].href == u) {
+ x('scrnext').style.visibility = l[i+1] ? 'visible' : 'hidden';
+ x('scrnext').href = l[i+1] ? l[i+1].href : '#';
+ x('scrprev').style.visibility = l[i-1] ? 'visible' : 'hidden';
+ x('scrprev').href = l[i-1] ? l[i-1].href : '#';
+ }
+
+ // show image
+ x('preload').src = u;
+ x('scrimg').innerHTML = 'Loading...';
+ x('scrView').style.display = 'block';
+ scrPosition(1);
+ return false;
+}
+function scrPosition(act) {
+ d = x('scrView');
+ m = x('preload');
+ // why don't all browsers use the same DOM...
+ var ww = typeof(window.innerWidth) == 'number' ? window.innerWidth : document.documentElement.clientWidth;
+ var wh = typeof(window.innerHeight) == 'number' ? window.innerHeight : document.documentElement.clientHeight;
+ var st = typeof(window.pageYOffset) == 'number' ? window.pageYOffset : document.body && document.body.scrollTop ? document.body.scrollTop : document.documentElement.scrollTop;
+ var h=20;var w=200;
+ if(act != 1) {
+ w = m.offsetWidth;
+ h = m.offsetHeight;
+ if(w+100 > ww || h+100 > wh) {
+ if(w/h > ww/wh) { // width++
+ h *= (ww-100)/w;
+ w = ww-100;
+ } else { // height++
+ w *= (wh-100)/h;
+ h = wh-100;
+ }
+ }
+ }
+ var dw = w;
+ var dh = h+20;
+ dw = dw < 200 ? 200 : dw;
+ d.style.width = dw+'px';
+ d.style.height = dh+'px';
+ d.style.left = ((ww - dw) / 2 - 10)+'px';
+ d.style.top = ((wh - dh) / 2 + st)+'px';
+ if(act != 1)
+ x('scrimg').innerHTML = '<img src="'+x('preload').src+'" onclick="scrClose()" style="width: '+w+'px; height: '+h+'px" />';
+}
+function scrClose() {
+ clearInterval(scrInt);
+ scrInt = null;
+ x('scrView').style.display = 'none';
+ x('scrView').style.top = '-5000px';
+ x('scrimg').innerHTML = '';
+ return false;
+}
+
+
+
/* O N L O A D */
@@ -301,6 +402,15 @@ DOMLoad(function() {
}
}
+ // screenshots
+ if(x('scrNsfwHid'))
+ scrNsfwHid();
+ if(x('scrView')) {
+ l=x('screenshots').getElementsByTagName('a');
+ for(i=0;i<l.length;i++)
+ l[i].onclick=scrView;
+ x('scrnext').onclick = x('scrprev').onclick = scrView;
+ }
// spam protection on all forms
if(document.forms.length > 1)