| // ==UserScript==␊ | 
| // @name         localbitcoins filter␊ | 
| // @namespace    https://srchub.org␊ | 
| // @version      0.2␊ | 
| // @description  Adds some filters and sorting to localbitcoins␊ | 
| // @author       Nathan Adams <adamsna@datanethost.net>␊ | 
| // @match        https://localbitcoins.com/*␊ | 
| // @grant        none␊ | 
| // ==/UserScript==␊ | 
| // License: MIT␊ | 
| //␊ | 
| // If you feel this script was useful please send BTC donations to this address: ␊ | 
| // 1kqfr9hYPHTwGdMev9b538sSeyLa5h4FR␊ | 
| //␊ | 
| // Mirrors: ␊ | 
| // https://github.com/nadams810/localbitcoinsfilter␊ | 
| // https://srchub.org/p/localbitcoinsfilter/␊ | 
| ␊ | 
| /**␊ | 
| * jQuery.fn.sortElements␊ | 
| * --------------␊ | 
| * @author James Padolsey (http://james.padolsey.com)␊ | 
| * @version 0.11␊ | 
| * @updated 18-MAR-2010␊ | 
| * --------------␊ | 
| * @param Function comparator:␊ | 
| *   Exactly the same behaviour as [1,2,3].sort(comparator)␊ | 
| *   ␊ | 
| * @param Function getSortable␊ | 
| *   A function that should return the element that is␊ | 
| *   to be sorted. The comparator will run on the␊ | 
| *   current collection, but you may want the actual␊ | 
| *   resulting sort to occur on a parent or another␊ | 
| *   associated element.␊ | 
| *   ␊ | 
| *   E.g. $('td').sortElements(comparator, function(){␊ | 
| *      return this.parentNode; ␊ | 
| *   })␊ | 
| *   ␊ | 
| *   The <td>'s parent (<tr>) will be sorted instead␊ | 
| *   of the <td> itself.␊ | 
| */␊ | 
| jQuery.fn.sortElements = (function(){␊ | 
| ␊ | 
| var sort = [].sort;␊ | 
| ␊ | 
| return function(comparator, getSortable) {␊ | 
| ␊ | 
| getSortable = getSortable || function(){return this;};␊ | 
| ␊ | 
| var placements = this.map(function(){␊ | 
| ␊ | 
| var sortElement = getSortable.call(this),␊ | 
| parentNode = sortElement.parentNode,␊ | 
| ␊ | 
| // Since the element itself will change position, we have␊ | 
| // to have some way of storing it's original position in␊ | 
| // the DOM. The easiest way is to have a 'flag' node:␊ | 
| nextSibling = parentNode.insertBefore(␊ | 
| document.createTextNode(''),␊ | 
| sortElement.nextSibling␊ | 
| );␊ | 
| ␊ | 
| return function() {␊ | 
| ␊ | 
| if (parentNode === this) {␊ | 
| throw new Error(␊ | 
| "You can't sort elements if any one is a descendant of another."␊ | 
| );␊ | 
| }␊ | 
| ␊ | 
| // Insert before flag:␊ | 
| parentNode.insertBefore(this, nextSibling);␊ | 
| // Remove flag:␊ | 
| parentNode.removeChild(nextSibling);␊ | 
| ␊ | 
| };␊ | 
| ␊ | 
| });␊ | 
| ␊ | 
| return sort.call(this, comparator).each(function(i){␊ | 
| placements[i].call(getSortable.call(this));␊ | 
| });␊ | 
| ␊ | 
| };␊ | 
| ␊ | 
| })();␊ | 
| ␊ | 
| ␊ | 
| $(".pagination-block").first().after('Hide Recent <input type="checkbox" id="hideRecent"> | Hide Offline <input type="checkbox" id="hideOffline">');␊ | 
| ␊ | 
| $("#hideRecent").click(function(e) {␊ | 
| $(".online-status-recent").closest("tr").toggle();  ␊ | 
| });␊ | 
| ␊ | 
| $("#hideOffline").click(function(e) {␊ | 
| $(".online-status-offline").closest("tr").toggle();  ␊ | 
| });␊ | 
| ␊ | 
| var table = $('.table-bitcoins').first();␊ | 
| ␊ | 
| $('.header-price').first()␊ | 
| .wrapInner('<span title="sort this column"/>')␊ | 
| .each(function(){␊ | 
| ␊ | 
| var th = $(this),␊ | 
| thIndex = th.index(),␊ | 
| inverse = false;␊ | 
| ␊ | 
| th.click(function(){␊ | 
| ␊ | 
| table.find('td').filter(function(){␊ | 
| ␊ | 
| return $(this).index() === thIndex;␊ | 
| ␊ | 
| }).sortElements(function(a, b){␊ | 
| return Number(jQuery.trim($.text([a])).split(" ")[0]) > Number(jQuery.trim($.text([b])).split(" ")[0]) ?␊ | 
| inverse ? -1 : 1␊ | 
| : inverse ? 1 : -1;␊ | 
| ␊ | 
| }, function(){␊ | 
| ␊ | 
| // parentNode is the element we want to move␊ | 
| return this.parentNode; ␊ | 
| ␊ | 
| });␊ | 
| ␊ | 
| inverse = !inverse;␊ | 
| ␊ | 
| });␊ | 
| ␊ | 
| });␊ | 
| ␊ | 
| $(".header-price").first().hover(function() {␊ | 
| $(this).css('cursor','pointer');␊ | 
| }, function() {␊ | 
| $(this).css('cursor','auto');␊ | 
| });␊ | 
| $('.header-price').click();␊ | 
| if (window.location.href.indexOf("sell") > -1) {␊ | 
| $('.header-price').click();␊ | 
| } |