-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpgwbrowser.min.js
More file actions
9 lines (9 loc) · 6.13 KB
/
pgwbrowser.min.js
File metadata and controls
9 lines (9 loc) · 6.13 KB
1
2
3
4
5
6
7
8
9
/**
* PgwBrowser - Version 1.2
*
* Copyright 2014, Jonathan M. Piat
* http://pgwjs.com - http://pagawa.com
*
* Released under the GNU GPLv3 license - http://opensource.org/licenses/gpl-3.0
*/
(function(a){a.pgwBrowser=function(){var c={};c.userAgent=navigator.userAgent;c.browser={};c.viewport={};c.os={};resizeEvent=null;var b=[{name:"Chromium",group:"Chrome",identifier:"Chromium/([0-9.]*)"},{name:"Chrome Mobile",group:"Chrome",identifier:"Chrome/([0-9.]*) Mobile",versionIdentifier:"Chrome/([0-9.]*)"},{name:"Chrome",group:"Chrome",identifier:"Chrome/([0-9.]*)"},{name:"Chrome for iOS",group:"Chrome",identifier:"CriOS/([0-9.]*)"},{name:"Android Browser",group:"Chrome",identifier:"CrMo/([0-9.]*)"},{name:"Firefox",group:"Firefox",identifier:"Firefox/([0-9.]*)"},{name:"Opera Mini",group:"Opera",identifier:"Opera Mini/([0-9.]*)"},{name:"Opera",group:"Opera",identifier:"Opera ([0-9.]*)"},{name:"Opera",group:"Opera",identifier:"Opera/([0-9.]*)",versionIdentifier:"Version/([0-9.]*)"},{name:"IEMobile",group:"Explorer",identifier:"IEMobile/([0-9.]*)"},{name:"Internet Explorer",group:"Explorer",identifier:"MSIE ([a-zA-Z0-9.]*)"},{name:"Internet Explorer",group:"Explorer",identifier:"Trident/([0-9.]*)",versionIdentifier:"rv:([0-9.]*)"},{name:"Safari",group:"Safari",identifier:"Safari/([0-9.]*)",versionIdentifier:"Version/([0-9.]*)"}];var j=[{name:"Windows 2000",group:"Windows",identifier:"Windows NT 5.0",version:"5.0"},{name:"Windows XP",group:"Windows",identifier:"Windows NT 5.1",version:"5.1"},{name:"Windows Vista",group:"Windows",identifier:"Windows NT 6.0",version:"6.0"},{name:"Windows 7",group:"Windows",identifier:"Windows NT 6.1",version:"7.0"},{name:"Windows 8",group:"Windows",identifier:"Windows NT 6.2",version:"8.0"},{name:"Windows 8.1",group:"Windows",identifier:"Windows NT 6.3",version:"8.1"},{name:"Windows Phone",group:"Windows Phone",identifier:"Windows Phone ([0-9.]*)"},{name:"Windows Phone",group:"Windows Phone",identifier:"Windows Phone OS ([0-9.]*)"},{name:"Windows",group:"Windows",identifier:"Windows"},{name:"Chrome OS",group:"Chrome OS",identifier:"CrOS"},{name:"Android",group:"Android",identifier:"Android",versionIdentifier:"Android ([a-zA-Z0-9.-]*)"},{name:"iPad",group:"iOS",identifier:"iPad",versionIdentifier:"OS ([0-9_]*)",versionSeparator:"[_|.]"},{name:"iPod",group:"iOS",identifier:"iPod",versionIdentifier:"OS ([0-9_]*)",versionSeparator:"[_|.]"},{name:"iPhone",group:"iOS",identifier:"iPhone OS",versionIdentifier:"OS ([0-9_]*)",versionSeparator:"[_|.]"},{name:"Mac OS X Cheetah",group:"Mac OS",identifier:"Mac OS X (10([_|.])0([0-9_.]*))",versionSeparator:"[_|.]"},{name:"Mac OS X Puma",group:"Mac OS",identifier:"Mac OS X (10([_|.])1([0-9_.]*))",versionSeparator:"[_|.]"},{name:"Mac OS X Jaguar",group:"Mac OS",identifier:"Mac OS X (10([_|.])2([0-9_.]*))",versionSeparator:"[_|.]"},{name:"Mac OS X Panther",group:"Mac OS",identifier:"Mac OS X (10([_|.])3([0-9_.]*))",versionSeparator:"[_|.]"},{name:"Mac OS X Tiger",group:"Mac OS",identifier:"Mac OS X (10([_|.])4([0-9_.]*))",versionSeparator:"[_|.]"},{name:"Mac OS X Leopard",group:"Mac OS",identifier:"Mac OS X (10([_|.])5([0-9_.]*))",versionSeparator:"[_|.]"},{name:"Mac OS X Snow Leopard",group:"Mac OS",identifier:"Mac OS X (10([_|.])6([0-9_.]*))",versionSeparator:"[_|.]"},{name:"Mac OS X Lion",group:"Mac OS",identifier:"Mac OS X (10([_|.])7([0-9_.]*))",versionSeparator:"[_|.]"},{name:"Mac OS X Mountain Lion",group:"Mac OS",identifier:"Mac OS X (10([_|.])8([0-9_.]*))",versionSeparator:"[_|.]"},{name:"Mac OS X Mavericks",group:"Mac OS",identifier:"Mac OS X (10([_|.])9([0-9_.]*))",versionSeparator:"[_|.]"},{name:"Mac OS",group:"Mac OS",identifier:"Mac OS"},{name:"Ubuntu",group:"Linux",identifier:"Ubuntu",versionIdentifier:"Ubuntu/([0-9.]*)"},{name:"Debian",group:"Linux",identifier:"Debian"},{name:"Gentoo",group:"Linux",identifier:"Gentoo"},{name:"Linux",group:"Linux",identifier:"Linux"},{name:"BlackBerry",group:"BlackBerry",identifier:"BlackBerry"}];var h=function(){var o=c.userAgent.toLowerCase();for(i in b){var p=new RegExp(b[i].identifier.toLowerCase());var n=p.exec(o);if(n!=null&&n[1]){c.browser.name=b[i].name;c.browser.group=b[i].group;if(b[i].versionIdentifier){var m=new RegExp(b[i].versionIdentifier.toLowerCase());var l=m.exec(o);if(l!=null&&l[1]){k(l[1])}}else{k(n[1])}break}}return true};var k=function(l){var m=l.split(".",2);c.browser.fullVersion=l;if(m[0]){c.browser.majorVersion=parseInt(m[0])}if(m[1]){c.browser.minorVersion=parseInt(m[1])}return true};var f=function(){var o=c.userAgent.toLowerCase();for(i in j){var p=new RegExp(j[i].identifier.toLowerCase());var n=p.exec(o);if(n!=null){c.os.name=j[i].name;c.os.group=j[i].group;if(j[i].version){g(j[i].version,(j[i].versionSeparator)?j[i].versionSeparator:".")}else{if(n[1]){g(n[1],(j[i].versionSeparator)?j[i].versionSeparator:".")}else{if(j[i].versionIdentifier){var m=new RegExp(j[i].versionIdentifier.toLowerCase());var l=m.exec(o);if(l!=null&&l[1]){g(l[1],(j[i].versionSeparator)?j[i].versionSeparator:".")}}}}break}}return true};var g=function(l,n){if(n.substr(0,1)=="["){var m=l.split(new RegExp(n,"g"),2)}else{var m=l.split(n,2)}if(n!="."){l=l.replace(new RegExp(n,"g"),".")}c.os.fullVersion=l;if(m[0]){c.os.majorVersion=parseInt(m[0])}if(m[1]){c.os.minorVersion=parseInt(m[1])}return true};var d=function(l){c.viewport.width=a(window).width();c.viewport.height=a(window).height();if(typeof l=="undefined"){if(resizeEvent==null){a(window).trigger("PgwBrowser::StartResizing")}else{clearTimeout(resizeEvent)}resizeEvent=setTimeout(function(){a(window).trigger("PgwBrowser::StopResizing");clearTimeout(resizeEvent);resizeEvent=null},300)}return true};var e=function(){if(typeof window.orientation=="undefined"){if(c.viewport.width>=c.viewport.height){c.viewport.orientation="landscape"}else{c.viewport.orientation="portrait"}}else{switch(window.orientation){case -90:case 90:c.viewport.orientation="landscape";break;default:c.viewport.orientation="portrait";break}}a(window).trigger("PgwBrowser::OrientationChange");return true};if(typeof window.pgwJsUserAgentTester!="undefined"){c.userAgent=window.pgwJsUserAgentTester}h();f();d(true);e();a(window).on("orientationchange",function(l){e()});a(window).resize(function(l){d()});return c}})(window.Zepto||window.jQuery);