[SECURITY] XSS in 3rd party library Flowplayer 05/22705/2
authorOliver Hader <oliver@typo3.org>
Tue, 30 Jul 2013 12:38:38 +0000 (14:38 +0200)
committerOliver Hader <oliver.hader@typo3.org>
Tue, 30 Jul 2013 12:38:45 +0000 (14:38 +0200)
Change-Id: I6bb53b23ca4df6f8d4b8ee801bd99a1a5c32f5b2
Fixes: #49209
Releases: 4.7, 6.0, 6.1, 6.2
Security-Commit: dd3663738902bbd49efd200333f01f43d6f32632
Security-Bulletin: TYPO3-CORE-SA-2013-002
Reviewed-on: https://review.typo3.org/22705
Reviewed-by: Oliver Hader
Tested-by: Oliver Hader
268 files changed:
typo3/contrib/flowplayer/LICENSE_COMMERCIAL.txt [new file with mode: 0644]
typo3/contrib/flowplayer/LICENSE_MULTIDOMAIN.txt [new file with mode: 0644]
typo3/contrib/flowplayer/LICENSE_UNLIMITED.txt [new file with mode: 0644]
typo3/contrib/flowplayer/README.txt
typo3/contrib/flowplayer/build.properties
typo3/contrib/flowplayer/build.xml
typo3/contrib/flowplayer/example/flowplayer-3.2.6.min.js [deleted file]
typo3/contrib/flowplayer/example/index.html.tmpl
typo3/contrib/flowplayer/flowplayer-3.2.12.min.js [new file with mode: 0644]
typo3/contrib/flowplayer/flowplayer-3.2.16.swf [new file with mode: 0644]
typo3/contrib/flowplayer/flowplayer-3.2.7.swf [deleted file]
typo3/contrib/flowplayer/flowplayer.audio-3.2.2.swf [deleted file]
typo3/contrib/flowplayer/flowplayer.audio/LICENSE.txt [deleted file]
typo3/contrib/flowplayer/flowplayer.audio/README.txt [deleted file]
typo3/contrib/flowplayer/flowplayer.audio/build.properties [deleted file]
typo3/contrib/flowplayer/flowplayer.audio/build.xml [deleted file]
typo3/contrib/flowplayer/flowplayer.audio/src/actionscript/org/flowplayer/audio/AudioProvider.as [deleted file]
typo3/contrib/flowplayer/flowplayer.audio/src/actionscript/org/flowplayer/audio/AudioProviderFactory.as [deleted file]
typo3/contrib/flowplayer/flowplayer.captions-3.2.3.swf [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/LICENSE.txt [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/README.txt [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/build.properties [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/build.xml [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/casa.dfxp.xml [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/casa.dfxp.xml.1 [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/engineering.xml [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/flowplayer.captions.js [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/flvtool2-cuepoints.sh [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/left.png [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/right.png [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame00.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame01.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame02.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame03.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame04.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame05.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame06.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame07.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame08.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame09.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame10.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame11.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame12.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame13.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame14.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame15.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame16.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame17.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame18.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame19.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame20.jpg [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/index.html.tmpl [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/example/tools.scrollable-1.1.2.js [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/CCButton.as [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/Caption.as [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/CaptionFileTypes.as [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/CaptionSourceTypes.as [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/Config.as [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/NumberFormatter.as [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/AbstractCaptionParser.as [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/CaptionParser.as [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/JSONParser.as [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/SRTParser.as [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/TTXTParser.as [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/flash/closebutton.fla [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/flash/closebutton.swc [deleted file]
typo3/contrib/flowplayer/flowplayer.captions/src/flash/closebutton.swf [deleted file]
typo3/contrib/flowplayer/flowplayer.content-3.2.0.swf [deleted file]
typo3/contrib/flowplayer/flowplayer.content/LICENSE.txt [deleted file]
typo3/contrib/flowplayer/flowplayer.content/README.txt [deleted file]
typo3/contrib/flowplayer/flowplayer.content/build.properties [deleted file]
typo3/contrib/flowplayer/flowplayer.content/build.xml [deleted file]
typo3/contrib/flowplayer/flowplayer.content/src/actionscript/org/flowplayer/content/CloseButton.as [deleted file]
typo3/contrib/flowplayer/flowplayer.content/src/actionscript/org/flowplayer/content/Content.as [deleted file]
typo3/contrib/flowplayer/flowplayer.content/src/actionscript/org/flowplayer/content/ContentView.as [deleted file]
typo3/contrib/flowplayer/flowplayer.content/src/flash/closebutton.fla [deleted file]
typo3/contrib/flowplayer/flowplayer.content/src/flash/closebutton.swc [deleted file]
typo3/contrib/flowplayer/flowplayer.content/src/flash/closebutton.swf [deleted file]
typo3/contrib/flowplayer/flowplayer.controls-3.2.15.swf [new file with mode: 0644]
typo3/contrib/flowplayer/flowplayer.controls-3.2.5.swf [deleted file]
typo3/contrib/flowplayer/lib/corelib/license.txt [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/corelib/src/com/adobe/crypto/MD5.as
typo3/contrib/flowplayer/lib/corelib/src/com/adobe/images/JPGEncoder.as
typo3/contrib/flowplayer/lib/corelib/src/com/adobe/serialization/json/JSONEncoder.as
typo3/contrib/flowplayer/lib/corelib/src/com/adobe/serialization/json/JSONTokenizer.as
typo3/contrib/flowplayer/lib/goasp/src_go/com/mosesSupposes/go/tutorials/SizeTweenMG.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/com/mosesSupposes/go/tutorials/WidthTween.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/GoEngine.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/PlayableBase.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/errors/DuplicateManagerError.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/errors/EasingFormatError.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/errors/InstanceNotAllowedError.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/events/GoEvent.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/events/SequenceEvent.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/interfaces/IManageable.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/interfaces/IManager.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/interfaces/IPlayable.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/interfaces/IPlayableBase.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/interfaces/IUpdatable.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/items/GoItem.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/items/LinearGo.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/items/PhysicsGo.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/managers/LinearGoRepeater.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/managers/OverlapMonitor.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/managers/Repeater.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/utils/PlayableGroup.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/utils/Sequence.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/utils/SequenceBase.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/utils/SequenceCA.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/utils/SequenceStep.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/utils/SequenceStepCA.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/utils/customadvance/OnConditionTrue.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/utils/customadvance/OnDurationComplete.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/utils/customadvance/OnEventComplete.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/utils/customadvance/OnPlayableComplete.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/goasp/src_go/org/goasap/utils/customadvance/SequenceAdvance.as [changed mode: 0644->0755]
typo3/contrib/flowplayer/lib/licensekey/licensekey.swc
typo3/contrib/flowplayer/manifest.xml
typo3/contrib/flowplayer/plugins/flowplayer.audio-3.2.10.swf [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.audio/LICENSE.txt [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.audio/README.txt [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.audio/build.properties [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.audio/build.xml [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.audio/src/actionscript/org/flowplayer/audio/AudioProvider.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.audio/src/actionscript/org/flowplayer/audio/AudioProviderFactory.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions-3.2.9.swf [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/LICENSE.txt [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/README.txt [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/build.properties [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/build.xml [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/flowplayer.captions.js [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/flvtool2-cuepoints.sh [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/left.png [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/right.png [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame00.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame01.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame02.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame03.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame04.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame05.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame06.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame07.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame08.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame09.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame10.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame11.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame12.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame13.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame14.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame15.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame16.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame17.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame18.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame19.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/images/thumbs/frame20.jpg [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/index.html.tmpl [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/example/tools.scrollable-1.1.2.js [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/actionscript/org/flowplayer/captions/CCButton.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/actionscript/org/flowplayer/captions/Caption.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/actionscript/org/flowplayer/captions/CaptionLoader.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/actionscript/org/flowplayer/captions/CaptionLoading.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/actionscript/org/flowplayer/captions/CaptionPlugin.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/actionscript/org/flowplayer/captions/CaptionPluginFactory.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/actionscript/org/flowplayer/captions/CaptionViewDelegate.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/actionscript/org/flowplayer/captions/Config.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/AbstractCaptionParser.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/CaptionParser.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/JSONParser.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/SRTParser.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/TTXTParser.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/flash/closebutton.fla [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/flash/closebutton.swc [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.captions/src/flash/closebutton.swf [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.content-3.2.8.swf [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.content/LICENSE.txt [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.content/README.txt [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.content/build.properties [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.content/build.xml [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.content/src/actionscript/org/flowplayer/content/CloseButton.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.content/src/actionscript/org/flowplayer/content/Content.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.content/src/actionscript/org/flowplayer/content/ContentView.as [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.content/src/flash/closebutton.fla [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.content/src/flash/closebutton.swc [new file with mode: 0644]
typo3/contrib/flowplayer/plugins/flowplayer.content/src/flash/closebutton.swf [new file with mode: 0644]
typo3/contrib/flowplayer/release.xml [new file with mode: 0644]
typo3/contrib/flowplayer/src/actionscript-builtin/BuiltInConfig.as
typo3/contrib/flowplayer/src/actionscript-commercial/org/flowplayer/view/ContextMenuBuilder.as
typo3/contrib/flowplayer/src/actionscript-commercial/org/flowplayer/view/LogoView.as
typo3/contrib/flowplayer/src/actionscript-commercial/org/flowplayer/view/PlayButtonOverlayView.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/config/Config.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/config/ConfigParser.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/config/PluginBuilder.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/config/RSSPlaylistParser.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/AbstractDurationTrackingController.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/BufferingState.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/ClipImageLoader.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/MediaController.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/NetStreamClient.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/NetStreamControllingStreamProvider.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/ParallelRTMPConnectionProvider.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/ParallelRTMPConnector.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/PausedState.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/PlayListController.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/PlayState.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/PlayTimeTracker.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/PlayingState.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/ResourceLoader.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/StreamProvider.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/StreamProviderController.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/TimeProvider.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/controller/WaitingState.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/model/Clip.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/model/ClipEvent.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/model/ClipEventDispatcher.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/model/ClipEventType.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/model/ClipType.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/model/EventDispatcher.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/model/Extendable.as [new file with mode: 0644]
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/model/ExtendableHelper.as [new file with mode: 0644]
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/model/Logo.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/model/Plugin.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/model/PluginEventDispatcher.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/util/GraphicsUtil.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/util/ObjectConverter.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/util/PropertyBinder.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/util/TimeUtil.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/util/URLUtil.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/util/VersionUtil.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/AnimationEngine.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/ClipResizer.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/FlowStyleSheet.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/Flowplayer.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/FlowplayerBase.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/FullscreenManager.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/Launcher.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/LogoUtil.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/Panel.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/PluginRegistry.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/Preloader.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/Screen.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/StageVideoWrapper.as [new file with mode: 0644]
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/StyleableSprite.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/VideoDisplay.as
typo3/contrib/flowplayer/src/actionscript/org/flowplayer/view/fplogo.png [new file with mode: 0644]
typo3/contrib/flowplayer/src/assets/play.png [new file with mode: 0644]
typo3/contrib/flowplayer/src/html/FlowPlayer.html [new file with mode: 0644]
typo3/contrib/flowplayer/src/html/embedding.html [new file with mode: 0644]
typo3/contrib/flowplayer/src/html/flashembed.min.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flashembed.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flashembed.min.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/build.xml [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/flowplayer-3.2.10.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/flowplayer-3.2.10.min.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/flowplayer-3.2.11.min.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/flowplayer-3.2.12.min.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/flowplayer-3.2.7.min.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/flowplayer-3.2.8.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/flowplayer-3.2.8.min.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/flowplayer-3.2.9.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/flowplayer-3.2.9.min.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/flowplayer-src.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/release-notes.html [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/test/index.html [new file with mode: 0755]
typo3/contrib/flowplayer/src/javascript/flowplayer.js/test/test-player.js [new file with mode: 0644]
typo3/contrib/flowplayer/src/javascript/swfobject.js [new file with mode: 0644]
typo3/sysext/css_styled_content/static/constants.txt
typo3/sysext/css_styled_content/static/v4.7/constants.txt
typo3/sysext/frontend/Classes/ContentObject/FlowPlayerContentObject.php

diff --git a/typo3/contrib/flowplayer/LICENSE_COMMERCIAL.txt b/typo3/contrib/flowplayer/LICENSE_COMMERCIAL.txt
new file mode 100644 (file)
index 0000000..e3b5a2a
--- /dev/null
@@ -0,0 +1,166 @@
+FLOWPLAYER COMMERCIAL LICENSE version 0.1
+==========================================
+Copyright (c) 2008 Flowplayer Ltd, all rights reserved
+
+Please read this License carefully before using, downloading or installing
+the Software (Flowplayer, as defined below). By using, downloading or
+installing the Software, Licensee is agreeing to be bound by this License
+and the licenses granted hereunder are subject to compliance with any and
+all terms of this License. IF YOU DO NOT ACCEPT THE TERMS AND CONDITIONS
+OF THIS LICENSE, DO NOT USE, DOWNLOAD, INSTALL OR DISTRIBUTE ANY OF THE
+LICENSED SOFTWARE.
+
+Terms and definitions
+=====================
+
+"Software" means the licensed Flowplayer software
+
+"Adaptation" means a derivative work based upon the Licensed Software resulting
+from any addition to, editing of or deletion from the substance or structure of the
+original source code or a compiled version of the Licensed Software or any previous
+Adaptations or a work that programmatically interacts with the Licensed Software.
+
+"Licensed Software" means the same as Software.
+
+"License" means this document.
+
+"Licensor" means Flowplayer Ltd.
+
+"License Key" means an alphanumeric key that is used to activate the Sofware. The License
+Key is provided by Licensor.
+
+"Licensee" means an individual or entity exercising rights under and complying with the
+terms of this License who has not previously violated the terms of this License with respect
+to the Software, or who has received express permission from the Licensor to exercise rights
+under this License despite a previous violation.
+
+License Grant
+=============
+Licensor hereby grants the Licensee a non-exclusive, non-transferable, non-assignable license,
+without the right to sublicense to: Access, display, integrate and use the Software in one
+(1) Internet domain that has been registered with Licensor. Licensor provides a license key
+that is tied to the domain name; and Make an Adaptation and access, display and integrate
+it in the one (1) Internet domain that has been registered with Licensor. The Adaptation must
+not remove the License Key logic from the Software so that the Adaptation only functions if a
+valid license key has been configured for it.
+
+Licensor hereby grants the Licensee a non-exclusive, worldwide, royalty-free, non-transferable,
+non-assignable patent license, without the right to sublicense, under any patent rights
+the Licensor holds in the Software to use, run, and modify the Software in the one (1) Internet
+domain that has been registered with Licensor, provided that any Adaptation made to the Software
+does not remove the License Key logic from the Software so that the Adaptation only functions
+if a valid license key has been configured for it.
+
+All rights not expressly granted by this Agreement are expressly reserved by Licensor.
+
+Applicability of License
+========================
+
+This License applies to the Software version purchased by the Licensee.
+Additional later versions released by the Licensor are not part of this License.
+
+Protection of Licensed Software
+===============================
+
+Except as specifically set forth herein or as otherwise agreed to between Licensor and Licensee,
+Licensee shall not have the right to copy, relicense, sell, lease, transfer, encumber, assign
+or make available for public use the Software. Any attempt to take any such actions is void,
+and will automatically terminate your rights under this License.
+
+Licensee shall use its best efforts to ensure that no unauthorized copy of the Licensed Programs
+shall be made, in whole or in part, in any form.  Licensee shall prohibit all users of the Software
+from modifying, reverse-engineering or disassembling any part of the Software.  All rights not
+expressly granted by Licensor are hereby reserved.
+
+Effective Date
+==============
+
+The rights and licenses granted hereunder shall commence on the date any of the Software are
+electronically delivered to Licensee.  Licensor agrees to make the Software available for
+electronic delivery to Licensee promptly after receipt by Licensor of the License Fee. For
+purposes of this Agreement, the License Fee means the amount of money required to be paid
+by Licensee to Licensor for legal usage of the Software under the terms of this agreement.
+
+Termination of the license
+==========================
+
+This license is subject to termination by Licensor at any time if (a) Licensee violates any terms
+of this License, (b) Licensor has a reasonable basis to believe that Licensee's business is
+impairing Licensor's business.
+
+Ownership of Intellectual Property
+==================================
+
+Licensor is the sole owner of all intellectual property rights pertaining to the Licensed Software.
+Licensor reserves all rights not expressly granted herein.
+
+NO WARRANTY
+===========
+
+TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, THE LICENSED SOFTWARE IS PROVIDED TO YOU "AS IS,"
+WITH ALL FAULTS, WITHOUT WARRANTY OF ANY KIND, AND YOUR USE IS AT YOUR SOLE RISK. THE ENTIRE RISK
+OF SATISFACTORY QUALITY AND PERFORMANCE RESIDES WITH YOU. LICENSOR DISCLAIMS ANY AND ALL EXPRESS,
+IMPLIED OR STATUTORY WARRANTIES, INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY,
+FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT OF THIRD PARTY RIGHTS, ANY WARRANTIES OR CONDITIONS
+OF TITLE, AND WARRANTIES (IF ANY) ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. LICENSOR
+DOES NOT WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE PROGRAM; THAT THE PROGRAM WILL MEET
+YOUR REQUIREMENTS; THAT OPERATION OF THE PROGRAM WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT THE PROGRAM
+WILL BE COMPATIBLE WITH THIRD PARTY SOFTWARE OR THAT ANY ERRORS IN THE PROGRAM WILL BE CORRECTED. NO ORAL
+OR WRITTEN ADVICE PROVIDED BY LICENSOR OR ANY AUTHORIZED REPRESENTATIVE SHALL CREATE A WARRANTY. SOME
+JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF OR LIMITATIONS ON IMPLIED WARRANTIES OR THE LIMITATIONS
+ON THE APPLICABLE STATUTORY RIGHTS OF A CONSUMER, SO SOME OR ALL OF THE ABOVE EXCLUSIONS AND LIMITATIONS
+MAY NOT APPLY TO YOU. LICENSEE IS SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING AND
+DISTRIBUTING THE LICENSED SOFTWARE AND ASSUMES ALL RISKS ASSOCIATED WITH ITS EXERCISE OF RIGHTS UNDER
+THIS AGREEMENT, INCLUDING BUT NOT LIMITED TO THE RISKS AND COSTS OF PROGRAM ERRORS, COMPLIANCE WITH
+APPLICABLE LAWS, DAMAGE TO OR LOSS OF DATA, PROGRAMS OR EQUIPMENT, SUITABILITY FOR HOSTING AND
+UNAVAILABILITY OR INTERRUPTION OF OPERATIONS.
+
+Limitation of Liability
+=======================
+Except to the extent required by applicable law, THE CUMULATIVE, AGGREGATE LIABILITY OF LICENSOR
+TO LICENSEE FOR ALL CLAIMS RELATED TO THE LICENSED SOFTWARE AND THIS AGREEMENT, WILL NOT EXCEED
+THE TOTAL AMOUNT OF ALL LICENSE FEES PAID TO LICENSOR HEREUNDER. LICENSOR WILL NOT IN ANY CASE
+BE LIABLE FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, INDIRECT, PUNITIVE, OR EXEMPLARY DAMAGES
+ARISING IN ANY WAY OUT OF THE USE OF THE PRODUCT, THE SERVICES OR THIS AGREEMENT, INCLUDING
+WITHOUT LIMITATION, DAMAGES FOR LOST PROFIT, LOST REVENUE, LOSS OF USE, LOSS OF DATA, COSTS
+OF RECREATING LOST DATA, THE COST OF ANY SUBSTITUTE EQUIPMENT, PROGRAM, OR DATA, OR CLAIMS
+BY ANY THIRD PARTY, INCLUDING WITH LIMITATION THIRD PARTY CLAIMS OF INFRINGEMENT OF INTELLECTUAL
+PROPERTY RIGHTS, INFRINGEMENT OF COPYRIGHT, TRADEMARK, PATENT, OR TRADE SECRETS. LICENSEE'S
+SOLE AND EXCLUSIVE REMEDY IS SET FORTH IN THIS AGREEMENT. THE LIMITATION ON DAMAGES SET FORTH
+IN SECTION WILL NOT APPLY TO INDEMNIFICATION OBLIGATIONS OR BREACHES BY LICENSEE.
+
+Indemnity
+=========
+Licensee shall indemnify Licensor, its employees, officers, licensees and agents for all damages,
+costs and expenses, including, without limitation, attorneys’ fees, arising from any claims arising
+as a result of Licensee’s use of the Licensed Software, either as provided or as Adapted by Licensee.
+
+Export
+======
+Licensee agrees and certifies that it will not export or re-export, directly or indirectly, the Licensed
+Software contrary to the laws of the United States or any other country.
+
+Severability
+============
+If for any reason a court of competent jurisdiction finds any provision of this License or portion
+thereof, to be unenforceable, that provision of the License shall be enforced to the maximum extent
+permissible so as to affect the intent of the parties, and the remainder of this License shall
+continue in full force and effect.
+
+Governing Law
+=============
+This License shall be governed by the laws of Finland. Any disputes arising under this License
+shall be heard in the city of Espoo, Finland.
+
+Complete Agreement
+===================
+This License constitutes the entire agreement between Licensor and Licensee with respect to the
+use of the Licensed Software and supersedes all prior or contemporaneous understandings
+or agreements, written or oral, regarding such subject matter. No one other than Licensor
+has the right to modify or amend this License.
+
+Waiver of Breach
+================
+No term or provision of this License shall be deemed waived and no breach excused, unless such
+waiver or consent shall be in writing and signed by Licensor.
+
diff --git a/typo3/contrib/flowplayer/LICENSE_MULTIDOMAIN.txt b/typo3/contrib/flowplayer/LICENSE_MULTIDOMAIN.txt
new file mode 100644 (file)
index 0000000..614a82d
--- /dev/null
@@ -0,0 +1,171 @@
+FLOWPLAYER MULTIDOMAIN LICENSE version 0.1
+==========================================
+Copyright (c) 2008 Flowplayer Ltd, all rights reserved
+
+Please read this License carefully before using, downloading or installing
+the Software (Flowplayer, as defined below). By using, downloading or installing
+the Software, Licensee is agreeing to be bound by this License and the licenses
+granted hereunder are subject to compliance with any and all terms of this License.
+IF YOU DO NOT ACCEPT THE TERMS AND CONDITIONS OF THIS LICENSE, DO NOT USE, DOWNLOAD,
+INSTALL OR DISTRIBUTE ANY OF THE LICENSED SOFTWARE.
+
+Terms and definitions
+=====================
+
+"Software" means the licensed Flowplayer software
+
+"Adaptation" means a derivative work based upon the Licensed Software resulting from
+any addition to, editing of or deletion from the substance or structure of the original
+source code or a compiled version of the Licensed Software or any previous Adaptations
+or a work that programmatically interacts with the Licensed Software.
+
+"Licensed Software" means the same as Software.
+
+"License" means this document.
+
+"Licensor" means Flowplayer Ltd.
+
+"License Key" means an alphanumeric key that is used to activate the Sofware. The License
+Key is provided by Licensor.
+
+"Licensee" means an individual or entity exercising rights under and complying with the
+terms of this License who has not previously violated the terms of this License with respect
+to the Software, or who has received express permission from the Licensor to exercise rights
+under this License despite a previous violation.
+
+License Grant
+=============
+Licensor hereby grants the Licensee a non-exclusive, non-transferable, non-assignable
+license, without the right to sublicense to: Access, display, integrate and use the
+Software in one hundred (100) Internet domains that have been registered with Licensor.
+Licensor provides a license key that is tied to the domain names; and Make an Adaptation
+and access, display, and integrate it in the one hundred (100) Internet domains that have
+been registered with Licensor. The Adaptation must not remove the License Key logic from
+the Software so that the Adaptation only functions if a valid license key has been
+configured for it.
+
+Licensor hereby grants the Licensee a non-exclusive, worldwide, royalty-free,
+non-transferable, non-assignable patent license, without the right to sublicense,
+under any patent rights the Licensor holds in the Software to use, run, and modify
+the Software in the one hundred (100) Internet domains that have been registered
+with Licensor, provided that any Adaptation made to the Software does not remove
+the License Key logic from the Software so that the Adaptation only functions if a valid
+license key has been configured for it.
+
+All rights not expressly granted by this Agreement are expressly reserved by Licensor.
+
+
+Applicability of License
+========================
+
+This License applies to the Software version purchased by the Licensee.
+Additional later versions released by the Licensor are not part of this License.
+
+Protection of Licensed Software
+===============================
+
+Except as specifically set forth herein or as otherwise agreed to between Licensor
+and Licensee, Licensee shall not have the right to copy, relicense, sell, lease,
+transfer, encumber, assign or make available for public use the Software. Any attempt
+to take any such actions is void, and will automatically terminate your rights
+under this License.
+
+Licensee shall use its best efforts to ensure that no unauthorized copy of the Licensed
+Programs shall be made, in whole or in part, in any form.  Licensee shall prohibit all
+users of the Software from modifying, reverse-engineering or disassembling any part
+of the Software.  All rights not expressly granted by Licensor are hereby reserved.
+
+Effective Date
+==============
+
+The rights and licenses granted hereunder shall commence on the date any of the Software
+are electronically delivered to Licensee.  Licensor agrees to make the Software available
+for electronic delivery to Licensee promptly after receipt by Licensor of the License Fee.
+For purposes of this Agreement, the License Fee means the amount of money required to be
+paid by Licensee to Licensor for legal usage of the Software under the terms of this agreement.
+
+Termination of the license
+==========================
+This license is subject to termination by Licensor at any time if (a) Licensee violates an
+y terms of this License, (b) Licensor has a reasonable basis to believe that Licensee's
+business is impairing Licensor's business.
+
+
+Ownership of Intellectual Property
+==================================
+Licensor is the sole owner of all intellectual property rights pertaining to the Licensed
+Software.  Licensor reserves all rights not expressly granted herein.
+
+No Warranty
+===========
+TO THE FULLEST EXTENT PERMISSIBLE UNDER APPLICABLE LAW, THE LICENSED SOFTWARE IS PROVIDED
+TO YOU "AS IS," WITH ALL FAULTS, WITHOUT WARRANTY OF ANY KIND, AND YOUR USE IS AT YOUR
+SOLE RISK. THE ENTIRE RISK OF SATISFACTORY QUALITY AND PERFORMANCE RESIDES WITH YOU.
+LICENSOR DISCLAIMS ANY AND ALL EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING IMPLIED
+WARRANTIES OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A PARTICULAR PURPOSE,
+NONINFRINGEMENT OF THIRD PARTY RIGHTS, ANY WARRANTIES OR CONDITIONS OF TITLE, AND WARRANTIES
+(IF ANY) ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. LICENSOR DOES NOT
+WARRANT AGAINST INTERFERENCE WITH YOUR ENJOYMENT OF THE PROGRAM; THAT THE PROGRAM WILL
+MEET YOUR REQUIREMENTS; THAT OPERATION OF THE PROGRAM WILL BE UNINTERRUPTED OR ERROR-FREE,
+OR THAT THE PROGRAM WILL BE COMPATIBLE WITH THIRD PARTY SOFTWARE OR THAT ANY ERRORS IN THE
+PROGRAM WILL BE CORRECTED. NO ORAL OR WRITTEN ADVICE PROVIDED BY LICENSOR OR ANY AUTHORIZED
+REPRESENTATIVE SHALL CREATE A WARRANTY. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION
+OF OR LIMITATIONS ON IMPLIED WARRANTIES OR THE LIMITATIONS ON THE APPLICABLE STATUTORY
+RIGHTS OF A CONSUMER, SO SOME OR ALL OF THE ABOVE EXCLUSIONS AND LIMITATIONS MAY NOT
+APPLY TO YOU. LICENSEE IS SOLELY RESPONSIBLE FOR DETERMINING THE APPROPRIATENESS OF USING
+AND DISTRIBUTING THE LICENSED SOFTWARE AND ASSUMES ALL RISKS ASSOCIATED WITH ITS EXERCISE
+OF RIGHTS UNDER THIS AGREEMENT, INCLUDING BUT NOT LIMITED TO THE RISKS AND COSTS OF PROGRAM
+ERRORS, COMPLIANCE WITH APPLICABLE LAWS, DAMAGE TO OR LOSS OF DATA, PROGRAMS OR EQUIPMENT,
+SUITABILITY FOR HOSTING AND UNAVAILABILITY OR INTERRUPTION OF OPERATIONS.
+
+Limitation of Liability
+=======================
+Except to the extent required by applicable law, THE CUMULATIVE, AGGREGATE LIABILITY OF
+LICENSOR TO LICENSEE FOR ALL CLAIMS RELATED TO THE LICENSED SOFTWARE AND THIS AGREEMENT,
+WILL NOT EXCEED THE TOTAL AMOUNT OF ALL LICENSE FEES PAID TO LICENSOR HEREUNDER. LICENSOR
+WILL NOT IN ANY CASE BE LIABLE FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, INDIRECT, PUNITIVE,
+OR EXEMPLARY DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PRODUCT, THE SERVICES OR
+THIS AGREEMENT, INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOST PROFIT, LOST REVENUE,
+LOSS OF USE, LOSS OF DATA, COSTS OF RECREATING LOST DATA, THE COST OF ANY SUBSTITUTE EQUIPMENT,
+PROGRAM, OR DATA, OR CLAIMS BY ANY THIRD PARTY, INCLUDING WITH LIMITATION THIRD PARTY CLAIMS
+OF INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS, INFRINGEMENT OF COPYRIGHT, TRADEMARK,
+PATENT, OR TRADE SECRETS. LICENSEE'S SOLE AND EXCLUSIVE REMEDY IS SET FORTH IN THIS AGREEMENT.
+THE LIMITATION ON DAMAGES SET FORTH IN SECTION WILL NOT APPLY TO INDEMNIFICATION OBLIGATIONS
+OR BREACHES BY LICENSEE.
+
+
+Indemnity
+=========
+Licensee shall indemnify Licensor, its employees, officers, licensees and agents for
+all damages, costs and expenses, including, without limitation, attorneys\89Ûª fees, arising from
+any claims arising as a result of Licensee\89Ûªs use of the Licensed Software, either as provided
+or as Adapted by Licensee.
+
+Export
+======
+Licensee agrees and certifies that it will not export or re-export, directly or indirectly,
+the Licensed Software contrary to the laws of the United States or any other country.
+
+Severability
+============
+If for any reason a court of competent jurisdiction finds any provision of this License or portion
+thereof, to be unenforceable, that provision of the License shall be enforced to the maximum extent
+permissible so as to affect the intent of the parties, and the remainder of this License shall
+continue in full force and effect.
+
+Governing Law
+=============
+This License shall be governed by the laws of Finland. Any disputes arising under this License
+shall be heard in the city of Espoo, Finland.
+
+Complete Agreement
+===================
+This License constitutes the entire agreement between Licensor and Licensee with respect to the
+use of the Licensed Software and supersedes all prior or contemporaneous understandings or agreements,
+written or oral, regarding such subject matter. No one other than Licensor has the right to modify
+or amend this License.
+
+Waiver of Breach
+================
+No term or provision of this License shall be deemed waived and no breach excused, unless such
+waiver or consent shall be in writing and signed by Licensor.
diff --git a/typo3/contrib/flowplayer/LICENSE_UNLIMITED.txt b/typo3/contrib/flowplayer/LICENSE_UNLIMITED.txt
new file mode 100644 (file)
index 0000000..6b26d22
--- /dev/null
@@ -0,0 +1,3 @@
+Flowplayer Unlimited license terms are available in this page:
+
+http://flowplayer.org/download/licenses/license_unlimited.htm
\ No newline at end of file
index 4609c6d..1375e00 100644 (file)
@@ -1,9 +1,134 @@
 Version history:
 
-3.2.7
+3.2.16
+------
+- #15 fixes for #627, handle the display init on startup.
+- #615 dispatch begin if in paused mode too early.
+- #629 if start has been dispatched already prevent dispatching many begin events.
+- #20 for the free player swap the logo with the stage video mask to display underneath not on top.
+- #42 pass in stream clips through and close the stream before returning to the parent clip.
+- #52 when replaying flag start has dispatched on the current clip.
+- #44 fixes for #627 check if the stagevideo dimensions and positioning has changed to update the stage video mask with.
+- unbinding and binding stage video events caused issues with instream playlists therefore has to be kept binded.
+  unbinded stage video events during seeking to prevent the mask repositioning.
+- #53 update url filter to accomodate for pretty urls with semi colons.
+- #50 if we have metadata already set it is being updated during seeks and switching, dispatch metadata change events instead.
+
+3.2.15
+------
+- #614 when the clip ends if the next clip in the provider has a different provider close the provider stream.
+- #627 only detach / attach the display on start events which causes issues in buffering events after a seek in stagevideo.
+- #627 re-enable stagevideo state change listeners if stagevideo is available or detach the fullscreen events on first call.
+- #9 when replaying from stopping, connection does not receive callbacks anymore.
+
+
+
+
+3.2.13
+------
+- Updated to automatically load the latest controls and audio plugins
+- #612 add some logging for the stagevideo render state to determine what mode the hardware acceleration is in for various systems.
+- #628 opera browsers do not return filesize correctly for latest flash players so require to use load completion instead which may help with gzipped files also.
+
+3.2.12
+------
+- new flowplayer.js version 3.2.11,
+   fixes removing the player in fullscreen mode leaves Android locked in landscape orientation (#511)
+- #586 add a bitrate label with a new namespace attribute fp:bitratelabel.
+- #583 fixes for handling the fullscreenOnly property better
+- #494 with relative filenames with a root path strip the baseurl of paths first.
+
+3.2.11
+------
+- new flowplayer.js, now requires Flash 10.1 as the minimum flash version
+- #526 allow click through event for flash installation message when using div containers.
+- #508 disabling the stagevideo screen mask, canvas is visible without it, this was causing issues with the display list.
+- #443 adding accessibility option to the playbuttonoverlay.
+
+
+3.2.10
+------
+- Fixed #514, scrubbing was broken
+- new flowplayer.js version 3.2.9, fixes #510
+
+3.2.9
+-----
+- Fixed #490, controlbar background, buffer bar and progress bar colors were all reset to white
+- #503 Update viewport when stage is added to obtain the coordnates correctly. Update viewport when in and out of fullscreen.
+- #508 stage video mask was being added to the top layer and hiding all children.
+
+3.2.8
 -----
+- Added new property clip.backBufferLength, to be used with FMS 3.5
+- Adds support for StageVideo. To enable it set clip.accelerated to true.
+- Tries to reload two times if the stream is not initially found. Also does 3 connection attempts if the connection fails with RTMP.
+- Support for FMS slow motion
+- Support for thumbnails in RSS files
+- Added onPlayStatus clip event handler on NetStreamClient.
+- Added new clip events for stream switching onSwitchFailed and onSwitchComplete
+- made it possible to replay a clip using play(<current_clip's_index>)
+
+Fixes:
+- fixed to dispatch onStart also when replaying the previous clip, now the JS controlbar again works when replaying
+- cuepoints were fired multiple times when there is a playlist with several clips. Issue #150.
+- fixed XML parsing error when metadata's keys contains dashes
+- backgroundImage css property can now be set to "none" to be removed
+- fixed the facts that clips in a playlist were cut off by a fraction in the end
+- fullScreenOnly now works in conjunction with displayTime
+- JS plugins now handles grouped syntax like flowplayer("a.player" /*...*/ )
+- JS function setClip can now be used to add listeners on the new Clip
+- different players with the same configuration stored in a variable can now use JS plugins
+- using linkUrl now works when calling JS function setClip
+- zIndex for plugins works fine now, issue #302
+- onLastSecond was fired twice, issue #300
+- fixed license key verification on subdomains, issue #318
+- fixed XSS vulnerability with linkUrls. Thank you Szymon Gruszecki for discovering and reporting this to us. Issue #329.
+- fixed switch stream api support in paused state. #279.
+- added switching state properties. #339
+- fixed the stopBuffering() API method to close the NetConnection and to clear the screen
+- Issue #355 setup targeting for Flash 10.0 and 10.1 to provide support for Flash 10.0 without Stagevideo requirements.
+- fixed #364, NetConnection unnecessary closed/reconnected when the netConnection does not change from clip to clip
+- xss fix for flashembed #357
+- Issue #384 added links support in context menus with configuration { url: "domain.com", target: "_blank"} which will work in embedded players.
+- #378, javascript method loadPluginWithConfig is unavailable and non existant. Documentation updated required to remove this and updates for loadPlugin like so
+this.loadPlugin("content","../flowplayer.content.swf", { html: "test", top: 30  }); or
+this.loadPlugin("content","../flowplayer.content.swf", { html: "test"  }, function() {
+                        this.css({ top: 30 });
+                    });
+- #191 send the resume event, and no stop event first before reconnecting due to a connection timeout so the player comes out of a paused state correctly.
+- #363 pause stream after metadata not beforehand or else no metadata is sent for rtmp clips .
+- #363 silent seek and force to seek to a keyframe or else video frame will not display initially when paused.
+- #375 clearing the event listeners when adding new video displays prevents new events being added when the playlist is replaced.
+- #391 add message argument to connection failure callback required by some connection providers.
+- #363 add overridable pause to frame for different seek functionality between http and rtmp.
+- #392 possible fix for extensions with no filetypes like rtmp flv clips, require positive index check.
+- #395 apply buffer animation status to VOD streams only.
+- #375 possible fix when replacing the playlist in onBeforeFinish, move replay button to onFinish.
+- #390 correct seek back to a valid time on invalid seeking while seeking in the buffer.
+- #404 implement netstreamplayoptions for http streams, resets the stream or start loading a new stream.
+- fixed an issue in parsing JSON config that contains several comments separated by whitespace
+- new clip property 'stopLiveOnPause'
+- #415 regression issue with #395, stop the buffering animation correctly.
+- #414 problem appears again for very short clips with invalid seek times, make it step back 1 second from the invalid seek time to seek the buffer correctly.
+- #416 enable seekableOnBegin to enable the scrubbar correctly when autobuffering.
+- #423 add the . to clip type extension checks or else files with known extension postfixes within them will be chosen instead.
+- #426 when a plugin width is set to a percentage, x/y is required to be floored or else it will affect the animation engine. specifically for the autohide function.
+- #430 adding event listeners for netconnection to obtain certain events.
+- #430 clear buffering status on connection failure.
+- #430 clear buffering status on stream failure.
+- #412 check for empty baseurl or else player url is appended and affects the url parsing.
+- #439 check for all rtmp streaming protocols when checking for rtmp urls.
+- #442 fix for code error in the javascript api.
+- #461 when we have a clip base url set, we need the complete clip url sent to play2 for http streams.
+- #470 check for a playlist when replacing the playlist with an rss feed.
+- #494 regression issued caused by #412, enable base url correctly.
+- #30 regression caused by character replacements, removing for now and let end user deal with them.
 
-- Loads the new controlbar plugin version 3.2.5. No other functional changes.
+3.2.7
+-----
+- Loads the new controlbar plugin version 3.2.5.
+Fixes:
+- Fixed 'orig' scaling in fullscreen: http://flowplayer.org/forum/2/10274#post-52646
 
 3.2.6
 -----
index d60d3f0..2ef5d3a 100644 (file)
@@ -1,54 +1,65 @@
 
 # you need to adjust following to point to your Flex SDK
-flex3dir=/Users/Api/flex_sdk_4
+flexdir=/Users/Api/flex_sdk_4.5.0.19786
 
 # change following to point to .exe files when running on Windows  
-mxmlc_bin= ${flex3bindir}/mxmlc
-compc_bin= ${flex3bindir}/compc
+mxmlc_bin= ${flexbindir}/mxmlc
+compc_bin= ${flexbindir}/compc
 asdoc_bin= /Users/Api/flex_sdk_3/bin/asdoc
 
-devkit-dir=../flowplayer.devkit
-plugins.dir=../
-deploy.dir=/Users/api/flowplayer.org/out/artifacts/setup_war_exploded/swf
+devkit-dir=../lib/devkit
+plugins.dir=../plugins
+lib.dir=../lib
 
+site.dir=/Users/api/hyde/site
+js.deploy.dir=${site.dir}/deploy/js
+deploy.dir=${site.dir}/content/swf
 
-# 3.2.4
-#plugin.buildfiles=rtmp/build.xml,pseudostreaming/build.xml
+#plugin.buildfiles=rtmp/build.xml
+#
 
-#plugin.buildfiles=bwcheck/build.xml, \
-#  analytics/build.xml, \
-#  audio/build.xml, \
-#  captions/build.xml, \
-#  cluster/build.xml, \
-#  controls/build.xml,controls/build-air.xml,controls/build-tube.xml,controls/build-skinless.xml, \
-#  pseudostreaming/build.xml, \
-#  securestreaming/build.xml, \
-#  viralvideos/build.xml, \
-#  sharing/build.xml
+# 3.2.16
+plugin.buildfiles=rtmp/build.xml,controls/build.xml,controls/build-tube.xml,controls/build-air.xml,controls/build-skinless.xml, \
+  sharing/build.xml,viralvideos/build.xml,bitrateselect/build.xml,bwcheck/build.xml,bwcheck/build-httpstreaming.xml \
+  httpstreaming/build.xml,menu/build.xml,pseudostreaming/build.xml
 #
-plugin.buildfiles=bwcheck/build.xml,controls/build.xml,controls/build-air.xml,controls/build-tube.xml,controls/build-skinless.xml, \
-  viralvideos/build.xml,pseudostreaming/build.xml,securestreaming/build.xml,smil/build.xml,sharing/build.xml
+#plugin.buildfiles=analytics/build.xml,audio/build.xml,bwcheck/build.xml,bwcheck/build-httpstreaming.xml \
+#                    captions/build.xml,content/build.xml,controls/build.xml,controls/build-tube.xml,controls/build-air.xml,controls/build-skinless.xml, \
+#                    f4m/build.xml,httpstreaming/build.xml,pseudostreaming/build.xml,rtmp/build.xml,securestreaming/build.xml, \
+#                    sharing/build.xml,slowmotion/build.xml,smil/build.xml,viralvideos/build.xml, \
+#                    bitrateselect/build.xml,menu/build.xml,cluster/build.xml
+# all plugins
+allplugins.buildfiles=analytics/build.xml,audio/build.xml,bwcheck/build.xml,bwcheck/build-httpstreaming.xml \
+  captions/build.xml,content/build.xml,controls/build.xml,controls/build-tube.xml,controls/build-air.xml,controls/build-skinless.xml, \
+  f4m/build.xml,httpstreaming/build.xml,pseudostreaming/build.xml,rtmp/build.xml,securestreaming/build.xml, \
+  sharing/build.xml,slowmotion/build.xml,smil/build.xml,viralvideos/build.xml,securedrm/build.xml, \
+  bitrateselect/build.xml,menu/build.xml,cluster/build.xml
 
+jsplugins.buildfiles=controls/build.xml,embed/build.xml,ipad/build.xml,playlist/build.xml,bitrateselect/build.xml
 
-for plugins that can be built inside the player
+cloudfront.version=1.0
+adsense.version=flowplayer.org-1.6.1
 
-plugin-classes=${plugins.dir}controls/src/actionscript ${plugins.dir}content/src/actionscript  \
-  ${plugins.dir}akamai/src/actionscript ${plugins.dir}rtmp/src/actionscript ${plugins.dir}pseudostreaming/src/actionscript \
-  ${plugins.dir}audio/src/actionscript ${plugins.dir}bwcheck/src/actionscript ${plugins.dir}cluster/src/actionscript \
-  ${plugins.dir}captions/src/actionscript ${plugins.dir}securestreaming/src/actionscript ${plugins.dir}smil/src/actionscript \
-  ${plugins.dir}common/src/actionscript
+# for plugins that can be built inside the player
+plugin-classes=${plugins.dir}/controls/src/actionscript ${lib.dir}/common/src/actionscript
+#plugin-classes=${plugins.dir}/controls/src/actionscript ${plugins.dir}/pseudostreaming/src/actionscript \
+#  ${plugins.dir}/rtmp/src/actionscript \
+#  ${lib.dir}/common/src/actionscript
 
-plugin-swc=../controls/src/flash ../content/src/flash ../viralvideos/src/flash ../pseudostreaming/lib
+plugin-swc=${plugins.dir}/controls/src/flash ${plugins.dir}/pseudostreaming/lib
 
-controls-dir=../controls
+controls-dir=${plugins.dir}/controls
+compiler.defines=
 
 # following can usually be left as they are
-flex3bindir=${flex3dir}/bin
-flex3libsdir=${flex3dir}/frameworks/libs
+flexbindir=${flexdir}/bin
+flexlibsdir=${flexdir}/frameworks/libs
 flashplayer_bin= 
 framerate=24
 bgcolor=0xFFFFFF
 width=500
 height=350
 
-Str
\ No newline at end of file
+# Flash Player targets
+flash.use.10.1=true
+flash.target.player=10.2.0
index 4e3ff34..a25281a 100644 (file)
@@ -1,14 +1,15 @@
 <project name="Flowplayer" default="build">
     <property file="build.generated.properties"/>
+    <property file="${user.home}/core.properties" />
     <property file="build.properties"/>
 
     <property name="version-1" value="3"/>
     <property name="version-2" value="2"/>
-    <property name="version-3" value="7"/>
+    <property name="version-3" value="16"/>
     <property name="version-status" value=""/>
-    <property name="controls-version-info" value="3.2.5"/>
-    <property name="audio-version-info" value="3.2.2"/>
-    <property name="flowplayer-js-version-info" value="3.2.6"/>
+    <property name="controls-version-info" value="3.2.15"/>
+    <property name="audio-version-info" value="3.2.10"/>
+    <property name="flowplayer-js-version-info" value="3.2.12"/>
     <property name="source-dist-root-folder" value="flowplayer"/>
 
     <property name="version-status-quoted" value="&quot;&#39;${version-status}&#39;&quot;"/>
@@ -46,9 +47,9 @@
         <available file="${controls-dir}/build.xml"/>
     </condition>
 
-    <property name="libs-path" value="${flex3libsdir} ${lib-dir}/thunderbolt ${plugin-libs} ${plugin-swc}"/>
+    <property name="libs-path" value="${flexlibsdir} ${lib-dir}/thunderbolt ${plugin-libs} ${plugin-swc}"/>
     <property name="classes-for-lib"
-              value="org.flowplayer.view.Flowplayer org.flowplayer.util.PropertyBinder org.flowplayer.util.Arrange org.flowplayer.util.Assert org.flowplayer.model.PluginEvent org.flowplayer.util.TextUtil org.flowplayer.view.AbstractSprite org.flowplayer.view.AnimationEngine org.flowplayer.controller.NetStreamControllingStreamProvider org.flowplayer.controller.NetStreamClient org.flowplayer.controller.NetConnectionClient"/>
+              value="org.flowplayer.view.Flowplayer org.flowplayer.util.PropertyBinder org.flowplayer.util.Arrange org.flowplayer.util.Assert org.flowplayer.model.PluginEvent org.flowplayer.util.TextUtil org.flowplayer.view.AbstractSprite org.flowplayer.view.AnimationEngine org.flowplayer.controller.NetStreamControllingStreamProvider org.flowplayer.controller.NetStreamClient org.flowplayer.controller.NetConnectionClient org.flowplayer.util.TimeUtil"/>
     <property name="doc-classes"
               value="${classes-for-lib} org.flowplayer.view.FlowplayerBase org.flowplayer.view.StyleableSprite org.flowplayer.model.Plugin org.flowplayer.model.PluginModel org.flowplayer.model.DisplayPluginModel org.flowplayer.model.ProviderModel org.flowplayer.model.Cloneable org.flowplayer.model.DisplayProperties org.flowplayer.model.Identifiable org.flowplayer.model.Callable org.flowplayer.model.Clip org.flowplayer.model.Playlist org.flowplayer.model.AbstractEvent org.flowplayer.model.ClipEvent org.flowplayer.model.PlayerEvent org.flowplayer.model.PluginEvent org.flowplayer.model.ClipEventDispatcher org.flowplayer.model.ClipEventSupport org.flowplayer.model.EventType org.flowplayer.model.ClipEventType org.flowplayer.model.PlayerEventType org.flowplayer.model.PluginEventType org.flowplayer.view.Styleable org.flowplayer.controller.StreamProvider org.flowplayer.model.PluginFactory org.flowplayer.controller.ClipURLResolver org.flowplayer.controller.ConnectionProvider org.flowplayer.util.Log"/>
 
     <property name="commercial-player-binary-versioned" value="flowplayer.commercial-${version-info}.swf"/>
 
     <property name="dist-name" value="flowplayer-${version-info}.zip"/>
+    <property name="dist-target-name" value="flowplayer-${version-info}-${flash.target.player}.zip"/>
     <property name="commercial-dist-name" value="flowplayer.commercial-${version-info}.zip"/>
+    <property name="commercial-dist-target-name" value="flowplayer.commercial-${version-info}-${flash.target.player}.zip"/>
     <property name="multidomain-dist-name" value="flowplayer.multidomain-${version-info}.zip"/>
+    <property name="multidomain-dist-target-name" value="flowplayer.multidomain-${version-info}-${flash.target.player}.zip"/>
     <property name="devkit-dist-name" value="flowplayer.devkit-${version-info}.zip"/>
     <property name="apidoc-dist-name" value="flowplayer.asdoc-${version-info}.zip"/>
     <property name="source-dist-name" value="flowplayer-${version-info}-src.zip"/>
 
+    <property name="dist-name-dev" value="flowplayer.zip"/>
+    <property name="commercial-dist-name-dev" value="flowplayer.commercial.zip"/>
+    <property name="multidomain-dist-name-dev" value="flowplayer.multidomain.zip"/>
+    <property name="devkit-dist-name-dev" value="flowplayer.devkit.zip"/>
+    <property name="apidoc-dist-name-dev" value="flowplayer.asdoc.zip"/>
+    <property name="source-dist-name-dev" value="flowplayer-src.zip"/>
+
     <target name="clean" depends="clean-plugins">
         <delete dir="${build-dir}">
             <include name="*swf"/>
         <example player-swf="${player-binary-versioned}" example-dir="example-free"/>
     </target>
 
-    <target name="deploy" if="deploy.dir">
-        <copy todir="${deploy.dir}">
+    <target name="deploy" if="deploy.dir" description="copies swf and js to deploy dirs" depends="jsplugins">
+        <copy todir="${deploy.dir}" overwrite="true">
             <fileset dir="${build-dir}">
                 <include name="*swf"/>
             </fileset>
         </copy>
+        <iterate-plugins target="deploy" buildfiles="${jsplugins.buildfiles}" basedirectory="../js-plugins" />
     </target>
 
     <target name="build" description="builds all" depends="dobuild, deploy" />
                 <arg line="-define+=CONFIG::versionStatus,${version-status-quoted}"/>
                 <arg line="-define+=CONFIG::controlsVersion,${controls-version-info-quoted}"/>
                 <arg line="-define+=CONFIG::audioVersion,${audio-version-info-quoted}"/>
-                <arg line="-define+=CONFIG::skin,true"/>
+                <arg line="-define+=CONFIG::skin,'true'"/>
                 <arg line="-define+=CONFIG::hasSlowMotion,'${has-slowmotion-buttons}'"/>
                 <arg line="-define+=CONFIG::debug,'@{debug}'"/>
                 <arg line="-define+=CONFIG::enableByteRange,'false'"/>
+                <arg line="-define+=CONFIG::FLASH_10_1,'${flash.use.10.1}'"/>
+                <arg line="${compiler.defines}"/>
                 <arg line="-keep-as3-metadata=Value,External"/>
                 <arg line="-source-path ${src-as} ${src-as-commercial} ${classpath} ${plugin-libs}"/>
                 <arg line="-static-link-runtime-shared-libraries=true" />
                 
                 <arg line="-file-specs '${src-as}/org/flowplayer/view/Preloader.as'"/>
                 <arg line="-output '${build-dir}/@{binary}'"/>
-                <arg line="-target-player '10.1.0'"/>
+
             </exec>
         </sequential>
     </macrodef>
     </target>
 
     <target name="compile-lib">
+        <echo message="running ${compc_bin} with classpath ${classpath}" />
         <exec executable="${compc_bin}" failonerror="true">
             <arg line="-source-path ${src-as} ${src-as-commercial} ${classpath}"/>
             <arg line="-compute-digest=false"/>
             <arg line="-strict=true"/>
             <arg line="-incremental=true"/>
                        <arg line="-define+=CONFIG::debug,'false'"/>
+            <arg line="-define+=CONFIG::FLASH_10_1,'${flash.use.10.1}'"/>
+
         </exec>
     </target>
 
 
     <macrodef name="iterate-plugins">
         <attribute name="target"/>
+        <attribute name="buildfiles" default="${plugin.buildfiles}"/>
+        <attribute name="basedirectory" default="${plugins.dir}"/>
         <sequential>
             <subant target="@{target}">
-                <fileset dir="${plugins.dir}" includes="${plugin.buildfiles}"/>
+                <fileset dir="@{basedirectory}" includes="@{buildfiles}"/>
                 <property name="remotedir" value="${remotedir}"/>
                 <property name="all-swf-zip" value="${basedir}/dist/latest.zip"/>
                 <property name="swfremotedir" value="${swfremotedir}"/>
                 <property name="aws-secretKey" value="${aws-secretKey}"/>
                 <property name="keyfile" value="${keyfile}"/>
                 <property name="url-file" value="${url-file}"/>
-                <property name="devkit-dir" value="${devkit-dir}"/>
+                <property name="yaml-file" value="${yaml-file}"/>
+                <property name="devkit-dir" value="../${devkit-dir}"/>
+                <property name="js.deploy.dir" value="${js.deploy.dir}"/>
+                <property name="mxmlc-bin" value="${mxmlc-bin}" />
             </subant>
         </sequential>
     </macrodef>
 
     <target name="release-plugin" description="releases one plugin, specify the plugin name with -Dplugin=">
-        <ant antfile="../${plugin}/build.xml" target="release-remote" dir="../${plugin}">
+        <ant antfile="build.xml" target="release-remote" dir="../plugins/${plugin}">
             <property name="remotedir" value="${remotedir}"/>
             <property name="all-swf-zip" value="${basedir}/dist/latest.zip"/>
             <property name="swfremotedir" value="${swfremotedir}"/>
             <property name="aws-secretKey" value="${aws-secretKey}"/>
             <property name="url-file" value="${url-file}"/>
             <property name="keyfile" value="${keyfile}"/>
+            <property name="devkit-dir" value="../${devkit-dir}"/>
+        </ant>
+    </target>
+
+
+    <target name="release-js-plugin" description="releases one JS plugin, specify the plugin name with -Dplugin=">
+        <ant antfile="build.xml" target="release-remote" dir="../js-plugins/${plugin}">
+            <property name="devkit-dir" value="../${devkit-dir}"/>
         </ant>
     </target>
 
         <!--</exec>-->
     </target>
 
-    <target name="zip" description="creates a distribution zip package" depends="build">
+    <target name="zip" description="creates a distribution zip package">
         <zip-player zip-name="${dist-name}" player-swf-dir="${build-dir}" player-swf="${player-binary-versioned}"
                     license="LICENSE.txt" example-dir="example-free"/>
+        <copy file="${dist-dir}/${dist-name}" tofile="${dist-dir}/flowplayer.zip" />
+        <copy file="${dist-dir}/${dist-name}" tofile="${dist-dir}/${dist-target-name}" />
     </target>
 
-    <target name="zip-biz" description="creates a Commercial distribution zip package" depends="build-biz">
+    <target name="zip-biz" description="creates a Commercial distribution zip package">
         <zip-player zip-name="${commercial-dist-name}" player-swf-dir="${build-dir}"
                     player-swf="${commercial-player-binary-versioned}" license="LICENSE_COMMERCIAL.txt"
                     example-dir="example-biz"/>
+        <copy file="${dist-dir}/${commercial-dist-name}" tofile="${dist-dir}/flowplayer.commercial.zip" />
+        <copy file="${dist-dir}/${commercial-dist-name}" tofile="${dist-dir}/${commercial-dist-target-name}" />
+
+
         <zip-player zip-name="${multidomain-dist-name}" player-swf-dir="${build-dir}"
                     player-swf="${commercial-player-binary-versioned}" license="LICENSE_MULTIDOMAIN.txt"
                     example-dir="example-biz"/>
+
+        <copy file="${dist-dir}/${multidomain-dist-name}" tofile="${dist-dir}/${multidomain-dist-target-name}" />
     </target>
 
     <macrodef name="zip-player">
         <sequential>
             <echo message="++ Zipping @{zip-name} +++"></echo>
 
-            <zip destfile="${dist-dir}/@{zip-name}">
+            <zip destfile="${dist-dir}/@{zip-name}" update="false">
                 <zipfileset prefix="flowplayer" dir=".">
                     <include name="@{license}"/>
+                    <!--<include name="flowplayer-${flowplayer-js-version-info}.min.js" />-->
                     <include name="README.txt"/>
                 </zipfileset>
+                <zipfileset prefix="flowplayer" dir="${src-js}/flowplayer.js">
+                    <include name="flowplayer-${flowplayer-js-version-info}.min.js"/>
+                </zipfileset>
                 <zipfileset prefix="flowplayer" dir="@{player-swf-dir}">
                     <include name="@{player-swf}"/>
                 </zipfileset>
                 <include name="build.properties"/>
             </zipfileset>
         </zip>
+        <copy file="${dist-dir}/${source-dist-name}" tofile="${dist-dir}/flowplayer-src.zip" />
     </target>
 
     <macrodef name="verify-zip">
                     <available file="${dist-dir}/flowplayer/README.txt"/>
                     <available file="${dist-dir}/flowplayer/example/index.html"/>
                     <available file="${dist-dir}/flowplayer/example/style.css"/>
-                    <available file="${dist-dir}/flowplayer/example/flowplayer-${flowplayer-js-version-info}.min.js"/>
+                    <available file="${dist-dir}/flowplayer/flowplayer-${flowplayer-js-version-info}.min.js"/>
                 </and>
             </condition>
             <fail unless="${resources-available}" message="Not all required resources present in @{zip-name}"/>
                 <include name="*.properties"/>
                 <include name="src/**/*"/>
             </zipfileset>
-            <zipfileset prefix="flowplayer.devkit/doc" dir="${apidoc-dir}">
-                <include name="**/*"/>
-            </zipfileset>
+            <!--<zipfileset prefix="flowplayer.devkit/doc" dir="${apidoc-dir}">-->
+                <!--<include name="**/*"/>-->
+            <!--</zipfileset>-->
         </zip>
     </target>
 
-    <target name="dist" description="Create distribution packages">
+    <target name="dist" description="Create distribution packages" depends="build-all">
         <iterate-plugins target="dist"/>
         <ant target="zip"/>
         <ant target="zip-biz"/>
         <ant target="source-dist"/>
     </target>
 
+    <target name="all-dist" description="Create distribution packages for all plugins">
+        <iterate-plugins target="dist" buildfiles="${allplugins.buildfiles}" />
+        <ant target="zip"/>
+        <ant target="zip-biz"/>
+        <ant target="zip-devkit"/>
+        <ant target="source-dist"/>
+    </target>
+
     <!-- following is used when building from a webapp in our compile farm -->
     <target name="copy" if="copy-source">
         <copy file="${copy-source}" tofile="${copy-target}" verbose="true"/>
         <echo message="version-status: ${version-status}"/>
     </target>
 
+    <target name="jsplugins">
+        <iterate-plugins target="min" buildfiles="${jsplugins.buildfiles}" basedirectory="../js-plugins"/>
+    </target>
 
        <target name="debug-js">
                 <get src="http://flowplayer.org/js/tools/tools.flashembed-1.0.4.js" dest="${dist-dir}/flowplayer-debug.js"/>
diff --git a/typo3/contrib/flowplayer/example/flowplayer-3.2.6.min.js b/typo3/contrib/flowplayer/example/flowplayer-3.2.6.min.js
deleted file mode 100644 (file)
index 500492e..0000000
+++ /dev/null
@@ -1,24 +0,0 @@
-/* 
- * flowplayer.js 3.2.6. The Flowplayer API
- * 
- * Copyright 2009-2011 Flowplayer Oy
- * 
- * This file is part of Flowplayer.
- * 
- * Flowplayer is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- * 
- * Flowplayer is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- * 
- * You should have received a copy of the GNU General Public License
- * along with Flowplayer.  If not, see <http://www.gnu.org/licenses/>.
- * 
- * Date: 2011-02-04 05:45:28 -0500 (Fri, 04 Feb 2011)
- * Revision: 614 
- */
-(function(){function g(o){console.log("$f.fireEvent",[].slice.call(o))}function k(q){if(!q||typeof q!="object"){return q}var o=new q.constructor();for(var p in q){if(q.hasOwnProperty(p)){o[p]=k(q[p])}}return o}function m(t,q){if(!t){return}var o,p=0,r=t.length;if(r===undefined){for(o in t){if(q.call(t[o],o,t[o])===false){break}}}else{for(var s=t[0];p<r&&q.call(s,p,s)!==false;s=t[++p]){}}return t}function c(o){return document.getElementById(o)}function i(q,p,o){if(typeof p!="object"){return q}if(q&&p){m(p,function(r,s){if(!o||typeof s!="function"){q[r]=s}})}return q}function n(s){var q=s.indexOf(".");if(q!=-1){var p=s.slice(0,q)||"*";var o=s.slice(q+1,s.length);var r=[];m(document.getElementsByTagName(p),function(){if(this.className&&this.className.indexOf(o)!=-1){r.push(this)}});return r}}function f(o){o=o||window.event;if(o.preventDefault){o.stopPropagation();o.preventDefault()}else{o.returnValue=false;o.cancelBubble=true}return false}function j(q,o,p){q[o]=q[o]||[];q[o].push(p)}function e(){return"_"+(""+Math.random()).slice(2,10)}var h=function(t,r,s){var q=this,p={},u={};q.index=r;if(typeof t=="string"){t={url:t}}i(this,t,true);m(("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop").split(","),function(){var v="on"+this;if(v.indexOf("*")!=-1){v=v.slice(0,v.length-1);var w="onBefore"+v.slice(2);q[w]=function(x){j(u,w,x);return q}}q[v]=function(x){j(u,v,x);return q};if(r==-1){if(q[w]){s[w]=q[w]}if(q[v]){s[v]=q[v]}}});i(this,{onCuepoint:function(x,w){if(arguments.length==1){p.embedded=[null,x];return q}if(typeof x=="number"){x=[x]}var v=e();p[v]=[x,w];if(s.isLoaded()){s._api().fp_addCuepoints(x,r,v)}return q},update:function(w){i(q,w);if(s.isLoaded()){s._api().fp_updateClip(w,r)}var v=s.getConfig();var x=(r==-1)?v.clip:v.playlist[r];i(x,w,true)},_fireEvent:function(v,y,w,A){if(v=="onLoad"){m(p,function(B,C){if(C[0]){s._api().fp_addCuepoints(C[0],r,B)}});return false}A=A||q;if(v=="onCuepoint"){var z=p[y];if(z){return z[1].call(s,A,w)}}if(y&&"onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(v)!=-1){i(A,y);if(y.metaData){if(!A.duration){A.duration=y.metaData.duration}else{A.fullDuration=y.metaData.duration}}}var x=true;m(u[v],function(){x=this.call(s,A,y,w)});return x}});if(t.onCuepoint){var o=t.onCuepoint;q.onCuepoint.apply(q,typeof o=="function"?[o]:o);delete t.onCuepoint}m(t,function(v,w){if(typeof w=="function"){j(u,v,w);delete t[v]}});if(r==-1){s.onCuepoint=this.onCuepoint}};var l=function(p,r,q,t){var o=this,s={},u=false;if(t){i(s,t)}m(r,function(v,w){if(typeof w=="function"){s[v]=w;delete r[v]}});i(this,{animate:function(y,z,x){if(!y){return o}if(typeof z=="function"){x=z;z=500}if(typeof y=="string"){var w=y;y={};y[w]=z;z=500}if(x){var v=e();s[v]=x}if(z===undefined){z=500}r=q._api().fp_animate(p,y,z,v);return o},css:function(w,x){if(x!==undefined){var v={};v[w]=x;w=v}r=q._api().fp_css(p,w);i(o,r);return o},show:function(){this.display="block";q._api().fp_showPlugin(p);return o},hide:function(){this.display="none";q._api().fp_hidePlugin(p);return o},toggle:function(){this.display=q._api().fp_togglePlugin(p);return o},fadeTo:function(y,x,w){if(typeof x=="function"){w=x;x=500}if(w){var v=e();s[v]=w}this.display=q._api().fp_fadeTo(p,y,x,v);this.opacity=y;return o},fadeIn:function(w,v){return o.fadeTo(1,w,v)},fadeOut:function(w,v){return o.fadeTo(0,w,v)},getName:function(){return p},getPlayer:function(){return q},_fireEvent:function(w,v,x){if(w=="onUpdate"){var z=q._api().fp_getPlugin(p);if(!z){return}i(o,z);delete o.methods;if(!u){m(z.methods,function(){var B=""+this;o[B]=function(){var C=[].slice.call(arguments);var D=q._api().fp_invoke(p,B,C);return D==="undefined"||D===undefined?o:D}});u=true}}var A=s[w];if(A){var y=A.apply(o,v);if(w.slice(0,1)=="_"){delete s[w]}return y}return o}})};function b(q,G,t){var w=this,v=null,D=false,u,s,F=[],y={},x={},E,r,p,C,o,A;i(w,{id:function(){return E},isLoaded:function(){return(v!==null&&v.fp_play!==undefined&&!D)},getParent:function(){return q},hide:function(H){if(H){q.style.height="0px"}if(w.isLoaded()){v.style.height="0px"}return w},show:function(){q.style.height=A+"px";if(w.isLoaded()){v.style.height=o+"px"}return w},isHidden:function(){return w.isLoaded()&&parseInt(v.style.height,10)===0},load:function(J){if(!w.isLoaded()&&w._fireEvent("onBeforeLoad")!==false){var H=function(){u=q.innerHTML;if(u&&!flashembed.isSupported(G.version)){q.innerHTML=""}if(J){J.cached=true;j(x,"onLoad",J)}flashembed(q,G,{config:t})};var I=0;m(a,function(){this.unload(function(K){if(++I==a.length){H()}})})}return w},unload:function(J){if(this.isFullscreen()&&/WebKit/i.test(navigator.userAgent)){if(J){J(false)}return w}if(u.replace(/\s/g,"")!==""){if(w._fireEvent("onBeforeUnload")===false){if(J){J(false)}return w}D=true;try{if(v){v.fp_close();w._fireEvent("onUnload")}}catch(H){}var I=function(){v=null;q.innerHTML=u;D=false;if(J){J(true)}};setTimeout(I,50)}else{if(J){J(false)}}return w},getClip:function(H){if(H===undefined){H=C}return F[H]},getCommonClip:function(){return s},getPlaylist:function(){return F},getPlugin:function(H){var J=y[H];if(!J&&w.isLoaded()){var I=w._api().fp_getPlugin(H);if(I){J=new l(H,I,w);y[H]=J}}return J},getScreen:function(){return w.getPlugin("screen")},getControls:function(){return w.getPlugin("controls")._fireEvent("onUpdate")},getLogo:function(){try{return w.getPlugin("logo")._fireEvent("onUpdate")}catch(H){}},getPlay:function(){return w.getPlugin("play")._fireEvent("onUpdate")},getConfig:function(H){return H?k(t):t},getFlashParams:function(){return G},loadPlugin:function(K,J,M,L){if(typeof M=="function"){L=M;M={}}var I=L?e():"_";w._api().fp_loadPlugin(K,J,M,I);var H={};H[I]=L;var N=new l(K,null,w,H);y[K]=N;return N},getState:function(){return w.isLoaded()?v.fp_getState():-1},play:function(I,H){var J=function(){if(I!==undefined){w._api().fp_play(I,H)}else{w._api().fp_play()}};if(w.isLoaded()){J()}else{if(D){setTimeout(function(){w.play(I,H)},50)}else{w.load(function(){J()})}}return w},getVersion:function(){var I="flowplayer.js 3.2.6";if(w.isLoaded()){var H=v.fp_getVersion();H.push(I);return H}return I},_api:function(){if(!w.isLoaded()){throw"Flowplayer "+w.id()+" not loaded when calling an API method"}return v},setClip:function(H){w.setPlaylist([H]);return w},getIndex:function(){return p},_swfHeight:function(){return v.clientHeight}});m(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut").split(","),function(){var H="on"+this;if(H.indexOf("*")!=-1){H=H.slice(0,H.length-1);var I="onBefore"+H.slice(2);w[I]=function(J){j(x,I,J);return w}}w[H]=function(J){j(x,H,J);return w}});m(("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed,setKeyboardShortcutsEnabled,isKeyboardShortcutsEnabled").split(","),function(){var H=this;w[H]=function(J,I){if(!w.isLoaded()){return w}var K=null;if(J!==undefined&&I!==undefined){K=v["fp_"+H](J,I)}else{K=(J===undefined)?v["fp_"+H]():v["fp_"+H](J)}return K==="undefined"||K===undefined?w:K}});w._fireEvent=function(Q){if(typeof Q=="string"){Q=[Q]}var R=Q[0],O=Q[1],M=Q[2],L=Q[3],K=0;if(t.debug){g(Q)}if(!w.isLoaded()&&R=="onLoad"&&O=="player"){v=v||c(r);o=w._swfHeight();m(F,function(){this._fireEvent("onLoad")});m(y,function(S,T){T._fireEvent("onUpdate")});s._fireEvent("onLoad")}if(R=="onLoad"&&O!="player"){return}if(R=="onError"){if(typeof O=="string"||(typeof O=="number"&&typeof M=="number")){O=M;M=L}}if(R=="onContextMenu"){m(t.contextMenu[O],function(S,T){T.call(w)});return}if(R=="onPluginEvent"||R=="onBeforePluginEvent"){var H=O.name||O;var I=y[H];if(I){I._fireEvent("onUpdate",O);return I._fireEvent(M,Q.slice(3))}return}if(R=="onPlaylistReplace"){F=[];var N=0;m(O,function(){F.push(new h(this,N++,w))})}if(R=="onClipAdd"){if(O.isInStream){return}O=new h(O,M,w);F.splice(M,0,O);for(K=M+1;K<F.length;K++){F[K].index++}}var P=true;if(typeof O=="number"&&O<F.length){C=O;var J=F[O];if(J){P=J._fireEvent(R,M,L)}if(!J||P!==false){P=s._fireEvent(R,M,L,J)}}m(x[R],function(){P=this.call(w,O,M);if(this.cached){x[R].splice(K,1)}if(P===false){return false}K++});return P};function B(){if($f(q)){$f(q).getParent().innerHTML="";p=$f(q).getIndex();a[p]=w}else{a.push(w);p=a.length-1}A=parseInt(q.style.height,10)||q.clientHeight;E=q.id||"fp"+e();r=G.id||E+"_api";G.id=r;t.playerId=E;if(typeof t=="string"){t={clip:{url:t}}}if(typeof t.clip=="string"){t.clip={url:t.clip}}t.clip=t.clip||{};if(q.getAttribute("href",2)&&!t.clip.url){t.clip.url=q.getAttribute("href",2)}s=new h(t.clip,-1,w);t.playlist=t.playlist||[t.clip];var I=0;m(t.playlist,function(){var K=this;if(typeof K=="object"&&K.length){K={url:""+K}}m(t.clip,function(L,M){if(M!==undefined&&K[L]===undefined&&typeof M!="function"){K[L]=M}});t.playlist[I]=K;K=new h(K,I,w);F.push(K);I++});m(t,function(K,L){if(typeof L=="function"){if(s[K]){s[K](L)}else{j(x,K,L)}delete t[K]}});m(t.plugins,function(K,L){if(L){y[K]=new l(K,L,w)}});if(!t.plugins||t.plugins.controls===undefined){y.controls=new l("controls",null,w)}y.canvas=new l("canvas",null,w);u=q.innerHTML;function J(L){var K=w.hasiPadSupport&&w.hasiPadSupport();if(/iPad|iPhone|iPod/i.test(navigator.userAgent)&&!/.flv$/i.test(F[0].url)&&!K){return true}if(!w.isLoaded()&&w._fireEvent("onBeforeClick")!==false){w.load()}return f(L)}function H(){if(u.replace(/\s/g,"")!==""){if(q.addEventListener){q.addEventListener("click",J,false)}else{if(q.attachEvent){q.attachEvent("onclick",J)}}}else{if(q.addEventListener){q.addEventListener("click",f,false)}w.load()}}setTimeout(H,0)}if(typeof q=="string"){var z=c(q);if(!z){throw"Flowplayer cannot access element: "+q}q=z;B()}else{B()}}var a=[];function d(o){this.length=o.length;this.each=function(p){m(o,p)};this.size=function(){return o.length}}window.flowplayer=window.$f=function(){var p=null;var o=arguments[0];if(!arguments.length){m(a,function(){if(this.isLoaded()){p=this;return false}});return p||a[0]}if(arguments.length==1){if(typeof o=="number"){return a[o]}else{if(o=="*"){return new d(a)}m(a,function(){if(this.id()==o.id||this.id()==o||this.getParent()==o){p=this;return false}});return p}}if(arguments.length>1){var t=arguments[1],q=(arguments.length==3)?arguments[2]:{};if(typeof t=="string"){t={src:t}}t=i({bgcolor:"#000000",version:[9,0],expressInstall:"http://static.flowplayer.org/swf/expressinstall.swf",cachebusting:false},t);if(typeof o=="string"){if(o.indexOf(".")!=-1){var s=[];m(n(o),function(){s.push(new b(this,k(t),k(q)))});return new d(s)}else{var r=c(o);return new b(r!==null?r:o,t,q)}}else{if(o){return new b(o,t,q)}}}return null};i(window.$f,{fireEvent:function(){var o=[].slice.call(arguments);var q=$f(o[0]);return q?q._fireEvent(o.slice(1)):null},addPlugin:function(o,p){b.prototype[o]=p;return $f},each:m,extend:i});if(typeof jQuery=="function"){jQuery.fn.flowplayer=function(q,p){if(!arguments.length||typeof arguments[0]=="number"){var o=[];this.each(function(){var r=$f(this);if(r){o.push(r)}});return arguments.length?o[arguments[0]]:new d(o)}return this.each(function(){$f(this,k(q),p?k(p):{})})}}})();(function(){var e=typeof jQuery=="function";var i={width:"100%",height:"100%",allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:null,onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(e){jQuery.tools=jQuery.tools||{};jQuery.tools.flashembed={version:"1.0.4",conf:i}}function j(){if(c.done){return false}var l=document;if(l&&l.getElementsByTagName&&l.getElementById&&l.body){clearInterval(c.timer);c.timer=null;for(var k=0;k<c.ready.length;k++){c.ready[k].call()}c.ready=null;c.done=true}}var c=e?jQuery:function(k){if(c.done){return k()}if(c.timer){c.ready.push(k)}else{c.ready=[k];c.timer=setInterval(j,13)}};function f(l,k){if(k){for(key in k){if(k.hasOwnProperty(key)){l[key]=k[key]}}}return l}function g(k){switch(h(k)){case"string":k=k.replace(new RegExp('(["\\\\])',"g"),"\\$1");k=k.replace(/^\s?(\d+)%/,"$1pct");return'"'+k+'"';case"array":return"["+b(k,function(n){return g(n)}).join(",")+"]";case"function":return'"function()"';case"object":var l=[];for(var m in k){if(k.hasOwnProperty(m)){l.push('"'+m+'":'+g(k[m]))}}return"{"+l.join(",")+"}"}return String(k).replace(/\s/g," ").replace(/\'/g,'"')}function h(l){if(l===null||l===undefined){return false}var k=typeof l;return(k=="object"&&l.push)?"array":k}if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function b(k,n){var m=[];for(var l in k){if(k.hasOwnProperty(l)){m[l]=n(k[l])}}return m}function a(r,t){var q=f({},r);var s=document.all;var n='<object width="'+q.width+'" height="'+q.height+'"';if(s&&!q.id){q.id="_"+(""+Math.random()).substring(9)}if(q.id){n+=' id="'+q.id+'"'}if(q.cachebusting){q.src+=((q.src.indexOf("?")!=-1?"&":"?")+Math.random())}if(q.w3c||!s){n+=' data="'+q.src+'" type="application/x-shockwave-flash"'}else{n+=' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'}n+=">";if(q.w3c||s){n+='<param name="movie" value="'+q.src+'" />'}q.width=q.height=q.id=q.w3c=q.src=null;for(var l in q){if(q[l]!==null){n+='<param name="'+l+'" value="'+q[l]+'" />'}}var o="";if(t){for(var m in t){if(t[m]!==null){o+=m+"="+(typeof t[m]=="object"?g(t[m]):t[m])+"&"}}o=o.substring(0,o.length-1);n+='<param name="flashvars" value=\''+o+"' />"}n+="</object>";return n}function d(m,p,l){var k=flashembed.getVersion();f(this,{getContainer:function(){return m},getConf:function(){return p},getVersion:function(){return k},getFlashvars:function(){return l},getApi:function(){return m.firstChild},getHTML:function(){return a(p,l)}});var q=p.version;var r=p.expressInstall;var o=!q||flashembed.isSupported(q);if(o){p.onFail=p.version=p.expressInstall=null;m.innerHTML=a(p,l)}else{if(q&&r&&flashembed.isSupported([6,65])){f(p,{src:r});l={MMredirectURL:location.href,MMplayerType:"PlugIn",MMdoctitle:document.title};m.innerHTML=a(p,l)}else{if(m.innerHTML.replace(/\s/g,"")!==""){}else{m.innerHTML="<h2>Flash version "+q+" or greater is required</h2><h3>"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"</h3>"+(m.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='http://www.adobe.com/go/getflashplayer'>here</a></p>");if(m.tagName=="A"){m.onclick=function(){location.href="http://www.adobe.com/go/getflashplayer"}}}}}if(!o&&p.onFail){var n=p.onFail.call(this);if(typeof n=="string"){m.innerHTML=n}}if(document.all){window[p.id]=document.getElementById(p.id)}}window.flashembed=function(l,m,k){if(typeof l=="string"){var n=document.getElementById(l);if(n){l=n}else{c(function(){flashembed(l,m,k)});return}}if(!l){return}if(typeof m=="string"){m={src:m}}var o=f({},i);f(o,m);return new d(l,o,k)};f(window.flashembed,{getVersion:function(){var m=[0,0];if(navigator.plugins&&typeof navigator.plugins["Shockwave Flash"]=="object"){var l=navigator.plugins["Shockwave Flash"].description;if(typeof l!="undefined"){l=l.replace(/^.*\s+(\S+\s+\S+$)/,"$1");var n=parseInt(l.replace(/^(.*)\..*$/,"$1"),10);var r=/r/.test(l)?parseInt(l.replace(/^.*r(.*)$/,"$1"),10):0;m=[n,r]}}else{if(window.ActiveXObject){try{var p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7")}catch(q){try{p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");m=[6,0];p.AllowScriptAccess="always"}catch(k){if(m[0]==6){return m}}try{p=new ActiveXObject("ShockwaveFlash.ShockwaveFlash")}catch(o){}}if(typeof p=="object"){l=p.GetVariable("$version");if(typeof l!="undefined"){l=l.replace(/^\S+\s+(.*)$/,"$1").split(",");m=[parseInt(l[0],10),parseInt(l[2],10)]}}}}return m},isSupported:function(k){var m=flashembed.getVersion();var l=(m[0]>k[0])||(m[0]==k[0]&&m[1]>=k[1]);return l},domReady:c,asString:g,getHTML:a});if(e){jQuery.fn.flashembed=function(l,k){var m=null;this.each(function(){m=flashembed(this,l,k)});return l.api===false?this:m}}})();
\ No newline at end of file
index a89192b..8aaccf7 100644 (file)
@@ -7,7 +7,7 @@
                include flowplayer JavaScript file that does  
                Flash embedding and provides the Flowplayer API.
        -->
-       <script type="text/javascript" src="flowplayer-@FLOWPLAYER_JS_VERSION_INFO@.min.js"></script>
+       <script type="text/javascript" src="../flowplayer-@FLOWPLAYER_JS_VERSION_INFO@.min.js"></script>
        
        <!-- some minimal styling, can be removed -->
        <link rel="stylesheet" type="text/css" href="style.css">
diff --git a/typo3/contrib/flowplayer/flowplayer-3.2.12.min.js b/typo3/contrib/flowplayer/flowplayer-3.2.12.min.js
new file mode 100644 (file)
index 0000000..ff7b48f
--- /dev/null
@@ -0,0 +1,24 @@
+/*
+ * flowplayer.js 3.2.12. The Flowplayer API
+ *
+ * Copyright 2009-2011 Flowplayer Oy
+ *
+ * This file is part of Flowplayer.
+ *
+ * Flowplayer is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Flowplayer is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Flowplayer.  If not, see <http://www.gnu.org/licenses/>.
+ *
+ * Date: ${date}
+ * Revision: ${revision}
+ */
+!function(){function h(p){console.log("$f.fireEvent",[].slice.call(p))}function l(r){if(!r||typeof r!="object"){return r}var p=new r.constructor();for(var q in r){if(r.hasOwnProperty(q)){p[q]=l(r[q])}}return p}function n(u,r){if(!u){return}var p,q=0,s=u.length;if(s===undefined){for(p in u){if(r.call(u[p],p,u[p])===false){break}}}else{for(var t=u[0];q<s&&r.call(t,q,t)!==false;t=u[++q]){}}return u}function c(p){return document.getElementById(p)}function j(r,q,p){if(typeof q!="object"){return r}if(r&&q){n(q,function(s,t){if(!p||typeof t!="function"){r[s]=t}})}return r}function o(t){var r=t.indexOf(".");if(r!=-1){var q=t.slice(0,r)||"*";var p=t.slice(r+1,t.length);var s=[];n(document.getElementsByTagName(q),function(){if(this.className&&this.className.indexOf(p)!=-1){s.push(this)}});return s}}function g(p){p=p||window.event;if(p.preventDefault){p.stopPropagation();p.preventDefault()}else{p.returnValue=false;p.cancelBubble=true}return false}function k(r,p,q){r[p]=r[p]||[];r[p].push(q)}function e(p){return p.replace(/&amp;/g,"%26").replace(/&/g,"%26").replace(/=/g,"%3D")}function f(){return"_"+(""+Math.random()).slice(2,10)}var i=function(u,s,t){var r=this,q={},v={};r.index=s;if(typeof u=="string"){u={url:u}}j(this,u,true);n(("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop").split(","),function(){var w="on"+this;if(w.indexOf("*")!=-1){w=w.slice(0,w.length-1);var x="onBefore"+w.slice(2);r[x]=function(y){k(v,x,y);return r}}r[w]=function(y){k(v,w,y);return r};if(s==-1){if(r[x]){t[x]=r[x]}if(r[w]){t[w]=r[w]}}});j(this,{onCuepoint:function(y,x){if(arguments.length==1){q.embedded=[null,y];return r}if(typeof y=="number"){y=[y]}var w=f();q[w]=[y,x];if(t.isLoaded()){t._api().fp_addCuepoints(y,s,w)}return r},update:function(x){j(r,x);if(t.isLoaded()){t._api().fp_updateClip(x,s)}var w=t.getConfig();var y=(s==-1)?w.clip:w.playlist[s];j(y,x,true)},_fireEvent:function(w,z,x,B){if(w=="onLoad"){n(q,function(C,D){if(D[0]){t._api().fp_addCuepoints(D[0],s,C)}});return false}B=B||r;if(w=="onCuepoint"){var A=q[z];if(A){return A[1].call(t,B,x)}}if(z&&"onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(w)!=-1){j(B,z);if(z.metaData){if(!B.duration){B.duration=z.metaData.duration}else{B.fullDuration=z.metaData.duration}}}var y=true;n(v[w],function(){y=this.call(t,B,z,x)});return y}});if(u.onCuepoint){var p=u.onCuepoint;r.onCuepoint.apply(r,typeof p=="function"?[p]:p);delete u.onCuepoint}n(u,function(w,x){if(typeof x=="function"){k(v,w,x);delete u[w]}});if(s==-1){t.onCuepoint=this.onCuepoint}};var m=function(q,s,r,u){var p=this,t={},v=false;if(u){j(t,u)}n(s,function(w,x){if(typeof x=="function"){t[w]=x;delete s[w]}});j(this,{animate:function(z,A,y){if(!z){return p}if(typeof A=="function"){y=A;A=500}if(typeof z=="string"){var x=z;z={};z[x]=A;A=500}if(y){var w=f();t[w]=y}if(A===undefined){A=500}s=r._api().fp_animate(q,z,A,w);return p},css:function(x,y){if(y!==undefined){var w={};w[x]=y;x=w}s=r._api().fp_css(q,x);j(p,s);return p},show:function(){this.display="block";r._api().fp_showPlugin(q);return p},hide:function(){this.display="none";r._api().fp_hidePlugin(q);return p},toggle:function(){this.display=r._api().fp_togglePlugin(q);return p},fadeTo:function(z,y,x){if(typeof y=="function"){x=y;y=500}if(x){var w=f();t[w]=x}this.display=r._api().fp_fadeTo(q,z,y,w);this.opacity=z;return p},fadeIn:function(x,w){return p.fadeTo(1,x,w)},fadeOut:function(x,w){return p.fadeTo(0,x,w)},getName:function(){return q},getPlayer:function(){return r},_fireEvent:function(x,w,y){if(x=="onUpdate"){var A=r._api().fp_getPlugin(q);if(!A){return}j(p,A);delete p.methods;if(!v){n(A.methods,function(){var C=""+this;p[C]=function(){var D=[].slice.call(arguments);var E=r._api().fp_invoke(q,C,D);return E==="undefined"||E===undefined?p:E}});v=true}}var B=t[x];if(B){var z=B.apply(p,w);if(x.slice(0,1)=="_"){delete t[x]}return z}return p}})};function b(r,H,u){var x=this,w=null,E=false,v,t,G=[],z={},y={},F,s,q,D,p,B;j(x,{id:function(){return F},isLoaded:function(){return(w!==null&&w.fp_play!==undefined&&!E)},getParent:function(){return r},hide:function(I){if(I){r.style.height="0px"}if(x.isLoaded()){w.style.height="0px"}return x},show:function(){r.style.height=B+"px";if(x.isLoaded()){w.style.height=p+"px"}return x},isHidden:function(){return x.isLoaded()&&parseInt(w.style.height,10)===0},load:function(K){if(!x.isLoaded()&&x._fireEvent("onBeforeLoad")!==false){var I=function(){if(v&&!flashembed.isSupported(H.version)){r.innerHTML=""}if(K){K.cached=true;k(y,"onLoad",K)}flashembed(r,H,{config:u})};var J=0;n(a,function(){this.unload(function(L){if(++J==a.length){I()}})})}return x},unload:function(K){if(v.replace(/\s/g,"")!==""){if(x._fireEvent("onBeforeUnload")===false){if(K){K(false)}return x}E=true;try{if(w){if(w.fp_isFullscreen()){w.fp_toggleFullscreen()}w.fp_close();x._fireEvent("onUnload")}}catch(I){}var J=function(){w=null;r.innerHTML=v;E=false;if(K){K(true)}};if(/WebKit/i.test(navigator.userAgent)&&!/Chrome/i.test(navigator.userAgent)){setTimeout(J,0)}else{J()}}else{if(K){K(false)}}return x},getClip:function(I){if(I===undefined){I=D}return G[I]},getCommonClip:function(){return t},getPlaylist:function(){return G},getPlugin:function(I){var K=z[I];if(!K&&x.isLoaded()){var J=x._api().fp_getPlugin(I);if(J){K=new m(I,J,x);z[I]=K}}return K},getScreen:function(){return x.getPlugin("screen")},getControls:function(){return x.getPlugin("controls")._fireEvent("onUpdate")},getLogo:function(){try{return x.getPlugin("logo")._fireEvent("onUpdate")}catch(I){}},getPlay:function(){return x.getPlugin("play")._fireEvent("onUpdate")},getConfig:function(I){return I?l(u):u},getFlashParams:function(){return H},loadPlugin:function(L,K,N,M){if(typeof N=="function"){M=N;N={}}var J=M?f():"_";x._api().fp_loadPlugin(L,K,N,J);var I={};I[J]=M;var O=new m(L,null,x,I);z[L]=O;return O},getState:function(){return x.isLoaded()?w.fp_getState():-1},play:function(J,I){var K=function(){if(J!==undefined){x._api().fp_play(J,I)}else{x._api().fp_play()}};if(x.isLoaded()){K()}else{if(E){setTimeout(function(){x.play(J,I)},50)}else{x.load(function(){K()})}}return x},getVersion:function(){var J="flowplayer.js 3.2.12";if(x.isLoaded()){var I=w.fp_getVersion();I.push(J);return I}return J},_api:function(){if(!x.isLoaded()){throw"Flowplayer "+x.id()+" not loaded when calling an API method"}return w},setClip:function(I){n(I,function(J,K){if(typeof K=="function"){k(y,J,K);delete I[J]}else{if(J=="onCuepoint"){$f(r).getCommonClip().onCuepoint(I[J][0],I[J][1])}}});x.setPlaylist([I]);return x},getIndex:function(){return q},bufferAnimate:function(I){w.fp_bufferAnimate(I===undefined||I);return x},_swfHeight:function(){return w.clientHeight}});n(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut").split(","),function(){var I="on"+this;if(I.indexOf("*")!=-1){I=I.slice(0,I.length-1);var J="onBefore"+I.slice(2);x[J]=function(K){k(y,J,K);return x}}x[I]=function(K){k(y,I,K);return x}});n(("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed,setKeyboardShortcutsEnabled,isKeyboardShortcutsEnabled").split(","),function(){var I=this;x[I]=function(K,J){if(!x.isLoaded()){return x}var L=null;if(K!==undefined&&J!==undefined){L=w["fp_"+I](K,J)}else{L=(K===undefined)?w["fp_"+I]():w["fp_"+I](K)}return L==="undefined"||L===undefined?x:L}});x._fireEvent=function(R){if(typeof R=="string"){R=[R]}var S=R[0],P=R[1],N=R[2],M=R[3],L=0;if(u.debug){h(R)}if(!x.isLoaded()&&S=="onLoad"&&P=="player"){w=w||c(s);p=x._swfHeight();n(G,function(){this._fireEvent("onLoad")});n(z,function(T,U){U._fireEvent("onUpdate")});t._fireEvent("onLoad")}if(S=="onLoad"&&P!="player"){return}if(S=="onError"){if(typeof P=="string"||(typeof P=="number"&&typeof N=="number")){P=N;N=M}}if(S=="onContextMenu"){n(u.contextMenu[P],function(T,U){U.call(x)});return}if(S=="onPluginEvent"||S=="onBeforePluginEvent"){var I=P.name||P;var J=z[I];if(J){J._fireEvent("onUpdate",P);return J._fireEvent(N,R.slice(3))}return}if(S=="onPlaylistReplace"){G=[];var O=0;n(P,function(){G.push(new i(this,O++,x))})}if(S=="onClipAdd"){if(P.isInStream){return}P=new i(P,N,x);G.splice(N,0,P);for(L=N+1;L<G.length;L++){G[L].index++}}var Q=true;if(typeof P=="number"&&P<G.length){D=P;var K=G[P];if(K){Q=K._fireEvent(S,N,M)}if(!K||Q!==false){Q=t._fireEvent(S,N,M,K)}}n(y[S],function(){Q=this.call(x,P,N);if(this.cached){y[S].splice(L,1)}if(Q===false){return false}L++});return Q};function C(){if($f(r)){$f(r).getParent().innerHTML="";q=$f(r).getIndex();a[q]=x}else{a.push(x);q=a.length-1}B=parseInt(r.style.height,10)||r.clientHeight;F=r.id||"fp"+f();s=H.id||F+"_api";H.id=s;v=r.innerHTML;if(typeof u=="string"){u={clip:{url:u}}}u.playerId=F;u.clip=u.clip||{};if(r.getAttribute("href",2)&&!u.clip.url){u.clip.url=r.getAttribute("href",2)}if(u.clip.url){u.clip.url=e(u.clip.url)}t=new i(u.clip,-1,x);u.playlist=u.playlist||[u.clip];var J=0;n(u.playlist,function(){var M=this;if(typeof M=="object"&&M.length){M={url:""+M}}if(M.url){M.url=e(M.url)}n(u.clip,function(N,O){if(O!==undefined&&M[N]===undefined&&typeof O!="function"){M[N]=O}});u.playlist[J]=M;M=new i(M,J,x);G.push(M);J++});n(u,function(M,N){if(typeof N=="function"){if(t[M]){t[M](N)}else{k(y,M,N)}delete u[M]}});n(u.plugins,function(M,N){if(N){z[M]=new m(M,N,x)}});if(!u.plugins||u.plugins.controls===undefined){z.controls=new m("controls",null,x)}z.canvas=new m("canvas",null,x);v=r.innerHTML;function L(M){if(/iPad|iPhone|iPod/i.test(navigator.userAgent)&&!/.flv$/i.test(G[0].url)&&!K()){return true}if(!x.isLoaded()&&x._fireEvent("onBeforeClick")!==false){x.load()}return g(M)}function K(){return x.hasiPadSupport&&x.hasiPadSupport()}function I(){if(v.replace(/\s/g,"")!==""){if(r.addEventListener){r.addEventListener("click",L,false)}else{if(r.attachEvent){r.attachEvent("onclick",L)}}}else{if(r.addEventListener&&!K()){r.addEventListener("click",g,false)}x.load()}}setTimeout(I,0)}if(typeof r=="string"){var A=c(r);if(!A){throw"Flowplayer cannot access element: "+r}r=A;C()}else{C()}}var a=[];function d(p){this.length=p.length;this.each=function(r){n(p,r)};this.size=function(){return p.length};var q=this;for(name in b.prototype){q[name]=function(){var r=arguments;q.each(function(){this[name].apply(this,r)})}}}window.flowplayer=window.$f=function(){var q=null;var p=arguments[0];if(!arguments.length){n(a,function(){if(this.isLoaded()){q=this;return false}});return q||a[0]}if(arguments.length==1){if(typeof p=="number"){return a[p]}else{if(p=="*"){return new d(a)}n(a,function(){if(this.id()==p.id||this.id()==p||this.getParent()==p){q=this;return false}});return q}}if(arguments.length>1){var u=arguments[1],r=(arguments.length==3)?arguments[2]:{};if(typeof u=="string"){u={src:u}}u=j({bgcolor:"#000000",version:[10,1],expressInstall:"http://releases.flowplayer.org/swf/expressinstall.swf",cachebusting:false},u);if(typeof p=="string"){if(p.indexOf(".")!=-1){var t=[];n(o(p),function(){t.push(new b(this,l(u),l(r)))});return new d(t)}else{var s=c(p);return new b(s!==null?s:l(p),l(u),l(r))}}else{if(p){return new b(p,l(u),l(r))}}}return null};j(window.$f,{fireEvent:function(){var q=[].slice.call(arguments);var r=$f(q[0]);return r?r._fireEvent(q.slice(1)):null},addPlugin:function(p,q){b.prototype[p]=q;return $f},each:n,extend:j});if(typeof jQuery=="function"){jQuery.fn.flowplayer=function(r,q){if(!arguments.length||typeof arguments[0]=="number"){var p=[];this.each(function(){var s=$f(this);if(s){p.push(s)}});return arguments.length?p[arguments[0]]:new d(p)}return this.each(function(){$f(this,l(r),q?l(q):{})})}}}();!function(){var h=document.all,j="http://get.adobe.com/flashplayer",c=typeof jQuery=="function",e=/(\d+)[^\d]+(\d+)[^\d]*(\d*)/,b={width:"100%",height:"100%",id:"_"+(""+Math.random()).slice(9),allowfullscreen:true,allowscriptaccess:"always",quality:"high",version:[3,0],onFail:null,expressInstall:null,w3c:false,cachebusting:false};if(window.attachEvent){window.attachEvent("onbeforeunload",function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){}})}function i(m,l){if(l){for(var f in l){if(l.hasOwnProperty(f)){m[f]=l[f]}}}return m}function a(f,n){var m=[];for(var l in f){if(f.hasOwnProperty(l)){m[l]=n(f[l])}}return m}window.flashembed=function(f,m,l){if(typeof f=="string"){f=document.getElementById(f.replace("#",""))}if(!f){return}if(typeof m=="string"){m={src:m}}return new d(f,i(i({},b),m),l)};var g=i(window.flashembed,{conf:b,getVersion:function(){var m,f;try{f=navigator.plugins["Shockwave Flash"].description.slice(16)}catch(o){try{m=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");f=m&&m.GetVariable("$version")}catch(n){try{m=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");f=m&&m.GetVariable("$version")}catch(l){}}}f=e.exec(f);return f?[1*f[1],1*f[(f[1]*1>9?2:3)]*1]:[0,0]},asString:function(l){if(l===null||l===undefined){return null}var f=typeof l;if(f=="object"&&l.push){f="array"}switch(f){case"string":l=l.replace(new RegExp('(["\\\\])',"g"),"\\$1");l=l.replace(/^\s?(\d+\.?\d*)%/,"$1pct");return'"'+l+'"';case"array":return"["+a(l,function(o){return g.asString(o)}).join(",")+"]";case"function":return'"function()"';case"object":var m=[];for(var n in l){if(l.hasOwnProperty(n)){m.push('"'+n+'":'+g.asString(l[n]))}}return"{"+m.join(",")+"}"}return String(l).replace(/\s/g," ").replace(/\'/g,'"')},getHTML:function(o,l){o=i({},o);var n='<object width="'+o.width+'" height="'+o.height+'" id="'+o.id+'" name="'+o.id+'"';if(o.cachebusting){o.src+=((o.src.indexOf("?")!=-1?"&":"?")+Math.random())}if(o.w3c||!h){n+=' data="'+o.src+'" type="application/x-shockwave-flash"'}else{n+=' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'}n+=">";if(o.w3c||h){n+='<param name="movie" value="'+o.src+'" />'}o.width=o.height=o.id=o.w3c=o.src=null;o.onFail=o.version=o.expressInstall=null;for(var m in o){if(o[m]){n+='<param name="'+m+'" value="'+o[m]+'" />'}}var p="";if(l){for(var f in l){if(l[f]){var q=l[f];p+=f+"="+(/function|object/.test(typeof q)?g.asString(q):q)+"&"}}p=p.slice(0,-1);n+='<param name="flashvars" value=\''+p+"' />"}n+="</object>";return n},isSupported:function(f){return k[0]>f[0]||k[0]==f[0]&&k[1]>=f[1]}});var k=g.getVersion();function d(f,n,m){if(g.isSupported(n.version)){f.innerHTML=g.getHTML(n,m)}else{if(n.expressInstall&&g.isSupported([6,65])){f.innerHTML=g.getHTML(i(n,{src:n.expressInstall}),{MMredirectURL:encodeURIComponent(location.href),MMplayerType:"PlugIn",MMdoctitle:document.title})}else{if(!f.innerHTML.replace(/\s/g,"")){f.innerHTML="<h2>Flash version "+n.version+" or greater is required</h2><h3>"+(k[0]>0?"Your version is "+k:"You have no flash plugin installed")+"</h3>"+(f.tagName=="A"?"<p>Click here to download latest version</p>":"<p>Download latest version from <a href='"+j+"'>here</a></p>");if(f.tagName=="A"||f.tagName=="DIV"){f.onclick=function(){location.href=j}}}if(n.onFail){var l=n.onFail.call(this);if(typeof l=="string"){f.innerHTML=l}}}}if(h){window[n.id]=document.getElementById(n.id)}i(this,{getRoot:function(){return f},getOptions:function(){return n},getConf:function(){return m},getApi:function(){return f.firstChild}})}if(c){jQuery.tools=jQuery.tools||{version:"3.2.12"};jQuery.tools.flashembed={conf:b};jQuery.fn.flashembed=function(l,f){return this.each(function(){$(this).data("flashembed",flashembed(this,l,f))})}}}();
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer-3.2.16.swf b/typo3/contrib/flowplayer/flowplayer-3.2.16.swf
new file mode 100644 (file)
index 0000000..a7f1e5c
Binary files /dev/null and b/typo3/contrib/flowplayer/flowplayer-3.2.16.swf differ
diff --git a/typo3/contrib/flowplayer/flowplayer-3.2.7.swf b/typo3/contrib/flowplayer/flowplayer-3.2.7.swf
deleted file mode 100644 (file)
index 20a4119..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer-3.2.7.swf and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.audio-3.2.2.swf b/typo3/contrib/flowplayer/flowplayer.audio-3.2.2.swf
deleted file mode 100644 (file)
index 16aef5c..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.audio-3.2.2.swf and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.audio/LICENSE.txt b/typo3/contrib/flowplayer/flowplayer.audio/LICENSE.txt
deleted file mode 100644 (file)
index bab38cb..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (c) 2008, 2009 Flowplayer Oy
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/typo3/contrib/flowplayer/flowplayer.audio/README.txt b/typo3/contrib/flowplayer/flowplayer.audio/README.txt
deleted file mode 100644 (file)
index 815e0ee..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-Version history:
-
-3.2.2
------
-Fixes:
-- Now can download cover images from different domains without cross-domain security errors
-
-3.2.1
------
-Changes:
-- Supports cover images via a 'coverImage' configuration option
-- now works with securestreaming plugin
-Fixes:
-- fix to work properly if accessing the ID3 tag fails because Flash security prevents it
-- works better if the file does not have the ID3 tag
-
-3.2.0
------
-- added a new plugin event "onDuration" that is dispatched whenever a new duration value is estimated and the
-clip.duration value was changed. The new duration value is passed as event argument.
-
-3.1.3
------
-- added timeProvider setter as required by the changed StreamProvider interface
-- now checks the crossdomain.xml file to allow reading of the ID3 tag when this file is present in the domain
-  hosting the audio file
-
-3.1.2
------
-- compatible with the new ConnectionProvider and URLResolver API
-
-3.1.1
------
-Fixes:
-- calling closeBuffering() after the audio had finished caused an exception
-
-3.1.0
------
-- compatibility with core 3.1 StreamProvider interface
-
-3.0.4
------
-- fixed to stop audio when stop() is called
-
-3.0.3
------
-- changed to recalculate the duration until the end of the file has been reached,
-  this is needed to correctly estimate the duration of variable bitrate MP3's 
-
-3.0.2
------
-- dispatches the LOAD event when initialized (needed for flowplayer 3.0.2 compatibility)
-- fixed crashes of Mac  Safari when navigating out of a page that had a playing audio
-
-3.0.1
------
-- First public beta release
diff --git a/typo3/contrib/flowplayer/flowplayer.audio/build.properties b/typo3/contrib/flowplayer/flowplayer.audio/build.properties
deleted file mode 100644 (file)
index 87eaa39..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-version=3.2.2
-devkit-dir=../flowplayer.devkit
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.audio/build.xml b/typo3/contrib/flowplayer/flowplayer.audio/build.xml
deleted file mode 100644 (file)
index 6692d0e..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<project name="Audio plugin for flowplayer" default="deploy">
-    <property file="build.generated.properties"/>
-       <property file="${user.home}/plugin.properties" />
-       <property file="build.properties" />
-       
-       <property file="${devkit-dir}/plugin-build.properties" />
-       <import file="${devkit-dir}/plugin-build.xml"/>
-       <property name="flowplayer_lib" value="${devkit-dir}/flowplayer.swc" />
-       
-       <property name="basename" value="flowplayer.audio" />
-    <property name="releasedir" value="flowplayer.audio" />
-       <property name="plugin-binary" value="${basename}.swf" />
-       <property name="plugin-binary-versioned" value="${basename}-${version}.swf" />
-       <property name="plugin-swc" value="${basename}.swc" />
-       
-       <property name="plugin-main-class" value="org/flowplayer/audio/AudioProviderFactory.as" />
-
-       <target name="release" description="makes a release" depends="build">
-               <copyrelease targetdir="flowplayer.audio">
-                       <releasefiles>
-                               <fileset dir="${build-dir}">
-                                   <include name="${plugin-binary-versioned}"/>
-                               </fileset>
-                       </releasefiles>
-               </copyrelease>
-       </target>
-
-</project>
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.audio/src/actionscript/org/flowplayer/audio/AudioProvider.as b/typo3/contrib/flowplayer/flowplayer.audio/src/actionscript/org/flowplayer/audio/AudioProvider.as
deleted file mode 100644 (file)
index 0eefb8f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/*    \r *    Copyright (c) 2008-2011 Flowplayer Oy *\r *    This file is part of FlowPlayer.\r *\r *    FlowPlayer is free software: you can redistribute it and/or modify\r *    it under the terms of the GNU General Public License as published by\r *    the Free Software Foundation, either version 3 of the License, or\r *    (at your option) any later version.\r *\r *    FlowPlayer is distributed in the hope that it will be useful,\r *    but WITHOUT ANY WARRANTY; without even the implied warranty of\r *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r *    GNU General Public License for more details.\r *\r *    You should have received a copy of the GNU General Public License\r *    along with FlowPlayer.  If not, see <http://www.gnu.org/licenses/>.\r */\r\rpackage org.flowplayer.audio {\r    import flash.display.DisplayObject;\r    import flash.display.Loader;\r    import flash.events.Event;\r    import flash.events.IOErrorEvent;\r    import flash.events.ProgressEvent;\r    import flash.events.TimerEvent;\r    import flash.media.ID3Info;\r    import flash.media.Sound;\r    import flash.media.SoundChannel;\r    import flash.media.SoundLoaderContext;\r    import flash.net.NetConnection;\r    import flash.net.NetStream;\r    import flash.net.URLRequest;\r    import flash.utils.Dictionary;\r    import flash.utils.Timer;\r\r    import org.flowplayer.controller.ClipURLResolverHelper;\r    import org.flowplayer.controller.ConnectionProvider;\r    import org.flowplayer.controller.ResourceLoader;\r    import org.flowplayer.controller.StreamProvider;\r    import org.flowplayer.controller.TimeProvider;\r    import org.flowplayer.controller.VolumeController;\r    import org.flowplayer.model.Clip;\r    import org.flowplayer.model.ClipEvent;\r    import org.flowplayer.model.ClipEventType;\r    import org.flowplayer.model.DisplayProperties;\r    import org.flowplayer.model.Playlist;\r    import org.flowplayer.model.Plugin;\r    import org.flowplayer.model.PluginEventType;\r    import org.flowplayer.model.PluginModel;\r    import org.flowplayer.util.Log;\r    import org.flowplayer.view.Flowplayer;\r\r    /**\r     * @author api\r  */\r    public class AudioProvider implements StreamProvider, Plugin {\r         private var log:Log = new Log(this);\r           private var _sound:Sound;\r              private var _playing:Boolean;\r          private var _paused:Boolean;\r           private var _durationSeconds:Number;\r           private var _clip:Clip;\r                private var _pausedPosition:Number;\r            private var _channel:SoundChannel;\r             private var _playlist:Playlist;\r                private var _progressTimer:Timer;\r              private var _seeking:Boolean;\r          private var _started:Boolean;\r          private var _volumeController:VolumeController;\r                private var _pauseAfterStart:Boolean;\r          private var _bufferFullDispatched:Boolean;\r        private var _timeProvider:TimeProvider;\r        private var _model:PluginModel;\r        private var _lastDurationDispatched:Number = 0;\r        private var _imageLoader:ResourceLoader;\r        private var _imageDisplay:Loader = null;\r        private var context:SoundLoaderContext;\r        private var _screen:DisplayProperties;\r            private var _clipUrlResolverHelper:ClipURLResolverHelper;\r\r             public function stopBuffering():void {\r            closeSound();\r                       resetState();\r          }\r              \r               public function stop(event:ClipEvent, closeStream:Boolean = false):void {\r            seek(null, 0);\r            if (_channel) {\r                log.debug("in stop(), stopping channel");\r                _channel.stop();\r            }\r                      if (closeStream) {\r                closeSound();\r                       }\r                      \r                       resetState();\r                  if (event && _clip) {\r                          _clip.dispatchEvent(event);\r                    }\r              }\r\r        private function closeSound():void {\r            try {\r                _sound.close();\r            } catch (e:Error) {\r                // ignore\r            }\r        }\r            \r               private function resetState():void {\r                   _playing = false;\r                      _paused = false;\r                       _started = false;\r                      _bufferFullDispatched = false;\r                 _durationSeconds = 0;\r                  _pausedPosition = 0;\r                   if (_progressTimer) {\r                          _progressTimer.stop();\r                 }\r              }\r\r             public function attachStream(video:DisplayObject):void {\r               }\r              \r               private function doLoad():void {\r                       \r               }\r              \r               public function load(event:ClipEvent, clip:Clip, pauseAfterStart:Boolean = true):void {\r                        log.debug("load()");\r                   resetState();\r                  \r                       if (_clip == clip) {\r                           log.debug("load() reusing existing sound object");\r                             addListeners(_sound);\r                          play(0);\r                               _clip.dispatch(ClipEventType.BEGIN);\r                           _clip.dispatch(ClipEventType.START);\r                   } else {\r                log.debug("load() creating new sound object");\r                                _clip = clip;\r                          _sound = new Sound();\r               context = new SoundLoaderContext(1000, true);\r\r                            if (clip.getCustomProperty("coverImage")) {\r                    var cover:Object = getCoverImage(clip);\r                    log.debug("Loading Artwork For Audio " + cover.url);\r//                                     _imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageComplete);\r//                                    _imageLoader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onImageError);\r                                  _imageLoader.load(cover.url, onImageComplete);\r                         } else {\r                                       playAudio();\r                           }\r                      }\r                      \r                       _pauseAfterStart = pauseAfterStart;\r            }\r\r        private function getCoverImage(clip:Clip):Object {\r            var cover:Object = clip.getCustomProperty("coverImage");\r            if (cover is String) return { url: "" + cover };\r\r            if (cover.hasOwnProperty("scaling")) {\r                _clip.setScaling(cover["scaling"]);\r            }\r            return cover;\r        }\r              \r               private function playAudio():void {\r                    addListeners(_sound);\r                  _clipUrlResolverHelper.resolveClipUrl(_clip, function onClipUrlResolved(clip:Clip):void {\r                              _sound.load(new URLRequest(clip.url), context);\r                                play(0);\r                       });\r                    \r                       \r                               \r               }\r              \r               private function onImageError(error:IOErrorEvent):void {\r                       log.debug("Cover artwork doesn't exist playing now");\r                  playAudio();\r           }\r              \r               private function onImageComplete(loader:ResourceLoader):void {\r                 log.debug("Cover image loaded playing now");\r                   _imageDisplay = loader.getContent() as Loader;\r                 _clip.originalWidth = _imageDisplay.width;\r                     _clip.originalHeight = _imageDisplay.height;\r                   playAudio();\r           }\r              \r               private function addListeners(sound:Sound):void {\r                      sound.addEventListener(ProgressEvent.PROGRESS, onProgress);\r                    sound.addEventListener(Event.SOUND_COMPLETE, onComplete);\r                      sound.addEventListener(IOErrorEvent.IO_ERROR, onIoError);\r                      sound.addEventListener(Event.ID3, onId3);\r                      _progressTimer = new Timer(200);\r                       _progressTimer.addEventListener(TimerEvent.TIMER, onProgressTimer);\r                    _progressTimer.start();\r                }\r              \r               private function onIoError(event:IOErrorEvent):void {\r                  log.error("Unable to load audio file: " + event.text);\r\r                        //dispatching this error causes crashes in Safari:\r//                   _clip.dispatch(ClipEventType.ERROR, "Unable to load audio file: " + event.text);\r               }\r\r        private function addId3Metadata():void {\r            var metadata:Object = new Object();\r\r            try {\r                var tag:ID3Info = _sound.id3;\r            } catch (e:Error) {\r                log.warn("unable to access ID3 tag: " + e);\r            }\r\r            for (var prop:String in tag) {\r                log.debug(prop + ": " + _sound.id3[prop]);\r                metadata[prop] = _sound.id3[prop];\r            }\r            _clip.metaData = metadata;\r        }\r\r        private function onId3(event:Event):void {\r            log.debug("onId3(), _started == " + _started);\r            addId3Metadata();\r            if (_started) return;\r\r                        log.debug("dispatching START");\r                        _clip.dispatch(ClipEventType.METADATA);\r                        _clip.dispatch(ClipEventType.START);\r                   _started = true;\r\r                      if (_pauseAfterStart) {\r                                pause(new ClipEvent(ClipEventType.PAUSE));\r                     }\r              }\r\r             private function onProgress(event:ProgressEvent):void {\r                        if (_playing) return;\r                  _playing = true;\r            _clip.dispatch(ClipEventType.BEGIN);\r                      if (!_clip.metaData) {\r                         _clip.dispatch(ClipEventType.START);\r                   }\r              }\r\r             private function onProgressTimer(event:TimerEvent):void {\r                      estimateDuration();\r                    \r               if (! _sound.bytesTotal > 0) return;\r                   if (! _sound.bytesLoaded > 0) return;\r\r                 if(_sound.isBuffering == true && _sound.bytesTotal > _sound.bytesLoaded) {\r                             _clip.dispatch(ClipEventType.BUFFER_EMPTY);\r                    } else if (! _bufferFullDispatched){\r                           _clip.dispatch(ClipEventType.BUFFER_FULL);\r                             _bufferFullDispatched = true;\r                  }\r              }\r              \r               private function estimateDuration():void {\r             var durationSecs:Number = (_sound.length/(_sound.bytesLoaded/_sound.bytesTotal))/1000;\r            if (Math.abs(_lastDurationDispatched - durationSecs) >= 0.5) {\r                _lastDurationDispatched = durationSecs;\r                log.debug("dispatching onDuration(), " + durationSecs);\r                _model.dispatch(PluginEventType.PLUGIN_EVENT, "onDuration", durationSecs);\r            }\r            _clip.durationFromMetadata = durationSecs;\r        }\r\r           private function onComplete(event:Event):void {\r                        // dispatch a before event because the finish has default behavior that can be prevented by listeners\r                  _clip.dispatchBeforeEvent(new ClipEvent(ClipEventType.FINISH));\r                }\r\r             public function getVideo(clip:Clip):DisplayObject {\r            log.debug("getVideo() " + _imageDisplay);\r                      return _imageDisplay;\r          }\r              \r               public function resume(event:ClipEvent):void {\r                 log.debug("resume");\r                   _paused = false;\r                       play(_pausedPosition);\r                 if (event) {\r                           _clip.dispatchEvent(event);\r                    }\r              }\r              \r               public function pause(event:ClipEvent):void {\r                  log.debug("pause");\r                    _paused = true;\r                        _pausedPosition = _channel.position; \r                  _channel.stop();\r                       if (event) {\r                           _clip.dispatchEvent(event);\r                    }\r              }\r\r             public function seek(event:ClipEvent, seconds:Number):void {\r                   if (! _channel) return;\r            _channel.stop();\r                   _seeking = true;\r                       play(seconds * 1000);\r                  if (event && _clip) {\r                          _clip.dispatchEvent(event);\r                    }\r                      if (_paused) {\r                         _pausedPosition = _channel.position; \r                _channel.stop();\r                 }\r              }\r              \r               private function play(posMillis:Number):void {\r                 _channel = _sound.play(posMillis, 0);\r                  _volumeController.soundChannel = _channel;\r             }\r\r             public function get stopping():Boolean {\r                       return false;\r          }\r              \r               public function get allowRandomSeek():Boolean {\r                        return false;\r          }\r              \r               public function get bufferStart():Number {\r                     return 0;\r              }\r              \r               public function get playlist():Playlist {\r                      return _playlist;\r              }\r\r             public function get time():Number {\r            if (_timeProvider) {\r                return _timeProvider.getTime(null);\r            }\r                 return _channel ? _channel.position / 1000 : 0;\r                }\r\r             public function get bufferEnd():Number {\r                       return _sound && _clip ? _sound.bytesLoaded / _sound.bytesTotal * _clip.duration : 0;\r          }\r\r             public function get fileSize():Number {\r                        return _sound ? _sound.bytesLoaded : 0;\r                }\r              \r               public function set playlist(playlist:Playlist):void {\r                 _playlist = playlist;\r          }\r              \r               public function set netStreamClient(client:Object):void {\r              }\r              \r               public function set volumeController(controller:VolumeController):void {\r                       _volumeController = controller;\r                }\r              \r               public function onConfig(model:PluginModel):void {\r            _model = model;\r                 model.dispatchOnLoad();\r                }\r\r             public function getDefaultConfig():Object {\r                    return null;\r           }\r              \r               public function onLoad(player:Flowplayer):void {\r            _imageLoader = player.createLoader();\r                     _screen = player.pluginRegistry.getPlugin("screen") as DisplayProperties; \r                     _clipUrlResolverHelper = new ClipURLResolverHelper(player, this);\r              }\r\r        public function addConnectionCallback(name:String, listener:Function):void {\r        }\r        \r        public function addStreamCallback(name:String, listener:Function):void {\r        }\r\r        public function get netStream():NetStream {\r            return null;\r        }\r\r        public function get netConnection():NetConnection {\r            return null;\r        }\r\r        public function getDefaultConnectionProvider():ConnectionProvider {\r            return null;\r        }\r\r        public function set timeProvider(timeProvider:TimeProvider):void {\r            _timeProvider = timeProvider;\r        }\r\r        /**\r         * the value of this property is "audio"\r         */\r        public function get type():String {\r            return "audio";\r        }\r\r        public function switchStream(event:ClipEvent, clip:Clip, netStreamPlayOptions:Object = null):void {\r        }\r\r        public function get streamCallbacks():Dictionary {\r            return null;\r        }\r    }\r}\r
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.audio/src/actionscript/org/flowplayer/audio/AudioProviderFactory.as b/typo3/contrib/flowplayer/flowplayer.audio/src/actionscript/org/flowplayer/audio/AudioProviderFactory.as
deleted file mode 100644 (file)
index 88e6c87..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/*    \r *    Copyright (c) 2008-2011 Flowplayer Oy *\r *    This file is part of FlowPlayer.\r *\r *    FlowPlayer is free software: you can redistribute it and/or modify\r *    it under the terms of the GNU General Public License as published by\r *    the Free Software Foundation, either version 3 of the License, or\r *    (at your option) any later version.\r *\r *    FlowPlayer is distributed in the hope that it will be useful,\r *    but WITHOUT ANY WARRANTY; without even the implied warranty of\r *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r *    GNU General Public License for more details.\r *\r *    You should have received a copy of the GNU General Public License\r *    along with FlowPlayer.  If not, see <http://www.gnu.org/licenses/>.\r */\r\rpackage org.flowplayer.audio {\r      import org.flowplayer.model.PluginFactory;\r     \r       import flash.display.Sprite;            \r\r      /**\r     * @author api\r  */\r    public class AudioProviderFactory extends Sprite implements PluginFactory {\r            public function newPlugin():Object {\r                   return new AudioProvider();\r            }\r      }\r}\r
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions-3.2.3.swf b/typo3/contrib/flowplayer/flowplayer.captions-3.2.3.swf
deleted file mode 100644 (file)
index 5f1d773..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions-3.2.3.swf and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/LICENSE.txt b/typo3/contrib/flowplayer/flowplayer.captions/LICENSE.txt
deleted file mode 100644 (file)
index 7f04a62..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (c) 2009 Flowplayer Ltd
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/README.txt b/typo3/contrib/flowplayer/flowplayer.captions/README.txt
deleted file mode 100644 (file)
index 3301f7f..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-Version history:
-
-3.2.3
------
-- The external method names are now loadCaptions() and addCaptions()
-
-3.2.2
------
-- Added support for MP4 embedded captions, issue #122. Demo: http://ec2-75-101-198-99.compute-1.amazonaws.com:8080/plugins/flash/captions.html
-
-3.2.1
------
-- Added ability to have line breaks with timed text caption files:
-<p begin = "00:00:00.01" dur="04.00">
-    A lazy fox jumps<br/>over a busy cat
-</p>
-
-3.2.0
------
-- Fixed visibility issue
-- Fixed multiple lines subtitles (#36)
-- Increasing font size when going fullscreen (#37)
-- Clip's autoPlay field wasn't taken in account (#66)
-- Wrong resize when going fullscreen if caption view was not displayed
-
-3.1.4
------
-- Timed Text parsing was fixed
-
-3.1.3
------
-Fixes:
-- loadCaptions() now removes all previous captions before adding the loaded ones
-
-3.1.2
-------
-- Now the captions can be initially made invisible by just specifying display: 'none' in the content plugin that is used
-  to show the captions
-
-3.1.1
------
-- added a file extension parameter to the loadCaptions external method
-
-3.1.0
------
-- added a button to toggle the captions, new config option 'button' can be used to control it
-- fixed error appearing in Firebug console with Timed Text captions: http://flowplayer.org/forum/8/16030)
-
-
-3.0.0
------
-- the first release
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/build.properties b/typo3/contrib/flowplayer/flowplayer.captions/build.properties
deleted file mode 100644 (file)
index fd0a52f..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-devkit-dir=../flowplayer.devkit
-version=3.2.3
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/build.xml b/typo3/contrib/flowplayer/flowplayer.captions/build.xml
deleted file mode 100644 (file)
index a26abb7..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-<project name="Flowplayer captions" default="deploy">
-    <property file="build.generated.properties"/>
-       <property file="${user.home}/plugin.properties" />
-       <property file="build.properties" />
-       
-       <property file="${devkit-dir}/plugin-build.properties" />
-       <import file="${devkit-dir}/plugin-build.xml"/>
-       <property name="flowplayer_lib" value="${devkit-dir}/flowplayer.swc" />
-       
-       <property name="basename" value="flowplayer.captions" />
-    <property name="releasedir" value="flowplayer.captions" />
-       <property name="plugin-binary" value="${basename}.swf" />
-       <property name="plugin-binary-versioned" value="${basename}-${version}.swf" />
-       <property name="plugin-swc" value="${basename}.swc" />
-       
-       <property name="plugin-main-class" value="org/flowplayer/captions/Caption.as" />
-
-       <target name="release" description="makes a release" depends="build">
-               <copyrelease targetdir="flowplayer.captions">
-                       <releasefiles>
-                               <fileset dir="${build-dir}">
-                                   <include name="${plugin-binary-versioned}"/>
-                               </fileset>
-                       </releasefiles>
-               </copyrelease>
-       </target>
-
-</project>
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/casa.dfxp.xml b/typo3/contrib/flowplayer/flowplayer.captions/example/casa.dfxp.xml
deleted file mode 100644 (file)
index 855b7e9..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"  xmlns:tts="http://www.w3.org/2006/10/ttaf1#styling">\r  <head>\r     <styling>\r           <style id="1" tts:textAlign="left" tts:fontFamily="_sans" tts:color="#ffffff" tts:backgroundColor="#00000050" />\r    </styling>\r  </head>\r  <body id="text">\r     <div xml:lang="en" >\r                    <p begin="0:00:05.59" end="0:00:10.46" style="1">Ive heard of other programs like this but most of them are all geared toward the engineers</p>\r      <p begin="0:00:05.59" end="0:00:10.46" style="1">I've heard of other programs like this but most of them are all geared toward the engineers</p>\r      <p begin="0:00:10.46" end="0:00:16.48" style="1">or it's the final year of the engineer that you finally get to build a project</p>\r      <p begin="0:00:16.48" end="0:00:20.07" style="1">some culmination for all your work we've been doing that the whole four years</p>\r      <p begin="0:00:20.07" end="0:00:25.58" style="1">that we've been here and it really does make for an incredible learning environment</p>\r      <p begin="0:00:25.58" end="0:00:29.72" style="1">The professors are very one on one with the students and individualize with us</p>\r      <p begin="0:00:29.72" end="0:00:33.89" style="1">it's more of a friendship with the teachers instead of just a professor</p>\r      <p begin="0:00:33.89" end="0:00:38.14" style="1">in a regular lecture hall or something it's more one on one</p>\r      <p begin="0:00:38.14" end="0:00:43.70" style="1"> You got your different majors in CASA I'm in EST and then there's like four areas of study</p>\r      <p begin="0:00:43.70" end="0:00:49.30" style="1">that go into that your biomedical networking communications and industrial electronics technology</p>\r      <p begin="0:00:49.30" end="0:00:52.64" style="1">I plan to work in a dental office as a dental hygienist</p>\r      <p begin="0:00:52.64" end="0:00:57.90" style="1">Southern was the only dental hygiene school in Illinois that has a bachelor's degree</p>\r      <p begin="0:00:57.90" end="0:01:05.13" style="1">in dental hygiene and we perform cleanings on children at schools, visit nursing homes</p>\r      <p begin="0:01:05.13" end="0:01:10.46" style="1">and perform cleanings there We just get alot of experience outside of school</p>\r      <p begin="0:01:10.46" end="0:01:11.80" style="1">to get us ready for the real world</p>\r      <p begin="0:01:11.80" end="0:01:15.63" style="1">I have a really good time with this especially when we do work in the 737</p>\r      <p begin="0:01:15.63" end="0:01:21.72" style="1">Our professors and instructors push us to get things going like this plane we pretty much</p>\r      <p begin="0:01:21.72" end="0:01:27.36" style="1">got it running a couple of years ago and now its pretty much fully operational Its great</p>\r      <p begin="0:01:27.36" end="0:01:32.35" style="1">and you learn so much you get a lot of hands on experience working on live aircraft like this</p>\r      <p begin="0:01:32.35" end="0:01:37.30" style="1">The glass cockpit is two 15 inch screens  those screens provide you with all the information</p>\r      <p begin="0:01:37.30" end="0:01:41.10" style="1">that each gauge used to provide and it provides it in one centralized location</p>\r      <p begin="0:01:41.10" end="0:01:45.00" style="1">besides that it also provides a moving map like GPS type display</p>\r      <p begin="0:01:45.00" end="0:01:48.90" style="1">I would definitely say it’s a very good option they are providing us now</p>\r      <p begin="0:01:48.90" end="0:01:53.86" style="1">The club is an organization of students that  kind of wanted to go beyond the classroom</p>\r      <p begin="0:01:53.86" end="0:01:59.28" style="1">The whole point of it was you know this is what we do with what we learn every concept</p>\r      <p begin="0:01:59.28" end="0:02:04.57" style="1">that they picked up in all their classes digital analog discreet everything they applied in</p>\r      <p begin="0:02:04.57" end="0:02:08.90" style="1">in the dawgzooka project They started looking around at parts they asked the SIU Police</p>\r      <p begin="0:02:08.90" end="0:02:13.76" style="1">department they donated several old bomb disposal chassis that they could build on</p>\r      <p begin="0:02:13.76" end="0:02:19.17" style="1">and these principles they apply is what culminates into that final product</p>\r      <p begin="0:02:19.17" end="0:02:23.66" style="1">it’s great just build of everything that you learn</p>\r      <p begin="0:02:23.66" end="0:02:26.90" style="1">SIU is one of the only state schools that offers this program</p>\r      <p begin="0:02:26.90" end="0:02:29.64" style="1">that’s one of the  main reasons is because it is a  bachelors degree program</p>\r      <p begin="0:02:29.64" end="0:02:34.06" style="1">and it’s got the option for three different specializations</p>\r      <p begin="0:02:34.06" end="0:02:38.37" style="1">you’ve got CTMRI ultrasound and then you’ve got radiation therapy</p>\r      <p begin="0:02:38.37" end="0:02:43.75" style="1">I see it as the ability to pursue different job opportunities and also job security</p>\r      <p begin="0:02:43.75" end="0:02:47.50" style="1">mostly we’r e all really excited about clinicals because you don’t have to take any classes</p>\r      <p begin="0:02:47.50" end="0:02:51.95" style="1">when your doing it and it’s just kind of a real relief  to be out working rather than</p>\r      <p begin="0:02:51.95" end="0:02:53.67" style="1">taking classes all the time</p>\r      <p begin="0:02:53.67" end="0:02:57.91" style="1">That second semester when you got out to clinics and you actually had a real patient</p>\r      <p begin="0:02:57.91" end="0:03:05.25" style="1">you had real life scenarios and your working with real people that were trained to do the same</p>\r      <p begin="0:03:05.25" end="0:03:10.91" style="1">thing and you’re their as a student but your being treated essentially as an equal</p>\r      <p begin="0:03:10.91" end="0:03:15.92" style="1">and you get that real life experience and  it just adds to your education</p>\r      <p begin="0:03:15.92" end="0:03:24.07" style="1"></p>\r     </div> \r  </body>\r </tt>\r
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/casa.dfxp.xml.1 b/typo3/contrib/flowplayer/flowplayer.captions/example/casa.dfxp.xml.1
deleted file mode 100644 (file)
index 542d416..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<tt xmlns="http://www.w3.org/2006/04/ttaf1"
-      xmlns:tts="http://www.w3.org/2006/04/ttaf1#styling" xml:lang="en">
-  <head>
-     <styling>
-    
-       <style id="1" tts:textAlign="left" tts:fontFamily="_sans" tts:color="#ffffff" tts:backgroundColor="#00000050" />
-</styling>
-  </head>
-  <body id="text">
-    <div id="1" xml:lang="en">
-      <p begin="0:00:05.59" end="0:00:10.46" style="1">I've heard of other programs like this but most of them are all geared toward the engineers</p>
-      <p begin="0:00:10.46" end="0:00:16.48" style="1">or it's the final year of the engineer that you finally get to build a project</p>
-      <p begin="0:00:16.48" end="0:00:20.07" style="1">some culmination for all your work we've been doing that the whole four years</p>
-      <p begin="0:00:20.07" end="0:00:25.58" style="1">that we've been here and it really does make for an incredible learning environment</p>
-      <p begin="0:00:25.58" end="0:00:29.72" style="1">The professors are very one on one with the students and individualize with us</p>
-      <p begin="0:00:29.72" end="0:00:33.89" style="1">it's more of a friendship with the teachers instead of just a professor</p>
-      <p begin="0:00:33.89" end="0:00:38.14" style="1">in a regular lecture hall or something it's more one on one</p>
-      <p begin="0:00:38.14" end="0:00:43.70" style="1"> You got your different majors in CASA I'm in EST and then there's like four areas of study</p>
-      <p begin="0:00:43.70" end="0:00:49.30" style="1">that go into that your biomedical networking communications and industrial electronics technology</p>
-      <p begin="0:00:49.30" end="0:00:52.64" style="1">I plan to work in a dental office as a dental hygienist</p>
-      <p begin="0:00:52.64" end="0:00:57.90" style="1">Southern was the only dental hygiene school in Illinois that has a bachelor's degree</p>
-      <p begin="0:00:57.90" end="0:01:05.13" style="1">in dental hygiene and we perform cleanings on children at schools, visit nursing homes</p>
-      <p begin="0:01:05.13" end="0:01:10.46" style="1">and perform cleanings there We just get alot of experience outside of school</p>
-      <p begin="0:01:10.46" end="0:01:11.80" style="1">to get us ready for the real world</p>
-      <p begin="0:01:11.80" end="0:01:15.63" style="1">I have a really good time with this especially when we do work in the 737</p>
-      <p begin="0:01:15.63" end="0:01:21.72" style="1">Our professors and instructors push us to get things going like this plane we pretty much</p>
-      <p begin="0:01:21.72" end="0:01:27.36" style="1">got it running a couple of years ago and now its pretty much fully operational Its great</p>
-      <p begin="0:01:27.36" end="0:01:32.35" style="1">and you learn so much you get a lot of hands on experience working on live aircraft like this</p>
-      <p begin="0:01:32.35" end="0:01:37.30" style="1">The glass cockpit is two 15 inch screens  those screens provide you with all the information</p>
-      <p begin="0:01:37.30" end="0:01:41.10" style="1">that each gauge used to provide and it provides it in one centralized location</p>
-      <p begin="0:01:41.10" end="0:01:45.00" style="1">besides that it also provides a moving map like GPS type display</p>
-      <p begin="0:01:45.00" end="0:01:48.90" style="1">I would definitely say it’s a very good option they are providing us now</p>
-      <p begin="0:01:48.90" end="0:01:53.86" style="1">The club is an organization of students that  kind of wanted to go beyond the classroom</p>
-      <p begin="0:01:53.86" end="0:01:59.28" style="1">The whole point of it was you know this is what we do with what we learn every concept</p>
-      <p begin="0:01:59.28" end="0:02:04.57" style="1">that they picked up in all their classes digital analog discreet everything they applied in</p>
-      <p begin="0:02:04.57" end="0:02:08.90" style="1">in the dawgzooka project They started looking around at parts they asked the SIU Police</p>
-      <p begin="0:02:08.90" end="0:02:13.76" style="1">department they donated several old bomb disposal chassis that they could build on</p>
-      <p begin="0:02:13.76" end="0:02:19.17" style="1">and these principles they apply is what culminates into that final product</p>
-      <p begin="0:02:19.17" end="0:02:23.66" style="1">it’s great just build of everything that you learn</p>
-      <p begin="0:02:23.66" end="0:02:26.90" style="1">SIU is one of the only state schools that offers this program</p>
-      <p begin="0:02:26.90" end="0:02:29.64" style="1">that’s one of the  main reasons is because it is a  bachelors degree program</p>
-      <p begin="0:02:29.64" end="0:02:34.06" style="1">and it’s got the option for three different specializations</p>
-      <p begin="0:02:34.06" end="0:02:38.37" style="1">you’ve got CTMRI ultrasound and then you’ve got radiation therapy</p>
-      <p begin="0:02:38.37" end="0:02:43.75" style="1">I see it as the ability to pursue different job opportunities and also job security</p>
-      <p begin="0:02:43.75" end="0:02:47.50" style="1">mostly we’r e all really excited about clinicals because you don’t have to take any classes</p>
-      <p begin="0:02:47.50" end="0:02:51.95" style="1">when your doing it and it’s just kind of a real relief  to be out working rather than</p>
-      <p begin="0:02:51.95" end="0:02:53.67" style="1">taking classes all the time</p>
-      <p begin="0:02:53.67" end="0:02:57.91" style="1">That second semester when you got out to clinics and you actually had a real patient</p>
-      <p begin="0:02:57.91" end="0:03:05.25" style="1">you had real life scenarios and your working with real people that were trained to do the same</p>
-      <p begin="0:03:05.25" end="0:03:10.91" style="1">thing and you’re their as a student but your being treated essentially as an equal</p>
-      <p begin="0:03:10.91" end="0:03:15.92" style="1">and you get that real life experience and  it just adds to your education</p>
-      <p begin="0:03:15.92" end="0:03:24.07" style="1"></p>
-    </div>
-  </body>
-</tt>
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/engineering.xml b/typo3/contrib/flowplayer/flowplayer.captions/example/engineering.xml
deleted file mode 100644 (file)
index d9b8366..0000000
+++ /dev/null
@@ -1 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>\r<tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"  xmlns:tts="http://www.w3.org/2006/10/ttaf1#styling">\r  <head>\r     <styling>\r           <style id="1" tts:textAlign="left" tts:fontFamily="_sans" tts:color="#ffffff" tts:backgroundColor="#00000050" />\r    </styling>\r  </head>\r  <body id="text">\r     <div xml:lang="en" >\r      <p begin="0:00:05.56" end="0:00:08.34" style="1">The size of SIU I really liked</p> \r      <p begin="0:00:08.35" end="0:00:10.00" style="1">like our community is really tight</p> \r      <p begin="0:00:10.00" end="0:00:12.45" style="1">The college of engineering I know pretty much the whole class</p> \r      <p begin="0:00:12.45" end="0:00:16.00" style="1">because we are so small and your teachers are really friendly</p> \r      <p begin="0:00:16.00" end="0:00:19.12" style="1">and there’s lots of stuff to do here outside and inside</p> \r      <p begin="0:00:19.12" end="0:00:21.19" style="1">At some bigger schools they have</p> \r      <p begin="0:00:21.19" end="0:00:26.19" style="1">hundreds of people in their classrooms and there’s no interaction between the faculty and the students</p> \r      <p begin="0:00:26.19" end="0:00:32.03" style="1">students and down here it's a lot more accommodating to people and individuals</p> \r      <p begin="0:00:32.03" end="0:00:34.27" style="1">I haven't had a professor I don't like yet</p> \r      <p begin="0:00:34.27" end="0:00:37.39" style="1">I really like all of them they are all really passionate about what they do</p> \r      <p begin="0:00:37.39" end="0:00:40.75" style="1">and they all really want you to learn they want you to succeed</p> \r      <p begin="0:00:40.75" end="0:00:44.79" style="1">It's a lot of fun especially classes with labs you get a lot of hands on experience</p> \r      <p begin="0:00:44.79" end="0:00:49.45" style="1">which is nice because it's not all theoretical ideas that your learning</p> \r      <p begin="0:00:49.45" end="0:00:52.98" style="1">you get to apply those concepts that you learn in class</p> \r      <p begin="0:00:52.98" end="0:00:55.27" style="1">You have at least four classes with labs</p> \r      <p begin="0:00:55.27" end="0:00:56.26" style="1">you have design electives</p> \r      <p begin="0:00:56.26" end="0:00:59.20" style="1">where you actually pick apart things and fix things</p> \r      <p begin="0:00:59.20" end="0:01:03.09" style="1">and a design class a senior design class where you build something</p> \r      <p begin="0:01:03.09" end="0:01:06.23" style="1">We participate in all kinds of stuff like volunteer activities</p> \r      <p begin="0:01:06.23" end="0:01:08.90" style="1">the moon buggy team the race car team</p> \r      <p begin="0:01:08.90" end="0:01:10.87" style="1">we go to conferences twice a year</p> \r      <p begin="0:01:10.87" end="0:01:17.38" style="1">we have design competitions we have social events and we participate with all other organizations in the college of engineering</p> \r      <p begin="0:01:17.38" end="0:01:22.64" style="1">We design and build a moon buggy for  a competition at the NASA space camp</p> \r      <p begin="0:01:22.64" end="0:01:27.74" style="1">it's nice to have  seen  what I have seen as well as see the club come as far as it has</p> \r      <p begin="0:01:27.74" end="0:01:30.40" style="1">I don't know anyone who didn't have an internship this summer</p> \r      <p begin="0:01:30.40" end="0:01:35.56" style="1">we've got Caterpillar the Environmental Protection Agency Boeing John Deere</p> \r      <p begin="0:01:35.56" end="0:01:41.52" style="1">Caterpillar is a company I've wanted to work for since I was a little kid playing with my toy Tonka trucks</p> \r      <p begin="0:01:41.52" end="0:01:46.01" style="1">all the big yellow construction machinery that’s exciting for a little kid</p> \r      <p begin="0:01:46.01" end="0:01:48.43" style="1">and continued to be something that I wanted to get into</p> \r      <p begin="0:01:48.43" end="0:01:52.54" style="1">You know we're really proud of this school that we have we've got a really good engineering school</p> \r      <p begin="0:01:52.54" end="0:01:56.21" style="1">and we work really hard to keep it up and keep up our reputations</p> \r      <p begin="0:01:56.21" end="0:01:58.48" style="1">I'm really proud of our hard work</p> \r       </div> \r  </body>\r </tt>\r
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/flowplayer.captions.js b/typo3/contrib/flowplayer/flowplayer.captions/example/flowplayer.captions.js
deleted file mode 100644 (file)
index 788ab36..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-/**
- * flowplayer.playlist.js 3.0.0. Flowplayer JavaScript plugin.
- * 
- * This file is part of Flowplayer, http://flowplayer.org
- *
- * Author: Tero Piirainen, <support@flowplayer.org>
- * Copyright (c) 2009 Flowplayer Ltd
- *
- * Dual licensed under MIT and GPL 2+ licenses
- * SEE: http://www.opensource.org/licenses
- * 
- * Version: 3.0.0 - Tue Nov 25 2008 16:30:11 GMT-0000 (GMT+00:00)
- */
-(function($) {
-       
-       $f.addPlugin("captions", function(container, options) {
-       
-               // self points to current Player instance
-               var self = this;        
-               var api = null;
-               var opts = {
-                       activeClass: 'active',
-                       template: '<img src="images/${time}.jpg"/>',
-                       padTime: true,
-                       fadeTime: 500
-               };              
-               
-               $.extend(opts, options);
-               var wrap = container;
-               var template = null;
-               
-               //wrap = $(wrap);               
-               //alert(wrap.html());
-               //var template = wrap.is(":empty") ? opts.template : wrap.html(); 
-               var el = "";
-               //wrap.empty();         
-                       
-       
-               function seek()
-               {
-                       var status = api.getStatus();   
-                       alert(status.index);
-               }
-               
-               function parseTemplate(values)
-               {
-                       $.each(values, function(key, val) {
-       
-                               if (typeof val == 'object')
-                               {       
-                                       parseTemplate(key);
-                               } else {
-                                       if (key == "time") {
-                                               val = Math.round(val / 1000);
-                                               if (opts.padTime && val < 10) val = "0" + val;
-                                       }
-                                       
-                                       el = el.replace("$\{" +key+ "\}", val).replace("$%7B" +key+ "%7D", val);
-
-                               }
-                       });
-               }
-               
-               // onStart
-               self.onStart(function(clip) {
-               
-                       var index = 1;
-                       
-                       wrap = $(wrap);         
-                       template = wrap.is(":empty") ? opts.template : wrap.html(); 
-                       wrap.fadeOut(opts.fadeTime).empty();
-                       
-                  // wrap.empty();
-               
-                       $.each(clip.cuepoints, function(key, val) {     
-                               
-                               el = template;
-                               if (val !== null) {
-                                       var time = Math.round(val[0].time / 1000);
-                                       parseTemplate(val[0]);
-       
-                                       el = $(el);     
-                                       el.attr("index",index);
-                                       index++;
-                                       el.click(function() {   
-                                               self.seek(time);
-                                               api.seekTo($(this).attr("index"));
-                                               //api.next();
-                                       });
-                       
-                                       wrap.append(el);
-                               }
-                       });
-                       
-                       if (wrap.parent().css('display') == "none") {
-                               wrap.show();
-                               wrap.parent('div').fadeIn(opts.fadeTime);
-                       } else {
-                               wrap.fadeIn(opts.fadeTime);
-                       }
-                       
-                       
-                       $(wrap.parent()).scrollable({items:wrap,size:4, clickable:true, activeClass: opts.activeClass});
-                   api = $(wrap.parent()).scrollable();
-                   
-       
-                       $("a.prevPage").click(function() {
-                               api.prevPage(500);                      
-                       });
-                       
-                       $("a.prevPage").mouseover(function() {
-                               api.prevPage(500);                      
-                       });
-                       
-                       $("a.nextPage").click(function() {
-                               api.nextPage(500);                      
-                       });      
-                       
-                       $("a.nextPage").mouseover(function() {
-                               api.nextPage(500);                      
-                       });     
-       
-                       els = wrap.children();
-
-                       
-               });     
-               
-               
-               self.onCuepoint(function(clip, cuepoint) { 
-                       
-                       //var cue = els.filter("[@time=" + cuepoint.time + "]");
-                       //api.move();
-                       api.next();
-               //      alert(api.getIndex());
-                       //alert(wrap.html());
-                       //self.getPlugin("scrollable").next();
-                       //console.log(cue.text());
-                       //alert(cuepoint.time);
-                      //alert("embedded cuepoint entered, time: " + cuepoint.time); 
-               });
-               /*
-               // onPause      
-               self.onPause(function(clip) {
-                       getEl(clip).removeClass(opts.playingClass).addClass(opts.pausedClass);          
-               });     
-               
-               // onResume
-               self.onResume(function(clip) {
-                       getEl(clip).removeClass(opts.pausedClass).addClass(opts.playingClass);          
-               });             
-               
-               // what happens when clip ends ?
-               if (!opts.loop && !manual) {
-                       
-                       // stop the playback exept on the last clip, which is stopped by default
-                       self.onBeforeFinish(function(clip) {
-                               if (clip.index < els.length -1) {
-                                       return false;
-                               }
-                       }); 
-               }*/
-               
-               // on manual setups perform looping here
-               /*if (manual && opts.loop) {
-                       self.onBeforeFinish(function(clip) {
-                               var el = getEl(clip);
-                               if (el.next().length) {
-                                       el.next().click();                      
-                               } else {
-                                       els.eq(0).click();      
-                               } 
-                               return false;                           
-                       }); 
-               }*/   
-               
-               // onUnload
-               self.onUnload(function() {
-                       clearCSS();             
-               });
-               
-               
-               return self;
-               
-       });
-               
-})(jQuery);            
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/flvtool2-cuepoints.sh b/typo3/contrib/flowplayer/flowplayer.captions/example/flvtool2-cuepoints.sh
deleted file mode 100644 (file)
index a69dc04..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-#!/bin/bash
-#
-# /usr/local/bin/cuepoints
-#
-# Generate an XML file used by FLVTool2 to add cuepoints to a flash file
-# The XML file adds a cuepoint every ten seconds, to line up with timestamps
-#
-# Syntax: cuepoints [<seconds>] [<filename>]
-#         cuepoints 1800 cuepoints-1800.xml
-#         cuepoints 7200
-#         cuepoints
-#
-# Options for start time and interval could be added
-#
-# -----------------------------------------------------------------------------
-
-# Add a help screen
-if [ "$1" = "-h" -o "$1" = "--help" -o "$1" = "help" ]
- then echo -e "\ncuepoints [<seconds>] [<filename>]"
-  echo -e "\tThe cuepoints script creates an XML file used by FLVTool2 to add cuepoints to a flash file"
-  echo -e "\nSyntax:"
-  echo -e "\tcuepoints \t\t(defaults to 3600 seconds, or one hour, written to cuepoints.xml)"
-  echo -e "\tcuepoints 1800 \t\t(create cuepoints for a half-hour file)"
-  echo -e "\tcuepoints 1800 cuepoints-1800.xml\t(specify a filename)\n"
-   exit
-fi
-
-echo -e "\nCreating cuepoints.xml, used by FLVTool2 to add cuepoints to a flash file \
-(see \"cuepoints help\" for syntax and options)\n"
-
-# Check for length
-if [ "$1" = "" ]
- then LENGTH="3600"
- else LENGTH="$1"
-fi
-
-# Check for filename
-if [ "$2" = "" ]
- then FIL="cuepoints.xml"
- else FIL="$2"
-fi
-# Write the header
-echo "<?xml version=\"1.0\"?>" > $FIL
-echo "<tags>" >> $FIL
-echo "  <!-- navigation cue points -->" >> $FIL
-# Write the body
-for N in $(seq 0 10 $LENGTH)
-do
- NAME="$( echo $(date -d "+$N seconds"\ 00:00:00 +%H:%M:%S) )"
- echo "  <metatag event=\"onCuePoint\">" >> $FIL
- echo "    <name>"$NAME"</name>" >> $FIL
- echo "    <timestamp>"$N"000</timestamp>" >> $FIL
- echo "    <type>navigation</type>" >> $FIL
- echo "  </metatag>" >> $FIL
-done
-# Write the footer
-echo "</tags>" >> $FIL
-  
-echo -e "An XML file specifying $LENGTH timestamps has been written to $FIL\n"
-
-echo -e "To create a flash file with these cuepoints, use \"flvtool2 -AUPt cuepoints.xml input.flv output.flv\"\n"
-
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/left.png b/typo3/contrib/flowplayer/flowplayer.captions/example/images/left.png
deleted file mode 100644 (file)
index bb9c9a7..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/left.png and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/right.png b/typo3/contrib/flowplayer/flowplayer.captions/example/images/right.png
deleted file mode 100644 (file)
index 469a229..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/right.png and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame00.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame00.jpg
deleted file mode 100644 (file)
index 6181408..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame00.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame01.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame01.jpg
deleted file mode 100644 (file)
index e717366..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame01.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame02.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame02.jpg
deleted file mode 100644 (file)
index 0731d10..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame02.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame03.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame03.jpg
deleted file mode 100644 (file)
index 0d5a9ed..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame03.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame04.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame04.jpg
deleted file mode 100644 (file)
index d920864..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame04.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame05.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame05.jpg
deleted file mode 100644 (file)
index 39a7d6a..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame05.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame06.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame06.jpg
deleted file mode 100644 (file)
index 54da933..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame06.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame07.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame07.jpg
deleted file mode 100644 (file)
index fdcff69..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame07.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame08.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame08.jpg
deleted file mode 100644 (file)
index 378c5fb..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame08.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame09.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame09.jpg
deleted file mode 100644 (file)
index 2c0c57a..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame09.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame10.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame10.jpg
deleted file mode 100644 (file)
index c6747cb..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame10.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame11.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame11.jpg
deleted file mode 100644 (file)
index 182e050..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame11.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame12.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame12.jpg
deleted file mode 100644 (file)
index 4bf650f..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame12.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame13.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame13.jpg
deleted file mode 100644 (file)
index 037e7e6..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame13.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame14.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame14.jpg
deleted file mode 100644 (file)
index fd7f99d..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame14.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame15.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame15.jpg
deleted file mode 100644 (file)
index 933278d..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame15.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame16.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame16.jpg
deleted file mode 100644 (file)
index bbf58f9..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame16.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame17.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame17.jpg
deleted file mode 100644 (file)
index 51c353f..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame17.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame18.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame18.jpg
deleted file mode 100644 (file)
index 5212f66..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame18.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame19.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame19.jpg
deleted file mode 100644 (file)
index 8b04c5e..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame19.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame20.jpg b/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame20.jpg
deleted file mode 100644 (file)
index 9853641..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/example/images/thumbs/frame20.jpg and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/index.html.tmpl b/typo3/contrib/flowplayer/flowplayer.captions/example/index.html.tmpl
deleted file mode 100644 (file)
index 918fdba..0000000
+++ /dev/null
@@ -1,1056 +0,0 @@
-<!DOCTYPE html 
-     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
-     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-
-<!-- 
-       Flowplayer website, forums & jQuery Tools by Tero Piirainen 
-       
-       Prefer web standards over Flash. Video is the only exception.   
--->
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-
-<head>
-
-               <title>Flowplayer - Flash Video Player for the Web</title>
-               <meta name="Description" content="Embed video streams to your website. Superior alternative to YouTube. Open Sourced under the GPL license. No other software makes this smoother." />  
-               <meta name="Keywords" content="video player for the web, flash video player,web media player,free video player,free flv player,mp4 flash player,mp4 player,open source video player,flash 9 video,flash video,web video,flv player,flv video" />                
-       
-
-       
-       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
-       <meta name="Distribution" content="Global" />
-       <meta name="Author" content="Tero Piirainen" />
-       <meta name="Robots" content="index,follow" /> 
-               
-       <link rel="stylesheet" type="text/css" href="http://static.flowplayer.org/css/global-0.25.css" />
-       
-       
-       <script type="text/javascript" src="http://static.flowplayer.org/js/flowplayer-3.2.2.min.js"></script>  
-       <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
-       <script type="text/javascript"  src="http://cdn.jquerytools.org/1.2.3/jquery.tools.min.js"></script>
-       <link rel="stylesheet" type="text/css" href="http://static.flowplayer.org/tools/css/overlay-apple.css"/>
-       <script type="text/javascript"  src="http://flowplayer.org/tools/download/1.2.3/overlay/overlay.apple.min.js"></script>         
-       
-       <script type="text/javascript" src="flowplayer.captions.js"></script>
-
-       
-
-       <style type="text/css">
-               div.overlay {
-               width:1024px; 
-               height:432px;
-
-               }
-               
-               #cuethumbs {
-                       height:115px;
-                       background:#f5fbfb url(/img/global/gradient/h150.png) repeat-x;
-                       padding:5px;
-                       border:1px solid #ddd;
-                       width: 780px;
-               }
-               
-               #cuethumbs div.items {
-                       height:115px;
-                       width: 700px;
-                       float:left;
-               }
-               
-               #cuethumbs div.items img:hover {
-                       border:3px solid #000000;
-               }
-               
-               active {
-                       border:3px solid #CCCCCC;
-               }
-               
-               #cuethumbs div.items img.active {
-                       border:3px solid #CCCCCC;
-               }
-               
-               #cuethumbs div.items img {
-                       border:1px solid #000000;
-                       float:left;
-                       height:113px;
-                       cursor:pointer;
-                       margin-right:7px;
-                       width:150px;
-               }
-               
-               #cuethumbs div.items a:hover {
-                       background-position:-140px 0;
-                       color:#000;
-               }
-               
-               #cuethumbs div.items a.playing {
-                       background-position:-280px 0;           
-                       color:#000;
-               }
-               
-               #cuethumbs div.items a.paused {
-                       background-position:-420px 0;           
-                       color:#000;
-               }
-               
-               #cuethumbs div.items a.progress {
-                       opacity:0.8;
-               }
-               
-               #cuethumbs div.items em {       
-                       float:right;
-                       margin-top:15px;
-                       color:red;
-                       font-style:normal;
-               }
-               
-               #cuethumbs a.nextPage, #cuethumbs a.prevPage {
-                       display:block;
-                       width:18px;
-                       height:18px;
-                       background:url(images/left.png) no-repeat;
-                       margin:30px 10px;
-                       cursor:pointer;
-                       float:left;
-               }
-               
-               #cuethumbs a.nextPage:hover, #cuethumbs a.prevPage:hover {
-                       background-position:0px -18px;          
-               }
-               
-               #cuethumbs a.nextPage {
-                       background-image:url(images/right.png); 
-               }
-               
-       </style>
-       
-
-       <!--[if lt IE 7]>
-               <style type="text/css">
-                       @import "http://static.flowplayer.org/css/ie6.css?v=0.2";
-               </style>
-       <![endif]-->
-       
-       <!--[if lt IE 8]>
-               <style>
-                       html { overflow-x:hidden; }
-                       #content ol, #content ul  {margin-left: 50px; }
-               </style>
-       <![endif]-->    
-
-</head>
-
-<body id="plugins_captions">
-
-<div id="wrap">        
-
-               <div id="content"> 
-
-<h1>
-       Flash plugin: <strong>Captions</strong>
-       <em>Subtitles for your videos</em>
-</h1>
-
-
-<h2>Introduction</h2>
-
-<p>
-       The Captions plugin is used to show Closed Captions (CC) for videos. You can supply the Captions information as an external text file. Closed Captioning is a term describing several systems developed to display text on a video screen to provide additional or interpretive information to viewers who wish to access it. The most common use is to provide subtitles for movies. See <a href="http://en.wikipedia.org/wiki/Closed_captioning" class="external">here for more info</a>.
-</p>
-
-
-<h2>Features</h2>
-
-<ul>
- <li>Loading subtitles from the Timed Text or Subrip format files.</li>
- <li>Styling text from styles set in the Time Text format files.</li>
- <li>Loading of subtitles from embedded FLV cuepoints.</li>
- <li>Controls an external Content plugin to show the cuepoints.</li>
-</ul>
-
-<p>
-       <strong>Timed Text</strong> is a W3C specification for delivering captioning and video description for the web. You can find
-       the spec <a href="http://www.w3.org/AudioVideo/TT/">here in the W3C site</a>.
-       <strong>SubRip</strong> is a common format for distributing Captions for DVD rips. It is the
-       native subtitle format of the <a href="http://zuggy.wz.cz/">SubRip program</a>.
-</p>
-
-
-<h2>SubRip example</h2>
-
-<p>
-       The following shows Captions from a SubRib file. You will need a recent version of Flash installed to view the video that is a H.264 encoded mp4 file. The first subtitle comes after 13 seconds.
-</p>
-
-<!-- player container-->
-<a 
-       href="http://vod01.netdna.com/vod/demo.flowplayer/flowplayer-700.flv" 
-       style="display:block;width:500px;height:330px;" 
-       id="player">
-        
-       <!-- splash image inside the container -->
-       <img src="http://www.flowplayer.org/img/home/flow_eye.jpg" alt="Search engine friendly content" />
-       
-</a>
-
-<!-- Flowplayer installation and configuration -->
-<script language="JavaScript">
-
-$f("player", "@PLAYER_SWF@", {
-       clip: { 
-               
-               // here is our high quality movie
-               //url: 'mp4:buffalo_soldiers.mp4',
-               url: 'http://video.flowplayer.org/flowplayer.flv',
-               // this is the SubRib file with captions info
-               captionUrl: 'http://releases.flowplayer.org/data/buffalo.srt',
-               
-               // we want to use RTMP since this is a 1,5 hour long movie.
-               //provider: 'rtmp'
-       },
-       log: {
-               level: 'error',
-               filter: 'org.flowplayer.captions.*'
-       },
-       plugins:  {
-               
-               // the captions plugin
-               captions: {
-                       url: '@MAIN_PLAYER_SWF@',
-                       
-                       // pointer to a content plugin (see below)
-                       captionTarget: 'content'
-               },
-               
-               /*
-                       configure a content plugin so that it 
-                       looks good for showing subtitles
-               */
-               content: {
-                       url:'../flowplayer.content.swf',
-                       bottom: 25,
-                       height:40,
-                       backgroundColor: 'transparent',
-                       backgroundGradient: 'none',
-                       border: 0,
-            textDecoration: 'outline',
-                       style: { 
-                               body: { 
-                                       fontSize: 14, 
-                                       fontFamily: 'Arial',
-                                       textAlign: 'center',
-                                       color: '#ffffff'
-                               } 
-                       } 
-               },
-               
-               // streaming plugin configuration
-               rtmp: { 
-                       url: '../flowplayer.rtmp.swf', 
-                       netConnectionUrl: 'rtmp://flashy.flowplayer.org:1935/fastplay'
-               },
-               
-               // change default skin to "tube"
-               controls: {
-                       url: '../flowplayer.controls.swf'
-               }
-               
-       }
-});
-</script>      
-
-
-
-
-<div class="box code">
-<pre><code class="javascript">$f("player", "@PLAYER_SWF@", {
-       clip: { 
-               
-               // here is our high quality movie
-               url: 'mp4:buffalo_soldiers.mp4',
-                       
-               // this is the SubRib file with captions info
-               captionUrl: 'http://releases.flowplayer.org/data/buffalo.srt',
-               
-               // we want to use RTMP since this is a 1,5 hour long movie.
-               provider: 'rtmp'
-       },
-       plugins:  {
-               
-               // the captions plugin
-               captions: {
-                       url: '@MAIN_PLAYER_SWF@',
-                       
-                       // pointer to a content plugin (see below)
-                       captionTarget: 'content'
-               },
-               
-               /*
-                       configure a content plugin so that it 
-                       looks good for showing subtitles
-               */
-               content: {
-                       url:'../flowplayer.content.swf',
-                       bottom: 25,
-                       height:40,
-                       backgroundColor: 'transparent',
-                       backgroundGradient: 'none',
-                       border: 0,
-            textDecoration: 'outline',
-                       style: { 
-                               body: { 
-                                       fontSize: 14, 
-                                       fontFamily: 'Arial',
-                                       textAlign: 'center',
-                                       color: '#ffffff'
-                               } 
-                       } 
-               },
-               
-               // streaming plugin configuration
-               rtmp: { 
-                       url: '../flowplayer.rtmp.swf', 
-                       netConnectionUrl: 'rtmp://flashy.flowplayer.org:1935/fastplay'
-               },
-               
-               // change default skin to "tube"
-               controls: {
-                       url: '../flowplayer.controls.swf'
-               }
-               
-       }
-});</code></pre>
-</div>
-
-
-<h2>Configuration</h2>
-
-<p>
-       Here is a list of all Captions specific clip properties. These go under the <samp>clip</samp> node in the player configuration:
-</p>
-
-<table class="listing">
-       <tr>
-               <th>property</th>
-               <th>datatype</th>
-
-               <th>default</th>
-               <th>description</th>
-       </tr>
-       <tr>
-               <td><code>captionUrl</code></td>
-               <td>String</td>
-               <td></td>
-
-               <td>
-                       Path to a Timed Text or SubRip Captions file.
-               </td>
-       </tr>
-       <tr>
-               <td><code>captions</code></td>
-               <td>array</td>
-               <td></td>
-
-               <td>
-                       A json array of cuepoint objects ie 
-                                       {
-                                               time: 0,
-                                               name: 'cue1',
-                                               parameters: {
-                                                       begin: 0,
-                                                       end: 4000,
-                                                       text: 'First caption with default style coming from the Content plugin config'
-                                                       }
-                                               }
-               </td>
-       </tr>
-       <tr>
-               <td><code>showCaptions</code></td>
-               <td>boolean</td>
-
-               <td>true</td>
-               <td>
-                       Show Captions for this clip. You can set this to false if you have embedded Captions in the video and you don't want to show them.
-               </td>
-       </tr>
-</table>
-
-<p>
-       Here is a list of configuration options for the Captions plugin. These go under the Captions <samp>plugin</samp> node in the player configuration:
-</p>
-
-<table class="listing">
-       <tr>
-               <th>property</th>
-
-               <th>description</th>
-       </tr>
-       <tr>
-               <td><code>captionTarget</code></td>
-               <td>
-                       The name of a Content plugin configured to show the Captions. The plugin needs to be specified in the player's initial configuration.
-               </td>
-
-       </tr>
-
-    <tr>
-        <td><code>template</code></td>
-        <td>
-            Used with embedded cuepoints. A template string that specifies tokens for names of cuepoint parameters. The tokens are replaced by values that are looked up from the cuepoint parameters. If you embed cuepoints where the subtitles are in the cuepoint parameter called <samp>subtitle</samp>, you should set the use of a template with the value '&#36;{subtitle}'.
-        </td>
-    </tr>
-
-    <tr>
-        <td><code>button</code></td>
-        <td>
-            <a href="/documentation/configuration/plugins.html#display-properties">Display properties</a> for the CC-button. The default
-            properties are: <samp>{ width: 20, height: 15, right: 5, bottom: 30, label: 'CC' }</samp>. Specify <samp>null</samp> and the button
-            is not shown at all. The <samp>label</samp> property in this object specifies the label text for the button. If you want to make the captions initially hidden, specify <samp>display: 'none'</samp> in the Content plugin that is used to show the captions. Once the CC button is clicked, the captions become visible.
-        </td>
-    </tr>
-
-</table>
-
-<a name="scripting"></a>
-<h2>Scripting</h2>
-
-<p>
-       The captions plugin has the following custom methods that can be used at runtime:
-</p>
-
-<table class="listing">
-       <thead>
-               <tr>
-                       <th>method</th>
-                       <th>example</th>
-                       <th>description</th>
-               </tr>
-       </thead>
-
-       <tr>
-               <td class="code">loadCaptionsFromFile(clipIndex, captionURL, fileExtension)</td>
-               <td class="code" nowrap>loadCaptions(0, 'captions.xml')</td>
-               <td>
-                       Loads captions for the specified clip. The <samp>fileExtension</samp> is an optional parameter
-                       and you should specify it if the <samp>captionURL</samp> does not contain a file extension that
-                       can be used to recognize the caption file format. The supported <samp>fileExtension</samp> values
-                       are 'txt' and 'srt'.
-               </td>
-       </tr>
-       <tr>
-               <td class="code">loadCaptions(clipIndex, captions)</td>
-               <td class="code" nowrap>loadCaptions(0, captions)</td>
-               <td>
-                       Loads a json array of captions for the specified clip. 
-               </td>
-       </tr>
-</table>
-
-
-<h2>Timed text example</h2>
-
-<a class="player" id="timedtext">
-       <img src="http://static.flowplayer.org/img/player/btn/showme.png"  />
-</a><div class="box code">
-<pre><code class="html">&lt;a class="player" id="timedtext"&gt;
-       &lt;img src="http://static.flowplayer.org/img/player/btn/showme.png"  /&gt;
-&lt;/a&gt;</code></pre>
-</div>
-
-
-<script language='javascript'>
-$f("timedtext", "@PLAYER_SWF@", {
-       log: { level: 'debug', filter: 'org.flowplayer.captions.*'},
-       clip: {
-               url: 'http://video.flowplayer.org/flowplayer.flv',
-
-               // this is the Timed Text file with captions info
-               captionUrl: 'http://releases.flowplayer.org/data/timedtext.xml'
-       },
-       plugins:  {
-
-               captions: {
-                       url: '@MAIN_PLAYER_SWF@',
-
-                       // pointer to a content plugin (see below)
-                       captionTarget: 'content'
-               },
-
-               // configure a content plugin to look good for our purpose
-               content: {
-                       url:'../flowplayer.content.swf',
-                       bottom: 25,
-                       width: '80%',
-                       height:40,
-                       backgroundColor: 'transparent',
-                       backgroundGradient: 'low',
-                       borderRadius: 4,
-                       border: 0,
-
-                       style: {
-                           'body': {
-                               fontSize: '14',
-                               fontFamily: 'Arial',
-                               textAlign: 'center',
-                               color: '#000000'
-                           }
-                   }
-               }
-       }
-});
-</script><div class="box code">
-<pre><code class="javascript">$f("timedtext", "@PLAYER_SWF@", {
-       log: { level: 'debug', filter: 'org.flowplayer.captions.*'},
-       clip: {
-               url: 'http://video.flowplayer.org/flowplayer.flv',
-
-               // this is the Timed Text file with captions info
-               captionUrl: 'http://releases.flowplayer.org/data/timedtext.xml'
-       },
-       plugins:  {
-
-               captions: {
-                       url: '@MAIN_PLAYER_SWF@',
-
-                       // pointer to a content plugin (see below)
-                       captionTarget: 'content'
-               },
-
-               // configure a content plugin to look good for our purpose
-               content: {
-                       url:'../flowplayer.content.swf',
-                       bottom: 25,
-                       width: '80%',
-                       height:40,
-                       backgroundColor: 'transparent',
-                       backgroundGradient: 'low',
-                       borderRadius: 4,
-                       border: 0,
-
-                       style: {
-                           'body': {
-                               fontSize: '14',
-                               fontFamily: 'Arial',
-                               textAlign: 'center',
-                               color: '#000000'
-                           }
-                   }
-               }
-       }
-});</code></pre>
-</div>
-
-
-<p>
-       The timed text XML file used in this example is shown below. The style definitions are in the first part of the file inside the <samp>head</samp> element and below that we have the Captions inside the <samp>body</samp> element.
-</p>
-
-<p>
-       The first caption does not include the <samp>style</samp> attribute and therefore the style used to render it comes from the styling settings used to configure our Content plugin. The second caption uses the style with id 1 that defines a white font and left text alignment. The third caption has a small font coming from the 2nd style referenced by its id 2.
-</p>
-
-<div class="box code">
-<pre><code class="xml">&lt;?xml version="1.0" encoding="UTF-8"?&gt;
-&lt;tt xml:lang="en" xmlns="http://www.w3.org/2006/10/ttaf1"
-       xmlns:tts="http://www.w3.org/2006/10/ttaf1#styling"&gt;
-       &lt;head&gt;
-                &lt;styling&gt;
-                         &lt;style id="1" tts:fontFamily="Arial" tts:fontSize="14" tts:color="#FFFFFF"
-                       tts:textAlign="left" tts:fontStyle="Bold" /&gt;
-                         &lt;style id="2" tts:fontSize="10" tts:color="#000000" /&gt;
-                &lt;/styling&gt;
-       &lt;/head&gt;
-       &lt;body&gt;
-                 &lt;div xml:lang="en" &gt;
-                         &lt;p begin = "00:00:00.01" dur="04.00"&gt;
-                       First caption with default style coming from the Content plugin config
-               &lt;/p&gt;
-
-                         &lt;p begin = "00:00:04.19" dur="04.00" style="1"&gt;
-                 2nd caption with timed text styling to make the text white
-               &lt;/p&gt;
-
-                         &lt;p begin = "8s" dur="04.00" style="2"&gt;
-                 3rd caption using a small black font
-               &lt;/p&gt;
-                &lt;/div&gt;
-       &lt;/body&gt;
-&lt;/tt&gt;</code></pre>
-</div>
-
-
-
-
-<h2>Embedded Captions example</h2>
-
-<p>
-       This example show Captions based on data included in cuepoints that are embedded in the video file. The cuepoints were embedded into the video using <a href="http://www.richapps.de/?p=169" class="external">RichFLV</a>. The first caption is at 6 seconds.
-</p>
-
-<a class="player" id="embedded">
-       <img src="http://static.flowplayer.org/img/player/btn/showme.png"  />
-</a>
-
-<div class="box code">
-<pre><code class="html">&lt;a class="player" id="embedded"&gt;
-       &lt;img src="http://static.flowplayer.org/img/player/btn/showme.png"  /&gt;
-&lt;/a&gt;</code></pre>
-</div>
-
-
-<script language='javascript'>
-$f("embedded", "@PLAYER_SWF@", {
-       clip: {
-               url: 'http://video.flowplayer.org/flowplayer_cues.flv',
-               // cuepoint timing is in milliseconds in the file, so override
-               // the default multiplier value of 1000 that converts seconds
-               // to milliseconds
-               cuepointMultiplier: 1
-       },
-       log: {
-               level: 'debug',
-               filter: 'org.flowplayer.captions.*'
-       },
-       plugins:  {
-
-               captions: {
-                       url: '@MAIN_PLAYER_SWF@',
-
-                       // the content plugin we use to show the captions
-                       captionTarget: 'content'
-               },
-
-               // configure a content plugin to look good for our purpose
-               content: {
-                       url:'../flowplayer.content.swf',
-                       top: 10,
-                       width: '80%',
-                       height:40,
-                       backgroundColor: 'transparent',
-                       backgroundGradient: 'none',
-                       border: 0,
-
-            // an outline is useful so that the subtitles are more visible
-            textDecoration: 'outline',
-                       style: {
-                           'body': {
-                               fontSize: '14',
-                               fontFamily: 'Arial',
-                               textAlign: 'center',
-                               color: '#ffffff'
-                           }
-                   }
-               }
-       }
-});
-</script>
-
-<p>
-       The file used in the example above has cuepoints at the following points of the timeline: 6000, 13500, 16000, and at 20000 milliseconds. Using the RichFLV application it's easy to add them. Each of these cuepoints has one parameter called <samp>text</samp> that contins the text displayed as the caption text.
-</p>
-
-<div class="box code">
-<pre><code class="javascript">$f("embedded", "@PLAYER_SWF@", {
-       clip: {
-               url: 'http://video.flowplayer.org/flowplayer_cues.flv',
-               // cuepoint timing is in milliseconds in the file, so override
-               // the default multiplier value of 1000 that converts seconds
-               // to milliseconds
-               cuepointMultiplier: 1
-       },
-       plugins:  {
-
-               captions: {
-                       url: '@MAIN_PLAYER_SWF@',
-
-                       // the content plugin we use to show the captions
-                       captionTarget: 'content'
-               },
-
-               // configure a content plugin to look good for our purpose
-               content: {
-                       url:'../flowplayer.content.swf',
-                       top: 10,
-                       width: '80%',
-                       height:40,
-                       backgroundColor: 'transparent',
-                       backgroundGradient: 'none',
-                       border: 0,
-
-            // an outline is useful so that the subtitles are more visible
-            textDecoration: 'outline',
-                       style: {
-                           'body': {
-                               fontSize: '14',
-                               fontFamily: 'Arial',
-                               textAlign: 'center',
-                               color: '#ffffff'
-                           }
-                   }
-               }
-       }
-});</code></pre>
-</div>
-
-
-
-<h2>Json Config Captions Example</h2>
-
-<p>
-       This example is Captions based on a Json config. 
-</p>
-
-<a class="player" id="json">
-       <img src="http://static.flowplayer.org/img/player/btn/showme.png"  />
-</a>
-
-
-<script language='javascript'>
-$f("json", "@PLAYER_SWF@", {
-       clip: {
-               url: 'http://video.flowplayer.org/flowplayer.flv',
-               cuepointMultiplier: 1,
-               captions: [
-                                               {
-                                               time: 0,
-                                               name: 'cue1',
-                                               parameters: {
-                                                       begin: 0,
-                                                       end: 4000,
-                                                       text: 'First caption with default style coming from the Content plugin config'
-                                                       }
-                                               },
-                                               {
-                                               time: 4000,
-                                               name: 'cue2',
-                                               parameters: {
-                                                       begin: 4000,
-                                                       end: 8000,
-                                                       text: '2nd caption with timed text styling to make the text white'
-                                                       }
-                                               },
-                                               {
-                                               time: 8000,
-                                               name: 'cue3',
-                                               parameters: {
-                                                       begin: 8000,
-                                                       end: 12000,
-                                                       text: '3rd caption using a small black font'
-                                                       }
-                                               },
-                                               
-                                       ]
-       },
-       log: {
-               level: 'debug',
-               filter: 'org.flowplayer.captions.*'
-       },
-       plugins:  {
-
-               captions: {
-                       url: '@MAIN_PLAYER_SWF@',
-
-                       // the content plugin we use to show the captions
-                       captionTarget: 'content',
-               },
-
-               content: {
-                       url:'../flowplayer.content.swf',
-                       bottom: 25,
-                       height:40,
-                       backgroundColor: 'transparent',
-                       backgroundGradient: 'none',
-                       border: 0,
-            textDecoration: 'outline',
-                       style: { 
-                               body: { 
-                                       fontSize: 14, 
-                                       fontFamily: 'Arial',
-                                       textAlign: 'center',
-                                       color: '#ffffff'
-                               } 
-                       } 
-               },
-       }
-});
-</script>
-
-<div class="box code">
-<pre><code class="javascript">
-$f("json", "@PLAYER_SWF@", {
-       clip: {
-               url: 'http://video.flowplayer.org/flowplayer.flv',
-               captions: [
-                                               {
-                                               time: 0,
-                                               name: 'cue1',
-                                               parameters: {
-                                                       begin: 0,
-                                                       end: 4000,
-                                                       text: 'First caption with default style coming from the Content plugin config'
-                                                       }
-                                               },
-                                               {
-                                               time: 4000,
-                                               name: 'cue2',
-                                               parameters: {
-                                                       begin: 4000,
-                                                       end: 8000,
-                                                       text: '2nd caption with timed text styling to make the text white'
-                                                       }
-                                               },
-                                               {
-                                               time: 8000,
-                                               name: 'cue3',
-                                               parameters: {
-                                                       begin: 8000,
-                                                       end: 12000,
-                                                       text: '3rd caption using a small black font'
-                                                       }
-                                               },
-                                               
-                                       ]
-       },
-       plugins:  {
-
-               captions: {
-                       url: '@MAIN_PLAYER_SWF@',
-
-                       // the content plugin we use to show the captions
-                       captionTarget: 'content'
-               },
-
-               // configure a content plugin to look good for our purpose
-               content: {
-                       url:'../flowplayer.content.swf',
-                       top: 10,
-                       width: '80%',
-                       height:40,
-                       backgroundColor: 'transparent',
-                       backgroundGradient: 'none',
-                       border: 0,
-
-            // an outline is useful so that the subtitles are more visible
-            textDecoration: 'outline',
-                       style: {
-                           'body': {
-                               fontSize: '14',
-                               fontFamily: 'Arial',
-                               textAlign: 'center',
-                               color: '#ffffff'
-                           }
-                   }
-               }
-       }
-});
-</code></pre>
-</div>
-
-<a name="javascript_plugin"></a>
-<h2>Javascript Plugin</h2>
-
-<p>
-       Available is the captions javascript plugin which provides a means to dynamically produce a scrollable playlist of the cuepoints.
-</p>
-
-<p>
-       The captions setup is similar to the javascript playlist plugin, where the template can be provided by the html or config.
-</p>
-
-<a class="player" id="javascript-plugin">
-       <img src="http://static.flowplayer.org/img/player/btn/showme.png"  />
-</a>
-
-
-<script language='javascript'>
-$f("javascript-plugin", "@PLAYER_SWF@", {
-       clip: {
-               url: 'http://video.flowplayer.org/flowplayer.flv',
-               cuepointMultiplier: 1,
-               captions: [
-                                               {
-                                               time: 0,
-                                               name: 'cue1',
-                                               parameters: {
-                                                       begin: 0,
-                                                       end: 4000,
-                                                       thumb: 'images/frame01.jpg',
-                                                       text: 'First caption with default style coming from the Content plugin config'
-                                                       }
-                                               },
-                                               {
-                                               time: 4000,
-                                               name: 'cue2',
-                                               parameters: {
-                                                       begin: 4000,
-                                                       end: 8000,
-                                                       thumb: 'images/frame06.jpg',
-                                                       text: '2nd caption with timed text styling to make the text white'
-                                                       }
-                                               },
-                                               {
-                                               time: 8000,
-                                               name: 'cue3',
-                                               parameters: {
-                                                       begin: 8000,
-                                                       end: 12000,
-                                                       thumb: 'images/frame08.jpg',
-                                                       text: '3rd caption using a small black font'
-                                                       }
-                                               },
-                                               
-                                       ]
-       },
-       log: {
-               level: 'debug',
-               filter: 'org.flowplayer.captions.*'
-       },
-       plugins:  {
-
-               captions: {
-                       url: '@MAIN_PLAYER_SWF@',
-
-                       // the content plugin we use to show the captions
-                       captionTarget: 'content',
-               },
-
-               content: {
-                       url:'../flowplayer.content.swf',
-                       bottom: 25,
-                       height:40,
-                       backgroundColor: 'transparent',
-                       backgroundGradient: 'none',
-                       border: 0,
-            textDecoration: 'outline',
-                       style: { 
-                               body: { 
-                                       fontSize: 14, 
-                                       fontFamily: 'Arial',
-                                       textAlign: 'center',
-                                       color: '#ffffff'
-                               } 
-                       } 
-               },
-       }
-}).captions("div.items", {}); 
-</script>
-
-<div id="cuethumbs" style="display:none;">
-       <a class="prevPage"></a>
-       <div class="items" style="display:none;">
-               <img src="images/thumbs/frame${time}.jpg"/>
-       </div>
-       <a class="nextPage"></a>
-</div>
-
-<div class="box code">
-<pre><code class="javascript">
-$f("javascript-plugin", "@PLAYER_SWF@", {
-       clip: {
-               url: 'http://video.flowplayer.org/flowplayer.flv',
-               captions: [
-                                               {
-                                               time: 0,
-                                               name: 'cue1',
-                                               parameters: {
-                                                       begin: 0,
-                                                       end: 4000,
-                                                       text: 'First caption with default style coming from the Content plugin config'
-                                                       }
-                                               },
-                                               {
-                                               time: 4000,
-                                               name: 'cue2',
-                                               parameters: {
-                                                       begin: 4000,
-                                                       end: 8000,
-                                                       text: '2nd caption with timed text styling to make the text white'
-                                                       }
-                                               },
-                                               {
-                                               time: 8000,
-                                               name: 'cue3',
-                                               parameters: {
-                                                       begin: 8000,
-                                                       end: 12000,
-                                                       text: '3rd caption using a small black font'
-                                                       }
-                                               },
-                                               
-                                       ]
-       },
-       plugins:  {
-
-               captions: {
-                       url: '@MAIN_PLAYER_SWF@',
-
-                       // the content plugin we use to show the captions
-                       captionTarget: 'content'
-               },
-
-               // configure a content plugin to look good for our purpose
-               content: {
-                       url:'../flowplayer.content.swf',
-                       top: 10,
-                       width: '80%',
-                       height:40,
-                       backgroundColor: 'transparent',
-                       backgroundGradient: 'none',
-                       border: 0,
-
-            // an outline is useful so that the subtitles are more visible
-            textDecoration: 'outline',
-                       style: {
-                           'body': {
-                               fontSize: '14',
-                               fontFamily: 'Arial',
-                               textAlign: 'center',
-                               color: '#ffffff'
-                           }
-                   }
-               }
-       }
-}).captions("div.items", {}); 
-</code></pre>
-</div>
-
-
-<br/><br/><b>Configuration:</b>
-<table class="listing">
-       <thead>
-               <tr>
-                       <th nowrap="nowrap">property / datatype</th>
-                       <th>default</th>
-                       <th>description</th>
-               </tr>
-       </thead>
-
-    <tr>
-        <td class="code">activeClass <div class="type">string</div></td>
-        <td class="code default"></td>
-        <td class="description">
-            The active selected item class.
-        </td>
-    </tr>
-    <tr>
-        <td class="code">template <div class="type">string</div></td>
-        <td class="code default"><img src="images/${time}.jpg"/></td>
-        <td class="description">
-               The template config to be used for generating the thumbnails. The fields of the cuepoints are used for the template like ${time}.
-               If the wrapper has the template set, it will be used instead of the template config.
-        </td>
-    </tr>
-    <tr>
-        <td class="code">fadeTime <div class="type">int</div></td>
-        <td class="code default">100</td>
-        <td class="description">
-                               The interval time for fading the wrapper in and out. Useful for hiding the wrapper if a template is set in it. 
-        </td>
-    </tr>
-</table>
-
-               </div>  
-       </div>
-</body>
-</html>
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/example/tools.scrollable-1.1.2.js b/typo3/contrib/flowplayer/flowplayer.captions/example/tools.scrollable-1.1.2.js
deleted file mode 100644 (file)
index 319357c..0000000
+++ /dev/null
@@ -1,445 +0,0 @@
-/**
- * tools.scrollable 1.1.2 - Scroll your HTML with eye candy.
- * 
- * Copyright (c) 2009 Tero Piirainen
- * http://flowplayer.org/tools/scrollable.html
- *
- * Dual licensed under MIT and GPL 2+ licenses
- * http://www.opensource.org/licenses
- *
- * Launch  : March 2008
- * Date: ${date}
- * Revision: ${revision} 
- */
-(function($) { 
-               
-       // static constructs
-       $.tools = $.tools || {};
-       
-       $.tools.scrollable = {
-               version: '1.1.2',
-               
-               conf: {
-                       
-                       // basics
-                       size: 5,
-                       vertical: false,
-                       speed: 400,
-                       keyboard: true,         
-                       
-                       // by default this is the same as size
-                       keyboardSteps: null, 
-                       
-                       // other
-                       disabledClass: 'disabled',
-                       hoverClass: null,               
-                       clickable: true,
-                       activeClass: 'active', 
-                       easing: 'swing',
-                       loop: false,
-                       
-                       items: '.items',
-                       item: null,
-                       
-                       // navigational elements                        
-                       prev: '.prev',
-                       next: '.next',
-                       prevPage: '.prevPage',
-                       nextPage: '.nextPage', 
-                       api: false
-                       
-                       // CALLBACKS: onBeforeSeek, onSeek, onReload
-               } 
-       };
-                               
-       var current;            
-       
-       // constructor
-       function Scrollable(root, conf) {   
-       
-               // current instance
-               var self = this, $self = $(this),
-                        horizontal = !conf.vertical,
-                        wrap = root.children(),
-                        index = 0,
-                        forward;  
-               
-               
-               if (!current) { current = self; }
-               
-               // bind all callbacks from configuration
-               $.each(conf, function(name, fn) {
-                       if ($.isFunction(fn)) { $self.bind(name, fn); }
-               });
-               
-
-               if (wrap.length > 1) { wrap = $(conf.items, root); }
-               
-               // navigational items can be anywhere when globalNav = true
-               function find(query) {
-                       var els = $(query);
-                       return conf.globalNav ? els : root.parent().find(query);        
-               }
-               
-               // to be used by plugins
-               root.data("finder", find);
-               
-               // get handle to navigational elements
-               var prev = find(conf.prev),
-                        next = find(conf.next),
-                        prevPage = find(conf.prevPage),
-                        nextPage = find(conf.nextPage);
-
-               
-               // methods
-               $.extend(self, {
-                       
-                       getIndex: function() {
-                               return index;   
-                       },
-                       
-                       getClickIndex: function() {
-                               var items = self.getItems(); 
-                               return items.index(items.filter("." + conf.activeClass));       
-                       },
-       
-                       getConf: function() {
-                               return conf;    
-                       },
-                       
-                       getSize: function() {
-                               return self.getItems().size();  
-                       },
-       
-                       getPageAmount: function() {
-                               return Math.ceil(this.getSize() / conf.size);   
-                       },
-                       
-                       getPageIndex: function() {
-                               return Math.ceil(index / conf.size);    
-                       },
-
-                       getNaviButtons: function() {
-                               return prev.add(next).add(prevPage).add(nextPage);      
-                       },
-                       
-                       getRoot: function() {
-                               return root;    
-                       },
-                       
-                       getItemWrap: function() {
-                               return wrap;    
-                       },
-                       
-                       getItems: function() {
-                               return wrap.children(conf.item);        
-                       },
-                       
-                       getVisibleItems: function() {
-                               return self.getItems().slice(index, index + conf.size); 
-                       },
-                       
-                       /* all seeking functions depend on this */              
-                       seekTo: function(i, time, fn) {
-
-                               if (i < 0) { i = 0; }                           
-                       
-                               
-                               // nothing happens
-                               if (index === i) { return self; }                               
-                               
-                               // function given as second argument
-                               if ($.isFunction(time)) {
-                                       fn = time;
-                               }
-
-                               // seeking exceeds the end                      
-                       
-                               if (i > self.getSize() - conf.size) { 
-                                       return conf.loop ? self.begin() : this.end(); 
-                               }               
-                               
-                               
-                               var item = self.getItems().eq(i);                                       
-                               if (!item.length) { return self; }                              
-                               
-                               // onBeforeSeek
-                               var e = $.Event("onBeforeSeek");
-
-                               $self.trigger(e, [i]);                  
-                               
-                               if (e.isDefaultPrevented()) { return self; }                            
-                               
-                               // get the (possibly altered) speed
-                               if (time === undefined || $.isFunction(time)) { time = conf.speed; }
-                               
-                               function callback() {
-                                       if (fn) { fn.call(self, i); }
-                                       $self.trigger("onSeek", [i]);
-                               }
-                               
-                               
-                               if (horizontal) {
-                                       wrap.animate({left: -item.position().left}, time, conf.easing, callback);                                       
-                               } else {
-                                       wrap.animate({top: -item.position().top}, time, conf.easing, callback);                                                 
-                               }
-                               
-                               
-                               current = self;
-                               index = i;                              
-                               
-                               // onStart
-                               e = $.Event("onStart");
-                               $self.trigger(e, [i]);                          
-                               if (e.isDefaultPrevented()) { return self; }                            
-       
-                               
-                               /* default behaviour */
-                               
-                               // prev/next buttons disabled flags
-                               prev.add(prevPage).toggleClass(conf.disabledClass, i === 0);
-                               next.add(nextPage).toggleClass(conf.disabledClass, i >= self.getSize() - conf.size);
-                               
-                               return self; 
-                       },                      
-                       
-                               
-                       move: function(offset, time, fn) {
-                               forward = offset > 0;
-                               return this.seekTo(index + offset, time, fn);
-                       },
-                       
-                       next: function(time, fn) {
-                               return this.move(1, time, fn);  
-                       },
-                       
-                       prev: function(time, fn) {
-                               return this.move(-1, time, fn); 
-                       },
-                       
-                       movePage: function(offset, time, fn) {
-                               forward = offset > 0;
-                               var steps = conf.size * offset;
-                               
-                               var i = index % conf.size;
-                               if (i > 0) {
-                                       steps += (offset > 0 ? -i : conf.size - i);
-                               }
-                               
-                               return this.move(steps, time, fn);              
-                       },
-                       
-                       prevPage: function(time, fn) {
-                               return this.movePage(-1, time, fn);
-                       },  
-       
-                       nextPage: function(time, fn) {
-                               return this.movePage(1, time, fn);
-                       },                      
-                       
-                       setPage: function(page, time, fn) {
-                               return this.seekTo(page * conf.size, time, fn);
-                       },                      
-                       
-                       begin: function(time, fn) {
-                               forward = false;
-                               return this.seekTo(0, time, fn);        
-                       },
-                       
-                       end: function(time, fn) {
-                               forward = true;
-                               var to = this.getSize() - conf.size;
-                               return to > 0 ? this.seekTo(to, time, fn) : self;       
-                       },
-                       
-                       reload: function() {                            
-                               $self.trigger("onReload");
-                               return self;
-                       },                      
-                       
-                       focus: function() {
-                               current = self;
-                               return self;
-                       },
-                       
-                       click: function(i) {
-       
-                               var item = self.getItems().eq(i), 
-                                        klass = conf.activeClass,
-                                        size = conf.size;                      
-                               
-                               // check that i is sane
-                               if (i < 0 || i >= self.getSize()) { return self; }
-                               
-                               // size == 1                                                    
-                               if (size == 1) {
-                                       if (conf.loop) { return self.next(); }
-                                       
-                                       if (i === 0 || i == self.getSize() -1)  { 
-                                               forward = (forward === undefined) ? true : !forward;     
-                                       }
-                                       return forward === false  ? self.prev() : self.next(); 
-                               } 
-                               
-                               // size == 2
-                               if (size == 2) {
-                                       if (i == index) { i--; }
-                                       self.getItems().removeClass(klass);
-                                       item.addClass(klass);                                   
-                                       return self.seekTo(i, time, fn);
-                               }                               
-                               
-                               if (!item.hasClass(klass)) {                            
-                                       self.getItems().removeClass(klass);
-                                       item.addClass(klass);
-                                       var delta = Math.floor(size / 2);
-                                       var to = i - delta;
-               
-                                       // next to last item must work
-                                       if (to > self.getSize() - size) { 
-                                               to = self.getSize() - size; 
-                                       }
-               
-                                       if (to !== i) {
-                                               return self.seekTo(to);         
-                                       }
-                               }
-                               
-                               return self;
-                       },
-                       
-                       // bind / unbind
-                       bind: function(name, fn) {
-                               $self.bind(name, fn);
-                               return self;    
-                       },      
-                       
-                       unbind: function(name) {
-                               $self.unbind(name);
-                               return self;    
-                       }                       
-                       
-               });
-               
-               // callbacks    
-               $.each("onBeforeSeek,onStart,onSeek,onReload".split(","), function(i, ev) {
-                       self[ev] = function(fn) {
-                               return self.bind(ev, fn);       
-                       };
-               });  
-                       
-                       
-               // prev button          
-               prev.addClass(conf.disabledClass).click(function() {
-                       self.prev(); 
-               });
-               
-
-               // next button
-               next.click(function() { 
-                       self.next(); 
-               });
-               
-               // prev page button
-               nextPage.click(function() { 
-                       self.nextPage(); 
-               });
-               
-               if (self.getSize() < conf.size) {
-                       next.add(nextPage).addClass(conf.disabledClass);        
-               }
-               
-
-               // next page button
-               prevPage.addClass(conf.disabledClass).click(function() { 
-                       self.prevPage(); 
-               });             
-               
-               
-               // hover
-               var hc = conf.hoverClass, keyId = "keydown." + Math.random().toString().substring(10); 
-                       
-               self.onReload(function() { 
-
-                       // hovering
-                       if (hc) {
-                               self.getItems().hover(function()  {
-                                       $(this).addClass(hc);           
-                               }, function() {
-                                       $(this).removeClass(hc);        
-                               });                                             
-                       }
-                       
-                       // clickable
-                       if (conf.clickable) {
-                               self.getItems().each(function(i) {
-                                       $(this).unbind("click.scrollable").bind("click.scrollable", function(e) {
-                                               if ($(e.target).is("a")) { return; }    
-                                               return self.click(i);
-                                       });
-                               });
-                       }                               
-                       
-                       // keyboard                     
-                       if (conf.keyboard) {                            
-                               
-                               // keyboard works on one instance at the time. thus we need to unbind first
-                               $(document).unbind(keyId).bind(keyId, function(evt) {
-
-                                       // do nothing with CTRL / ALT buttons
-                                       if (evt.altKey || evt.ctrlKey) { return; }
-                                       
-                                       // do nothing for unstatic and unfocused instances
-                                       if (conf.keyboard != 'static' && current != self) { return; }
-                                       
-                                       var s = conf.keyboardSteps;                             
-                                                                               
-                                       if (horizontal && (evt.keyCode == 37 || evt.keyCode == 39)) {                                   
-                                               self.move(evt.keyCode == 37 ? -s : s);
-                                               return evt.preventDefault();
-                                       }       
-                                       
-                                       if (!horizontal && (evt.keyCode == 38 || evt.keyCode == 40)) {
-                                               self.move(evt.keyCode == 38 ? -s : s);
-                                               return evt.preventDefault();
-                                       }
-                                       
-                                       return true;
-                                       
-                               });
-                               
-                       } else  {
-                               $(document).unbind(keyId);      
-                       }                               
-
-               });
-               
-               self.reload(); 
-               
-       } 
-
-               
-       // jQuery plugin implementation
-       $.fn.scrollable = function(conf) { 
-                       
-               // already constructed --> return API
-               var el = this.eq(typeof conf == 'number' ? conf : 0).data("scrollable");
-               if (el) { return el; }           
-               var globals = $.extend({}, $.tools.scrollable.conf);
-               conf = $.extend(globals, conf);
-               
-               conf.keyboardSteps = conf.keyboardSteps || conf.size;
-               
-               this.each(function() {                  
-                       el = new Scrollable($(this), conf);
-                       $(this).data("scrollable", el); 
-               });
-               
-               return conf.api ? el: this; 
-               
-       };
-                       
-       
-})(jQuery);
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/CCButton.as b/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/CCButton.as
deleted file mode 100644 (file)
index f077dd5..0000000
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * This file is part of Flowplayer, http://flowplayer.org
- *
- * By: Anssi Piirainen, <support@flowplayer.org>
- *Copyright (c) 2008-2011 Flowplayer Oy *
- * Released under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- */
-
-package org.flowplayer.captions {
-    import flash.display.Sprite;
-    import flash.events.MouseEvent;
-    import flash.text.TextField;
-
-    import org.flowplayer.view.AbstractSprite;
-    import org.flowplayer.view.Flowplayer;
-
-    public class CCButton extends AbstractSprite {
-        private var _text:TextField;
-        private var _background:Sprite;
-        private var _textColor:Number;
-        private var _label:String;
-
-        public function CCButton(player:Flowplayer, label:String) {
-            _label = label;
-                       _background = new Sprite();
-                       _background.buttonMode = true;
-                       addChild(_background);
-            createText(player);
-            
-            isDown = true;
-        }
-
-        protected override function onResize():void {
-            drawBackground();
-            _text.x = 2;
-            _text.y = 0;
-        }
-
-               public function get clickArea():Sprite
-               {
-                       return _background;
-               }
-
-        private function drawBackground():void {
-            _background.graphics.clear(),
-            _background.graphics.lineStyle(2, 0x555555);
-            _background.graphics.beginFill(0xaaaaaa, 1);
-            _background.graphics.drawRoundRect(0, 0, width, height, 6, 6);
-            _background.graphics.endFill();
-        }
-
-        private function createText(player:Flowplayer):void {
-            _text = player.createTextField(8, true);
-            _text.text = _label;
-            _text.textColor = _textColor;
-            addChild(_text);
-            _text.selectable = false;
-            _text.mouseEnabled = false;
-        }
-
-        public function set isDown(isDown:Boolean):void {
-            _textColor = isDown ? 0 : 0xff2222;
-            _text.textColor = _textColor;
-        }
-
-    }
-}
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/Caption.as b/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/Caption.as
deleted file mode 100644 (file)
index 2205d8d..0000000
+++ /dev/null
@@ -1,537 +0,0 @@
-/*
- * This file is part of Flowplayer, http://flowplayer.org
- *
- * By: Daniel Rossi, <electroteque@gmail.com>
- * Copyright (c) 2009 Electroteque Multimedia
- *
- * Copyright 2009 Joel Hulen, loading of captions files from URLs without a file extension
- *
- * Released under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- */
-package org.flowplayer.captions {
-    import flash.events.MouseEvent;
-    import flash.utils.*;
-
-    import org.flowplayer.captions.parsers.CaptionParser;
-    import org.flowplayer.captions.parsers.JSONParser;
-    import org.flowplayer.captions.parsers.SRTParser;
-    import org.flowplayer.captions.parsers.TTXTParser;
-    import org.flowplayer.controller.ResourceLoader;
-    import org.flowplayer.layout.LayoutEvent;
-    import org.flowplayer.model.Clip;
-    import org.flowplayer.model.ClipEvent;
-    import org.flowplayer.model.ClipEventType;
-    import org.flowplayer.model.DisplayPluginModel;
-    import org.flowplayer.model.PlayerEvent;
-    import org.flowplayer.model.Plugin;
-    import org.flowplayer.model.PluginModel;
-    import org.flowplayer.util.PropertyBinder;
-    import org.flowplayer.view.AbstractSprite;
-    import org.flowplayer.view.FlowStyleSheet;
-    import org.flowplayer.view.Flowplayer;
-    import org.flowplayer.view.Styleable;
-    import org.flowplayer.model.PlayerEventType;
-    
-    
-
-    /**
-     * A Subtitling and Captioning Plugin. Supports the following:
-     * <ul>
-     * <li>Loading subtitles from the Timed Text or Subrip format files.</li>
-     * <li>Styling text from styles set in the Time Text format files.</li>
-     * <li>Loading subtitles or cuepoints from a JSON config.</li>
-     * <li>Loading subtitles or cuepoints from embedded FLV cuepoints.</li>
-     * <li>Controls an external content plugin.</li>
-     * <li>Working with the Javascript captions plugin, it enables a scrolling cuepoint thumbnail menu.</li>
-     * </ul>
-     * <p>
-     * To setup an external subtitle caption file the config would look like so:
-     *
-     * captionType: 'external'
-     *
-     * For Timed Text
-     *
-     * captionUrl: 'timedtext.xml'
-     *
-     * For Subrip
-     *
-     * captionUrl: 'subrip.srt'
-     *
-     * <p>
-     * To enable the captioning to work properly a caption target must link to a content plugin like so:
-     *
-     * captionTarget: 'content'
-     *
-     * Where content is the config for a loaded content plugin.
-     *
-     * <p>
-     *
-     * To be able to customised the subtitle text a template string is able to tell the captioning plugin
-     * which text property is to be used for the subtitle text which is important for embedded cuepoints. It also
-     * enables to add extra properties to the text like so:
-     *
-     * template: '{text} {time} {custom}'
-     *
-     * <p>
-     * To enable simple formatting of text if Timed Text has style settings,
-     * only "fontStyle", "fontWeight" and "textAlign" properties are able to be set like so:
-     *
-     * simpleFormatting: true
-     *
-     * @author danielr, Anssi Piirainen (api@iki.fi)
-     */
-    public class Caption extends AbstractSprite implements Plugin, Styleable {
-        private var _player:Flowplayer;
-        private var _model:PluginModel;
-        private var _captionView:*;
-        private var _config:Config;
-        private var _styles:FlowStyleSheet;
-        private var _viewModel:DisplayPluginModel;
-        private var _template:String;
-        private var _button:CCButton;
-        private var _totalCaptions:int;
-        private var _numCaptionsLoaded:int;
-        private var _initialized:Boolean;
-
-        private var _currentCaption:Object;
-        private var _captionHeightRatio:Number;
-        private var _captionWidthRatio:Number;
-        private var _captionFontSizes:Object;
-
-               private var _captionViewWidth:int = 0;
-
-        /**
-         * Sets the plugin model. This gets called before the plugin
-         * has been added to the display list and before the player is set.
-         * @param plugin
-         */
-        public function onConfig(plugin:PluginModel):void {
-
-            _model = plugin;
-            _config = new PropertyBinder(new Config(), null).copyProperties(plugin.config) as Config;
-           
-        }
-
-        
-        public function hasCaptions():Boolean {
-            var clips:Array = _player.playlist.clips;
-            for (var i:Number = 0; i < clips.length; i++) {
-                var clip:Clip = clips[i] as Clip;
-                if (clip.customProperties && (clip.getCustomProperty("captions") || clip.getCustomProperty("captionUrl"))) {
-                    return true;
-                }
-            }
-            return false;
-
-        }
-
-        /**
-         * Sets the Flowplayer interface. The interface is immediately ready to use, all
-         * other plugins have been loaded an initialized also.
-         * @param player
-         */
-        public function onLoad(player:Flowplayer):void {
-            log.debug("onLoad");
-            _initialized = false;
-            _player = player;
-            _player.playlist.onCuepoint(onCuepoint);
-
-                       _player.playlist.commonClip.onNetStreamEvent(onNetStreamCaption);
-
-            if (! _config.captionTarget) {
-                throw Error("No captionTarget defined in the configuration");
-            }
-            _viewModel = _player.pluginRegistry.getPlugin(_config.captionTarget) as DisplayPluginModel;
-            _captionView = _viewModel.getDisplayObject();
-                       
-            _player.onLoad(onPlayerInitialized);
-
-            if (hasCaptions()) {
-               loadClipCaptions();
-            } else {
-                _model.dispatchOnLoad();
-            }
-        }
-
-        private function initializeRatios():void {
-            _captionHeightRatio = _captionView.height / _player.screen.getDisplayObject().height;
-            _captionWidthRatio = _captionView.width / _player.screen.getDisplayObject().width;
-        }
-
-        private function onPlayerInitialized(event:PlayerEvent):void {
-            initCaptionView();
-
-            log.debug("button", _config.button);
-            if (_config.button) {
-                _button = new CCButton(_player, _config.button["label"]);
-                _player.addToPanel(_button, _config.button);
-
-                _button.isDown = _viewModel.visible;
-                _button.clickArea.addEventListener(MouseEvent.CLICK, function(event:MouseEvent):void {
-                    _button.isDown = _player.togglePlugin(_config.captionTarget);
-                });
-            }
-
-            if (_viewModel.visible)
-                initializeRatios();
-            else
-            {
-                _captionView.alpha = 0;
-                _player.togglePlugin(_config.captionTarget);
-                initializeRatios();
-                _player.togglePlugin(_config.captionTarget);
-                _captionView.alpha = 1;
-            }
-
-            _player.playlist.onPause(function(event:ClipEvent):void {
-                if (_currentCaption != null)
-                    clearInterval(_currentCaption.captionInterval);
-            });
-
-            _player.playlist.onResume(function(event:ClipEvent):void {
-                if (_currentCaption != null)
-                {
-                    var newDuration:Number = _currentCaption.endTime - _player.status.time;
-                    if (newDuration > 0)
-                        _currentCaption.captionInterval = setInterval(clearCaption, newDuration);
-                }
-            });
-
-            _player.playlist.onStop(function(event:ClipEvent):void {
-                clearCaption();
-            });
-            _player.playlist.onSeek(function(event:ClipEvent):void {
-                clearCaption();
-            });
-
-                       _player.onBeforeFullscreen(function(event:PlayerEvent):void {
-                               _captionViewWidth = _captionView.width;
-                       });
-            _player.onFullscreen(resizeCaptionView);
-            _player.onFullscreenExit(resizeCaptionView);
-
-
-        }
-
-        private function resizeCaptionView(event:PlayerEvent):void
-        {
-            var newWidth:Number = _player.screen.getDisplayObject().width * _captionWidthRatio;
-            var newHeight:Number = _player.screen.getDisplayObject().height * _captionHeightRatio;
-
-               //      log.info("resizing, width:" +_player.screen.getDisplayObject().width + " * "+_captionWidthRatio+" = "+ newWidth);
-               //      log.info("resizing, width:" +_player.screen.getDisplayObject().height + " * "+_captionHeightRatio+" = "+ newHeight);
-
-            if (event.type == (PlayerEventType.FULLSCREEN).name)
-            {
-                _captionFontSizes = {};
-                var styleNames:Array = _captionView.style.styleSheet.styleNames;
-                for (var i:int = 0; i < styleNames.length; i++)
-                {
-                    if (_captionView.style.getStyle(styleNames[i]).fontSize)
-                    {
-                        var style:Object = _captionView.style.getStyle(styleNames[i]);
-
-                        _captionFontSizes[styleNames[i]] = style.fontSize;
-
-                                       //      log.info ("current font size "+style.fontSize+", ratio "+ newWidth+"/"+_captionView.width+" = "+(newWidth / _captionViewWidth));
-                        style.fontSize = style.fontSize * newWidth / _captionViewWidth;
-                        _captionView.style.setStyle(styleNames[i], style);
-                    }
-                }
-            }
-            else
-            {    // setting back fontsizes ..
-                for (var styleName:String in _captionFontSizes)
-                {
-                    style = _captionView.style.getStyle(styleName);
-                    style.fontSize = _captionFontSizes[styleName];
-                    _captionView.style.setStyle(styleName, style);
-                }
-            }
-
-            var newY:Number = _captionView.y;
-            if (newY > _player.screen.getDisplayObject().height / 2)
-                newY = _captionView.y - (newHeight - _captionView.height);
-
-            var newX:Number = _captionView.x - (newWidth - _captionView.width);
-
-            _player.css(_config.captionTarget, {y: newY, x: newX, height: newHeight, width: newWidth});
-        }
-
-        private function onPlayerResized(event:LayoutEvent):void {
-            log.debug("onPlayerResized");
-            _button.x = _captionView.x + _captionView.width + 3;
-            _button.y = _captionView.y;
-        }
-
-        
-        private function loadClipCaptions():void {
-            // count files
-            iterateCaptions(function (clip:Clip):void {
-                _totalCaptions++;
-            });
-            // load files
-            iterateCaptions(function(clip:Clip):void {
-               if (clip.getCustomProperty("captions")) {
-                       loadCaption(clip, clip.getCustomProperty("captions") as Array);
-               } else {
-                       loadCaptionFile(clip, clip.getCustomProperty("captionUrl") as String);
-               }
-            });
-        }
-        
-               
-               private function iterateCaptions(callback:Function):void {
-            var clips:Array = _player.playlist.clips;
-            for (var i:Number = 0; i < clips.length; i++) {
-                var clip:Clip = _player.playlist.clips[i] as Clip;
-                var captions:Array = clip.customProperties ? clip.getCustomProperty("captions") as Array : null;
-                if (clip.getCustomProperty("captions") || clip.getCustomProperty("captionUrl")) {
-                    callback(clip);
-                }
-            }
-        }
-
-        /**
-         * Loads a new stylesheet and changes the style from the loaded sheet.
-         * @param clipIndex
-         * @param captionURL the URL to load the caption file from
-         * @param fileExtension optional file extension to be used if captionURL does not use an extension, one of
-         * 'xml', 'srt', 'tx3g', 'qtxt'
-         */
-        [External]
-        public function loadCaptions(clipIndex:int, captionsUrl:String = null):void {
-            if (! captionsUrl) return;
-            log.info("loading captions from " + captionsUrl);
-            loadCaptionFile(_player.playlist.clips[clipIndex], captionsUrl);
-        }
-        
-        [External]
-        public function addCaptions(clipIndex:int, captions:Array):void {
-            if (! captions) return;
-            log.info("loading captions from " + captions);
-            loadCaption(_player.playlist.clips[clipIndex], captions);
-        }
-
-        /**
-         * Sets style properties.
-         */
-        public function css(styleProps:Object = null):Object {
-            var result:Object = _captionView.css(styleProps);
-            return result;
-        }
-        
-        protected function loadCaption(clip:Clip, captions:Array):void {
-               parseCuePoints(clip, captions);
-            _numCaptionsLoaded++;
-            log.debug(_numCaptionsLoaded + " clip captions out of " + _totalCaptions + " loaded");
-            if (_numCaptionsLoaded == _totalCaptions && ! _initialized) {
-               log.debug("all caption files loaded, dispatching onLoad()");
-                _initialized = true;
-                _model.dispatchOnLoad();
-            }
-        }
-
-        /**
-         * Joel Hulen - April 20, 2009
-         * Modified loadCaptionFile to add the fileExtension parameter.
-         */
-        protected function loadCaptionFile(clip:Clip, captionFile:String = null):void {
-            var loader:ResourceLoader = _player.createLoader();
-
-            if (captionFile) {
-                log.info("loading captions from file " + captionFile);
-                loader.addTextResourceUrl(captionFile);
-            }
-
-            loader.load(null, function(loader:ResourceLoader):void {
-                parseCuePoints(clip, loader.getContent(captionFile));
-
-                _numCaptionsLoaded++;
-                log.debug(_numCaptionsLoaded + " captions files out of " + _totalCaptions + " loaded");
-                if (_numCaptionsLoaded == _totalCaptions && ! _initialized) {
-                    log.debug("all captions loaded, dispatching onLoad()");
-                    _initialized = true;
-                    _model.dispatchOnLoad();
-                }
-            });
-        }
-
-        protected function parseCuePoints(clip:Clip, captionData:*):void
-        {
-            log.debug("captions file loaded, parsing cuepoints");
-            var parser:CaptionParser = createParser(captionData);
-
-            // remove all existing cuepoints
-            clip.removeCuepoints(function(cue:Object):Boolean {
-                return cue.hasOwnProperty("__caption");
-            });
-
-            try {
-               clip.addCuepoints(parser.parse(captionData));
-                //clip.addCuepoints(parser.parse(_captions.length > 0 ? _captions : captionData));
-            } catch (e:Error) {
-                log.error("parseCuePoints():" + e.message);
-            }
-            _captionView.style = parser.styles;
-        }
-
-        private function createParser(captionData:Object):CaptionParser {
-               var parser:CaptionParser;
-               
-               if (new XML(captionData).localName() == "tt") {
-                    log.debug("parsing Timed Text captions");
-                    parser = new TTXTParser();
-                    TTXTParser(parser).simpleFormatting = _config.simpleFormatting;
-                } else if (String(captionData).charAt(0) == "1") {
-                    log.debug("parsing SubRip captions");
-                    parser = new SRTParser();
-               } else if (captionData is Array || captionData.toString().indexOf('[')) {
-                       parser = new JSONParser();
-                } else {
-                    throw new Error("Unrecognized captions file extension");
-                }
-            parser.styles = _captionView.style;
-            return parser;
-        }
-
-
-        protected function parseTemplate(values:Object):String
-        {
-            for (var key:String in values) {
-
-                if (typeof values[key] == 'object')
-                {
-                    parseTemplate(values[key]);
-                } else {
-                    _template = _template.replace("{" + key + "}", values[key]);
-                }
-            }
-
-            if (values.time >= 0) {
-                _template = _template.replace("{time}", values.time);
-            }
-
-            return _template;
-        }
-
-        protected function clearCaption(clearHTML:Boolean = true):void
-        {
-            if (_currentCaption == null) return;
-
-            clearInterval(_currentCaption.captionInterval);
-            _currentCaption = null;
-
-            if (clearHTML)
-                _captionView.html = "";
-        }
-
-               protected function captionsDisabledForClip(clip:Clip):Boolean {
-                       return clip.customProperties && clip.customProperties.hasOwnProperty("showCaptions") && ! clip.customProperties["showCaptions"];
-               }
-
-               protected function onNetStreamCaption(event:ClipEvent):void {
-                       if ( event.info != "onTextData" )
-                               return;
-
-                       var clip:Clip = event.target as Clip;
-                       var data:Object = event.info2;
-                       var text:String = data['text'];
-                       
-                       if ( captionsDisabledForClip(clip) )
-                               return;
-                       
-                       if ( ! data.hasOwnProperty('text') )
-                               return;
-
-            if (clip.customProperties && clip.customProperties.hasOwnProperty("captionsTrackFilter")) {
-                               var captionsTrackFilter:String = clip.customProperties['captionsTrackFilter'];
-                               var filterKey:String = captionsTrackFilter.substr(0, captionsTrackFilter.indexOf('='));
-                               var filterValue:String = captionsTrackFilter.substr(captionsTrackFilter.indexOf('=')+1);
-                               
-                               if ( data.hasOwnProperty(filterKey) && (data[filterKey]+"") != filterValue ) {
-                                       log.debug("Skipping "+ text + ", "+filterKey+" filtered out : "+(data[filterKey]+"")+" != "+filterValue);
-                                       return;
-                               }
-                       }
-
-                       text = text.replace(/\n/, '<br>');
-
-            _captionView.html = "<p>" + text + "</p>";
-                       
-               }
-
-        protected function onCuepoint(event:ClipEvent):void {
-            log.debug("onCuepoint", event.info.parameters);
-
-            var clip:Clip = event.target as Clip;
-            if ( captionsDisabledForClip(clip) )
-                               return;
-                               
-            if (clip.customProperties && clip.customProperties.hasOwnProperty("captionUrl")) {
-                var cue:Object = event.info;
-                if (! cue.hasOwnProperty("captionType") || cue["captionType"] != "external") {
-                    // we are using a captions file and this cuepoint is not from the file
-                    return;
-                }
-            }
-
-            clearCaption(false);
-
-            _template = _config.template;
-            var bgColor:String = (_captionView.style.getStyle("." + event.info.parameters.style).backgroundColor ? _captionView.style.getStyle("." + event.info.parameters.style).backgroundColor
-                    : _captionView.style.rootStyle.backgroundColor);
-
-            _captionView.css({backgroundColor: bgColor});
-            var text:String = (_template ? parseTemplate(event.info) : event.info.parameters.text);
-            text = text.replace(/\n/, '<br>');
-
-            _captionView.html = "<p class='" + event.info.parameters.style + "'>" + text + "</p>";
-            if (Number(event.info.parameters.end) > 0)
-            {
-                _currentCaption = {
-                    captionInterval: setInterval(clearCaption, Number(event.info.parameters.end)),
-                    beginTime: _player.status.time,
-                    endTime: _player.status.time + Number(event.info.parameters.end)
-                };
-            }
-        }
-
-        protected function initCaptionView():void {
-            log.debug("creating content view");
-            if (_config.captionTarget)
-            {
-                log.info("Loading caption target plugin: " + _config.captionTarget);
-
-                if (_config.autoLayout)
-                {
-                    _captionView.css(getDefaultConfig());
-                }
-            } else {
-                throw new Error("No caption target specified, please configure a Content plugin instance to be used as target");
-            }
-        }
-
-
-        public override function set alpha(value:Number):void {
-            super.alpha = value;
-            if (!_captionView) return;
-            _captionView.alpha = value;
-        }
-
-        public function getDefaultConfig():Object {
-            return { bottom: 25, width: '80%'};
-        }
-
-        public function animate(styleProps:Object):Object {
-            return _captionView.animate(styleProps);
-        }
-
-        public function onBeforeCss(styleProps:Object = null):void {
-        }
-
-        public function onBeforeAnimate(styleProps:Object):void {
-        }
-    }
-}
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/CaptionFileTypes.as b/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/CaptionFileTypes.as
deleted file mode 100644 (file)
index 9dcd736..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * This file is part of Flowplayer, http://flowplayer.org
- *
- * By: Daniel Rossi, <electroteque@gmail.com>
- * Copyright (c) 2009 Electroteque Multimedia
- *
- * Released under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- */
-
-package org.flowplayer.captions
-{
-    public class CaptionFileTypes
-    {
-        public static var TTXT:String = "xml";
-        public static var SRT:String = "srt";
-        public static var TX3G:String = "tx3g";
-        public static var QTXT:String = "qtxt";
-
-
-        public function CaptionFileTypes()
-        {
-        }
-
-    }
-}
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/CaptionSourceTypes.as b/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/CaptionSourceTypes.as
deleted file mode 100644 (file)
index 4be688c..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * This file is part of Flowplayer, http://flowplayer.org
- *
- * By: Daniel Rossi, <electroteque@gmail.com>
- * Copyright (c) 2009 Electroteque Multimedia
- *
- * Released under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- */
-package org.flowplayer.captions
-{
-    public class CaptionSourceTypes
-    {
-        public static var EMBEDDED:String = "embedded";
-        public static var EXTERNAL:String = "external";
-
-        public function CaptionSourceTypes()
-        {
-        }
-
-    }
-}
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/Config.as b/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/Config.as
deleted file mode 100644 (file)
index 0d8cd00..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-/*
- * This file is part of Flowplayer, http://flowplayer.org
- *
- * By: Daniel Rossi, <electroteque@gmail.com>
- * Copyright (c) 2009 Electroteque Multimedia
- *
- * Released under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- */
-
-package org.flowplayer.captions
-{
-    import org.flowplayer.model.DisplayProperties;
-    import org.flowplayer.model.DisplayPropertiesImpl;
-    import org.flowplayer.util.Arrange;
-
-    public class Config {
-        private var _autoLayout:Boolean = true;
-        private var _simpleFormatting:Boolean = false;
-        private var _captionTarget:String;
-        private var _template:String;
-        private static const BUTTON_DEFAULTS:Object = { width: 20, height: 15, right: 5, bottom: 35, name: "cc_button", label: 'CC' };
-        private var _button:Object = BUTTON_DEFAULTS;
-
-
-        public function get captionTarget():String {
-            return _captionTarget;
-        }
-
-        public function set captionTarget(captionTarget:String):void {
-            _captionTarget = captionTarget;
-        }
-
-        public function get template():String {
-            return _template;
-        }
-
-        public function set template(template:String):void {
-            _template = template;
-        }
-
-        public function get autoLayout():Boolean {
-            return _autoLayout;
-        }
-
-        public function set autoLayout(autoLayout:Boolean):void {
-            _autoLayout = autoLayout;
-        }
-
-        public function get simpleFormatting():Boolean {
-            return _simpleFormatting;
-        }
-
-        public function set simpleFormatting(simpleFormatting:Boolean):void {
-            _simpleFormatting = simpleFormatting;
-        }
-
-        public function get button():Object {
-            return _button;
-        }
-
-        public function set button(val:Object):void {
-            if (! val) {
-                _button = null;
-                return;
-            }
-            fixPositionSettings(val, BUTTON_DEFAULTS);
-            _button = BUTTON_DEFAULTS;
-            for (var prop:String in val) {
-                _button[prop] = val[prop];
-            }
-        }
-
-        private function fixPositionSettings(props:Object, defaults:Object):void {
-            clearOpposite("bottom", "top", props, defaults);
-            clearOpposite("left", "right", props, defaults);
-        }
-
-        private function clearOpposite(prop1:String, prop2:String, props:Object, defaults:Object):void {
-            if (props.hasOwnProperty(prop1) && defaults.hasOwnProperty(prop2)) {
-                delete defaults[prop2];
-            } else if (props.hasOwnProperty(prop2) && defaults.hasOwnProperty(prop1)) {
-                delete defaults[prop1];
-            }
-        }
-
-    }
-}
-
-
-
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/NumberFormatter.as b/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/NumberFormatter.as
deleted file mode 100644 (file)
index 27308b1..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/*
- * This file is part of Flowplayer, http://flowplayer.org
- *
- * Time formatter thanks to the JW Player Project
- *
- * By: Daniel Rossi, <electroteque@gmail.com>
- * Copyright (c) 2009 Electroteque Multimedia
- *
- * Released under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php 
- */
-
-package org.flowplayer.captions {
-
-    public class NumberFormatter {
-
-        public static function seconds(str:String, timeMultiplier:Number = 1000):Number {
-            return Math.round(toSeconds(str) * timeMultiplier / 100) * 100;
-        }
-
-        private static function toSeconds(str:String):Number {
-            str = str.replace(",", ".");
-            var arr:Array = str.split(':');
-            var sec:Number = 0;
-            if (str.substr(-1) == 's') {
-                return Number(str.substr(0, str.length - 1));
-            }
-            if (str.substr(-1) == 'm') {
-                return Number(str.substr(0, str.length - 1)) * 60;
-            }
-            if (str.substr(-1) == 'h') {
-                return Number(str.substr(0, str.length - 1)) * 3600;
-            }
-            if (arr.length > 1) {
-                sec = Number(arr[arr.length - 1]);
-                sec += Number(arr[arr.length - 2]) * 60;
-                if (arr.length == 3) {
-                    sec += Number(arr[arr.length - 3]) * 3600;
-                }
-                return sec;
-            }
-            return Number(str);
-        }
-    }
-}
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/AbstractCaptionParser.as b/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/AbstractCaptionParser.as
deleted file mode 100644 (file)
index ae93764..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * This file is part of Flowplayer, http://flowplayer.org
- *
- * By: Anssi Piirainen, Flowplayer Oy
- * Copyright (c) 2009-2011 Flowplayer Oy
- *
- * Released under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- */
-package org.flowplayer.captions.parsers {
-    import org.flowplayer.view.FlowStyleSheet;
-    import org.flowplayer.view.FlowStyleSheet;
-
-    public class AbstractCaptionParser implements CaptionParser {
-        private var _styles:FlowStyleSheet;
-
-        public final function parse(data:Object):Array {
-            var captions:Array = parseCaptions(data);
-            for (var i:int = 0; i < captions.length; i++) {
-                captions[i]["__caption"] = true;
-            }
-            return captions;
-        }
-
-        protected function parseCaptions(data:Object):Array {
-            return null;
-        }
-
-        public function get styles():FlowStyleSheet {
-            return _styles;
-        }
-
-        public function set styles(value:FlowStyleSheet):void {
-            _styles = value;
-        }
-    }
-
-}
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/CaptionParser.as b/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/CaptionParser.as
deleted file mode 100644 (file)
index d243a31..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-/*
- * This file is part of Flowplayer, http://flowplayer.org
- *
- * By: Anssi Piirainen, Flowplayer Oy
- * Copyright (c) 2009-2011 Flowplayer Oy
- *
- * Released under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- */
-package org.flowplayer.captions.parsers {
-    import org.flowplayer.view.FlowStyleSheet;
-
-    public interface CaptionParser {
-
-        function parse(data:Object):Array;
-
-        function set styles(style:FlowStyleSheet):void;
-
-        function get styles():FlowStyleSheet;
-
-    }
-}
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/JSONParser.as b/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/JSONParser.as
deleted file mode 100644 (file)
index 044d41b..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * This file is part of Flowplayer, http://flowplayer.org
- *
- * By: Daniel Rossi, <electroteque@gmail.com>
- * Copyright (c) 2009 Electroteque Multimedia
- *
- * Released under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- */
-package org.flowplayer.captions.parsers
-{
-    import org.flowplayer.model.Cuepoint;
-    import org.flowplayer.util.Log;
-    import org.flowplayer.config.ConfigParser;
-    import org.flowplayer.flow_internal;
-    import org.flowplayer.view.FlowStyleSheet;
-       
-       use namespace flow_internal;
-       
-    public class JSONParser extends AbstractCaptionParser
-    {
-
-        protected var log:Log = new Log(this);
-        private var _arr:Array = new Array();
-        private var cueRow:int = 0;
-
-        private function parseRows(item:*, index:int, array:Array):void
-        {
-
-            var time:int = Number(item.time);
-            var cue:Object = Cuepoint.createDynamic(time, "embedded"); // creates a dynamic
-            var parameters:Object = new Object();
-            var name:String = (item.name ? item.name : "cue" + cueRow);
-            cue.time = time;
-            cue.name = name;
-            cue.type = "event";
-
-            if (item.parameters)
-            {
-
-                for (var param:String in item.parameters)
-                {
-                    parameters[param] = item.parameters[param];
-                }
-            }
-
-            parameters.style = styles.rootStyleName;
-            parameters.begin = item.parameters.begin;
-            parameters.end = item.parameters.end - item.parameters.begin;
-            cue.parameters = parameters;
-            _arr.push(cue);
-            cueRow++;
-        }
-
-        override protected function parseCaptions(data:Object):Array {
-               
-               if (!data is Array) data = ConfigParser.parse(String(data));
-            (data as Array).forEach(parseRows);
-            return _arr;
-        }
-    }
-}
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/SRTParser.as b/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/SRTParser.as
deleted file mode 100644 (file)
index 4868303..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * This file is part of Flowplayer, http://flowplayer.org
- *
- * Subrip Parsing thanks to the as3subtitle Project http://code.google.com/p/as3subtitle/
- *
- * By: Daniel Rossi, <electroteque@gmail.com>
- * Copyright (c) 2009 Electroteque Multimedia
- *
- * Released under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- */
-
-package org.flowplayer.captions.parsers
-{
-    import org.flowplayer.captions.NumberFormatter;
-    import org.flowplayer.model.Cuepoint;
-    import org.flowplayer.util.Log;
-    import org.flowplayer.view.FlowStyleSheet;
-    import org.flowplayer.view.FlowStyleSheet;
-
-    public class SRTParser extends AbstractCaptionParser
-    {
-
-        protected var log:Log = new Log(this);
-        private var _arr:Array = new Array();
-        private var cueRow:int = 0;
-
-        private function parseRows(item:*, index:int, array:Array):void
-        {
-            if (!item) return;
-            log.debug("parsing " + item);
-            var rows:Array = item.split(/\r?\n/);
-            var time_pattern:RegExp = /(\d{2}:\d{2}:\d{2}(?:,\d*)?) --> (\d{2}:\d{2}:\d{2}(?:,\d*)?)/;
-            var hasValidTime:Boolean = time_pattern.test(rows[1]);
-
-            if (!hasValidTime) {
-                log.error("Invalid time format for #" + (rows[0]) + item);
-                return;
-            }
-
-            var time:Array = time_pattern.exec(rows[1]);
-            var text:String = rows.slice(2, rows.length).join("\n");
-            var begin:Number = NumberFormatter.seconds(time[1]);
-            var end:Number = (NumberFormatter.seconds(time[2]) - begin);
-            log.debug("" + end);
-            var name:String = (rows[0] ? rows[0] : "cue" + cueRow);
-            var parameters:Object = new Object();
-
-            var cue:Object = Cuepoint.createDynamic(begin, "embedded"); // creates a dynamic
-            cue.captionType = "external";
-            cue.time = begin;
-            cue.name = name;
-            cue.type = "event";
-            parameters.begin = begin;
-            parameters.end = end;
-            parameters.style = styles.rootStyleName;
-            parameters.text = text;
-            cue.parameters = parameters;
-            _arr.push(cue);
-            cueRow++;
-        }
-
-        override protected function parseCaptions(data:Object):Array {
-            log.debug("parseCaptions");
-            var line_break:RegExp = /\n\r?\n/;
-            var subtitles:Array = String(data).split(line_break);
-            subtitles.forEach(parseRows);
-            return _arr;
-        }
-    }
-}
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/TTXTParser.as b/typo3/contrib/flowplayer/flowplayer.captions/src/actionscript/org/flowplayer/captions/parsers/TTXTParser.as
deleted file mode 100644 (file)
index 7b79848..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-/*
- * This file is part of Flowplayer, http://flowplayer.org
- *
- * By: Daniel Rossi, <electroteque@gmail.com>
- * Copyright (c) 2009 Electroteque Multimedia
- *
- * Released under the MIT License:
- * http://www.opensource.org/licenses/mit-license.php
- */
-
-package org.flowplayer.captions.parsers
-{
-    import org.flowplayer.captions.NumberFormatter;
-    import org.flowplayer.model.Cuepoint;
-    import org.flowplayer.util.Log;
-    import org.flowplayer.view.FlowStyleSheet;
-
-    public class TTXTParser extends AbstractCaptionParser
-    {
-        private var tt:Namespace = new Namespace("http://www.w3.org/2006/10/ttaf1");
-        private var tts:Namespace = new Namespace("http://www.w3.org/2006/04/ttaf1#styling");
-        private var ttm:Namespace = new Namespace("http://www.w3.org/2006/10/ttaf1#metadata");
-
-        private var bodyStyle:String;
-        private var _simpleFormatting:Boolean = false;
-        private var cueRow:int = 0;
-        internal static const SIMPLE_FORMATTING_PROPS:Array = ["fontStyle", "fontWeight", "textAlign"];
-
-        protected var log:Log = new Log(this);
-
-        public function TTXTParser()
-        {
-        default xml namespace = tt
-            ;
-        }
-
-        public function get simpleFormatting():Boolean {
-            return _simpleFormatting;
-        }
-
-        public function set simpleFormatting(simpleFormatting:Boolean):void {
-            _simpleFormatting = simpleFormatting;
-        }
-
-        private function getStyleObj(style:String):Object
-        {
-            return styles.getStyle("." + style);
-        }
-
-
-        override protected function parseCaptions(data:Object):Array {
-            var xml:XML = new XML(data);
-            log.debug("got data " + xml);
-            log.debug("body " + xml.body);
-            log.debug("div " + xml.body.div);
-            parseStyles(xml.head.styling.style);
-            bodyStyle = xml.body.hasOwnProperty("@style") ? xml.body.@style : styles.rootStyleName;
-
-            var arr:Array = new Array();
-            var i:int = 0;
-
-            var div:XMLList = xml.body.div;
-            for each (var property:XML in div)
-            {
-                log.debug("found div");
-                var divStyle:String = property.hasOwnProperty("@style") ? property.@style : bodyStyle;
-                var parent:XML = div.parent().parent();
-                var lang:String = property.hasOwnProperty("@lang") ? property.@*::lang : parent.@*::lang;
-                var begin:Number;
-                var end:Number;
-
-                if (property.hasOwnProperty("@begin"))
-                {
-                    begin = NumberFormatter.seconds(property.@begin);
-                    end = property.hasOwnProperty("@dur") ? NumberFormatter.seconds(property.@dur) : NumberFormatter.seconds(property.@end) - begin;
-                }
-
-                for each (var p:XML in property.p)
-                {
-                    log.debug("found paragraph (p tag)");
-                    var time:int = begin ? begin : NumberFormatter.seconds(p.@begin);
-                    var cue:Object = Cuepoint.createDynamic(time, "embedded");
-                    var parameters:Object = new Object();
-                    var pStyle:String = getStyleObj(p.@style).hasOwnProperty("color") ? p.@style : divStyle;
-                    var endTime:int = end ? end : (p.hasOwnProperty("@dur") ? NumberFormatter.seconds(p.@dur) : NumberFormatter.seconds(p.@end) - time);
-                    var name:String = p.hasOwnProperty("@id") ? p.@*::id : (property.hasOwnProperty("@id") ? property.@*::id : "cue" + cueRow);
-
-                    cue.captionType = "external";
-                    cue.time = time;
-
-                    cue.name = name;
-                    cue.type = "event";
-                    parameters.begin = time;
-                    parameters.end = endTime;
-                    parameters.lang = lang;
-                    parameters.style = pStyle;
-
-                    var content:String = "";
-                    for each (var child:XML in p.children()) {
-                        if (child.localName() == "br") {
-                            content += "<br/>";
-                        } else {
-                            content += child.toString();
-                        }
-                    }
-
-                    parameters.text = content;
-                    cue.parameters = parameters;
-                    arr.push(cue);
-                    log.debug("added cuepoint " + cue + " with text " + parameters.text);
-                    cueRow++;
-                }
-
-            }
-
-            return arr;
-        }
-
-
-        public function parseStyles(style:XMLList):FlowStyleSheet
-        {
-
-            for each (var styleProperty:XML in style)
-            {
-                var styleObj:Object = styleProperty.hasOwnProperty("@style")
-                        ? styles.getStyle("." + styleProperty.@style)
-                        : {};
-
-                for each (var attr:XML in styleProperty.@*)
-                {
-                    var name:String = attr.name().localName;
-                    log.debug("style name " + name + ": " + SIMPLE_FORMATTING_PROPS.indexOf(name));
-                    if (! _simpleFormatting || SIMPLE_FORMATTING_PROPS.indexOf(name) >= 0) {
-                        log.debug("applied style " + name + " to value " + attr);
-                        styleObj[name] = attr;
-                    }
-                }
-
-                styles.setStyle("." + styleProperty.@id, styleObj);
-            }
-            return styles;
-        }
-
-    }
-}
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/flash/closebutton.fla b/typo3/contrib/flowplayer/flowplayer.captions/src/flash/closebutton.fla
deleted file mode 100644 (file)
index 6f9d755..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/src/flash/closebutton.fla and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/flash/closebutton.swc b/typo3/contrib/flowplayer/flowplayer.captions/src/flash/closebutton.swc
deleted file mode 100644 (file)
index ad0c441..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/src/flash/closebutton.swc and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.captions/src/flash/closebutton.swf b/typo3/contrib/flowplayer/flowplayer.captions/src/flash/closebutton.swf
deleted file mode 100644 (file)
index 4ee488f..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.captions/src/flash/closebutton.swf and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.content-3.2.0.swf b/typo3/contrib/flowplayer/flowplayer.content-3.2.0.swf
deleted file mode 100644 (file)
index 33498f4..0000000
Binary files a/typo3/contrib/flowplayer/flowplayer.content-3.2.0.swf and /dev/null differ
diff --git a/typo3/contrib/flowplayer/flowplayer.content/LICENSE.txt b/typo3/contrib/flowplayer/flowplayer.content/LICENSE.txt
deleted file mode 100644 (file)
index bab38cb..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License
-
-Copyright (c) 2008, 2009 Flowplayer Oy
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/typo3/contrib/flowplayer/flowplayer.content/README.txt b/typo3/contrib/flowplayer/flowplayer.content/README.txt
deleted file mode 100644 (file)
index 54fe9ef..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-Version history:
-
-3.2.0
------
-- Added new added onBeforeCss() and onBeforeAnimate() callback functions, that are now part of the Styleable interface.
-
-3.1.0
------
-Changes:
-- added public get and set functions for accessing the content view style property
-- supports outlining the text with a black outline (using the flash glow filter), this is enabled using
-  textDecoration: 'outline'
-
-3.0.1
------
-- dispatches the LOAD event when initialized (needed for flowplayer 3.0.2 compatibility)
-
-3.0.0
------
-- 3.0.0-final release
-
-beta3
------
-- does not change the text format initialized by the player
-
-beta2
------
-- no changes, just practicing plugin versioning
-
-beta1
------
-- First public beta release
diff --git a/typo3/contrib/flowplayer/flowplayer.content/build.properties b/typo3/contrib/flowplayer/flowplayer.content/build.properties
deleted file mode 100644 (file)
index e37cd70..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-devkit-dir=../flowplayer.devkit
-version=3.2.0
diff --git a/typo3/contrib/flowplayer/flowplayer.content/build.xml b/typo3/contrib/flowplayer/flowplayer.content/build.xml
deleted file mode 100644 (file)
index 9c4e709..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-<project name="Flowplayer content" default="deploy">
-    <property file="build.generated.properties"/>
-
-       <property file="${user.home}/plugin.properties" />
-       <property file="build.properties" />
-       
-       <property file="${devkit-dir}/plugin-build.properties" />
-       <import file="${devkit-dir}/plugin-build.xml"/>
-       <property name="flowplayer_lib" value="${devkit-dir}/flowplayer.swc" />
-       
-
-       <property name="basename" value="flowplayer.content" />
-    <property name="releasedir" value="${basename}" />
-       <property name="plugin-binary" value="${basename}.swf" />
-       <property name="plugin-binary-versioned" value="${basename}-${version}.swf" />
-       <property name="plugin-main-class" value="org/flowplayer/content/Content.as" />
-       <property name="library-path" value="src/flash" />
-
-       <target name="release" description="makes a release" depends="build">
-               <copyrelease targetdir="flowplayer.content">
-                       <releasefiles>
-                               <fileset dir="${build-dir}">
-                                   <include name="${plugin-binary-versioned}"/>
-                               </fileset>
-                       </releasefiles>
-               </copyrelease>
-       </target>
-
-</project>
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.content/src/actionscript/org/flowplayer/content/CloseButton.as b/typo3/contrib/flowplayer/flowplayer.content/src/actionscript/org/flowplayer/content/CloseButton.as
deleted file mode 100644 (file)
index 8668835..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/*\r * This file is part of Flowplayer, http://flowplayer.org\r * \r * By: Anssi Piirainen, <support@flowplayer.org>\r * Copyright (c) 2008, 2009 Flowplayer Oy\r *\r * Released under the MIT License:\r * http://www.opensource.org/licenses/mit-license.php\r */\rpackage org.flowplayer.content {\r    import flash.display.DisplayObject;\r    import flash.display.Sprite;\r    import flash.events.MouseEvent;\r\r    /**\r     * @author api\r     */\r    internal class CloseButton extends Sprite {\r        private var _icon:DisplayObject;\r\r        public function CloseButton(icon:DisplayObject = null) {\r            _icon = icon || new CloseIcon();\r            _icon.width = 10;\r            _icon.height = 10;\r            addChild(_icon);\r            addEventListener(MouseEvent.MOUSE_OVER, onMouseOver);\r            addEventListener(MouseEvent.MOUSE_OUT, onMouseOut);\r            onMouseOut();\r            buttonMode = true;\r        }\r\r        private function onMouseOut(event:MouseEvent = null):void {\r            _icon.alpha = 0.7;\r        }\r\r        private function onMouseOver(event:MouseEvent):void {\r            _icon.alpha = 1;\r        }\r    }\r}\r
\ No newline at end of file
diff --git a/typo3/contrib/flowplayer/flowplayer.content/src/actionscript/org/flowplayer/content/Content.as b/typo3/contrib/flowplayer/flowplayer.content/src/actionscript/org/flowplayer/content/Content.as
deleted file mode 100644 (file)
index 5b63446..0000000
+++ /dev/null
@@ -1 +0,0 @@
-/*\r * This file is part of Flowplayer, http://flowplayer.org\r *\r * By: Anssi Piirainen, <support@flowplayer.org>\r * Copyright (c) 2008, 2009 Flowplayer Oy\r *\r * Released under the MIT License:\r * http://www.opensource.org/licenses/mit-license.php\r */\rpackage org.flowplayer.content {\r    import org.flowplayer.util.Assert;\r    import org.flowplayer.model.DisplayPluginModel;\r\r    import flash.display.DisplayObject;\r    import flash.display.DisplayObjectContainer;\r    import flash.events.Event;\r    import flash.events.MouseEvent;\r\r    import org.flowplayer.content.ContentView;\r    import org.flowplayer.controller.ResourceLoader;\r    import org.flowplayer.model.Plugin;\r    import org.flowplayer.model.PluginEventType;\r    import org.flowplayer.model.PluginModel;\r    import org.flowplayer.util.Log;\r    import org.flowplayer.view.AbstractSprite;\r    import org.flowplayer.view.FlowStyleSheet;\r    import org.flowplayer.view.Flowplayer;\r    import org.flowplayer.view.Styleable;\r    import org.flowplayer.view.StyleableSprite;\r\r    /**\r     * Content plugin.\r     *\r     * @author api\r     */\r    public class Content extends AbstractSprite implements Plugin, Styleable {\r        private var _styleSheetFile:String;\r        private var _player:Flowplayer;\r        private var _model:PluginModel;\r        private var _contentView:ContentView;\r        private var _html:String;\r        private var _closeButton:Boolean = false;\r        private var _closeImage:String;\r\r        public function Content() {\r            addListeners();\r        }\r\r        internal function addListeners():void {\r            addEventListener(MouseEvent.ROLL_OVER, onMouseOver);\r            addEventListener(MouseEvent.ROLL_OUT, onMouseOut);\r            addEventListener(MouseEvent.CLICK, onClick);\r        }\r\r        internal function removeListeners():void {\r            removeEventListener(MouseEvent.ROLL_OVER, onMouseOver);\r            removeEventListener(MouseEvent.ROLL_OUT, onMouseOut);\r            removeEventListener(MouseEvent.CLICK, onClick);\r        }\r\r        override protected function onResize():void {\r            if (!_contentView) return;\r            _contentView.setSize(width, height);\r            _contentView.x = 0;\r            _contentView.y = 0;\r        }\r\r        /**\r         * Sets the plugin model. This gets called before the plugin\r         * has been added to the display list and before the player is set.\r         * @param plugin\r         */\r        public function onConfig(plugin:PluginModel):