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 function deleteCheck(parent
) {
13 var inputs
= parent
.getElementsByTagName('input');
14 for (var i
= 0; i
< inputs
.length
; i
++) {
15 if (inputs
[i
].name
== "showhiderevisions") {
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');
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
) {
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', '' );
43 oli
.classNameOriginal
= '';
46 oli
.className
= "selected "+oli
.classNameOriginal
;
49 } else if (inputs
[0].checked
) {
52 if (inputs
[0].checked
) {
56 inputs
[0].style
.visibility
= 'hidden';
59 inputs
[1].style
.visibility
= 'hidden';
61 if ( (typeof lis
[i
].className
) != 'undefined') {
62 lis
[i
].classNameOriginal
= lis
[i
].className
.replace( 'selected', '' );
64 lis
[i
].classNameOriginal
= '';
67 lis
[i
].className
= "selected "+lis
[i
].classNameOriginal
;
69 } else { // no radio is checked in this row
71 inputs
[0].style
.visibility
= 'hidden';
73 inputs
[0].style
.visibility
= 'visible';
76 inputs
[1].style
.visibility
= 'hidden';
78 inputs
[1].style
.visibility
= 'visible';
80 if ( typeof lis
[i
].classNameOriginal
!= 'undefined' ) {
81 lis
[i
].className
= lis
[i
].classNameOriginal
;
89 // Attach event handlers to the input elements on history page
90 function histrowinit() {
91 var hf
= document
.getElementById('pagehistory');
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
;
102 var check
= deleteCheck(lis
[i
]);
104 check
.style
.display
= 'inline'; // Enable JS form
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
;
118 formOldids
.value
= oldid
;
120 } else if( formOldids
.value
) { // remove oldid if unchecked
121 var reg
= new RegExp( '(^|,)'+oldid
+'($|,)' );
122 formOldids
.value
= formOldids
.value
.replace( reg
, '' );
126 hookEvent("load", histrowinit
);