var kleur;
	var snelheid;
	var preInfo, info, tijd;
	var links = new Array;
    var teller = 0;
    var count = 0;
    var sequenceTimer;
    
// de amen-samples
	var base	= new QSound(null, "base", "wav/amen_base.wav");
	var hat		= new QSound(null, "hat", "wav/amen_hat.wav");
    var snare_1 = new QSound(null, "snare_1", "wav/amen_snare_1.wav");
    var snare_2 = new QSound(null, "snare_2", "wav/amen_snare_2.wav");
    var shfl_1	= new QSound(null, "shfl_1", "wav/amen_shfl_1.wav");
    var shfl_2	= new QSound(null, "shfl_2", "wav/amen_shfl_2.wav");
    var shfl_3	= new QSound(null, "shfl_3", "wav/amen_shfl_3.wav");
    var bsjk	= new QSound(null, "bsjk", "wav/amen_bsjk.wav");
    
// array met amen-samples        
    var amenArray = new Array
    (
		base, hat, snare_1, snare_2, 
		shfl_1, shfl_2, shfl_3, bsjk 
	);

//	variabelen voor het omrekenen van millsec naar bpm (of andersom)
	var millisPerMinute = 64000;
	var stepTime, bpm;
	
/*
	teller coor het stoppen/ starten van de sequence
	resp. voor het tellen van de maten in de sequence
*/
    var stopTeller = 0;
    var stepTeller = 0;

