Code

Added setup security check
[gosa.git] / html / include / focus.js
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         }
147 function changeState(myField) {
148         if(document.getElementById(myField) != null){
149           document.getElementById(myField).disabled=(document.getElementById(myField).disabled)?false:true;
150         }
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         }
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   }
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   }
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   }
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   }
197 // work together to analyze keystrokes
198 if (netscape){
199   document.captureEvents(Event.KEYPRESS);
200         document.onkeypress= keyPress;
201 } else {
202         document.onkeydown= keyPress;
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";
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";
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         }
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;
251 function js_check(form) {
252         form.javascript.value = 'true';
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         }
291 window.onload = adjust;
292 window.onresize = adjust;
294 function adjust (e) {
295         adjust_height(e);
296         adjust_width(e);
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;
307         
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'));
311         
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                         }
318                 
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;
333 function absTop(e) {
334         return (e.offsetParent)?e.offsetTop+absTop(e.offsetParent) : e.offsetTop;
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;
349                 
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";
354         
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";
364         
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;
375                 
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";
380         
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";
390         
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         }
400 // vim:ts=2:syntax