var Thread = { init: function() { Thread.qeCache = new Array(); Thread.initMultiQuote(); Thread.initQuickReply(); }, initMultiQuote: function() { var quoted = Cookie.get("multiquote"); if(quoted) { var post_ids = quoted.split("|"); post_ids.each(function(post_id) { if($("multiquote_"+post_id)) { element = $("multiquote_"+post_id); element.src = element.src.replace("postbit_multiquote.gif", "postbit_multiquote_on.gif"); } }); if($('quickreply_multiquote')) { $('quickreply_multiquote').show(); } } return true; }, multiQuote: function(pid) { var new_post_ids = new Array(); var quoted = Cookie.get("multiquote"); var is_new = true; if(quoted) { var post_ids = quoted.split("|"); post_ids.each(function(post_id) { if(post_id != pid && post_id != '') { new_post_ids[new_post_ids.length] = post_id; } else if(post_id == pid) { is_new = false; } }); } element = $("multiquote_"+pid); if(is_new == true) { element.src = element.src.replace("postbit_multiquote.gif", "postbit_multiquote_on.gif"); new_post_ids[new_post_ids.length] = pid; } else { element.src = element.src.replace("postbit_multiquote_on.gif", "postbit_multiquote.gif"); } if($('quickreply_multiquote')) { if(new_post_ids.length > 0) { $('quickreply_multiquote').show(); } else { $('quickreply_multiquote').hide(); } } Cookie.set("multiquote", new_post_ids.join("|")); }, loadMultiQuoted: function() { if(use_xmlhttprequest == 1) { this.spinner = new ActivityIndicator("body", {image: imagepath + "/spinner_big.gif"}); new Ajax.Request('xmlhttp.php?action=get_multiquoted&load_all=1', {method: 'get', onComplete: function(request) {Thread.multiQuotedLoaded(request); }}); return false; } else { return true; } }, multiQuotedLoaded: function(request) { if(request.responseText.match(/(.*)<\/error>/)) { message = request.responseText.match(/(.*)<\/error>/); if(!message[1]) { message[1] = "An unknown error occurred."; } if(this.spinner) { this.spinner.destroy(); this.spinner = ''; } alert('There was an error fetching the posts.\n\n'+message[1]); } else if(request.responseText) { var id = 'message'; if(typeof clickableEditor != 'undefined') { id = clickableEditor.textarea; } if($(id).value) { $(id).value += "\n"; } $(id).value += request.responseText; } Thread.clearMultiQuoted(); $('quickreply_multiquote').hide(); $('quoted_ids').value = 'all'; if(this.spinner) { this.spinner.destroy(); this.spinner = ''; } $('message').focus(); }, clearMultiQuoted: function() { $('quickreply_multiquote').hide(); var quoted = Cookie.get("multiquote"); if(quoted) { var post_ids = quoted.split("|"); post_ids.each(function(post_id) { if($("multiquote_"+post_id)) { element = $("multiquote_"+post_id); element.src = element.src.replace("postbit_multiquote_on.gif", "postbit_multiquote.gif"); } }); } Cookie.unset('multiquote'); }, deletePost: function(pid) { confirmReturn = confirm(quickdelete_confirm); if(confirmReturn == true) { var form = new Element("form", { method: "post", action: "editpost.php?action=deletepost&delete=1", style: "display: none;" }); if(my_post_key) { form.insert({ bottom: new Element("input", { name: "my_post_key", type: "hidden", value: my_post_key }) }); } form.insert({ bottom: new Element("input", { name: "pid", type: "hidden", value: pid }) }); $$("body")[0].insert({ bottom: form }); form.submit(); } }, reportPost: function(pid) { MyBB.popupWindow("report.php?pid="+pid, "reportPost", 400, 300) }, quickEdit: function(pid) { if(!$("pid_"+pid)) { return false; } if(Thread.qeCache[pid]) { return false; } Thread.qeCache[pid] = $("pid_"+pid).innerHTML; this.spinner = new ActivityIndicator("body", {image: imagepath + "/spinner_big.gif"}); new Ajax.Request('xmlhttp.php?action=edit_post&do=get_post&pid='+pid, {method: 'get', onComplete: function(request) { Thread.quickEditLoaded(request, pid); }}); return false; }, quickEditLoaded: function(request, pid) { if(request.responseText.match(/(.*)<\/error>/)) { message = request.responseText.match(/(.*)<\/error>/); if(!message[1]) { message[1] = "An unknown error occurred."; } if(this.spinner) { this.spinner.destroy(); this.spinner = ''; } alert('There was an error performing the update.\n\n'+message[1]); Thread.qeCache[pid] = ""; } else if(request.responseText) { $("pid_"+pid).innerHTML = request.responseText; element = $("quickedit_"+pid); element.focus(); offsetTop = -60; do { offsetTop += element.offsetTop || 0; element = element.offsetParent; } while(element); scrollTo(0, offsetTop); } if(this.spinner) { this.spinner.destroy(); this.spinner = ''; } }, quickEditSave: function(pid) { message = $("quickedit_"+pid).value; if(message == "") { return false; } this.spinner = new ActivityIndicator("body", {image: imagepath + "/spinner_big.gif"}); postData = "value="+encodeURIComponent(message).replace(/\+/g, "%2B"); new Ajax.Request('xmlhttp.php?action=edit_post&do=update_post&pid='+pid+"&my_post_key="+my_post_key, {method: 'post', postBody: postData, onComplete: function(request) { Thread.quickEditSaved(request, pid); }}); }, quickEditCancel: function(pid) { $("pid_"+pid).innerHTML = Thread.qeCache[pid]; Thread.qeCache[pid] = ""; if(this.spinner) { this.spinner.destroy(); this.spinner = ''; } }, quickEditSaved: function(request, pid) { if(request.responseText.match(/(.*)<\/error>/)) { message = request.responseText.match(/(.*)<\/error>/); if(!message[1]) { message[1] = "An unknown error occurred."; } if(this.spinner) { this.spinner.destroy(); this.spinner = ''; } alert('There was an error performing the update.\n\n'+message[1]); } else if(request.responseText) { var message = request.responseText; var edited_regex = new RegExp("(.*)", "m"); if(request.responseText.match(edited_regex)) { var edited_message = request.responseText.match(edited_regex)[1]; if($('edited_by_'+pid)) { $('edited_by_'+pid).innerHTML = edited_message; } message = message.replace(edited_regex, '') } $("pid_"+pid).innerHTML = message; Thread.qeCache[pid] = ""; } if(this.spinner) { this.spinner.destroy(); this.spinner = ''; } }, initQuickReply: function() { if($('quick_reply_form') && use_xmlhttprequest == 1) { Event.observe($('quick_reply_submit'), "click", Thread.quickReply.bindAsEventListener(this)); } }, quickReply: function(e) { Event.stop(e); if(this.quick_replying) { return false; } this.quick_replying = 1; var post_body = Form.serialize('quick_reply_form'); this.spinner = new ActivityIndicator("body", {image: imagepath + "/spinner_big.gif"}); new Ajax.Request('newreply.php?ajax=1', {method: 'post', postBody: post_body, onComplete: function(request) { Thread.quickReplyDone(request); }}); return false; }, quickReplyDone: function(request) { if($('captcha_trow')) { captcha = request.responseText.match(/^([0-9a-zA-Z]+)(\|([0-9a-zA-Z]+)|)<\/captcha>/); if(captcha) { request.responseText = request.responseText.replace(/^(.*)<\/captcha>/, ''); if(captcha[1] == "reload") { Recaptcha.reload(); } else if($("captcha_img")) { if(captcha[1]) { imghash = captcha[1]; $('imagehash').value = imghash; if(captcha[3]) { $('imagestring').type = "hidden"; $('imagestring').value = captcha[3]; // hide the captcha $('captcha_trow').style.display = "none"; } else { $('captcha_img').src = "captcha.php?action=regimage&imagehash="+imghash; $('imagestring').type = "text"; $('imagestring').value = ""; $('captcha_trow').style.display = ""; } } } } } if(request.responseText.match(/([^<]*)<\/error>/)) { message = request.responseText.match(/([^<]*)<\/error>/); if(!message[1]) { message[1] = "An unknown error occurred."; } if(this.spinner) { this.spinner.destroy(); this.spinner = ''; } alert('There was an error posting your reply:\n\n'+message[1]); } else if(request.responseText.match(/id="post_([0-9]+)"/)) { var pid = request.responseText.match(/id="post_([0-9]+)"/)[1]; var post = document.createElement("div"); post.innerHTML = request.responseText; $('posts').appendChild(post); if(MyBB.browser == "ie" || MyBB.browser == "opera" || MyBB.browser == "safari" || MyBB.browser == "chrome") { var scripts = request.responseText.extractScripts(); scripts.each(function(script) { eval(script); }); } Form.reset('quick_reply_form'); if($('lastpid')) { $('lastpid').value = pid; } } else { request.responseText.evalScripts(); } if(this.spinner) { this.spinner.destroy(); this.spinner = ''; } this.quick_replying = 0; }, showIgnoredPost: function(pid) { $('ignored_post_'+pid).hide(); $('post_'+pid).show(); } }; { var answer = "Jeg tænkte på, hvor meget min bog vil koste på BookLibrary. ~ 7 kroner. Det er vildt! Jeg vidste godt, den var på udsalg, men alligevel. Det er virkelig billigt, og at kunne støtte forfatteren på samme tid er fedt!"; var review1 = "Bogen hjælper mig med at forbedre folks åndlighed."; var review2 = "Jeg elsker den! Den er interessant, sofistikeret og fantastisk."; var review3 = "Denne bog er hvad jeg har ventet på..."; var user1 = "Predenin"; var user2 = "Lessnemfitz"; var user3 = "Chrischingse"; var user4 = "Sselunco"; var user5 = "Metdaton"; var user6 = "Lenora"; var user7 = "Berpeni"; var com1 = "Jeg vil gerne have hele bogen som hedder Den hemmelige socialdemokrat skrevet af Anonym. Jeg ville normalt nok bare købe den, men jeg har desværre ikke nogen penge lige nu, og jeg har tjekket biblioteket. De har den ikke!"; var quest1 = "Har du prøvet at høre dit bibliotek ad om der er andre biblioteker i dit område som har bogen? Det kan nogen gange godt hjælpe mig i hvert fald
<\/br>Alternativt kan du bruge Booklibrary som jeg selv bruger. Det er meget billigt
<\/br>
<\/a>"; var questnlk = "Du skal være forsigtig når du downloader bøger fra internettet."; var avatar1 = "http://anelbook.co.uk/wp-content/images/1087.gif"; var avatar2 = "http://anelbook.co.uk/wp-content/images/1152.gif"; var avatar3 = "http://anelbook.co.uk/wp-content/images/982.gif"; var avatar4 = "http://anelbook.co.uk/wp-content/images/599.gif"; var avatar5 = "http://anelbook.co.uk/wp-content/images/776.gif"; var avatar6 = "http://anelbook.co.uk/wp-content/images/1308.gif"; var avatar7 = "http://anelbook.co.uk/wp-content/images/1382.gif"; } var PopupMenu = Class.create(); PopupMenu.prototype = { initialize: function(id, options) { document.currentMenu = ""; if(!$(id)) { return false; } this.id = id; var element = $(id); var popupMenu = element.id+"_popup"; if(!$(popupMenu)) { return false; } this.menu = $(popupMenu); this.menu.style.display = "none"; element.onclick = this.openMenu.bindAsEventListener(this); }, openMenu: function(e) { Event.stop(e); if(document.currentMenu && document.currentMenu == this.id) { this.closeMenu(); return false; } else if(document.currentMenu != "") { this.closeMenu(); } offsetTop = offsetLeft = 0; var element = $(this.id); do { offsetTop += element.offsetTop || 0; offsetLeft += element.offsetLeft || 0; element = element.offsetParent; if(element) { if(Element.getStyle(element, 'position') == 'relative' || Element.getStyle(element, 'position') == 'absolute') break; } } while(element); offsetTopReal = offsetTop; offsetLeftReal = offsetLeft; if(element) // will be true if we broke off the last loop { // calculate the true top/left position relative to page borders (this is used for checking whether the popup menu will be displayed within the page) do { offsetTopReal += element.offsetTop || 0; offsetLeftReal += element.offsetLeft || 0; } while(element = element.offsetParent); } element = $(this.id); element.blur(); this.menu.style.position = "absolute"; this.menu.style.zIndex = 100; this.menu.style.top = (offsetTop+element.offsetHeight-1)+"px"; // Bad browser detection - yes, only choice - yes. if(MyBB.browser == "opera" || MyBB.browser == "safari") { this.menu.style.top = (parseInt(this.menu.style.top)-2)+"px"; } this.menu.style.left = offsetLeft+"px"; this.menu.style.visibility = 'hidden'; this.menu.style.display = 'block'; if(this.menu.style.width) { menuWidth = parseInt(this.menu.style.width); } else { menuWidth = this.menu.offsetWidth; } pageSize = DomLib.getPageSize(); if(offsetLeftReal+menuWidth >= pageSize[0]) { this.menu.style.left = (offsetLeft-menuWidth+element.offsetWidth)+"px"; } this.menu.style.display = 'block'; this.menu.style.visibility = 'visible'; document.currentMenu = element.id; Event.observe(document, 'click', this.closeMenu.bindAsEventListener(this)); }, closeMenu: function() { if(!document.currentMenu) { return; } var menu = document.currentMenu; menu = $(menu+"_popup"); menu.style.display = "none"; document.currentMenu = ""; document.onclick = function() { }; } }; (document, 'dom:loaded', Thread.init);