//	de array waarin de gekozen sequence wordt opgeslagen		
	var sequencerArray = new Array(16);

	var images = new Array 
	(
		"images/pop.gif", "images/tc.gif", 
		"images/vissen.gif", "images/hersenBoom.gif", 
		"images/face_1.gif", "images/face_2.gif"
	);
	
	var preTekstArray = new Array (
			"User Agent: ", "Platform: ",
			"Macintosh: ", "Windows: ",
			"Application: ", "Version: ",
			"Not nice: ", "Internet Explorer: ",
			"Major Version: "
		);
		
	var browserInfoArray = new Array (
			UA , thePlatform, isMAC, 
			isWIN, theApp, version, 
			isNS, isIE, isMajor
		);

	var voorKleurArray = new Array(
			"#33eecc", "#9fbfaf", 
			"#4a9ef4", "#4fdcd0",
			"#22fdfd", "#00e2f4"
		);
			
	var achterKleurArray = new Array(
			"#210336", "#500000", 
			"#444944", "#700000",
			"#686669", "#900000"
		);

	var downloadKleurArray = new Array(
			"#ccff99", "#cccccc", 
			"#edfded", "#ffcc99",
			"#efffef", "#faeafa"
		);
	
	function showInfo()
	{
		var willeInfo = Math.floor(Math.random(9) * 9);
		info = browserInfoArray[willeInfo];
		preInfo = preTekstArray[willeInfo];
		preInfo += info;
		return preInfo;
	}
	
	function showTotalUserInfo()
	{
		var kleur_01, kleur_02;
		var object = document.getElementById("info");
		var deTekst = showInfo();
		
		kleur_01 = getAchterKleur();
		kleur_01 = getVoorKleur();
		
		object.innerHTML = "You are being watched!<br>" + deTekst;
		
		object.style.color = kleur_01;
		object.style.backgroundColor = kleur_02;
		vertraging("showTotalUserInfo()", 360);
	}
	
	function init()
	{
		initSequencer();
		window.status = ". . : | |   T i m e    C o n v e r t !   | | : . .";
		snelheid = 20;
	}
	
	function minSnelheid()
	{
		snelheid = 1000;
	}
	
	function maxSnelheid()
	{
		snelheid = 100;
	}
	
	function defaultSnelheid()
	{
		snelheid = 500;
	}
	function getVoorKleur()
	{
		var willeKleur = Math.floor(Math.random(6) * 6);
		kleur = voorKleurArray[willeKleur];
		return kleur;	
	}
	
	function getAchterKleur()
	{
		var willeKleur = Math.floor(Math.random(6) * 6);
		kleur = achterKleurArray[willeKleur];
		return kleur;	
	}
	
	function getDownloadKleur()
	{
	//	var kiesArray = new Array( voorKleurArray, achterKleurArray, downloadKleurArray);
	//	var willArray = Math.floor(Math.random(3) * 3);
	//	var gekozenArray = kiesArray[willArray];
		var willeKleur = Math.floor(Math.random(6) * 6);
		kleur = downloadKleurArray[willeKleur];
		return kleur;	
	}

	function wisselKleuren()
	{
		var kleur_01, kleur_02;

		kleur_01 = getVoorKleur();
		kleur_02 = getAchterKleur();
			
		document.getElementById("timeConvert").style.color = kleur_01;
		document.body.style.backgroundColor = kleur_02;
		vertraging("wisselKleuren()", 1000);
	}
	
	function wisselOnderTekst()
	{
		var kleur_01;
		kleur_01 = getVoorKleur();
			
		document.getElementById("onderTekst").style.color = kleur_01;
		vertraging("wisselOnderTekst()", 400);
	}
	
	function vertraging(functie, millis)
	{
		window.setTimeout(functie, millis);
	}
	
	function veranderXPositie()
	{
		var xPos;
		xPos = Math.floor(Math.random(230)*590);
		return xPos;
	}
	
	function veranderYPositie()
	{
		var yPos;
		yPos = Math.floor(Math.random(200)*200);
		return yPos;
	}
	
	function setPositieDownload_01()
	{
		window.status = ". . : | |   T i m e    C o n v e r t !   | | : . .";
		var x = veranderXPositie();
		var y = veranderYPositie();		
		var kleur = getDownloadKleur();
		
		document.getElementById("download_01").style.left = x;
		document.getElementById("download_01").style.top = 90 + y;
		document.getElementById("downloadBrain").style.color = kleur;
		vertraging("setPositieDownload_01()", snelheid);
	}
	
	function setPositieDownload_02()
	{
		window.status = ". . : | |   T i m e    C o n v e r t !   | | : . .";
		var x = veranderXPositie();
		var y = veranderYPositie();		
		var kleur = getDownloadKleur();

		document.getElementById("download_02").style.left = x;
		document.getElementById("download_02").style.top = 180 + y;
		document.getElementById("downloadBrain2").style.color = kleur;
		vertraging("setPositieDownload_02()", snelheid);
	}	
	
	function setPositieDownload_03()
	{
		window.status = ". . : | |   T i m e    C o n v e r t !   | | : . .";
		var x = veranderXPositie();
		var y = veranderYPositie();		
		var kleur = getDownloadKleur();

		document.getElementById("download_03").style.left = x;
		document.getElementById("download_03").style.top = 95 + y;
		document.getElementById("downloadBrain3").style.color = kleur;
		vertraging("setPositieDownload_03()", snelheid);
	}
	function setPositieDownload_04()
	{
		window.status = ". . : | |   T i m e    C o n v e r t !   | | : . .";
		var x = veranderXPositie();
		var y = veranderYPositie();		
		var kleur = getDownloadKleur();

		document.getElementById("download_04").style.left = x;
		document.getElementById("download_04").style.top = 95 + y;
		document.getElementById("downloadBrain4").style.color = kleur;
		vertraging("setPositieDownload_04()", snelheid);
	}
	
	function annoying()
	{	
		window.status = ". . : | |   T i m e    C o n v e r t !   | | : . .";
		var kleur_01;
		kleur_01 = getVoorKleur();
			
		document.getElementById("nietGoed").style.color = kleur_01;
		vertraging("annoying()", 100);
	}
	
	function annoyingMenu()
	{	
		window.status = ". . : | |   T i m e    C o n v e r t !   | | : . .";
		var kleur_01;
		kleur_01 = getVoorKleur();
			
		document.getElementById("menu").style.color = kleur_01;
		vertraging("annoyingMenu()", 100);
	}
	
	function annoyingButton0()
	{	
		window.status = ". . : | |   T i m e    C o n v e r t !   | | : . .";
		var kleur_01;
		var kleur_02;
		kleur_01 = getVoorKleur();
		kleur_02 = getAchterKleur();
			
		document.getElementById("button0").style.color = kleur_01;
		document.getElementById("button0").style.backgroundColor = kleur_02;
		vertraging("annoyingButton0()", 100);
	}
	
	function annoyingButton1()
	{	
		window.status = ". . : | |   T i m e    C o n v e r t !   | | : . .";
		var kleur_01;
		var kleur_02;
		kleur_01 = getAchterKleur();
		kleur_02 = getVoorKleur();
			
		document.getElementById("button1").style.color = kleur_01;
		document.getElementById("button1").style.backgroundColor = kleur_02;
		vertraging("annoyingButton1()", 50);
	}
	
	function annoyingButton2()
	{	
		window.status = ". . : | |   T i m e    C o n v e r t !   | | : . .";
		var kleur_01;
		var kleur_02;
		kleur_01 = getDownloadKleur();
		kleur_02 = getAchterKleur();
			
		document.getElementById("button2").style.color = kleur_01;
		document.getElementById("button2").style.backgroundColor = kleur_02;
		vertraging("annoyingButton2()", 600);
	}
	
	function annoyingButtonAmen()
	{	
		window.status = ". . : | |   T i m e    C o n v e r t !   | | : . .";
		var kleur_01;
		var kleur_02;
		kleur_01 = getDownloadKleur();
		kleur_02 = getAchterKleur();
			
		document.getElementById("stop").style.color = kleur_01;
		document.getElementById("stop").style.backgroundColor = kleur_02;
		vertraging("annoyingButtonAmen()", 600);
	}
	
	function getImage()
	{		
		var eenImage = Math.floor(Math.random(6) * 6); 
		var deImage = images[eenImage];
		document.getElementById("plaatje").innerHTML="<img height=160 width=160 src=" + deImage + " />" ;
		vertraging("getImage()", 110);
	}
	
	function getImage_2()
	{		
		var eenImage = Math.floor(Math.random(6) * 6); 
		var deImage = images[eenImage];
		document.getElementById("plaatje_2").innerHTML="<img height=110 width=110 src=" + deImage + " />" ;
		vertraging("getImage_2()", 310);
	}

