/*

	BILLY The Carousel jquery plugin v 0.3
	By. Jason Howmans (jasonhowmans@me.com)
	
	-- Options
	
	- scrollSpeed : The time a single transition will take
	- slidePause : Amount of time between scrolls
	- indicators : The target <ul> for displaying the indicators (indicators arent required for basic functionality)
	- indicatorLinks : Clicking on indicators jumps to slide, true by default
	- activeClass : Class to attach to the active indicator. default is 'active'
	- scrollAmount : Amount to scroll by on each transition. Set to 'auto' by default
	- nextLink : The element which will scroll next on click
	- prevLink : The element which will scroll back on click
	- autoAnimate : Do you want the carousel to play without the user pressing the next/prev buttons
	- loop : Loops back to the beginning after final slide
	
*/

(function($){$.fn.extend({billy:function(options){var defaults={scrollSpeed:500,slidePause:8000,indicators:$('span#billy_indicators'),indicatorLinks:true,activeClass:'active',scrollAmount:'auto',nextLink:$('#billy_next'),prevLink:$('#billy_prev'),autoAnimate:true,loop:true};var options=$.extend(defaults,options);return this.each(function(){var option=options;var object=$(this);var slides=object.find('li');if(option.scrollAmount=='auto'){var slidewidth=slides.width();}else{var slidewidth=option.scrollAmount;}
var slidecount=Math.round((slides.width()*slides.length)/slidewidth);var currentslide=0;if(slides.length>0){for(var i=0;i<slidecount;i++){if(!option.indicatorLinks){option.indicators.append('<li></li>');}else{option.indicators.append('<li><a href="#'+i+'"></a></li>');}};option.indicators.find('li:eq(0)').addClass(option.activeClass);var the_indicators=option.indicators.find('li a');the_indicators.click(function(){var hreftag=$(this).attr('href').replace('#','');jumptospecific(hreftag);if(option.autoAnimate){clearInterval(period);period=window.setInterval(function(){if(currentslide>=(slidecount-1)){jumptostart();}else{jumpnext();}},option.slidePause);}
return false;});var jumptostart=function(){currentslide=0;object.animate({'marginLeft':"0"},option.scrollSpeed);option.indicators.find('li').removeClass();option.indicators.find('li:eq('+(currentslide)+')').addClass(option.activeClass);};var jumptoend=function(){currentslide=slidecount-1;object.animate({'marginLeft':"-"+currentslide*slidewidth},option.scrollSpeed);option.indicators.find('li').removeClass();option.indicators.find('li:eq('+(currentslide)+')').addClass(option.activeClass);};var jumpnext=function(){if(currentslide<(slidecount-1)){currentslide++;object.animate({'marginLeft':"-"+(slidewidth*currentslide)},option.scrollSpeed);option.indicators.find('li').removeClass();option.indicators.find('li:eq('+(currentslide)+')').addClass(option.activeClass);if(option.autoAnimate){clearInterval(period);period=window.setInterval(function(){if(currentslide>=(slidecount-1)){jumptostart();}else{jumpnext();}},option.slidePause);}}else{if(option.loop)
jumptostart();}};var jumpback=function(){if(currentslide>0){currentslide--;object.animate({'marginLeft':"-"+(slidewidth*currentslide)},option.scrollSpeed);option.indicators.find('li').removeClass();option.indicators.find('li:eq('+(currentslide)+')').addClass(option.activeClass);if(option.autoAnimate){clearInterval(period);period=window.setInterval(function(){if(currentslide>=(slidecount-1)){jumptostart();}else{jumpnext();}},option.slidePause);}}else{if(option.loop)
jumptoend();}};var jumptospecific=function(frame){if(currentslide!==frame){currentslide=frame;object.animate({'marginLeft':"-"+(slidewidth*currentslide)},option.scrollSpeed);option.indicators.find('li').removeClass();option.indicators.find('li:eq('+(currentslide)+')').addClass(option.activeClass);}};option.nextLink.click(function(){jumpnext();});option.prevLink.click(function(){jumpback();});if(option.autoAnimate){var period;period=window.setInterval(function(){if(currentslide>=(slidecount-1)){jumptostart();}else{jumpnext();}},option.slidePause);}}});}});})(jQuery);

