// ==UserScript== // @name Filter Ideabox // @namespace PXgamer // @version 0.2 // @description Sort ideabox ideas by different methods // @author PXgamer // @include *kat.cr/ideabox/* // @grant none // @downloadURL none // ==/UserScript== /*jshint multistr: true */ (function() { 'use strict'; $('.buttonsline.floatleft').append(' '); $('.ideaBox').each(function(){ var html = $(this).html(); var title = $('.ideaBody h3 span', $(this)).text(); var age = $('.ideaBody div.greyText', $(this)).split('')[7]; var views = $('.ideaBody div.greyText', $(this)).split('')[3]; rows.push({"title":title,"age":age,"views":views,"html":html}); }); $('#sortIdeas').on('click', function() { var ideaSortType = $('#sortIdeas-select').val(); switch (ideaSortType) { case 'all': $('div.ideaBox').show(); break; case 'az': // Sort alphabetically (A-Z) $('div.ideaBox').show(); sortIdeas('title', 'desc'); break; case 'no': // Sort by age (Newest to Oldest) $('div.ideaBox').show(); sortIdeas('age', 'desc'); break; case 'views': // Sort by views (High to Low) $('div.ideaBox').show(); sortIdeas('views', 'desc'); break; default: $('div.ideaBox').show(); break; } }); function sortByKey(array, key) { return array.sort(function(a, b) { var x = a[key]; var y = b[key]; if (typeof x == "string") { x = x.toLowerCase(); y = y.toLowerCase(); } return ((x < y) ? -1 : ((x > y) ? 1 : 0)); }); } function sortIdeas(sortName, sortType) { sortByKey(rows, sortName); //rows.reverse(); $('div.ideaBox').remove(); for (var i=0;i'+rows[i].html+''); } } })();