Source: main.js

/*global define, require, document, window, $ */
/*jslint nomen: true, debug: true, bitwise: true */

/**
 * @name Elasticnode widgets
 * @description Main widget file: config & initialization
 * @author Anton Golub <mailbox@antongolub.ru>
 * @copyright 2014
 * @license MIT
 * @version 0.0.1
 * @class main
 */



(function () {
    "use strict";
    // Provides feature detection to load zepto or jquery
    var modern = document.querySelector &&
        window.localStorage &&
        window.addEventListener;

    // modern = false;

    require.config({
        map: {
            '*': {
                'jquery': 'framework'
            }
        },
        //baseUrl: 'js/',
        paths: {
            // Bower components
            framework: modern ?
                    [
                        "//cdn.jsdelivr.net/zepto/1.1.3/zepto.min",
                        "//cdnjs.cloudflare.com/ajax/libs/zepto/1.1.3/zepto.min",
                        "../../../bower_components/zepto/zepto"
                    ] :
                    [
                        "//yandex.st/jquery/1.11.0/jquery.min",
                        "//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min",
                        "../../../bower_components/jquery/dist/jquery.min"
                    ],

            backbone: [
                "//yandex.st/backbone/1.1.2/backbone-min",
                "//cdn.jsdelivr.net/backbonejs/1.1.2/backbone-min",
                "//cdnjs.cloudflare.com/ajax/libs/backbone.js/1.1.2/backbone-min",
                "../../../bower_components/backbone/backbone"
            ],
            underscore: [
                "//yandex.st/underscore/1.6.0/underscore-min",
                "//cdn.jsdelivr.net/underscorejs/1.6.0/underscore-min",
                "../../../bower_components/underscore/underscore"
            ],
            handlebars: [
                //"//cdnjs.cloudflare.com/ajax/libs/handlebars.js/1.3.0/handlebars.min",
                //"//cdn.jsdelivr.net/handlebarsjs/1.3.0/handlebars.min",
                "../../../bower_components/handlebars/handlebars"
            ],
            highcharts: [
                //"//cdn.jsdelivr.net/highcharts/4.0.1/highcharts",
                "//cdnjs.cloudflare.com/ajax/libs/highcharts/4.0.1/highcharts",
                "../../../bower_components/highcharts/highcharts"
            ],
            hcadapter: [
                "//cdn.jsdelivr.net/highcharts/4.0.1/adapters/standalone-framework",
                "//cdnjs.cloudflare.com/ajax/libs/highcharts/4.0.1/adapters/standalone-framework",
                "../../../bower_components/highcharts/adapters/standalone-framework"
            ],
            l10n: "../../../bower_components/l10n/l10n",
            sortable: "../../../bower_components/sortable/js/sortable",

            // Rjs plugins
            text: "../../../bower_components/requirejs-text/text",
            css: "../../../bower_components/require-css/css",

            // App components
            assets: "../app/assets",
            views: "../app/views",
            models: "../app/models",
            templates: "../app/templates",
            localization: "../app/localization",
            styles: "../../sass",

            utils: "../app/assets/utils",

            // Aggregated module path
            modules: '../app/modules',

            // App instance
            App: '../app/app'
        },
        shim: {
            framework: {
                exports: "$"
            },
            underscore: {
                exports: "_"
            },
            handlebars: {
                exports: "Handlebars"
            },
            highcharts: {
                deps: ["framework", "hcadapter"], //[modern ? "hcadapter" : "framework"],
                exports: "Highcharts"
            },
            backbone: {
                deps: ['underscore', "framework"],
                exports: "Backbone"
            },
            l10n: {
                exports: "l10n"
            }
        }
    });
}());
// Widget class init
define(["App"], function (enw) {
    "use strict";
    var cb,
        cbArray = window.enwCallback;
    window.Enw = enw;

    if (Object.prototype.toString.call(cbArray) === '[object Array]') {
        while (cbArray.length) {
            cb = cbArray.pop();
            try {
                cb();
            } catch (e) {}
        }
    }
});
/*
// Dirty build hack
define("js/app/main", ["main"]);
define("js/app/main-cdn", ["main"]);
define("js/app/main-singlefile", ["main"]);*/