(function($){ 
$.fn.tinycarousel=function(options){ 
var defaults={ 
start:1,display:1,axis:'x',controls:true,pager:false,interval:false,intervaltime:3000,rewind:false,animation:true,duration:1000,callback:null};
var options=$.extend(defaults,options);
var oSlider=$(this);
var oViewport=$('.viewport:first',oSlider);
var oContent=$('.overview:first',oSlider);
var oPages=oContent.children();
var oBtnNext=$('.next:first',oSlider);
var oBtnPrev=$('.prev:first',oSlider);
var oPager=$('.pager:first',oSlider);
var iPageSize,iSteps,iCurrent,oTimer,bPause,bForward=true,bAxis=options.axis=='x';
return this.each(function(){ 
initialize();
});
function initialize(){ 
iPageSize=bAxis?$(oPages[0]).outerWidth(true):$(oPages[0]).outerHeight(true);
var iLeftover=Math.ceil(((bAxis?oViewport.outerWidth():oViewport.outerHeight())/(iPageSize*options.display))-1);
iSteps=Math.max(1,Math.ceil(oPages.length/options.display)-iLeftover);
iCurrent=Math.min(iSteps,Math.max(1,options.start))-2;
oContent.css(bAxis?'width':'height',(iPageSize*oPages.length));
move(1);
setEvents();
}
function setEvents(){ 
if(options.controls&&oBtnPrev.length>0&&oBtnNext.length>0){ 
oBtnPrev.click(function(){ 
move(-1);
return false;
});
oBtnNext.click(function(){ 
move(1);
return false;
});
}if(options.interval){ 
oSlider.hover(function(){ 
clearTimeout(oTimer);
bPause=true},function(){ 
bPause=false;
setTimer();
});
}if(options.pager&&oPager.length>0){ 
$('a',oPager).click(setPager);
}}
function setButtons(){ 
if(options.controls){ 
oBtnPrev.toggleClass('disable',!(iCurrent>0));

oBtnNext.toggleClass('disable',!(iCurrent+1<iSteps));
}if(options.pager){ 
var oNumbers=$('.pagenum',oPager);
oNumbers.removeClass('active');
$(oNumbers[iCurrent]).addClass('active');
}}
function setPager(oEvent){ 
if($(this).hasClass('pagenum')){ 
iCurrent=parseInt(this.rel)-1;
move(1);
}return false;
}
function setTimer(){ 
if(options.interval&&!bPause){ 
clearTimeout(oTimer);
oTimer=setTimeout(function(){ 
iCurrent=!options.rewind&&(iCurrent+1==iSteps)?-1:iCurrent;
bForward=iCurrent+1==iSteps?false:iCurrent==0?true:bForward;
move((options.rewind?(bForward?1:-1):1));
},options.intervaltime);
}}
function move(iDirection){ 
	// mallsop added +1 to iSteps here - fugde factor 5-19-2011
if(iCurrent+iDirection>-1&&iCurrent+iDirection<iSteps+1){ 
iCurrent+=iDirection;
var oPosition={ 
};
oPosition[bAxis?'left':'top']=-(iCurrent*(iPageSize*options.display));
oContent.animate(oPosition,{ 
queue:false,duration:options.animation?options.duration:0,complete:function(){ 
if(typeof options.callback=='function')options.callback.call(this,oPages[iCurrent],iCurrent);
}});
setButtons();
setTimer();
}
}};
})(jQuery);

