(function ($, undefined) {
'use strict';
var defaults = {
item: 5,
autoWidth: false,
slideMove: 1,
slideMargin: 10,
addClass: '',
mode: 'slide',
useCSS: true,
cssEasing: 'ease', //'cubic-bezier(0.25, 0, 0.25, 1)',
easing: 'linear', //'for jquery animation',//
speed: 400, //ms'
auto: false,
pauseOnHover: false,
loop: false,
slideEndAnimation: true,
pause: 2000,
keyPress: false,
controls: true,
prevHtml: '',
nextHtml: '',
rtl: false,
adaptiveHeight: false,
vertical: false,
verticalHeight: 500,
vThumbWidth: 100,
thumbItem: 10,
pager: true,
gallery: false,
galleryMargin: 10,
thumbMargin: 5,
currentPagerPosition: 'middle',
enableTouch: true,
enableDrag: true,
freeMove: true,
swipeThreshold: 40,
responsive: [],
/* jshint ignore:start */
onBeforeStart: function ($el) {},
onSliderLoad: function ($el) {},
onBeforeSlide: function ($el, scene) {},
onAfterSlide: function ($el, scene) {},
onBeforeNextSlide: function ($el, scene) {},
onBeforePrevSlide: function ($el, scene) {}
/* jshint ignore:end */
};
$.fn.lightSlider = function (options) {
if (this.length === 0) {
return this;
}
if (this.length > 1) {
this.each(function () {
$(this).lightSlider(options);
});
return this;
}
var plugin = {},
settings = $.extend(true, {}, defaults, options),
settingsTemp = {},
$el = this;
plugin.$el = this;
if (settings.mode === 'fade') {
settings.vertical = false;
}
var $children = $el.children(),
windowW = $(window).width(),
breakpoint = null,
resposiveObj = null,
length = 0,
w = 0,
on = false,
elSize = 0,
$slide = '',
scene = 0,
property = (settings.vertical === true) ? 'height' : 'width',
gutter = (settings.vertical === true) ? 'margin-bottom' : 'margin-right',
slideValue = 0,
pagerWidth = 0,
slideWidth = 0,
thumbWidth = 0,
interval = null,
isTouch = ('ontouchstart' in document.documentElement);
var refresh = {};
refresh.chbreakpoint = function () {
windowW = $(window).width();
if (settings.responsive.length) {
var item;
if (settings.autoWidth === false) {
item = settings.item;
}
if (windowW < settings.responsive[0].breakpoint) {
for (var i = 0; i < settings.responsive.length; i++) {
if (windowW < settings.responsive[i].breakpoint) {
breakpoint = settings.responsive[i].breakpoint;
resposiveObj = settings.responsive[i];
}
}
}
if (typeof resposiveObj !== 'undefined' && resposiveObj !== null) {
for (var j in resposiveObj.settings) {
if (resposiveObj.settings.hasOwnProperty(j)) {
if (typeof settingsTemp[j] === 'undefined' || settingsTemp[j] === null) {
settingsTemp[j] = settings[j];
}
settings[j] = resposiveObj.settings[j];
}
}
}
if (!$.isEmptyObject(settingsTemp) && windowW > settings.responsive[0].breakpoint) {
for (var k in settingsTemp) {
if (settingsTemp.hasOwnProperty(k)) {
settings[k] = settingsTemp[k];
}
}
}
if (settings.autoWidth === false) {
if (slideValue > 0 && slideWidth > 0) {
if (item !== settings.item) {
scene = Math.round(slideValue / ((slideWidth + settings.slideMargin) * settings.slideMove));
}
}
}
}
};
refresh.calSW = function () {
if (settings.autoWidth === false) {
slideWidth = (elSize - ((settings.item * (settings.slideMargin)) - settings.slideMargin)) / settings.item;
}
};
refresh.calWidth = function (cln) {
var ln = cln === true ? $slide.find('.lslide').length : $children.length;
if (settings.autoWidth === false) {
w = ln * (slideWidth + settings.slideMargin);
} else {
w = 0;
for (var i = 0; i < ln; i++) {
w += (parseInt($children.eq(i).width()) + settings.slideMargin);
}
}
return w;
};
plugin = {
doCss: function () {
var support = function () {
var transition = ['transition', 'MozTransition', 'WebkitTransition', 'OTransition', 'msTransition', 'KhtmlTransition'];
var root = document.documentElement;
for (var i = 0; i < transition.length; i++) {
if (transition[i] in root.style) {
return true;
}
}
};
if (settings.useCSS && support()) {
return true;
}
return false;
},
keyPress: function () {
if (settings.keyPress) {
$(document).on('keyup.lightslider', function (e) {
if (!$(':focus').is('input, textarea')) {
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
if (e.keyCode === 37) {
$el.goToPrevSlide();
} else if (e.keyCode === 39) {
$el.goToNextSlide();
}
}
});
}
},
controls: function () {
if (settings.controls) {
$el.after('
');
if (!settings.autoWidth) {
if (length <= settings.item) {
$slide.find('.lSAction').hide();
}
} else {
if (refresh.calWidth(false) < elSize) {
$slide.find('.lSAction').hide();
}
}
$slide.find('.lSAction a').on('click', function (e) {
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
if ($(this).attr('class') === 'lSPrev') {
$el.goToPrevSlide();
} else {
$el.goToNextSlide();
}
return false;
});
}
},
initialStyle: function () {
var $this = this;
if (settings.mode === 'fade') {
settings.autoWidth = false;
settings.slideEndAnimation = false;
}
if (settings.auto) {
settings.slideEndAnimation = false;
}
if (settings.autoWidth) {
settings.slideMove = 1;
settings.item = 1;
}
if (settings.loop) {
settings.slideMove = 1;
settings.freeMove = false;
}
settings.onBeforeStart.call(this, $el);
refresh.chbreakpoint();
$el.addClass('lightSlider').wrap('');
$slide = $el.parent('.lSSlideWrapper');
if (settings.rtl === true) {
$slide.parent().addClass('lSrtl');
}
if (settings.vertical) {
$slide.parent().addClass('vertical');
elSize = settings.verticalHeight;
$slide.css('height', elSize + 'px');
} else {
elSize = $el.outerWidth();
}
$children.addClass('lslide');
if (settings.loop === true && settings.mode === 'slide') {
refresh.calSW();
refresh.clone = function () {
if (refresh.calWidth(true) > elSize) {
/**/
var tWr = 0,
tI = 0;
for (var k = 0; k < $children.length; k++) {
tWr += (parseInt($el.find('.lslide').eq(k).width()) + settings.slideMargin);
tI++;
if (tWr >= (elSize + settings.slideMargin)) {
break;
}
}
var tItem = settings.autoWidth === true ? tI : settings.item;
/**/
if (tItem < $el.find('.clone.left').length) {
for (var i = 0; i < $el.find('.clone.left').length - tItem; i++) {
$children.eq(i).remove();
}
}
if (tItem < $el.find('.clone.right').length) {
for (var j = $children.length - 1; j > ($children.length - 1 - $el.find('.clone.right').length); j--) {
scene--;
$children.eq(j).remove();
}
}
/**/
for (var n = $el.find('.clone.right').length; n < tItem; n++) {
$el.find('.lslide').eq(n).clone().removeClass('lslide').addClass('clone right').appendTo($el);
scene++;
}
for (var m = $el.find('.lslide').length - $el.find('.clone.left').length; m > ($el.find('.lslide').length - tItem); m--) {
$el.find('.lslide').eq(m - 1).clone().removeClass('lslide').addClass('clone left').prependTo($el);
}
$children = $el.children();
} else {
if ($children.hasClass('clone')) {
$el.find('.clone').remove();
$this.move($el, 0);
}
}
};
refresh.clone();
}
refresh.sSW = function () {
length = $children.length;
if (settings.rtl === true && settings.vertical === false) {
gutter = 'margin-left';
}
if (settings.autoWidth === false) {
$children.css(property, slideWidth + 'px');
}
$children.css(gutter, settings.slideMargin + 'px');
w = refresh.calWidth(false);
$el.css(property, w + 'px');
if (settings.loop === true && settings.mode === 'slide') {
if (on === false) {
scene = $el.find('.clone.left').length;
}
}
};
refresh.calL = function () {
$children = $el.children();
length = $children.length;
};
if (this.doCss()) {
$slide.addClass('usingCss');
}
refresh.calL();
if (settings.mode === 'slide') {
refresh.calSW();
refresh.sSW();
if (settings.loop === true) {
slideValue = $this.slideValue();
this.move($el, slideValue);
}
if (settings.vertical === false) {
this.setHeight($el, false);
}
} else {
this.setHeight($el, true);
$el.addClass('lSFade');
if (!this.doCss()) {
$children.fadeOut(0);
$children.eq(scene).fadeIn(0);
}
}
if (settings.loop === true && settings.mode === 'slide') {
$children.eq(scene).addClass('active');
} else {
$children.first().addClass('active');
}
},
pager: function () {
var $this = this;
refresh.createPager = function () {
thumbWidth = (elSize - ((settings.thumbItem * (settings.thumbMargin)) - settings.thumbMargin)) / settings.thumbItem;
var $children = $slide.find('.lslide');
var length = $slide.find('.lslide').length;
var i = 0,
pagers = '',
v = 0;
for (i = 0; i < length; i++) {
if (settings.mode === 'slide') {
// calculate scene * slide value
if (!settings.autoWidth) {
v = i * ((slideWidth + settings.slideMargin) * settings.slideMove);
} else {
v += ((parseInt($children.eq(i).width()) + settings.slideMargin) * settings.slideMove);
}
}
var thumb = $children.eq(i * settings.slideMove).attr('data-thumb');
if (settings.gallery === true) {
pagers += ' ';
} else {
pagers += '' + (i + 1) + ' ';
}
if (settings.mode === 'slide') {
if ((v) >= w - elSize - settings.slideMargin) {
i = i + 1;
var minPgr = 2;
if (settings.autoWidth) {
pagers += '' + (i + 1) + ' ';
minPgr = 1;
}
if (i < minPgr) {
pagers = null;
$slide.parent().addClass('noPager');
} else {
$slide.parent().removeClass('noPager');
}
break;
}
}
}
var $cSouter = $slide.parent();
$cSouter.find('.lSPager').html(pagers);
if (settings.gallery === true) {
if (settings.vertical === true) {
// set Gallery thumbnail width
$cSouter.find('.lSPager').css('width', settings.vThumbWidth + 'px');
}
pagerWidth = (i * (settings.thumbMargin + thumbWidth)) + 0.5;
$cSouter.find('.lSPager').css({
property: pagerWidth + 'px',
'transition-duration': settings.speed + 'ms'
});
if (settings.vertical === true) {
$slide.parent().css('padding-right', (settings.vThumbWidth + settings.galleryMargin) + 'px');
}
$cSouter.find('.lSPager').css(property, pagerWidth + 'px');
}
var $pager = $cSouter.find('.lSPager').find('li');
$pager.first().addClass('active');
$pager.on('click', function () {
if (settings.loop === true && settings.mode === 'slide') {
scene = scene + ($pager.index(this) - $cSouter.find('.lSPager').find('li.active').index());
} else {
scene = $pager.index(this);
}
$el.mode(false);
if (settings.gallery === true) {
$this.slideThumb();
}
return false;
});
};
if (settings.pager) {
var cl = 'lSpg';
if (settings.gallery) {
cl = 'lSGallery';
}
$slide.after('');
var gMargin = (settings.vertical) ? 'margin-left' : 'margin-top';
$slide.parent().find('.lSPager').css(gMargin, settings.galleryMargin + 'px');
refresh.createPager();
}
setTimeout(function () {
refresh.init();
}, 0);
},
setHeight: function (ob, fade) {
var obj = null,
$this = this;
if (settings.loop) {
obj = ob.children('.lslide ').first();
} else {
obj = ob.children().first();
}
var setCss = function () {
var tH = obj.outerHeight(),
tP = 0,
tHT = tH;
if (fade) {
tH = 0;
tP = ((tHT) * 100) / elSize;
}
ob.css({
'height': tH + 'px',
'padding-bottom': tP + '%'
});
};
setCss();
if (obj.find('img').length) {
if ( obj.find('img')[0].complete) {
setCss();
if (!interval) {
$this.auto();
}
}else{
obj.find('img').load(function () {
setTimeout(function () {
setCss();
if (!interval) {
$this.auto();
}
}, 100);
});
}
}else{
if (!interval) {
$this.auto();
}
}
},
active: function (ob, t) {
if (this.doCss() && settings.mode === 'fade') {
$slide.addClass('on');
}
var sc = 0;
if (scene * settings.slideMove < length) {
ob.removeClass('active');
if (!this.doCss() && settings.mode === 'fade' && t === false) {
ob.fadeOut(settings.speed);
}
if (t === true) {
sc = scene;
} else {
sc = scene * settings.slideMove;
}
//t === true ? sc = scene : sc = scene * settings.slideMove;
var l, nl;
if (t === true) {
l = ob.length;
nl = l - 1;
if (sc + 1 >= l) {
sc = nl;
}
}
if (settings.loop === true && settings.mode === 'slide') {
//t === true ? sc = scene - $el.find('.clone.left').length : sc = scene * settings.slideMove;
if (t === true) {
sc = scene - $el.find('.clone.left').length;
} else {
sc = scene * settings.slideMove;
}
if (t === true) {
l = ob.length;
nl = l - 1;
if (sc + 1 === l) {
sc = nl;
} else if (sc + 1 > l) {
sc = 0;
}
}
}
if (!this.doCss() && settings.mode === 'fade' && t === false) {
ob.eq(sc).fadeIn(settings.speed);
}
ob.eq(sc).addClass('active');
} else {
ob.removeClass('active');
ob.eq(ob.length - 1).addClass('active');
if (!this.doCss() && settings.mode === 'fade' && t === false) {
ob.fadeOut(settings.speed);
ob.eq(sc).fadeIn(settings.speed);
}
}
},
move: function (ob, v) {
if (settings.rtl === true) {
v = -v;
}
if (this.doCss()) {
if (settings.vertical === true) {
ob.css({
'transform': 'translate3d(0px, ' + (-v) + 'px, 0px)',
'-webkit-transform': 'translate3d(0px, ' + (-v) + 'px, 0px)'
});
} else {
ob.css({
'transform': 'translate3d(' + (-v) + 'px, 0px, 0px)',
'-webkit-transform': 'translate3d(' + (-v) + 'px, 0px, 0px)',
});
}
} else {
if (settings.vertical === true) {
ob.css('position', 'relative').animate({
top: -v + 'px'
}, settings.speed, settings.easing);
} else {
ob.css('position', 'relative').animate({
left: -v + 'px'
}, settings.speed, settings.easing);
}
}
var $thumb = $slide.parent().find('.lSPager').find('li');
this.active($thumb, true);
},
fade: function () {
this.active($children, false);
var $thumb = $slide.parent().find('.lSPager').find('li');
this.active($thumb, true);
},
slide: function () {
var $this = this;
refresh.calSlide = function () {
if (w > elSize) {
slideValue = $this.slideValue();
$this.active($children, false);
if ((slideValue) > w - elSize - settings.slideMargin) {
slideValue = w - elSize - settings.slideMargin;
} else if (slideValue < 0) {
slideValue = 0;
}
$this.move($el, slideValue);
if (settings.loop === true && settings.mode === 'slide') {
if (scene >= (length - ($el.find('.clone.left').length / settings.slideMove))) {
$this.resetSlide($el.find('.clone.left').length);
}
if (scene === 0) {
$this.resetSlide($slide.find('.lslide').length);
}
}
}
};
refresh.calSlide();
},
resetSlide: function (s) {
var $this = this;
$slide.find('.lSAction a').addClass('disabled');
setTimeout(function () {
scene = s;
$slide.css('transition-duration', '0ms');
slideValue = $this.slideValue();
$this.active($children, false);
plugin.move($el, slideValue);
setTimeout(function () {
$slide.css('transition-duration', settings.speed + 'ms');
$slide.find('.lSAction a').removeClass('disabled');
}, 50);
}, settings.speed + 100);
},
slideValue: function () {
var _sV = 0;
if (settings.autoWidth === false) {
_sV = scene * ((slideWidth + settings.slideMargin) * settings.slideMove);
} else {
_sV = 0;
for (var i = 0; i < scene; i++) {
_sV += (parseInt($children.eq(i).width()) + settings.slideMargin);
}
}
return _sV;
},
slideThumb: function () {
var position;
switch (settings.currentPagerPosition) {
case 'left':
position = 0;
break;
case 'middle':
position = (elSize / 2) - (thumbWidth / 2);
break;
case 'right':
position = elSize - thumbWidth;
}
var sc = scene - $el.find('.clone.left').length;
var $pager = $slide.parent().find('.lSPager');
if (settings.mode === 'slide' && settings.loop === true) {
if (sc >= $pager.children().length) {
sc = 0;
} else if (sc < 0) {
sc = $pager.children().length;
}
}
var thumbSlide = sc * ((thumbWidth + settings.thumbMargin)) - (position);
if ((thumbSlide + elSize) > pagerWidth) {
thumbSlide = pagerWidth - elSize - settings.thumbMargin;
}
if (thumbSlide < 0) {
thumbSlide = 0;
}
this.move($pager, thumbSlide);
},
auto: function () {
if (settings.auto) {
clearInterval(interval);
interval = setInterval(function () {
$el.goToNextSlide();
}, settings.pause);
}
},
pauseOnHover: function(){
var $this = this;
if (settings.auto && settings.pauseOnHover) {
$slide.on('mouseenter', function(){
$(this).addClass('ls-hover');
$el.pause();
settings.auto = true;
});
$slide.on('mouseleave',function(){
$(this).removeClass('ls-hover');
if (!$slide.find('.lightSlider').hasClass('lsGrabbing')) {
$this.auto();
}
});
}
},
touchMove: function (endCoords, startCoords) {
$slide.css('transition-duration', '0ms');
if (settings.mode === 'slide') {
var distance = endCoords - startCoords;
var swipeVal = slideValue - distance;
if ((swipeVal) >= w - elSize - settings.slideMargin) {
if (settings.freeMove === false) {
swipeVal = w - elSize - settings.slideMargin;
} else {
var swipeValT = w - elSize - settings.slideMargin;
swipeVal = swipeValT + ((swipeVal - swipeValT) / 5);
}
} else if (swipeVal < 0) {
if (settings.freeMove === false) {
swipeVal = 0;
} else {
swipeVal = swipeVal / 5;
}
}
this.move($el, swipeVal);
}
},
touchEnd: function (distance) {
$slide.css('transition-duration', settings.speed + 'ms');
if (settings.mode === 'slide') {
var mxVal = false;
var _next = true;
slideValue = slideValue - distance;
if ((slideValue) > w - elSize - settings.slideMargin) {
slideValue = w - elSize - settings.slideMargin;
if (settings.autoWidth === false) {
mxVal = true;
}
} else if (slideValue < 0) {
slideValue = 0;
}
var gC = function (next) {
var ad = 0;
if (!mxVal) {
if (next) {
ad = 1;
}
}
if (!settings.autoWidth) {
var num = slideValue / ((slideWidth + settings.slideMargin) * settings.slideMove);
scene = parseInt(num) + ad;
if (slideValue >= (w - elSize - settings.slideMargin)) {
if (num % 1 !== 0) {
scene++;
}
}
} else {
var tW = 0;
for (var i = 0; i < $children.length; i++) {
tW += (parseInt($children.eq(i).width()) + settings.slideMargin);
scene = i + ad;
if (tW >= slideValue) {
break;
}
}
}
};
if (distance >= settings.swipeThreshold) {
gC(false);
_next = false;
} else if (distance <= -settings.swipeThreshold) {
gC(true);
_next = false;
}
$el.mode(_next);
this.slideThumb();
} else {
if (distance >= settings.swipeThreshold) {
$el.goToPrevSlide();
} else if (distance <= -settings.swipeThreshold) {
$el.goToNextSlide();
}
}
},
enableDrag: function () {
var $this = this;
if (!isTouch) {
var startCoords = 0,
endCoords = 0,
isDraging = false;
$slide.find('.lightSlider').addClass('lsGrab');
$slide.on('mousedown', function (e) {
if (w < elSize) {
if (w !== 0) {
return false;
}
}
if ($(e.target).attr('class') !== ('lSPrev') && $(e.target).attr('class') !== ('lSNext')) {
startCoords = (settings.vertical === true) ? e.pageY : e.pageX;
isDraging = true;
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
// ** Fix for webkit cursor issue https://code.google.com/p/chromium/issues/detail?id=26723
$slide.scrollLeft += 1;
$slide.scrollLeft -= 1;
// *
$slide.find('.lightSlider').removeClass('lsGrab').addClass('lsGrabbing');
clearInterval(interval);
}
});
$(window).on('mousemove', function (e) {
if (isDraging) {
endCoords = (settings.vertical === true) ? e.pageY : e.pageX;
$this.touchMove(endCoords, startCoords);
}
});
$(window).on('mouseup', function (e) {
if (isDraging) {
$slide.find('.lightSlider').removeClass('lsGrabbing').addClass('lsGrab');
isDraging = false;
endCoords = (settings.vertical === true) ? e.pageY : e.pageX;
var distance = endCoords - startCoords;
if (Math.abs(distance) >= settings.swipeThreshold) {
$(window).on('click.ls', function (e) {
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
e.stopImmediatePropagation();
e.stopPropagation();
$(window).off('click.ls');
});
}
$this.touchEnd(distance);
}
});
}
},
enableTouch: function () {
var $this = this;
if (isTouch) {
var startCoords = {},
endCoords = {};
$slide.on('touchstart', function (e) {
endCoords = e.originalEvent.targetTouches[0];
startCoords.pageX = e.originalEvent.targetTouches[0].pageX;
startCoords.pageY = e.originalEvent.targetTouches[0].pageY;
clearInterval(interval);
});
$slide.on('touchmove', function (e) {
if (w < elSize) {
if (w !== 0) {
return false;
}
}
var orig = e.originalEvent;
endCoords = orig.targetTouches[0];
var xMovement = Math.abs(endCoords.pageX - startCoords.pageX);
var yMovement = Math.abs(endCoords.pageY - startCoords.pageY);
if (settings.vertical === true) {
if ((yMovement * 3) > xMovement) {
e.preventDefault();
}
$this.touchMove(endCoords.pageY, startCoords.pageY);
} else {
if ((xMovement * 3) > yMovement) {
e.preventDefault();
}
$this.touchMove(endCoords.pageX, startCoords.pageX);
}
});
$slide.on('touchend', function () {
if (w < elSize) {
if (w !== 0) {
return false;
}
}
var distance;
if (settings.vertical === true) {
distance = endCoords.pageY - startCoords.pageY;
} else {
distance = endCoords.pageX - startCoords.pageX;
}
$this.touchEnd(distance);
});
}
},
build: function () {
var $this = this;
$this.initialStyle();
if (this.doCss()) {
if (settings.enableTouch === true) {
$this.enableTouch();
}
if (settings.enableDrag === true) {
$this.enableDrag();
}
}
$(window).on('focus', function(){
$this.auto();
});
$(window).on('blur', function(){
clearInterval(interval);
});
$this.pager();
$this.pauseOnHover();
$this.controls();
$this.keyPress();
}
};
plugin.build();
refresh.init = function () {
refresh.chbreakpoint();
if (settings.vertical === true) {
if (settings.item > 1) {
elSize = settings.verticalHeight;
} else {
elSize = $children.outerHeight();
}
$slide.css('height', elSize + 'px');
} else {
elSize = $slide.outerWidth();
}
if (settings.loop === true && settings.mode === 'slide') {
refresh.clone();
}
refresh.calL();
if (settings.mode === 'slide') {
$el.removeClass('lSSlide');
}
if (settings.mode === 'slide') {
refresh.calSW();
refresh.sSW();
}
setTimeout(function () {
if (settings.mode === 'slide') {
$el.addClass('lSSlide');
}
}, 1000);
if (settings.pager) {
refresh.createPager();
}
if (settings.adaptiveHeight === true && settings.vertical === false) {
$el.css('height', $children.eq(scene).outerHeight(true));
}
if (settings.adaptiveHeight === false) {
if (settings.mode === 'slide') {
if (settings.vertical === false) {
plugin.setHeight($el, false);
}else{
plugin.auto();
}
} else {
plugin.setHeight($el, true);
}
}
if (settings.gallery === true) {
plugin.slideThumb();
}
if (settings.mode === 'slide') {
plugin.slide();
}
if (settings.autoWidth === false) {
if ($children.length <= settings.item) {
$slide.find('.lSAction').hide();
} else {
$slide.find('.lSAction').show();
}
} else {
if ((refresh.calWidth(false) < elSize) && (w !== 0)) {
$slide.find('.lSAction').hide();
} else {
$slide.find('.lSAction').show();
}
}
};
$el.goToPrevSlide = function () {
if (scene > 0) {
settings.onBeforePrevSlide.call(this, $el, scene);
scene--;
$el.mode(false);
if (settings.gallery === true) {
plugin.slideThumb();
}
} else {
if (settings.loop === true) {
settings.onBeforePrevSlide.call(this, $el, scene);
if (settings.mode === 'fade') {
var l = (length - 1);
scene = parseInt(l / settings.slideMove);
}
$el.mode(false);
if (settings.gallery === true) {
plugin.slideThumb();
}
} else if (settings.slideEndAnimation === true) {
$el.addClass('leftEnd');
setTimeout(function () {
$el.removeClass('leftEnd');
}, 400);
}
}
};
$el.goToNextSlide = function () {
var nextI = true;
if (settings.mode === 'slide') {
var _slideValue = plugin.slideValue();
nextI = _slideValue < w - elSize - settings.slideMargin;
}
if (((scene * settings.slideMove) < length - settings.slideMove) && nextI) {
settings.onBeforeNextSlide.call(this, $el, scene);
scene++;
$el.mode(false);
if (settings.gallery === true) {
plugin.slideThumb();
}
} else {
if (settings.loop === true) {
settings.onBeforeNextSlide.call(this, $el, scene);
scene = 0;
$el.mode(false);
if (settings.gallery === true) {
plugin.slideThumb();
}
} else if (settings.slideEndAnimation === true) {
$el.addClass('rightEnd');
setTimeout(function () {
$el.removeClass('rightEnd');
}, 400);
}
}
};
$el.mode = function (_touch) {
if (settings.adaptiveHeight === true && settings.vertical === false) {
$el.css('height', $children.eq(scene).outerHeight(true));
}
if (on === false) {
if (settings.mode === 'slide') {
if (plugin.doCss()) {
$el.addClass('lSSlide');
if (settings.speed !== '') {
$slide.css('transition-duration', settings.speed + 'ms');
}
if (settings.cssEasing !== '') {
$slide.css('transition-timing-function', settings.cssEasing);
}
}
} else {
if (plugin.doCss()) {
if (settings.speed !== '') {
$el.css('transition-duration', settings.speed + 'ms');
}
if (settings.cssEasing !== '') {
$el.css('transition-timing-function', settings.cssEasing);
}
}
}
}
if (!_touch) {
settings.onBeforeSlide.call(this, $el, scene);
}
if (settings.mode === 'slide') {
plugin.slide();
} else {
plugin.fade();
}
if (!$slide.hasClass('ls-hover')) {
plugin.auto();
}
setTimeout(function () {
if (!_touch) {
settings.onAfterSlide.call(this, $el, scene);
}
}, settings.speed);
on = true;
};
$el.play = function () {
$el.goToNextSlide();
settings.auto = true;
plugin.auto();
};
$el.pause = function () {
settings.auto = false;
clearInterval(interval);
};
$el.refresh = function () {
refresh.init();
};
$el.getCurrentSlideCount = function () {
var sc = scene;
if (settings.loop) {
var ln = $slide.find('.lslide').length,
cl = $el.find('.clone.left').length;
if (scene <= cl - 1) {
sc = ln + (scene - cl);
} else if (scene >= (ln + cl)) {
sc = scene - ln - cl;
} else {
sc = scene - cl;
}
}
return sc + 1;
};
$el.getTotalSlideCount = function () {
return $slide.find('.lslide').length;
};
$el.goToSlide = function (s) {
if (settings.loop) {
scene = (s + $el.find('.clone.left').length - 1);
} else {
scene = s;
}
$el.mode(false);
if (settings.gallery === true) {
plugin.slideThumb();
}
};
$el.destroy = function () {
if ($el.lightSlider) {
$el.goToPrevSlide = function(){};
$el.goToNextSlide = function(){};
$el.mode = function(){};
$el.play = function(){};
$el.pause = function(){};
$el.refresh = function(){};
$el.getCurrentSlideCount = function(){};
$el.getTotalSlideCount = function(){};
$el.goToSlide = function(){};
$el.lightSlider = null;
refresh = {
init : function(){}
};
$el.parent().parent().find('.lSAction, .lSPager').remove();
$el.removeClass('lightSlider lSFade lSSlide lsGrab lsGrabbing leftEnd right').removeAttr('style').unwrap().unwrap();
$el.children().removeAttr('style');
$children.removeClass('lslide active');
$el.find('.clone').remove();
$children = null;
interval = null;
on = false;
scene = 0;
}
};
setTimeout(function () {
settings.onSliderLoad.call(this, $el);
}, 10);
$(window).on('resize orientationchange', function (e) {
setTimeout(function () {
if (e.preventDefault) {
e.preventDefault();
} else {
e.returnValue = false;
}
refresh.init();
}, 200);
});
return this;
};
}(jQuery));
jQuery(document).ready(function(){
jQuery("#as-content-slider").lightSlider({
loop:true,
keyPress:true
});
});
var imgNames = [];
var allimages = [];
var image_date = null;
var image_id = null;
var comments = null;
var likes = null;
var captions = null;
var link_posts=null;
var result = null;
var handle = null;
var x = null;
var y = null;
var fullusernames = null;
var textcomment = null;
var comment_json_string= null;
var $see_all_link = $("#as-instagram-post");
var $see_all = $("#see_all");
var $see_all_popup = $("#see_all_popup");
var $div = $("#as-content-slider");
var $secdiv = $(".popbox");
$.each(imgNames, function(i, val) {
$(" ").css({"float":"left", "width":"100%","display":"none"}).attr("src", val).appendTo($div);
});
$("#as-content-slider img").each(function(index, value){
var imgs=imgNames[index];
$(this).wrap("
"+comments[index]+"
"+likes[index]+"
");
});
$.each(imgNames, function(i, val) {
if(captions[i].length>0)
{
var captionss='';
}
else
{
var captionss='';
}
if(i==0)
{
nextbtn=i+1;
prebtn=imgNames.length-1;
}
else if(i==(imgNames.length-1))
{
nextbtn=0;
prebtn=i-1;
}
else
{
nextbtn=i+1;
prebtn=i-1;
}
btngrps='';
var btngrps=' ';
$('.popbox').append('
'+comments[i]+'
'+likes[i]+'
'+ image_date[i] +'
'+captionss+'
'+btngrps+'
');
});
$(".ps_mod_left").each(function(index, value){
$(this).append("
");
});
$(".ps_products .ps_product_wrper").each(function(index, value)
{
var pic_id = image_id[index];
objs=$(this);
if(result!=null)
{
for (i = 0; i < result.length; i++)
{
if (result[i]['picture_id'] == pic_id )
{
var product_name = result[i]['product_name'];
var product_handle = result[i]['product_handle'];
var picture_id = result[i]['picture_id'];
var product_image_url=result[i]['product_image_url'];
var product_price=result[i]['product_price'];
var x_axis = result[i]['x'];
var y_axis = result[i]['y'];
var shopname = 'shop137.myshopify.com';
var handle_js='https://'+shopname+'/products/'+ product_handle +'.js';
var featured_image;
$.getJSON(handle_js, function(result){
featured_image=result.images;
});
//alert(featured_image);
var product_img_source=" ";
var fb_link="//www.facebook.com/sharer.php?u=";
var product_handle_fb= "https://"+shopname+"/products/"+product_handle+"/";
var fb_url=fb_link+product_handle_fb;
var twitterlink="//twitter.com/share?text="+product_name+"&url=";
var twitter_url=twitterlink+product_handle_fb;
var pintrest_link="//pinterest.com/pin/create/button/?url="+product_handle_fb+"&media="+product_image_url+"&description="+product_name;
var sharing= "";
sharing+= "
";
sharing+= "
";
sharing +="
"
var product_span=""+product_name+" $"+product_price+" ";
var div_product_image="";
var div_product_poprice="Dhs. "+product_price+"
";
$(this).append(""+div_product_image+div_product_poprice+"
Shop Now
"+sharing+"
");
}
}
}
else
{
$(this).append("
");
}
});
$(".ps_mod_left").find('.tagbox').each(function(index, value){
var pic_id = image_id[index];
if(result!=null)
{
for (i = 0; i < result.length; i++)
{
if (result[i]['picture_id'] == pic_id )
{
var product_name = result[i]['product_name'];
var product_handle = result[i]['product_handle'];
var picture_id = result[i]['picture_id'];
var product_image_url=result[i]['product_image_url'];
var product_price=result[i]['product_price'];
var x_axis = result[i]['x'];
var y_axis = result[i]['y'];
var shopname = 'shop137.myshopify.com';
var handle_js='https://'+shopname+'/products/'+ product_handle +'.js';
var featured_image;
$.getJSON(handle_js, function(result){
featured_image=result.images;
});
// alert(featured_image);
$(this).append("");
}
}
}
else
{
}
});
$('.ps_prod').on( 'mouseover', function( ) {
var ids = $(this).attr("id");
$('#view' + ids).css({ opacity: 1.0 });
});
$('.ps_prod').on( 'mouseout', function( ) {
var ids = $(this).attr("id");
$('#view' + ids).css({ opacity: 0 });
});
$( '.tagbox' ).on( 'mouseover', '.tagview', function( ) {
var pos = $( this ).position();
$(this).css({ opacity: 1.0 });
}).on( 'mouseout', '.tagview', function( ) {
$(this).css({ opacity: 0 });
});
$( '.tagbox' ).on( 'mouseover', '.tagview', function( ) {
var pos = $( this ).position();
var ids = $( this ).attr('id');
var idt=ids.split('iew');
var curid=idt[1];
$('.ps_product_wrper').find('#'+curid).css("border","1px solid #333333");
$(this).css({ opacity: 1.0 });
}).on( 'mouseout', '.tagview', function( ) {
$(this).css({ opacity: 0.5 });
var ids = $( this ).attr('id');
var idt=ids.split('iew');
var curid=idt[1];
$('.ps_product_wrper').find('#'+curid).removeAttr("style");
});
$(document).ready(function(){
$('.insta-heading').text('Shoppable Instagram Posts');
$('.lSSlideOuter').css('background-color','#ffffff');
$('.lSSlideOuter').css('border','1px solid #ffffff');
$('.insta-wrapper').css('color','#333333');
$('.as-view-post a').css('color','#333333');
$('.as-likes .fa-heart').css('color','#333333');
$('.ps_insta_status span,.ps_insta_status a').css('color','#333333');
$('.insta_caption p').css('color','#333333');
$('.ps_insta_head span').css('color','#333333');
$('.ps_insta_head').css('color','#333333');
});
$(document).on('click touchstart','.ps_slide_content', function () {
var imgidstr=$(this).attr('dataimg');
var imgidar=imgidstr.split('_');
var imgstring=imgidar[1];
$("#pspop_"+imgstring).addClass('modal_activ');
});
$(document).on('click','.ps_pre_button',function(e){
e.stopPropagation();
var preid=$(this).attr('pid');
$(this).parent().parent().removeClass('modal_activ');
$('#'+preid).addClass('modal_activ');
})
$(document).on('click','.ps_next_button',function(e){
e.stopPropagation();
var nextid=$(this).attr('nid');
$(this).parent().parent().removeClass('modal_activ');
$('#'+nextid).addClass('modal_activ');
})
$('.ps_clos_modal').on('click', function (e) {
e.stopPropagation();
$(this).parent().parent().removeClass('modal_activ');
});
$('.ps_modal-toggle_bg').on('click', function(e) {
$(this).parent().removeClass('modal_activ');
});
leftinitar=[];
topinitar=[];
$('.tagbox .tagview').each(function(){
var tagviewobj=$(this);
var str=tagviewobj.attr('style');
var resar = str.split(";");
var leftstr=resar[0];
var topstr=resar[1];
topstr = topstr.slice(0, -2);
leftstr=leftstr.slice(0, -2);
topar=topstr.split(':');
leftar=leftstr.split(':');
leftstring=leftar[1].trim();
topstring=topar[1].trim();
/* desktop */
leftpx=parseInt(leftstring);
toppx=parseInt(topstring);
leftinitar.push(leftpx);
topinitar.push(toppx);
});
//console.log(leftinitar);
/*
$(window).resize(function() {
if (window.matchMedia('(min-width:320px) and (max-width: 767px)').matches) {
console.log("test Mobile");
}
else if (window.matchMedia('(min-width:768px) and (max-width: 1159px)').matches)
{
//console.log("Tablet");
}
else
{
//console.log("Large Desktop");
}
});
*/
(function (window, document, undefined) {
// Initialize the media query
var MobilemediaQuery = window.matchMedia('(min-width:320px) and (max-width: 767px)');
var TabletmediaQuery = window.matchMedia('(min-width:768px) and (max-width: 1159px)');
var DesktopmediaQuery = window.matchMedia('(min-width:1160px)');
// Add a listen event
MobilemediaQuery.addListener(doSomething);
TabletmediaQuery.addListener(doSomething1);
DesktopmediaQuery.addListener(doSomething2);
//mobile
function doSomething(MobilemediaQuery) {
if (MobilemediaQuery.matches) {
$('.tagbox .tagview').each(function(i){
var tagviewobj=$(this);
mobileleftpx=leftinitar[i];
mobiletoppx=topinitar[i];
mobiledropleft=(38/100)*mobileleftpx;
mobiledropleft=Math.ceil(mobiledropleft);
nleftpx=mobileleftpx-mobiledropleft;
mobiledroptop=(40/100)*mobiletoppx;
mobiledroptop=Math.ceil(mobiledroptop);
ntoppx=mobiletoppx-mobiledroptop;
var str1 = "left: "+nleftpx+"px; top: "+ntoppx+"px; opacity: 0.5;";
tagviewobj.attr('style',str1);
});
}
}
//tablets
function doSomething1(TabletmediaQuery) {
if(TabletmediaQuery.matches)
{
$('.tagbox .tagview').each(function(i){
var tagviewobj=$(this);
tabletleftpx=leftinitar[i];
tablettoppx=topinitar[i];
tabletdropleft=(26/100)*tabletleftpx;
tabletdropleft=Math.ceil(tabletdropleft);
nleftpx=tabletleftpx-tabletdropleft;
tabletdroptop=(26/100)*tablettoppx;
tabletdroptop=Math.ceil(tabletdroptop);
ntoppx=tablettoppx-tabletdroptop;
var str1 = "left: "+nleftpx+"px; top: "+ntoppx+"px; opacity: 0.5;";
tagviewobj.attr('style',str1);
});
}
}
//desktop
function doSomething2(DesktopmediaQuery) {
if(DesktopmediaQuery.matches) {
$('.tagbox .tagview').each(function(i){
var tagviewobj=$(this);
desktopleftpx=leftinitar[i];
desktoptoppx=topinitar[i];
nleftpx=desktopleftpx;
ntoppx=desktoptoppx;
var str1 = "left: "+nleftpx+"px; top: "+ntoppx+"px; opacity: 0.5;";
tagviewobj.attr('style',str1);
});
}
}
doSomething(MobilemediaQuery);
doSomething1(TabletmediaQuery);
doSomething2(DesktopmediaQuery);
})(window, document);