//-- Begin functions for testimonial slideshow --

function bindTcSlideShow(slideShow) {
	var slides = slideShow.children("div");
	var selectedSlide = slideShow.children("div.selected");
	if(!selectedSlide.hasClass("selected")) {
		selectedSlide = slideShow.children("div:first").addClass("selected").css("display", "block");
	}
	selectedSlide.css("display", "block");

	var pagination = $("<ul/>").addClass("tc-slideshow-pagination");
	var pageSelected;
	slides.each(function(i, slide) {
		var slide = $(slide);
		var page = $("<li>").addClass("tc-slideshow-pagination-page");
		if(slide.hasClass("selected")) {
			page.addClass("selected");
			$("<span>").text(i + 1).appendTo(page);
			pageSelected = i + 1;
		}
		else {
			var title = slide.children("img").attr("alt");
			$("<a>").attr({href: "#", title: title}).text(i + 1).appendTo(page);			
		}

		page.appendTo(pagination);
	});

	var prev = $("<li/>").prependTo(pagination);
	$("<a/>").attr({href: "#", title: "Föregående"}).addClass("tc-slideshow-pagination-prev").text("«").appendTo(prev);
	if(pageSelected == 1) {
		prev.children("a").css("display", "none");
	}

	var next = $("<li/>").appendTo(pagination);
	$("<a/>").attr({href: "#", title: "Nästa"}).addClass("tc-slideshow-pagination-next").text("»").appendTo(next);
	if(pageSelected == slides.length) {
		next.children("a").css("display", "none");
	}

	slideShow.after(pagination);

	// Center pagination
	paginationWidth = next.width() * (slides.length + 2);
	pagination.css({marginLeft: (pagination.parent().width() - paginationWidth) / 2 + "px"});

	$("ul.tc-slideshow-pagination > li > a").live("click", function(event) {
		event.preventDefault();
		var currentTarget = $(event.target).parent().parent().find("li > span");
		if($(event.target).attr("title") == "Föregående") {
			tcSlideShowFadeToSlide(currentTarget.parent().prev().children("a"));
		}
		else if($(event.target).attr("title") == "Nästa") {
			tcSlideShowFadeToSlide(currentTarget.parent().next().children("a"));
		}
		else {
			var slides = $(event.target).parent().parent().prev().children("div");
			slides.each(function(i, slide) {
				var slide = $(slide);
				if(slide.children("img").attr("alt") == $(event.target).attr("title") && !slide.hasClass("selected")) { // If corresponding slide
					tcSlideShowFadeToSlide($(event.target));
				}
			});
		}
	});
}

function tcSlideShowFadeToSlide(clickTarget) {
	if(!clickTarget.parent().parent().prev().hasClass("animating")) {
		clickTarget.parent().parent().prev().addClass("animating")

		var slides = clickTarget.parent().parent().prev().children("div");
		var slide;
		slides.each(function(i, testSlide) {
			var testSlide = $(testSlide);
			if(testSlide.children("img").attr("alt") == clickTarget.attr("title") && !testSlide.hasClass("selected")) { // If corresponding slide
				slide = testSlide;
			}
		});

		var lastSelectedSlide = slide.parent().children("div.selected").removeClass("selected");
		slide.addClass("selected").fadeIn(1000);
		lastSelectedSlide.fadeOut("slow", function() {
			slide.parent().removeClass("animating");
		});

		var numberOfSlides = slide.parent().children("div").length;
		var clickTargetIndex = clickTarget.parent().parent().children("li").index(clickTarget.parent());
		if(clickTargetIndex == 1) {
			clickTarget.parent().parent().find("li > a.tc-slideshow-pagination-prev").stop().fadeOut("fast");
			clickTarget.parent().parent().find("li > a.tc-slideshow-pagination-next").stop().fadeIn("fast");
		}
		else if(clickTargetIndex == numberOfSlides) {
			clickTarget.parent().parent().find("li > a.tc-slideshow-pagination-next").stop().fadeOut("fast");
			clickTarget.parent().parent().find("li > a.tc-slideshow-pagination-prev").stop().fadeIn("fast");
		}
		else {
			clickTarget.parent().parent().find("li > a.tc-slideshow-pagination-next").stop().fadeIn("fast");
			clickTarget.parent().parent().find("li > a.tc-slideshow-pagination-prev").stop().fadeIn("fast");
		}

		var title = lastSelectedSlide.children("img").attr("alt");
		var lastClickTarget = clickTarget.parent().parent().find("li > span");
		lastClickTarget.parent().removeClass("selected");
		lastClickTarget.replaceWith("<a href=\"#\" title=\"" + title + "\">" + lastClickTarget.text() + "</a>");
		clickTarget.parent().addClass("selected");
		clickTarget.replaceWith("<span>" + clickTarget.text() + "</span>");
	}
}
//-- End functions for testimonial slideshow --
