OSDN Git Service

初回コミット(v2.6.17.1)
[magic3/magic3.git] / scripts / fckeditor2.6.6 / editor / dialog / fck_flash / fck_flash.js
1 /*
2  * FCKeditor - The text editor for Internet - http://www.fckeditor.net
3  * Copyright (C) 2003-2010 Frederico Caldeira Knabben
4  *
5  * == BEGIN LICENSE ==
6  *
7  * Licensed under the terms of any of the following licenses at your
8  * choice:
9  *
10  *  - GNU General Public License Version 2 or later (the "GPL")
11  *    http://www.gnu.org/licenses/gpl.html
12  *
13  *  - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
14  *    http://www.gnu.org/licenses/lgpl.html
15  *
16  *  - Mozilla Public License Version 1.1 or later (the "MPL")
17  *    http://www.mozilla.org/MPL/MPL-1.1.html
18  *
19  * == END LICENSE ==
20  *
21  * Scripts related to the Flash dialog window (see fck_flash.html).
22  */
23
24 var dialog              = window.parent ;
25 var oEditor             = dialog.InnerDialogLoaded() ;
26 var FCK                 = oEditor.FCK ;
27 var FCKLang             = oEditor.FCKLang ;
28 var FCKConfig   = oEditor.FCKConfig ;
29 var FCKTools    = oEditor.FCKTools ;
30
31 //#### Dialog Tabs
32
33 // Set the dialog tabs.
34 dialog.AddTab( 'Info', oEditor.FCKLang.DlgInfoTab ) ;
35
36 if ( FCKConfig.FlashUpload )
37         dialog.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;
38
39 if ( !FCKConfig.FlashDlgHideAdvanced )
40         dialog.AddTab( 'Advanced', oEditor.FCKLang.DlgAdvancedTag ) ;
41
42 // Function called when a dialog tag is selected.
43 function OnDialogTabChange( tabCode )
44 {
45         ShowE('divInfo'         , ( tabCode == 'Info' ) ) ;
46         ShowE('divUpload'       , ( tabCode == 'Upload' ) ) ;
47         ShowE('divAdvanced'     , ( tabCode == 'Advanced' ) ) ;
48 }
49
50 // Get the selected flash embed (if available).
51 var oFakeImage = dialog.Selection.GetSelectedElement() ;
52 var oEmbed ;
53
54 if ( oFakeImage )
55 {
56         if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckflash') )
57                 oEmbed = FCK.GetRealElement( oFakeImage ) ;
58         else
59                 oFakeImage = null ;
60 }
61
62 window.onload = function()
63 {
64         // Translate the dialog box texts.
65         oEditor.FCKLanguageManager.TranslatePage(document) ;
66
67         // Load the selected element information (if any).
68         LoadSelection() ;
69
70         // Show/Hide the "Browse Server" button.
71         GetE('tdBrowse').style.display = FCKConfig.FlashBrowser ? '' : 'none' ;
72
73         // Set the actual uploader URL.
74         if ( FCKConfig.FlashUpload )
75                 GetE('frmUpload').action = FCKConfig.FlashUploadURL ;
76
77         dialog.SetAutoSize( true ) ;
78
79         // Activate the "OK" button.
80         dialog.SetOkButton( true ) ;
81
82         SelectField( 'txtUrl' ) ;
83 }
84
85 function LoadSelection()
86 {
87         if ( ! oEmbed ) return ;
88
89         GetE('txtUrl').value    = GetAttribute( oEmbed, 'src', '' ) ;
90         GetE('txtWidth').value  = GetAttribute( oEmbed, 'width', '' ) ;
91         GetE('txtHeight').value = GetAttribute( oEmbed, 'height', '' ) ;
92
93         // Get Advances Attributes
94         GetE('txtAttId').value          = oEmbed.id ;
95         GetE('chkAutoPlay').checked     = GetAttribute( oEmbed, 'play', 'true' ) == 'true' ;
96         GetE('chkLoop').checked         = GetAttribute( oEmbed, 'loop', 'true' ) == 'true' ;
97         GetE('chkMenu').checked         = GetAttribute( oEmbed, 'menu', 'true' ) == 'true' ;
98         GetE('cmbScale').value          = GetAttribute( oEmbed, 'scale', '' ).toLowerCase() ;
99
100         GetE('txtAttTitle').value               = oEmbed.title ;
101
102         if ( oEditor.FCKBrowserInfo.IsIE )
103         {
104                 GetE('txtAttClasses').value = oEmbed.getAttribute('className') || '' ;
105                 GetE('txtAttStyle').value = oEmbed.style.cssText ;
106         }
107         else
108         {
109                 GetE('txtAttClasses').value = oEmbed.getAttribute('class',2) || '' ;
110                 GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) || '' ;
111         }
112
113         UpdatePreview() ;
114 }
115
116 //#### The OK button was hit.
117 function Ok()
118 {
119         if ( GetE('txtUrl').value.length == 0 )
120         {
121                 dialog.SetSelectedTab( 'Info' ) ;
122                 GetE('txtUrl').focus() ;
123
124                 alert( oEditor.FCKLang.DlgAlertUrl ) ;
125
126                 return false ;
127         }
128
129         oEditor.FCKUndo.SaveUndoStep() ;
130         if ( !oEmbed )
131         {
132                 oEmbed          = FCK.EditorDocument.createElement( 'EMBED' ) ;
133                 oFakeImage  = null ;
134         }
135         UpdateEmbed( oEmbed ) ;
136
137         if ( !oFakeImage )
138         {
139                 oFakeImage      = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oEmbed ) ;
140                 oFakeImage.setAttribute( '_fckflash', 'true', 0 ) ;
141                 oFakeImage      = FCK.InsertElement( oFakeImage ) ;
142         }
143
144         oEditor.FCKEmbedAndObjectProcessor.RefreshView( oFakeImage, oEmbed ) ;
145
146         return true ;
147 }
148
149 function UpdateEmbed( e )
150 {
151         SetAttribute( e, 'type'                 , 'application/x-shockwave-flash' ) ;
152         SetAttribute( e, 'pluginspage'  , 'http://www.macromedia.com/go/getflashplayer' ) ;
153
154         SetAttribute( e, 'src', GetE('txtUrl').value ) ;
155         SetAttribute( e, "width" , GetE('txtWidth').value ) ;
156         SetAttribute( e, "height", GetE('txtHeight').value ) ;
157
158         // Advances Attributes
159
160         SetAttribute( e, 'id'   , GetE('txtAttId').value ) ;
161         SetAttribute( e, 'scale', GetE('cmbScale').value ) ;
162
163         SetAttribute( e, 'play', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ;
164         SetAttribute( e, 'loop', GetE('chkLoop').checked ? 'true' : 'false' ) ;
165         SetAttribute( e, 'menu', GetE('chkMenu').checked ? 'true' : 'false' ) ;
166
167         SetAttribute( e, 'title'        , GetE('txtAttTitle').value ) ;
168
169         if ( oEditor.FCKBrowserInfo.IsIE )
170         {
171                 SetAttribute( e, 'className', GetE('txtAttClasses').value ) ;
172                 e.style.cssText = GetE('txtAttStyle').value ;
173         }
174         else
175         {
176                 SetAttribute( e, 'class', GetE('txtAttClasses').value ) ;
177                 SetAttribute( e, 'style', GetE('txtAttStyle').value ) ;
178         }
179 }
180
181 var ePreview ;
182
183 function SetPreviewElement( previewEl )
184 {
185         ePreview = previewEl ;
186
187         if ( GetE('txtUrl').value.length > 0 )
188                 UpdatePreview() ;
189 }
190
191 function UpdatePreview()
192 {
193         if ( !ePreview )
194                 return ;
195
196         while ( ePreview.firstChild )
197                 ePreview.removeChild( ePreview.firstChild ) ;
198
199         if ( GetE('txtUrl').value.length == 0 )
200                 ePreview.innerHTML = ' ' ;
201         else
202         {
203                 var oDoc        = ePreview.ownerDocument || ePreview.document ;
204                 var e           = oDoc.createElement( 'EMBED' ) ;
205
206                 SetAttribute( e, 'src', GetE('txtUrl').value ) ;
207                 SetAttribute( e, 'type', 'application/x-shockwave-flash' ) ;
208                 SetAttribute( e, 'width', '100%' ) ;
209                 SetAttribute( e, 'height', '100%' ) ;
210
211                 ePreview.appendChild( e ) ;
212         }
213 }
214
215 // <embed id="ePreview" src="fck_flash/claims.swf" width="100%" height="100%" style="visibility:hidden" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
216
217 function BrowseServer()
218 {
219         OpenFileBrowser( FCKConfig.FlashBrowserURL, FCKConfig.FlashBrowserWindowWidth, FCKConfig.FlashBrowserWindowHeight ) ;
220 }
221
222 function SetUrl( url, width, height )
223 {
224         GetE('txtUrl').value = url ;
225
226         if ( width )
227                 GetE('txtWidth').value = width ;
228
229         if ( height )
230                 GetE('txtHeight').value = height ;
231
232         UpdatePreview() ;
233
234         dialog.SetSelectedTab( 'Info' ) ;
235 }
236
237 function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
238 {
239         // Remove animation
240         window.parent.Throbber.Hide() ;
241         GetE( 'divUpload' ).style.display  = '' ;
242
243         switch ( errorNumber )
244         {
245                 case 0 :        // No errors
246                         alert( 'Your file has been successfully uploaded' ) ;
247                         break ;
248                 case 1 :        // Custom error
249                         alert( customMsg ) ;
250                         return ;
251                 case 101 :      // Custom warning
252                         alert( customMsg ) ;
253                         break ;
254                 case 201 :
255                         alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ;
256                         break ;
257                 case 202 :
258                         alert( 'Invalid file type' ) ;
259                         return ;
260                 case 203 :
261                         alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ;
262                         return ;
263                 case 500 :
264                         alert( 'The connector is disabled' ) ;
265                         break ;
266                 default :
267                         alert( 'Error on file upload. Error number: ' + errorNumber ) ;
268                         return ;
269         }
270
271         SetUrl( fileUrl ) ;
272         GetE('frmUpload').reset() ;
273 }
274
275 var oUploadAllowedExtRegex      = new RegExp( FCKConfig.FlashUploadAllowedExtensions, 'i' ) ;
276 var oUploadDeniedExtRegex       = new RegExp( FCKConfig.FlashUploadDeniedExtensions, 'i' ) ;
277
278 function CheckUpload()
279 {
280         var sFile = GetE('txtUploadFile').value ;
281
282         if ( sFile.length == 0 )
283         {
284                 alert( 'Please select a file to upload' ) ;
285                 return false ;
286         }
287
288         if ( ( FCKConfig.FlashUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) ||
289                 ( FCKConfig.FlashUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) )
290         {
291                 OnUploadCompleted( 202 ) ;
292                 return false ;
293         }
294
295         // Show animation
296         window.parent.Throbber.Show( 100 ) ;
297         GetE( 'divUpload' ).style.display  = 'none' ;
298
299         return true ;
300 }