(function($){
  
  $.fn.celerslides = function(options) {
		
		var config = {'intervalTime': 5000};
		if (options) $.extend(config, options);

		
		var interval;
		var next;
		var o			= options;
		var obj			= $(this);
		var slides		= obj.children('a');
		var active		= obj.children('a.active');
		var clicked		= false;

		
		var i = 1;
		slides.each(function(){
			$(this).attr("rel", i++);
		}); j = i - 1; k = 1;

		obj.prepend('<ul></ul>');
		var page = obj.children('ul');
		var x	 = 1;
		slides.each(function(){
			if(x == 1){ isActive = ' class="active" '; } else { isActive = null; }
			page.append('<li><a href="#" ' + isActive + ' rel="' + x + '">' + x + '</a></li>');
			x++;
		});

		

		var infoBox = obj.children('a').children('span');
		infoBox.css({opacity: 0.5});
		var infoBoxAnimate = function(action){
			if(action == 'over'){
				infoBox.animate({opacity: 0.8 , height: 120},500);
			} 
			if(action == 'out'){
				infoBox.animate({opacity: 0.5, height: 45},500);
			}
		}

		var clearActives = function(){
			obj.children('a.active').removeClass('active prevActive');
			obj.children('a.prevActive').removeClass('active prevActive');
			page.children('li').children('a.active').removeClass('active prevActive');
			page.children('li').children('a.prevActive').removeClass('active prevActive');
			page.children('li').children('a');
		}

		var makeClickables = function(){
			obj.hover(
				function(){
					infoBoxAnimate('over');
					stopSlides();
				},
				function(){
					infoBoxAnimate('out');
					startSlides();
				}
			);
			page.children('li').children('a').css({opacity: 0.4});
			page.children('li').children('a').click(function(){ alert('is bomb.');
				clearActives();
				thisRel = $(this).attr('rel');
				k		= thisRel;
				kl		= obj.children('a:last').attr('rel');
				if( k > kl ){
					kk = 1;
				} else { kk = k + 1; }
				obj.children('a[rel=' + k + ']').addClass('prevActive');
				obj.children('a[rel=' + kk + ']').addClass('active');
				page.children('li').children('a[rel=' + k + ']').addClass('prevActive').animate({opacity: 0.9},500);
				page.children('li').children('a[rel=' + kk + ']').addClass('active');
				clicked = true;
			});
		}

		var doSlide = function(){
			
			makeClickables();
			clearActives();

			if(k == j){
				var reset = true;
					 kk	= 1;
			} else { kk = k + 1; }

			active		= obj.children('a[rel=' + k + ']');
			next		= obj.children('a[rel=' + kk + ']');
			activeList	= page.children('li').children('a[rel=' + k + ']');
			nextList	= page.children('li').children('a[rel=' + kk + ']');

			active.addClass('prevActive');		next.addClass('active');
			activeList.addClass('prevActive');	nextList.animate({opacity: 0.9},1000).addClass('active');
				if(!clicked){ activeList.removeClass('active prevActive'); }
			next.css({opacity: 0.0}).addClass('active');
				next.animate(
						{opacity: 1.0},
						1000,
						function() {
							active.removeClass('active prevActive');
							activeList.removeClass('active prevActive');
						}
					);
			nextList.css({opacity: 0.4});

			if(reset){ 
				k = 1;
				reset = false;
			} else {
				k++;
			} clicked = false;

		}

		var stopSlides = function(){
			clearInterval(interval);
		}

		var startSlides = function(){
			makeClickables();
			clearInterval(interval);
			interval = setInterval( doSlide , o.intervalTime );
		};
	
	startSlides();

  };    
})(jQuery);  