Roo.js
[roojs1] / Roo.js
diff --git a/Roo.js b/Roo.js
index 3bf7907..776b1b1 100644 (file)
--- a/Roo.js
+++ b/Roo.js
@@ -53,22 +53,33 @@ Roo.apply = function(o, c, defaults){
     var isStrict = document.compatMode == "CSS1Compat",
         isOpera = ua.indexOf("opera") > -1,
         isSafari = (/webkit|khtml/).test(ua),
+        isFirefox = ua.indexOf("firefox") > -1,
         isIE = ua.indexOf("msie") > -1,
         isIE7 = ua.indexOf("msie 7") > -1,
+        isIE11 = /trident.*rv\:11\./.test(ua),
         isGecko = !isSafari && ua.indexOf("gecko") > -1,
         isBorderBox = isIE && !isStrict,
         isWindows = (ua.indexOf("windows") != -1 || ua.indexOf("win32") != -1),
         isMac = (ua.indexOf("macintosh") != -1 || ua.indexOf("mac os x") != -1),
         isLinux = (ua.indexOf("linux") != -1),
-        isSecure = window.location.href.toLowerCase().indexOf("https") === 0;
-
+        isSecure = window.location.href.toLowerCase().indexOf("https") === 0,
+        isIOS = /iPhone|iPad\./.test(ua),
+        isTouch =  (function() {
+            try {  
+                document.createEvent("TouchEvent");  
+                return true;  
+            } catch (e) {  
+                return false;  
+            } 
+            
+        })();
     // remove css image flicker
        if(isIE && !isIE7){
         try{
             document.execCommand("BackgroundImageCache", false, true);
         }catch(e){}
     }
-
+    
     Roo.apply(Roo, {
         /**
          * True if the browser is in strict mode
@@ -120,7 +131,7 @@ Roo.apply = function(o, c, defaults){
         BLANK_IMAGE_URL : "http:/"+"/localhost/s.gif",
 
         emptyFn : function(){},
-
+        
         /**
          * Copies all the properties of config to obj if they don't already exist.
          * @param {Object} obj The receiver of the properties
@@ -336,16 +347,16 @@ Roo.factory(conf, Roo.data);
             }
             var buf = [];
             for(var key in o){
-                var ov = o[key], k = encodeURIComponent(key);
+                var ov = o[key], k = Roo.encodeURIComponent(key);
                 var type = typeof ov;
                 if(type == 'undefined'){
                     buf.push(k, "=&");
                 }else if(type != "function" && type != "object"){
-                    buf.push(k, "=", encodeURIComponent(ov), "&");
+                    buf.push(k, "=", Roo.encodeURIComponent(ov), "&");
                 }else if(ov instanceof Array){
                     if (ov.length) {
                            for(var i = 0, len = ov.length; i < len; i++) {
-                               buf.push(k, "=", encodeURIComponent(ov[i] === undefined ? '' : ov[i]), "&");
+                               buf.push(k, "=", Roo.encodeURIComponent(ov[i] === undefined ? '' : ov[i]), "&");
                            }
                        } else {
                            buf.push(k, "=&");
@@ -357,7 +368,7 @@ Roo.factory(conf, Roo.data);
         },
          /**
          * Safe version of encodeURIComponent
-         * @param {String} str
+         * @param {String} data 
          * @return {String} 
          */
         
@@ -382,30 +393,31 @@ Roo.factory(conf, Roo.data);
                 var bs = new Array();
                 if (c > 0x10000){
                         // 4 bytes
-                        bs[0] = 0xF0 | ((c & 0x1C0000) >>> 18);
-                        bs[1] = 0x80 | ((c & 0x3F000) >>> 12);
-                        bs[2] = 0x80 | ((c & 0xFC0) >>> 6);
+                    bs[0] = 0xF0 | ((c & 0x1C0000) >>> 18);
+                    bs[1] = 0x80 | ((c & 0x3F000) >>> 12);
+                    bs[2] = 0x80 | ((c & 0xFC0) >>> 6);
                     bs[3] = 0x80 | (c & 0x3F);
                 }else if (c > 0x800){
                          // 3 bytes
-                         bs[0] = 0xE0 | ((c & 0xF000) >>> 12);
-                         bs[1] = 0x80 | ((c & 0xFC0) >>> 6);
-                        bs[2] = 0x80 | (c & 0x3F);
+                    bs[0] = 0xE0 | ((c & 0xF000) >>> 12);
+                    bs[1] = 0x80 | ((c & 0xFC0) >>> 6);
+                    bs[2] = 0x80 | (c & 0x3F);
                 }else if (c > 0x80){
                        // 2 bytes
-                        bs[0] = 0xC0 | ((c & 0x7C0) >>> 6);
-                       bs[1] = 0x80 | (c & 0x3F);
+                    bs[0] = 0xC0 | ((c & 0x7C0) >>> 6);
+                    bs[1] = 0x80 | (c & 0x3F);
                 }else{
                         // 1 byte
-                     bs[0] = c;
+                    bs[0] = c;
                 }
                 for(var j=0; j<bs.length; j++){
                     var b = bs[j];
                     var hex = nibble_to_hex((b & 0xF0) >>> 4) 
-                       + nibble_to_hex(b &0x0F);buffer += '%'+hex;
+                            + nibble_to_hex(b &0x0F);
+                    buffer += '%'+hex;
                }
             }
-            return encodeURIComponent(buffer);    
+            return buffer;    
              
         },
 
@@ -601,10 +613,14 @@ Roo.factory(conf, Roo.data);
         /** @type Boolean */
         isSafari : isSafari,
         /** @type Boolean */
+        isFirefox : isFirefox,
+        /** @type Boolean */
         isIE : isIE,
         /** @type Boolean */
         isIE7 : isIE7,
         /** @type Boolean */
+        isIE11 : isIE11,
+        /** @type Boolean */
         isGecko : isGecko,
         /** @type Boolean */
         isBorderBox : isBorderBox,
@@ -614,6 +630,8 @@ Roo.factory(conf, Roo.data);
         isLinux : isLinux,
         /** @type Boolean */
         isMac : isMac,
+        /** @type Boolean */
+        isTouch : isTouch,
 
         /**
          * By default, Ext intelligently decides whether floating elements should be shimmed. If you are using flash,
@@ -643,4 +661,7 @@ Roo.factory(conf, Roo.data);
 })();
 
 Roo.namespace("Roo", "Roo.util", "Roo.grid", "Roo.dd", "Roo.tree", "Roo.data",
-                "Roo.form", "Roo.menu", "Roo.state", "Roo.lib", "Roo.layout", "Roo.app", "Roo.ux");
+                "Roo.form", "Roo.menu", "Roo.state", "Roo.lib", "Roo.layout",
+                "Roo.app", "Roo.ux",
+                "Roo.bootstrap",
+                "Roo.bootstrap.dash");