This repository was archived by the owner on Jul 22, 2024. It is now read-only.
forked from rafaelp/css_browser_selector
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathcss_browser_selector.js
11 lines (10 loc) · 3.96 KB
/
css_browser_selector.js
1
2
3
4
5
6
7
8
9
10
11
/*
CSS Browser Selector (revived) 0.7
Originally written by Rafael Lima (http://rafael.adm.br)
http://rafael.adm.br/css_browser_selector
Modified by Ian Armstrong (http://imperativeideas.com)
License: http://creativecommons.org/licenses/by/2.5/
Forked Repo:
https://github.com/isarmstrong/css_browser_selector
*/
function log(e){window.console&&showLog&&console.log(e)}function css_browser_selector(e){function i(){var e=window.outerWidth||m.clientWidth,i=window.outerHeight||m.clientHeight;t.orientation=i>e?"portrait":"landscape",m.className=m.className.replace(/ ?orientation_\w+/g,"").replace(/ [min|max|cl]+[w|h]_\d+/g,"");for(var n=s-1;n>=0;n--)if(e>=o[n]){t.maxw=o[n];break}widthClasses="";for(var r in t)widthClasses+=" "+r+"_"+t[r];return m.className=m.className+widthClasses,widthClasses}var t={},o=[320,480,640,768,1024,1152,1280,1440,1680,1920,2560],s=o.length,n=e.toLowerCase(),r=function(e){return RegExp(e,"i").test(n)},a=function(e,i){i=i.replace(".","_");for(var t=i.indexOf("_"),o="";t>0;)o+=" "+e+i.substring(0,t),t=i.indexOf("_",t+1);return o+=" "+e+i},p="gecko",d="webkit",g="chrome",l="firefox",x="safari",c="opera",w="mobile",E="android",R="blackberry",$="lang_",_="device_",m=document.documentElement,b=[!/opera|webtv/i.test(n)&&/msie\s(\d+)/.test(n)?"ie ie"+(/trident\/7\.0/.test(n)?"11":RegExp.$1):r(!/opera|webtv/i.test(n)&&/msie\s(\d+)/.test(n))?"ie ie"+(/trident\/6\.0/.test(n)?"10":RegExp.$1):r(!/opera|webtv/i.test(n)&&/msie\s(\d+)/.test(n))?"ie ie"+(/trident\/5\.0/.test(n)?"9":RegExp.$1):r(!/opera|webtv/i.test(n)&&/msie\s(\d+)/.test(n))?"ie ie"+(/trident\/4\.0/.test(n)?"8":RegExp.$1):r("firefox/")?p+" "+l+(/firefox\/((\d+)(\.(\d+))(\.\d+)*)/.test(n)?" "+l+RegExp.$2+" "+l+RegExp.$2+"_"+RegExp.$4:""):r("chrome")?d+" "+g+(/chrome\/((\d+)(\.(\d+))(\.\d+)*)/.test(n)?" "+g+RegExp.$2+(RegExp.$4>0?" "+g+RegExp.$2+"_"+RegExp.$4:""):""):r("gecko/")?p:r("opera")?c+(/version\/((\d+)(\.(\d+))(\.\d+)*)/.test(n)?" "+c+RegExp.$2+" "+c+RegExp.$2+"_"+RegExp.$4:/opera(\s|\/)(\d+)\.(\d+)/.test(n)?" "+c+RegExp.$2+" "+c+RegExp.$2+"_"+RegExp.$3:""):r("konqueror")?"konqueror":r("blackberry")?R+(/Version\/(\d+)(\.(\d+)+)/i.test(n)?" "+R+RegExp.$1+" "+R+RegExp.$1+RegExp.$2.replace(".","_"):/Blackberry ?(([0-9]+)([a-z]?))[\/|;]/gi.test(n)?" "+R+RegExp.$2+(RegExp.$3?" "+R+RegExp.$2+RegExp.$3:""):""):r("android")?E+(/Version\/(\d+)(\.(\d+))+/i.test(n)?" "+E+RegExp.$1+" "+E+RegExp.$1+RegExp.$2.replace(".","_"):"")+(/Android (.+); (.+) Build/i.test(n)?" "+_+RegExp.$2.replace(/ /g,"_").replace(/-/g,"_"):""):r("iron")?d+" iron":r("applewebkit/")?d+" "+x+(/version\/((\d+)(\.(\d+))(\.\d+)*)/.test(n)?" "+x+RegExp.$2+" "+x+RegExp.$2+RegExp.$3.replace(".","_"):/ Safari\/(\d+)/i.test(n)?"419"==RegExp.$1||"417"==RegExp.$1||"416"==RegExp.$1||"412"==RegExp.$1?" "+x+"2_0":"312"==RegExp.$1?" "+x+"1_3":"125"==RegExp.$1?" "+x+"1_2":"85"==RegExp.$1?" "+x+"1_0":"":""):r("mozilla/")?p:"",r("android|mobi|mobile|j2me|iphone|ipod|ipad|blackberry|playbook|kindle|silk")?w:"",r("j2me")?"j2me":r("ipad|ipod|iphone")?(/CPU( iPhone)? OS (\d+[_|\.]\d+([_|\.]\d+)*)/i.test(n)?"ios"+a("ios",RegExp.$2):"")+" "+(/(ip(ad|od|hone))/gi.test(n)?RegExp.$1:""):r("playbook")?"playbook":r("kindle|silk")?"kindle":r("playbook")?"playbook":r("mac")?"mac"+(/mac os x ((\d+)[.|_](\d+))/.test(n)?" mac"+RegExp.$2+" mac"+RegExp.$1.replace(".","_"):""):r("win")?"win"+(r("windows nt 6.3")?" win8.1":r("windows nt 6.2")?" win8":r("windows nt 6.1")?" win7":r("windows nt 6.0")?" vista":r("windows nt 5.2")||r("windows nt 5.1")?" win_xp":r("windows nt 5.0")?" win_2k":r("windows nt 4.0")||r("WinNT4.0")?" win_nt":""):r("freebsd")?"freebsd":r("x11|linux")?"linux":"",/[; |\[](([a-z]{2})(\-[a-z]{2})?)[)|;|\]]/i.test(n)?($+RegExp.$2).replace("-","_")+(""!=RegExp.$3?(" "+$+RegExp.$1).replace("-","_"):""):"",r("ipad|iphone|ipod")&&!r("safari")?"ipad_app":""];window.onresize=i,i();var f=b.join(" ")+" js ";return m.className=(f+m.className.replace(/\b(no[-|_]?)?js\b/g,"")).replace(/^ /,"").replace(/ +/g," "),f}showLog=!0,css_browser_selector(navigator.userAgent);