mw.loader.load( "/w/index.php?title=User:Fred_Gandt/sectionFooters.css&action=raw&ctype=text/css", "text/css" );
$( document ).ready( () => {
"use strict";
let cntnt = document.querySelector( "#mw-content-text .mw-parser-output" );
if ( !cntnt ) return;
let hdrs = [ "h1", "h2", "h3", "h4", "h5", "h6" ],
sctns = cntnt.querySelectorAll( hdrs.join( "," ) ),
fgse = "fg-section-end",
i = 0, ii = 0,
sctn, sctncln, nxtsctn, sctnspn, sctntxt, prvssctn, trmntr;
while ( sctn = sctns[ i++ ] ) {
if ( sctn.parentElement === cntnt && sctn.querySelector( "span.mw-editsection" ) && sctn.firstElementChild ) {
sctncln = sctn.cloneNode( true );
sctncln.setAttribute( "class", fgse );
sctncln.removeAttribute( "id" );
sctnspn = sctncln.querySelector( "span.mw-headline" );
sctncln.replaceChild( document.createTextNode( sctnspn.textContent ), sctnspn );
nxtsctn = sctns[ ii = i ];
while ( nxtsctn && nxtsctn.tagName > sctncln.tagName ) {
nxtsctn = sctns[ ++ii ];
}
if ( nxtsctn ) {
while ( ~hdrs.indexOf( ( prvssctn = nxtsctn.previousElementSibling ).tagName.toLowerCase() ) ) {
if ( !prvssctn.classList.contains( fgse ) ) break;
nxtsctn = prvssctn;
}
nxtsctn.parentElement.insertBefore( sctncln, nxtsctn );
} else {
if ( trmntr ) cntnt.insertBefore( sctncln, trmntr );
else {
cntnt.appendChild( sctncln );
trmntr = sctncln;
}
}
}
}
} );