User:SoledadKabocha/HarvErrors.js

if(window.checkLinksToCitations === undefined) window.checkLinksToCitations = true;

function checkHarv { var errorFound = false; var anchorName = 'firstHarvErr-' + Math.random.toString.substr( 2, 5 ); // 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) { var htmlToAdd1 = ' ';               if ( !errorFound && !document.getElementById( 'ca-firstharverror' ) ) { htmlToAdd1 = '' + htmlToAdd1 + ' '; addPortletLink( 'p-tb', '#' + anchorName, 'Go to first harv error', 'ca-firstharverror' ); errorFound = true; }               links[i].parentNode.innerHTML += htmlToAdd1; }   }    // second check: do CITEREF IDs have Harvard citations pointing to them? if(window.checkLinksToCitations) { cites = $('.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($(query).length == 0) { var htmlToAdd2 = ' '; if ( !errorFound && !document.getElementById( 'ca-firstharverror' ) ) { htmlToAdd2 = '' + htmlToAdd2 + ' '; addPortletLink( 'p-tb', '#' + anchorName, 'Go to first harv error', 'ca-firstharverror' ); errorFound = true; }               cites[i].innerHTML += htmlToAdd2; }       }    } }

$(document).ready(checkHarv);