initial commit
[namibia] / public / scripts / ckeditor / _source / plugins / popup / plugin.js
1 /*
2 Copyright (c) 2003-2011, 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          * @param {String} options Popup window features.
17          */
18         popup : function( url, width, height, options )
19         {
20                 width = width || '80%';
21                 height = height || '70%';
22
23                 if ( typeof width == 'string' && width.length > 1 && width.substr( width.length - 1, 1 ) == '%' )
24                         width = parseInt( window.screen.width * parseInt( width, 10 ) / 100, 10 );
25
26                 if ( typeof height == 'string' && height.length > 1 && height.substr( height.length - 1, 1 ) == '%' )
27                         height = parseInt( window.screen.height * parseInt( height, 10 ) / 100, 10 );
28
29                 if ( width < 640 )
30                         width = 640;
31
32                 if ( height < 420 )
33                         height = 420;
34
35                 var top = parseInt( ( window.screen.height - height ) / 2, 10 ),
36                         left = parseInt( ( window.screen.width  - width ) / 2, 10 );
37
38                 options = ( options || 'location=no,menubar=no,toolbar=no,dependent=yes,minimizable=no,modal=yes,alwaysRaised=yes,resizable=yes,scrollbars=yes' ) +
39                         ',width='  + width +
40                         ',height=' + height +
41                         ',top='  + top +
42                         ',left=' + left;
43
44                 var popupWindow = window.open( '', null, options, true );
45
46                 // Blocked by a popup blocker.
47                 if ( !popupWindow )
48                         return false;
49
50                 try
51                 {
52                         popupWindow.moveTo( left, top );
53                         popupWindow.resizeTo( width, height );
54                         popupWindow.focus();
55                         popupWindow.location.href = url;
56                 }
57                 catch ( e )
58                 {
59                         popupWindow = window.open( url, null, options, true );
60                 }
61
62                 return true;
63         }
64 });