/** * @version $Id: slider.js 28 2015-07-27 11:35:02Z szymon $ * @package DJ-ImageSlider * @subpackage DJ-ImageSlider Component * @copyright Copyright (C) 2012 DJ-Extensions.com, All rights reserved. * @license DJ-Extensions.com Proprietary Use License * @author url: http://dj-extensions.com * @author email contact@dj-extensions.com * @developer Szymon Woronowski - szymon.woronowski@design-joomla.eu * */ !function($){var F={init:function(m){m.data();var n=m.data('djslider');var o=m.data('animation');m.removeAttr('data-djslider');m.removeAttr('data-animation');var q=$('#djslider'+n.id).css('opacity',0);var r=$('#slider'+n.id).css('position','relative');var t=n.css3=='1'?support('transition'):false;var u=r.children('li');var w=n.slide_size;var x=n.visible_slides;var y=w*u.length;var z=u.length-x;var A=0;var B=o.auto=='1'?1:0;var C=0;var D=false;if(n.slider_type==2){u.css('position','absolute');u.css('top',0);u.css('left',0);r.css('width',w);u.css('opacity',0);u.css('visibility','hidden');$(u[0]).css('opacity',1);$(u[0]).css('visibility','visible');if(t)u.css(t,'opacity '+o.duration+'ms '+o.css3transition)}else if(n.slider_type==1){r.css('top',0);r.css('height',y);if(t)r.css(t,'top '+o.duration+'ms '+o.css3transition)}else{r.css(n.direction,0);r.css('width',y);if(t)r.css(t,n.direction+' '+o.duration+'ms '+o.css3transition)}if(n.show_arrows>0){$('#next'+n.id).on('click',function(){if(n.direction=='right')prevSlide();else nextSlide()});$('#prev'+n.id).on('click',function(){if(n.direction=='right')nextSlide();else prevSlide()})}if(n.show_buttons>0){$('#play'+n.id).on('click',function(){changeNavigation();B=1});$('#pause'+n.id).on('click',function(){changeNavigation();B=0})}m.on('mouseenter',function(){C=1}).on('mouseleave',function(){C=0});m.djswipe(function(a,b){if(b.x<100||b.y>30){return}if(a.x=="left"){if(n.direction=='right')prevSlide();else nextSlide()}else if(a.x=="right"){if(n.direction=='right')nextSlide();else prevSlide()}});if($('#cust-navigation'+n.id).length){var E=$('#cust-navigation'+n.id).find('.load-button');E.each(function(a){var b=$(this);b.on('click',function(e){if(!D&&!b.hasClass('load-button-active')){loadSlide(a)}});if(a>z)b.css('display','none')})}function getSize(a){return{'x':a.width(),'y':a.height()}}function responsive(){var c=m.parent();var d=getSize(c).x;var e=parseInt(q.css('max-width'));var f=getSize(q);var g=f.x;if(g>d){g=d}else if(g<=d&&(!e||ge?e:d)}var h=f.x/f.y;var i=g/h;q.css('width',g);q.css('height',i);if(n.slider_type==2){r.css('width',g);u.css('width',g);u.css('height',i)}else if(n.slider_type==1){var j=parseInt($(u[0]).css('margin-bottom'));w=(i+j)/x;y=u.length*w+u.length;r.css('height',y);u.css('width',g);u.css('height',w-j);r.css('top',-w*A)}else{var j=n.direction=='right'?parseInt($(u[0]).css('margin-left')):parseInt($(u[0]).css('margin-right'));var k=Math.ceil(g/(n.slide_size+j));if(k!=x){x=(k>n.visible_slides?n.visible_slides:k);z=u.length-x;if($('#cust-navigation'+n.id).length){var l=$('#cust-navigation'+n.id).find('.load-button');l.each(function(a){var b=$(this);if(a>z)b.css('display','none');else b.css('display','')})}h=(x*w-j)/f.y;i=g/h;q.css('height',i)}w=(g+j)/x;y=u.length*w+u.length;r.css('width',y);u.css('width',w-j);u.css('height',i);r.css(n.direction,-w*A);if(A>z)loadSlide(z)}if(n.show_buttons>0||n.show_arrows>0){button_pos=$('#navigation'+n.id).position().top;if(button_pos<0){m.css('padding-top',-button_pos);m.css('padding-bottom',0)}else{buttons_height=0;if(n.show_arrows>0){buttons_height=getSize($('#next'+n.id)).y;buttons_height=Math.max(buttons_height,getSize($('#prev'+n.id)).y)}if(n.show_buttons>0){buttons_height=Math.max(buttons_height,getSize($('#play'+n.id)).y);buttons_height=Math.max(buttons_height,getSize($('#pause'+n.id)).y)}padding=button_pos+buttons_height-i;if(padding>0){m.css('padding-top',0);m.css('padding-bottom',padding)}else{m.css('padding-top',0);m.css('padding-bottom',0)}}buttons_margin=parseInt($('#navigation'+n.id).css('margin-left'))+parseInt($('#navigation'+n.id).css('margin-right'));if(buttons_margin<0&&getSize($(window)).x0)loadSlide(A-1);else loadSlide(z)}function loadSlide(a){if(A==a)return;if(n.slider_type==2){if(D)return;D=true;prev_slide=A;A=a;makeFade(prev_slide)}else{A=a;if(n.slider_type==1){if(t){r.css('top',-w*A)}else{r.animate({top:-w*A},o.duration,o.transition)}}else{if(t){r.css(n.direction,-w*A)}else{if(n.direction=='right')r.animate({right:-w*A},o.duration,o.transition);else r.animate({left:-w*A},o.duration,o.transition)}}}updateActiveButton(A)}function makeFade(a){$(u[A]).css('visibility','visible');if(t){$(u[A]).css('opacity',1);$(u[a]).css('opacity',0)}else{$(u[A]).animate({opacity:1},o.duration,o.transition);$(u[a]).animate({opacity:0},o.duration,o.transition)}setTimeout(function(){$(u[a]).css('visibility','hidden');D=false},o.duration)}function changeNavigation(){if(B){$('#pause'+n.id).css('display','none');$('#play'+n.id).css('display','block')}else{$('#play'+n.id).css('display','none');$('#pause'+n.id).css('display','block')}}function slidePlay(){setTimeout(function(){if(B&&!C)nextSlide();slidePlay()},o.delay)}function sliderLoaded(){m.css('background','none');q.css('opacity',1);responsive();if(n.show_buttons>0){play_width=getSize($('#play'+n.id)).x;$('#play'+n.id).css('margin-left',-play_width/2);pause_width=getSize($('#pause'+n.id)).x;$('#pause'+n.id).css('margin-left',-pause_width/2);if(B){$('#play'+n.id).css('display','none')}else{$('#pause'+n.id).css('display','none')}}slidePlay()}function support(p){var b=document.body||document.documentElement,s=b.style;if(typeof s=='undefined')return false;if(typeof s[p]=='string')return p;v=['Moz','Webkit','Khtml','O','ms','Icab'],pu=p.charAt(0).toUpperCase()+p.substr(1);for(var i=0;ioriginalPosition.x)?"right":"left";dy=(y>originalPosition.y)?"down":"up";return{direction:{x:dx,y:dy},offset:{x:Math.abs(x-originalPosition.x),y:Math.abs(originalPosition.y-y)}}}$el.on("touchstart",function(a){c=true;originalPosition={x:a.originalEvent.touches[0].pageX,y:a.originalEvent.touches[0].pageY}});$el.on("touchend",function(){c=false;if(info)b(info.direction,info.offset);originalPosition=null;info=null});$el.on("touchmove",function(a){if(!c){return}info=swipeInfo(a)});return true};$(document).ready(function(){$('[data-djslider]').each(function(){F.init($(this))})})}(jQuery);