(function($){$.fn.ocSlider=function(options){if(!this.length){return this}var defaults={moveSlideQty:1,controls:true,hideControlOnEnd:false,blockControlOnLoop:true,butNextClass:"button_next",butNextClassDeactivate:"",butPrevClass:"button_prev",butPrevClassDeactivate:"",directAccesClass:"",autoHover:true,outerButton:true,auto:false,autoDirection:"next",autoDelay:0,autoPause:3000,displaySlideQty:1,currentSlide:0,infiniteLoop:false,loopDisplay:"default",speed:500,clickSpeed:500,debug:false};options=$.extend(defaults,options);var base=$(this);var $ul=$("."+base.attr("class")+" ul:first");var $li=$ul.children();var $buttons_access="";var $button_next=$("."+options.butNextClass);var $button_prev=$("."+options.butPrevClass);var firstSlide=0;var lastSlide=$li.length-1;var firstCurrentSlide=options.currentSlide;var lastCurrentSlide=firstCurrentSlide+options.displaySlideQty-1;var liWidth=0;var liHeight=parseInt($li.eq(firstSlide).css("height").replace("px",""));var intervalId="";var clickedNext=false;var clickedPrev=false;var crossing=0;initShow();function initShow(){liHeight=parseInt($li.eq(firstSlide).css("height").replace("px",""));if($li.eq(firstSlide).css("marginRight")!="auto"&&$li.eq(firstSlide).css("marginLeft")!="auto"){liWidth=$li.width()+parseInt($li.eq(firstSlide).css("paddingLeft").replace("px",""))+parseInt($li.eq(firstSlide).css("paddingRight").replace("px",""))+parseInt($li.eq(firstSlide).css("marginLeft").replace("px",""))+parseInt($li.eq(firstSlide).css("marginRight").replace("px",""))}else{liWidth=$li.width()+parseInt($li.eq(firstSlide).css("paddingLeft").replace("px",""))+parseInt($li.eq(firstSlide).css("paddingRight").replace("px",""))}if($li.eq(firstSlide).css("borderLeftWidth")!=""&&is_int($li.eq(firstSlide).css("borderLeftWidth"))){liWidth+=(parseInt($li.eq(firstSlide).css("borderLeftWidth").replace("px",""))*2)}var ulWidth=liWidth*($ul.children().length);if(options.outerButton){ulWidth+=parseInt($button_prev.outerWidth())+parseInt($button_next.outerWidth())}$ul.parent().parent().css("width",liWidth*options.displaySlideQty);$ul.parent().parent().css("overflow","hidden");$ul.parent().css("float","left");$ul.parent().css("width",liWidth*options.displaySlideQty);$ul.parent().css("heigth",liHeight);$ul.parent().css("overflow","hidden");$ul.css("width",ulWidth+"px");$ul.css("height",(liHeight+2)+"px");$ul.css("padding","0");$ul.css("list-style","none");$ul.css("position","relative");$ul.css("left","0px");if(options.loopDisplay=="continuous"){for(var i=0;i<$ul.children().length;i++){$ul.children(":nth-child("+(i+1)+")").attr("id",(i+1))}}$li.css("float","left");window.onblur=function(){clearInterval(base.intervalId)};window.onfocus=function(){base.intervalId=setAutoInterval()};if(options.directAccesClass!=""){$buttons_access=$("ul."+options.directAccesClass);for(var i=1;i<=$buttons_access.children().length;i++){prepareAccessButton(i)}}$button_next.css("cursor","pointer");$button_prev.css("cursor","pointer");$button_next.click(function(){onClickToggle("next")});$button_prev.click(function(){onClickToggle("prev")});if(options.auto){base.intervalId=setAutoInterval();if(options.autoHover){base.hover(function(){base.intervalId=clearInterval(base.intervalId)},function(){base.intervalId=setAutoInterval()})}}checkEndControls()}function prepareAccessButton(id){$buttons_access.children(":nth-child("+id+")").click(function(){gotoSlide(id-1)}).css("cursor","pointer").hover(function(){base.intervalId=clearInterval(base.intervalId)},function(){base.intervalId=setAutoInterval()})}function onClickToggle(direction){switch(direction){case"next":if(!clickedNext){clickedNext=true;goToNextSlide()}break;case"prev":if(!clickedPrev){clickedPrev=true;goToPrevSlide()}break}}function checkEndControls(){if(!(options.infiniteLoop&&!options.blockControlOnLoop)&&options.loopDisplay!="continuous"){if(lastCurrentSlide+options.moveSlideQty>lastSlide){if(options.hideControlOnEnd){$button_next.hide()}else{if(options.butNextClassDeactivate==""){$button_next.fadeTo(0,0.4)}else{$button_next.addClass(options.butNextClassDeactivate)}}$button_next.unbind("click")}if(firstCurrentSlide-options.moveSlideQty<=firstSlide){if(options.hideControlOnEnd){$button_prev.hide()}else{if(options.butPrevClassDeactivate==""){$button_prev.fadeTo(0,0.4)}else{$button_prev.addClass(options.butPrevClassDeactivate)}}$button_prev.unbind("click")}if((lastCurrentSlide==(lastSlide-options.moveSlideQty)||firstCurrentSlide==firstSlide)&&($button_next.css("display")=="none"||$button_next.css("opacity")=="0.4"||$button_next.hasClass(options.butNextClassDeactivate))){$button_next.fadeTo(0,1);$button_next.show();$button_next.click(function(){onClickToggle("next");return false});$button_next.removeClass(options.butNextClassDeactivate)}if((firstCurrentSlide==(firstSlide+options.moveSlideQty)||lastCurrentSlide==lastSlide)&&($button_prev.css("display")=="none"||$button_prev.css("opacity")=="0.4"||$button_prev.hasClass(options.butPrevClassDeactivate))){$button_prev.fadeTo(0,1);$button_prev.show();$button_prev.click(function(){onClickToggle("prev");return false});$button_prev.removeClass(options.butPrevClassDeactivate)}}if(options.loopDisplay=="continuous"){var $liToMove="";if(firstCurrentSlide<=firstSlide){$liToMove=$ul.children(":nth-child("+(lastSlide+1)+")");$ul.prepend($liToMove.clone());$liToMove.remove();$ul.css("left","-="+liWidth)}else{if(lastCurrentSlide>=lastSlide-1){$liToMove=$ul.children(":nth-child("+firstSlide+1+")");$ul.append($liToMove.clone());$liToMove.remove();$ul.css("left","+="+liWidth)}}}if(options.directAccesClass!=""){if(options.displaySlideQty==1){$buttons_access.children().removeClass("active");var firstPosLi=firstCurrentSlide+1;if(firstCurrentSlide>=$li.length){firstPosLi=parseInt($ul.children(":nth-child("+lastSlide+")").attr("id"))}$buttons_access.children(":nth-child("+(firstPosLi)+")").addClass("active")}else{$buttons_access.children().removeClass("active");var firstPosLi=firstCurrentSlide;var lastPosLi=lastCurrentSlide;if(options.loopDisplay=="continuous"){if(firstCurrentSlide>=$li.length){firstPosLi=parseInt($ul.children(":nth-child("+($li.length-options.displaySlideQty)+")").attr("id"))-1;lastPosLi=parseInt($ul.children(":nth-child("+(lastSlide)+")").attr("id"))-1}else{if(lastCurrentSlide>=$li.length){firstPosLi=parseInt($ul.children(":nth-child("+($li.length-options.displaySlideQty)+")").attr("id"));lastPosLi=parseInt($ul.children(":nth-child("+(lastSlide)+")").attr("id"))}}}if(firstPosLi==lastPosLi){$buttons_access.children(":nth-child("+(firstPosLi-1)+")").addClass("active")}else{if(firstPosLi>lastPosLi){if(firstCurrentSlide>=$li.length){$buttons_access.children().slice(firstPosLi).addClass("active");$buttons_access.children().slice(0,lastPosLi+1).addClass("active")}else{$buttons_access.children().slice(firstPosLi-1).addClass("active");$buttons_access.children().slice(0,lastPosLi).addClass("active")}}else{$buttons_access.children().slice((firstPosLi),(lastPosLi+1)).addClass("active")}}}}}function goToNextSlide(){if(lastCurrentSlide+options.moveSlideQty>lastSlide&&options.infiniteLoop&&options.loopDisplay!="continuous"){gotoFirstSlide()}else{if(lastCurrentSlide+options.moveSlideQty<=lastSlide||options.loopDisplay=="continuous"){firstCurrentSlide=firstCurrentSlide+options.moveSlideQty;lastCurrentSlide=lastCurrentSlide+options.moveSlideQty;chooseAnimation("next")}}}function goToPrevSlide(){if(firstCurrentSlide-options.moveSlideQty<firstSlide&&options.infiniteLoop&&options.loopDisplay!="continuous"){gotoLastSlide()}else{if(firstCurrentSlide-options.moveSlideQty>=firstSlide||options.loopDisplay=="continuous"){firstCurrentSlide=firstCurrentSlide-options.moveSlideQty;lastCurrentSlide=lastCurrentSlide-options.moveSlideQty;chooseAnimation("prev")}}}function gotoFirstSlide(){if(options.loopDisplay=="forback"){options.autoDirection="prev";setAutoInterval()}else{firstCurrentSlide=firstSlide;lastCurrentSlide=firstCurrentSlide+options.displaySlideQty-1;chooseAnimation("first")}}function gotoLastSlide(){if(options.loopDisplay=="forback"){options.autoDirection="next";setAutoInterval()}else{lastCurrentSlide=lastSlide+1;firstCurrentSlide=lastCurrentSlide+options.displaySlideQty;chooseAnimation("last")}}function chooseAnimation(direction){switch(options.loopDisplay){case"forback":case"slide":case"continuous":slideEffect(direction);break;case"fade":break;case"default":default:$ul.css("left",0);$li.css("display","none");$li.slice(firstCurrentSlide,lastCurrentSlide+1).css("display","block");clickedNext=false;clickedPrev=false;checkEndControls();break}}function slideEffect(direction){var speed=options.speed;if((clickedNext==true||clickedPrev==true)&&options.clickSpeed!=""){var speed=options.clickSpeed}switch(direction){case"next":$ul.animate({left:"-="+(liWidth)+"px"},speed,"swing",function(){clickedNext=false;checkEndControls()});break;case"prev":$ul.animate({left:"+="+(liWidth)+"px"},speed,"swing",function(){clickedPrev=false;checkEndControls()});break;case"first":$ul.animate({left:"+="+liWidth*($li.length-options.displaySlideQty)+"px"},speed,"swing",function(){clickedNext=false;checkEndControls()});break;case"last":$ul.animate({left:"-="+liWidth*($li.length-options.displaySlideQty)+"px"},speed,"swing",function(){clickedPrev=false;checkEndControls()});break;case"gotoprev":$ul.animate({left:"+="+(liWidth*crossing)+"px"},speed,"swing",function(){clickedPrev=false;checkEndControls()});break;case"gotonext":$ul.animate({left:"-="+(liWidth*crossing)+"px"},speed,"swing",function(){clickedPrev=false;checkEndControls()});break}}function setAutoInterval(){if(base.intervalId!="undefined"){base.intervalId=clearInterval(base.intervalId)}if(options.autoDirection=="next"){base.intervalId=setInterval(function(){goToNextSlide()},options.autoPause+options.speed)}else{if(options.autoDirection=="prev"){base.intervalId=setInterval(function(){goToPrevSlide()},options.autoPause+options.speed)}}return base.intervalId}function gotoSlide(slideNb){var direction="";if(options.displaySlideQty!=1){return false}if(options.loopDisplay=="continuous"){console.log(slideNb+"/"+$("#"+slideNb).index());slideNb=($("#"+slideNb+1).index())-1}if(slideNb<firstCurrentSlide){direction="prev";crossing=firstCurrentSlide-slideNb}else{if(slideNb>lastCurrentSlide){direction="next";crossing=slideNb-firstCurrentSlide}}firstCurrentSlide=slideNb;lastCurrentSlide=slideNb;chooseAnimation("goto"+direction)}function is_int(x){var y=parseInt(x);if(isNaN(y)){return false}return x==y&&x.toString()===y.toString()}}})(jQuery);
