1 function historyRadios(parent) {
2 var inputs = parent.getElementsByTagName('input');
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];
12 // check selection and tweak visibility/class onclick
13 function 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');
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) {
28 if (oli) { // it's the second checked radio
29 if (inputs[1].checked) {
30 if ( (typeof oli.className) != 'undefined') {
31 oli.classNameOriginal = oli.className.replace( 'selected', '' );
33 oli.classNameOriginal = '';
36 oli.className = "selected "+oli.classNameOriginal;
39 } else if (inputs[0].checked) {
42 if (inputs[0].checked) {
46 inputs[0].style.visibility = 'hidden';
49 inputs[1].style.visibility = 'hidden';
51 if ( (typeof lis[i].className) != 'undefined') {
52 lis[i].classNameOriginal = lis[i].className.replace( 'selected', '' );
54 lis[i].classNameOriginal = '';
57 lis[i].className = "selected "+lis[i].classNameOriginal;
59 } else { // no radio is checked in this row
61 inputs[0].style.visibility = 'hidden';
63 inputs[0].style.visibility = 'visible';
66 inputs[1].style.visibility = 'hidden';
68 inputs[1].style.visibility = 'visible';
70 if ( typeof lis[i].classNameOriginal != 'undefined' ) {
71 lis[i].className = lis[i].classNameOriginal;
79 // Attach event handlers to the input elements on history page
80 function histrowinit() {
81 var hf = document.getElementById('pagehistory');
83 var lis = hf.getElementsByTagName('li');
84 for (var i = 0; i < lis.length; i++) {
85 var inputs = historyRadios(lis[i]);
86 if (inputs[0] && inputs[1]) {
87 inputs[0].onclick = diffcheck;
88 inputs[1].onclick = diffcheck;
94 hookEvent("load", histrowinit);