// TODO: Check for required fields
function selected(elem) {
	switch (elem.type) {
		case 'radio' :
		case 'checkbox' :
			return elem.checked;
			break;
		default :
			return elem.value!='';
			break;
	}
}

function generateFormData(form) {
	var error_content = document.getElementById('error_content');
	var elems = form.elements;
	var data = '';

	for (var i=0, len=elems.length ; elem=elems[i] ; ++i) {
		if (selected(elem)) {
			if (!elem.getAttribute('ignore')) {
				data += elem.name + '=' + elem.value;

				data += '&';
			}
		} else if (elem.getAttribute('mandatory')) {
			data = false;
			elem.focus();
			alert('Email could not be sent: Some required fields were missed.');
			break;
		}
	}

	return data;
}

function submitEmail(id) {
	var xmlHttp = new XMLHttpRequest();
	var form = document.getElementById(id);
	var error_content = document.getElementById('error_content');
	var verif_box = document.getElementById('verif_box');
	var verif_img = document.getElementById('verif_img');
	var data = generateFormData(form);

	function stateChange() {
		if (xmlHttp.readyState==4 && xmlHttp.status==200) {
			var response = xmlHttp.responseText;

			if (response=='1')
				window.location = form.getAttribute('redirect');
			else {
				error_content.innerHTML = response;
				verif_img.src = 'mail/verificationimage.php?' + Math.random();
				verif_box.value = '';
				verif_box.focus();
			}
		}
	}

	if (data) {
		xmlHttp.open("POST", "mail/send-mail.php?verif_box=" + verif_box.value, true);
		xmlHttp.setRequestHeader("content-type", "application/x-www-form-urlencoded");
		xmlHttp.onreadystatechange = stateChange;
		xmlHttp.send(data);
	}

	return false;
}
