source: sandbox/expressoMail1_2/MailArchiver/2.2/phpgwapi/js/browser/browserDetect.js @ 4644

Revision 4644, 6.2 KB checked in by fernando-alberto, 13 years ago (diff)

Ticket #1269 - Mergiando revisoes do brach22 de rev4447 ate rev4643

  • Property svn:executable set to *
Line 
1(function()
2{               
3        // NAVIGATOR USER AGENT
4        var agt                 = navigator.userAgent.toLowerCase();
5        var appVer              = navigator.appVersion.toLowerCase();
6
7        var is_minor            = parseFloat(appVer);
8        var is_major            = parseInt(is_minor);
9
10        var iePos               = appVer.indexOf('msie');
11
12        if ( iePos != -1 )
13        {
14            is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));
15            is_major = parseInt(is_minor);
16        }
17       
18        //Konqueror
19       
20        var is_konq = false;
21        var kqPos   = agt.indexOf('konqueror');
22       
23        if ( kqPos !=-1 )
24        {
25            is_konq  = true;
26            is_minor = parseFloat(agt.substring(kqPos+10,agt.indexOf(';',kqPos)));
27            is_major = parseInt(is_minor);
28        }
29
30        //Is_Khtml
31        var is_khtml    = (((agt.indexOf('safari')!=-1) && (agt.indexOf('mac')!=-1)) && ( is_konq ));
32
33        //Is_Opera
34        var is_opera    = (agt.indexOf("opera") != -1 );
35
36        //Is_IE
37        var is_ie               = ((iePos!=-1) && (!is_opera) && (!is_khtml));
38
39        // Gecko
40        var is_gecko = ((!is_khtml)&&(navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;
41        var is_gver  = 0;
42       
43        if (is_gecko)
44            is_gver = navigator.productSub;
45
46        // Moz
47        var is_moz   = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
48                        (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
49                        (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
50                        (is_gecko) && ((navigator.vendor=="")||(navigator.vendor=="Mozilla")));
51
52        var _browser = [
53
54            // Chrome   
55            ['chrome8', ( agt.indexOf('chrome/8') != -1 ) ],
56            ['chrome11', ( agt.indexOf('chrome/11') != -1 ) ],
57
58            // EPIPHANY
59            ['epiphany2', ( agt.indexOf('epiphany/2') != -1 ) ],
60
61            // FIREFOX
62            ['firefox1', ( agt.indexOf('firefox/1') != -1 ) ],
63            ['firefox2', ( agt.indexOf('firefox/2') != -1 ) ],
64            ['firefox3', ( agt.indexOf('firefox/3') != -1 ) ],
65            ['firefox4', ( agt.indexOf('firefox/4') != -1 ) ],
66            ['firefox5', ( agt.indexOf('firefox/5') != -1 ) ],
67           
68
69            // ICEWEASEL
70            ['iceweasel3', (agt.indexOf('iceweasel/3') != -1 ) ],
71
72            // IE
73            ['ie3',     (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major < 4 )) ],
74            ['ie4', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 4 )) ],
75            ['ie5', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 5 )) ],
76            ['ie55', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (agt.indexOf("msie 5.5") !=-1 )) ],
77            ['ie6', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 6 )) ],
78            ['ie7', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 7 )) ],
79            ['ie8', (((iePos!=-1) && (!is_opera) && (!is_khtml)) && (is_major == 8 )) ],
80
81            //IS?
82            ['is_ie', ((iePos!=-1) && (!is_opera) && (!is_khtml)) ],
83            ['is_gecko', is_gecko ],
84            ['is_opera', is_opera ],
85            ['is_khtml', is_khtml ],
86            ['is_moz', is_moz ],
87
88            // OPERA
89            ['is_opera', is_opera],
90            ['opera2', ( agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1) ],
91            ['opera3', ( agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1) ],
92            ['opera4', ( agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1) ],
93            ['opera5', ( agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1) ],
94            ['opera6', ( agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1) ],
95            ['opera7', ( agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1) ],
96            ['opera8', ( agt.indexOf("opera 8") != -1 || agt.indexOf("opera/8") != -1) ],
97            ['opera9', ( agt.indexOf("opera 9") != -1 || agt.indexOf("opera/9") != -1) ],
98
99            // IS SAFARI/KHTML
100            ['safari', ( agt.indexOf('safari') != -1 ) ],
101            ['khtml', is_khtml ]
102        ];
103
104        function isCompatible()
105        {
106            if( arguments.length > 0 )
107            {
108                var _args = arguments;
109
110                for( i = 0; i < _args.length; i++ )
111                {
112                    for( j = 0; j < _browser.length; j++ )
113                    {
114                        if( _args[i].toLowerCase() === _browser[j][0] )
115                        {
116                            if( _browser[j][1] )
117                                return true;
118                        }
119                    }   
120                }
121
122                return false;
123            }
124        }
125
126        function SnifferBrowser()
127        {
128        }
129
130        SnifferBrowser.prototype.isCompatible = isCompatible;
131
132        window.SnifferBrowser = new SnifferBrowser;
133       
134})();
135
136/*  Script utilizado para detectar o browser
137
138        Variaveis Globais no Expresso:
139
140        OS              -> retorna o Sistema Operacional
141        browser -> retorna o nome do Browser
142        version -> retorna a versão do Browser
143        isExplorer -> retorna true se Browser for Internet Explorer
144*/
145        var detect = navigator.userAgent.toLowerCase();
146        var OS,browser,version,total,thestring;
147        var isExplorer = false;
148
149        if (checkIt('konqueror'))
150        {
151                browser = "Konqueror";
152                OS = "Linux";
153        }
154        else if (checkIt('safari')) browser = "Safari"
155        else if (checkIt('omniweb')) browser = "OmniWeb"
156        else if (checkIt('opera')) browser = "Opera"
157        else if (checkIt('webtv')) browser = "WebTV";
158        else if (checkIt('icab')) browser = "iCab";
159        else if (checkIt('msie')) {browser = "Internet Explorer";isExplorer=true;}
160        else if (!checkIt('compatible'))
161        {
162                browser = "Netscape Navigator"
163                version = detect.charAt(8);
164        }
165        else browser = "An unknown browser";
166       
167        if (!version) version = detect.charAt(place + thestring.length);
168       
169        if (!OS)
170        {
171                if (checkIt('linux')) OS = "Linux";
172                else if (checkIt('x11')) OS = "Unix";
173                else if (checkIt('mac')) OS = "Mac"
174                else if (checkIt('win')) OS = "Windows"
175                else OS = "an unknown operating system";
176        }
177       
178        function checkIt(string)
179        {
180                place = detect.indexOf(string) + 1;
181                thestring = string;
182                return place;
183        }
Note: See TracBrowser for help on using the repository browser.