//-- 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>");
	}
}
/*-----------------------*/
/* General overlay below */
/*-----------------------*/
function createGeneralOverlay(contentId, itemToFocus)
{
	// Define current overlay element
	var overlay = $("#" + contentId);

	// Add class ajax to separate from overlays that starts loaded
	overlay.addClass("overlay-ajax");

	//Check if mask exist, else create one
	var overlayMasks = $("div.overlay-mask");
	if (overlayMasks.length == 0)
	{
		// Insert mask to damp background
		$("<div/>").addClass("overlay-mask").insertBefore(overlay);
	}
	// Get the corresponding overlay
	var overlay = $('#' + contentId);

	// Fade in overlay
	fadeInGeneralOverlay(overlay, itemToFocus);
	
	// Bind onlick event to close button
	overlay.find("a.login-overlay-close").live("click", function(event) {
		event.preventDefault();
		
		// Get the close buttons overlay and fade it out
		var overlay = $(event.target).parent().parent();
		fadeOutOverlay(overlay);
	});

	// Fix for IE6 that does not handle position: fixed; on the overlay
	if (jQuery.browser.msie) {
		if(parseInt(jQuery.browser.version) == 6) {
			fixOverlayForIE6(overlay, "bind", null);
		}
	}
}

function fadeInGeneralOverlay(overlay, itemToFocus) {
	// Add class visible
	overlay.addClass("visible");
	
	// Get overlay mask
	$("div.overlay-mask")
		.stop()
		.fadeTo(0,0)
		.css({display: "block"}) // Make overlay mask ready to fade in
		.fadeTo("fast", .75, function() { // Fade in mask, when finished, get overlay ready to fade in
			// Get size of overlay
			var overlayWidth = overlay.width();
			var overlayHeight = overlay.height();

			// Center overlay
			var overlayLeft = $(window).width()/2 - overlayWidth/2;
			if(overlayLeft < 0) {
				overlayLeft = 0;
			}
			var overlayTop = $(window).height()/2 - overlayHeight/2;
			if(overlayTop < 20) {
				overlayTop = 20;
			}
			// Position and show overlay
			overlay.css({visibility: "visible", left: overlayLeft + "px", top: overlayTop + "px", zIndex: 20});

			if (itemToFocus != null)
			{
				$("#" + itemToFocus).focus();
			}

		});	
}

function fadeOutOverlay(overlay) {

	// Get current overlay mask
	var overlayMask = $("div.overlay-mask");

	// Hide overlay mask
	overlayMask.stop().fadeTo("fast", 0, function() {
		$(this).css({display: "none"});
	});
	// Hide overlay
	overlay.css({visibility: "hidden"});
	overlay.removeClass("visible");
}

function getQuerystringParameter(name)
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return decodeURIComponent(unescape(results[1].replace(/\+/g, " ")));
}

function trackEvent (type, action, source) {
	if (!(typeof tracker == 'undefined' || tracker == null)) 
	{
		tracker._trackPageview('/event_' + type + '/' + action + '/' + source);
	}
}

function trackEvent2 (type, action, source) {
	if (!(typeof tracker == 'undefined' || tracker == null)) 
	{
		tracker._trackPageview('/event_' + type + '/' + action + '/' + source);
	}
}

