// ==UserScript==
// @name           xkcdClickForNext
// @namespace      http://www.alexanderdickson.com
// @include        http://xkcd.com/*
// ==/UserScript==

// http://www.alexanderdickson.com/projects/greasemonkey-scripts/xkcd-click-for-next/

// http://snipplr.com/view/1696/get-elements-by-class-name/
function getElementsByClassName(classname, node)  {
    if(!node) node = document.getElementsByTagName("body")[0];
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
    for(var i=0,j=els.length; i<j; i++)
        if(re.test(els[i].className))a.push(els[i]);
    return a;
}


var middleContainer = document.getElementById('middleContent');

var menuContainers = getElementsByClassName('menuCont', middleContainer);

var nextComicHref =  menuContainers[0].getElementsByTagName('a')[3].href;

var middleContainerImgs = middleContainer.getElementsByTagName('img');
var comic = middleContainerImgs[0];

var comicParent = comic.parentNode;

// Handle comics that are already linked
if (comicParent.tagName === 'A') {
    var oldHref = comicParent.href;
    comic = comic.cloneNode(true);
    comicParent.parentNode.insertBefore(comic, comicParent);
    comicParent.parentNode.removeChild(comicParent);

    var oldAnchor = document.createElement('a');
    oldAnchor.href = oldHref;
    oldAnchor.innerHTML = 'Original link';
    oldAnchor.style.textAlign = 'center';
    oldAnchor.style.display = 'block';
    comic.parentNode.insertBefore(oldAnchor, comic.nextSibling);
};

var anchor = document.createElement('a');
anchor.appendChild(comic.cloneNode(true));
comic.parentNode.replaceChild(anchor, comic);

anchor.href = nextComicHref;

