| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 | /** @license * RequireJS plugin for async dependency load like JSONP and Google Maps * Author: Miller Medeiros * Version: 0.1.2 (2014/02/24) * Released under the MIT license */define(function(){    var DEFAULT_PARAM_NAME = 'callback',        _uid = 0;    function injectScript(src){        var s, t;        s = document.createElement('script'); s.type = 'text/javascript'; s.async = true; s.src = src;        t = document.getElementsByTagName('script')[0]; t.parentNode.insertBefore(s,t);    }    function formatUrl(name, id){        var paramRegex = /!(.+)/,            url = name.replace(paramRegex, ''),            param = (paramRegex.test(name))? name.replace(/.+!/, '') : DEFAULT_PARAM_NAME;        url += (url.indexOf('?') < 0)? '?' : '&';        return url + param +'='+ id;    }    function uid() {        _uid += 1;        return '__async_req_'+ _uid +'__';    }    return{        load : function(name, req, onLoad, config){            if(config.isBuild){                onLoad(null); //avoid errors on the optimizer            }else{                var id = uid();                //create a global variable that stores onLoad so callback                //function can define new module after async load                window[id] = onLoad;                injectScript(formatUrl(req.toUrl(name), id));            }        }    };});
 |