function slideshow() {
	var wrapper			= $("#startpage #image-part"),
		imageContainer	= wrapper.find("#images"),
		images			= wrapper.find("img"),
		dots			= wrapper.find("#dots > div"),
		navigation		= {
			left: wrapper.find("#navigation .left"),
			right: wrapper.find("#navigation .right")
		};

	var slides = [],
		pos = 0,
		increment = 700,
		min = -(increment * (images.length - 1)),
		max = 0;

	images.each(function(i, image) {
		$("<span/>").appendTo(dots);
	});
	
	imageContainer.width(images.length * increment);

	var dotBar = (function() {
		var allDots = dots.find("span");

		allDots.first().addClass("active");

		return {
			next: function() {
				allDots.filter(".active").removeClass("active").next().addClass("active");
			},
			prev: function() {
				allDots.filter(".active").removeClass("active").prev().addClass("active");
			},
			first: function () {
				allDots.filter(".active").removeClass("active").end().first().addClass("active");
			},
			last: function () {
				allDots.filter(".active").removeClass("active").end().last().addClass("active");
			}
		};
	}());

	navigation.right.click(function(e) {
		e.preventDefault();

		if (pos > min) {
			imageContainer.animate({
				left: pos -= increment
			}, dotBar.next);
		} else {
			pos = max;
			
			imageContainer.animate({
				left: pos
			}, dotBar.first);
			
			
		}
	});

	navigation.left.click(function(e) {
		e.preventDefault();

		if (pos < max) {
			imageContainer.animate({
				left: pos += increment
			}, dotBar.prev);
		} else {
			pos = min;
			imageContainer.animate({
				left: pos
			}, dotBar.last);
		}
	});
}

function calendar() {
	var root		= $("#sidebar .event-calendar"),
		calendar	= root.find(".calendar"),
		slides		= calendar.children(),
		controls	= {
			next: root.find(".controls .next"),
			prev: root.find(".controls .prev")
		};
	
	for (var i = 0; i < slides.length; i += 1) {
		if ($(slides[i]).hasClass("current")) {
			var currentSlideNumber = i;
			break;
		}
	}
	
	var increment	= $(slides[0]).outerWidth(true),
		width		= increment * slides.length,
		pos 		= -(currentSlideNumber * increment),
		min			= -( width - increment ),
		max			= 0;
	
	calendar.width(width);
	
	calendar.css("left", pos);
	
	controls.next.click(function(e) {
		e.preventDefault();

		if (pos > min) {
			calendar.animate({
				left: pos -= increment
			});
		}
	});

	controls.prev.click(function(e) {
		e.preventDefault();

		if (pos < max) {
			calendar.animate({
				left: pos += increment
			});
		}
	});
	
	
	
}

function switchDropdowns() {
	var dropdowns	= $("ul.dropdown");

	dropdowns.each(function(i, dropdown) {
		dropdown = $(dropdown);

		var links	= dropdown.find("a"),
			select	= $("<select/>");

		select.addClass(dropdown[0].className);

		links.each(function(i, link) {
			var option	= $("<option>");

			link = $(link);

			option.text( link.text() );
			option.val( link.attr("href") );

			if (link.hasClass("selected")) {
				option.attr("selected", "selected");
			}

			select.append(option);
		});

		select.change(function(option) {
			document.location.href = select.val();
		}).insertBefore(dropdown);
		dropdown.remove();
	});

}

$.fn.equalHeight = function() {
	var maxHeight	= 0,
		elements	= $(this);

	elements.each(function(i, element) {
		var elementHeight = $(element).height();
		maxHeight = elementHeight > maxHeight ? elementHeight : maxHeight;
	});

	elements.height(maxHeight);
};

$.fn.preFilled = function(attribute) {
	if (!attribute) {
		console.debug("you did not supply an attribute");
	}

	$(this).each(function(i, input) {
		var label;

		input = $(input);
		label = input.attr(attribute);

		//initial check
		if (input.val().length <= 0) {
			input.val(label);
		}

		input.focus(function() {
			var current = input.val();
			if (current == label) {
				input.val("");
			}
		});

		input.blur(function() {
			var current = input.val();
			if (current.length <= 0) {
				input.val(label);
			}
		});

	});
};

