function swapNodes(a, b) {
	if (a != undefined && b != undefined)
	{
		var aparent= a.parentNode;
		var asibling= a.nextSibling===b? a : a.nextSibling;
		b.parentNode.insertBefore(a, b);
		aparent.insertBefore(b, asibling);
	}
}

String.prototype.endsWith = function(str)
{return (this.match(str+"$")==str)}
String.prototype.beginsWith = function(str)
{return (this.match("^"+str)==str)}

var globalQueue;
var popstatenu = false;

function klapIntroIn()
{
	var jq = $(this);
	
	$("nav").stop().animate({
		height: "62px",
		marginBottom: "0px"
	}, 1000, "swing", function() {
		$(this).removeClass("onder").addClass("boven");
	});
	
	$("nav > div").stop().animate({
		height: "62px"
	}, 1000, "swing");
	
	$("nav > div > div > a > span").animate({
		height: "30px",
		backgroundPosition: "100% 0%", color: "#082048"
	}, 600, "swing");
	
	
	$("nav a").addClass("omhoog").animate({ backgroundPosition: "100% 0%"}, 1000, "swing", function() {
		$(this).removeClass("omhoog");
	});
	
	$("#intro").stop().fadeTo(500, 0.0).slideUp(500, function() { $(this).remove(); jq.dequeue(); });
}

function klapIntroUit()
{
	var jq = $(this);
	
	$("nav").removeClass("boven").addClass("onder").stop().animate({
		height: "142px",
		marginBottom: "30px"
	}, 1000, "swing");
	
	$("nav > div").stop().animate({
		height: "142px"
	}, 1000, "swing");
	
	$("nav > div > div > a > span").stop().animate({
		height: "110px",
		backgroundPosition: "0% 0%", color: "#ffffff"
	}, 600, "swing");
	
	$("nav a").addClass("omhoog").animate({ backgroundPosition: "100% 100%"}, 300, "swing", function() {
		$(this).removeClass("omhoog");
	});
	
	$("#intro").stop().css({opacity: 0.0}).slideDown(500).fadeTo(500, 1.0, function() { jq.dequeue(); });
}

function klapPaginaIn()
{
	var jq = $(this);
	
	verwijderTitel = false;
	verwijderVideoSpeler();
	$("#sluitvideo").remove();
	
	if ($("body").hasClass("donker"))
	{
		jq.queue(maakLicht);
	}
	if ($("nav").hasClass("onder"))
		jq.queue(klapIntroIn);
	else
	{
		jq.queue(function() {
			var jq2 = $(this);
			$(".pagina").stop().slideUp(500, function() { $(this).remove(); jq2.dequeue();});
		});
	}
	jq.dequeue();
}

function klapPaginaUit(pagina)
{
	var jq = $(this);
	jq.queue(function() {
		var jq2 = $(this);
		//swapNodes(document.getElementById(pagina), $(".bovenste").get(0));
		$(".bovenste").removeClass("bovenste");
		$("#" + pagina).addClass("bovenste").stop().slideDown(500,  function()
		{
			if (pagina.beginsWith("video") && !$("body").hasClass("donker"))
			{
				jq.queue(maakDonker);
			}
			if (pagina == "contact")
			{
			}
			jq2.dequeue();
		});
	});
	jq.dequeue();
}

function maakDonker()
{
	var jq = $(this);
	$("#logo-licht").stop().fadeTo(800, 0.0);
	$("#logo-donker").stop().fadeTo(800, 1.0, function() { jq.dequeue(); });
	
	$("body").animate({ backgroundColor: "#001133"}, 800, "swing");
	$("article, header .ingelogd").animate({ color: "#ffffff"}, 800, "swing");
	
	$("footer div.donker").fadeIn(800);
	$("#donkerverloop").fadeIn(800);
	
	$("footer p").animate({ color: "#112233"}, 800, "swing");
	$("footer p a").animate({ color: "#112244"}, 800, "swing");
	
	$("body").addClass("donker");
}

function maakLicht()
{
	var jq = $(this);
	$("#logo-licht").stop().fadeTo(500, 1.0);
	$("#logo-donker").stop().fadeTo(500, 0.0, function() { 	$("body").removeClass("donker"); jq.dequeue(); });
	
	$("body").animate({ backgroundColor: "#faf9f8"}, 500, "swing");
	
	$("article, header .ingelogd").animate({ color: "#082048"}, 500, "swing");
	
	$("footer div.donker").fadeOut(500);
	$("#donkerverloop").fadeOut(500);
	
	$("footer p").animate({ color: "#cccccc"}, 500, "swing");
	$("footer p a").animate({ color: "#bbbcc"}, 500, "swing");
}

