1/*
2 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
3 * Copyright (C) 2003-2007 Frederico Caldeira Knabben
4 *
5 * == BEGIN LICENSE ==
6 *
7 * Licensed under the terms of any of the following licenses at your
8 * choice:
9 *
10 *  - GNU General Public License Version 2 or later (the "GPL")
11 *    http://www.gnu.org/licenses/gpl.html
12 *
13 *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
14 *    http://www.gnu.org/licenses/lgpl.html
15 *
16 *  - Mozilla Public License Version 1.1 or later (the "MPL")
17 *    http://www.mozilla.org/MPL/MPL-1.1.html
18 *
19 * == END LICENSE ==
20 *
21 * Contains browser detection information.
22 */
23
24var s = navigator.userAgent.toLowerCase() ;
25
26var FCKBrowserInfo =
27{
28	IsIE		: /*@cc_on!@*/false,
29	IsIE7		: /*@cc_on!@*/false && s.Contains('msie 7'),
30	IsGecko		: s.Contains('gecko/'),
31	IsSafari	: s.Contains(' applewebkit/'),		// Read "IsWebKit"
32	IsOpera		: !!window.opera,
33	IsMac		: s.Contains('macintosh')
34} ;
35
36// Completes the browser info with further Gecko information.
37(function( browserInfo )
38{
39	browserInfo.IsGeckoLike = ( browserInfo.IsGecko || browserInfo.IsSafari || browserInfo.IsOpera ) ;
40
41	if ( browserInfo.IsGecko )
42	{
43		var geckoVersion = s.match( /gecko\/(\d+)/ )[1] ;
44
45		// Actually "10" refers to Gecko versions before Firefox 1.5, when
46		// Gecko 1.8 (build 20051111) has been released.
47
48		// Some browser (like Mozilla 1.7.13) may have a Gecko build greater
49		// than 20051111, so we must also check for the revision number not to
50		// be 1.7 (we are assuming that rv < 1.7 will not have build > 20051111).
51
52		// TODO: Future versions may consider the rv number only, but it is
53		// still to check that all Gecko based browser present the rv number.
54		browserInfo.IsGecko10 = ( ( geckoVersion < 20051111 ) || ( /rv:1\.7/.test(s) ) ) ;
55		browserInfo.IsGecko19 = /rv:1\.9/.test(s) ;
56	}
57	else
58		browserInfo.IsGecko10 = false ;
59})(FCKBrowserInfo) ;
60