User:Gadget850/HarvErrors.js

if(window.checkLinksToCitations === undefined)    window.checkLinksToCitations = true;jQuery(document).ready(function($) {    // first check: do links in Harvard citations point to a valid citation?    links = document.links;    for (i=0; i < links.length; i++)    {        href = links[i].getAttribute('href');        if (href.indexOf('#CITEREF') === 0)            if (document.getElementById(href.substring(1)) === null)                links[i].parentNode.innerHTML +=                    " <span class=error>Harv error: link from <code>" +                    href +                    "</code> doesn't point to any citation.</span>";     }    // second check: do CITEREF IDs have Harvard citations pointing to them?    if(window.checkLinksToCitations) {        cites = jQuery('.citation');        for(i=0; i < cites.length; i++) {            id = cites[i].getAttribute('id');            // we only need to check citations with a            if(!id || id.indexOf('CITEREF') !== 0)                continue;            // don't do cites that are inside a ref            parentid = cites[i].parentNode.parentNode.getAttribute('id');            if(parentid && parentid.indexOf('cite_note') === 0)                continue;            // check for links to this citation            query = 'a[href|="#' + id + '"]';            if(jQuery(query).length === 0) {                cites[i].innerHTML +=                    " <span class=error>Harv error: This citation has an anchor named <code>" + id + "</code> but there is no link to it.</span>";            }        }    }});