function gaNaarPagina(pagina, vanuitHistory)
{
	if (pagina == null) pagina = "intro";
	
	if (pagina.beginsWith("video") && huidigePagina.beginsWith("video"))
	{
		if (pagina == "video")
			{ verwijderTitel = true; verwijderVideoSpeler(); }
		else
		{
			doelvid = pagina.substring(6); //kap het 'video/' stukje eraf
			gaNaarVideo(doelvid, false, true);
		}
	}
	else if (pagina.beginsWith("klanten") && huidigePagina == "klanten" && !laadwel)
	{
		if (pagina.beginsWith("klanten/"+inlogid+"/")) //ga video laden
		{
			laadKlantVideo(pagina.replace("klanten/"+inlogid+"/", ""), true);
		}
		else if (videoscherm != null) //juist video weg
		{
			klantenVideoSpelerWeg(vanuitHistory);
		}
	}
	else if (huidigePagina != pagina || laadwel)
	{
		klapPaginaIn();
		//globalQueue.queue(klapPaginaIn);
		globalQueue.queue(function() {
			var jq = $(this);
			var url = pagina == "intro" ? "/json" : "/" + pagina + "/json";
			$.getJSON(url, function(data)
			{
				if (data != null)
				{
					if (window.history.pushState)
					{
						if (!vanuitHistory)
							window.history.pushState(pagina, data.titel, "/" + (pagina == "intro" ? "" : pagina));
						popstatenu = true;
					}
					else
						window.location.hash = pagina;
					document.title = data.titel;
					if (pagina == "intro")
						$(".navigatie").before(data.html);
					else
						$(".navigatie").after(data.html);
					$("#"+pagina).hide();
					if (pagina == "intro")
						globalQueue.queue(klapIntroUit);
					else
						klapPaginaUit(pagina);
					if (pagina == "video" || (pagina.beginsWith("klanten") && ingelogd))
					{
						videodata = data.videos;
						flashvideo = data.flashvideo;
						kleinScherm = data.kleinscherm;
						geenAmbilight = data.geenambilight;
						laadvideometeen = data.laadvideometeen;
					}
					if (pagina.beginsWith("klanten") && ingelogd)
					{
						inlognaam = data.klantnaam;
					}
					paginaGeladen(pagina.beginsWith("klanten") ? "klanten" : pagina);
				}
				jq.dequeue();
			});
		});
		huidigePagina = pagina;
		if (pagina.beginsWith("klanten")) huidigePagina = "klanten";
	} else {
		if (pagina =="video") { verwijderTitel = true; verwijderVideoSpeler(); }
	}
}

