+++ /dev/null
-/*\r
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
-For licensing, see LICENSE.html or http://ckeditor.com/license\r
-*/\r
-\r
-/**\r
- * @fileOverview Defines the {@link CKEDITOR.env} object, which constains\r
- * environment and browser information.\r
- */\r
-\r
-if ( !CKEDITOR.env )\r
-{\r
- /**\r
- * @namespace Environment and browser information.\r
- */\r
- CKEDITOR.env = (function()\r
- {\r
- var agent = navigator.userAgent.toLowerCase();\r
- var opera = window.opera;\r
-\r
- var env =\r
- /** @lends CKEDITOR.env */\r
- {\r
- /**\r
- * Indicates that CKEditor is running on Internet Explorer.\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.ie )\r
- * alert( "I'm on IE!" );\r
- */\r
- ie : /*@cc_on!@*/false,\r
-\r
- /**\r
- * Indicates that CKEditor is running on Opera.\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.opera )\r
- * alert( "I'm on Opera!" );\r
- */\r
- opera : ( !!opera && opera.version ),\r
-\r
- /**\r
- * Indicates that CKEditor is running on a WebKit based browser, like\r
- * Safari.\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.webkit )\r
- * alert( "I'm on WebKit!" );\r
- */\r
- webkit : ( agent.indexOf( ' applewebkit/' ) > -1 ),\r
-\r
- /**\r
- * Indicates that CKEditor is running on Adobe AIR.\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.air )\r
- * alert( "I'm on AIR!" );\r
- */\r
- air : ( agent.indexOf( ' adobeair/' ) > -1 ),\r
-\r
- /**\r
- * Indicates that CKEditor is running on Macintosh.\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.mac )\r
- * alert( "I love apples!" );\r
- */\r
- mac : ( agent.indexOf( 'macintosh' ) > -1 ),\r
-\r
- /**\r
- * Indicates that CKEditor is running on a quirks mode environemnt.\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.quirks )\r
- * alert( "Nooooo!" );\r
- */\r
- quirks : ( document.compatMode == 'BackCompat' ),\r
-\r
- /**\r
- * Indicates that CKEditor is running on a mobile like environemnt.\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.mobile )\r
- * alert( "I'm running with CKEditor today!" );\r
- */\r
- mobile : ( agent.indexOf( 'mobile' ) > -1 ),\r
-\r
- /**\r
- * Indicates that the browser has a custom domain enabled. This has\r
- * been set with "document.domain".\r
- * @returns {Boolean} "true" if a custom domain is enabled.\r
- * @example\r
- * if ( CKEDITOR.env.isCustomDomain() )\r
- * alert( "I'm in a custom domain!" );\r
- */\r
- isCustomDomain : function()\r
- {\r
- if ( !this.ie )\r
- return false;\r
-\r
- var domain = document.domain,\r
- hostname = window.location.hostname;\r
-\r
- return domain != hostname &&\r
- domain != ( '[' + hostname + ']' ); // IPv6 IP support (#5434)\r
- },\r
-\r
- /**\r
- * Indicates that page is running under an encrypted connection.\r
- * @returns {Boolean} "true" if the page has an encrypted connection.\r
- * @example\r
- * if ( CKEDITOR.env.secure )\r
- * alert( "I'm in SSL!" );\r
- */\r
- secure : location.protocol == 'https:'\r
- };\r
-\r
- /**\r
- * Indicates that CKEditor is running on a Gecko based browser, like\r
- * Firefox.\r
- * @name CKEDITOR.env.gecko\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.gecko )\r
- * alert( "I'm riding a gecko!" );\r
- */\r
- env.gecko = ( navigator.product == 'Gecko' && !env.webkit && !env.opera );\r
-\r
- var version = 0;\r
-\r
- // Internet Explorer 6.0+\r
- if ( env.ie )\r
- {\r
- version = parseFloat( agent.match( /msie (\d+)/ )[1] );\r
-\r
- /**\r
- * Indicates that CKEditor is running on Internet Explorer 8.\r
- * @name CKEDITOR.env.ie8\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.ie8 )\r
- * alert( "I'm on IE8!" );\r
- */\r
- env.ie8 = !!document.documentMode;\r
-\r
- /**\r
- * Indicates that CKEditor is running on Internet Explorer 8 on\r
- * standards mode.\r
- * @name CKEDITOR.env.ie8Compat\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.ie8Compat )\r
- * alert( "Now I'm on IE8, for real!" );\r
- */\r
- env.ie8Compat = document.documentMode == 8;\r
-\r
- /**\r
- * Indicates that CKEditor is running on Internet Explorer 9's standards mode.\r
- * @name CKEDITOR.env.ie9Compat\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.ie9Compat )\r
- * alert( "IE9, the beauty of the web!" );\r
- */\r
- env.ie9Compat = document.documentMode == 9;\r
-\r
- /**\r
- * Indicates that CKEditor is running on an IE7-like environment, which\r
- * includes IE7 itself and IE8's IE7 document mode.\r
- * @name CKEDITOR.env.ie7Compat\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.ie8Compat )\r
- * alert( "I'm on IE7 or on an IE7 like IE8!" );\r
- */\r
- env.ie7Compat = ( ( version == 7 && !document.documentMode )\r
- || document.documentMode == 7 );\r
-\r
- /**\r
- * Indicates that CKEditor is running on an IE6-like environment, which\r
- * includes IE6 itself and IE7 and IE8 quirks mode.\r
- * @name CKEDITOR.env.ie6Compat\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.ie6Compat )\r
- * alert( "I'm on IE6 or quirks mode!" );\r
- */\r
- env.ie6Compat = ( version < 7 || env.quirks );\r
- }\r
-\r
- // Gecko.\r
- if ( env.gecko )\r
- {\r
- var geckoRelease = agent.match( /rv:([\d\.]+)/ );\r
- if ( geckoRelease )\r
- {\r
- geckoRelease = geckoRelease[1].split( '.' );\r
- version = geckoRelease[0] * 10000 + ( geckoRelease[1] || 0 ) * 100 + ( geckoRelease[2] || 0 ) * 1;\r
- }\r
- }\r
-\r
- // Opera 9.50+\r
- if ( env.opera )\r
- version = parseFloat( opera.version() );\r
-\r
- // Adobe AIR 1.0+\r
- // Checked before Safari because AIR have the WebKit rich text editor\r
- // features from Safari 3.0.4, but the version reported is 420.\r
- if ( env.air )\r
- version = parseFloat( agent.match( / adobeair\/(\d+)/ )[1] );\r
-\r
- // WebKit 522+ (Safari 3+)\r
- if ( env.webkit )\r
- version = parseFloat( agent.match( / applewebkit\/(\d+)/ )[1] );\r
-\r
- /**\r
- * Contains the browser version.<br />\r
- * <br />\r
- * For gecko based browsers (like Firefox) it contains the revision\r
- * number with first three parts concatenated with a padding zero\r
- * (e.g. for revision 1.9.0.2 we have 10900).<br />\r
- * <br />\r
- * For webkit based browser (like Safari and Chrome) it contains the\r
- * WebKit build version (e.g. 522).\r
- * @name CKEDITOR.env.version\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.ie && <b>CKEDITOR.env.version</b> <= 6 )\r
- * alert( "Ouch!" );\r
- */\r
- env.version = version;\r
-\r
- /**\r
- * Indicates that CKEditor is running on a compatible browser.\r
- * @name CKEDITOR.env.isCompatible\r
- * @type Boolean\r
- * @example\r
- * if ( CKEDITOR.env.isCompatible )\r
- * alert( "Your browser is pretty cool!" );\r
- */\r
- env.isCompatible =\r
- !env.mobile && (\r
- ( env.ie && version >= 6 ) ||\r
- ( env.gecko && version >= 10801 ) ||\r
- ( env.opera && version >= 9.5 ) ||\r
- ( env.air && version >= 1 ) ||\r
- ( env.webkit && version >= 522 ) ||\r
- false );\r
-\r
- /**\r
- * The CSS class to be appended on the main UI containers, making it\r
- * easy to apply browser specific styles to it.\r
- * @name CKEDITOR.env.cssClass\r
- * @type String\r
- * @example\r
- * myDiv.className = CKEDITOR.env.cssClass;\r
- */\r
- env.cssClass =\r
- 'cke_browser_' + (\r
- env.ie ? 'ie' :\r
- env.gecko ? 'gecko' :\r
- env.opera ? 'opera' :\r
- env.webkit ? 'webkit' :\r
- 'unknown' );\r
-\r
- if ( env.quirks )\r
- env.cssClass += ' cke_browser_quirks';\r
-\r
- if ( env.ie )\r
- {\r
- env.cssClass += ' cke_browser_ie' + (\r
- env.version < 7 ? '6' :\r
- env.version >= 8 ? document.documentMode:\r
- '7' );\r
-\r
- if ( env.quirks )\r
- env.cssClass += ' cke_browser_iequirks';\r
- }\r
-\r
- if ( env.gecko && version < 10900 )\r
- env.cssClass += ' cke_browser_gecko18';\r
-\r
- if ( env.air )\r
- env.cssClass += ' cke_browser_air';\r
-\r
- return env;\r
- })();\r
-}\r
-\r
-// PACKAGER_RENAME( CKEDITOR.env )\r
-// PACKAGER_RENAME( CKEDITOR.env.ie )\r