!function($,window,undefined){var pluginName='responsiver',document=window.document,defaults={interval:800,speed:800,fx:'slide',start:0,itemExpr:'.item',reverse:false,step:1,pause:'hover',control:{next:null,prev:null,pager:null,pause:null},selector:{item:'.item',container:'.vpi-wrap'}};var Responsiver=function(element,options){this.element=$(element);this.options=options;this._defaults=defaults;this._name=pluginName;this.element.removeClass('not-js').addClass('js-loaded');this.container=$(this.options.selector.container,this.element);this.viewport=this.container.parent();this.items=$(this.options.selector.item,this.container);this.sliding=false;this.current=this.options.start||0;this.slidingTo=this.current;this.count=this.items.length;if(this.options.control.prev||this.options.control.next||this.options.control.pager||this.options.control.pause){this.options.control.prev&&$(this.options.control.prev).click($.proxy(this.prev,this));this.options.control.next&&$(this.options.control.next).click($.proxy(this.next,this));this.options.control.pause&&$(this.options.control.pause).click(function(e){});} if(this.options.preload){var imgs=$('img',this.items),imgsrc=[],imgload=0,that=this,already=function(){if(imgload==imgsrc.length)that.init();};if(imgs.length){for(var i=0;i').bind('error load',function(){imgload++;if(imgload==imgsrc.length)that.init();}).attr('src',this+'?'+(time=(new Date()).getTime()));});}else{this.init();}}else{this.init();} $(this.viewport).mouseenter($.proxy(function(e){this.options.pause=='hover'&&this.pause();},this)).mouseleave($.proxy(function(e){this.options.pause=='hover'&&this.cycle();},this));$(window).bind('resize.responsiver',this.resize.bind(this));} Responsiver.prototype={init:function(duration){this._setViewport();this.to(this.slidingTo,0);},next:function(){if(this.sliding)return;return this.slide(this._getNext());},prev:function(){if(this.sliding)return;return this.slide(this._getPrevious());},pause:function(e){if(!e)this.paused=true;clearInterval(this.interval);this.interval=null;return this;},pauseToggle:function(e){},slide:function(next,duration){if(!next.length)return;var isCycling=this.interval,e=$.Event('slide'),that=this;this.sliding=true isCycling&&this.pause();if(e.isDefaultPrevented())return;var slideSpeed=typeof duration=='number'?duration:this.options.speed;if(this.options.fx=='slide'){this.container.animate({left:-next.position().left},{duration:slideSpeed,complete:function(){if(that.slidingTo>=that.count){that.slidingTo%=that.count;that.container.css({left:-that.items.eq(that.slidingTo).position().left});} that.current=that.slidingTo;that.sliding=false;that.update();}});}else if(this.options.fx=='fade'){var clone=this.container.clone().appendTo(this.viewport);this.container.css({opacity:0,left:-next.position().left,'z-index':2}).animate({opacity:1},{duration:slideSpeed,complete:function(){if(that.slidingTo>=that.count||that.slidingTo<0){that.slidingTo+=that.count;that.slidingTo%=that.count;that.container.css({left:-that.items.eq(that.slidingTo).position().left});} that.current=that.slidingTo;that.sliding=false;that.update();}});$(clone).css({'z-index':1}).animate({opacity:0},{duration:this.options.speed,complete:function(){$(this).remove();}});} isCycling&&this.cycle();return this;},to:function(pos,duration){return this.slide(this._getNext(pos),duration);},cycle:function(e){if(!e)this.paused=false this.options.interval&&!this.paused&&(this.interval=setInterval($.proxy(this.next,this),this.options.interval));return this},update:function(){var opts=this.options,column=this._getColumns();if(this.current<0){this.current+=this.count;}else if(this.current>=this.count){this.current%=this.count;} if(!this.options.circular){} if(!this.options.circular&&this.current<=0){$(this.options.prev).addClass('disabled');}else{$(this.options.prev).removeClass('disabled');} if(!this.options.circular&&(this.current+this._getColumns()>=this.count)){$(this.options.next).addClass('disabled');}else{$(this.options.next).removeClass('disabled');}},resize:function(e){if(this.resizeTimeout)clearTimeout(this.resizeTimeout);this.resizeTimeout=setTimeout(function(){this._setViewport();this.to(this.current,0);}.bind(this),10);},_getColumns:function(){if(typeof this.options.getColumns=='function'){this.column=this.options.getColumns.apply(this.element,[this.element]);}else if(typeof this.options.getColumns=='number'){this.column=this.options.getColumns;}else{var column=parseInt(this.options.getColumns);this.column=column?column:1;} if(this.options.circular===true){var num_clone=$('.clone',this.container).length,max=this.column+this.getStep()-1;if(num_clonethis.items.length-1)break;this.items.eq(i).clone().appendTo(this.container).addClass('clone');}}} return this.column;},_setViewport:function(){var toHeight=0;$.each(this.items,function(){if(toHeight<$(this).height()){toHeight=$(this).height();}});this.viewport.stop(true,true).animate({height:toHeight},{duration:400});},_getNext:function(e){if(typeof e=='undefined'){this.slidingTo=this.current+(this.isForward()?this.getStep():-this.getStep());}else{this.slidingTo=e;} if(this.slidingTo<0){if(!this.options.circular){this.slidingTo+=this.count;}else{var next=$('.clone:eq('+this.current+')',this.container);if(next.length){this.container.css({left:-next.position().left});}}}else if(this.slidingTo>=this.count){if(!this.options.circular){this.slidingTo%=this.count;}else if(this.isForward()){return $('.clone:eq('+(this.slidingTo%this.count)+')',this.container);}} return this.items.eq(this.slidingTo);},_getPrevious:function(e){var _reverse=this.options.reverse||false;this.options.reverse=!_reverse;var prev=this._getNext(e);this.options.reverse=_reverse;return prev;},isForward:function(){return this.options.reverse?false:true;},getStep:function(){return this.options.step;}};$.fn[pluginName]=function(option){return this.each(function(){var $this=$(this),data=$this.data('plugin_'+pluginName);var options=typeof option=='object'?$.extend({},defaults,option):defaults;if(!data)$this.data('plugin_'+pluginName,(data=new Responsiver(this,options)));if(typeof option=='number')data.to(option);else if(typeof option=='string')data[option]();else if(options.interval)data.cycle();});};$.fn[pluginName].Constructor=Responsiver;}(jQuery,window);