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