﻿$(document).ready(function() {
	$("#accordion").accordion({
		header: "h3",
		alwaysOpen: true,
		event: 'mouseover',
		autoHeight: true
	});
	$("#accordion .ui-accordion-content li").click(function() {
		$(this).toggleClass("selected");
		var filter = showCriteria();
		getJobs(filter, 0);
	});
	readCriteriaFromCookie();
	var filter = showCriteria();
	getJobs(filter, 0);

});
function getJobs(filter, page) {
	$.ajax({
		type: "GET",
		url: "/dispatcher.ashx?m=getJobs&page=" + page + "&" + filter,
		dataType: "json",
		success: function(json) {

			$("#jobsearchdiv").html("");
			if (json.Total == 0) {
			    $("#jobsearchdiv").html("<h3>Sorry</h3><p>Geen vacatures gevonden.</p>");
			    $("#jobspager").hide();
			} else {
			    $("#jobspager").show();
				$(json.Items).each(function() {

					var jobWrapper = document.createElement("div");
					var h3 = document.createElement("h3");
					var a = document.createElement("a");
					var locationp = document.createElement("p");

					a.href = jobsearchlinkbase + this.Id;
					$(a).text(this.Title);

					$(jobWrapper).addClass("jobwrapper");

					$(locationp).addClass("joblocation");
					$(locationp).text(this.Location);

					h3.appendChild(a);
					jobWrapper.appendChild(h3);
					jobWrapper.appendChild(locationp);

					//$(jobWrapper).append(this.Description);

					$("#jobsearchdiv")[0].appendChild(jobWrapper);
				});
				$("#jobsearchdiv .jobwrapper:even").addClass("bgef");
				$("#jobsearchdiv .jobwrapper:odd").addClass("bgf8");
			}
			$("#jobspager a").remove();
			$("#jobspager span").remove();
			for (var i = 0; i < json.Total / 5; i++) {
				if (i != page) {
					var pagelink = document.createElement("a");
					pagelink.href = "#";
					$(pagelink).text(i + 1);
					$(pagelink).click(function() {
						var filter = showCriteria();
						getJobs(filter, ($(this).text()) - 1);
						return false;
					});
					$("#jobspager")[0].appendChild(pagelink);
				} else {
					var pagespan = document.createElement("span");
					$(pagespan).text(i + 1);
					$("#jobspager")[0].appendChild(pagespan);
				}
			}

		},
		error: function() {
			//alert("Error");
		}
	});
}
function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for (var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ') c = c.substring(1, c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
	}
	return null;
}

