(function(c){function ga(y,q){function l(){t=j.length;u=v*2/t;for(var b=0;b<t;b++)ha(b);n(g);c.browser.msie||M(0);c(document).bind("mousemove",function(d){k=d.pageX;o=d.pageY});y.onselectstart=function(){return false};a.settings.autoScroll&&z();a.settings.mouseScroll&&N();a.settings.mouseDrag&&X();a.settings.mouseWheel&&Y();a.settings.scrollbar&&ia();a.settings.tooltip&&c('<div class="tooltip"><p></p></div>').css("opacity",0).appendTo(i)}function ha(b){var d=c('<img class="carousel-item"/>').appendTo(i);
Z.push(d);d.css({width:a.settings.itemWidth,h:a.settings.itemHeight}).data({w:a.settings.itemWidth,h:a.settings.itemHeight,index:b}).addClass("out").bind({mouseover:function(){c(this).hasClass("out")&&c(this).removeClass("out").addClass("over");a.settings.tooltip&&ja(b);if(a.settings.mouseScroll)A=a.settings.mouseScrollSpeedHover;var e={type:"itemMouseOver",index:b,data:j[b]};c.isFunction(a.settings.itemMouseOver)&&a.settings.itemMouseOver.call(this,e)},mouseout:function(){c(this).hasClass("over")&&
c(this).removeClass("over").addClass("out");a.settings.tooltip&&ka();if(a.settings.mouseScroll)A=a.settings.mouseScrollSpeed;var e={type:"itemMouseOut",index:b,data:j[b]};c.isFunction(a.settings.itemMouseOut)&&a.settings.itemMouseOut.call(this,e)},click:function(){i.find(".click").removeClass("click").addClass("out");c(this).removeClass("over").addClass("click");a.settings.scrollOnClick&&B(b);if(j[b].link)window.open(j[b].link,j[b].linkTarget||a.settings.linkTarget);var e={type:"itemClick",index:b,
data:j[b]};c.isFunction(a.settings.itemClick)&&a.settings.itemClick.call(this,e)}});j[b].link&&d.css("cursor","pointer");c.browser.msie&&M(b)}function M(b){var d=j[b].path,e=Z[b];c("<img/>").load(function(){var h=parseInt(c(this).attr("width")),f=parseInt(c(this).attr("height"));if(a.settings.crop)e.css("background-image","url("+d+")");else{e.attr("src",d);e.css("background-image","none")}if(a.settings.resize)if(a.settings.maintainAspectRatio){scaleX=a.settings.itemWidth/h;scaleY=a.settings.itemHeight/
f;if(scaleX<scaleY){h*=scaleX;f*=scaleX}else{h*=scaleY;f*=scaleY}}else{h=a.settings.itemWidth;f=a.settings.itemHeigh}e.css({width:h,height:f});e.data({w:h,h:f});n(g);c.browser.msie||b<t-1&&M(++b)}).attr("src",d)}function n(b){i.find(".carousel-item").each(function(d){var e=c(this),h=e.data("w"),f=e.data("h"),C=Math.sin(-(u*d)+v*0.5+b*O)*a.settings.verticalRadius+P-f*0.5,p=(C-($-f*0.5))/(aa-$)*(1-a.settings.scaleRatio)+a.settings.scaleRatio;e.css({width:h*p,height:f*p,left:Math.cos(-(u*d)+v*0.5+b*
O)*a.settings.horizontalRadius+Q-h*0.5+h*(1-p)/2,top:C+f*(1-p)/2,"z-index":Math.floor(p*10*t)})});a.settings.scrollbar&&!w&&la(R());r=Math.round(b*O/u)}function B(b){r=b;var d=u*(180/v)*b%360;g%=360;if(Math.abs(d-g)>180)d+=d>g?-360:360;if(d-g>180&&d>g)d-=360;D();S=setInterval(function(){if(Math.abs(d-g)>0.5){g+=(d-g)*(a.settings.scrollSpeed/100);n(g)}else E()},30);b={type:"itemSelect",index:b,data:j[b]};c.isFunction(a.settings.itemSelect)&&a.settings.itemSelect.call(this,b)}function ba(){B(r==j.length-
1?0:r+1)}function ca(){B(r==0?j.length-1:r-1)}function z(){if(!(F&&a.settings.pauseAutoScrollIfTooltip)){a.settings.autoScroll=true;s=setTimeout(function(){if(a.settings.autoScrollDirection=="next")ba();else a.settings.autoScrollDirection=="previous"&&ca()},a.settings.autoScrollDelay)}}function N(){a.settings.mouseScroll=true;A=a.settings.mouseScrollSpeed;var b=0,d=a.settings.mouseScrollReverse?-1:1;G=setInterval(function(){if(k>i.offset().left&&k<i.offset().left+a.settings.width&&o>i.offset().top&&
o<i.offset().top+a.settings.height){b=d*(k-(i.offset().left+Q))*(A/1E3);g+=b;n(g)}else if(Math.abs(b)>0.1){b*=a.settings.mouseScrollEase/100;g+=b;n(g)}else b=0},30)}function X(){function b(f){T=f.pageX;if(!H){D();d()}}function d(){H=true;I=setInterval(function(){var f=(360*(h*(T-da)/(100*a.settings.mouseDragSpeed))+e-g)*(a.settings.mouseDragEase/100);if((f>=0?f:-f)>0.1){g+=f;n(g)}else E()},30)}a.settings.mouseDrag=true;var e=0,h=a.settings.mouseDragReverse?1:-1;c(document).bind("mousedown",function(f){if(k>
i.offset().left&&k<i.offset().left+a.settings.width&&o>i.offset().top&&o<i.offset().top+a.settings.height){T=da=f.pageX;e=g;c(document).bind("mousemove",b)}});c(document).bind("mouseup",function(){c(document).unbind("mousemove",b)})}function Y(){a.settings.mouseWheel=true;var b=0,d=a.settings.mouseWheelReverse?-1:1;i.bind("mousewheel",function(e,h){e.preventDefault();if(!J){D();J=true;b=g;K=setInterval(function(){if(Math.abs(b-g)>0.5){g+=(b-g)*(a.settings.mouseWheelSpeed/100);n(g)}else E()},30)}b+=
d*h*10})}function ia(){function b(){m=k-h.offset().left-ea;d()}function d(){if(m<0)m=0;else if(m>parseInt(h.css("width"))-parseInt(f.css("width")))m=parseInt(h.css("width"))-parseInt(f.css("width"));w&&f.css("left",m);U=m/(parseInt(h.css("width"))-parseInt(f.css("width")));if(!L){D();L=true;g%=360;V=setInterval(function(){if(Math.abs(R()-U)>0.0010){var W=(U-R())*(a.settings.scrollbarEase/100);g+=W*360;n(g)}else L&&E()},30)}}var e=c('<div class="scrollbar"></div>').appendTo(i),h=c('<div class="track"></div>').appendTo(e),
f=c('<div class="thumb"></div>').appendTo(h),C=c('<div class="left"></div>').appendTo(e),p=c('<div class="right"></div>').appendTo(e),m=0,ea;e.css({top:aa,left:Q-parseInt(e.css("width"))/2});f.bind("mousedown",function(W){W.preventDefault();ea=k-f.offset().left;w=true;c(document).bind("mousemove",b)});c(document).bind("mouseup",function(){if(w){w=false;c(document).unbind("mousemove",b)}});C.bind("click",function(){m=parseInt(f.css("left"))-a.settings.arrowScrollAmount;d()});p.bind("click",function(){m=
parseInt(f.css("left"))+a.settings.arrowScrollAmount;d()})}function la(b){var d=i.find(".scrollbar").find(".track"),e=d.find(".thumb");e.css("left",b*(parseInt(d.css("width"))-parseInt(e.css("width"))))}function R(){var b=g%360/360;if(b<0)b+=1;return b}function D(){fa();if(!x){x=true;c.isFunction(a.settings.scrollStart)&&a.settings.scrollStart.call(this)}}function E(){fa();if(x){x=false;c.isFunction(a.settings.scrollComplete)&&a.settings.scrollComplete.call(this)}a.settings.mouseScroll&&N();a.settings.autoScroll&&
z()}function fa(){G&&clearInterval(G);if(I){H=false;clearInterval(I)}if(K){J=false;clearInterval(K)}if(V){L=false;clearInterval(V)}S&&clearInterval(S);s&&clearTimeout(s)}function ja(b){if(b=j[b].tooltip){F=true;var d=i.find(".tooltip");d.find("p").html(b);d.stop().animate({opacity:1},300);var e=-d.outerWidth()/2,h=0-d.outerHeight()-parseInt(d.css("marginBottom"));d.css({left:k-i.offset().left+e,top:o-i.offset().top+h});c(document).bind("mousemove.tooltip",function(){d.css({left:k-i.offset().left+
e,top:o-i.offset().top+h})});s&&a.settings.pauseAutoScrollIfTooltip&&clearTimeout(s)}}function ka(){if(F){F=false;var b=i.find(".tooltip");b.stop().animate({opacity:0},200,function(){c(document).unbind("mousemove.tooltip");b.css("left",-9999)});a.settings.autoScroll&&a.settings.pauseAutoScrollIfTooltip&&z()}}this.settings=c.extend({},c.fn.carousel.defaults,q);var i=c(y),a=this,r=0,j=[],Z=[],v=Math.PI,O=v/180,S,s,G,I,K,V,A=a.settings.mouseScrollSpeed,k,o,T=0,da=0,H=false,J=false,w=false,L=false,U=
0,g=0,Q=a.settings.width/2,P=a.settings.height/2,$=P-a.settings.verticalRadius,aa=P+a.settings.verticalRadius,u,t,x=false,F=false;(function(){i.addClass("carousel").css({width:a.settings.width,height:a.settings.height});if(a.settings.xmlSource){i.empty();c.ajax({type:"GET",url:a.settings.xmlSource,dataType:c.browser.msie?"text":"xml",success:function(b){var d;if(c.browser.msie){d=new ActiveXObject("Microsoft.XMLDOM");d.async=false;d.loadXML(b)}else d=b;c(d).find("item").each(function(){for(var e=
{},h=0;h<c(this).children().length;h++){var f=c(this).children()[h];e[f.nodeName]=c(this).find(f.nodeName).text()}j.push(e)});l()}})}else{i.children().each(function(){for(var b={},d=0;d<c(this).children().length;d++){var e=c(this).children()[d];if(c(e).is("a")){b.path=c(e).find("img").attr("src");b.link=c(e).attr("href");if(c(e).attr("target"))b.linkTarget=c(e).attr("target")}else if(c(e).is("img"))b.path=c(e).attr("src");else b[c(e).attr("class")]=c(e).html()}j.push(b)});i.empty();l()}})();this.startAutoScroll=
z;this.stopAutoScroll=function(){a.settings.autoScroll=false;clearTimeout(s)};this.startMouseScroll=N;this.stopMouseScroll=function(){a.settings.mouseScroll=false;clearInterval(G)};this.startMouseDrag=X;this.stopMouseDrag=function(){H=a.settings.mouseDrag=false;clearInterval(I)};this.startMouseWheel=Y;this.stopMouseWheel=function(){J=a.settings.mouseWheel=false;clearInterval(K)};this.scrollToItem=B;this.scrollToNext=ba;this.scrollToPrevious=ca;this.isScrolling=function(){return x}}c.fn.carousel=function(y){for(var q=
[],l=0;l<this.length;l++)if(!this[l].carousel){this[l].carousel=new ga(this[l],y);q.push(this[l].carousel)}return q.length>1?q:q[0]};c.fn.carousel.defaults={xmlSource:null,width:500,height:300,itemWidth:100,itemHeight:100,horizontalRadius:250,verticalRadius:100,resize:true,maintainAspectRatio:true,crop:false,scaleRatio:0.5,mouseScroll:false,scrollOnClick:true,mouseDrag:false,scrollbar:false,arrowScrollAmount:50,tooltip:true,mouseScrollEase:90,mouseDragEase:10,scrollbarEase:10,scrollSpeed:10,mouseDragSpeed:20,
mouseScrollSpeed:10,mouseScrollSpeedHover:3,mouseWheel:false,mouseWheelSpeed:10,mouseScrollReverse:false,mouseDragReverse:false,mouseWheelReverse:false,autoScroll:false,autoScrollDirection:"next",autoScrollDelay:3E3,pauseAutoScrollIfTooltip:true,linkTarget:"_blank",itemSelect:null,itemClick:null,itemMouseOver:null,itemMouseOut:null,scrollStart:null,scrollComplete:null}})(jQuery);

