File: /home/epubdjye/www17/wp-content/plugins_bcknd/smart-slider-3/nextend/media/dist/n2.js
(function(){var N=this;N.N2_=N.N2_||{r:[],d:[]},N.N2R=N.N2R||function(){N.N2_.r.push(arguments)},N.N2D=N.N2D||function(){N.N2_.d.push(arguments)}}).call(window);
function N2Deferred() {
this.state = 0;
this.args = null;
this.callbacks = [];
}
N2Deferred.prototype._doCallbacks = function () {
if (this.state !== 0) {
while (this.callbacks.length > 0) {
this.callbacks.shift().apply(window, this.args);
}
}
};
N2Deferred.prototype.resolve = function () {
this.state = 1;
this.args = arguments;
this._doCallbacks();
};
N2Deferred.prototype.reject = function () {
this.state = -1;
this._doCallbacks();
};
N2Deferred.prototype.then = function (cb) {
this.callbacks.push(cb);
this._doCallbacks();
};
/**
* @param deferreds
* @returns {N2Deferred}
*/
N2Deferred.n2When = function (deferreds) {
var length = deferreds.length,
deferred = new N2Deferred();
if (length === 0) {
deferred.resolve();
} else {
var done = 0,
doneCurrent = function () {
done++;
if (done === length) {
deferred.resolve();
}
};
for (var i = 0; i < length; i++) {
if (deferreds[i] instanceof N2Deferred) {
deferreds[i].then(doneCurrent);
} else {
doneCurrent();
}
}
}
return deferred;
};
(function (undefined) {
"use strict";
this.N2Classes = {};
var a = {};
this.N2D = function (name, dependencies, fn) {
var deps = [];
if (name && a[name] === undefined) {
a[name] = new N2Deferred();
}
if (arguments.length === 2) {
fn = arguments[1];
dependencies = [];
} else {
if (typeof dependencies === 'string') {
dependencies = [dependencies];
}
}
dependencies = dependencies || [];
if (name !== '$') {
dependencies.push('$');
}
if (dependencies.length) {
for (var i = 0; i < dependencies.length; i++) {
if (a[dependencies[i]] === undefined) {
a[dependencies[i]] = new N2Deferred();
}
deps.push(a[dependencies[i]]);
}
}
N2Deferred.n2When(deps).then(function () {
if (typeof fn === 'function') {
var ret = fn.apply(N2Classes, [N2Classes.$]);
if (ret instanceof N2Deferred) {
ret.then(function (ret) {
N2Classes[name] = ret;
a[name].resolve();
});
} else {
N2Classes[name] = ret;
a[name].resolve();
}
} else {
N2Classes[name] = true;
a[name].resolve();
}
});
};
for (var i = 0; i < this.N2_.d.length; i++) {
this.N2D.apply(this, this.N2_.d[i]);
}
this.N2R = function (dependencies, fn) {
var deps = [];
if (arguments.length === 1) {
fn = arguments[0];
dependencies = [];
} else {
if (typeof dependencies === 'string') {
dependencies = [dependencies];
}
}
dependencies = dependencies || [];
dependencies.push('$');
if (dependencies !== undefined && dependencies) {
for (var i = 0; i < dependencies.length; i++) {
if (a[dependencies[i]] === undefined) {
a[dependencies[i]] = new N2Deferred();
}
deps.push(a[dependencies[i]]);
}
}
N2Deferred.n2When(deps).then(function () {
var args = [N2Classes.$];
for (var i = 0; i < dependencies.length - 1; i++) {
args.push(N2Classes[dependencies[i]]);
}
fn.apply(N2Classes, args);
});
};
for (var j = 0; j < this.N2_.r.length; j++) {
this.N2R.apply(this, this.N2_.r[j]);
}
}).call(window);
function NextendThrottle(func, wait) {
wait || (wait = 250);
var last,
deferTimer;
return function () {
var context = this,
now = +new Date,
args = arguments;
if (last && now < last + wait) {
// hold on to it
clearTimeout(deferTimer);
deferTimer = setTimeout(function () {
last = now;
func.apply(context, args);
}, wait);
} else {
last = now;
func.apply(context, args);
}
};
}
function NextendDeBounce(func, wait, immediate) {
var timeout;
return function () {
var context = this, args = arguments;
var later = function () {
timeout = null;
if (!immediate) func.apply(context, args);
};
var callNow = immediate && !timeout;
clearTimeout(timeout);
timeout = setTimeout(later, wait);
if (callNow) func.apply(context, args);
};
}
(function () {
var startDate = new Date();
// Poll to see if jQuery is ready
var waitForJQuery = function () {
if (window.nextend && window.jQuery) {
var $ = window.jQuery;
N2D('$', function () {
window.n2 = $; //Backward compatibility
return $;
});
N2R('nextend-frontend', function () {
$(document).ready(function () {
N2D('documentReady');
});
if (document.readyState === 'complete') {
N2D('windowLoad');
} else {
$(window).on('load', function () {
N2D('windowLoad');
});
}
});
} else {
setTimeout(waitForJQuery, 20);
if ((new Date).getTime() - startDate.getTime() > 1000) {
var script = document.createElement('script');
// If there is no jQuery on the page in 1 second, we will load one from CDN
script.src = "//ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(script);
}
}
};
waitForJQuery();
})();
//Based on easing equations from Robert Penner (http://www.robertpenner.com/easing)
N2R('$', function ($) {
var baseEasings = {};
$.each(["Quad", "Cubic", "Quart", "Quint", "Expo"], function (i, name) {
baseEasings[name] = function (p) {
return Math.pow(p, i + 2);
};
});
$.extend(baseEasings, {
Sine: function (p) {
return 1 - Math.cos(p * Math.PI / 2);
},
Circ: function (p) {
return 1 - Math.sqrt(1 - p * p);
},
Elastic: function (p) {
return p === 0 || p === 1 ? p :
-Math.pow(2, 8 * (p - 1)) * Math.sin(((p - 1) * 80 - 7.5) * Math.PI / 15);
},
Back: function (p) {
return p * p * (3 * p - 2);
},
Bounce: function (p) {
var pow2,
bounce = 4;
while (p < ((pow2 = Math.pow(2, --bounce)) - 1) / 11) {
}
return 1 / Math.pow(4, 3 - bounce) - 7.5625 * Math.pow((pow2 * 3 - 2) / 22 - p, 2);
}
});
$.each(baseEasings, function (name, easeIn) {
$.easing["easeIn" + name] = easeIn;
$.easing["easeOut" + name] = function (p) {
return 1 - easeIn(1 - p);
};
$.easing["easeInOut" + name] = function (p) {
return p < 0.5 ?
easeIn(p * 2) / 2 :
1 - easeIn(p * -2 + 2) / 2;
};
});
});
N2D('n2')