//slideshow pugin
	(function($){
		/*
		#		TODO
		#		-set up single loop
		#		-set up in view option
		#		-set up arrow nav
		#		-set up callback
		#
		*/
		$.fn.leSlide = function(options){
			var settings = {
				'slideSpeed'		:10000,	 	// Duration of the animation in milliseconds, if 0 only slide on user request
				'showNumbers'		:false, 	// Show slide counter true|false
				'showMarkers'		:false, 	// Show bullet navigation true|false
				'showNavigation'	:false, 	// Show prev/next navigation true|false
				'showMarkers'		:false, 	// Show bullet navigation true|false
				'transition'		:'fade', 	// Transition between objects up|down|left|right|fade
				'inView'			:1,			// Number of slides to show in view
				'auto'				:true,		// Auto scroll on slides true|false
				'loop'				:true		// Loop slides at end true|false
			};
			return this.each(function(){
				if ( options ) { 
					$.extend( settings, options );
				}
				var elmCount = $('li',this).length;		
				//If no elements are found exit
				if(elmCount < 2){
					return;
				}
				
				var $this = $(this);
				
				$(this).append('<span class="leftArrow"></span><span class="rightArrow"></span>');
				var next = $(".leftArrow",this);
				//back = options.leftArrow ? $(options.leftArrow) : $("<span class='leftArrow'><</span>");
				//next = options.rightArrow ? $(options.rightArrow) : $("<span class='rightArrow'>></span>");
				var elmHeight = $('li:first',this).height();
				var elmWidth = $('li:first',this).width();
				var startPos;
				var pointer = 0;
				var prev = 0;

				switch(settings.transition){
					case 'fade':
						startPos =[0,0];
						thisIn ={opacity:1};
						thisOut ={opacity:0};
						break;
					case 'up':
						startPos =[0,elmHeight];
						thisIn ={'top':0};
						thisOut ={'top':-elmHeight};
						break;
					case 'down':
						startPos =[0,-elmHeight];
						thisIn ={top:0};
						thisOut ={top:elmHeight};
						break;
					case 'left':
						startPos =[elmWidth,0];
						thisIn ={left:0};
						thisOut ={left:-elmWidth};
						break;
					case 'right':
						startPos =[-elmWidth,0];
						thisIn ={left:0};
						thisOut ={left:elmWidth};
						break;
				};
				var displayWidth = $('li:first',this).width()*settings.inView;
				$('li',this).css({
					'position':'absolute',
					'left':startPos[0],
					'top':startPos[1]
				});
				$('li:first',this).css('z-index','999').addClass('current');
				if(settings.transition==='fade'){
					$("li:not(:first)",this).css({
						'opacity':0,
						'z-index':998
					});
				}
				else{
					$('li:first',this).css({
						'left':0,
						'top':0
					})
				}
				$(this).css({
					'position':'relative',
					'height':elmHeight,
					'width':elmWidth,
					'overflow':'hidden'
				});
				if(settings.auto===true) {//start the slides
					setInterval(function() {
						next.click();
					},settings.slideSpeed);
				}
				//add markers if requested
				if(settings.showMarkers===true){
					var str = '';
					for (var i=1; i<=elmCount; i++) {
						if(settings.showNumbers===true){
							str = str+'<li>'+i+'</li>';
						}
						else{
							str = str+'<li></li>';
						}
					};
					$(this).append('<ul class="markers"></ul>');
					$('.markers',this).append(str);
					$('.markers li:first',this).addClass('current');
					$('.markers li',this).click(function(){
						pointer=$('.markers li').index(this);
						next.click();
					});
				}

				next.click(function(){
					console.log($('ul:first li.current',$this).parent().parent().attr('class')+"\n"+pointer);
					$('ul:first li.current',$this).animate(thisOut,600,'swing',function(){
						if(settings.transition!='fade'){
							$(this).css({
								'left':startPos[0],
								'top':startPos[1]
							});
						};
					}).css('z-index','998').removeClass('current');
					$('.markers li',$this).removeClass('current');
					$('.markers li:eq('+pointer+')',$this).addClass('current');
					$('li:eq('+pointer+')',$this).animate(thisIn,600,'swing').css('z-index','999').addClass('current');
					if(pointer+1===elmCount){
						pointer=0;
					}
					else{
						pointer++;
					}
				});
			});
		};
	})( jQuery );
