/******************************************************************************* * Copyright (c) 2007, 2008 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: *     IBM Corporation - initial API and implementation ****************************************************************************** * **//**  * Object selection()  * @type selection  * @super Object  * @memberOf selection  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms535869.aspx*/function selection(){};selection.prototype= new Object();/**  * Property type  * @type String  * @returns {String}
  * @memberOf selection  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms534692.aspx*/selection.prototype.type="";/**  * Property typeDetail  * @type String  * @returns {String}
  * @memberOf selection  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms534690.aspx*/selection.prototype.typeDetail="";/**  * function clear()  * @memberOf selection  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms536359.aspx*/selection.prototype.clear=function(){};/**  * function createRange()  * @type TextRange  * @returns {TextRange}
  * @memberOf selection  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms536394.aspx*/selection.prototype.createRange=function(){};/**  * Property controlRange  * @type controlRange  * @returns {controlRange}
  * @memberOf selection  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms537447.aspx*/selection.prototype.controlRange= new controlRange();/**  * function createRangeCollection()  * @type TextRange  * @returns {TextRange}
  * @memberOf selection  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms536396.aspx*/selection.prototype.createRangeCollection=function(){};/**  * function empty()  * @memberOf selection  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms536418.aspx*/selection.prototype.empty=function(){};/**  * Property ontimeerror  * @type ontimeerror  * @returns {ontimeerror}
  * @memberOf selection  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms533588.aspx*/selection.prototype.ontimeerror= new ontimeerror();/**  * Property TextRange  * @type TextRange  * @returns {TextRange}
  * @memberOf selection  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms537492.aspx*/selection.prototype.TextRange= new TextRange();/**  * Property TextRange  * @type TextRange  * @returns {TextRange}
  * @memberOf selection  * @since JScript 5.6  * @see http://msdn2.microsoft.com/en-us/library/ms535872.aspx*/selection.prototype.TextRange= new TextRange();