loader-debug.js revision 0c7476a63b7d7b81ade0fbc59f7b18b15b2fd4c8
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * Loader dynamically loads script and css files. It includes the dependency
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * info for the version of the library in use, and will automatically pull in
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich * dependencies for the modules requested. It supports rollup files and will
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * automatically use these when appropriate in order to minimize the number of
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * http connections required to load all of the dependencies. It can load the
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * files from the Yahoo! CDN, and it can utilize the combo service provided on
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * this network to reduce the number of http connections required to download
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich * @module loader
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * Loader dynamically loads script and css files. It includes the dependency
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * info for the version of the library in use, and will automatically pull in
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * dependencies for the modules requested. It supports rollup files and will
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * automatically use these when appropriate in order to minimize the number of
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * http connections required to load all of the dependencies. It can load the
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * files from the Yahoo! CDN, and it can utilize the combo service provided on
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * this network to reduce the number of http connections required to download
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * While the loader can be instantiated by the end user, it normally is not.
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * @see YUI.use for the normal use case. The use function automatically will
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * pull in missing dependencies.
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * @class Loader
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * @constructor
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * @param o an optional set of configuration options. Valid options:
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * The base dir</li>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * <li>secureBase:
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * The secure base dir (not implemented)</li>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * <li>comboBase:
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * The YUI combo service base dir. Ex: http://yui.yahooapis.com/combo?</li>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * The root path to prepend to module names for the combo service. Ex: 2.5.2/build/</li>
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich * <li>filter:
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * A filter to apply to result urls. This filter will modify the default
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * path for all modules. The default path for the YUI library is the
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * minified version of the files (e.g., event-min.js). The filter property
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * can be a predefined filter or a custom filter. The valid predefined
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * filters are:
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * <dt>DEBUG</dt>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * <dd>Selects the debug versions of the library (e.g., event-debug.js).
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich * This option will automatically include the Logger widget</dd>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * <dt>RAW</dt>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * <dd>Selects the non-minified version of the library (e.g., event.js).</dd>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * You can also define a custom filter, which must be an object literal
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * containing a search expression and a replace string:
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * myFilter: {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * 'searchExp': "-min\\.js",
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * 'replaceStr': "-debug.js"
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich * <li>filters: per-component filter specification. If specified for a given component, this overrides the filter config</li>
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich * <li>combine:
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich * Use the YUI combo service to reduce the number of http connections required to load your dependencies</li>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * <li>ignore:
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * A list of modules that should never be dynamically loaded</li>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * A list of modules that should always be loaded when required, even if already present on the page</li>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * <li>insertBefore:
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * Node or id for a node that should be used as the insertion point for new nodes</li>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * <li>charset:
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * charset for dynamic nodes (deprecated, use jsAttributes or cssAttributes)</li>
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich * <li>jsAttributes: object literal containing attributes to add to script nodes</li>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * <li>cssAttributes: object literal containing attributes to add to link nodes</li>
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich * <li>timeout:
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich * number of milliseconds before a timeout occurs when dynamically loading nodes. in not set, there is no timeout</li>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * <li>context:
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich * execution context for all callbacks</li>
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich * <li>onSuccess:
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich * callback for the 'success' event</li>
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich * <li>onFailure: callback for the 'failure' event</li>
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich * <li>onCSS: callback for the 'CSSComplete' event. When loading YUI components with CSS
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich * the CSS is loaded first, then the script. This provides a moment you can tie into to improve
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich * the presentation of the page while the script is loading.</li>
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich * <li>onTimeout:
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich * callback for the 'timeout' event</li>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * <li>onProgress:
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich * callback executed each time a script or css file is loaded</li>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * <li>modules:
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * A list of module definitions. See Loader.addModule for the supported module metadata</li>
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * Global loader queue
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * @property _loaderQueue
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich * @type Queue
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen RabinovichYUI.Env._loaderQueue = YUI.Env._loaderQueue || new Y.Queue();
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'cssreset-context', 'cssfonts-context', 'cssgrids-context'],
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich YUI_CSS = ['reset', 'fonts', 'grids', BASE],
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich GALLERY_VERSION = 'gallery-2009-10-19', // @TODO build time
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich GALLERY_ROOT = GALLERY_VERSION + '/build/',
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich GALLERY_BASE = 'http://yui.yahooapis.com/' + GALLERY_ROOT,
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich comboBase: 'http://yui.yahooapis.com/combo?',
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich 'dom-base': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'dom-style': {
70837a7c5871ea73a84ab67d8c34fcd9d2daa31cAllen Rabinovich 'dom-screen': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'selector-native': {
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich 'selector-css2': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'selector': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'selector-css3': {
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich // expound: EVENT,
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich 'node-base': {
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich requires: [DOMBASE, SELECTORCSS2, EVENTBASE]
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'node-style': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'node-screen': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'node-pluginhost': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'node-event-delegate': {
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich 'node-event-simulate': {
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich 'align-plugin': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'shim-plugin': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'anim-base': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'anim-color': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'anim-easing': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'anim-scroll': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'anim-curve': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'anim-node-plugin': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'attribute-base': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'attribute-complex': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'base-base': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'base-build': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'base-pluginhost': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich requires: [EVENTBASE, DOM, DUMP, SUBSTITUTE]
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich 'console-filters': {
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich 'dataschema-base': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'dataschema-array': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'dataschema-json': {
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich 'dataschema-text': {
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich 'dataschema-xml': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'datasource-local': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'datasource-arrayschema': {
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich requires: [DATASOURCELOCAL, PLUGIN, 'dataschema-array']
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'datasource-cache': {
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich 'datasource-function': {
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich 'datasource-jsonschema': {
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich requires: [DATASOURCELOCAL, PLUGIN, 'dataschema-json']
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich 'datasource-polling': {
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich 'datasource-get': {
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich 'datasource-textschema': {
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich requires: [DATASOURCELOCAL, PLUGIN, 'dataschema-text']
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'datasource-io': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'datasource-xmlschema': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich requires: [DATASOURCELOCAL, PLUGIN, 'dataschema-xml']
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'datatype-date': {
a9a4fee30864f00049b02201b1af50ada7f769e3Allen Rabinovich 'datatype-number': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'datatype-xml': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'dd-ddm-base': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'dd-ddm-drop':{
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'dd-constrain':{
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'dd-scroll':{
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'dd-plugin':{
9b1ad7c4722db362bee7d39c851c94ba95f118b8Allen Rabinovich 'dd-drop-plugin':{
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'event-base': {
6a0b5391dbcaace88784e407eb97b46fc8ffb619Allen Rabinovich 'event-delegate': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'event-focus': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'event-key': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'event-mouseenter': {
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich 'event-mousewheel': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'event-resize': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'event-custom': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'event-custom-base': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'event-custom-complex': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'event-simulate': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'node-focusmanager': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich requires: [ATTRIBUTE, NODE, PLUGIN, 'node-event-simulate', 'event-key', 'event-focus']
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich requires: [BASEBASE, NODESTYLE, NODESCREEN]
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich requires: [EVENTCUSTOMBASE, 'querystring-stringify-simple']
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'io-upload-iframe': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'io-queue': {
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich 'json-parse': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'json-stringify': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'node-menunav': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich requires: [NODE, 'classnamemanager', PLUGIN, 'node-focusmanager'],
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich requires: [WIDGET, WIDGETPOSITION, 'widget-position-ext', 'widget-stack', 'widget-stdmod'],
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'queue-promote': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich // deprecated package, replaced with async-queue
7211944935145abdba8a3ea3b17621ec264d8e21Allen Rabinovich 'queue-run': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'async-queue': {
66900b43227bf441b6a6b1084af2c96ce2c747c8Allen Rabinovich 'querystring-stringify-simple': {
submodules: {
slider: {
skinnable: true
stylesheet: {
substitute: {
widget: {
plugins: {
skinnable: true
skinnable: true
yui: {
submodules: {
get: {},
test: {
patterns: {
filter: {
L = Y.Lang;
Y.Loader = function(o) {
this.context = Y;
// this.jsAttributes = null;
* @default http://yui.yahooapis.com/[YUI VERSION]/build/
* @default http://yui.yahooapis.com/combo?
this.forceMap = {};
this.allowRollup = true;
* minified version of the files (e.g., event-min.js). The filter property
* <dd>Selects the debug versions of the library (e.g., event-debug.js).
* <dd>Selects the non-minified version of the library (e.g., event.js).</dd>
* 'replaceStr': "-debug.js"
this.filters = {};
this.required = {};
this.moduleInfo = {};
this._internal = true;
for (i in defaults) {
for (i in onPage) {
this._internal = false;
this.sorted = [];
this.dirty = true;
this.inserted = {};
this.skipped = {};
this._config(o);
FILTER_DEFS: {
RAW: {
DEBUG: {
_config: function(o) {
var i, j, val, f;
if (o.hasOwnProperty(i)) {
val = o[i];
for (j in val) {
this[i] = val;
f = this.filter;
if (L.isString(f)) {
f = f.toUpperCase();
this.filterName = f;
if (mod) {
if (mod) {
this.addModule({
return name;
* <dt>after:</dt> <dd>array of modules the components which, if present, should be sorted above this one</dd>
* <dt>fullpath:</dt> <dd>If fullpath is specified, this is used instead of the configured base + path</dd>
if (!o || !o.name) {
if (!o.type) {
if (subs) {
sup = [];
for (i in subs) {
s = subs[i];
this.addModule(s, i);
if (o.skinnable) {
if (plugins) {
for (i in plugins) {
if (o.skinnable) {
this.dirty = true;
this.dirty = true;
if (!mod) {
d.push(r[i]);
m = this.getModule(r[i]);
d.push(r[i]);
m = this.getModule(r[i]);
if (o && this.loadOptional) {
d.push(o[i]);
return NOT_FOUND;
if (m && !m.provides) {
s = m.supersedes;
Y.Array.each(s, function(v) {
o[name] = true;
m.provides = o;
return m.provides;
this._config(o);
this._setup();
this._explode();
if (this.allowRollup) {
this._rollup();
this._reduce();
this._sort();
this.dirty = false;
_setup: function() {
if (m && m.skinnable) {
if (o && o[name]) {
if (!this.ignoreRegistered) {
if (this.ignore) {
if (l.hasOwnProperty(j)) {
if (this.force) {
if (this.force[i] in l) {
delete l[this.force[i]];
_explode: function() {
if (expound) {
for (i in patterns) {
p = patterns[i];
add = p;
if (add) {
_rollup: function() {
for (i in info) {
m = this.getModule(i);
if (m && m.rollup) {
rollups[i] = m;
rolled = false;
for (i in rollups) {
m = this.getModule(i);
s = m.supersedes || [];
roll = false;
if (!m.rollup) {
roll = false;
if (roll) {
if (roll) {
rolled = true;
this.getRequires(m);
if (!rolled) {
_reduce: function() {
if (r.hasOwnProperty(i)) {
m = this.getModule(i);
if ((this.loaded[i] && (!this.forceMap[i]) && !this.ignoreRegistered) || (type && m && m.type != type)) {
s = m && m.supersedes;
_attach: function() {
if (this.attaching) {
_finish: function() {
this._continue();
_onSuccess: function() {
this._attach();
for (i in skipped) {
delete this.inserted[i];
this.skipped = {};
f = this.onSuccess;
success: true,
this._finish();
_onFailure: function(o) {
this._attach();
var f = this.onFailure;
success: false
this._finish();
_onTimeout: function() {
this._attach();
var f = this.onTimeout;
success: false
this._finish();
_sort: function() {
done = {},
r = m.expanded;
l = s.length;
moved = false;
doneKey = a + s[k];
moved = true;
if (moved) {
if (!moved) {
this.sorted = s;
if (source) {
if (!type) {
var self = this;
this._internalCallback = function() {
this._loading = true;
this._combineComplete = {};
this.loadNext();
_continue: function() {
this._continue();
if (!this._loading) {
callback=function(o) {
this.inserted[c[i]] = true;
onsuccess=function(o) {
this._combining = [];
s=this.sorted;
m = this.getModule(s[i]);
autopurge: false,
if (mname) {
if (this.onProgress) {
s=this.sorted;
if (s[i] in this.inserted) {
if (s[i] === this._loading) {
m = this.getModule(s[i]);
this.inserted[s[i]] = true;
this.skipped[s[i]] = true;
this._loading = s[i];
url = (m.fullpath) ? this._filter(m.fullpath, s[i]) : this._url(m.path, s[i], this.galleryBase || m.base);
data: s[i],
autopurge: false,
this._loading = null;
if (fn) {
this._internalCallback = null;
this._onSuccess();
var f = this.filter,
if (hasFilter) {