1 /*
  2 Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.
  3 For licensing, see LICENSE.html or http://ckeditor.com/license
  4 */
  5 
  6 /**
  7  * @fileOverview API initialization code.
  8  */
  9 
 10 (function()
 11 {
 12 	// Disable HC detaction in WebKit. (#5429)
 13 	if ( CKEDITOR.env.webkit )
 14 	{
 15 		CKEDITOR.env.hc = false;
 16 		return;
 17 	}
 18 
 19 	// Check whether high contrast is active by creating a colored border.
 20 	var hcDetect = CKEDITOR.dom.element.createFromHtml(
 21 		'<div style="width:0px;height:0px;position:absolute;left:-10000px;' +
 22 			'border: 1px solid;border-color: red blue;"></div>', CKEDITOR.document );
 23 
 24 	hcDetect.appendTo( CKEDITOR.document.getHead() );
 25 
 26 	// Update CKEDITOR.env.
 27 	// Catch exception needed sometimes for FF. (#4230)
 28 	try
 29 	{
 30 		CKEDITOR.env.hc = hcDetect.getComputedStyle( 'border-top-color' ) == hcDetect.getComputedStyle( 'border-right-color' );
 31 	}
 32 	catch (e)
 33 	{
 34 		CKEDITOR.env.hc = false;
 35 	}
 36 
 37 	if ( CKEDITOR.env.hc )
 38 		CKEDITOR.env.cssClass += ' cke_hc';
 39 
 40 	hcDetect.remove();
 41 })();
 42 
 43 // Load core plugins.
 44 CKEDITOR.plugins.load( CKEDITOR.config.corePlugins.split( ',' ), function()
 45 	{
 46 		CKEDITOR.status = 'loaded';
 47 		CKEDITOR.fire( 'loaded' );
 48 
 49 		// Process all instances created by the "basic" implementation.
 50 		var pending = CKEDITOR._.pending;
 51 		if ( pending )
 52 		{
 53 			delete CKEDITOR._.pending;
 54 
 55 			for ( var i = 0 ; i < pending.length ; i++ )
 56 				CKEDITOR.add( pending[ i ] );
 57 		}
 58 	});
 59 
 60 // Needed for IE6 to not request image (HTTP 200 or 304) for every CSS background. (#6187)
 61 if ( CKEDITOR.env.ie )
 62 {
 63 	// Remove IE mouse flickering on IE6 because of background images.
 64 	try
 65 	{
 66 		document.execCommand( 'BackgroundImageCache', false, true );
 67 	}
 68 	catch (e)
 69 	{
 70 		// We have been reported about loading problems caused by the above
 71 		// line. For safety, let's just ignore errors.
 72 	}
 73 }
 74 
 75 /**
 76  * Indicates that CKEditor is running on a High Contrast environment.
 77  * @name CKEDITOR.env.hc
 78  * @example
 79  * if ( CKEDITOR.env.hc )
 80  *     alert( 'You're running on High Contrast mode. The editor interface will get adapted to provide you a better experience.' );
 81  */
 82 
 83 /**
 84  * Fired when a CKEDITOR core object is fully loaded and ready for interaction.
 85  * @name CKEDITOR#loaded
 86  * @event
 87  */
 88