var selectedCourses = new Array();
var idPopup="";


var footerEmail =
        "<div style=\"font-family: Georgia,serif;\">" +
        "<p>" +
        "Hartelijk dank voor uw aanmelding bij ons trainingsprogramma. Uiterlijk 2 tot 3 weken voor de start van een training ontvangt u van ons schriftelijk bericht of u bent geplaatst. Wilt u het eerder weten? Stuur dan een e-mail naar <a href=\"mailto:training@cultuur-ondernemen.nl\">training@cultuur-ondernemen.nl</a>." +
		"<br>" +
		"<br>" +
		"Cultuur-Ondernemen" +
		"<br>" +
		"Nieuwe Herengracht 119" +
		"<br>" +
		"1011 SB Amsterdam" +
		"<br>" +
		"Postbus 2617" +
		"<br>" +
		"1000 CP Amsterdam" +
		"<br>" +
		"+31 (0)20 535 25 00" +
		"<br>" +
		"<a href=\"mailto:info@cultuur-ondernemen.nl\">info@cultuur-ondernemen.nl</a>" +
		"<br>" +
		"<a href=\"http://www.cultuur-ondernemen.nl\">www.cultuur-ondernemen.nl</a>" +
		"</p>" +
		"</div>";


/**
 * adds handlers to the objects
 * reads the cursus data from the file and fills in an array with it
 * 
 * 
 */
function addHandlers(){
	$(".btnAanmelden").click(function(){
		aanmelden();
	});
	$("#btnVerzenden").click(function(){
		sendEmail();
	});
	$("#btnBackTop").click(function(){
		
		$("#scherm2").addClass("hidden");
		$("#scherm3").addClass("hidden");
		$("#scherm1").removeClass("hidden");
	});
	$("#btnBackBottom").click(function(){

		$("#scherm2").addClass("hidden");
		$("#scherm3").addClass("hidden");
		$("#scherm1").removeClass("hidden");
	});
	$("#selMonthTo").change(function(){
		checkMonths();
	});
	$("#selMonthFrom").change(function(){
		checkMonths();
	});
	$("#btnAll").click(function(){
		trainingenToDisplay = trainingen;
		trainingenToDisplay = trainingenToDisplay.sort(sortTitle);
		loadTrainings();
	});

    var arrValues=new Array();
    var previousName = "";
	$.getJSON('/c/portal/json_service?doAsUserId=&serviceClassName=nl.co.portlet.cursus.service.CursusArtikelServiceUtil&serviceMethodName=getContent&serviceParameters=[%22groupId%22%2C%22structureId%22]&structureId=AANBOD_CURSUSSEN&groupId=10156', function(data) {
//	$.getJSON('/co-theme/cursus-portlet/data.json', function(data) {
        var i = 0;
        for (i = 0; i < data.length; i++) {

            var content = data[i]["content"];

            if (previousName == data[i]["urlTitle"]) {
                continue;
            }

			var numOfDates = 1;
            arrValues=new Array();

            $.xmlDOM(content).find("dynamic-element").each(function() {
                var element = $(this).attr("name");
                var value = $(this).find("dynamic-content").text();

                // De elementen Dag en Tijd komen vaker voor, dus voegen we de waarde van de numOfDates-teller toe
                // achter de naam van het element.
                if (element == 'Dag' || element == 'Tijd') {
                    element += numOfDates;
                }
                // De teller met het aantal dagen wordt maar 1x per combinatie Dag/Tijd opgehoogt.
                if (element.indexOf('Tijd') != -1 && value != "") numOfDates++;

                eval("arrValues[\"" + element + "\"]=\"" + escape(value) + "\"");
            });

            trainingen[trainingen.length] =
                new training(
                    arrValues["Actief"],
                    arrValues["Code"],
                    arrValues["Cursustitel"],
                    arrValues["Cursussubtitel"],
                    arrValues["Begindatum"],
                    arrValues["Einddatum"],
                    arrValues["Dag1"] != undefined ? arrValues["Dag1"] : "",
                    arrValues["Tijd1"] != undefined ? arrValues["Tijd1"] : "",
                    arrValues["Dag2"] != undefined ? arrValues["Dag2"] : "",
                    arrValues["Tijd2"] != undefined ? arrValues["Tijd2"] : "",
                    arrValues["Dag3"] != undefined ? arrValues["Dag3"] : "",
                    arrValues["Tijd3"] != undefined ? arrValues["Tijd3"] : "",
                    arrValues["Prijs"],
                    arrValues["Body"],
                    arrValues["Niveau"]);

            // Sla de naam van de huidige cursus op om te vergelijken met de volgende rij.
            previousName = data[i]["urlTitle"];
		}

		trainingenToDisplay = trainingen;

        // Initieel sorteren we de lijst van trainingen op titel (oplopend).
        sortTrainingen();
		loadTrainings();
	});

	$("#txtVoorLetters").change(function(){
        valid8VoorLetters();
	});
	$("#txtAchternaam").change(function(){
		valid8Achternaam();	
	});
	$("#txtAdres").change(function(){
		valid8Adres();	
	});
	$("#txtWoonplaats").change(function(){
		valid8Woonplaats();	
	});
	$("#txtTelefoon1").change(function(){
		valid8Telefoon1();	
	});
	$("#txtGeboortedatum").change(function(){
		valid8Geboortedatum();	
	});
	$("#txtGeboortedatum").focus(function(){
		if($(this).val()=="dd/mm/yyyy"){
			$(this).val("");
		}
	});
	
	$("#txtBSN").change(function(){
		valid8BSN();
	});
	
	$("#txtEmail").change(function(){
		valid8Email();	
	});
	$("#txtBeroep").change(function(){
		valid8Beroep();
	});
	$("input[name=geslacht]").click(function(){
		valid8Geslacht();
	});
	$("input[name=wwik]").click(function(){
		valid8Wwik();
	});
	
	$("input[name=eerder]").click(function(){
		valid8Eerder();
	});

	$("input[name=accord]").click(function(){
		valid8Voorwaarden();
	});
	var contFiles=1;
	$("#addfile").click(function(){
		contFiles++;
		$("<input type='file' id='file"+contFiles+"' class='inputFile'/>").appendTo("#divfiles");
	});
	

}