var lightbox = function() {
	var overlay			= $("#overlay"),
		currentVisible	= undefined,
		container		= $("<div />"),
		close			= $("<span />");

	function hideAll() {
		overlay.hide();
		currentVisible.hide();
		container.hide();
		var iframe = currentVisible.find("iframe");
		
		if (iframe.length > 0) {http://localhost/qtee/medlemskap/
			
			iframe.get(0).src = iframe.get(0).src;
		}
		

	}

	function setOverlayDimentions () {
		overlay.height($(document).height());
		overlay.width($(document).width());
	}

	container.css({
		"position": "absolute",
		"left": "50%",
		"margin-left": -150,
		"z-index": 2,
		"background-color": "#fff",
		"padding": "20px",
		"-moz-border-radius": "5px"
	}).addClass("lightbox-container");

	close.addClass("close-button").appendTo(container);

	overlay.css({
		"position": "absolute",
		"background-color": "black",
		"opacity": 0.5,
		"top": 0,
		"left": 0,
		"width": "100%"
	});
	
	overlay.appendTo("body").hide();
	container.appendTo("body").hide();
	setOverlayDimentions();

	overlay.click(hideAll);

	$(window).resize(setOverlayDimentions);

	$(".lightbox").each(function(i, lightbox) {

		lightbox = $(lightbox);

		var button = lightbox.find(".button"),
			object = lightbox.find(".object");


		button.css({
			"cursor": "pointer"
		});

		object.hide();


		button.click(function(e) {
			e.preventDefault();
			container.empty().append(close.click(hideAll)).append(object);
			container.width(object.attr("rel") || "auto");

			overlay.show();
			object.fadeIn();
			container.fadeIn();
			container.css({
				"top": $(window).scrollTop() + 50,
				"margin-left": -(container.outerWidth()/2)
			});
			currentVisible = object;
		});

		if ( lightbox.hasClass("autoopen") ) {
			button.click();
		}
  });
};

$.fn.alignMagnifier = function() {
	$(this).each(function(i, element) {
		$(element).parent().css({
			"position": "relative",
			"display": "inline"

		});
	});
};

$.fn.addPlayButton = function(callback) {
	$(this).each(function(i, element) {
		element = $(element);

		element.css("position", "relative");

		var playButton = $("<div />");

		playButton.addClass("play-button");

		playButton.click(function() {
			callback(element);
		});

		element.append(playButton);

	});
};

function startpageStuff() {
	var link = $("#startpage-link"),
		hoverThing = $("<div />").attr("id", "startpage-miniature");
		
	link.hover(function() {
		
		hoverThing.animate({
			top: 45,
			opacity: 1
		}, 200);
		
	}, function() {
		
		hoverThing.animate({
			opacity: 0
		}, 200, function () {
			hoverThing.css("top", 30);
		});
		
	});
	
	hoverThing.css("opacity", 0).appendTo("body");
}

function mails() {
	
	$("#lottery-popup .button").click(function(e) {
		e.preventDefault();
		
		$.post("mail.php?lottery", {"from": ""}, function (response) {
			if (response.status == "success") {
				$("#lottery-popup .button-wrapper").fadeOut("slow", function () {
					$("#lottery-popup .confirmation").fadeIn("slow");
				});
			} else {
				
			}
		});
	});
	
	
	$("#newsletter-form form").submit(function(e) {
		e.preventDefault();
		var data = $(this).serializeArray();
		
		$.post("mail.php?newsletter", data, function (response) {
			if (response.status == "success") {
				$("#newsletter-form").fadeOut("slow", function () {
					$("#news-letter-confirmation").fadeIn("slow");
				});
			}
		});
	});
	
	$("#contact-form form").submit(function(e) {
		e.preventDefault();
		var form = this,
			data = $(this).serializeArray();
		
		$.post("mail.php?contact-form", data, function (response) {
			if (response.status == "success") {
				$(".confirmation").slideDown();
			}
			form.reset();
		});
	});
	
}


$(document).ready(function() {
	switchDropdowns();
	slideshow();
	calendar();
	startpageStuff();

	$("form input[type=\"text\"], form textarea").preFilled("title");
	$("#text-main .certified-clubs").equalHeight();

	lightbox();
	
	$("a.back-button").click(function(e) {
		e.preventDefault();
		window.history.back();
	});

	$('.button-recruit').click(function(event) {
		event.preventDefault();
		openRecruitDialog();
	});
	
	mails();
});

// function prettyImages() {
// 	var images = $("img");
// 		
// 	images.load(function (e) {
// 		$(this).animate({
// 			opacity: 1
// 		}, 300);
// 	});
// 	
// 	var time = setTimeout(function () {
// 		images.animate({
// 			opacity: 1
// 		}, 300);
// 	}, 3000);
// 	
// }

