From ddd894dbe86c678076b51fc10a9ef8a655f29d68 Mon Sep 17 00:00:00 2001
From: alecpl <alec@alec.pl>
Date: Fri, 19 Sep 2008 14:00:51 -0400
Subject: [PATCH] - small fix

---
 program/js/common.js |   45 +++++++++++++++++++++++++++++++++++----------
 1 files changed, 35 insertions(+), 10 deletions(-)

diff --git a/program/js/common.js b/program/js/common.js
index 209ce10..5049061 100644
--- a/program/js/common.js
+++ b/program/js/common.js
@@ -49,6 +49,7 @@
   this.ie4 = (this.ie && !this.dom);
   this.ie5 = (this.dom && this.appver.indexOf('MSIE 5')>0);
   this.ie6 = (this.dom && this.appver.indexOf('MSIE 6')>0);
+  this.ie7 = (this.dom && this.appver.indexOf('MSIE 7')>0);
 
   this.mz = (this.dom && this.ver>=5);  // (this.dom && this.product=='Gecko')
   this.ns = ((this.ver<5 && this.name=='Netscape') || (this.ver>=5 && this.vendor.indexOf('Netscape')>=0));
@@ -253,23 +254,28 @@
     var obj;
 
     obj = document.createElement('DIV');
+
     with(obj)
       {
       id = this.name;
       with(style)
         {
-        position = 'absolute';
+	position = 'absolute';
         visibility = (vis) ? (vis==2) ? 'inherit' : 'visible' : 'hidden';
         left = l+'px';
         top = t+'px';
-        if(w) width = w+'px';
-        if(h) height = h+'px';
+        if (w)
+	  width = w.toString().match(/\%$/) ? w : w+'px';
+        if (h)
+	  height = h.toString().match(/\%$/) ? h : h+'px';
         if(z) zIndex = z;
-        }
+	}
       }
-      
-    if(parent) parent.appendChild(obj);
-    else document.body.appendChild(obj);
+
+    if (parent)
+      parent.appendChild(obj);
+    else
+      document.body.appendChild(obj);
 
     this.elm = obj;
     };
@@ -496,7 +502,7 @@
 
 
 // return the absolute position of an object within the document
-function rcube_get_object_pos(obj)
+function rcube_get_object_pos(obj, relative)
   {
   if(typeof(obj)=='string')
     obj = rcube_find_object(obj);
@@ -506,7 +512,7 @@
   var iX = (bw.layers) ? obj.x : obj.offsetLeft;
   var iY = (bw.layers) ? obj.y : obj.offsetTop;
 
-  if(bw.ie || bw.mz)
+  if(!relative && (bw.ie || bw.mz))
     {
     var elm = obj.offsetParent;
     while(elm && elm!=null)
@@ -598,8 +604,9 @@
   this.log = function(msg)
   {
     box = rcube_find_object('console');
+
     if (box)
-      if (msg[msg.length-1]=='\n')
+      if (msg.charAt(msg.length-1)=='\n')
         box.value += msg+'--------------------------------------\n';
       else
         box.value += msg+'\n--------------------------------------\n';
@@ -625,3 +632,21 @@
   {
   return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
   }
+
+
+// Make getElementById() case-sensitive on IE
+if (bw.ie)
+  {
+  document._getElementById = document.getElementById;
+  document.getElementById = function(id)
+    {
+    var i = 0;
+    var o = document._getElementById(id);
+
+    if (!o || o.id != id)
+      while ((o = document.all[i]) && o.id != id)
+        i++;
+
+    return o;
+    }
+  }

--
Gitblit v1.9.1