/*
 * 	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
 *	Works with jQuery version 1.3+
 *
 */



if(typeof jQuery!='undefined'){
	jQuery(function($){
		$.fn.extend({
			loopedSlider:function(options){
				var settings=$.extend({},$.fn.loopedSlider.defaults,options);
				return this.each(function(){
					if($.fn.jquery<'1.3.2'){return}
					var $t=$(this);
					var o=$.metadata?$.extend({},settings,$t.metadata()):settings;var distance=0;var times=1;
					var slides=$(o.slides,$t).children().size();
					var width=$(o.slides,$t).children().outerWidth();
					var position=0;
					var active=false;
					var number=0;
					var interval=0;
					var restart=0;
					var pagination=$("."+o.pagination+" li a",$t);
					if(o.addPagination&&!$(pagination).length){
						var buttons=slides;
						$($t).append("<ul class="+o.pagination+">");
						$(o.slides,$t).children().each(function(){
							if(number<buttons){
								$("."+o.pagination,$t).append("<li><a rel="+(number+1)+" href=\"#\" >"+(number+1)+"</a></li>");
								number=number+1
							}
							else{
								number=0;
								return false
							}
							$("."+o.pagination+" li a:eq(0)",$t).parent().addClass("active")
						});
						pagination=$("."+o.pagination+" li a",$t)
					}
					else{
						$(pagination,$t).each(function(){
							number=number+1;
							$(this).attr("rel",number);
							$(pagination.eq(0),$t).parent().addClass("active")
						})
					}
					if(slides===1){
						$(o.slides,$t).children().css({position:"absolute",left:position,display:"block"});
						return
					}
					$(o.slides,$t).css({width:(slides*width)});
					$(o.slides,$t).children().each(function(){
						$(this).css({position:"absolute",left:position,display:"block"});
						position=position+width
					});
					$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:-width});
					if(slides>3){
						$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:-width})
					}
					if(o.autoHeight){
						autoHeight(times)
					}
					$(".next",$t).click(function(){
						if(active===false){
							animate("next",true);
							if(o.autoStart){
								if(o.restart){
									autoStart()
								}
								else{
									clearInterval(sliderIntervalID)
								}
							}
						}
						return false
					});
					$(".previous",$t).click(function(){
						if(active===false){
							animate("prev",true);
							if(o.autoStart){
								if(o.restart){
									autoStart()
								}
								else{
									clearInterval(sliderIntervalID)
								}
							}
						}
						return false
					});
					if(o.containerClick){
						$(o.container,$t).click(function(){
							if(active===false){
								animate("next",true);
								if(o.autoStart){
									if(o.restart){
										autoStart()
									}
									else{
										clearInterval(sliderIntervalID)
									}
								}
							}
							return false
						})
					}
					$(pagination,$t).click(function(){
						if($(this).parent().hasClass("active")){
							return false
						}
						else{
							times=$(this).attr("rel");
							$(pagination,$t).parent().siblings().removeClass("active");
							$(this).parent().addClass("active");
							animate("fade",times);
							if(o.autoStart){
								if(o.restart){
									autoStart()
								}
								else{
									clearInterval(sliderIntervalID)
								}
							}
						}
						return false
					});
					if(o.autoStart){
						sliderIntervalID=setInterval(function(){
							if(active===false){
								animate("next",true)
							}
						},o.autoStart);
						function autoStart(){
							if(o.restart){
								clearInterval(sliderIntervalID,interval);
								clearTimeout(restart);
								restart=setTimeout(function(){
									interval=setInterval(function(){
										animate("next",true)
									},o.autoStart)
								},o.restart)
							}
							else{
								sliderIntervalID=setInterval(function(){
									if(active===false){
										animate("next",true)
									}
								},o.autoStart)
							}
						}
					}
					function current(times){
						if(times===slides+1){
							times=1
						}
						if(times===0){
							times=slides
						}
						$(pagination,$t).parent().siblings().removeClass("active");
						$(pagination+"[rel='"+(times)+"']",$t).parent().addClass("active")};
						function autoHeight(times){
							if(times===slides+1){
								times=1
							}
							if(times===0){
								times=slides
							}
							var getHeight=$(o.slides,$t).children(":eq("+(times-1)+")",$t).outerHeight();
							$(o.container,$t).animate({height:getHeight},o.autoHeight)};
							function animate(dir,clicked){
								active=true;
								switch(dir){
									case"next":times=times+1;distance=(-(times*width-width));current(times);
									if(o.autoHeight){
										autoHeight(times)
									}
									if(slides<3){
										if(times===3){
											$(o.slides,$t).children(":eq(0)").css({left:(slides*width)})
										}
										if(times===2){
											$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:width})}
										}
										$(o.slides,$t).animate({left:distance},o.slidespeed,function(){
											if(times===slides+1){
												times=1;
												$(o.slides,$t).css({left:0},function(){$(o.slides,$t).animate({left:distance})});
												$(o.slides,$t).children(":eq(0)").css({left:0});
												$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:-width})
											}
											if(times===slides)
												$(o.slides,$t).children(":eq(0)").css({left:(slides*width)});
											if(times===slides-1)
												$(o.slides,$t).children(":eq("+(slides-1)+")").css({left:(slides*width-width)});
											active=false
										});
										break;case"prev":times=times-1;
										distance=(-(times*width-width));
										current(times);
										if(o.autoHeight){
											autoHeight(times)
										}
										if(slides<3){
											if(times===0){
												$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:(-width)})
											}
											if(times===1){
												$(o.slides,$t).children(":eq(0)").css({position:"absolute",left:0})
											}
										}
										$(o.slides,$t).animate({left:distance},o.slidespeed,function(){
											if(times===0){
												times=slides;
												$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:(slides*width-width)});
												$(o.slides,$t).css({left:-(slides*width-width)});
												$(o.slides,$t).children(":eq(0)").css({left:(slides*width)})
											}
											if(times===2)
												$(o.slides,$t).children(":eq(0)").css({position:"absolute",left:0});
											if(times===1)
												$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:-width});active=false});
											break;
											case"fade":times=[times]*1;distance=(-(times*width-width));
											current(times);
											if(o.autoHeight){
												autoHeight(times)
											}
											$(o.slides,$t).children().fadeOut(o.fadespeed,function(){
												$(o.slides,$t).css({left:distance});
												$(o.slides,$t).children(":eq("+(slides-1)+")").css({left:slides*width-width});
												$(o.slides,$t).children(":eq(0)").css({left:0});
												if(times===slides){
													$(o.slides,$t).children(":eq(0)").css({left:(slides*width)})
												}
												if(times===1){
													$(o.slides,$t).children(":eq("+(slides-1)+")").css({position:"absolute",left:-width})
												}
												$(o.slides,$t).children().fadeIn(o.fadespeed);
												active=false
											});
											break;
											default:break
										}
									}
								})
							}
						});
						$.fn.loopedSlider.defaults={
							container:".container",slides:".slides",pagination:"pagination",containerClick:true,autoStart:0,restart:0,slidespeed:300,fadespeed:200,autoHeight:0,addPagination:false
						}
					})
				}


















