Difference between revisions of "MediaWiki:Common.js"
From EG1004 Lab Manual
Line 10: | Line 10: | ||
} | } | ||
return arrKmapsTBH; | return arrKmapsTBH; | ||
} | |||
function highlightCells(kmap, i1, j1, i2, j2) { | |||
for (var i=i1;i<=i2;i=(i+1)%2) | |||
for (var j=j1;j<=j2;j=(j+1)%4) | |||
kmap[i][j].style.border = "3px solid red"; | |||
} | } | ||
Line 23: | Line 29: | ||
//check for 8-cell highlight | //check for 8-cell highlight | ||
var | var highlight = true; | ||
for (i in kmap) { | for (i in kmap) { | ||
for (j in kmap[i]) { | for (j in kmap[i]) { | ||
if (kmap[i][j].innerHTML == "0") | if ((kmap[i][j].innerHTML == "0") || (kmap[i][j].innerHTML == "0\n")) | ||
highlight = false; | |||
} | } | ||
} | } | ||
if (highlight) highlightCells(kmap, 0, 0, 1, 3); | |||
//check for 4-cell highlight | //check for 4-cell highlight | ||
for (i in kmap) { | for (i in kmap) { | ||
for (j in kmap[i]) { | for (j in kmap[i]) { | ||
if ((kmap[i][j].innerHTML == "1") || (kmap[i][j].innerHTML == "1\n")) { | if ((kmap[i][j].innerHTML == "1") || (kmap[i][j].innerHTML == "1\n")) { | ||
kmap[i][j]. | if ((kmap[i][j].borderTopColor == "red") || (kmap[i][j].borderBottomColor == "red")) | ||
continue; | |||
//check row | |||
highlight = true; | |||
for (k in kmap[i]) { | |||
if ((kmap[i][k].innerHTML == "0") || (kmap[i][k].innerHTML == "0\n")) | |||
highlight = false; | |||
} | |||
if (highlight) highlightCells(kmap, i, 0, i, 3); | |||
else { | |||
//check forward square | |||
highlight = true; | |||
if ((kmap[i][(j+1)%4].innerHTML == "0") || (kmap[i][(j+1)%4].innerHTML == "0\n")) | |||
highlight = false; | |||
if ((kmap[(i+1)%2][j].innerHTML == "0") || (kmap[(i+1)%2][j].innerHTML == "0\n")) | |||
highlight = false; | |||
if ((kmap[(i+1)%2][(j+1)%4].innerHTML == "0") || (kmap[(i+1)%2][(j+1)%4].innerHTML == "0\n")) | |||
highlight = false; | |||
if (highlight) highlightCells(kmap, 0, j, 1, (j+1)%4); | |||
else if (j > 0) { | |||
highlight = true; | |||
if ((kmap[i][j-1].innerHTML == "0") || (kmap[i][j-1].innerHTML == "0\n")) | |||
highlight = false; | |||
if ((kmap[(i+1)%2][j].innerHTML == "0") || (kmap[(i+1)%2][j].innerHTML == "0\n")) | |||
highlight = false; | |||
if ((kmap[(i+1)%2][j-1].innerHTML == "0") || (kmap[(i+1)%2][j-1].innerHTML == "0\n")) | |||
highlight = false; | |||
if (highlight) highlightCells(kmap, 0, j, 1, j-1); | |||
} | |||
} | |||
} | } | ||
} | } | ||
} | } | ||
} | } | ||
function | function highlight_kmap_0() { | ||
var | var kmapTable = document.getElementById("kmap_0"); | ||
for (var i | var kmap = new Array(); | ||
for (var i=2;i<4;i++){ | |||
kmapRow = new Array(); | |||
for (var j=2;j<6;j++) { | |||
kmapRow.push(kmapTable.rows[i].cells[j]); | |||
} | |||
kmap.push(kmapRow); | |||
} | } | ||
kmap[0][1].style.borderTop = "3px solid red"; | |||
kmap[0][1].style.borderLeft = "3px solid red"; | |||
kmap[1][1].style.borderLeft = "3px solid red"; | |||
kmap[1][1].style.borderBottom = "3px solid red"; | |||
kmap[0][2].style.borderTop = "3px solid red"; | |||
kmap[0][2].style.borderRight = "3px solid red"; | |||
kmap[1][2].style.borderRight = "3px solid red"; | |||
kmap[1][2].style.borderBottom = "3px solid red"; | |||
kmap[0][2].style.borderTop = "3px solid red"; | |||
kmap[0][2].style.borderLeft = "3px solid red"; | |||
kmap[0][2].style.borderBottom = "3px solid red"; | |||
kmap[0][3].style.borderTop = "3px solid red"; | |||
kmap[0][3].style.borderRight = "3px solid red"; | |||
kmap[0][3].style.borderBottom = "3px solid red"; | |||
} | } | ||
addOnloadHook( | addOnloadHook( highlight_kmap_0 ); |
Revision as of 05:57, 4 August 2010
/* Any JavaScript here will be loaded for all users on every page load. */ function getKmaps() { var arrKmapsTBH = new Array(); var arrTables = document.getElementsByTagName("table"); for (var i in arrTables) { if (arrTables[i].className == "kmap km_highlight_8ls") { arrKmapsTBH.push(arrTables[i]); } } return arrKmapsTBH; } function highlightCells(kmap, i1, j1, i2, j2) { for (var i=i1;i<=i2;i=(i+1)%2) for (var j=j1;j<=j2;j=(j+1)%4) kmap[i][j].style.border = "3px solid red"; } function highlightKmap(kmapTable) { var kmap = new Array(); for (var i=2;i<4;i++){ kmapRow = new Array(); for (var j=2;j<6;j++) { kmapRow.push(kmapTable.rows[i].cells[j]); } kmap.push(kmapRow); } //check for 8-cell highlight var highlight = true; for (i in kmap) { for (j in kmap[i]) { if ((kmap[i][j].innerHTML == "0") || (kmap[i][j].innerHTML == "0\n")) highlight = false; } } if (highlight) highlightCells(kmap, 0, 0, 1, 3); //check for 4-cell highlight for (i in kmap) { for (j in kmap[i]) { if ((kmap[i][j].innerHTML == "1") || (kmap[i][j].innerHTML == "1\n")) { if ((kmap[i][j].borderTopColor == "red") || (kmap[i][j].borderBottomColor == "red")) continue; //check row highlight = true; for (k in kmap[i]) { if ((kmap[i][k].innerHTML == "0") || (kmap[i][k].innerHTML == "0\n")) highlight = false; } if (highlight) highlightCells(kmap, i, 0, i, 3); else { //check forward square highlight = true; if ((kmap[i][(j+1)%4].innerHTML == "0") || (kmap[i][(j+1)%4].innerHTML == "0\n")) highlight = false; if ((kmap[(i+1)%2][j].innerHTML == "0") || (kmap[(i+1)%2][j].innerHTML == "0\n")) highlight = false; if ((kmap[(i+1)%2][(j+1)%4].innerHTML == "0") || (kmap[(i+1)%2][(j+1)%4].innerHTML == "0\n")) highlight = false; if (highlight) highlightCells(kmap, 0, j, 1, (j+1)%4); else if (j > 0) { highlight = true; if ((kmap[i][j-1].innerHTML == "0") || (kmap[i][j-1].innerHTML == "0\n")) highlight = false; if ((kmap[(i+1)%2][j].innerHTML == "0") || (kmap[(i+1)%2][j].innerHTML == "0\n")) highlight = false; if ((kmap[(i+1)%2][j-1].innerHTML == "0") || (kmap[(i+1)%2][j-1].innerHTML == "0\n")) highlight = false; if (highlight) highlightCells(kmap, 0, j, 1, j-1); } } } } } } function highlight_kmap_0() { var kmapTable = document.getElementById("kmap_0"); var kmap = new Array(); for (var i=2;i<4;i++){ kmapRow = new Array(); for (var j=2;j<6;j++) { kmapRow.push(kmapTable.rows[i].cells[j]); } kmap.push(kmapRow); } kmap[0][1].style.borderTop = "3px solid red"; kmap[0][1].style.borderLeft = "3px solid red"; kmap[1][1].style.borderLeft = "3px solid red"; kmap[1][1].style.borderBottom = "3px solid red"; kmap[0][2].style.borderTop = "3px solid red"; kmap[0][2].style.borderRight = "3px solid red"; kmap[1][2].style.borderRight = "3px solid red"; kmap[1][2].style.borderBottom = "3px solid red"; kmap[0][2].style.borderTop = "3px solid red"; kmap[0][2].style.borderLeft = "3px solid red"; kmap[0][2].style.borderBottom = "3px solid red"; kmap[0][3].style.borderTop = "3px solid red"; kmap[0][3].style.borderRight = "3px solid red"; kmap[0][3].style.borderBottom = "3px solid red"; } addOnloadHook( highlight_kmap_0 );