Code

Tab-insert works now with Internet Explorer, too.
[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");
17 function keyPress(DnEvents) {
18   // determines whether Netscape or Internet Explorer
19   k = (netscape) ? DnEvents.keyCode : window.event.keyCode;
20   if (k == 13) { // enter key pressed
21                 if(typeof(nextfield)!='undefined') {
22                         if(nextfield == 'login') {
23           return true; // submit, we finished all fields
24         } else { // we're not done yet, send focus to next box
25         eval('document.mainform.' + nextfield + '.focus()');
26         return false;
27         }
28         } else {
29                         if(netscape) {
30                                 if(DnEvents.target.type == 'textarea') {
31                                         return true;
32                                 } else if (DnEvents.target.type != 'submit') {
33                                         // TAB
34                                         var thisfield = document.getElementById(DnEvents.target.id);
35                                         for (i = 0; i < document.forms[0].elements.length; i++) {
36                                                 if(document.forms[0].elements[i].id==thisfield.id) {
37                                                         // Last form element on page?
38                                                         if(i!=document.forms[0].elements.length-1) {
39                                                                 document.forms[0].elements[i+1].focus();
40                                                         }
41                                                 }
42                                         }
43                                         return false;
44                                 } else {
45                                         return true;
46                                 }
47                         } else {
48                                 if(window.event.srcElement.type == 'textarea') {
49                                         return true;
50                                 } else if (window.event.srcElement.type != 'submit') {
51                                         // TAB
52                                         var thisfield = document.getElementById(window.event.srcElement.id);
53                                         for (i = 0; i < document.forms[0].elements.length; i++) {
54                                                 if(document.forms[0].elements[i].id==thisfield.id) {
55                                                         // Last form element on page?
56                                                         if(i!=document.forms[0].elements.length-1) {
57                                                                 document.forms[0].elements[i+1].focus();
58                                                         }
59                                                 }
60                                         }
61                                         return false;
62                                 } else {
63                                         return true;
64                                 }
65                         }
66                 }
67         } else if (k==9) {
68                 // Tab key pressed
69                 if(netscape) {
70                         if(DnEvents.target.type == 'textarea') {
71                                 document.getElementById(DnEvents.target.id).value+="\t";
72                                 return false;
73                         }
74                 } else {
75                         if(window.event.srcElement.type == 'textarea') {
76                                 document.getElementById(window.event.srcElement.id).value+="\t";
77                                 return false;
78                         }
79                 }
80         }
81 }
83 function changeState(myField) {
84   document.getElementById(myField).disabled=(document.getElementById(myField).disabled)?false:true;
85 }
87 function changeSelectState(triggerField, myField) {
88   if (document.getElementById(triggerField).value != 2){
89           document.getElementById(myField).disabled= true;
90   } else {
91           document.getElementById(myField).disabled= false;
92   }
93 }
95 function changeSubselectState(triggerField, myField) {
96   if (document.getElementById(triggerField).checked == true){
97           document.getElementById(myField).disabled= false;
98   } else {
99           document.getElementById(myField).disabled= true;
100   }
103 function changeTripleSelectState(firstTriggerField, secondTriggerField, myField) {
104   if (
105         document.getElementById(firstTriggerField).checked == true &&
106         document.getElementById(secondTriggerField).checked == true){
107           document.getElementById(myField).disabled= false;
108   } else {
109           document.getElementById(myField).disabled= true;
110   }
113 <!-- Second field must be non-checked -->
114 function changeTripleSelectState_2nd_neg(firstTriggerField, secondTriggerField, myField) {
115   if (
116         document.getElementById(firstTriggerField).checked == true &&
117         document.getElementById(secondTriggerField).checked == false){
118           document.getElementById(myField).disabled= false;
119   } else {
120           document.getElementById(myField).disabled= true;
121   }
123 // work together to analyze keystrokes
124 if (netscape){
125   document.captureEvents(Event.KEYPRESS);
126         document.onkeypress= keyPress;
127 } else {
128         document.onkeydown= keyPress;
131 function hide(element) {
132   if (browserType == "gecko" )
133      document.poppedLayer = document.getElementById(element);
134   else if (browserType == "ie")
135      document.poppedLayer = document.all[element];
136   else
137      document.poppedLayer = document.layers[element];
138   document.poppedLayer.style.visibility = "hidden";
141 function show(element) {
142   if (browserType == "gecko" )
143      document.poppedLayer = document.getElementById(element);
144   else if (browserType == "ie")
145      document.poppedLayer = document.all[element];
146   else
147      document.poppedLayer = document.layers[element];
148   document.poppedLayer.style.visibility = "visible";
151 function toggle(element) {
152   if (browserType == "gecko" )
153      document.poppedLayer = document.getElementById(element);
154   else if (browserType == "ie")
155      document.poppedLayer = document.all[element];
156   else
157      document.poppedLayer = document.layers[element];
159   if (document.poppedLayer.style.visibility == "visible")
160           hide (element);
161   else
162           show (element);
166 function popup(target, name) {
167         var mypopup= 
168                 window.open(
169                         target,
170                         name,
171                         "width=600,height=700,location=no,toolbar=no,directories=no,menubar=no,status=no,scrollbars=yes"
172                 );
173         mypopup.focus();
174         return false;
177 function js_check(form) {
178         form.javascript.value = 'true';