clean up 2011 files
[libreplanet-static.git] / 2011 / skins / common / history.js
CommitLineData
64a19c3d
ML
1function historyRadios(parent) {
2 var inputs = parent.getElementsByTagName('input');
3 var radios = [];
4 for (var i = 0; i < inputs.length; i++) {
5 if (inputs[i].name == "diff" || inputs[i].name == "oldid") {
6 radios[radios.length] = inputs[i];
7 }
8 }
9 return radios;
10}
11
12// check selection and tweak visibility/class onclick
13function diffcheck() {
14 var dli = false; // the li where the diff radio is checked
15 var oli = false; // the li where the oldid radio is checked
16 var hf = document.getElementById('pagehistory');
17 if (!hf) {
18 return true;
19 }
20 var lis = hf.getElementsByTagName('li');
21 for (var i=0;i<lis.length;i++) {
22 var inputs = historyRadios(lis[i]);
23 if (inputs[1] && inputs[0]) {
24 if (inputs[1].checked || inputs[0].checked) { // this row has a checked radio button
25 if (inputs[1].checked && inputs[0].checked && inputs[0].value == inputs[1].value) {
26 return false;
27 }
28 if (oli) { // it's the second checked radio
29 if (inputs[1].checked) {
30 oli.className = "selected";
31 return false;
32 }
33 } else if (inputs[0].checked) {
34 return false;
35 }
36 if (inputs[0].checked) {
37 dli = lis[i];
38 }
39 if (!oli) {
40 inputs[0].style.visibility = 'hidden';
41 }
42 if (dli) {
43 inputs[1].style.visibility = 'hidden';
44 }
45 lis[i].className = "selected";
46 oli = lis[i];
47 } else { // no radio is checked in this row
48 if (!oli) {
49 inputs[0].style.visibility = 'hidden';
50 } else {
51 inputs[0].style.visibility = 'visible';
52 }
53 if (dli) {
54 inputs[1].style.visibility = 'hidden';
55 } else {
56 inputs[1].style.visibility = 'visible';
57 }
58 lis[i].className = "";
59 }
60 }
61 }
62 return true;
63}
64
65// page history stuff
66// attach event handlers to the input elements on history page
67function histrowinit() {
68 var hf = document.getElementById('pagehistory');
69 if (!hf) {
70 return;
71 }
72 var lis = hf.getElementsByTagName('li');
73 for (var i = 0; i < lis.length; i++) {
74 var inputs = historyRadios(lis[i]);
75 if (inputs[0] && inputs[1]) {
76 inputs[0].onclick = diffcheck;
77 inputs[1].onclick = diffcheck;
78 }
79 }
80 diffcheck();
81}
82
83hookEvent("load", histrowinit);