(function ($) {

$(document).ready(function(){
	if ($('#slideshow').length) 
	{
		var slideshow = $('#slideshow'), slides = slideshow.find('.slide'), nav = slideshow.find('.nav'),
			tSlides = null, i = 1, speedFade = 1000, pauseTime = 8000, fadeMax = 0.7; 
			
		slides.each(function () {
			this.id = 'slide-' + (i++);
		}).find('.info').css('left', 0).hide();
				
		var s = '<a href="#" id="slideTrigger-prev">&lt;</a> <span><em class="start-1">';
		
		for (var i = 1; i <= slides.length; i++)
			s += '<a href="#" id="slideTrigger-' + i + '">' + i + '</a>';
			
		s += '</em></span> <a href="#" id="slideTrigger-next">&gt;</a>';

		nav.html(s);

		$('#slideTrigger-1').addClass('active');

		nav.find('a').click(function () 
		{
			var id = this.id.split('-')[1];
			switch (id) {
				case 'prev':
					id = parseInt(slides.filter('.active')[0].id.split('-')[1]);
					id = (id == 1 ? slides.length : id - 1);
					break;
				case 'next':
					id = parseInt(slides.filter('.active')[0].id.split('-')[1]);
					id = (id == slides.length ? 1 : id + 1);
					break;
				default:
					var active = parseInt(slides.filter('.active')[0].id.split('-')[1]);
					id = parseInt(id);
					if (id == active)
						id = 0;
			}
			if (id)
				slideshowGo(id);
				
			return false;
		});
		
		var navEm = nav.find('em').css('width', 20 * slides.length);

		function slideshowGo(i) {
			var next = $('#slide-' + i), active = slides.filter('.active');
			next.addClass('next').show();
			active.fadeOut(speedFade);
		
			active.find('.info').fadeOut(speedFade, function () 
			{				
				active.removeClass('active');				
				$(next).find('.info:eq(0)').fadeTo(speedFade,fadeMax);
				$(next).find('.cont').fadeTo(speedFade,1);				
			
				next.addClass('active').removeClass('next');

				nav.find('a').removeClass('active').filter('#slideTrigger-' + i).addClass('active');
				var start = parseInt(nav.find('em')[0].className.split('-')[1]);
			
				if ((i > start) && (i - start > 3))
					navEm[0].className = 'start-' + (i - 3);
				if (i < start)
					navEm[0].className = 'start-' + i;
			});
		}

		function slideshowTimer() {
			var active = slides.filter('.active'), id = parseInt(active[0].id.split('-')[1]);
			id = (id == slides.length ? 1 : id + 1);
			slideshowGo(id);
		}

		function slideshowPause(pause) {
			if (!pause) {
                    tSlides = setInterval(slideshowTimer, pauseTime + speedFade);
			}
                else 
		  {
				clearInterval(tSlides);
			}
		}

		slideshow.hover(function () {
			slideshowPause(true);
		}, function () {
			slideshowPause(false);
		});

	     slides.eq(0).find('.info:eq(0)').fadeTo(speedFade,fadeMax).addClass('active');
		 slides.eq(0).find('.cont').fadeTo(speedFade,1);
         slideshowPause(false);
    }
    });
 })(jQuery);
	 
