/*
 * 	loopedSlider 0.5.6 - jQuery plugin
 *	written by Nathan Searles	
 *	http://nathansearles.com/loopedslider/
 *
 *	Copyright (c) 2009 Nathan Searles (http://nathansearles.com/)
 *	Dual licensed under the MIT (MIT-LICENSE.txt)
 *	and GPL (GPL-LICENSE.txt) licenses.
 *
 *	Built for jQuery library
 *	http://jquery.com
 *	Compatible with jQuery 1.3.2+
 *
 *
 *  Heavily Modified by Daniel Sellers
 *  http://www.designfrontier.net
 */

/*
 *	markup example for $("#loopedSlider").loopedSlider();
 *
 *	<div id="loopedSlider">	
 *		<div class="container">
 *			<div class="slides">
 *				<div><img src="01.jpg" alt="" /></div>
 *				<div><img src="02.jpg" alt="" /></div>
 *				<div><img src="03.jpg" alt="" /></div>
 *				<div><img src="04.jpg" alt="" /></div>
 *			</div>
 *		</div>
 *		<a href="#" class="previous">previous</a>
 *		<a href="#" class="next">next</a>	
 *	</div>
 *
*/
typeof jQuery!="undefined"&&jQuery(function(b){b.fn.extend({loopedSlider:function(u){var r=b.extend({},b.fn.loopedSlider.defaults,u);return this.each(function(){function n(h){if(h===d+1)h=1;if(h===0)h=d;b(k,c).parent().siblings().removeClass("active");b(k+"[rel='"+h+"']",c).parent().addClass("active");b(".marker").removeClass("currentMarker");b("#"+h).addClass("currentMarker")}function p(h){if(h===d+1)h=1;if(h===0)h=d;h=b(a.slides,c).children(":eq("+(h-1)+")",c).outerHeight();b(a.container,c).animate({height:h},
a.autoHeight)}function l(h){j=true;switch(h){case "next":e+=1;if(a.vertical){i=-(e*f-f);n(e);if(d<3){e===3&&b(a.slides,c).children(":eq(0)").css({top:d*f});e===2&&b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",top:f})}b(a.slides,c).animate({top:i},a.slidespeed,function(){if(e===d+1){e=1;b(a.slides,c).css({top:0},function(){b(a.slides,c).animate({top:i})});b(a.slides,c).children(":eq(0)").css({top:0});b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",top:-f})}e===
d&&b(a.slides,c).children(":eq(0)").css({top:d*f});e===d-1&&b(a.slides,c).children(":eq("+(d-1)+")").css({top:d*f-f});j=false})}else{i=-(e*g-g);n(e);a.autoHeight&&p(e);if(d<3){e===3&&b(a.slides,c).children(":eq(0)").css({left:d*g});e===2&&b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",left:g})}b(a.slides,c).animate({left:i},a.slidespeed,function(){if(e===d+1){e=1;b(a.slides,c).css({left:0},function(){b(a.slides,c).animate({left:i})});b(a.slides,c).children(":eq(0)").css({left:0});
b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",left:-g})}e===d&&b(a.slides,c).children(":eq(0)").css({left:d*g});e===d-1&&b(a.slides,c).children(":eq("+(d-1)+")").css({left:d*g-g});j=false})}break;case "prev":e-=1;if(a.vertical){i=-(e*f-f);n(e);a.autoHeight&&p(e);if(d<3){e===0&&b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",top:-f});e===1&&b(a.slides,c).children(":eq(0)").css({position:"absolute",top:0})}b(a.slides,c).animate({top:i},a.slidespeed,function(){if(e===
0){e=d;b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",top:d*f-f});b(a.slides,c).css({top:-(d*f-f)});b(a.slides,c).children(":eq(0)").css({top:d*f})}e===2&&b(a.slides,c).children(":eq(0)").css({position:"absolute",top:0});e===1&&b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",top:-f});j=false})}else{i=-(e*g-g);n(e);a.autoHeight&&p(e);if(d<3){e===0&&b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",left:-g});e===1&&b(a.slides,c).children(":eq(0)").css({position:"absolute",
left:0})}b(a.slides,c).animate({left:i},a.slidespeed,function(){if(e===0){e=d;b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",left:d*g-g});b(a.slides,c).css({left:-(d*g-g)});b(a.slides,c).children(":eq(0)").css({left:d*g})}e===2&&b(a.slides,c).children(":eq(0)").css({position:"absolute",left:0});e===1&&b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",left:-g});j=false})}break;case "fade":e=[e]*1;if(a.vertical){i=-(e*f-f);n(e);b(a.slides,c).children().fadeOut(a.fadespeed,
function(){b(a.slides,c).css({top:i});b(a.slides,c).children(":eq("+(d-1)+")").css({top:d*f-f});b(a.slides,c).children(":eq(0)").css({top:0});e===d&&b(a.slides,c).children(":eq(0)").css({top:d*f});e===1&&b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",top:-f});b(a.slides,c).children().fadeIn(a.fadespeed);j=false})}else{i=-(e*g-g);n(e);a.autoHeight&&p(e);b(a.slides,c).children().fadeOut(a.fadespeed,function(){b(a.slides,c).css({left:i});b(a.slides,c).children(":eq("+(d-1)+")").css({left:d*
g-g});b(a.slides,c).children(":eq(0)").css({left:0});e===d&&b(a.slides,c).children(":eq(0)").css({left:d*g});e===1&&b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",left:-g});b(a.slides,c).children().fadeIn(a.fadespeed);j=false})}}}if(!(b.fn.jquery<"1.3.2")){var c=b(this),a=b.metadata?b.extend({},r,c.metadata()):r,i=0,e=1,d=b(a.slides,c).children().size(),g=b(a.slides,c).children().outerWidth(),f=b(a.slides,c).children().outerHeight(),q=0,j=false,m=0,s=0,t=0,k=b("."+a.pagination+
" li a",c);if(a.addPagination&&!b(k).length){var v=d;b(c).append("<ul class="+a.pagination+">");b(a.slides,c).children().each(function(){if(m<v){b("."+a.pagination,c).append("<li><a rel="+(m+1)+' href="#" >'+(m+1)+"</a></li>");m+=1}else{m=0;return false}b("."+a.pagination+" li a:eq(0)",c).parent().addClass("active")});k=b("."+a.pagination+" li a",c)}else b(k,c).each(function(){m+=1;b(this).attr("rel",m);b(k.eq(0),c).parent().addClass("active")});if(d===1)b(a.slides,c).children().css({position:"absolute",
left:q,display:"block"});else{a.vertical?b(a.slides,c).css({height:d*f}):b(a.slides,c).css({width:d*g});b("#pause").live("click",function(){clearInterval(sliderIntervalID);b(this).hide();b("#play").fadeIn(250);return false});b("#play").live("click",function(){clearInterval(sliderIntervalID);if(e==d-1)a.vertical?b(a.slides,c).children(":eq("+(d-1)+")").css({top:d*f-f}):b(a.slides,c).children(":eq("+(d-1)+")").css({left:d*g-g});o();b(this).hide();b("#pause").fadeIn(250);return false});b(".marker").css("cursor",
"pointer");b(".marker").live("click",function(){e=b(this).attr("id")-1;if(e==0)e=d;if(e==d-1)a.vertical?b(a.slides,c).children(":eq("+(d-1)+")").css({top:d*f-f}):b(a.slides,c).children(":eq("+(d-1)+")").css({left:d*g-g});l("next",true);if(b("#play:visible").length==0){clearInterval(sliderIntervalID);o()}});b(a.slides,c).children().each(function(){if(a.vertical){b(this).css({position:"absolute",top:q,display:"block"});q+=f}else{b(this).css({position:"absolute",left:q,display:"block"});q+=g}});a.vertical?
b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",top:-f}):b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",left:-g});if(d>3)a.vertical?b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",top:-f}):b(a.slides,c).children(":eq("+(d-1)+")").css({position:"absolute",left:-g});a.autoHeight&&p(e);b(".next",c).click(function(){if(j===false){l("next",true);if(a.autoStart)a.restart?o():clearInterval(sliderIntervalID)}return false});b(".previous",c).click(function(){if(j===
false){l("prev",true);if(a.autoStart)a.restart?o():clearInterval(sliderIntervalID)}return false});a.containerClick&&b(a.container,c).click(function(){if(j===false){l("next",true);if(a.autoStart)a.restart?o():clearInterval(sliderIntervalID)}return false});b(k,c).click(function(){if(b(this).parent().hasClass("active"))return false;else{e=b(this).attr("rel");b(k,c).parent().siblings().removeClass("active");b(this).parent().addClass("active");l("fade",e);if(a.autoStart)a.restart?o():clearInterval(sliderIntervalID)}return false});
if(a.autoStart){sliderIntervalID=setInterval(function(){j===false&&l("next",true)},a.autoStart);var o=function(){if(a.restart){clearInterval(sliderIntervalID);clearInterval(s);clearTimeout(t);t=setTimeout(function(){s=setInterval(function(){l("next",true)},a.autoStart)},a.restart)}else sliderIntervalID=setInterval(function(){j===false&&l("next",true)},a.autoStart)}}}}})}});b.fn.loopedSlider.defaults={container:".container",slides:".slides",pagination:"pagination",containerClick:true,autoStart:0,restart:0,
slidespeed:300,fadespeed:200,autoHeight:0,addPagination:false,vertical:false}});
