Trunk updated to 0.9 git-svn-id: http://kusabax.cultnet.net/svn/repo/stable@176 73d99b7e-4f53-4972-b7b7-2ecd3c4d89ee
830 lines
27 KiB
JavaScript
830 lines
27 KiB
JavaScript
var style_cookie;
|
|
var style_cookie_txt;
|
|
var style_cookie_site;
|
|
var kumod_set = false;
|
|
var quick_reply = false;
|
|
var ispage;
|
|
|
|
/* IE/Opera fix, because they need to go learn a book on how to use indexOf with arrays */
|
|
if (!Array.prototype.indexOf) {
|
|
Array.prototype.indexOf = function(elt /*, from*/) {
|
|
var len = this.length;
|
|
|
|
var from = Number(arguments[1]) || 0;
|
|
from = (from < 0)
|
|
? Math.ceil(from)
|
|
: Math.floor(from);
|
|
if (from < 0)
|
|
from += len;
|
|
|
|
for (; from < len; from++) {
|
|
if (from in this &&
|
|
this[from] === elt)
|
|
return from;
|
|
}
|
|
return -1;
|
|
};
|
|
}
|
|
|
|
/**
|
|
*
|
|
* UTF-8 data encode / decode
|
|
* http://www.webtoolkit.info/
|
|
*
|
|
**/
|
|
|
|
var Utf8 = {
|
|
|
|
// public method for url encoding
|
|
encode : function (string) {
|
|
string = string.replace(/\r\n/g,"\n");
|
|
var utftext = "";
|
|
|
|
for (var n = 0; n < string.length; n++) {
|
|
|
|
var c = string.charCodeAt(n);
|
|
|
|
if (c < 128) {
|
|
utftext += String.fromCharCode(c);
|
|
}
|
|
else if((c > 127) && (c < 2048)) {
|
|
utftext += String.fromCharCode((c >> 6) | 192);
|
|
utftext += String.fromCharCode((c & 63) | 128);
|
|
}
|
|
else {
|
|
utftext += String.fromCharCode((c >> 12) | 224);
|
|
utftext += String.fromCharCode(((c >> 6) & 63) | 128);
|
|
utftext += String.fromCharCode((c & 63) | 128);
|
|
}
|
|
|
|
}
|
|
|
|
return utftext;
|
|
},
|
|
|
|
// public method for url decoding
|
|
decode : function (utftext) {
|
|
var string = "";
|
|
var i = 0;
|
|
var c = c1 = c2 = 0;
|
|
|
|
while ( i < utftext.length ) {
|
|
|
|
c = utftext.charCodeAt(i);
|
|
|
|
if (c < 128) {
|
|
string += String.fromCharCode(c);
|
|
i++;
|
|
}
|
|
else if((c > 191) && (c < 224)) {
|
|
c2 = utftext.charCodeAt(i+1);
|
|
string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
|
|
i += 2;
|
|
}
|
|
else {
|
|
c2 = utftext.charCodeAt(i+1);
|
|
c3 = utftext.charCodeAt(i+2);
|
|
string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
|
|
i += 3;
|
|
}
|
|
|
|
}
|
|
|
|
return string;
|
|
}
|
|
|
|
}
|
|
|
|
var gt = new Gettext({ 'domain' : 'kusaba' });
|
|
function _ (msgid) { return gt.gettext(msgid); }
|
|
|
|
function toggle(button, area) {
|
|
var tog=document.getElementById(area);
|
|
if(tog.style.display) {
|
|
tog.style.display="";
|
|
} else {
|
|
tog.style.display="none";
|
|
}
|
|
button.innerHTML=(tog.style.display)?'+':'−';
|
|
set_cookie('nav_show_'+area, tog.style.display?'0':'1', 30);
|
|
}
|
|
|
|
function removeframes() {
|
|
var boardlinks = document.getElementsByTagName("a");
|
|
for(var i=0;i<boardlinks.length;i++) if(boardlinks[i].className == "boardlink") boardlinks[i].target = "_top";
|
|
|
|
document.getElementById("removeframes").innerHTML = 'Frames removed.';
|
|
|
|
return false;
|
|
}
|
|
|
|
function reloadmain() {
|
|
if (parent.main) {
|
|
parent.main.location.reload();
|
|
}
|
|
}
|
|
|
|
function replaceAll( str, from, to ) {
|
|
var idx = str.indexOf( from );
|
|
while ( idx > -1 ) {
|
|
str = str.replace( from, to );
|
|
idx = str.indexOf( from );
|
|
}
|
|
return str;
|
|
}
|
|
|
|
function insert(text) {
|
|
if(!ispage || quick_reply) {
|
|
var textarea=document.forms.postform.message;
|
|
if(textarea) {
|
|
if(textarea.createTextRange && textarea.caretPos) { // IE
|
|
var caretPos=textarea.caretPos;
|
|
caretPos.text=caretPos.text.charAt(caretPos.text.length-1)==" "?text+" ":text;
|
|
} else if(textarea.setSelectionRange) { // Firefox
|
|
var start=textarea.selectionStart;
|
|
var end=textarea.selectionEnd;
|
|
textarea.value=textarea.value.substr(0,start)+text+textarea.value.substr(end);
|
|
textarea.setSelectionRange(start+text.length,start+text.length);
|
|
} else {
|
|
textarea.value+=text+" ";
|
|
}
|
|
textarea.focus();
|
|
|
|
return false;
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
|
|
function quote(b, a) {
|
|
var v = eval("document." + a + ".message");
|
|
v.value += (">>" + b + "\r");
|
|
v.focus();
|
|
}
|
|
|
|
function checkhighlight() {
|
|
var match;
|
|
|
|
if(match=/#i([0-9]+)/.exec(document.location.toString()))
|
|
if(!document.forms.postform.message.value)
|
|
insert(">>" + match[1] + "\n");
|
|
|
|
if(match=/#([0-9]+)/.exec(document.location.toString()))
|
|
highlight(match[1]);
|
|
}
|
|
|
|
function highlight(post, checknopage) {
|
|
|
|
if ((checknopage && ispage) || ispage) {
|
|
// Uncomment the following line to always send the user to the thread if the link was clicked on the board page.
|
|
//return;
|
|
}
|
|
|
|
var cells = document.getElementsByTagName("td");
|
|
for(var i=0;i<cells.length;i++) if(cells[i].className == "highlight") cells[i].className = "reply";
|
|
|
|
var reply = document.getElementById("reply" + post);
|
|
var replytable = reply.parentNode;
|
|
while (replytable.nodeName != 'TABLE') {
|
|
replytable = replytable.parentNode;
|
|
}
|
|
|
|
if((reply || document.postform.replythread.value == post) && replytable.parentNode.className != "reflinkpreview") {
|
|
if(reply) {
|
|
reply.className = "highlight";
|
|
}
|
|
var match = /^([^#]*)/.exec(document.location.toString());
|
|
document.location = match[1] + "#" + post;
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
function get_password(name) {
|
|
var pass = getCookie(name);
|
|
if(pass) return pass;
|
|
|
|
var chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
|
var pass='';
|
|
|
|
for(var i=0;i<8;i++) {
|
|
var rnd = Math.floor(Math.random()*chars.length);
|
|
pass += chars.substring(rnd, rnd+1);
|
|
}
|
|
set_cookie(name, pass, 365);
|
|
return(pass);
|
|
}
|
|
|
|
function togglePassword() {
|
|
/* Now IE/Opera safe */
|
|
var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
|
|
var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
|
|
var bMoz = (navigator.appName == 'Netscape');
|
|
var passwordbox = document.getElementById("passwordbox");
|
|
if (passwordbox) {
|
|
var passwordbox_html;
|
|
|
|
if ((bSaf) || (bOpera) || (bMoz))
|
|
passwordbox_html = passwordbox.innerHTML;
|
|
else passwordbox_html = passwordbox.text;
|
|
|
|
passwordbox_html = passwordbox_html.toLowerCase();
|
|
var newhtml = '<td></td><td></td>';
|
|
|
|
if (passwordbox_html == newhtml) {
|
|
var newhtml = '<td class="postblock">Mod</td><td><input type="text" name="modpassword" size="28" maxlength="75"> <acronym title="Display staff status (Mod/Admin)">D</acronym>: <input type="checkbox" name="displaystaffstatus" checked> <acronym title="Lock">L</acronym>: <input type="checkbox" name="lockonpost"> <acronym title="Sticky">S</acronym>: <input type="checkbox" name="stickyonpost"> <acronym title="Raw HTML">RH</acronym>: <input type="checkbox" name="rawhtml"> <acronym title="Name">N</acronym>: <input type="checkbox" name="usestaffname"></td>';
|
|
}
|
|
|
|
if ((bSaf) || (bOpera) || (bMoz))
|
|
passwordbox.innerHTML = newhtml;
|
|
else passwordbox.text = newhtml;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function toggleOptions(threadid, formid, board) {
|
|
if (document.getElementById('opt' + threadid)) {
|
|
if (document.getElementById('opt' + threadid).style.display == '') {
|
|
document.getElementById('opt' + threadid).style.display = 'none';
|
|
document.getElementById('opt' + threadid).innerHTML = '';
|
|
} else {
|
|
var newhtml = '<td class="label"><label for="formatting">Formatting:</label></td><td colspan="3"><select name="formatting"><option value="" onclick="javascript:document.getElementById(\'formattinginfo' + threadid + '\').innerHTML = \'All formatting is performed by the user.\';">Normal</option><option value="aa" onclick="javascript:document.getElementById(\'formattinginfo' + threadid + '\').innerHTML = \'[aa] and [/aa] will surround your message.\';"';
|
|
if (getCookie('kuformatting') == 'aa') {
|
|
newhtml += ' selected';
|
|
}
|
|
newhtml += '>Text Art</option></select> <input type="checkbox" name="rememberformatting"><label for="rememberformatting">Remember</label> <span id="formattinginfo' + threadid + '">';
|
|
if (getCookie('kuformatting') == 'aa') {
|
|
newhtml += '[aa] and [/aa] will surround your message.';
|
|
} else {
|
|
newhtml += 'All formatting is performed by the user.';
|
|
}
|
|
newhtml += '</span></td><td><input type="button" value="Preview" class="submit" onclick="javascript:postpreview(\'preview' + threadid + '\', \'' + board + '\', \'' + threadid + '\', document.' + formid + '.message.value);"></td>';
|
|
|
|
document.getElementById('opt' + threadid).innerHTML = newhtml;
|
|
document.getElementById('opt' + threadid).style.display = '';
|
|
}
|
|
}
|
|
}
|
|
|
|
function getCookie(name) {
|
|
with(document.cookie) {
|
|
var regexp=new RegExp("(^|;\\s+)"+name+"=(.*?)(;|$)");
|
|
var hit=regexp.exec(document.cookie);
|
|
if(hit&&hit.length>2) return Utf8.decode(unescape(replaceAll(hit[2],'+','%20')));
|
|
else return '';
|
|
}
|
|
}
|
|
|
|
function set_cookie(name,value,days) {
|
|
if(days) {
|
|
var date=new Date();
|
|
date.setTime(date.getTime()+(days*24*60*60*1000));
|
|
var expires="; expires="+date.toGMTString();
|
|
} else expires="";
|
|
document.cookie=name+"="+value+expires+"; path=/";
|
|
}
|
|
function del_cookie(name) {
|
|
document.cookie = name +'=; expires=Thu, 01-Jan-70 00:00:01 GMT; path=/';
|
|
}
|
|
|
|
function set_stylesheet(styletitle, txt, site) {
|
|
if (txt) {
|
|
if (styletitle == get_default_stylesheet())
|
|
del_cookie("kustyle_txt");
|
|
else
|
|
set_cookie("kustyle_txt",styletitle,365);
|
|
} else if (site) {
|
|
if (styletitle == get_default_stylesheet())
|
|
del_cookie("kustyle_site");
|
|
else
|
|
set_cookie("kustyle_site",styletitle,365);
|
|
} else {
|
|
if (styletitle == get_default_stylesheet())
|
|
del_cookie("kustyle");
|
|
else
|
|
set_cookie("kustyle",styletitle,365);
|
|
}
|
|
|
|
var links=document.getElementsByTagName("link");
|
|
var found=false;
|
|
for(var i=0;i<links.length;i++) {
|
|
var rel=links[i].getAttribute("rel");
|
|
var title=links[i].getAttribute("title");
|
|
|
|
if(rel.indexOf("style")!=-1&&title) {
|
|
links[i].disabled=true; // IE needs this to work. IE needs to die.
|
|
if(styletitle==title) { links[i].disabled=false; found=true; }
|
|
}
|
|
}
|
|
if(!found) set_preferred_stylesheet();
|
|
}
|
|
|
|
function set_preferred_stylesheet() {
|
|
var links=document.getElementsByTagName("link");
|
|
for(var i=0;i<links.length;i++) {
|
|
var rel=links[i].getAttribute("rel");
|
|
var title=links[i].getAttribute("title");
|
|
if(rel.indexOf("style")!=-1&&title) links[i].disabled=(rel.indexOf("alt")!=-1);
|
|
}
|
|
}
|
|
|
|
function get_active_stylesheet() {
|
|
var links=document.getElementsByTagName("link");
|
|
for(var i=0;i<links.length;i++) {
|
|
var rel=links[i].getAttribute("rel");
|
|
var title=links[i].getAttribute("title");
|
|
if(rel.indexOf("style")!=-1&&title&&!links[i].disabled) return title;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
function get_preferred_stylesheet() {
|
|
var links=document.getElementsByTagName("link");
|
|
for(var i=0;i<links.length;i++) {
|
|
var rel=links[i].getAttribute("rel");
|
|
var title=links[i].getAttribute("title");
|
|
if(rel.indexOf("style")!=-1&&rel.indexOf("alt")==-1&&title) return title;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
function get_default_stylesheet() {
|
|
var links=document.getElementsByTagName("link");
|
|
for(var i=0;i<links.length;i++) {
|
|
var rel=links[i].getAttribute("rel");
|
|
var title=links[i].getAttribute("title");
|
|
if(rel.indexOf("style")!=-1&&title&&rel!='alternate stylesheet') return title;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
function delandbanlinks() {
|
|
if (!kumod_set) return;
|
|
togglePassword();
|
|
var bottombox = document.getElementById("fileonly");
|
|
if (bottombox) {
|
|
bottombox = bottombox.parentNode;
|
|
bottombox.innerHTML = '[<input type="checkbox" name="fileonly" id="fileonly" value="on" /><label for="fileonly">File Only</label>] <input name="moddelete" onclick="return confirm(_(\'Are you sure you want to delete these posts?\'))" value="'+_('Delete')+'" type="submit" /> <input name="modban" value="'+_('Ban')+'" onclick="this.form.action=\''+ ku_cgipath + '/manage_page.php?action=bans\';" type="submit" />';
|
|
}
|
|
var dnbelements = document.getElementsByTagName('span');
|
|
var dnbelement;
|
|
var dnbinfo;
|
|
for(var i=0;i<dnbelements.length;i++){
|
|
dnbelement = dnbelements[i];
|
|
if (dnbelement.getAttribute('id')) {
|
|
if (dnbelement.getAttribute('id').substr(0, 3) == 'dnb') {
|
|
dnbinfo = dnbelement.getAttribute('id').split('-');
|
|
dnbelement.innerHTML = "";
|
|
var newhtml = "";
|
|
new Ajax.Request(ku_boardspath + "/manage_page.php?action=getip&boarddir=" + dnbinfo[1] + "&id=" + dnbinfo[2], {
|
|
method: "get",
|
|
onSuccess: function(ip) {
|
|
ipaddr = ip.responseText.split("=") || "what are you doing get out you don't even fit";
|
|
span = document.getElementById(ipaddr[0]);
|
|
span.innerHTML = "[IP: "+ipaddr[1]+" <a href=\"" + ku_boardspath + "/manage_page.php?action=deletepostsbyip&ip="+ipaddr[1]+"\" title=\"" + _('Delete all posts by this IP') + "\">D</a> / <a href=\"" + ku_boardspath + "/manage_page.php?action=ipsearch&ip="+ipaddr[1]+"\" title=\"" + _('Search for posts with this IP') + "\">S</a>] " + span.innerHTML;
|
|
|
|
},
|
|
onFailure: function() {
|
|
newhtml = "[what are you doing get out you don't even fit]";
|
|
dnbelement.innerHTML = newhtml
|
|
}
|
|
})
|
|
|
|
newhtml += '[<a href="' + ku_cgipath + '/manage_page.php?action=delposts&boarddir=' + dnbinfo[1] + '&del';
|
|
if (dnbinfo[3] == 'y') {
|
|
newhtml += 'thread';
|
|
} else {
|
|
newhtml += 'post';
|
|
}
|
|
newhtml += 'id=' + dnbinfo[2] + '" title="' + _('Delete') + '" onclick="return confirm(_(\'Are you sure you want to delete this post/thread?\'));">D<\/a> <a href="' + ku_cgipath + '/manage_page.php?action=delposts&boarddir=' + dnbinfo[1] + '&del';
|
|
if (dnbinfo[3] == 'y') {
|
|
newhtml += 'thread';
|
|
} else {
|
|
newhtml += 'post';
|
|
}
|
|
newhtml += 'id=' + dnbinfo[2] + '&postid=' + dnbinfo[2] + '" title="' + _('Delete & Ban') + '" onclick="return confirm(_(\'Are you sure you want to delete and ban the poster of this post/thread?\'));">&<\/a> <a href="' + ku_cgipath + '/manage_page.php?action=bans&banboard=' + dnbinfo[1] + '&banpost=' + dnbinfo[2] + '" title="' + _('Ban') + '">B<\/a>] [<a href="' + ku_cgipath + '/manage_page.php?action=bans&banboard=' + dnbinfo[1] + '&banpost=' + dnbinfo[2] + '&instant=y" title="' + _('Instant Permanent Ban') + '" onclick="instantban(\'' + dnbinfo[1] + '\',' + dnbinfo[2] + '); return false;">P<\/a>] [<a href="' + ku_cgipath + '/manage_page.php?action=delposts&boarddir=' + dnbinfo[1] + '&del';
|
|
if (dnbinfo[3] == 'y') {
|
|
newhtml += 'thread';
|
|
} else {
|
|
newhtml += 'post';
|
|
}
|
|
newhtml += 'id=' + dnbinfo[2] + '&postid=' + dnbinfo[2] + '&cp=y" title="' + _('Child Pornography') + '" onclick="return confirm(_(\'Are you sure that this is child pornography?\'));">CP<\/a>]';
|
|
|
|
|
|
dnbelements[i].innerHTML = newhtml;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function instantban(boardid, postid) {
|
|
|
|
var reason = prompt(_('Are you sure you want to permenently ban the poster of this post/thread?\nIf so enter a ban message or click OK to use the default ban reason. To cancel this operation, click "Cancel".'));
|
|
|
|
if (reason !== null) {
|
|
var url = ku_cgipath + '/manage_page.php?action=bans&banboard=' + boardid + '&banpost=' + postid + '&instant=y';
|
|
if (reason != '') {
|
|
url += '&reason=' + reason;
|
|
}
|
|
new Ajax.Request(url,{
|
|
method: "get",
|
|
onSuccess: function(ban) {
|
|
var message = ban.responseText || "Ban failed!";
|
|
if (message == "success")
|
|
alert(_("Ban was sucessful."));
|
|
else
|
|
alert(_("Ban failed!"));
|
|
},
|
|
onFailure: function() {
|
|
alert(_("Ban failed!"));
|
|
}
|
|
})
|
|
}
|
|
else {
|
|
alert(_("OK, no action taken."));
|
|
}
|
|
}
|
|
|
|
function togglethread(threadid) {
|
|
if (hiddenthreads.toString().indexOf(threadid)!==-1) {
|
|
document.getElementById('unhidethread' + threadid).style.display = 'none';
|
|
document.getElementById('thread' + threadid).style.display = 'block';
|
|
hiddenthreads.splice(hiddenthreads.indexOf(threadid),1);
|
|
set_cookie('hiddenthreads',hiddenthreads.join('!'),30);
|
|
} else {
|
|
document.getElementById('unhidethread' + threadid).style.display = 'block';
|
|
document.getElementById('thread' + threadid).style.display = 'none';
|
|
hiddenthreads.push(threadid);
|
|
set_cookie('hiddenthreads',hiddenthreads.join('!'),30);
|
|
}
|
|
return false;
|
|
}
|
|
|
|
function toggleblotter(save) {
|
|
var elem = document.getElementsByTagName('li');
|
|
var arr = new Array();
|
|
var blotterentry;
|
|
for(i = 0,iarr = 0; i < elem.length; i++) {
|
|
att = elem[i].getAttribute('class');
|
|
if(att == 'blotterentry') {
|
|
blotterentry = elem[i];
|
|
if (blotterentry.style.display == 'none') {
|
|
blotterentry.style.display = '';
|
|
if (save) {
|
|
set_cookie('ku_showblotter', '1', 365);
|
|
}
|
|
} else {
|
|
blotterentry.style.display = 'none';
|
|
if (save) {
|
|
set_cookie('ku_showblotter', '0', 365);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
function expandthread(threadid, board) {
|
|
if (document.getElementById('replies' + threadid + board)) {
|
|
var repliesblock = document.getElementById('replies' + threadid + board);
|
|
repliesblock.innerHTML = _('Expanding thread') + '...<br><br>' + repliesblock.innerHTML;
|
|
|
|
new Ajax.Request(ku_boardspath + '/expand.php?board=' + board + '&threadid=' + threadid,
|
|
{
|
|
method:'get',
|
|
onSuccess: function(transport){
|
|
var response = transport.responseText || _("something went wrong (blank response)");
|
|
repliesblock.innerHTML = response;
|
|
delandbanlinks();
|
|
addpreviewevents();
|
|
},
|
|
onFailure: function(){ alert(_('Something went wrong...')) }
|
|
});
|
|
}
|
|
|
|
return false;
|
|
}
|
|
|
|
function quickreply(threadid) {
|
|
if (threadid == 0) {
|
|
quick_reply = false;
|
|
document.getElementById('posttypeindicator').innerHTML = 'new thread'
|
|
} else {
|
|
quick_reply = true;
|
|
document.getElementById('posttypeindicator').innerHTML = 'reply to ' + threadid + ' [<a href="#postbox" onclick="javascript:quickreply(\'0\');" title="Cancel">x</a>]';
|
|
}
|
|
|
|
document.postform.replythread.value = threadid;
|
|
}
|
|
|
|
function getwatchedthreads(threadid, board) {
|
|
if (document.getElementById('watchedthreadlist')) {
|
|
var watchedthreadbox = document.getElementById('watchedthreadlist');
|
|
|
|
watchedthreadbox.innerHTML = _('Loading watched threads...');
|
|
|
|
new Ajax.Request(ku_boardspath + '/threadwatch.php?board=' + board + '&threadid=' + threadid,
|
|
{
|
|
method:'get',
|
|
onSuccess: function(transport){
|
|
var response = transport.responseText || _("something went wrong (blank response)");
|
|
watchedthreadbox.innerHTML = response;
|
|
},
|
|
onFailure: function(){ alert(_('Something went wrong...')) }
|
|
});
|
|
}
|
|
}
|
|
|
|
function addtowatchedthreads(threadid, board) {
|
|
if (document.getElementById('watchedthreadlist')) {
|
|
new Ajax.Request(ku_boardspath + '/threadwatch.php?do=addthread&board=' + board + '&threadid=' + threadid,
|
|
{
|
|
method:'get',
|
|
onSuccess: function(transport){
|
|
var response = transport.responseText || _("something went wrong (blank response)");
|
|
alert('Thread successfully added to your watch list.');
|
|
getwatchedthreads('0', board);
|
|
},
|
|
onFailure: function(){ alert(_('Something went wrong...')) }
|
|
});
|
|
}
|
|
}
|
|
|
|
function removefromwatchedthreads(threadid, board) {
|
|
if (document.getElementById('watchedthreadlist')) {
|
|
new Ajax.Request(ku_boardspath + '/threadwatch.php?do=removethread&board=' + board + '&threadid=' + threadid,
|
|
{
|
|
method:'get',
|
|
onSuccess: function(transport){
|
|
var response = transport.responseText || _("something went wrong (blank response)");
|
|
getwatchedthreads('0', board);
|
|
},
|
|
onFailure: function(){ alert(_('Something went wrong...')) }
|
|
});
|
|
}
|
|
}
|
|
|
|
function hidewatchedthreads() {
|
|
set_cookie('showwatchedthreads','0',30);
|
|
if (document.getElementById('watchedthreads')) {
|
|
document.getElementById('watchedthreads').innerHTML = _('The Watched Threads box will be hidden the next time a page is loaded.') + ' [<a href="#" onclick="javascript:showwatchedthreads();return false">' + _('undo') + '</a>]';
|
|
}
|
|
}
|
|
|
|
function showwatchedthreads() {
|
|
set_cookie('showwatchedthreads','1',30);
|
|
window.location.reload(true);
|
|
}
|
|
|
|
function checkcaptcha(formid) {
|
|
if (document.getElementById(formid)) {
|
|
if (document.getElementById(formid).captcha) {
|
|
if (document.getElementById(formid).captcha.value == '') {
|
|
alert('Please enter the captcha image text.');
|
|
document.getElementById(formid).captcha.focus();
|
|
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
// Thanks to 7chan for this
|
|
function expandimg(PN, H, F, C, G, E, A) {
|
|
element = document.getElementById("thumb" + PN);
|
|
var D = '<img src="' + F + '" alt="' + PN + '" class="thumb" width="' + E + '" height="' + A + '">';
|
|
var J = '<img src="' + F + '" alt="' + PN + '" class="thumb" height="' + A + '" width="' + E + '">';
|
|
var K = '<img src="' + F + '" alt="' + PN + '" class="thumb" height="' + A + '" width="' + E + '"/>';
|
|
var B = "<img class=thumb height=" + A + " alt=" + PN + ' src="' + F + '" width=' + E + ">";
|
|
if (element.innerHTML.toLowerCase() != D && element.innerHTML.toLowerCase() != B && element.innerHTML.toLowerCase() != J && element.innerHTML.toLowerCase() != K) {
|
|
element.innerHTML = D
|
|
} else {
|
|
element.innerHTML = '<img src="' + H + '" alt="' + PN + '" class="thumb" height="' + G + '" width="' + C + '">'
|
|
}
|
|
}
|
|
|
|
function postpreview(divid, board, parentid, message) {
|
|
if (document.getElementById(divid)) {
|
|
new Ajax.Request(ku_boardspath + '/expand.php?preview&board=' + board + '&parentid=' + parentid + '&message=' + escape(message),
|
|
{
|
|
method:'get',
|
|
onSuccess: function(transport){
|
|
var response = transport.responseText || _("something went wrong (blank response)");
|
|
document.getElementById(divid).innerHTML = response;
|
|
},
|
|
onFailure: function(){ alert(_('Something went wrong...')) }
|
|
});
|
|
}
|
|
}
|
|
|
|
function set_inputs(id) {
|
|
if (document.getElementById(id)) {
|
|
with(document.getElementById(id)) {
|
|
if(!name.value) name.value = getCookie("name");
|
|
if(!em.value) em.value = getCookie("email");
|
|
if(!postpassword.value) postpassword.value = get_password("postpassword");
|
|
}
|
|
}
|
|
}
|
|
|
|
function set_delpass(id) {
|
|
if (document.getElementById(id).postpassword) {
|
|
with(document.getElementById(id)) {
|
|
if(!postpassword.value) postpassword.value = get_password("postpassword");
|
|
}
|
|
}
|
|
}
|
|
|
|
function addreflinkpreview(e) {
|
|
var e_out;
|
|
var ie_var = "srcElement";
|
|
var moz_var = "href";
|
|
this[moz_var] ? e_out = this : e_out = e[ie_var];
|
|
ainfo = e_out.className.split('|');
|
|
|
|
var previewdiv = document.createElement('div');
|
|
|
|
previewdiv.setAttribute("id", "preview" + e_out.className);
|
|
previewdiv.setAttribute('class', 'reflinkpreview');
|
|
previewdiv.setAttribute('className', 'reflinkpreview');
|
|
if (e.pageX) {
|
|
previewdiv.style.left = '' + (e.pageX + 50) + 'px';
|
|
} else {
|
|
previewdiv.style.left = (e.clientX + 50);
|
|
}
|
|
var previewdiv_content = document.createTextNode('');
|
|
previewdiv.appendChild(previewdiv_content);
|
|
var parentelement = e_out.parentNode;
|
|
var newelement = parentelement.insertBefore(previewdiv, e_out);
|
|
new Ajax.Request(ku_boardspath + '/read.php?b=' + ainfo[1] + '&t=' + ainfo[2] + '&p=' + ainfo[3] + '&single',
|
|
{
|
|
method:'get',
|
|
onSuccess: function(transport){
|
|
var response = transport.responseText || _("something went wrong (blank response)");
|
|
newelement.innerHTML = response;
|
|
},
|
|
onFailure: function(){ alert('wut'); }
|
|
});
|
|
}
|
|
|
|
function delreflinkpreview(e) {
|
|
var e_out;
|
|
var ie_var = "srcElement";
|
|
var moz_var = "href";
|
|
this[moz_var] ? e_out = this : e_out = e[ie_var];
|
|
|
|
var previewelement = document.getElementById("preview" + e_out.className);
|
|
if (previewelement) {
|
|
previewelement.parentNode.removeChild(previewelement);
|
|
}
|
|
}
|
|
|
|
function addpreviewevents() {
|
|
var aelements = document.getElementsByTagName('a');
|
|
var aelement;
|
|
var ainfo;
|
|
for(var i=0;i<aelements.length;i++){
|
|
aelement = aelements[i];
|
|
if (aelement.className) {
|
|
if (aelement.className.substr(0, 4) == "ref|") {
|
|
if (aelement.addEventListener){
|
|
aelement.addEventListener("mouseover", addreflinkpreview, false);
|
|
aelement.addEventListener("mouseout", delreflinkpreview, false);
|
|
}
|
|
else if (aelement.attachEvent){
|
|
aelement.attachEvent("onmouseover", addreflinkpreview);
|
|
aelement.attachEvent("onmouseout", delreflinkpreview);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
function keypress(e) {
|
|
if (!e) e=window.event;
|
|
if (e.altKey) {
|
|
var docloc = document.location.toString();
|
|
if ((docloc.indexOf('catalog.html') == -1 && docloc.indexOf('/res/') == -1) || (docloc.indexOf('catalog.html') == -1 && e.keyCode == 80)) {
|
|
if (e.keyCode != 18 && e.keyCode != 16) {
|
|
if (docloc.indexOf('.html') == -1 || docloc.indexOf('board.html') != -1) {
|
|
var page = 0;
|
|
var docloc_trimmed = docloc.substr(0, docloc.lastIndexOf('/') + 1);
|
|
} else {
|
|
var page = docloc.substr((docloc.lastIndexOf('/') + 1));
|
|
page = (+page.substr(0, page.indexOf('.html')));
|
|
var docloc_trimmed = docloc.substr(0, docloc.lastIndexOf('/') + 1);
|
|
}
|
|
if (page == 0) {
|
|
var docloc_valid = docloc_trimmed;
|
|
} else {
|
|
var docloc_valid = docloc_trimmed + page + '.html';
|
|
}
|
|
|
|
if (e.keyCode == 222 || e.keyCode == 221) {
|
|
if(match=/#s([0-9])/.exec(docloc)) {
|
|
var relativepost = (+match[1]);
|
|
} else {
|
|
var relativepost = -1;
|
|
}
|
|
|
|
if (e.keyCode == 222) {
|
|
if (relativepost == -1 || relativepost == 9) {
|
|
var newrelativepost = 0;
|
|
} else {
|
|
var newrelativepost = relativepost + 1;
|
|
}
|
|
} else if (e.keyCode == 221) {
|
|
if (relativepost == -1 || relativepost == 0) {
|
|
var newrelativepost = 9;
|
|
} else {
|
|
var newrelativepost = relativepost - 1;
|
|
}
|
|
}
|
|
|
|
document.location.href = docloc_valid + '#s' + newrelativepost;
|
|
} else if (e.keyCode == 59 || e.keyCode == 219) {
|
|
if (e.keyCode == 59) {
|
|
page = page + 1;
|
|
} else if (e.keyCode == 219) {
|
|
if (page >= 1) {
|
|
page = page - 1;
|
|
}
|
|
}
|
|
|
|
if (page == 0) {
|
|
document.location.href = docloc_trimmed;
|
|
} else {
|
|
document.location.href = docloc_trimmed + page + '.html';
|
|
}
|
|
} else if (e.keyCode == 80) {
|
|
document.location.href = docloc_valid + '#postbox';
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
window.onload=function(e) {
|
|
if (getCookie("kumod") == "allboards") {
|
|
kumod_set = true
|
|
}
|
|
else if(getCookie("kumod") != "") {
|
|
var listofboards = getCookie("kumod").split('|');
|
|
var thisboard = document.getElementById("postform").board.value;
|
|
for (var cookieboard in listofboards) {
|
|
if (listofboards[cookieboard] == thisboard) {
|
|
kumod_set = true;
|
|
break
|
|
}
|
|
}
|
|
}
|
|
|
|
delandbanlinks();
|
|
addpreviewevents();
|
|
checkhighlight();
|
|
|
|
if (document.getElementById('watchedthreads')) {
|
|
var watchedthreadsdrag = new Draggable('watchedthreads', {handle:'watchedthreadsdraghandle',onEnd:function() { watchedthreadsdragend(); }})
|
|
var watchedthreadsresize = new Resizeable('watchedthreads', {resize:function() { watchedthreadsresizeend(); }})
|
|
|
|
function watchedthreadsdragend() {
|
|
set_cookie('watchedthreadstop',document.getElementById('watchedthreads').style.top,30);
|
|
set_cookie('watchedthreadsleft',document.getElementById('watchedthreads').style.left,30);
|
|
}
|
|
|
|
function watchedthreadsresizeend() {
|
|
var watchedthreadswidth = document.getElementById('watchedthreads').offsetWidth;
|
|
var watchedthreadsheight = document.getElementById('watchedthreads').offsetHeight;
|
|
|
|
set_cookie('watchedthreadswidth',watchedthreadswidth,30);
|
|
set_cookie('watchedthreadsheight',watchedthreadsheight,30);
|
|
}
|
|
}
|
|
|
|
document.onkeydown = keypress;
|
|
}
|
|
|
|
if(style_cookie) {
|
|
var cookie = getCookie(style_cookie);
|
|
var title = cookie ? cookie : get_preferred_stylesheet();
|
|
|
|
if (title != get_active_stylesheet())
|
|
set_stylesheet(title);
|
|
}
|
|
|
|
if(style_cookie_txt) {
|
|
var cookie=getCookie(style_cookie_txt);
|
|
var title=cookie?cookie:get_preferred_stylesheet();
|
|
|
|
set_stylesheet(title, true);
|
|
}
|
|
|
|
if(style_cookie_site) {
|
|
var cookie=getCookie(style_cookie_site);
|
|
var title=cookie?cookie:get_preferred_stylesheet();
|
|
|
|
set_stylesheet(title, false, true);
|
|
} |