diff options
Diffstat (limited to 'static/files/def.js')
-rw-r--r-- | static/files/def.js | 110 |
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) |