var image_mode = 0; var normal_dom, table_dom; function add_panel(after) { var nav_top = $(after); if (nav_top.length === 0) return; nav_top = nav_top[0]; var tab_bar = $('
'); var tab; tab = $(''); tab.on("change", tab_handler); tab = $('').prepend(tab); tab_bar.append(tab); tab = $(''); tab.on("change", tab_handler); tab = $('').prepend(tab); tab_bar.append(tab); tab_bar.insertAfter(nav_top); } function tab_handler(ev) { var current_el = $(this); if (!current_el.prop('checked')) return; var new_mode = parseInt(current_el.val(), 10); if (new_mode === image_mode) return; image_mode = new_mode; make_normal_dom(); make_table_dom(); switch(new_mode) { case 0: $('#posts-table').replaceWith(normal_dom); break; case 1: $('#posts').replaceWith(table_dom); break; } } function make_normal_dom() { if (typeof normal_dom === 'undefined') { normal_dom = $('#posts').clone(true); } } function make_table_dom() { if (typeof table_dom !== 'undefined') return; table_dom = $('
'); $('#posts > .post > .image > a').each( function(){ table_dom.append( $(this).clone().attr('target', '_blank') ); } ); } function moveCaretToEnd(el) { if (typeof el.selectionStart == "number") { el.selectionStart = el.selectionEnd = el.value.length; } else if (typeof el.createTextRange != "undefined") { el.focus(); var range = el.createTextRange(); range.collapse(false); range.select(); } } function addQuickReply(postId) { var textToAdd = '>>' + postId + '\n\n'; var textAreaId = '#id_text'; $(textAreaId).val($(textAreaId).val()+ textToAdd); var textarea = document.getElementById('id_text'); $(textAreaId).focus(); moveCaretToEnd(textarea); $("html, body").animate({ scrollTop: $(textAreaId).offset().top }, "slow"); } function addRefLinkMap() { var postByNum = [], refMap = []; $('.post').each(function() { var self = $(this); var postNum = self.attr('id'); //add post by id postByNum[postNum] = self; //add ref link self.find('p').children('a').each(function() { if($(this).text().indexOf('>>') == 0) { var refNum = $(this).text().match(/\d+/); if(postByNum[refNum]) { if(!refMap[refNum]) refMap[refNum] = []; //if !exist if((',' + refMap[refNum].toString() + ',').indexOf(',' + postNum + ',') < 0) { refMap[refNum].push(postNum); }; } } }); }); for(var pNum in refMap) { if(typeof refMap[pNum] === 'object') { var data = 'Ответы:' + refMap[pNum].toString().replace(/(\d+)/g, ' >>$1'); //append refmap panel if(!$("#refmap_"+pNum).length) { $('#'+pNum+'').find('.message').after($('
'+data+'
')); } } } } $(document).ready(function(){ add_panel('.navigation_panel'); addRefLinkMap(); });