typos
[mediawiki.git] / skins / common / history.js
blob75e0d05a00a1a90a4f8bc6cf4692c1744aec86a6
1 function 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;
12 function deleteCheck(parent) {
13         var inputs = parent.getElementsByTagName('input');
14         for (var i = 0; i < inputs.length; i++) {
15                 if (inputs[i].name == "showhiderevisions") {
16                         return inputs[i];
17                 }
18         }
19         return null;
22 // check selection and tweak visibility/class onclick
23 function diffcheck() {
24         var dli = false; // the li where the diff radio is checked
25         var oli = false; // the li where the oldid radio is checked
26         var hf = document.getElementById('pagehistory');
27         if (!hf) {
28                 return true;
29         }
30         var lis = hf.getElementsByTagName('li');
31         for (var i=0;i<lis.length;i++) {
32                 var inputs = historyRadios(lis[i]);
33                 if (inputs[1] && inputs[0]) {
34                         if (inputs[1].checked || inputs[0].checked) { // this row has a checked radio button
35                                 if (inputs[1].checked && inputs[0].checked && inputs[0].value == inputs[1].value) {
36                                         return false;
37                                 }
38                                 if (oli) { // it's the second checked radio
39                                         if (inputs[1].checked) {
40                                                 if ( (typeof oli.className) != 'undefined') {
41                                                         oli.classNameOriginal = oli.className.replace( 'selected', '' );
42                                                 } else {
43                                                         oli.classNameOriginal = '';
44                                                 }
45                                                 
46                                                 oli.className = "selected "+oli.classNameOriginal;
47                                                 return false;
48                                         }
49                                 } else if (inputs[0].checked) {
50                                         return false;
51                                 }
52                                 if (inputs[0].checked) {
53                                         dli = lis[i];
54                                 }
55                                 if (!oli) {
56                                         inputs[0].style.visibility = 'hidden';
57                                 }
58                                 if (dli) {
59                                         inputs[1].style.visibility = 'hidden';
60                                 }
61                                 if ( (typeof lis[i].className) != 'undefined') {
62                                         lis[i].classNameOriginal = lis[i].className.replace( 'selected', '' );
63                                 } else {
64                                         lis[i].classNameOriginal = '';
65                                 }
66                                                 
67                                 lis[i].className = "selected "+lis[i].classNameOriginal;
68                                 oli = lis[i];
69                         }  else { // no radio is checked in this row
70                                 if (!oli) {
71                                         inputs[0].style.visibility = 'hidden';
72                                 } else {
73                                         inputs[0].style.visibility = 'visible';
74                                 }
75                                 if (dli) {
76                                         inputs[1].style.visibility = 'hidden';
77                                 } else {
78                                         inputs[1].style.visibility = 'visible';
79                                 }
80                                 if ( typeof lis[i].classNameOriginal != 'undefined' ) {
81                                         lis[i].className = lis[i].classNameOriginal;
82                                 }
83                         }
84                 }
85         }
86         return true;
89 // Attach event handlers to the input elements on history page
90 function histrowinit() {
91         var hf = document.getElementById('pagehistory');
92         if (!hf) return;
93         var df = document.getElementById('mw-history-revdeleteform');
94         if( df ) df.style.visibility = 'visible'; // Enable JS form
95         var lis = hf.getElementsByTagName('li');
96         for (var i = 0; i < lis.length; i++) {
97                 var inputs = historyRadios(lis[i]);
98                 if (inputs[0] && inputs[1]) {
99                         inputs[0].onclick = diffcheck;
100                         inputs[1].onclick = diffcheck;
101                 }
102                 var check = deleteCheck(lis[i]);
103                 if( df && check ) {
104                         check.style.display = 'inline'; // Enable JS form
105                 }
106         }
107         diffcheck();
110 // Multi-item revision delete. 'checked' is the *previous* state.
111 function updateShowHideForm( oldid, checked ) {
112         var formOldids = document.getElementById('revdel-oldid');
113         if( !formOldids ) return;
114         if( checked ) { // add on oldid if checked
115                 if( formOldids.value ) {
116                         formOldids.value += ',' + oldid;
117                 } else {
118                         formOldids.value = oldid;
119                 }
120         } else if( formOldids.value ) { // remove oldid if unchecked
121                 var reg = new RegExp( '(^|,)'+oldid+'($|,)' );
122                 formOldids.value = formOldids.value.replace( reg, '' );
123         }
126 hookEvent("load", histrowinit);