//	initialisatie
	function initSequencer()
	{
		maakTextStijl();
		setStepTime();
	}
	
//	deze functie maakt de sequencer enigszins 'visueel'	
	function maakTextStijl()
	{
		var stepID;
		var object;
		var x = 2;
		
		for (var i=0; i < sequencerArray.length; i++)
		{	
			stepID = "text"+i;
			object = document.getElementById(stepID);
			object.style.position = "relative";
			object.style.width = "10px";
			object.style.border = "1px solid white";
			object.style.color = "white";
			object.style.backgroundColor = "#35659a";
			object.style.left = x + "px";   
			object.style.height = "10px";
			object.style.fontFamily = "Courier New";
			object.style.fontSize = "8px";
			x += 1;
		}
	}

/*
	deze functie rekent het gekozen aantal BPM
	om naar millisecondes	
*/
	function setStepTime()
	{
	//	var bpmIn = window.prompt("Geef aantal Beats Per Minute:", 180);
	//	bpm = parseInt(bpmIn)+60;
		
		bpm = 240;
		stepTime = Math.floor((millisPerMinute / bpm));
	}
	
/*
	deze functie leest de tekstvelden uit
	en plaats de wwarde (als gekozen amen-sample)
	in de sequencerarray
*/
	function leesTekstVelden(dePlek)
	{
		var i = dePlek;
		var stepID;
		var tekstVeld;
		var gekozenWaarde;
		
		stepID = "text"+i;
		tekstVeld = document.getElementById(stepID);
		gekozenWaarde = tekstVeld.value;
		
		return gekozenWaarde;
	}
	
	function setSequenceArray()
	{
		var deSample;		
		
		for (var i=0; i<16; i++)
		{
			deSample = parseInt(leesTekstVelden(i));
			gekozenSample = amenArray[deSample];
			vulArray(i, gekozenSample);
		}
		playSequence();
	}

//	deze functie vult de sequencerArray met samples
	function vulArray(plek, sample)
	{
		sequencerArray[plek] = sample;
	}
	
	function kleurStepPlek (teller)
	{
		var stepID;
		var tekstVeld;
		stepID = "text"+(teller);
		tekstVeld = document.getElementById(stepID);
		tekstVeld.style.backgroundColor = "#d00000";
	}
	
	function ontKleurStepPlek()
	{
		var stepID;
		var tekstVeld;
		
		for (var i=0; i < sequencerArray.length; i++)
		{
			stepID = "text"+(i);
			tekstVeld = document.getElementById(stepID);
			tekstVeld.style.backgroundColor = "#35659a";
		}	
	}
	
//	de main 'PLAY'-functie
	function playSequence()
	{
		var amen;
			   		
	   	if (sequencerArray[0] != null)
	   	{
	   		if (stepTeller < 16)
	   		{	
	   			amen = sequencerArray[stepTeller];
	
	   			amen.play();
	   			kleurStepPlek(stepTeller);
	   			stepTeller++;
	   				
	   			if (stepTeller == 16)
	   			{
	   				stepTeller = 0;
	   				ontKleurStepPlek();
	   			}
	   		}
	   		sequenceTimer = vertraging("playSequence()", stepTime/2);
	   	}
	   	else 
	   	{
	   		window.alert("Maak een AMEN-sequence.");
	   	}  					   				
	}
	
	function nieuweSequence()
	{

		init();
		var stepID;
		var tekstVeld;
		
		for (var i=0; i < sequencerArray.length; i++)
		{
			stepID = "text"+(i);
			tekstVeld = document.getElementById(stepID);
			tekstVeld.value = "";
			sequencerArray[i] = null;
		}	
	}
	
/*
	stoppen blijkt erg lastig, dus daarom
	gewoon het volume op 0, daarna volume weer omhoog
	simuleert starten/stoppen
*/
    function stopSequence()
    {
		window.clearTimeout(sequenceTimer);
		speel = false;
		
		if (stopTeller == 0)
		{
			base.setVolume(-10000);
			snare_1.setVolume(-10000);
			snare_2.setVolume(-10000);
			shfl_1.setVolume(-10000);
			shfl_2.setVolume(-10000);
			bsjk.setVolume(-10000);
			shfl_3.setVolume(-10000);
			hat.setVolume(-10000);
			
			document.getElementById("stop").innerText="Amen aan!";
			
			stopTeller ++;
		}
		
		else if (stopTeller == 1)
		{
			base.setVolume(0);
			snare_1.setVolume(0);
			snare_2.setVolume(0);
			shfl_1.setVolume(0);
			shfl_2.setVolume(0);
			bsjk.setVolume(0);
			shfl_3.setVolume(0);
			hat.setVolume(0);
			document.getElementById("stop").innerText="Amen uit!";
			
			stopTeller --;
		}
}


