Subversion Repositories Applications.papyrus

Rev

Rev 1688 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1075 ddelon 1
/*
1921 jp_milcent 2
 * FCKeditor - The text editor for Internet - http://www.fckeditor.net
3
 * Copyright (C) 2003-2008 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).
1075 ddelon 22
 */
23
 
1921 jp_milcent 24
var dialog		= window.parent ;
25
var oEditor		= dialog.InnerDialogLoaded() ;
1075 ddelon 26
var FCK			= oEditor.FCK ;
27
var FCKLang		= oEditor.FCKLang ;
28
var FCKConfig	= oEditor.FCKConfig ;
1921 jp_milcent 29
var FCKTools	= oEditor.FCKTools ;
1075 ddelon 30
 
31
//#### Dialog Tabs
32
 
33
// Set the dialog tabs.
1921 jp_milcent 34
dialog.AddTab( 'Info', oEditor.FCKLang.DlgInfoTab ) ;
1075 ddelon 35
 
36
if ( FCKConfig.FlashUpload )
1921 jp_milcent 37
	dialog.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ;
1075 ddelon 38
 
39
if ( !FCKConfig.FlashDlgHideAdvanced )
1921 jp_milcent 40
	dialog.AddTab( 'Advanced', oEditor.FCKLang.DlgAdvancedTag ) ;
1075 ddelon 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).
1921 jp_milcent 51
var oFakeImage = dialog.Selection.GetSelectedElement() ;
1075 ddelon 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
 
1921 jp_milcent 77
	dialog.SetAutoSize( true ) ;
1075 ddelon 78
 
79
	// Activate the "OK" button.
1921 jp_milcent 80
	dialog.SetOkButton( true ) ;
81
 
82
	SelectField( 'txtUrl' ) ;
1075 ddelon 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() ;
1921 jp_milcent 99
 
1075 ddelon 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) || '' ;
1921 jp_milcent 110
		GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) || '' ;
1075 ddelon 111
	}
112
 
113
	UpdatePreview() ;
114
}
115
 
116
//#### The OK button was hit.
117
function Ok()
118
{
119
	if ( GetE('txtUrl').value.length == 0 )
120
	{
1921 jp_milcent 121
		dialog.SetSelectedTab( 'Info' ) ;
1075 ddelon 122
		GetE('txtUrl').focus() ;
123
 
124
		alert( oEditor.FCKLang.DlgAlertUrl ) ;
125
 
126
		return false ;
127
	}
128
 
1921 jp_milcent 129
	oEditor.FCKUndo.SaveUndoStep() ;
1075 ddelon 130
	if ( !oEmbed )
131
	{
132
		oEmbed		= FCK.EditorDocument.createElement( 'EMBED' ) ;
133
		oFakeImage  = null ;
134
	}
135
	UpdateEmbed( oEmbed ) ;
1921 jp_milcent 136
 
1075 ddelon 137
	if ( !oFakeImage )
138
	{
139
		oFakeImage	= oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oEmbed ) ;
140
		oFakeImage.setAttribute( '_fckflash', 'true', 0 ) ;
1921 jp_milcent 141
		oFakeImage	= FCK.InsertElement( oFakeImage ) ;
1075 ddelon 142
	}
143
 
1921 jp_milcent 144
	oEditor.FCKEmbedAndObjectProcessor.RefreshView( oFakeImage, oEmbed ) ;
145
 
1075 ddelon 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
 
1921 jp_milcent 154
	SetAttribute( e, 'src', GetE('txtUrl').value ) ;
1075 ddelon 155
	SetAttribute( e, "width" , GetE('txtWidth').value ) ;
156
	SetAttribute( e, "height", GetE('txtHeight').value ) ;
1921 jp_milcent 157
 
1075 ddelon 158
	// Advances Attributes
159
 
160
	SetAttribute( e, 'id'	, GetE('txtAttId').value ) ;
161
	SetAttribute( e, 'scale', GetE('cmbScale').value ) ;
1921 jp_milcent 162
 
1075 ddelon 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 ;
1921 jp_milcent 186
 
1075 ddelon 187
	if ( GetE('txtUrl').value.length > 0 )
188
		UpdatePreview() ;
189
}
190
 
191
function UpdatePreview()
192
{
193
	if ( !ePreview )
194
		return ;
1921 jp_milcent 195
 
1075 ddelon 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' ) ;
1921 jp_milcent 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
 
1075 ddelon 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 ;
1921 jp_milcent 225
 
1075 ddelon 226
	if ( width )
227
		GetE('txtWidth').value = width ;
1921 jp_milcent 228
 
229
	if ( height )
1075 ddelon 230
		GetE('txtHeight').value = height ;
231
 
232
	UpdatePreview() ;
233
 
1921 jp_milcent 234
	dialog.SetSelectedTab( 'Info' ) ;
1075 ddelon 235
}
236
 
237
function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg )
238
{
1921 jp_milcent 239
	// Remove animation
240
	window.parent.Throbber.Hide() ;
241
	GetE( 'divUpload' ).style.display  = '' ;
242
 
1075 ddelon 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 ;
1921 jp_milcent 263
		case 500 :
264
			alert( 'The connector is disabled' ) ;
265
			break ;
1075 ddelon 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 ;
1921 jp_milcent 281
 
1075 ddelon 282
	if ( sFile.length == 0 )
283
	{
284
		alert( 'Please select a file to upload' ) ;
285
		return false ;
286
	}
1921 jp_milcent 287
 
1075 ddelon 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
	}
1921 jp_milcent 294
 
295
	// Show animation
296
	window.parent.Throbber.Show( 100 ) ;
297
	GetE( 'divUpload' ).style.display  = 'none' ;
298
 
1075 ddelon 299
	return true ;
1921 jp_milcent 300
}