]> jfr.im git - irc/quakenet/qwebirc.git/blobdiff - js/jslib.js
Fix issue 5 (send button for mobile phones).
[irc/quakenet/qwebirc.git] / js / jslib.js
index 8b3c2cf5ff0c30228963f0fbc0aa3b82bc6fe0f3..b61038dc6d7e290b056f24a283779f0a40c24fe5 100644 (file)
@@ -50,7 +50,7 @@ qwebirc.util.parseURI = function(uri) {
   
   var args = querystring.split("&");
   
-  for(i=0;i<args.length;i++) {
+  for(var i=0;i<args.length;i++) {
     var r = args[i].splitMax("=", 2);
     if(r.length < 2)
       continue;
@@ -102,9 +102,9 @@ qwebirc.util.NBSPCreate = function(text, element) {
 
 qwebirc.util.longtoduration = function(l) {
   var seconds = l % 60;
-  var minutes = Math.round((l % 3600) / 60);
-  var hours = Math.round((l % (3600 * 24)) / 3600);
-  var days = Math.round(l / (24*3600));
+  var minutes = Math.floor((l % 3600) / 60);
+  var hours = Math.floor((l % (3600 * 24)) / 3600);
+  var days = Math.floor(l / (24*3600));
   
   return days + " days " + hours + " hours " + minutes + " minutes " + seconds + " seconds";
 }
@@ -228,7 +228,7 @@ qwebirc.util.importJS = function(name, watchFor, onload) {
       if(eval("typeof " + watchFor) != "undefined") {
         onload();
       } else {
-        checkFn.delay(10);
+        checkFn.delay(100);
       }
     }
     checkFn();
@@ -266,7 +266,7 @@ qwebirc.util.b64Table = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz012
 qwebirc.util.b64Encode = function(data) {
   var output = [];
   var table = qwebirc.util.b64Table;
-  for(i=0;i<data.length;) {
+  for(var i=0;i<data.length;) {
     var chr1 = data.charCodeAt(i++);
     var chr2 = data.charCodeAt(i++);
     var chr3 = data.charCodeAt(i++);
@@ -312,3 +312,55 @@ qwebirc.util.b64Decode = function(data) {
 
   return output.join("");
 }
+
+qwebirc.util.composeAnd = function() {
+ var xargs = arguments;
+
+  return function() {
+    for(var i=0;i<xargs.length;i++)
+      if(!xargs[i].apply(this, arguments))
+        return false;
+        
+    return true;
+  }
+}
+
+qwebirc.util.invertFn = function(fn) {
+  return function() {
+    return !fn.apply(this, arguments);
+  }
+}
+
+qwebirc.util.deviceHasKeyboard = function() {
+  var determine = function() {
+    if(Browser.Engine.ipod)
+      return true;
+
+    var MOBILE_UAs = ["Nintendo Wii", " PIE", "BlackBerry", "IEMobile", "Windows CE", "Nokia", "Opera Mini", "Mobile", "mobile", "Pocket", "pocket", "Android"];
+    /* safari not included because iphones/ipods send that, and we checked for iphone/ipod specifically above */
+    var DESKTOP_UAs = ["Chrome", "Firefox", "Camino", "Iceweasel", "K-Meleon", "Konqueror", "SeaMonkey", "Windows NT", "Windows 9"];
+
+    var ua = navigator.userAgent;
+
+    var contains = function(v) {
+      return ua.indexOf(v) > -1;
+    }
+
+    for(var i=0;i<MOBILE_UAs.length;i++)
+      if(contains(MOBILE_UAs[i]))
+        return false;
+      
+    for(var i=0;i<DESKTOP_UAs.length;i++)
+      if(contains(DESKTOP_UAs[i]))
+        return true;
+      
+    return false;
+  };
+  var v = determine();
+  
+  qwebirc.util.deviceHasKeyboard = function() {
+    return v;
+  }
+  
+  return v;
+}