diff -r 7b55777486c3 -r 75ba66457232 src/js/main.js --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/js/main.js Fri Apr 06 16:55:34 2012 +0200 @@ -0,0 +1,107 @@ +/* main file */ +// Why is it called main ? It only loads the libs ! + +if ( window.IriSP === undefined && window.__IriSP === undefined ) { + /** + @class + the object under which everything goes. + */ + IriSP = {}; + + /** Alias to IriSP for backward compatibility */ + __IriSP = IriSP; +} + +/* underscore comes bundled with the player and we need + it ASAP, so load it that way +*/ + +IriSP._ = window._.noConflict(); +IriSP.underscore = IriSP._; + +IriSP.getLib = function(lib) { + return ( + IriSP.libFiles.useCdn && typeof IriSP.libFiles.cdn[lib] == "string" + ? IriSP.libFiles.cdn[lib] + : ( + typeof IriSP.libFiles.locations[lib] == "string" + ? IriSP.libFiles.locations[lib] + : ( + typeof IriSP.libFiles.inDefaultDir[lib] == "string" + ? IriSP.libFiles.defaultDir + IriSP.libFiles.inDefaultDir[lib] + : null + ) + ) + ) +} + +IriSP.loadLibs = function( config, metadata_url, callback ) { + // Localize jQuery variable + IriSP.jQuery = null; + var $L = $LAB.script(IriSP.getLib("jQuery")).script(IriSP.getLib("swfObject")).wait() + .script(IriSP.getLib("jQueryUI")); + + if (config.player.type === "jwplayer" || config.player.type === "allocine") { + // load our popcorn.js lookalike + $L.script(IriSP.getLib("jwplayer")); + } else { + // load the real popcorn + $L.script(IriSP.getLib("popcorn")).script(IriSP.getLib("popcorn.code")); + if (config.player.type === "youtube") { + $L.script(IriSP.getLib("popcorn.youtube")); + } + if (config.player.type === "vimeo") + $L.script(IriSP.getLib("popcorn.vimeo")); + + /* do nothing for html5 */ + } + + /* widget specific requirements */ + for (var idx in config.gui.widgets) { + if (config.gui.widgets[idx].type === "PolemicWidget" || + config.gui.widgets[idx].type === "StackGraphWidget" || + config.gui.widgets[idx].type === "SparklineWidget") { + $L.script(IriSP.getLib("raphael")); + } + if (config.gui.widgets[idx].type === "TraceWidget") { + $L.script(IriSP.getLib("tracemanager")) + } + } + + // same for modules + /* + for (var idx in config.modules) { + if (config.modules[idx].type === "PolemicWidget") + $L.script(IriSP.getLib("raphaelJs")); + } + */ + + $L.wait(function() { + IriSP.jQuery = window.jQuery.noConflict( true ); + + var css_link_jquery = IriSP.jQuery( "", { + rel: "stylesheet", + type: "text/css", + href: IriSP.getLib("cssjQueryUI"), + 'class': "dynamic_css" + } ); + var css_link_custom = IriSP.jQuery( "", { + rel: "stylesheet", + type: "text/css", + href: config.gui.css, + 'class': "dynamic_css" + } ); + + css_link_jquery.appendTo('head'); + css_link_custom.appendTo('head'); + + IriSP.setupDataLoader(); + IriSP.__dataloader.get(metadata_url, + function(data) { + /* save the data so that we could re-use it to + configure the video + */ + IriSP.__jsonMetadata = data; + callback.call(window) }); + }); +}; \ No newline at end of file