﻿(function($)
{$.fn.carousel=function(options)
{var defaults={carouselWidth:610,carouselWidthCorrection:0,slideCss:'view',slideItemCss:'views-row',slideLeftCss:'left',slideRightCss:'right',navControlsCss:'nav',autoSlide:false,autoSlidePause:false,autoSlideTimeout:5000,autoSideTimer:null,sliding:false};var options=$.extend(defaults,options);function StartSlide(carousel,direction)
{if(options.sliding)
{return;}
var s=jQuery('.'+options.slideCss,carousel);var mL=parseInt(s.css('margin-left'));switch(direction)
{case'right':mL-=(options.carouselWidth+options.carouselWidthCorrection);if(mL<=-s.width())
{mL=0;}
break;case'left':mL+=(options.carouselWidth+options.carouselWidthCorrection);if(mL>=(options.carouselWidth+options.carouselWidthCorrection))
{mL=-(s.width()-(options.carouselWidth+options.carouselWidthCorrection));}
break;}
options.sliding=true;s.animate({marginLeft:mL+'px'},'normal','swing',function(){SlideFinished(carousel);});}
function SlideTo(carousel,position)
{if(options.sliding)
{return;}
AutoSlideStop(carousel);var s=jQuery('.'+options.slideCss,carousel);var mL=position*-(options.carouselWidth+options.carouselWidthCorrection);options.sliding=true;s.animate({marginLeft:mL+'px'},'normal','swing',function(){SlideFinished(carousel);});}
function SlideFinished(carousel)
{MarkSelectedPage(carousel);options.sliding=false;}
function MarkSelectedPage(carousel)
{var s=jQuery('.'+options.slideCss,carousel);var ctrl=jQuery('.'+options.navControlsCss,carousel);var mL=parseInt(s.css('margin-left'));mL=mL/-(options.carouselWidth+options.carouselWidthCorrection);jQuery('a.'+options.navControlsPagesCss,ctrl).each(function(i)
{if(mL==i)
{jQuery(this).attr('id','sel');}
else
{jQuery(this).removeAttr('id');}});}
function AutoSlideStart(carousel)
{if(!options.autoSlide)
{return;}
options.autoSideTimer=setTimeout(function()
{StartSlide(carousel,'right');AutoSlideStart(carousel);},options.autoSlideTimeout);}
function AutoSlideStop(carousel)
{if(null!=options.autoSideTimer)
{clearTimeout(options.autoSideTimer);options.autoSideTimer=null;}
if(!options.autoSlidePause)
{options.autoSlide=false;}}
function AdjustInnerWidth(carousel)
{var s=jQuery('.'+options.slideCss,carousel);var totalWidth=0;jQuery('.'+options.slideItemCss,carousel).each(function(i)
{var pg=jQuery(this);totalWidth+=pg.width();totalWidth+=parseInt(pg.css('margin-left'));totalWidth+=parseInt(pg.css('margin-right'));});s.width(totalWidth);}
function SetEvents(carousel)
{var btnLeft=jQuery('.'+options.slideLeftCss,carousel);btnLeft.click(function()
{AutoSlideStop(carousel);StartSlide(carousel,'left');});var btnRight=jQuery('.'+options.slideRightCss,carousel);btnRight.click(function()
{AutoSlideStop(carousel);StartSlide(carousel,'right');});var s=jQuery('.'+options.slideCss,carousel);s.hover(function()
{options.autoSlidePause=true;AutoSlideStop(carousel);},function()
{options.autoSlidePause=false;AutoSlideStart(carousel);});AdjustInnerWidth(carousel);MarkSelectedPage(carousel);AutoSlideStart(carousel);}
return this.each(function(i)
{SetEvents(jQuery(this));});}})(jQuery);
