123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- (function() {
- var previousDevice, _addClass, _doc_element, _find, _handleOrientation, _hasClass, _orientation_event, _removeClass, _supports_orientation, _user_agent;
- previousDevice = window.device;
- window.device = {};
- _doc_element = window.document.documentElement;
- _user_agent = window.navigator.userAgent.toLowerCase();
- device.ios = function() {
- return device.iphone() || device.ipod() || device.ipad();
- };
- device.iphone = function() {
- return _find('iphone');
- };
- device.ipod = function() {
- return _find('ipod');
- };
- device.ipad = function() {
- return _find('ipad');
- };
- device.android = function() {
- return _find('android');
- };
- device.androidPhone = function() {
- return device.android() && _find('mobile');
- };
- device.androidTablet = function() {
- return device.android() && !_find('mobile');
- };
- device.blackberry = function() {
- return _find('blackberry') || _find('bb10') || _find('rim');
- };
- device.blackberryPhone = function() {
- return device.blackberry() && !_find('tablet');
- };
- device.blackberryTablet = function() {
- return device.blackberry() && _find('tablet');
- };
- device.windows = function() {
- return _find('windows');
- };
- device.windowsPhone = function() {
- return device.windows() && _find('phone');
- };
- device.windowsTablet = function() {
- return device.windows() && _find('touch');
- };
- device.fxos = function() {
- return (_find('(mobile;') || _find('(tablet;')) && _find('; rv:');
- };
- device.fxosPhone = function() {
- return device.fxos() && _find('mobile');
- };
- device.fxosTablet = function() {
- return device.fxos() && _find('tablet');
- };
- device.meego = function() {
- return _find('meego');
- };
- device.mobile = function() {
- return device.androidPhone() || device.iphone() || device.ipod() || device.windowsPhone() || device.blackberryPhone() || device.fxosPhone() || device.meego();
- };
- device.tablet = function() {
- return device.ipad() || device.androidTablet() || device.blackberryTablet() || device.windowsTablet() || device.fxosTablet();
- };
- device.portrait = function() {
- return Math.abs(window.orientation) !== 90;
- };
- device.landscape = function() {
- return Math.abs(window.orientation) === 90;
- };
- device.noConflict = function() {
- window.device = previousDevice;
- return this;
- };
- _find = function(needle) {
- return _user_agent.indexOf(needle) !== -1;
- };
- _hasClass = function(class_name) {
- var regex;
- regex = new RegExp(class_name, 'i');
- return _doc_element.className.match(regex);
- };
- _addClass = function(class_name) {
- if (!_hasClass(class_name)) {
- return _doc_element.className += " " + class_name;
- }
- };
- _removeClass = function(class_name) {
- if (_hasClass(class_name)) {
- return _doc_element.className = _doc_element.className.replace(class_name, "");
- }
- };
- if (device.ios()) {
- if (device.ipad()) {
- _addClass("ios ipad tablet");
- } else if (device.iphone()) {
- _addClass("ios iphone mobile");
- } else if (device.ipod()) {
- _addClass("ios ipod mobile");
- }
- } else if (device.android()) {
- if (device.androidTablet()) {
- _addClass("android tablet");
- } else {
- _addClass("android mobile");
- }
- } else if (device.blackberry()) {
- if (device.blackberryTablet()) {
- _addClass("blackberry tablet");
- } else {
- _addClass("blackberry mobile");
- }
- } else if (device.windows()) {
- if (device.windowsTablet()) {
- _addClass("windows tablet");
- } else if (device.windowsPhone()) {
- _addClass("windows mobile");
- } else {
- _addClass("desktop");
- }
- } else if (device.fxos()) {
- if (device.fxosTablet()) {
- _addClass("fxos tablet");
- } else {
- _addClass("fxos mobile");
- }
- } else if (device.meego()) {
- _addClass("meego mobile");
- } else {
- _addClass("desktop");
- }
- _handleOrientation = function() {
- if (device.landscape()) {
- _removeClass("portrait");
- return _addClass("landscape");
- } else {
- _removeClass("landscape");
- return _addClass("portrait");
- }
- };
- _supports_orientation = "onorientationchange" in window;
- _orientation_event = _supports_orientation ? "orientationchange" : "resize";
- if (window.addEventListener) {
- window.addEventListener(_orientation_event, _handleOrientation, false);
- } else if (window.attachEvent) {
- window.attachEvent(_orientation_event, _handleOrientation);
- } else {
- window[_orientation_event] = _handleOrientation;
- }
- _handleOrientation();
- }).call(this);
- function IsPC()
- {
- var userAgentInfo = navigator.userAgent;
- var Agents = new Array("Android", "iPhone", "SymbianOS", "Windows Phone", "iPad", "iPod");
- var flag = true;
- for (var v = 0; v < Agents.length; v++) {
- if (userAgentInfo.indexOf(Agents[v]) > 0) { flag = false; break; }
- }
- return flag;
- }
- function iOSversion() {
- if (/iP(hone|od|ad)/.test(navigator.platform)) {
- var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
- return [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
- }
- }
|