/*
 * Form validation
 *  
 * Copyright (c) 2009 Edwin de Vries - Add Noise Internet & Design
 *
 */

$().ready(function() 
{
	$("input.file_1").filestyle({ 
	  image: "images/btn_bladeren.gif",
	  imageheight : 20,
	  imagewidth : 74,
	  width : 75
	});

	// show a simple loading indicator
	deform = $('#cvForm');



	showloader = $("#loader");
	showloader.hide();

	jQuery().ajaxStart(function() {
		showloader.show();
	}).ajaxStop(function() {

	}).ajaxError(function(a, b, e) {
		throw e;
	});

	var options = { 
		target:			'#uploadresultaat',   // target element(s) to be updated with server response 
		success:		verwerkResultaat,  // post-submit callback 
		url:			'/site/form/upload/id/2/',
		dataType:  		'json'

		// other available options: 
		//url:       url         // override for form's 'action' attribute 
		//type:      type        // 'get' or 'post', override for form's 'method' attribute 
		//dataType:  json        // 'xml', 'script', or 'json' (expected server response type) 
		//clearForm: true        // clear all form fields after successful submit 
		//resetForm: true        // reset the form after successful submit 

		// $.ajax options can be used here too, for example: 
		//timeout:   3000 
	}; 

	v = $("#cvForm").validate({
			submitHandler: function(form) {
			// bind form using 'ajaxForm'
				$(form).ajaxSubmit(options); 
			},
		errorContainer: $("#cvForm .errorbox"),
		errorLabelContainer: $("#cvForm ul.fout"),
		wrapper: 'li',

		debug: false,

		onsubmit: true,
		onfocusout: false,
		onkeyup: false,
		onclick: false,

		errorClass: "foutje",

		rules: {
			cv: {
				required:true,
				accept:'docx?|txt|pdf'
			},
			naam: {
				required: true,
				minlength: 2
			},
			email: {
				required: true,
				email: true
			},
			akkoord: "required"
		},
		messages: {
			cv: {
				required: "U heeft geen CV geselecteerd",
				accept: "De CV moet een Word, PDF of Tekst document zijn"
			},
			naam: {
				required: "De naam is verplicht",
				minlength: "De naam moet uit minimaal twee karakters bestaan"
			},
			email: "Dit is geen geldig Emailadres",
			akkoord: "Ga akkoord met onze voorwaarden"
		},
		showErrors: function(errorMap, errorList) {

			if (this.numberOfInvalids() == 1 ) {
			 var tekstFout = ' fout';
			} else {
			 var tekstFout = ' fouten';
			}

			$("#summary").html("Het formulier bevat "
									   + this.numberOfInvalids() 
									   + tekstFout + ":");
			this.defaultShowErrors();
		}
	});

});

function verwerkResultaat(data) 
{ 
	// 'data' is the json object returned from the server
	if (data.isValid)
	{
		showloader.hide();

		$("#cvForm .okebox")
		$("#cvForm .okebox").show();

		v.resetForm();
	}
	else
	{
		showloader.hide();
		alert('Het uploaden is mislukt!');
	}

}

