// JavaScript Document

/*
Funciones de Javascript que gestionan el puente entre el validador PHP y el formulario
*/

// almacenas los id de los componentes del formulario
var params = new Array('name', 'surname', 'passport', 'address', 'phone', 'mobile', 'email');
// almacena los id de los contenedores de lal flechas de error
var paramsError = new Array ('name_error', 'surname_error', 'passport_error', 'address_error', 'phone_error', 'mobile_error', 'email_error', 'dob_error', 'country_error', 'course_error', 'known_error');
// almacena la ruta le la flecha de error
var img_src = '../mat/forms/error.png';
var urlValidation = 'applyonlinevalidator.php';

// crea un objeto HTTPRequest para enviarle los datos al php validador
function sendDataForValidation() {
	request = createXmlHttpRequest();	
	if (request) {	
		var url = 'name=' + document.getElementById('name').value;;
		for (var i = 1; i < params.length; i++)
			url = url + '&' + params[i] + '=' + document.getElementById(params[i]).value;
		var day = document.getElementById('day')[document.getElementById('day').selectedIndex].value;
		var month = document.getElementById('month')[document.getElementById('month').selectedIndex].value;
		var year = document.getElementById('year')[document.getElementById('year').selectedIndex].value;
		var country_code = document.getElementById("country_code")[document.getElementById("country_code").selectedIndex].value;
		var country = document.getElementById("country")[document.getElementById("country").selectedIndex].value;
		var known = document.getElementById("known")[document.getElementById("known").selectedIndex].value;
		url += "&day=" + day + "&month=" + month + "&year=" + year + "&known=" + known + "&country=" + country + "&country_code=" + country_code + "&course=";
		for (var i = 0; i < document.apply.course.length; i++)
			if (document.apply.course[i].checked)
				url += document.apply.course[i].value;
		request.onreadystatechange = updateForm;
		request.open('POST', urlValidation, true);
		request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
		request.send(url);
	}
}

// actualiza el formulario según el resultado del validador (pone flechas, etc)
function updateForm() {
	if (request.readyState == READY_STATE_COMPLETE) {
		if (request.status == OKS) {
			for (var i = 0; i < paramsError.length; i++)
				deleteChildren(paramsError[i]);
			var invalids = request.responseXML.getElementsByTagName('invalid').length;
			if (invalids > 0) {
				for (var i = 0; i < invalids; i++) {
					var objinvalid = request.responseXML.getElementsByTagName('invalid')[i].firstChild.data
					var img = document.createElement('img');
					img.src = img_src;
					objinvalid = objinvalid + '_error';
					var position = document.getElementById(objinvalid);
					position.appendChild(img);					
				}
				deleteChildren('msg');
				var msgText = request.responseXML.getElementsByTagName('msg')[0].firstChild.data;
				var text = document.createTextNode(msgText);
				var position = document.getElementById('msg');
				position.appendChild(text);
			} else {
				document.apply.submit();
				/*Delete ('msg');
				for (var i = 0; i < params.length; i++)
					document.getElementById(params[i]).value = '';
				document.getElementById('day').selectedIndex = 0;
				document.getElementById('month').selectedIndex = 0;
				document.getElementById('year').selectedIndex = 0;
				document.getElementById('country').selectedIndex = 0;
				for(var i = 0; i < document.apply.course.length; i++)
					document.apply.course[i].checked = false;*/
			}
		}
	}
}