Code

Udpated JS focus,
[gosa.git] / html / include / focus.js
index 46220ff7a8c45c84314afab5df2af70ebd0812f5..99e73b14c1c847d0f97eeab6b77ee34b569f6f8b 100644 (file)
@@ -15,6 +15,24 @@ for (iln = 0; iln < len; iln++){
 }
 netscape= (ver.charAt(iln+1).toUpperCase() != "C");
 
+function toggle_all_(regex,state_object)
+{
+    state = document.getElementById(state_object).checked;
+    chk_set_all(regex, state);
+}
+
+
+/* Toggle checkbox that matches regex */
+function chk_set_all(regex,value)
+{
+                               for (var i = 0; i < document.mainform.elements.length; i++) {
+                                                               var _id=document.mainform.elements[i].id;
+                                                               if(_id.match(regex)) {
+                                                                                               document.getElementById(_id).checked= value;
+                                                               }
+                               }
+}
+
 
 function scrollDown() {
        document.body.scrollTop = document.body.scrollHeight - document.body.clientHeight;
@@ -236,14 +254,24 @@ function adjust_height(e) {
                                suggested= inner_height-230;
                        }
        
-               } else if(px_height >= 450) {
-                               suggested= px_height-230;
+               // IE uses other height specifications
+               } else if (browserType == "ie") {
+                       suggested= document.all.menucell.offsetHeight;
+                       offset= absTop(d_scrollbody);
+                       suggested-= offset;
+                       if((inner_height-230)-suggested>0) {
+                               suggested= inner_height-230;
+                       }
                }
                document.getElementById("d_scrollbody").style.height=suggested+"px";
        }
        return true;
 }
 
+function absTop(e) {
+       return (e.offsetParent)?e.offsetTop+absTop(e.offsetParent) : e.offsetTop;
+}
+
 // Automatic resize (width) of divlists
 function adjust_width(e) {
        if (!e) e=window.event;
@@ -307,4 +335,37 @@ function adjust_width(e) {
        }
 }
 
+
+
+/* Set focus to first valid input field 
+               avoid IExplorer warning about hidding or disabled fields 
+*/
+function focus_field()
+{      
+               var i = 0;
+               while(focus_field.arguments[i] && document.getElementById(focus_field.arguments[i]).disabled == true) {
+                       i++;
+               }
+               if(focus_field.arguments[i]){
+
+                               var name                = focus_field.arguments[i];
+                               var element = document.getElementsByName(name);
+
+                               for(i = 0; i < element.length; i++) {
+                                               if(element[i].id == name && (
+                                                               element[i].type != 'none' || 
+                                                               element[i].type != 'hidden')
+                                               ) {
+                                                       element[i].blur();              
+                                                       element[i].focus();             
+                                                       break;
+                                               }
+                               }
+               }
+}
+
+
+
+
+
 // vim:ts=2:syntax