(function($){"use strict";var defaults;defaults={ slippryWrapper:'<div class="sy-box" />',slideWrapper:'<div class="sy-slides-wrap" />',slideCrop:'<div class="sy-slides-crop" />',boxClass:'sy-list',elements:'li',activeClass:'sy-active',fillerClass:'sy-filler',loadingClass:'sy-loading', adaptiveHeight:true,start:1,loop:true,captionsSrc:'img',captions:'overlay',captionsEl:'.sy-caption',initSingle:true,responsive:true,preload:'visible', pager:true,pagerClass:'sy-pager', controls:true,controlClass:'sy-controls',prevClass:'sy-prev',prevText:'Previous',nextClass:'sy-next',nextText:'Next',hideOnEnd:true, transition:'fade',kenZoom:120,slideMargin:0,transClass:'transition',speed:800,easing:'swing',continuous:true,useCSS:true, auto:true,autoDirection:'next',autoHover:true,autoHoverDelay:100,autoDelay:500,pause:4000, onSliderLoad:function(){return this; },onSlideBefore:function(){return this; },onSlideAfter:function(){return this; } };$.fn.slippry=function(options){var slip,el,prepareFiller,getFillerProportions,init,updateCaption,initPager,initControls,ready,transitionDone,whichTransitionEvent,initCaptions,updatePager,setFillerProportions,doTransition,updateSlide,openSlide,updateControls,updatePos,supports,preload,start,elFromSel,doKens; el=this; if(el.length===0){return this; } if(el.length>1){el.each(function(){$(this).slippry(options); });return this; } slip={};slip.vars={};whichTransitionEvent=function(){var t,div,transitions;div=document.createElement('div');transitions={'WebkitTransition':'webkitTransitionEnd','MozTransition' :'transitionend','MSTransition':'msTransitionEnd','OTransition' :'oTransitionEnd','transition':'transitionEnd transitionend' };for(t in transitions){if(div.style[t]!==undefined){return transitions[t]; } } };supports=(function(){var div=document.createElement('div'),vendors=['Khtml','Ms','O','Moz','Webkit'],len=vendors.length;return function(prop){if(prop in div.style){return true; }prop=prop.replace(/^[a-z]/,function(val){return val.toUpperCase(); });while(len--){if(vendors[len]+prop in div.style){return true; } }return false; }; }());elFromSel=function(sel,prop){var props,newelement,id,className;props=prop.split('.');newelement=$(sel);id='';className='';$.each(props,function(i,val){if(val.indexOf('#')>=0){id+=val.replace(/^#/,''); }else{className+=val+' '; } });if(id.length){newelement.attr('id',id); }if(className.length){newelement.attr('class',$.trim(className)); }return newelement; };doKens=function(){var kenStart,kenTime,animProp,cssProp;animProp={};cssProp={};kenStart=100-slip.settings.kenZoom;cssProp.width=slip.settings.kenZoom+'%';if(slip.vars.active.index()% 2===0){cssProp.left=kenStart+'%';cssProp.top=kenStart+'%';animProp.left='0%';animProp.top='0%'; }else{cssProp.left='0%';cssProp.top='0%';animProp.left=kenStart+'%';animProp.top=kenStart+'%'; }kenTime=slip.settings.pause+slip.settings.speed*2;slip.vars.active.css(cssProp);slip.vars.active.animate(animProp,{duration:kenTime,easing:slip.settings.easing,queue:false}); };ready=function(){if(slip.vars.fresh){slip.vars.slippryWrapper.removeClass(slip.settings.loadingClass);slip.vars.fresh=false;if(slip.settings.auto){el.startAuto(); }if(!slip.settings.useCSS&&slip.settings.transition==='kenburns'){doKens(); }slip.settings.onSliderLoad.call(undefined,slip.vars.active.index()); }else{$('.'+slip.settings.fillerClass,slip.vars.slideWrapper).addClass('ready'); } };setFillerProportions=function(width,height){var ratio,p_top,$filler;ratio=width / height;p_top=1 / ratio*100+'%';$filler=$('.'+slip.settings.fillerClass,slip.vars.slideWrapper);$filler.css({paddingTop:p_top});ready(); }; getFillerProportions=function($slide){var width,height;if(($('img',$slide).attr("src")!==undefined)){$("<img />").on("load",function(){width=$slide.width();height=$slide.height();setFillerProportions(width,height); }).attr("src",$('img',$slide).attr("src")); }else{width=$slide.width();height=$slide.height();setFillerProportions(width,height); } }; prepareFiller=function(){if($('.'+slip.settings.fillerClass,slip.vars.slideWrapper).length===0){slip.vars.slideWrapper.append($('<div class="'+slip.settings.fillerClass+'" />')); }if(slip.settings.adaptiveHeight===true){getFillerProportions($('.'+slip.settings.activeClass,el)); }else{var $highest,height,loop;height=0;loop=0;$(slip.vars.slides).each(function(){if($(this).height()>height){$highest=$(this);height=$highest.height(); }loop=loop+1;if(loop===slip.vars.count){if($highest===undefined){$highest=$($(slip.vars.slides)[0]); }getFillerProportions($highest); } }); } };updatePager=function(){if(slip.settings.pager){$('.'+slip.settings.pagerClass+' li',slip.vars.slippryWrapper).removeClass(slip.settings.activeClass);$($('.'+slip.settings.pagerClass+' li',slip.vars.slippryWrapper)[slip.vars.active.index()]).addClass(slip.settings.activeClass); } };updateControls=function(){if(!slip.settings.loop&&slip.settings.hideOnEnd){$('.'+slip.settings.prevClass,slip.vars.slippryWrapper)[slip.vars.first?'hide':'show']();$('.'+slip.settings.nextClass,slip.vars.slippryWrapper)[slip.vars.last?'hide':'show'](); } };updateCaption=function(){var caption,wrapper;if(slip.settings.captions !==false){if(slip.settings.captionsSrc !=='img'){caption=slip.vars.active.attr('title'); }else{caption=$('img',slip.vars.active).attr('title')!==undefined?$('img',slip.vars.active).attr('title'):$('img',slip.vars.active).attr('alt'); }if(slip.settings.captions !=='custom'){wrapper=$(slip.settings.captionsEl,slip.vars.slippryWrapper); }else{wrapper=$(slip.settings.captionsEl); }if((caption !==undefined)&&(caption !=='')){wrapper.html(caption).show(); }else{wrapper.hide(); } } };el.startAuto=function(){if((slip.vars.timer===undefined)&&(slip.vars.delay===undefined)){slip.vars.delay=window.setTimeout(function(){slip.vars.autodelay=false;slip.vars.timer=window.setInterval(function(){slip.vars.trigger='auto';openSlide(slip.settings.autoDirection); },slip.settings.pause); },slip.vars.autodelay?slip.settings.autoHoverDelay:slip.settings.autoDelay);if(slip.settings.autoHover){slip.vars.slideWrapper.unbind('mouseenter').unbind('mouseleave').bind('mouseenter',function(){ if(slip.vars.timer !==undefined){slip.vars.hoverStop=true;el.stopAuto(); }else{slip.vars.hoverStop=false; } }).bind('mouseleave',function(){if(slip.vars.hoverStop){slip.vars.autodelay=true;el.startAuto(); } }); } } };el.stopAuto=function(){window.clearInterval(slip.vars.timer);slip.vars.timer=undefined;window.clearTimeout(slip.vars.delay);slip.vars.delay=undefined; }; el.refresh=function(){slip.vars.slides.removeClass(slip.settings.activeClass);slip.vars.active.addClass(slip.settings.activeClass);if(slip.settings.responsive){prepareFiller(); }else{ready(); }updateControls();updatePager();updateCaption(); };updateSlide=function(){el.refresh(); };transitionDone=function(){slip.vars.moving=false;slip.vars.active.removeClass(slip.settings.transClass);if(!slip.vars.fresh){slip.vars.old.removeClass('sy-ken'); }slip.vars.old.removeClass(slip.settings.transClass);slip.settings.onSlideAfter.call(undefined,slip.vars.active,slip.vars.old.index(),slip.vars.active.index());if(slip.settings.auto){if(!slip.vars.hoverStop||slip.vars.hoverStop===undefined){el.startAuto(); } } };doTransition=function(){var pos,jump,old_left,old_pos,kenTime,ref,cssProp;slip.settings.onSlideBefore.call(undefined,slip.vars.active,slip.vars.old.index(),slip.vars.active.index());if(slip.settings.transition !==false){slip.vars.moving=true;if((slip.settings.transition==='fade')||(slip.settings.transition==='kenburns')){if(slip.vars.fresh){if(slip.settings.useCSS){slip.vars.slides.css({transitionDuration:slip.settings.speed+'ms',opacity:0}); }else{slip.vars.slides.css({opacity:0}); }slip.vars.active.css('opacity',1);if(slip.settings.transition==='kenburns'){if(slip.settings.useCSS){kenTime=slip.settings.pause+slip.settings.speed*2;slip.vars.slides.css({animationDuration:kenTime+'ms'});slip.vars.active.addClass('sy-ken'); } }transitionDone(); }else{if(slip.settings.useCSS){slip.vars.old.addClass(slip.settings.transClass).css('opacity',0);slip.vars.active.addClass(slip.settings.transClass).css('opacity',1);if(slip.settings.transition==='kenburns'){slip.vars.active.addClass('sy-ken'); }$(window).off('focus').on('focus',function(){if(slip.vars.moving){slip.vars.old.trigger(slip.vars.transition); } });slip.vars.old.one(slip.vars.transition,function(){transitionDone();return this; }); }else{if(slip.settings.transition==='kenburns'){doKens(); }slip.vars.old.addClass(slip.settings.transClass).animate({opacity:0 },slip.settings.speed,slip.settings.easing,function(){transitionDone(); });slip.vars.active.addClass(slip.settings.transClass).css('opacity',0).animate({opacity:1 },slip.settings.speed,slip.settings.easing); } }updateSlide(); }else if((slip.settings.transition==='horizontal')||(slip.settings.transition==='vertical')){ref=(slip.settings.transition==='horizontal')?'left':'top';pos='-'+slip.vars.active.index()*(100+slip.settings.slideMargin)+'%';if(slip.vars.fresh){el.css(ref,pos);transitionDone(); }else{cssProp={};if(slip.settings.continuous){if(slip.vars.jump&&((slip.vars.trigger==='controls')||(slip.vars.trigger==='auto'))){jump=true;old_pos=pos;if(slip.vars.first){old_left=0;slip.vars.active.css(ref,slip.vars.count*(100+slip.settings.slideMargin)+'%');pos='-'+slip.vars.count*(100+slip.settings.slideMargin)+'%'; }else{old_left=(slip.vars.count-1)*(100+slip.settings.slideMargin)+'%';slip.vars.active.css(ref,-(100+slip.settings.slideMargin)+'%');pos=(100+slip.settings.slideMargin)+'%'; } } }slip.vars.active.addClass(slip.settings.transClass);if(slip.settings.useCSS){cssProp[ref]=pos;cssProp.transitionDuration=slip.settings.speed+'ms';el.addClass(slip.settings.transition);el.css(cssProp);$(window).off('focus').on('focus',function(){if(slip.vars.moving){el.trigger(slip.vars.transition); } });el.one(slip.vars.transition,function(){el.removeClass(slip.settings.transition);if(jump){slip.vars.active.css(ref,old_left);cssProp[ref]=old_pos;cssProp.transitionDuration='0ms';el.css(cssProp); }transitionDone();return this; }); }else{cssProp[ref]=pos;el.stop().animate(cssProp,slip.settings.speed,slip.settings.easing,function(){if(jump){slip.vars.active.css(ref,old_left);el.css(ref,old_pos); }transitionDone();return this; }); } }updateSlide(); } }else{updateSlide();transitionDone(); } };updatePos=function(slide){slip.vars.first=slip.vars.last=false;if((slide==='prev')||(slide===0)){slip.vars.first=true; }else if((slide==='next')||(slide===slip.vars.count-1)){slip.vars.last=true; } };openSlide=function(slide){var current,direction;if(!slip.vars.moving){if(slip.vars.trigger !=='auto'){el.stopAuto(); }current=slip.vars.active.index();if(slide==='prev'){direction=slide;if(current>0){slide=current-1; }else if(slip.settings.loop){slide=slip.vars.count-1; } }else if(slide==='next'){direction=slide;if(current<slip.vars.count-1){slide=current+1; }else if(slip.settings.loop){slide=0; } }else{slide=slide-1;direction=slide<current?'prev':'next'; }slip.vars.jump=false;if((slide !=='prev')&&(slide !=='next')&&((slide !==current)||(slip.vars.fresh))){updatePos(slide);slip.vars.old=slip.vars.active;slip.vars.active=$(slip.vars.slides[slide]);if(((current===0)&&(direction==='prev'))||((current===slip.vars.count-1)&&(direction==='next'))){slip.vars.jump=true; }doTransition(); } } };el.goToSlide=function(slide){slip.vars.trigger='external';openSlide(slide); };el.goToNextSlide=function(){slip.vars.trigger='external';openSlide('next'); };el.goToPrevSlide=function(){slip.vars.trigger='external';openSlide('prev'); };initPager=function(){if((slip.settings.pager)&&(slip.vars.count>1)){var count,loop,pager;count=slip.vars.slides.length;pager=$('<ul class="'+slip.settings.pagerClass+'" />');for(loop=1;loop<count+1;loop=loop+1){pager.append($('<li />').append($('<a href="#'+loop+'">'+loop+'</a>'))); }slip.vars.slippryWrapper.append(pager);$('.'+slip.settings.pagerClass+' a',slip.vars.slippryWrapper).click(function(){slip.vars.trigger='pager';openSlide(parseInt(this.hash.split('#')[1],10));return false; });updatePager(); } };initControls=function(){if((slip.settings.controls)&&(slip.vars.count>1)){slip.vars.slideWrapper.append($('<ul class="'+slip.settings.controlClass+'" />').append('<li class="'+slip.settings.prevClass+'"><p class="control_ico" data-control="prev">'+slip.settings.prevText+'</p></li>').append('<li class="'+slip.settings.nextClass+'"><p class="control_ico" data-control="next" href="#next">'+slip.settings.nextText+'</p></li>') );$('.'+slip.settings.controlClass+' .control_ico',slip.vars.slippryWrapper).click(function(){slip.vars.trigger='controls';openSlide($(this).attr('data-control'));return false; });updateControls(); } };initCaptions=function(){if(slip.settings.captions !==false){if(slip.settings.captions==='overlay'){slip.vars.slideWrapper.append($('<div class="sy-caption-wrap" />').html(elFromSel('<div />',slip.settings.captionsEl))); }else if(slip.settings.captions==='below'){slip.vars.slippryWrapper.append($('<div class="sy-caption-wrap" />').html(elFromSel('<div />',slip.settings.captionsEl))); } } }; start=function(){openSlide(slip.vars.active.index()+1); }; preload=function(slides){var count,loop,elements,container;container=(slip.settings.preload==='all')?slides:slip.vars.active;elements=$('img,iframe',container);count=elements.length;if(count===0){start();return; }loop=0;elements.each(function(){$(this).one('load error',function(){if(++loop===count){start(); } }).each(function(){if(this.complete){$(this).trigger('load'); } }); }); };el.getCurrentSlide=function(){return slip.vars.active; };el.getSlideCount=function(){return slip.vars.count; };el.destroySlider=function(){if(slip.vars.fresh===false){el.stopAuto();slip.vars.moving=false;slip.vars.slides.each(function(){if($(this).data("sy-cssBckup")!==undefined){$(this).attr("style",$(this).data("sy-cssBckup")); }else{$(this).removeAttr('style'); }if($(this).data("sy-classBckup")!==undefined){$(this).attr("class",$(this).data("sy-classBckup")); }else{$(this).removeAttr('class'); } });if(el.data("sy-cssBckup")!==undefined){el.attr("style",el.data("sy-cssBckup")); }else{el.removeAttr('style'); }if(el.data("sy-classBckup")!==undefined){el.attr("class",el.data("sy-classBckup")); }else{el.removeAttr('class'); }slip.vars.slippryWrapper.before(el);slip.vars.slippryWrapper.remove();slip.vars.fresh=undefined; } };el.reloadSlider=function(){el.destroySlider();init(); }; init=function(){var first;slip.settings=$.extend({},defaults,options);slip.vars.slides=$(slip.settings.elements,el);slip.vars.count=slip.vars.slides.length;if(slip.settings.useCSS){if(!supports('transition')){slip.settings.useCSS=false; }slip.vars.transition=whichTransitionEvent(); }el.data('sy-cssBckup',el.attr('style'));el.data('sy-classBackup',el.attr('class'));el.addClass(slip.settings.boxClass).wrap(slip.settings.slippryWrapper).wrap(slip.settings.slideWrapper).wrap(slip.settings.slideCrop);slip.vars.slideWrapper=el.parent().parent();slip.vars.slippryWrapper=slip.vars.slideWrapper.parent().addClass(slip.settings.loadingClass);slip.vars.fresh=true;slip.vars.slides.each(function(){$(this).addClass('sy-slide '+slip.settings.transition);if(slip.settings.useCSS){$(this).addClass('useCSS'); }if(slip.settings.transition==='horizontal'){$(this).css('left',$(this).index()*(100+slip.settings.slideMargin)+'%'); }else if(slip.settings.transition==='vertical'){$(this).css('top',$(this).index()*(100+slip.settings.slideMargin)+'%'); } });if((slip.vars.count>1)||(slip.settings.initSingle)){if($('.'+slip.settings.activeClass,el).index()===-1){if(slip.settings.start==='random'){first=Math.round(Math.random()*(slip.vars.count-1)); }else if(slip.settings.start>0&&slip.settings.start<=slip.vars.count){first=slip.settings.start-1; }else{first=0; }slip.vars.active=$(slip.vars.slides[first]).addClass(slip.settings.activeClass); }else{slip.vars.active=$('.'+slip.settings.activeClass,el); }initControls();initPager();initCaptions();preload(slip.vars.slides); }else{return this; } };init();return this; };}(jQuery));