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