Cheggit - Add Prev/Next Navigation

By Signe Last update Dec 3, 2009 — Installed 308 times.

There are 1 previous version of this script.

// ==UserScript==
// @name            Cheggit - Add Prev/Next Navigation
// @description     Adds Prev and Next links to cheggit browse pages
// @namespace       http://www.cothlamadh.net/greasemonkey
// @include         http://cheggit.net/browsetorrents.php*
// @author          Signe - http://www.cothlamadh.net/
// ==/UserScript==

GM_addStyle('div #torrentPagination .page, div #torrentPagination span { margin: 0 5px; }');
GM_addStyle('.breakrow { display: none; }');

var currentPage = getQueryVariable('p');

// If we're not on a page, we're on page 1
if (currentPage == null) {
    currentPage = 1;
}

var prevPage = Number(currentPage) - 1;
var nextPage = Number(currentPage) + 1;

var pagination = document.getElementsByTagName('tr');

for (var i = 0; i < pagination.length; i++) {
    if (pagination[i].className == 'pagination') {
        var pageCol = pagination[i].childNodes[1];
        for (var j = 0; j < pageCol.childNodes.length; j++) {
            if (pageCol.childNodes[j].nodeName == '#text' ||
                pageCol.childNodes[j].innerHTML == '&gt;' ||
                pageCol.childNodes[j].innerHTML == '&gt;&gt;') {
                pageCol.removeChild(pageCol.childNodes[j]);
                j--;
            }
        }

        if (prevPage) {
            var prevLink = document.createElement('a');
                prevLink.href = replaceQueryVariable('p', prevPage);
                prevLink.className = 'page';
                prevLink.innerHTML = '&lt;- Prev';
    
            pageCol.insertBefore(prevLink, pageCol.childNodes[0]);
        }
        var nextLink = document.createElement('a');
            nextLink.href = replaceQueryVariable('p', nextPage);
            nextLink.className = 'page';
            nextLink.innerHTML = 'Next -&gt;';
        pageCol.appendChild(nextLink);
    }
}

function getQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split("=");
        if (pair[0] == variable) {
            return pair[1];
        }
    }
    return null;
}

function replaceQueryVariable(variable, value) {
    var query = window.location.search.substring(1);
    var vars = query.split("&");
    var newQueryString = "?";
    var found = false;
    var href = document.location.href;
    
    for (var i = 0; i < vars.length; i++) {
        if (vars[i] == "") {
            continue;
        }
        var pair = vars[i].split("=");
        if (pair[0] == variable) {
            pair[1] = value;
            found = true;
        }
        newQueryString += pair.join('=') + '&';
    }
    if (!found) {
        newQueryString += variable + '=' + value + '&';
    }
    newQueryString = newQueryString.slice(0, -1);
    if (document.location.search == "") {
        href = href + newQueryString;
    } else {
        href = href.replace(document.location.search, newQueryString);
    }
    return href;
}