text: /*
  Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.
  For licensing, see LICENSE.html or http://ckeditor.com/license
  */
  
  /**
   * @fileOverview Defines the {@link CKEDITOR.dom.document} class, which
   *		represents a DOM document.
   */
  
  /**
   * Represents a DOM window.
   * @constructor
   * @augments CKEDITOR.dom.domObject
   * @param {Object} domWindow A native DOM window.
   * @example
   * var document = new CKEDITOR.dom.window( window );
   */
  CKEDITOR.dom.window = function( domWindow )
  {
  	CKEDITOR.dom.domObject.call( this, domWindow );
  };
  
  CKEDITOR.dom.window.prototype = new CKEDITOR.dom.domObject();
  
  CKEDITOR.tools.extend( CKEDITOR.dom.window.prototype,
  	/** @lends CKEDITOR.dom.window.prototype */
  	{
  		/**
  		 * Moves the selection focus to this window.
  		 * @function
  		 * @example
  		 * var win = new CKEDITOR.dom.window( window );
  		 * <b>win.focus()</b>;
  		 */
  		focus : function()
  		{
  			// Webkit is sometimes failed to focus iframe, blur it first(#3835).
  			if ( CKEDITOR.env.webkit && this.$.parent )
  				this.$.parent.focus();
  			this.$.focus();
  		},
  
  		/**
  		 * Gets the width and height of this window's viewable area.
  		 * @function
  		 * @returns {Object} An object with the "width" and "height"
  		 *		properties containing the size.
  		 * @example
  		 * var win = new CKEDITOR.dom.window( window );
  		 * var size = <b>win.getViewPaneSize()</b>;
  		 * alert( size.width );
  		 * alert( size.height );
  		 */
  		getViewPaneSize : function()
  		{
  			var doc = this.$.document,
  				stdMode = doc.compatMode == 'CSS1Compat';
  			return {
  				width : ( stdMode ? doc.documentElement.clientWidth : doc.body.clientWidth ) || 0,
  				height : ( stdMode ? doc.documentElement.clientHeight : doc.body.clientHeight ) || 0
  			};
  		},
  
  		/**
  		 * Gets the current position of the window's scroll.
  		 * @function
  		 * @returns {Object} An object with the "x" and "y" properties
  		 *		containing the scroll position.
  		 * @example
  		 * var win = new CKEDITOR.dom.window( window );
  		 * var pos = <b>win.getScrollPosition()</b>;
  		 * alert( pos.x );
  		 * alert( pos.y );
  		 */
  		getScrollPosition : function()
  		{
  			var $ = this.$;
  
  			if ( 'pageXOffset' in $ )
  			{
  				return {
  					x : $.pageXOffset || 0,
  					y : $.pageYOffset || 0
  				};
  			}
  			else
  			{
  				var doc = $.document;
  				return {
  					x : doc.documentElement.scrollLeft || doc.body.scrollLeft || 0,
  					y : doc.documentElement.scrollTop || doc.body.scrollTop || 0
  				};
  			}
  		}
  	});
  