function paginaGeladen(pagina)
{
	if (pagina == "contact")
	{
		$(".vcard .persoon .n .given-name").hover(function() {
			$("#twan-foto > img").stop(true, true).fadeIn(300);
		}, function() {
			$("#twan-foto > img").stop(true, true).fadeOut(300);
		});
		
		$("#twan-foto").hover(function() {
			$(".vcard .persoon .n").stop(true, true).animate({
				borderTopColor: "rgba(20,130,200,0.2)", borderBottomColor: "rgba(20,130,200,0.2)",
				borderLeftColor: "rgba(20,130,200,0.2)", borderRightColor: "rgba(20,130,200,0.2)",
				backgroundColor: "rgba(20,130,200,0.1)" }, 300, "swing");
		}, function() {
			$(".vcard .persoon .n").stop(true, true).animate({
				borderTopColor: "rgba(20,130,200,0.0)", borderBottomColor: "rgba(20,130,200,0.0)",
				borderLeftColor: "rgba(20,130,200,0.0)", borderRightColor: "rgba(20,130,200,0.0)",
				backgroundColor: "rgba(20,130,200,0.0)" }, 300, "swing");
		});
		
		$("#googlemap img").hover(function() {
			$(".vcard .adr").stop(true, true).animate({
				borderTopColor: "rgba(20,130,200,0.2)", borderBottomColor: "rgba(20,130,200,0.2)",
				borderLeftColor: "rgba(20,130,200,0.2)", borderRightColor: "rgba(20,130,200,0.2)",
				backgroundColor: "rgba(20,130,200,0.1)" }, 300, "swing");
		}, function() {
			$(".vcard .adr").stop(true, true).animate({
				borderTopColor: "rgba(20,130,200,0.0)", borderBottomColor: "rgba(20,130,200,0.0)",
				borderLeftColor: "rgba(20,130,200,0.0)", borderRightColor: "rgba(20,130,200,0.0)",
				backgroundColor: "rgba(20,130,200,0.0)" }, 300, "swing");
		});
		
		$(".vcard .adr .street-address").click(function() {
			var src = $("#googlemap img").attr("src");
			$("#googlemap img").attr("src", "/elementen/runstraat-12.png");
			$(".vcard .adr .geenlink").removeClass("geenlink");
			$(this).addClass("geenlink");
		});
		
		$(".vcard .adr .postal-code").click(function() {
			var src = $("#googlemap img").attr("src");
			$("#googlemap img").attr("src", "/elementen/5427-ed.png");
			$(".vcard .adr .geenlink").removeClass("geenlink");
			$(this).addClass("geenlink");
		});
		
		$(".vcard .adr .locality").click(function() {
			var src = $("#googlemap img").attr("src");
			$("#googlemap img").attr("src", "/elementen/boekel.png");
			$(".vcard .adr .geenlink").removeClass("geenlink");
			$(this).addClass("geenlink");
		});
	}
	else if (pagina == "video")
	{
		$("#video-links").click(videoStripRechts);
		$("#video-rechts").click(videoStripLinks);
		$(".videostrip a").hover(function() { $(this).find("img").fadeTo(200, 1.0); },
								 function() { $(this).find("img").fadeTo(200, 0.7); }).click(videoStripKlik);
		$(".videostrip a img").css("opacity", 0.7);
		
		if (laadvideometeen)
		{
			gaNaarVideo(laadvideometeen, true, true);
			laadvideometeen = null;
		}
	}
	else if (pagina == "klanten")
	{
		$(".klant .inlogvakje").append('<form><input type="submit" value="Inloggen" class="knopje"/><div class="veld"><input placeholder="inloggen" name="wachtwoord" class="veld" type="password"/></div></form>');
		
		$(".klant").mouseenter(function() {
			doeInlogVakje($(this));
		}).mouseleave( function() {
			doeInlogVakjeWeg($(this));
		});
		
		$(".klant .inlogvakje form").submit(logIn);
		$("a.videolink").click(klantVideoKlik);
		
		if (laadvideometeen)
		{
			laadKlantVideo(laadvideometeen, true);
		}
	}
	
	if (pagina != "klanten")
	{
		//audio links vervangen
		$('a[href$=".mp3"]').each(function() { maakAudioTag(this); });
	}
}

$( function()
  {
	globalQueue = $("header");
	
	//$("nav a > span").css({ backgroundPosition: "0% 0%", color: "#ffffff"});
	//$("nav a").css({ backgroundPosition: "100% 100%"});
	
	$("nav a").hover(function() {
		if (!$(this).hasClass("omhoog"))
		{
			if ($("nav").hasClass("boven"))
				$(this).children("span").stop().animate({ backgroundPosition: "0% 0%)", color: "#ffffff"}, 400, "swing");
			else
				$(this).children("span").stop().animate({ backgroundPosition: "100% 0%)", color: "#082048"}, 400, "swing");
		}
	}, function() {
		if (!$(this).hasClass("omhoog"))
		{
			if ($("nav").hasClass("boven"))
				$(this).children("span").stop().animate({ backgroundPosition: "100% 0%)", color: "#082048"}, 400, "swing");
			else
				$(this).children("span").stop().animate({ backgroundPosition: "0% 0%)", color: "#ffffff"}, 400, "swing");
		}
	}).click(function() {
		var pagina = this.id.replace("-link","");
		if (pagina == "klanten" && ingelogd)
			gaNaarPagina("klanten/" + inlogid);
		else
			gaNaarPagina(pagina);
		return false;
	});
	
	$('header .ingelogd a').click(logUit);	
	
	$("header > a").click(function() {
		if ($("nav").hasClass("boven"))
		{
			//huidigePagina = "intro";
			//globalQueue.queue(klapPaginaIn).queue(klapIntroUit);
			gaNaarPagina("intro");
		}
		return false;
	});
	
	$(window).bind('resize', metaVideoSpeler);
	popstatenu = false;
	window.onpopstate = function(event) { if (popstatenu) gaNaarPagina(event.state, true); };
	
	paginaGeladen(huidigePagina);
	
	/*if (!window.history.pushState)
	{
		if (window.location.hash != "")
		{
			gaNaarPagina(window.location.hash.substring(1));
			window.location.hash = ""; //werkt niet goed met video's.
		}
	}*/
  });
