1,966
edits
(Refactored for maintainability. Hopefully this won't break anything.) |
(Disabled the [hide heading summaries after putting them in the considerations table] functionality.) |
||
(26 intermediate revisions by the same user not shown) | |||
Line 290: | Line 290: | ||
for (var j=0; j<c.length; j++) { | for (var j=0; j<c.length; j++) { | ||
if (c[j].tagName=='A') c[j].draggable = false; // override hyperlink drag | if (c[j].tagName=='A') c[j].draggable = false; // override hyperlink drag | ||
} | |||
} | |||
} | |||
//==Considerations table== | |||
function parseConsiderations() { // init | |||
var elem = document.getElementById("considerations-table"); | |||
if (elem) { | |||
var e = document.getElementsByClassName("consideration-summary"); | |||
var str = "<table class='wikitable'>"; | |||
for (var i=0; i<e.length; i++) { | |||
var topic = e[i].previousElementSibling.getElementsByClassName("mw-headline")[0]; | |||
str += "<tr><td><a href='#"+topic.id+"'>"+topic.innerHTML+"</a></td>"; | |||
if (e[i].title=="bad") str += "<td style='background:#F65'>"; | |||
else if(e[i].title=="good")str += "<td style='background:#0FB'>"; | |||
else str += "<td>"; | |||
str += e[i].innerHTML; | |||
str += "</td></tr>"; | |||
//e[i].style.display = "none"; | |||
} | |||
str += "</table>"; | |||
elem.innerHTML = str; | |||
} | |||
} | |||
//==Text levels== | |||
function parseLevels() { // init | |||
var e = document.getElementsByClassName("levels"); | |||
for (var i=0; i<e.length; i++) { | |||
var size = parseFloat(window.getComputedStyle(e[i]).getPropertyValue("font-size")) || 16; | |||
var lines = e[i].innerHTML.split('\n'); | |||
var str = ""; | |||
for (var j=0; j<lines.length; j++) { | |||
var n=0; while (lines[j][n]==' ') n++; | |||
var k = Math.exp(-0.16*n); | |||
str += "<div style='font-size:" +(1.4*size*k+6) | |||
+"px; margin-left:"+(size*(n*0.5 + 12-12*k)) | |||
+"px; font-family:"+((n%2)?"serif":"sans") | |||
+ "; color:RGB(0,"+(255-255*k)+",0)" | |||
+ "; padding:0.15em 0; line-height:1.1em'>" | |||
+(lines[j].substr(n) || (j==lines.length-1 ? "":" "))+"</div>"; | |||
} | |||
e[i].innerHTML = str; | |||
} | |||
} | |||
//==Word changers== | |||
function changeWords(ev) { // to next option | |||
var hide = ev.currentTarget; | |||
if(!hide || !hide.classList.contains("altOuter")) return; | |||
var show = hide.nextElementSibling; | |||
if(!show || !show.classList.contains("altOuter") || !show.innerHTML) { | |||
var find = hide; | |||
do { // seek back to the first of list | |||
show = find; | |||
find = find.previousElementSibling; | |||
} while (find && find.classList.contains("altOuter")); | |||
} | |||
hide.style.display = "none"; | |||
show.style.display = "initial"; | |||
} | |||
function parseWordChangers() { // init | |||
var e = document.getElementsByClassName("altOuter"); | |||
for (var i=0; i<e.length; i++) { | |||
var str = e[i].innerHTML; | |||
if (str) { | |||
e[i].innerHTML = "↕<span class='altInner'>"+str+"</span>↕"; | |||
e[i].onclick = changeWords; | |||
} | } | ||
} | } | ||
Line 301: | Line 379: | ||
parseCalculations(); | parseCalculations(); | ||
parseFileGraphs(); | parseFileGraphs(); | ||
parseConsiderations(); | |||
parseLevels(); | |||
parseWordChangers(); |