$(function () {
	
	c = $('#carousel #cImages li');
	
	if (c.length > 1) {
	
		var timer;
		var count = c.length;
		var pos = 0;
		var init = playing = true;

		imgTarget = $('#cImages ul');
		lnkTarget = $('#cLinks ul');
		
		imgHeight = imgTarget.find('li:eq(0)').css('height');
		lnkHeight = lnkTarget.find('li:eq(0)').css('height');
		
		imgTarget.find('li:gt(0)').css({'opacity':'0','marginTop':imgHeight}).show();
		lnkTarget.find('li:gt(0)').css({'marginTop':lnkHeight}).show();
		
		controls = document.createElement('div');
		controls.id = "carouselControls";
		
		$('#carousel').append(controls);
		
		controls = $('#carouselControls');
			
		controls.html('<a href="#" class="play" title="Pause slideshow"></a><ul></ul>');
		
		$.each(c,function() {
			button = document.createElement('a');
			button.href = '#';
			li = document.createElement('li');
			li.appendChild(button);
			controls.find('ul').append(li);
		})
		
		controls.find('li:eq(0)').addClass('selected');
		
		controls.find('a.play').click(function() {
			
			if (playing) {		
				clearTimeout(timer);
				playing = false;
				$(this).addClass('paused');
			} else {
				rotate();
				playing = true;
				$(this).removeClass('paused');
			}
			return false;
		});
		
		controls.find('li a').click(function() {
		
			if (playing) {		
				clearTimeout(timer);
			} else {
				controls.find('a.play').removeClass('paused');
				playing = true;
			}

			clickedPos = $(this).parent().prevAll().length;
			transition(clickedPos);
			
			init = true;
			rotate();
			
			return false;
		
		});
				
		
		transition = function(newPos) {

			if (pos != newPos) {		
				$('#cImages ul li:eq('+pos+')').animate({
					'opacity': '0'
					},waits.rate,function() {
						if(pos != $(this).prevAll().length) {
							$(this).css({'margin-top':imgHeight});			
						}
					});
			
				$('#cLinks ul li:eq('+pos+')').animate({
					'marginTop': '-'+lnkHeight
					},waits.rate,function() {
						$(this).css({'margin-top':lnkHeight});
						$('#carouselControls li').removeClass('selected');
						$('#carouselControls li:eq('+newPos+')').addClass('selected');
					});
			}

			$('#cImages ul li:eq('+newPos+')').css({'marginTop':'0'}).animate({
				'opacity': '1'
				},waits.rate);
			$('#cLinks ul li:eq('+newPos+')').animate({
				'marginTop': '0px'
				},waits.rate);
			
			pos = newPos;
		
		}
		
		rotate = function() {
		
			thisHold = (init) ? waits.init : waits.hold;
			init = false;
	
			timer = setTimeout(function() {
				
				nextPos = (pos+1 == count) ? 0 : pos+1;
				transition(nextPos);
				rotate();
				
			},thisHold);

		}				
		
		rotate();

	}
	
});




