d8d1aa1cd8fee0e8af7fec135a332315b92f198b
1 function protectInitialize(tableId
, labelText
) {
2 if (document
.createTextNode
) {
3 var box
= document
.getElementById(tableId
);
7 var tbody
= box
.getElementsByTagName('tbody')[0];
8 var row
= document
.createElement('tr');
9 tbody
.appendChild(row
);
11 row
.appendChild(document
.createElement('td'));
12 var col2
= document
.createElement('td');
13 row
.appendChild(col2
);
15 var check
= document
.createElement('input');
16 check
.id
= "mwProtectUnchained";
17 check
.type
= "checkbox";
18 check
.onclick
= protectChainUpdate
;
19 col2
.appendChild(check
);
21 var space
= document
.createTextNode(" ");
22 col2
.appendChild(space
);
24 var label
= document
.createElement('label');
25 label
.setAttribute("for", "mwProtectUnchained");
26 label
.appendChild(document
.createTextNode(labelText
));
27 col2
.appendChild(label
);
29 if (protectAllMatch()) {
30 check
.checked
= false;
44 function allowCascade() {
45 var pr_types
= document
.getElementsByTagName("select");
46 for (var i
= 0; i
< pr_types
.length
; i
++) {
47 if (pr_types
[i
].id
.match(/^mwProtect-level-/)) {
48 var selected_level
= pr_types
[i
].getElementsByTagName("option")[pr_types
[i
].selectedIndex
].value
;
49 if ( !isCascadeableLevel(selected_level
) ) {
50 document
.getElementById('mwProtect-cascade').checked
=false;
51 document
.getElementById('mwProtect-cascade').disabled
=true;
56 document
.getElementById('mwProtect-cascade').disabled
=false;
60 function isCascadeableLevel( level
) {
61 for (var k
= 0; k
< wgCascadeableLevels
.length
; k
++) {
62 if ( wgCascadeableLevels
[k
] == level
) {
69 function protectLevelsUpdate(source
) {
70 if (!protectUnchained()) {
71 protectUpdateAll(source
.selectedIndex
);
76 function protectChainUpdate() {
77 if (protectUnchained()) {
87 function protectAllMatch() {
88 var values
= new Array();
89 protectForSelectors(function(set) {
90 values
[values
.length
] = set.selectedIndex
;
92 for (var i
= 1; i
< values
.length
; i
++) {
93 if (values
[i
] != values
[0]) {
100 function protectUnchained() {
101 var unchain
= document
.getElementById("mwProtectUnchained");
103 alert("This shouldn't happen");
106 return unchain
.checked
;
109 function protectChain() {
110 // Find the highest-protected action and bump them all to this level
112 protectForSelectors(function(set) {
113 if (set.selectedIndex
> maxIndex
) {
114 maxIndex
= set.selectedIndex
;
117 protectUpdateAll(maxIndex
);
120 function protectUpdateAll(index
) {
121 protectForSelectors(function(set) {
122 if (set.selectedIndex
!= index
) {
123 set.selectedIndex
= index
;
128 function protectForSelectors(func
) {
129 var selectors
= protectSelectors();
130 for (var i
= 0; i
< selectors
.length
; i
++) {
135 function protectSelectors() {
136 var all
= document
.getElementsByTagName("select");
137 var ours
= new Array();
138 for (var i
= 0; i
< all
.length
; i
++) {
140 if (set.id
.match(/^mwProtect-level-/)) {
141 ours
[ours
.length
] = set;
147 function protectEnable(val
) {
150 protectForSelectors(function(set) {
155 set.style
.visible
= val
? "visible" : "hidden";