123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- function historyRadios(parent) {
- var inputs = parent.getElementsByTagName('input');
- var radios = [];
- for (var i = 0; i < inputs.length; i++) {
- if (inputs[i].name == "diff" || inputs[i].name == "oldid") {
- radios[radios.length] = inputs[i];
- }
- }
- return radios;
- }
- // check selection and tweak visibility/class onclick
- function diffcheck() {
- var dli = false; // the li where the diff radio is checked
- var oli = false; // the li where the oldid radio is checked
- var hf = document.getElementById('pagehistory');
- if (!hf) {
- return true;
- }
- var lis = hf.getElementsByTagName('li');
- for (var i=0;i<lis.length;i++) {
- var inputs = historyRadios(lis[i]);
- if (inputs[1] && inputs[0]) {
- if (inputs[1].checked || inputs[0].checked) { // this row has a checked radio button
- if (inputs[1].checked && inputs[0].checked && inputs[0].value == inputs[1].value) {
- return false;
- }
- if (oli) { // it's the second checked radio
- if (inputs[1].checked) {
- if ( (typeof oli.className) != 'undefined') {
- oli.classNameOriginal = oli.className.replace( 'selected', '' );
- } else {
- oli.classNameOriginal = '';
- }
-
- oli.className = "selected "+oli.classNameOriginal;
- return false;
- }
- } else if (inputs[0].checked) {
- return false;
- }
- if (inputs[0].checked) {
- dli = lis[i];
- }
- if (!oli) {
- inputs[0].style.visibility = 'hidden';
- }
- if (dli) {
- inputs[1].style.visibility = 'hidden';
- }
- if ( (typeof lis[i].className) != 'undefined') {
- lis[i].classNameOriginal = lis[i].className.replace( 'selected', '' );
- } else {
- lis[i].classNameOriginal = '';
- }
-
- lis[i].className = "selected "+lis[i].classNameOriginal;
- oli = lis[i];
- } else { // no radio is checked in this row
- if (!oli) {
- inputs[0].style.visibility = 'hidden';
- } else {
- inputs[0].style.visibility = 'visible';
- }
- if (dli) {
- inputs[1].style.visibility = 'hidden';
- } else {
- inputs[1].style.visibility = 'visible';
- }
- lis[i].className = lis[i].classNameOriginal;
- }
- }
- }
- return true;
- }
- // page history stuff
- // attach event handlers to the input elements on history page
- function histrowinit() {
- var hf = document.getElementById('pagehistory');
- if (!hf) {
- return;
- }
- var lis = hf.getElementsByTagName('li');
- for (var i = 0; i < lis.length; i++) {
- var inputs = historyRadios(lis[i]);
- if (inputs[0] && inputs[1]) {
- inputs[0].onclick = diffcheck;
- inputs[1].onclick = diffcheck;
- }
- }
- diffcheck();
- }
- hookEvent("load", histrowinit);
|