      1 /*
      2 Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.
      3 For licensing, see LICENSE.html or http://ckeditor.com/license
      4 */
      5
      6 CKEDITOR.plugins.add( 'popup');
      7
      8 CKEDITOR.tools.extend( CKEDITOR.editor.prototype,
      9 {
     10 	/**
     11 	 * Opens Browser in a popup. The "width" and "height" parameters accept
     12 	 * numbers (pixels) or percent (of screen size) values.
     13 	 * @param {String} url The url of the external file browser.
     14 	 * @param {String} width Popup window width.
     15 	 * @param {String} height Popup window height.
     16 	 */
     17 	popup : function( url, width, height )
     18 	{
     19 		width = width || '80%';
     20 		height = height || '70%';
     21
     22 		if ( typeof width == 'string' && width.length > 1 && width.substr( width.length - 1, 1 ) == '%' )
     23 			width = parseInt( window.screen.width * parseInt( width, 10 ) / 100, 10 );
     24
     25 		if ( typeof height == 'string' && height.length > 1 && height.substr( height.length - 1, 1 ) == '%' )
     26 			height = parseInt( window.screen.height * parseInt( height, 10 ) / 100, 10 );
     27
     28 		if ( width < 640 )
     29 			width = 640;
     30
     31 		if ( height < 420 )
     32 			height = 420;
     33
     34 		var top = parseInt( ( window.screen.height - height ) / 2, 10 ),
     35 			left = parseInt( ( window.screen.width  - width ) / 2, 10 ),
     36 			options = 'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes' +
     37 			',width='  + width +
     38 			',height=' + height +
     39 			',top='  + top +
     40 			',left=' + left;
     41
     42 		var popupWindow = window.open( '', null, options, true );
     43
     44 		// Blocked by a popup blocker.
     45 		if ( !popupWindow )
     46 			return false;
     47
     48 		try
     49 		{
     50 			popupWindow.moveTo( left, top );
     51 			popupWindow.resizeTo( width, height );
     52 			popupWindow.focus();
     53 			popupWindow.location.href = url;
     54 		}
     55 		catch (e)
     56 		{
     57 			popupWindow = window.open( url, null, options, true );
     58 		}
     59
     60 		return true ;
     61 	}
     62 });
     63