// ==UserScript== // @name Séparation sujets // @namespace Forum // @author Aversiste, MockingJay, Odul // @date 18/09/2011 // @version 1.4 // @description Separe le RP du HRP dans la section 'Derniers Sujets'. // @license WTF Public License; http://en.wikipedia.org/wiki/WTF_Public_License // @include http://www.dreadcast.net/Forum // @include http://www.dreadcast.net/Forum# // @include http://www.dreadcast.net/FAQ // @include http://www.dreadcast.net/FAQ# // @include http://www.dreadcast.net/Forum/* // @include http://www.dreadcast.net/FAQ/* // @compat Firefox, Chrome // @grant none // @downloadURL none // ==/UserScript== function isOnOrOff(node, str) { if (document.cookie.search('forum_derniers_sujets_'+str+'=on') != -1) { node.children[0].children[0].style.display = 'inline'; node.children[0].children[1].style.display = 'none'; node.children[1].style.display = 'block'; } else { node.children[0].children[0].style.display = 'none'; node.children[0].children[1].style.display = 'inline'; node.children[1].style.display = 'none'; } } function addClickEvent(node, str) { if ((navigator.userAgent).indexOf('Firefox') != -1) { node.children[0].addEventListener("click", function() { unsafeWindow.$(this).next().toggle(); unsafeWindow.$(this).find('.symbol').toggle(); unsafeWindow.writeCookie('forum_derniers_sujets_'+str, unsafeWindow.$(this).find('.symbol:first').css('display') == 'none' ? 'off' : 'on'); }, false); } else { node.children[0].setAttribute("onclick", "$(this).next().toggle();$(this).find('.symbol').toggle();writeCookie('forum_derniers_sujets_"+str+"',$(this).find('.symbol:first').css('display')=='none'?'off':'on');"); } } function sortSection(node, callback) { var lis = node.getElementsByTagName('li'); for (var i = 0; i < lis.length; ++i) { var nodeclass = lis[i].children[0].className; var id = parseInt(nodeclass.substring(2, nodeclass.indexOf(' ', 0)), 10); i = callback(node, i, id); } } function hide(node, callback) { var lis = node.getElementsByTagName('li'); for (var i = 0; i < lis.length; ++i) { var nodeclass = lis[i].children[0].className; var id = parseInt(nodeclass.substring(2, nodeclass.indexOf(' ', 0)), 10); var off = localStorage.getItem($(lis[i]).find('a').text()); if(off !== null && off == "off") i = callback(node, i, true); } } function addClickEventHide(node) { node.onclick = function(){ if(typeof localStorage!='undefined') { if(localStorage.getItem($('#nom_sujet span').text())){ localStorage.removeItem($('#nom_sujet span').text(),'off'); $('#hideTopic').text('Masquer ce sujet'); } else { localStorage.setItem($('#nom_sujet span').text(),'off'); $('#hideTopic').text('Afficher ce sujet'); } } }; } (function() { // HRP section var hrp = document.getElementById('list_derniers_sujets'); hrp.id = 'list_derniers_sujets_hrp'; hrp.children[0].children[2].innerHTML = "Derniers sujets HRP"; // All this part is only for dealing with the initial onclick event var h3 = document.createElement('h3'); h3.className = 'link'; for (var i = 0; i < 3; ++i) h3.appendChild(hrp.children[0].children[i].cloneNode(true)); hrp.replaceChild(h3, hrp.children[0]); hide(hrp, function(node,i,musthide){if(musthide){ node.children[1].removeChild(node.children[1].children[i]);--i;} return i;}); var rp = hrp.cloneNode(true); var polimp = hrp.cloneNode(true); var ecoimp = hrp.cloneNode(true); var polreb = hrp.cloneNode(true); var ecoreb = hrp.cloneNode(true); sortSection(hrp, function(node,i,id){if(id>10&&id<26){ node.children[1].removeChild(node.children[1].children[i]);--i;} return i;}); isOnOrOff(hrp, 'hrp'); // RP section rp.id = 'list_derniers_sujets_rp'; var rp_h3 = h3.cloneNode(true); rp.replaceChild(rp_h3, rp.children[0]); rp.children[0].children[2].innerHTML = "Derniers sujets RP"; sortSection(rp, function(node,i,id){if(id<=10||id>=17){ rp.children[1].removeChild(rp.children[1].children[i]);--i;} return i;}); isOnOrOff(rp, 'rp'); hrp.parentNode.insertBefore(rp, hrp); // polimp section polimp.id = 'list_derniers_sujets_polimp'; var polimp_h3 = h3.cloneNode(true); polimp.replaceChild(polimp_h3, polimp.children[0]); polimp.children[0].children[2].innerHTML = "Politique impériale"; sortSection(polimp, function(node,i,id){if(id != 17){ polimp.children[1].removeChild(polimp.children[1].children[i]);--i;} return i;}); isOnOrOff(polimp, 'polimp'); hrp.parentNode.insertBefore(polimp, rp); // ecoimp section ecoimp.id = 'list_derniers_sujets_ecoimp'; var ecoimp_h3 = h3.cloneNode(true); ecoimp.replaceChild(ecoimp_h3, ecoimp.children[0]); ecoimp.children[0].children[2].innerHTML = "Economie impériale"; sortSection(ecoimp, function(node,i,id){if(id != 18){ ecoimp.children[1].removeChild(ecoimp.children[1].children[i]);--i;} return i;}); isOnOrOff(ecoimp, 'ecoimp'); hrp.parentNode.insertBefore(ecoimp, rp); // polreb section polreb.id = 'list_derniers_sujets_polreb'; var polreb_h3 = h3.cloneNode(true); polreb.replaceChild(polreb_h3, polreb.children[0]); polreb.children[0].children[2].innerHTML = "Politique rebelle"; sortSection(polreb, function(node,i,id){if(id != 19){ polreb.children[1].removeChild(polreb.children[1].children[i]);--i;} return i;}); isOnOrOff(polreb, 'polreb'); hrp.parentNode.insertBefore(polreb, rp); // ecoreb section ecoreb.id = 'list_derniers_sujets_ecoreb'; var ecoreb_h3 = h3.cloneNode(true); ecoreb.replaceChild(ecoreb_h3, ecoreb.children[0]); ecoreb.children[0].children[2].innerHTML = "Economie rebelle"; sortSection(ecoreb, function(node,i,id){if(id != 20){ ecoreb.children[1].removeChild(ecoreb.children[1].children[i]);--i;} return i;}); isOnOrOff(ecoreb, 'ecoreb'); hrp.parentNode.insertBefore(ecoreb, rp); // New events addClickEvent(hrp, 'hrp'); addClickEvent(rp, 'rp'); addClickEvent(polimp, 'polimp'); addClickEvent(ecoimp, 'ecoimp'); addClickEvent(polreb, 'polreb'); addClickEvent(ecoreb, 'ecoreb'); $("#menu_droite > div > ul").each(function(){ if($(this).text().trim() === "") { $(this).parent().css("display", "none"); } }); //ajout fonction 'cacher' if($("#header_sujet").length){ var hideTopic = document.createElement('div'); hideTopic.id = 'hideTopic'; hideTopic.className = "link"; var headerForum = $('.list_tags')[0]; headerForum.appendChild(hideTopic); $('#hideTopic').html("Masquer ce sujet"); if(typeof localStorage!='undefined') if(localStorage.getItem($('#nom_sujet span').text())) $('#hideTopic').text('Afficher ce sujet'); $('#hideTopic').css('text-align','right'); addClickEventHide(hideTopic); } })();