// ==UserScript== // @name Conquer Club - Sortable Menu // @namespace dgz345 // @version 0.1 // @description enter something useful // @include http*://*.conquerclub.com/* // @exclude http://www.conquerclub.com/chat.php // @require http://code.jquery.com/jquery-latest.js // @require http://code.jquery.com/ui/1.11.0/jquery-ui.min.js // @copyright 2012+, You // ==/UserScript== GM_addStyle(".notransition {-webkit-transition: none !important;-moz-transition: none !important;-o-transition: none !important;-ms-transition: none !important;transition: none !important;}"); function getLeftMenu() { var leftColumn = document.getElementById("leftColumn"); var uls = leftColumn.getElementsByTagName("ul"); uls[0].parentNode.id="oldleftnav"; } function wrapLeftMenu() { var c = $("#oldleftnav").children(); for (var i=c.length-1;i>0;i--) { if(c[i].tagName=="H3") { var i1 = c[i]; var i2 = c[i+1]; var wrapper = document.createElement("div"); c[i].parentNode.insertBefore(wrapper,c[i]); wrapper.appendChild(i1); wrapper.appendChild(i2); wrapper.id=i1.innerHTML; } } $("#oldleftnav p").nextAll().wrapAll("
"); var container = document.getElementById("oldleftnav"); var dum = document.createElement("ul"); dum.style.display = 'none'; container.insertBefore(dum,container.firstChild); } function loadOrder() { var data=GM_getValue("sortdata",false); console.log("SM: "+data); if(data) { $.each(data,function(index,value){ $('#leftnav').append($("div[id='"+value+"']")); }); } var data2=GM_getValue("hidedata",false); console.log("SM: "+data2); if(data2) { map=JSON.parse(data2); data2=map; $.each(data2,function(index,value){ if (value==1) { $("#leftnav div[id='"+index+"'] h3").siblings().hide(); } }); } } var map = {}; function createToggle() { $("#leftnav h3").click(function() { var head = this.parentNode.id; $($(this).siblings()).slideToggle( "slow" , function() { map[head]=(map[head] == 1? "0" : "1") GM_setValue("hidedata",JSON.stringify(map)); }); }); } function initialize() { getLeftMenu(); wrapLeftMenu(); createToggle(); loadOrder(); $("#leftnav div").addClass('notransition'); $("#leftnav ul").addClass('notransition'); $("#leftnav").sortable({ axis: 'y', update: function (event, ui) { var data = $(this).sortable('toArray'); data = data.filter(function(e){return e}); GM_setValue("sortdata",data); }}); } initialize();