From d1c40bbd877dbc99b695ed8f97d0cc2d8dd6adfc Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Thu, 15 Aug 2013 02:59:14 -0400
Subject: [PATCH] Distinguish mobile/tablet/touch devices

---
 program/js/common.js |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/program/js/common.js b/program/js/common.js
index f7c0a75..18a1928 100644
--- a/program/js/common.js
+++ b/program/js/common.js
@@ -62,7 +62,7 @@
   this.safari = (!this.chrome && (this.agent_lc.indexOf('safari') > 0 || this.agent_lc.indexOf('applewebkit') > 0));
   this.konq = (this.agent_lc.indexOf('konqueror') > 0);
   this.mz = (this.dom && !this.ie && !this.ns && !this.chrome && !this.safari && !this.konq && this.agent.indexOf('Mozilla') >= 0);
-  this.iphone = (this.safari && this.agent_lc.indexOf('iphone') > 0);
+  this.iphone = (this.safari && (this.agent_lc.indexOf('iphone') > 0 || this.agent_lc.indexOf('ipod') > 0));
   this.ipad = (this.safari && this.agent_lc.indexOf('ipad') > 0);
   this.opera = window.opera ? true : false;
 
@@ -83,7 +83,9 @@
   if (this.safari && (/;\s+([a-z]{2})-[a-z]{2}\)/.test(this.agent_lc)))
     this.lang = RegExp.$1;
 
-  this.mobile = this.agent_lc.match(/iphone|ipad|ipod|android|blackberry|iemobile|opera mini|opera mobi/);
+  this.tablet = /ipad|android|xoom|sch-i800|playbook|tablet|kindle/i.test(this.agent_lc);
+  this.mobile = /iphone|ipod|blackberry|iemobile|opera mini|opera mobi|mobile/i.test(this.agent_lc);
+  this.touch = this.mobile || this.tablet;
   this.dhtml = ((this.ie4 && this.win) || this.ie5 || this.ie6 || this.ns4 || this.mz);
   this.vml = (this.win && this.ie && this.dom && !this.opera);
   this.pngalpha = (this.mz || (this.opera && this.vendver >= 6) || (this.ie && this.mac && this.vendver >= 5) ||
@@ -127,6 +129,8 @@
 
     if (this.mobile)
       classname += ' mobile';
+    if (this.tablet)
+      classname += ' tablet';
 
     if (document.documentElement)
       document.documentElement.className += classname;

--
Gitblit v1.9.1