1 var browserType;
3 if (document.layers) {browserType = "nn4"}
4 if (document.all) {browserType = "ie"}
5 if (window.navigator.userAgent.toLowerCase().match("gecko")) {browserType= "gecko"}
7 netscape = "";
8 ver= navigator.appVersion; len = ver.length;
10 for (iln = 0; iln < len; iln++){
11 if (ver.charAt(iln) == "("){
12 break;
13 }
14 }
15 netscape= (ver.charAt(iln+1).toUpperCase() != "C");
18 /* Toggle checkbox that matches regex */
19 function chk_set_all(regex,value)
20 {
21 for (var i = 0; i < document.mainform.elements.length; i++) {
22 var _id=document.mainform.elements[i].id;
23 if(_id.match(regex)) {
24 document.getElementById(_id).checked= value;
25 }
26 }
27 }
30 function toggle_all_(regex,state_object)
31 {
32 state = document.getElementById(state_object).checked;
33 chk_set_all(regex, state);
34 }
37 function scrollDown() {
38 document.body.scrollTop = document.body.scrollHeight - document.body.clientHeight;
39 timeout= setTimeout("scrollDown()", 500);
40 }
42 /* Scroll down the body frame */
43 function scrollDown2()
44 {
45 document.body.scrollTop = document.body.scrollHeight - document.body.clientHeight;
46 }
49 /* Toggle checkbox that matches regex */
50 function acl_set_all(regex,value)
51 {
52 for (var i = 0; i < document.mainform.elements.length; i++) {
53 var _id=document.mainform.elements[i].id;
54 if(_id.match(regex)) {
55 document.getElementById(_id).checked= value;
56 }
57 }
58 }
60 /* Toggle checkbox that matches regex */
61 function acl_toggle_all(regex)
62 {
63 for (var i = 0; i < document.mainform.elements.length; i++) {
64 var _id=document.mainform.elements[i].id;
65 if(_id.match(regex)) {
66 if (document.getElementById(_id).checked == true){
67 document.getElementById(_id).checked= false;
68 } else {
69 document.getElementById(_id).checked= true;
70 }
71 }
72 }
73 }
75 function keyPress(DnEvents) {
76 // determines whether Netscape or Internet Explorer
77 k = (netscape) ? DnEvents.keyCode : window.event.keyCode;
78 if (k == 13) { // enter key pressed
79 if(typeof(nextfield)!='undefined') {
80 if(nextfield == 'login') {
81 return true; // submit, we finished all fields
82 } else { // we are not done yet, send focus to next box
83 eval('document.mainform.' + nextfield + '.focus()');
84 return false;
85 }
86 } else {
87 if(netscape) {
88 if(DnEvents.target.type == 'textarea') {
89 return true;
90 } else if (DnEvents.target.type != 'submit') {
91 // TAB
92 var thisfield = document.getElementById(DnEvents.target.id);
93 for (i = 0; i < document.forms[0].elements.length; i++) {
94 if(document.forms[0].elements[i].id==thisfield.id) {
95 // Last form element on page?
96 if(i!=document.forms[0].elements.length-1) {
97 document.forms[0].elements[i+1].focus();
98 }
99 }
100 }
101 return false;
102 } else {
103 return true;
104 }
105 // Check for konqueror
106 } else if(document.clientWidth) {
107 // do nothing ATM
108 } else {
109 if(window.event.srcElement.type == 'textarea') {
110 return true;
111 } else if (window.event.srcElement.type != 'submit') {
112 // TAB
113 var thisfield = document.getElementById(window.event.srcElement.id);
114 for (i = 0; i < document.forms[0].elements.length; i++) {
115 if(document.forms[0].elements[i].id==thisfield.id) {
116 // Last form element on page?
117 if(i!=document.forms[0].elements.length-1) {
118 document.forms[0].elements[i+1].focus();
119 }
120 }
121 }
122 return false;
123 } else {
124 return true;
125 }
126 }
127 }
128 } else if (k==9) {
129 // Tab key pressed
130 if(netscape) {
131 if(DnEvents.target.type == 'textarea') {
132 document.getElementById(DnEvents.target.id).value+="\t";
133 return false;
134 }
135 // Check for konqueror
136 } else if(document.clientWidth) {
137 // do nothing ATM
138 } else {
139 if(window.event.srcElement.type == 'textarea') {
140 document.getElementById(window.event.srcElement.id).value+="\t";
141 return false;
142 }
143 }
144 }
145 }
147 function changeState(myField) {
148 if(document.getElementById(myField) != null){
149 document.getElementById(myField).disabled=(document.getElementById(myField).disabled)?false:true;
150 }
151 }
153 function setHidden(str) {
154 type = document.getElementById(str).style.display;
155 if((type=='')||(type=='block')) {
156 document.getElementById(str).style.display='none';
157 }else{
158 document.getElementById(str).style.display='block';
159 }
160 }
161 function changeSelectState(triggerField, myField) {
162 if (document.getElementById(triggerField).value != 2){
163 document.getElementById(myField).disabled= true;
164 } else {
165 document.getElementById(myField).disabled= false;
166 }
167 }
169 function changeSubselectState(triggerField, myField) {
170 if (document.getElementById(triggerField).checked == true){
171 document.getElementById(myField).disabled= false;
172 } else {
173 document.getElementById(myField).disabled= true;
174 }
175 }
177 function changeTripleSelectState(firstTriggerField, secondTriggerField, myField) {
178 if (
179 document.getElementById(firstTriggerField).checked == true &&
180 document.getElementById(secondTriggerField).checked == true){
181 document.getElementById(myField).disabled= false;
182 } else {
183 document.getElementById(myField).disabled= true;
184 }
185 }
187 <!-- Second field must be non-checked -->
188 function changeTripleSelectState_2nd_neg(firstTriggerField, secondTriggerField, myField) {
189 if (
190 document.getElementById(firstTriggerField).checked == true &&
191 document.getElementById(secondTriggerField).checked == false){
192 document.getElementById(myField).disabled= false;
193 } else {
194 document.getElementById(myField).disabled= true;
195 }
196 }
197 // work together to analyze keystrokes
198 if (netscape){
199 document.captureEvents(Event.KEYPRESS);
200 document.onkeypress= keyPress;
201 } else {
202 document.onkeydown= keyPress;
203 }
205 function hide(element) {
206 if (browserType == "gecko" )
207 document.poppedLayer = document.getElementById(element);
208 else if (browserType == "ie")
209 document.poppedLayer = document.all[element];
210 else
211 document.poppedLayer = document.layers[element];
212 document.poppedLayer.style.visibility = "hidden";
213 }
215 function show(element) {
216 if (browserType == "gecko" )
217 document.poppedLayer = document.getElementById(element);
218 else if (browserType == "ie")
219 document.poppedLayer = document.all[element];
220 else
221 document.poppedLayer = document.layers[element];
222 document.poppedLayer.style.visibility = "visible";
223 }
225 function toggle(element) {
226 if (browserType == "gecko" )
227 document.poppedLayer = document.getElementById(element);
228 else if (browserType == "ie")
229 document.poppedLayer = document.all[element];
230 else
231 document.poppedLayer = document.layers[element];
233 if (document.poppedLayer.style.visibility == "visible") {
234 hide (element);
235 } else {
236 show (element);
237 }
238 }
240 function popup(target, name) {
241 var mypopup=
242 window.open(
243 target,
244 name,
245 "width=600,height=700,location=no,toolbar=no,directories=no,menubar=no,status=no,scrollbars=yes"
246 );
247 mypopup.focus();
248 return false;
249 }
251 function js_check(form) {
252 form.javascript.value = 'true';
253 }
255 function divtoggle(element) {
256 var cell;
257 var cellname="tr_"+(element);
259 if (browserType == "gecko" ) {
260 document.poppedLayer = document.getElementById(element);
261 cell= document.getElementById(cellname);
263 if (document.poppedLayer.style.visibility == "visible") {
264 hide (element);
265 cell.style.height="0px";
266 document.poppedLayer.style.height="0px";
267 } else {
268 show (element);
269 document.poppedLayer.style.height="";
270 if(document.defaultView) {
271 cell.style.height=document.defaultView.getComputedStyle(document.poppedLayer,"").getPropertyValue('height');
272 }
273 }
274 } else if (browserType == "ie") {
275 document.poppedLayer = document.getElementById(element);
276 cell= document.getElementById(cellname);
277 if (document.poppedLayer.style.visibility == "visible") {
278 hide (element);
279 cell.style.height="0px";
280 document.poppedLayer.style.height="0px";
281 document.poppedLayer.style.position="absolute";
282 } else {
283 show (element);
284 cell.style.height="";
285 document.poppedLayer.style.height="";
286 document.poppedLayer.style.position="relative";
287 }
288 }
289 }
291 window.onload = adjust;
292 window.onresize = adjust;
294 function adjust (e) {
295 adjust_height(e);
296 adjust_width(e);
297 }
299 // Automatic resize (height) of divlists
300 function adjust_height(e) {
301 if (!e) e=window.event;
302 if (document.getElementById("menucell") && document.getElementById("d_scrollbody")) {
303 var inner_height= window.innerHeight;
304 var min_height= 450;
305 var px_height= min_height;
306 var suggested= px_height;
308 // document.defaultView allows access to the rendered size of elements and should be supported by modern browsers
309 if(document.defaultView) {
310 var menu_height=parseInt(document.defaultView.getComputedStyle(document.getElementById("menucell"),"").getPropertyValue('height'));
312 // Minimum height for divlist should be the bottom edge of the menu
313 min_height= menu_height-197;
314 suggested= min_height;
315 if((inner_height-230)-suggested>0) {
316 suggested= inner_height-230;
317 }
319 // IE uses other height specifications
320 } else if (browserType == "ie") {
321 suggested= document.all.menucell.offsetHeight;
322 offset= absTop(d_scrollbody);
323 suggested-= offset;
324 if((inner_height-230)-suggested>0) {
325 suggested= inner_height-230;
326 }
327 }
328 document.getElementById("d_scrollbody").style.height=suggested+"px";
329 }
330 return true;
331 }
333 function absTop(e) {
334 return (e.offsetParent)?e.offsetTop+absTop(e.offsetParent) : e.offsetTop;
335 }
337 // Automatic resize (width) of divlists
338 function adjust_width(e) {
339 if (!e) e=window.event;
341 // Known to not work with IE
342 if(document.defaultView && document.getElementById("t_scrolltable")) {
343 // Resize the div
344 var div_width=parseInt(document.defaultView.getComputedStyle(document.getElementById("t_scrolltable"),"").getPropertyValue('width'));
345 var width= parseInt(window.innerWidth);
347 // Resize the body cells
348 var diff= width-div_width-470;
350 // window has been upscaled
351 if(div_width+diff>=600) {
352 document.getElementById('d_scrollbody').style.width=div_width+diff+"px";
353 document.getElementById('t_scrollbody').style.width=(div_width-19)+diff+"px";
355 // Resize the Header cells (only the relative-width ones)
356 document.getElementById('t_scrollhead').style.width=div_width+diff+"px";
358 // window has been downscaled, we must reset the div to 600px
359 } else if (width < 930) {
360 // Reset layout (set width to 600px)
361 div_width=600;
362 document.getElementById('d_scrollbody').style.width=div_width+"px";
363 document.getElementById('t_scrollbody').style.width=(div_width-19)+"px";
365 // Resize the Header cells (only the relative-width ones)
366 document.getElementById('t_scrollhead').style.width=div_width+"px";
367 }
368 } else if(document.defaultView && document.getElementById("t_scrolltable_onlywidth")) {
369 // Resize the div
370 var div_width=parseInt(document.defaultView.getComputedStyle(document.getElementById("t_scrolltable_onlywidth"),"").getPropertyValue('width'));
371 var width= parseInt(window.innerWidth);
373 // Resize the body cells
374 var diff= width-div_width-470;
376 // window has been upscaled
377 if(div_width+diff>=600) {
378 document.getElementById('d_scrollbody_onlywidth').style.width=div_width+diff+"px";
379 document.getElementById('t_scrollbody_onlywidth').style.width=(div_width-19)+diff+"px";
381 // Resize the Header cells (only the relative-width ones)
382 document.getElementById('t_scrollhead_onlywidth').style.width=div_width+diff+"px";
384 // window has been downscaled, we must reset the div to 600px
385 } else if (width < 930) {
386 // Reset layout (set width to 600px)
387 div_width=600;
388 document.getElementById('d_scrollbody_onlywidth').style.width=div_width+"px";
389 document.getElementById('t_scrollbody_onlywidth').style.width=(div_width-19)+"px";
391 // Resize the Header cells (only the relative-width ones)
392 document.getElementById('t_scrollhead_onlywidth').style.width=div_width+"px";
393 }
394 } else {
395 // IE
397 }
398 }
400 // vim:ts=2:syntax