/**
 * loads the trainings in the screen
 * 
 * it's called every time a new zoek word is filled in or a new filter option is selected
 */

function loadTrainings(){
	
	selectedCourses = new Array();
	
	$("#accordion").empty();
	var html = "<div id='divCursussen'></div>";
	$(html).appendTo("#accordion");

	if(trainingenToDisplay.length==0){
		$("#divNoResults").removeClass("hidden");
		$("#aanmeldenTop").addClass("hidden");
		$("#aanmeldenBottom").addClass("hidden");
	}
	else
	{
		$("#divNoResults").addClass("hidden");
		$("#aanmeldenTop").removeClass("hidden");
		$("#aanmeldenBottom").removeClass("hidden");

		for(i=0; i<trainingenToDisplay.length; i++){
			
			var obj = trainingenToDisplay[i];
			
			var today = new Date();
			
			if(obj.active=='true'){

                // Tonen van de verschillende data (3 stuks, data1, data2, data3).
				var data = "<table><tr><td width='160'>"+obj.data1+"</td><td valign='top' width='90'>"+obj.uur1+"</td></tr>";
				if (obj.data2 != "") {
					data += "<tr><td>"+obj.data2+"</td><td valign=top>"+obj.uur2+"</td></tr>";
				}
				if (obj.data3 != "") {
					data += "<tr><td>"+obj.data3+"</td><td valign=top>"+obj.uur3+"</td></tr>";
				}
				data += "</table>";
				
				var basic = $("#basicCourseHtml").html();
				basic = basic.replace(/Code/g,"Code"+i);
				basic = basic.replace(/titlehere/g,"<span class='objTitel'>"+obj.titel+"</span><br/><i>"+obj.xtraTitel+'</i>');
				basic = basic.replace(/datahere/g, data);
				basic = basic.replace(/pricehere/g, obj.prijs);

				var disc = obj.discipline.letter;
				if(disc=="I" || disc == undefined){
						disc="";
				}
				if(obj.niveau=="Advanced"){
					disc += "&nbsp;&nbsp;<img src='/co-theme/images/circle.gif'/>";
				}
				basic = basic.replace(/disciplinehere/g, disc);
                
				$(basic).appendTo("#divCursussen");
				
				$("#chkCode"+i).click(function(){
					addTraining(this.id, this.value, this.checked);
				});

			}
		}
	}
	
};
/**
 * adds a training to the selectedcourses array
 * 
 * called eveytime the user clicks on a course checkbox
 * 
 */
function addTraining(objId, val, checked) {

    var idx=val.substr(4);
	
	if(checked){

        var found = 0;
        for (k = 0; k < selectedCourses.length; k++) {
            if (idx == selectedCourses[k]) {
                found++;
            }
        }
        if (found == 0) {
            selectedCourses[selectedCourses.length] = idx;
        }
	} else {
        selectedCourses = $.grep(selectedCourses, function(value) {
            return value != idx;
        });
    }
	
}
/**
 * shows the form to fill in the personal information
 * 
 * called from the click event of the aanmelden button
 * 
 */
