src/js/main.js
author veltr
Tue, 17 Apr 2012 15:03:40 +0200
branchnew-model
changeset 866 3bf7aa8216e5
parent 842 4ae2247a59f4
child 868 a525cc2214e7
permissions -rw-r--r--
IriSP.Model.List now inherits from Array

/* 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, format, 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"))
        }
    }


    $L.wait(function() {
        IriSP.jQuery = window.jQuery.noConflict(true);

        var css_link_jquery = IriSP.jQuery("<link>", {
            rel : "stylesheet",
            type : "text/css",
            href : IriSP.getLib("cssjQueryUI"),
            'class' : "dynamic_css"
        });
        var css_link_custom = IriSP.jQuery("<link>", {
            rel : "stylesheet",
            type : "text/css",
            href : config.gui.css,
            'class' : "dynamic_css"
        });

        css_link_jquery.appendTo('head');
        css_link_custom.appendTo('head');

        IriSP._directory = new IriSP.Model.Directory();
        IriSP._videoData = _directory.remoteSource({
            url : metadata_url,
            namespace : "metadataplayer",
            serializer : IriSP.serializers[format]
        });
        if (typeof callback !== "undefined") {
            IriSP._videoData.onLoad(callback);
        }
        
    });
};