+
+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;
+}
+
+qwebirc.util.generateID_ID = 0;
+qwebirc.util.generateID = function() {
+ return "qqa-" + qwebirc.util.generateID_ID++;
+};
+
+qwebirc.util.arrayCmp = function(a, b) {
+ for(var p=0;p<a.length;p++) {
+ var ap = a[p];
+ var bp = b[p];
+ if(ap == bp)
+ continue;
+
+ if(ap < bp)
+ return -1;
+
+ return 1;
+ }
+ return 0;
+};
+
+qwebirc.util.__log = function(x) {
+ if(QWEBIRC_DEBUG) {
+ if(typeof console == "undefined") {
+ alert("log: " + x);
+ } else {
+ console.log(x);
+ }
+ }
+};
+
+qwebirc.util.logger = {
+ log: function(x) { qwebirc.util.__log("L " + x) },
+ info: function(x) { qwebirc.util.__log("I " + x) },
+ error: function(x) { qwebirc.util.__log("E " + x) },
+ warn: function(x) { qwebirc.util.__log("W " + x) }
+};
+
+qwebirc.util.log = qwebirc.util.logger.log;