/* Aura version: 1.8.5 */
function PiSlider(el, options) {
var o = {},
$ = jQuery;
o.$el = el;
o.s = {
speed: 2000,
slideDelay: 35,
autoplayDelay: 0,
preload: 0,
preloadDelay: 1000,
action: 'fade',
circular: 0,
enableArrows: 0,
enablePagination: 0,
enableSwipes: 0,
enableKeys: 0,
c: {
pane: 'pi-slider',
paneWrapper: 'pi-slider-wrapper',
paneFast: 'pi-slider-fast',
slide: 'pi-slide',
slideTransparent: 'pi-slide-transparent',
pagination: 'pi-slider-pagination',
page: 'pi-slider-page',
arrow: 'pi-slider-arrow',
arrowLeft: 'pi-slider-arrow-left',
arrowRight: 'pi-slider-arrow-right',
slideActive: 'pi-slide-active',
pageActive: 'pi-slider-page-active',
arrowActive: 'pi-slider-arrow-active',
arrowDisabled: 'pi-slider-arrow-disabled'
},
debug: 0
};
if (options) {
$.extend(o.s, options);
}
o.init = function () {
o.$doc = $(document);
o.cssTransisions = 1;
o.$paneWrapper = o.$el.parents('.' + o.s.c.paneWrapper).eq(0);
o.$pane = o.$el.hasClass(o.s.c.pane) ? o.$el : o.$el.find('.' + o.s.c.pane);
o.$slides = o.$el.find('.' + o.s.c.slide);
o.autoPlayInterval = 0;
o.slidesQ = o.$slides.length;
if (o.slidesQ <= 0) {
return;
}
o.slideWidth = o.$slides.eq(0).width();
o.slideOuterWidth = o.$slides.eq(0).outerWidth();
o.slideMargin = (o.slideOuterWidth - o.slideWidth) / 2;
o.slidesWidth = o.slideOuterWidth * o.slidesQ;
o.sceneWidth = o.$paneWrapper.width();
o.margin = (o.sceneWidth - o.slideWidth) / 2;
o.way = o.slideWidth - o.margin;
o.slidesTransparent = [];
o.current = -1;
if (o.s.debug) {
console.log('SCENE' + o.sceneWidth);
console.log('MARGIN' + o.margin);
console.log('WAY' + o.way);
}
o.beforeStart();
o.addSwipeActions();
}
o.beforeStart = function () {
if (o.s.preload) {
var preloader = new PiImagesLoader(o.$paneWrapper, o.start, o.s.preloadDelay);
} else {
o.start();
}
}
o.start = function () {
if (o.s.enablePagination && o.slidesQ > 1) {
o.$paneWrapper.append('
');
o.$pagination = o.$paneWrapper.find('.' + o.s.c.pagination);
var n = 0;
o.$slides.each(function () {
if (n == 0) {
active = o.s.c.pageActive;
} else {
active = '';
}
o.$pagination.append('');
n++;
});
o.$pages = o.$pagination.find('.' + o.s.c.page);
o.$pages.click(function () {
var n = $(this).index();
if (o.current != n) {
o.applyAnimation(n);
}
});
if(o.s.action == 'slide'){
o.prepareSlides();
}
}
if (o.s.enableArrows && o.slidesQ > 1) {
o.$paneWrapper.append('
');
o.$paneWrapper.append('
');
o.$leftArrow = o.$paneWrapper.find('.' + o.s.c.arrowLeft);
o.$rightArrow = o.$paneWrapper.find('.' + o.s.c.arrowRight);
if(!o.s.circular) {
o.$leftArrow.addClass(o.s.c.arrowDisabled);
}
o.$leftArrow.click(function () {
o.toPrev();
});
o.$rightArrow.click(function () {
o.toNext();
});
}
if (o.s.enableKeys && o.slidesQ > 1) {
o.$doc.keydown(function (e) {
if ((e.keyCode || e.which) == '37') {
o.toPrev();
} else if ((e.keyCode || e.which) == '39') {
o.toNext();
}
});
}
o.applyAnimation(0);
if(o.s.autoplayDelay){
o.startAutoplay();
}
o.resizeGallery();
}
o.applyAnimation = function (n, f) {
if (!f) {
f = 0;
}
if (o.s.action == 'slide') {
o.moveSlide(n, f);
} else if (o.s.action == 'fade') {
o.fadeSlide(n);
}
o.current = n;
o.checkArrowsState(n);
o.checkPagesState(n);
}
o.checkPagesState = function (n) {
if (o.s.enablePagination && o.slidesQ > 1) {
o.$pages.removeClass(o.s.c.pageActive);
o.$pages.eq(n).addClass(o.s.c.pageActive);
}
}
o.checkArrowsState = function (n) {
if (o.s.enableArrows && o.slidesQ > 1 && !o.s.circular) {
if (n == 0) {
o.$leftArrow.addClass(o.s.c.arrowDisabled);
} else {
o.$leftArrow.removeClass(o.s.c.arrowDisabled);
}
if (n == o.slidesQ - 1) {
o.$rightArrow.addClass(o.s.c.arrowDisabled);
} else {
o.$rightArrow.removeClass(o.s.c.arrowDisabled);
}
}
}
o.moveSlide = function(n, f) {
var fast = f || 0,
speed = fast ? 0 : o.s.speed,
$prev = o.$slides.eq(o.current),
$next = o.$slides.eq(n);
$prev.removeClass(o.s.c.slideActive);
if(!o.cssTransisions){
$prev.stop().animate({
left: -o.slideOuterWidth,
opacity: 0
}, speed, 'easeInOutExpo',function(){
$(this).css({
left: o.slideOuterWidth
});
});
$next.stop().animate({
left: 0,
opacity: 1
}, speed, 'easeInOutExpo');
$next.addClass(o.s.c.slideActive);
} else {
$prev.css({
'-webkit-transform': 'translateX(' + -o.slideOuterWidth + 'px)',
'-moz-transform': 'translateX(' + -o.slideOuterWidth + 'px)',
'-o-transform': 'translateX(' + -o.slideOuterWidth + 'px)',
'transform': 'translateX(' + -o.slideOuterWidth + 'px)'
});
$next.addClass('pi-no-transitions').css({
'-webkit-transform': 'translateX(' + o.slideOuterWidth + 'px)',
'-moz-transform': 'translateX(' + o.slideOuterWidth + 'px)',
'-o-transform': 'translateX(' + o.slideOuterWidth + 'px)',
'transform': 'translateX(' + o.slideOuterWidth + 'px)'
});
//debugger;
setTimeout(function(){
$next.removeClass('pi-no-transitions').addClass(o.s.c.slideActive).css({
'-webkit-transform': 'translateX(' + 0 + 'px)',
'-moz-transform': 'translateX(' + 0 + 'px)',
'-o-transform': 'translateX(' + 0 + 'px)',
'transform': 'translateX(' + 0 + 'px)'
});
},10);
}
}
o.fadeSlide = function (n) {
var $prev = o.$slides.eq(o.current),
$next = o.$slides.eq(n);
$prev.removeClass(o.s.c.slideActive);
$next.addClass(o.s.c.slideActive);
if(!o.cssTransisions){
$next.stop().animate({
opacity: 1
}, o.s.speed, 'easeOutQuad', function () {
$prev.fadeTo(0, 0);
});
}
}
o.prepareSlides = function () {
o.$slides.each(function(i){
if(i != 0) {
if (o.cssTransisions) {
$(this).css({
'-webkit-transform': 'translateX(' + o.slideOuterWidth + 'px)',
'-moz-transform': 'translateX(' + o.slideOuterWidth + 'px)',
'-o-transform': 'translateX(' + o.slideOuterWidth + 'px)',
'transform': 'translateX(' + o.slideOuterWidth + 'px)'
});
} else {
$(this).css({
'left': o.slideOuterWidth + 'px'
});
}
}
});
}
o.toNext = function () {
if (o.current < o.slidesQ - 1) {
o.applyAnimation(o.current + 1);
} else if(o.s.circular){
o.applyAnimation(0);
}
}
o.toPrev = function () {
if (o.current > 0) {
o.applyAnimation(o.current - 1);
} else if(o.s.circular){
o.applyAnimation(o.slidesQ - 1);
}
}
o.startAutoplay = function(){
o.autoPlayInterval = setInterval(function(){
o.toNext();
}, o.s.autoplayDelay);
}
o.stopAutoplay = function(){
clearInterval(o.autoPlayInterval);
}
o.resizeGallery = function () {
/*o.slideOuterWidth = o.$slides.eq(0).outerWidth();
o.sceneWidth = o.$paneWrapper.width();
o.margin = (o.sceneWidth - o.slideOuterWidth) / 2;
if (o.s.action == 'fade') {
o.$pane.css('left', o.margin);
}*/
}
o.addSwipeActions = function() {
if(o.s.enableSwipes && $.fn.swipe && typeof($.fn.swipe) === 'function') {
o.$pane.swipe({
swipeStatus:function(event, phase, direction, distance, duration, fingers){
if (phase == 'end'){
if(direction == 'left'){
o.toNext();
} else if(direction == 'right'){
o.toPrev();
}
}
},
allowPageScroll:"vertical",
excludedElements:''
});
}
}
o.init();
return o;
}