// JavaScript Document

$(function() {
			  
	var ie = $.browser.msie;
	var ie6 = ($.browser.msie && $.browser.version.substr(0,1)<7);
	
	var scrollInt;
	
	var images = $('#featuredImages ul'), controls = $('#controls'), left = controls.find('.left'), right = controls.find('.right'), captions = $('#featureCaption .captions li'), titles = $('#featureTitles li'), count = captions.length-1,  selected = 0, circles = $('#featureCaption .circles li');

	function update(prev, next) {
		captions.eq(prev).addClass('hidden');
		titles.eq(prev).addClass('hidden');
		circles.eq(prev).removeClass('selected');
		captions.eq(next).removeClass('hidden');
		titles.eq(next).removeClass('hidden');
		circles.eq(next).addClass('selected');
		
		if (captions.eq(next).find('p').height() > 40) {
			captions.eq(next).find('p').addClass('wrap');	
		}
	}
	fade(left, 1, .5);
	
	$('#featureCaption, #controls, #featureTitles').fadeTo(1,0).removeClass('hidden').delay(500).fadeTo(1000, 1);	
	$('#featureCaption .captions').width(600 - $('#featureCaption .circles').width());
	if (captions.eq(0).find('p').height() > 40) {
		captions.eq(0).find('p').addClass('wrap');	
	}
	$("#featuredImages ul").width((count + 1) * 630);

	$('#controls .right').click(function() {
		clearInterval(scrollInt);
		moveRight();
	});
	
	$('#controls .left').click(function() {
		clearInterval(scrollInt);
		moveLeft();
	});
	
	scrollInt = setInterval(function() {
		if (selected < count) {		
			moveRight();
		} else {
			restart();	
		}
		
	}, 7000);
	
	function moveLeft() {
		if (selected > 0) {		
			images.animate({
				left: "+=630px"
			}, 300);
			circles.eq(selected).removeClass('selected');
			circles.eq(selected-1).addClass('selected');
			selected--;
			if (selected == count) {		
				fade(right.removeClass("clickable"), 500, .5);
			}
			if (selected == 0) {
				fade(left.removeClass("clickable"), 500, .5);
			}
			if (selected == count-1) {
				fade(right.addClass("clickable"), 500, 1);
			}
			update(selected+1, selected);
		}	
	}
	
	function moveRight() {
		if (selected < count) {		
			images.animate({
				left: "-=630px"
			}, 300);
			selected++;
			if (selected == count) {		
				fade(right.removeClass("clickable"), 500, .5);
			}
			if (selected == 0) {
				fade(left.removeClass("clickable"), 500, .5);
			}
			if (selected == 1) {
				fade(left.addClass("clickable"), 500, 1);
			}
			update(selected-1, selected);
		}
	}
	
	function restart() {
		images.animate({
			left: "0px"
		}, 300);
		selected = 0;
		fade(left.removeClass("clickable"), 500, .5);
		fade(right.addClass("clickable"), 500, 1);
		update(selected-1, selected);
	}
	
	function fade(e, speed, opacity) {
		if (ie && !ie6) {
			if (opacity < 1) {
				e.css("visibility", "hidden");
			} else {
				e.css("visibility", "visible");	
			}
			
		} else {
			e.fadeTo(speed, opacity);	
		}
			
	}

});
