(function(c){c.fn.carousel=function(a){a=c.extend({direction:"horizontal",loop:false,dispItems:1,pagination:false,paginationPosition:"inside",nextBtn:"<a>Next</a>",prevBtn:"<a>Back</a>",btnsPosition:"inside",nextBtnInsert:"insertAfter",prevBtnInsert:"insertBefore",nextBtnInsertFn:false,prevBtnInsertFn:false,autoSlide:false,autoSlideInterval:3000,delayAutoSlide:false,combinedClasses:false,effect:"slide",slideEasing:"swing",animSpeed:300,equalWidths:"true",verticalMargin:0,callback:function(){},useAddress:false,
adressIdentifier:"carousel",tabLabel:function(b){return b},showEmptyItems:true,ajaxMode:false,ajaxUrl:"",stopSlideBtn:false,stopSlideTextPause:"Pause",stopSlideTextPlay:"Play",showCurrentPos:false,usePaginationLabels:false},a);if(a.btnsPosition=="outside"){a.prevBtnInsert="insertBefore";a.nextBtnInsert="insertAfter"}a.delayAutoSlide=0+a.delayAutoSlide;return this.each(function(){var b={$elts:{},params:a,launchOnLoad:[]};b.$elts.carousel=c(this).addClass("js");b.$elts.content=c(this).children().css({position:"absolute",
top:0});b.$elts.wrap=b.$elts.content.wrap('<div class="carousel-wrap"></div>').parent().css({overflow:"hidden",position:"relative"});b.steps={first:0,count:b.$elts.content.children().length};b.$elts.loader=c('<div class="loader"></div>').css({position:"absolute"});b.steps.last=b.steps.count-1;b.params.pagination&&m(b);b.params.showCurrentPos&&n(b);b.$elts.prevBtn=c.isFunction(b.params.prevBtnInsertFn)?b.params.prevBtnInsertFn(b.$elts):a.btnsPosition=="outside"?c(a.prevBtn)[a.prevBtnInsert](b.$elts.carousel):
c(a.prevBtn)[a.prevBtnInsert](b.$elts.wrap);b.$elts.nextBtn=c.isFunction(b.params.nextBtnInsertFn)?b.params.nextBtnInsertFn(b.$elts):a.btnsPosition=="outside"?c(a.nextBtn)[a.nextBtnInsert](b.$elts.carousel):c(a.nextBtn)[a.nextBtnInsert](b.$elts.wrap);b.$elts.nextBtn.addClass("carousel-control next carousel-next");b.$elts.prevBtn.addClass("carousel-control previous carousel-previous");o(b);b.$elts.carousel.attr("tabindex",0).add(b.$elts.carousel.children()).bind({focus:function(){c(document).bind("keypress",
function(d){switch(d.keyCode){case 39:b.$elts.nextBtn.click();break;case 37:b.$elts.prevBtn.click();break}switch(d.charCode){case 110:b.$elts.nextBtn.click();break;case 112:b.$elts.prevBtn.click();break}})},blur:function(){c(document).unbind("keypress")}});p(b);c(function(){i(b);c.each(b.launchOnLoad,function(d,f){f()});b.params.autoSlide&&j(b);if(a.stopSlideBtn==true){b.$elts.stopSlideBtn=c('<button type="button" class="slide-control play">'+a.stopSlideTextPause+"</button>");q(b)}})})};function i(a){var b=
a.$elts.content.children(),d=0;b.each(function(){$item=c(this);$itemHeight=$item.outerHeight();if($itemHeight>d)d=$itemHeight});if(a.params.verticalMargin>0)d+=a.params.verticalMargin;b.height(d);b=a.$elts.content.children(":first");a.itemWidth=b.outerWidth();a.contentWidth=a.params.direction=="vertical"?a.itemWidth:a.params.equalWidths?a.itemWidth*a.steps.count:function(){var f=0;a.$elts.content.children().each(function(){f+=c(this).outerWidth()});return f}();a.$elts.content.width(a.contentWidth);
a.itemHeight=d;if(a.params.direction=="vertical"){a.$elts.content.css({height:a.itemHeight*a.steps.count+"px"});a.$elts.content.parent().css({height:a.itemHeight*a.params.dispItems+"px"})}else a.$elts.content.parent().css({height:a.itemHeight+"px"});k(a)}function o(a){a.$elts.nextBtn.add(a.$elts.prevBtn).bind("enable",function(){var b=c(this).unbind("click").bind("click",function(){if(a.params.ajaxMode&&b.is(".next")&&r(a)==s(a)-1&&!a.lastItemsToLoad){t(a);a.$elts.content.ajaxSuccess(function(){})}else{e(a,
g(a,b.is(".next")?"next":"prev"));a.params.stopSlideBtn==true?a.$elts.stopSlideBtn.trigger("pause"):h(a)}}).removeClass("disabled").removeAttr("disabled");a.params.combinedClasses&&b.removeClass("next-disabled previous-disabled").removeAttr("disabled")}).bind("disable",function(){var b=c(this).unbind("click").addClass("disabled").attr("disabled","disabled");if(a.params.combinedClasses)if(b.is(".next"))b.addClass("next-disabled");else b.is(".previous")&&b.addClass("previous-disabled")}).hover(function(){c(this).toggleClass("hover")})}
function m(a){a.$elts.pagination=c('<div class="center-wrap"><div class="carousel-pagination"><ul class="carouselpag"></ul></div></div>')[a.params.paginationPosition=="outside"?"insertAfter":"appendTo"](a.$elts.carousel).find("ul.carouselpag");a.$elts.paginationBtns=c([]);a.$elts.content.find("li").each(function(b){b%a.params.dispItems==0&&l(a,b)})}function l(a,b){if(a.params.pagination){a.$elts.paginationBtns=a.params.usePaginationLabels==true?a.$elts.paginationBtns.add(c('<li><a role="button"><span>'+
a.$elts.content.children("li").eq(a.params.tabLabel(a.$elts.paginationBtns.length)).attr("title")+"<b></b></span></a></li>").data("firstStep",b)).appendTo(a.$elts.pagination):a.$elts.paginationBtns.add(c('<li><a role="button"><span>'+a.params.tabLabel(a.$elts.paginationBtns.length+1)+"</span></a></li>").data("firstStep",b)).appendTo(a.$elts.pagination);a.$elts.paginationBtns.slice(0,1).addClass("active");a.$elts.paginationBtns.click(function(){e(a,c(this).data("firstStep"));a.params.stopSlideBtn==
true?a.$elts.stopSlideBtn.trigger("pause"):h(a)})}}function n(a){if(a.steps.count>1){a.$elts.currentPos=c('<div class="current-position"><p></p></div>')[a.params.paginationPosition=="outside"?"insertAfter":"appendTo"](a.$elts.carousel).find("p");c(a.$elts.currentPos).text(a.steps.first+1+" of "+a.steps.count)}}function p(a){if(a.params.useAddress&&c.isFunction(c.fn.address))c.address.init(function(){var b=c.address.pathNames();b[0]===a.params.adressIdentifier&&b[1]?e(a,b[1]-1):c.address.value("/"+
a.params.adressIdentifier+"/1")}).change(function(){var b=c.address.pathNames();b[0]===a.params.adressIdentifier&&b[1]&&e(a,b[1]-1)});else a.params.useAddress=false}function e(a,b){a.params.callback(b);u(a,b);a.steps.first=b;k(a);a.params.useAddress&&c.address.value("/"+a.params.adressIdentifier+"/"+(b+1))}function g(a,b){if(b=="prev")return a.params.showEmptyItems?a.steps.first-a.params.dispItems>=0?a.steps.first-a.params.dispItems:a.params.loop?a.steps.count-a.params.dispItems:false:a.steps.first==
0?a.params.loop?a.steps.count-a.params.dispItems:false:Math.max(0,a.steps.first-a.params.dispItems);else if(b=="next")return a.steps.first+a.params.dispItems<a.steps.count?a.params.showEmptyItems?a.steps.first+a.params.dispItems:Math.min(a.steps.first+a.params.dispItems,a.steps.count-a.params.dispItems):a.params.loop?0:false}function u(a,b){switch(a.params.effect){case "no":a.params.direction=="vertical"?a.$elts.content.css("top",-(a.itemHeight*b)+"px"):a.$elts.content.css("left",-(a.itemWidth*b)+
"px");break;case "fade":a.params.direction=="vertical"?a.$elts.content.hide().css("top",-(a.itemHeight*b)+"px").fadeIn(a.params.animSpeed):a.$elts.content.hide().css("left",-(a.itemWidth*b)+"px").fadeIn(a.params.animSpeed);break;default:a.params.direction=="vertical"?a.$elts.content.stop().animate({top:-(a.itemHeight*b)+"px"},a.params.animSpeed,a.params.slideEasing):a.$elts.content.stop().animate({left:-(a.itemWidth*b)+"px"},a.params.animSpeed,a.params.slideEasing);break}}function k(a){g(a,"prev")!==
false?a.$elts.prevBtn.trigger("enable"):a.$elts.prevBtn.trigger("disable");g(a,"next")!==false?a.$elts.nextBtn.trigger("enable"):a.$elts.nextBtn.trigger("disable");a.params.pagination&&a.$elts.paginationBtns.removeClass("active").filter(function(){return c(this).data("firstStep")==a.steps.first}).addClass("active")}function j(a){a.delayAutoSlide=window.setTimeout(function(){a.autoSlideInterval=window.setInterval(function(){e(a,g(a,"next"))},a.params.autoSlideInterval)},a.params.delayAutoSlide)}function h(a){window.clearTimeout(a.delayAutoSlide);
window.clearInterval(a.autoSlideInterval);a.params.delayAutoSlide=0}function q(a){var b=a.$elts.stopSlideBtn;b.bind({play:function(){j(a);b.removeClass("pause").addClass("play").html(a.params.stopSlideTextPause)},pause:function(){h(a);b.removeClass("play").addClass("pause").html(a.params.stopSlideTextPlay)}});b.click(function(){if(b.is(".play"))b.trigger("pause");else b.is(".pause")&&b.trigger("play")});b.prependTo(a.$elts.wrap)}function s(a){return a.$elts.pagination.children().length}function r(a){return a.steps.first/
a.params.dispItems}function t(a){a.$elts.carousel.prepend(a.$elts.loader);c.ajax({url:a.params.ajaxUrl,dataType:"json",success:function(b){a.lastItemsToLoad=b.bLastItemsToLoad;c(a.$elts.content).append(b.shtml);a.steps={first:a.steps.first+a.params.dispItems,count:a.$elts.content.children().length};a.steps.last=a.steps.count-1;i(a);l(a,a.steps.first);e(a,a.steps.first);a.params.stopSlideBtn==true?a.$elts.stopSlideBtn.trigger("pause"):h(a);a.$elts.loader.remove()}})}})(jQuery);