function aanmelden(){

    if (selectedCourses.length == 0) {
        alert("U heeft geen cursus geselecteerd");
        return;
    }

    $("#scherm1").addClass("hidden");
    $("#scherm2").removeClass("hidden");
    $("#txtVoorLetters").focus();

    var strSelectedCourses = "<ul>";
    for (i = 0; i < selectedCourses.length; i++) {
        strSelectedCourses += "<li>" + trainingenToDisplay[selectedCourses[i]].titel + "</li>";
    }
    strSelectedCourses += "</ul>";
    $("#selectedCourses").html(strSelectedCourses);

	$("#selectedWarning").html("<p>Naast aanmelding via onderstaand formulier is bij een aantal trainingen ook een cv en motivatie vereist, zie hiervoor de beschrijving van de desbetreffende training.</p>");

    document.fEmail.reset();
}

/**
 * sort the courses
 */
function sortTrainingen(){
	trainingenToDisplay = trainingenToDisplay.sort(sortTitle);
}
function sortTitle(a,b){
    var cursusA = a.titel.toLowerCase();
    var cursusB = b.titel.toLowerCase();
    if (cursusA < cursusB) {
        return -1
    }
    if (cursusA > cursusB) {
        return 1
    }
    if (cursusA == cursusB) {
        return 0
    }    
}

function sendEmail(){
//ALL THIS SHOULD BE SEND IN THE EMAIL: One email to the student and one email to CO
	if(valid8Form()){
		$("#scherm2").addClass("hidden");
		$("#scherm3").removeClass("hidden");
		
		var personalInfo="<h3>Uw gegevens:</h3>";
		personalInfo+="Voorletters en Voornaam: " +$("#txtVoorLetters").val() +"<br/>";
		if( $("#txtTussen").val()!=""){
			personalInfo+="Tussenvoegstel: " +$("#txtTussen").val() +"<br/>";
		}
		personalInfo+="Achternaam: " +$("#txtAchternaam").val() +"<br/>";
		personalInfo+="Geslacht: " +$("input[name=geslacht]:checked").val() +"<br/>";
		personalInfo+="Adres: " +$("#txtAdres").val() +"<br/>";
		personalInfo+="Postcode en woonplaats: " +$("#txtWoonplaats").val() +"<br/>";
		personalInfo+="Telefoon overdag: " +$("#txtTelefoon1").val() +"<br/>";
		personalInfo+="Geboortedatum: " +$("#txtGeboortedatum").val() +"<br/>";
		personalInfo+="Burgerservicenummer : " +$("#txtBSN").val() +"<br/>";
		personalInfo+="Email : " +$("#txtEmail").val() +"<br/>";
		personalInfo+="Beroep : " +$("#txtBeroep").val() +"<br/>";
		personalInfo+="WWIK bij aanvang van de training? : " +$("input[name=wwik]:checked").val() +"<br/>";
		personalInfo+="Heeft u al eerder een training gevolgd bij Cultuur-Ondernemen (voorheen Kunstenaars&CO)? : " +$("input[name=eerder]:checked").val() +"<br/>";
		
	
		var courses = "<h3>Training info:</h3>";
		
		for(i=0; i<selectedCourses.length; i++){
			var obj = trainingenToDisplay[selectedCourses[i]];
			courses +="Training code: " + obj.code + "<br/>";
			courses +="Training title: " + obj.titel + "<br/>";

            var data = "<span><table cellpadding=5 cellspacing=0><tr><td valign=top>Datum:</td><td>" + obj.data1 + "</td><td>" + obj.uur1 + "</td></tr>";
            if (obj.data2 != "") {
                data += "<tr><td></td><td>" + obj.data2 + "</td><td>" + obj.uur2 + "</td></tr>";
            }
            if (obj.data3 != "") {
                data += "<tr><td></td><td>" + obj.data3 + "</td><td>" + obj.uur3 + "</td></tr>";
            }

			data+="</table>";
			courses +=data+"<br/>";
			
			courses += '<br/>';
		}
		
		//$("#confirmContent").html(personalInfo + courses);
		
		$("#emailTo").val($("#txtEmail").val());
		$("#emailContent").val(personalInfo + courses + footerEmail);

		return true;	
		
	} else
	  return false;	
}
