Code

Updated Template
[gosa.git] / html / include / focus.js
1 var browserType;
2 var timeout;
4 if (document.layers) {browserType = "nn4"}
5 if (document.all) {browserType = "ie"}
6 if (window.navigator.userAgent.toLowerCase().match("gecko")) {browserType= "gecko"}
8 netscape = "";
9 ver= navigator.appVersion; len = ver.length;
11 for (iln = 0; iln < len; iln++){
12   if (ver.charAt(iln) == "("){
13     break;
14   }
15 }
16 netscape= (ver.charAt(iln+1).toUpperCase() != "C");
19 function scrollDown() {
20         document.body.scrollTop = document.body.scrollHeight - document.body.clientHeight;
21         timeout= setTimeout("scrollDown()", 500);
22 }
24 /* Scroll down the body frame */
25 function scrollDown2() 
26 {
27                 document.body.scrollTop = document.body.scrollHeight - document.body.clientHeight;
28 }
31 function keyPress(DnEvents) {
32   // determines whether Netscape or Internet Explorer
33   k = (netscape) ? DnEvents.keyCode : window.event.keyCode;
34   if (k == 13) { // enter key pressed
35                 if(typeof(nextfield)!='undefined') {
36                         if(nextfield == 'login') {
37           return true; // submit, we finished all fields
38         } else { // we are not done yet, send focus to next box
39         eval('document.mainform.' + nextfield + '.focus()');
40         return false;
41         }
42         } else {
43                         if(netscape) {
44                                 if(DnEvents.target.type == 'textarea') {
45                                         return true;
46                                 } else if (DnEvents.target.type != 'submit') {
47                                         // TAB
48                                         var thisfield = document.getElementById(DnEvents.target.id);
49                                         for (i = 0; i < document.forms[0].elements.length; i++) {
50                                                 if(document.forms[0].elements[i].id==thisfield.id) {
51                                                         // Last form element on page?
52                                                         if(i!=document.forms[0].elements.length-1) {
53                                                                 document.forms[0].elements[i+1].focus();
54                                                         }
55                                                 }
56                                         }
57                                         return false;
58                                 } else {
59                                         return true;
60                                 }
61                         // Check for konqueror
62                         } else if(document.clientWidth) {
63                                 // do nothing ATM
64                         } else {
65                                 if(window.event.srcElement.type == 'textarea') {
66                                         return true;
67                                 } else if (window.event.srcElement.type != 'submit') {
68                                         // TAB
69                                         var thisfield = document.getElementById(window.event.srcElement.id);
70                                         for (i = 0; i < document.forms[0].elements.length; i++) {
71                                                 if(document.forms[0].elements[i].id==thisfield.id) {
72                                                         // Last form element on page?
73                                                         if(i!=document.forms[0].elements.length-1) {
74                                                                 document.forms[0].elements[i+1].focus();
75                                                         }
76                                                 }
77                                         }
78                                         return false;
79                                 } else {
80                                         return true;
81                                 }
82                         }
83                 }
84         } else if (k==9) {
85                 // Tab key pressed
86                 if(netscape) {
87                         if(DnEvents.target.type == 'textarea') {
88                                 document.getElementById(DnEvents.target.id).value+="\t";
89                                 return false;
90                         }
91                 // Check for konqueror
92                 } else if(document.clientWidth) {
93                         // do nothing ATM
94                 } else {
95                         if(window.event.srcElement.type == 'textarea') {
96                                 document.getElementById(window.event.srcElement.id).value+="\t";
97                                 return false;
98                         }
99                 }
100         }
103 function changeState(myField) {
104         if(document.getElementById(myField) != null){
105           document.getElementById(myField).disabled=(document.getElementById(myField).disabled)?false:true;
106         }
109 function setHidden(str) {
110         type = document.getElementById(str).style.display;
111         if((type=='')||(type=='block')) {
112                 document.getElementById(str).style.display='none';
113         }else{
114                 document.getElementById(str).style.display='block';
115         }
117 function changeSelectState(triggerField, myField) {
118   if (document.getElementById(triggerField).value != 2){
119           document.getElementById(myField).disabled= true;
120   } else {
121           document.getElementById(myField).disabled= false;
122   }
125 function changeSubselectState(triggerField, myField) {
126   if (document.getElementById(triggerField).checked == true){
127           document.getElementById(myField).disabled= false;
128   } else {
129           document.getElementById(myField).disabled= true;
130   }
133 function changeTripleSelectState(firstTriggerField, secondTriggerField, myField) {
134   if (
135         document.getElementById(firstTriggerField).checked == true &&
136         document.getElementById(secondTriggerField).checked == true){
137           document.getElementById(myField).disabled= false;
138   } else {
139           document.getElementById(myField).disabled= true;
140   }
143 <!-- Second field must be non-checked -->
144 function changeTripleSelectState_2nd_neg(firstTriggerField, secondTriggerField, myField) {
145   if (
146         document.getElementById(firstTriggerField).checked == true &&
147         document.getElementById(secondTriggerField).checked == false){
148           document.getElementById(myField).disabled= false;
149   } else {
150           document.getElementById(myField).disabled= true;
151   }
153 // work together to analyze keystrokes
154 if (netscape){
155   document.captureEvents(Event.KEYPRESS);
156         document.onkeypress= keyPress;
157 } else {
158         document.onkeydown= keyPress;
161 function hide(element) {
162   if (browserType == "gecko" )
163      document.poppedLayer = document.getElementById(element);
164   else if (browserType == "ie")
165      document.poppedLayer = document.all[element];
166   else
167      document.poppedLayer = document.layers[element];
168         document.poppedLayer.style.visibility = "hidden";
171 function show(element) {
172   if (browserType == "gecko" )
173      document.poppedLayer = document.getElementById(element);
174   else if (browserType == "ie")
175      document.poppedLayer = document.all[element];
176   else
177      document.poppedLayer = document.layers[element];
178   document.poppedLayer.style.visibility = "visible";
181 function toggle(element) {
182   if (browserType == "gecko" )
183      document.poppedLayer = document.getElementById(element);
184   else if (browserType == "ie")
185      document.poppedLayer = document.all[element];
186   else
187      document.poppedLayer = document.layers[element];
189   if (document.poppedLayer.style.visibility == "visible") {
190           hide (element);
191         } else {
192           show (element);
193         }
196 function popup(target, name) {
197         var mypopup= 
198                 window.open(
199                         target,
200                         name,
201                         "width=600,height=700,location=no,toolbar=no,directories=no,menubar=no,status=no,scrollbars=yes"
202                 );
203         mypopup.focus();
204         return false;
207 function js_check(form) {
208         form.javascript.value = 'true';
211 window.onload = adjust;
212 window.onresize = adjust;
214 function adjust (e) {
215         adjust_height(e);
216         adjust_width(e);
219 // Automatic resize (height) of divlists
220 function adjust_height(e) {
221         if (!e) e=window.event;
222         if (document.getElementById("menucell") && document.getElementById("d_scrollbody")) {
223                 var inner_height= window.innerHeight;
224                 var min_height= 450;
225                 var px_height= min_height;
226                 var suggested= px_height;
227         
228                 // document.defaultView allows access to the rendered size of elements and should be supported by modern browsers
229                 if(document.defaultView) {
230                         var menu_height=parseInt(document.defaultView.getComputedStyle(document.getElementById("menucell"),"").getPropertyValue('height'));
231         
232                         // Minimum height for divlist should be the bottom edge of the menu
233                         min_height= menu_height-197;
234                         suggested= min_height;
235                         if((inner_height-230)-suggested>0) {
236                                 suggested= inner_height-230;
237                         }
238         
239                 } else if(px_height >= 450) {
240                                 suggested= px_height-230;
241                 }
242                 document.getElementById("d_scrollbody").style.height=suggested+"px";
243         }
244         return true;
247 // Automatic resize (width) of divlists
248 function adjust_width(e) {
249         if (!e) e=window.event;
251         // Known to not work with IE
252         if(document.defaultView && document.getElementById("t_scrolltable")) {
253                 // Resize the div
254                 var div_width=parseInt(document.defaultView.getComputedStyle(document.getElementById("t_scrolltable"),"").getPropertyValue('width'));
255                 var width= parseInt(window.innerWidth);
257                 // Resize the body cells
258                 var diff= width-div_width-470;
259                 
260                 // window has been upscaled
261                 if(div_width+diff>=600) {
262                         document.getElementById('d_scrollbody').style.width=div_width+diff+"px";
263                         document.getElementById('t_scrollbody').style.width=(div_width-19)+diff+"px";
264         
265                         // Resize the Header cells (only the relative-width ones)
266                         document.getElementById('t_scrollhead').style.width=div_width+diff+"px";
268                 // window has been downscaled, we must reset the div to 600px
269                 } else if (width < 930) {
270                         // Reset layout (set width to 600px)
271                         div_width=600;
272                         document.getElementById('d_scrollbody').style.width=div_width+"px";
273                         document.getElementById('t_scrollbody').style.width=(div_width-19)+"px";
274         
275                         // Resize the Header cells (only the relative-width ones)
276                         document.getElementById('t_scrollhead').style.width=div_width+"px";
277                 }
278         } else if(document.defaultView && document.getElementById("t_scrolltable_onlywidth")) {
279                 // Resize the div
280                 var div_width=parseInt(document.defaultView.getComputedStyle(document.getElementById("t_scrolltable_onlywidth"),"").getPropertyValue('width'));
281                 var width= parseInt(window.innerWidth);
283                 // Resize the body cells
284                 var diff= width-div_width-470;
285                 
286                 // window has been upscaled
287                 if(div_width+diff>=600) {
288                         document.getElementById('d_scrollbody_onlywidth').style.width=div_width+diff+"px";
289                         document.getElementById('t_scrollbody_onlywidth').style.width=(div_width-19)+diff+"px";
290         
291                         // Resize the Header cells (only the relative-width ones)
292                         document.getElementById('t_scrollhead_onlywidth').style.width=div_width+diff+"px";
294                 // window has been downscaled, we must reset the div to 600px
295                 } else if (width < 930) {
296                         // Reset layout (set width to 600px)
297                         div_width=600;
298                         document.getElementById('d_scrollbody_onlywidth').style.width=div_width+"px";
299                         document.getElementById('t_scrollbody_onlywidth').style.width=(div_width-19)+"px";
300         
301                         // Resize the Header cells (only the relative-width ones)
302                         document.getElementById('t_scrollhead_onlywidth').style.width=div_width+"px";
303                 }
304         } else {
305                 // IE
307         }
310 // vim:ts=2:syntax