Code

first part of the account expiration code
[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 function keyPress(DnEvents) {
19   // determines whether Netscape or Internet Explorer
20   k = (netscape) ? DnEvents.keyCode : window.event.keyCode;
21   if (k == 13) { // enter key pressed
22                 if(typeof(nextfield)!='undefined') {
23                         if(nextfield == 'login') {
24           return true; // submit, we finished all fields
25         } else { // we are not done yet, send focus to next box
26         eval('document.mainform.' + nextfield + '.focus()');
27         return false;
28         }
29         } else {
30                         if(netscape) {
31                                 if(DnEvents.target.type == 'textarea') {
32                                         return true;
33                                 } else if (DnEvents.target.type != 'submit') {
34                                         // TAB
35                                         var thisfield = document.getElementById(DnEvents.target.id);
36                                         for (i = 0; i < document.forms[0].elements.length; i++) {
37                                                 if(document.forms[0].elements[i].id==thisfield.id) {
38                                                         // Last form element on page?
39                                                         if(i!=document.forms[0].elements.length-1) {
40                                                                 document.forms[0].elements[i+1].focus();
41                                                         }
42                                                 }
43                                         }
44                                         return false;
45                                 } else {
46                                         return true;
47                                 }
48                         // Check for konqueror
49                         } else if(document.clientWidth) {
50                                 // do nothing ATM
51                         } else {
52                                 if(window.event.srcElement.type == 'textarea') {
53                                         return true;
54                                 } else if (window.event.srcElement.type != 'submit') {
55                                         // TAB
56                                         var thisfield = document.getElementById(window.event.srcElement.id);
57                                         for (i = 0; i < document.forms[0].elements.length; i++) {
58                                                 if(document.forms[0].elements[i].id==thisfield.id) {
59                                                         // Last form element on page?
60                                                         if(i!=document.forms[0].elements.length-1) {
61                                                                 document.forms[0].elements[i+1].focus();
62                                                         }
63                                                 }
64                                         }
65                                         return false;
66                                 } else {
67                                         return true;
68                                 }
69                         }
70                 }
71         } else if (k==9) {
72                 // Tab key pressed
73                 if(netscape) {
74                         if(DnEvents.target.type == 'textarea') {
75                                 document.getElementById(DnEvents.target.id).value+="\t";
76                                 return false;
77                         }
78                 // Check for konqueror
79                 } else if(document.clientWidth) {
80                         // do nothing ATM
81                 } else {
82                         if(window.event.srcElement.type == 'textarea') {
83                                 document.getElementById(window.event.srcElement.id).value+="\t";
84                                 return false;
85                         }
86                 }
87         }
88 }
90 function changeState(myField) {
91         if(document.getElementById(myField) != null){
92           document.getElementById(myField).disabled=(document.getElementById(myField).disabled)?false:true;
93         }
94 }
96 function setHidden(str) {
97         type = document.getElementById(str).style.display;
98         if((type=='')||(type=='block')) {
99                 document.getElementById(str).style.display='none';
100         }else{
101                 document.getElementById(str).style.display='block';
102         }
104 function changeSelectState(triggerField, myField) {
105   if (document.getElementById(triggerField).value != 2){
106           document.getElementById(myField).disabled= true;
107   } else {
108           document.getElementById(myField).disabled= false;
109   }
112 function changeSubselectState(triggerField, myField) {
113   if (document.getElementById(triggerField).checked == true){
114           document.getElementById(myField).disabled= false;
115   } else {
116           document.getElementById(myField).disabled= true;
117   }
120 function changeTripleSelectState(firstTriggerField, secondTriggerField, myField) {
121   if (
122         document.getElementById(firstTriggerField).checked == true &&
123         document.getElementById(secondTriggerField).checked == true){
124           document.getElementById(myField).disabled= false;
125   } else {
126           document.getElementById(myField).disabled= true;
127   }
130 <!-- Second field must be non-checked -->
131 function changeTripleSelectState_2nd_neg(firstTriggerField, secondTriggerField, myField) {
132   if (
133         document.getElementById(firstTriggerField).checked == true &&
134         document.getElementById(secondTriggerField).checked == false){
135           document.getElementById(myField).disabled= false;
136   } else {
137           document.getElementById(myField).disabled= true;
138   }
140 // work together to analyze keystrokes
141 if (netscape){
142   document.captureEvents(Event.KEYPRESS);
143         document.onkeypress= keyPress;
144 } else {
145         document.onkeydown= keyPress;
148 function hide(element) {
149   if (browserType == "gecko" )
150      document.poppedLayer = document.getElementById(element);
151   else if (browserType == "ie")
152      document.poppedLayer = document.all[element];
153   else
154      document.poppedLayer = document.layers[element];
155         document.poppedLayer.style.visibility = "hidden";
158 function show(element) {
159   if (browserType == "gecko" )
160      document.poppedLayer = document.getElementById(element);
161   else if (browserType == "ie")
162      document.poppedLayer = document.all[element];
163   else
164      document.poppedLayer = document.layers[element];
165   document.poppedLayer.style.visibility = "visible";
168 function toggle(element) {
169   if (browserType == "gecko" )
170      document.poppedLayer = document.getElementById(element);
171   else if (browserType == "ie")
172      document.poppedLayer = document.all[element];
173   else
174      document.poppedLayer = document.layers[element];
176   if (document.poppedLayer.style.visibility == "visible") {
177           hide (element);
178         } else {
179           show (element);
180         }
183 function popup(target, name) {
184         var mypopup= 
185                 window.open(
186                         target,
187                         name,
188                         "width=600,height=700,location=no,toolbar=no,directories=no,menubar=no,status=no,scrollbars=yes"
189                 );
190         mypopup.focus();
191         return false;
194 function js_check(form) {
195         form.javascript.value = 'true';
198 window.onload = adjust;
199 window.onresize = adjust;
201 function adjust(e) {
202         adjust_height(e);
203         adjust_width(e);
206 // Automatic resize (height) of divlists
207 function adjust_height(e) {
208         if (!e) e=window.event;
209         if (document.getElementById("menucell") && document.getElementById("d_scrollbody")) {
210                 var inner_height= window.innerHeight;
211                 var min_height= 450;
212                 var px_height= min_height;
213                 var suggested= px_height;
214         
215                 // document.defaultView allows access to the rendered size of elements and should be supported by modern browsers
216                 if(document.defaultView) {
217                         var menu_height=parseInt(document.defaultView.getComputedStyle(document.getElementById("menucell"),"").getPropertyValue('height'));
218         
219                         // Minimum height for divlist should be the bottom edge of the menu
220                         min_height= menu_height-197;
221                         suggested= min_height;
222                         if((inner_height-230)-suggested>0) {
223                                 suggested= inner_height-230;
224                         }
225         
226                 } else if(px_height >= 450) {
227                                 suggested= px_height-230;
228                 }
229                 document.getElementById("d_scrollbody").style.height=suggested+"px";
230         }
231         return true;
234 // Automatic resize (width) of divlists
235 function adjust_width(e) {
236         if (!e) e=window.event;
238         // Known to not work with IE
239         if(document.defaultView && document.getElementById("t_scrolltable")) {
240                 // Resize the div
241                 var div_width=parseInt(document.defaultView.getComputedStyle(document.getElementById("t_scrolltable"),"").getPropertyValue('width'));
242                 var width= parseInt(window.innerWidth);
244                 // Resize the body cells
245                 var diff= width-div_width-470;
246                 
247                 // window has been upscaled
248                 if(div_width+diff>=600) {
249                         document.getElementById('d_scrollbody').style.width=div_width+diff+"px";
250                         document.getElementById('t_scrollbody').style.width=(div_width-19)+diff+"px";
251         
252                         // Resize the Header cells (only the relative-width ones)
253                         document.getElementById('t_scrollhead').style.width=div_width+diff+"px";
255                 // window has been downscaled, we must reset the div to 600px
256                 } else if (width < 930) {
257                         // Reset layout (set width to 600px)
258                         div_width=600;
259                         document.getElementById('d_scrollbody').style.width=div_width+"px";
260                         document.getElementById('t_scrollbody').style.width=(div_width-19)+"px";
261         
262                         // Resize the Header cells (only the relative-width ones)
263                         document.getElementById('t_scrollhead').style.width=div_width+"px";
264                 }
265         } else {
266                 // IE
268         }
271 // vim:ts=2:syntax