function readCriteriaFromCookie() {
	var filter = decodeURIComponent(readCookie("jobfilter"));
	if (filter) {
		var filters = filter.split('&');
		for (var i = 0; i < filters.length; i++) {
			var namevalue = filters[i].split('=');
			var values = decodeURIComponent(namevalue[1]).split(',');
			if (namevalue[0] == "disciplines") {
				for (var j = 0; j < values.length; j++) {
					if (values[j] != "") {
						$("#filterlistdiscipline li:contains('" + values[j] + "')").addClass("selected");
					}
				}
			}
			if (namevalue[0] == "educations") {
				for (var j = 0; j < values.length; j++) {
					if (values[j] != "") {
						$("#filterlisteducation li:contains('" + values[j] + "')").addClass("selected");
					}
				}
			}
			if (namevalue[0] == "functionAreas") {
				for (var j = 0; j < values.length; j++) {
					if (values[j] != "") {
						$("#filterlistfunctionarea li:contains('" + values[j] + "')").addClass("selected");
					}
				}
			}
			if (namevalue[0] == "workHours") {
				for (var j = 0; j < values.length; j++) {
					if (values[j] != "") {
						$("#filterlistworkhours li:contains('" + values[j] + " uur')").addClass("selected");
					}
				}
			}
			if (namevalue[0] == "employments") {
				for (var j = 0; j < values.length; j++) {
					if (values[j] != "") {
						$("#filterlistemployment li:contains('" + values[j] + "')").addClass("selected");
					}
				}
			}
			if (namevalue[0] == "locations") {
				for (var j = 0; j < values.length; j++) {
					if (values[j] != "") {
						$("#filterlistlocation li:contains('" + values[j] + "')").addClass("selected");
					}
				}
			}
		}
	}

}
function showCriteria() {
	var filter = "";
	var filtereddisciplines = "";
	$("#filterlistdiscipline li.selected").each(function() {
		if (filtereddisciplines != "") filtereddisciplines += ", ";
		filtereddisciplines += trim($(this).text());
	});
	filter = "disciplines=" + encodeURIComponent(filtereddisciplines.replace(/, /g, ","));
	$("#" + hfDisciplinesId).val(filtereddisciplines.replace(/, /g, ","));
	var filtereddisciplinesText = filtereddisciplines;
	if (filtereddisciplinesText == "") filtereddisciplinesText = "(geen filter)";
	$("#filtereddisciplines").text(filtereddisciplinesText);
	filtereddisciplinesText = filtereddisciplines;
	if (filtereddisciplinesText == "") filtereddisciplinesText = "alle";
	$("#subscribefiltereddisciplines").text(filtereddisciplinesText);

	var filterededucations = "";
	$("#filterlisteducation li.selected").each(function() {
		if (filterededucations != "") filterededucations += ", ";
		filterededucations += trim($(this).text());
	});
	filter += "&educations=" + encodeURIComponent(filterededucations.replace(/, /g, ","));
	$("#" + hfEducationsId).val(filterededucations.replace(/, /g, ","));
	var filterededucationsText = filterededucations;
	if (filterededucationsText == "") filterededucationsText = "(geen filter)";
	$("#filterededucations").text(filterededucationsText);
	filterededucationsText = filterededucations;
	if (filterededucationsText == "") filterededucationsText = "alle";
	$("#subscribefilterededucations").text(filterededucationsText);

	var filteredfunctionareas = "";
	$("#filterlistfunctionarea li.selected").each(function() {
		if (filteredfunctionareas != "") filteredfunctionareas += ", ";
		filteredfunctionareas += trim($(this).text());
	});
	filter += "&functionAreas=" + encodeURIComponent(filteredfunctionareas.replace(/, /g, ","));
	$("#" + hfFunctionAreasId).val(filteredfunctionareas.replace(/, /g, ","));
	var filteredfunctionareasText = filteredfunctionareas;
	if (filteredfunctionareasText == "") filteredfunctionareasText = "(geen filter)";
	$("#filteredfunctionareas").text(filteredfunctionareasText);
	filteredfunctionareasText = filteredfunctionareas;
	if (filteredfunctionareasText == "") filteredfunctionareasText = "alle";
	$("#subscribefilteredfunctionareas").text(filteredfunctionareasText);

	var filteredworkhours = "";
	$("#filterlistworkhours li.selected").each(function() {
		if (filteredworkhours != "") filteredworkhours += ", ";
		filteredworkhours += trim($(this).text().replace(" uur", ""));
	});
	filter += "&workHours=" + encodeURIComponent(filteredworkhours.replace(/, /g, ","));
	$("#" + hfWorkHoursId).val(filteredworkhours.replace(/, /g, ","));
	var filteredworkhoursText = filteredworkhours;
	if (filteredworkhoursText == "") filteredworkhoursText = "(geen filter)";
	$("#filteredworkhours").text(filteredworkhoursText);
	filteredworkhoursText = filteredworkhours;
	if (filteredworkhoursText == "") filteredworkhoursText = "alle"; else filteredworkhoursText += "uur";
	$("#subscribefilteredworkhours").text(filteredworkhoursText);

	var filteredemployments = "";
	$("#filterlistemployment li.selected").each(function() {
		if (filteredemployments != "") filteredemployments += ", ";
		filteredemployments += trim($(this).text());
	});
	filter += "&employments=" + encodeURIComponent(filteredemployments.replace(/, /g, ","));
	$("#" + hfEmploymentsId).val(filteredemployments.replace(/, /g, ","));
	var filteredemploymentsText = filteredemployments;
	if (filteredemploymentsText == "") filteredemploymentsText = "(geen filter)";
	$("#filteredemployments").text(filteredemploymentsText);
	filteredemploymentsText = filteredemployments;
	if (filteredemploymentsText == "") filteredemploymentsText = "alle";
	$("#subscribefilteredemployments").text(filteredemploymentsText);

	var filteredlocations = "";
	$("#filterlistlocation li.selected").each(function() {
		if (filteredlocations != "") filteredlocations += ", ";
		filteredlocations += trim($(this).text());
	});
	filter += "&locations=" + encodeURIComponent(filteredlocations.replace(/, /g, ","));
	$("#" + hfLocationsId).val(filteredlocations.replace(/, /g, ","));
	var filteredlocationsText = filteredlocations;
	if (filteredlocationsText == "") filteredlocationsText = "(geen filter)";
	$("#filteredlocations").text(filteredlocationsText);
	filteredlocationsText = filteredlocations;
	if (filteredlocationsText == "") filteredlocationsText = "alle";
	$("#subscribefilteredlocations").text(filteredlocationsText);

	var exp = new Date();
	exp.setYear(exp.getFullYear() + 1);
	document.cookie = 'jobfilter=' + encodeURIComponent(filter) + '; expires=' + exp.toGMTString() + '; path=/'

	return filter;
}
function trim(value) {
	value = value.replace(/^\s+/, '');
	value = value.replace(/\s+$/, '');
	return value;
}