/**
* Valida campos de formulario
* @return boolean
*/
function validateFields(){
	var errors = new Array;
	var fields = validateFields.arguments;
	
	for (var i = 0;i < fields.length; i++){
		
		var error = 0;
		var obj		= fields[i].split(":");
		var elem	= document.getElementById(obj[0]);
		var type	= obj[1];
		var req		= obj[2];
		
		switch(type){
			case "int":
				if(!/^([0-9])+$/.test(elem.value)){
					error++;
				}
				break;
			case "string":
				if(!/^([a-zA-Z])+$/.test(elem.value)){
					error++
				}
				break;
			case "alphanumeric":
				if(!/^([a-zA-Z0-9])+$/.test(elem.value)){
					error++;
				}
				break;
			case "anything":
				if(elem.value == ""){
					error++;
				}
				break;
			case "date":
				if(!/^([0-9]{2})\/([0-9]{2})\/([0-9]{4})$/.test(elem.value)){
					error++;
				}
				break;
			case "mail":
				if(!/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test(elem.value)){
					error++;
				}
				break;
		}
		
		if(req == "false" && elem.value.length < 1){
			error = 0;
		}
		
		if(error > 0){
			errors.push(elem.name);
			elem.style.backgroundColor = "#FFBBBB";
			elem.style.border = "#C00 1px solid";
		} else {
			elem.style.backgroundColor = "";
			elem.style.borderStyle = "";
			elem.style.borderWidth = "";
			elem.style.borderColor = "";
		}
		
	}
	if (errors.length > 0){
		return false;
	} else {
		return true;
	}
}

/**
* Valida formularios
* @return boolean
*/
function validateForm(){
	
	if(!$(":input[name='terms-check']").attr("checked")){
		alert("No acepto los Términos y Condiciones");
		return false;
	}
	
	var v = validateFields(
				"turno-dia:date:true", "turno-hora:anything:true",
				"nombre:anything:true", "apellido:anything:true", "tipo-documento:int:true", "nro-documento:int:true", "cuit-cuil:int:true",
				"lugar-nacimiento:anything:true", "nacionalidad:int:true", "profesion:int:true", "nro-matricula:int:false",
				"titulo:anything:true", "entidad-formadora:int:true", "telefono:int:true", "celular:int:false", "email:mail:false",
				"domreal-calle:anything:true", "domreal-numero:int:true", "domreal-piso:alphanumeric:false", "domreal-departamento:alphanumeric:false", "domreal-torre:alphanumeric:false", "domreal-provincia:int:true", "domreal-localidad:anything:false", "domreal-cp:alphanumeric:true",
				"domlegal-calle:anything:true", "domlegal-numero:int:true", "domlegal-piso:alphanumeric:false", "domlegal-departamento:alphanumeric:false", "domlegal-torre:alphanumeric:false", "domlegal-provincia:int:true", "domlegal-localidad:anything:false", "domlegal-cp:alphanumeric:true",
				"dompro-calle:anything:false", "dompro-numero:int:false", "dompro-piso:alphanumeric:false", "dompro-departamento:alphanumeric:false", "dompro-torre:alphanumeric:false", "dompro-provincia:int:false", "dompro-localidad:anything:false", "dompro-cp:alphanumeric:false"
			);
		
	if(!v){
		alert("Error al validar el formulario:\n- Los campos incorrectos fueron marcados con rojo");
		return false;
	} else {
		return true;
	}
	
}

/**
* Muestra el calendario correspondiente
* @param int m
* @param int y
*/
function getCalendar(m,y){
	$.ajax({
		type	: "GET",
		url		: "calendar.php",
		data	: { month : m, year : y, calendar : "calendar" },
		success : function(html){
			$("#calendar").html(html);
		}
	});
}

/**
* Toma el valor dado y lo inserta en el campo asignado
* @param int y
* @param int m
* @param int d
*/
function setDate(y, m, d){
	$('#turno-dia').val(d + "/" + m + "/" + y);
	dibujarTurnos();
}

/**
* Toma el valor dado y lo inserta en el campo asignado
* @param string t
*/
function setTime(t){
	$('#turno-hora').val(t);
}

/**
* Muestra la tabla del dia correspondiente
*/
function dibujarTurnos () {

	var fecha = $('#turno-dia').val();
	
	$.ajax({
		url		: 'inc/getTurnos.php',
		data 	: { fecha : fecha },
		success	: function (html) {
			$('#turno-hora').val('');
			$("#turnos").html(html);
			$("#turnos").show();
		},
		type	: "POST"
	});
	
}

/**
* Controla campo de formulario correspondiente
* @param object o
*/
function localidadesHandler(o){
	var obj = o.attr("id").replace("provincia", "localidad");
	if(o.val() == 1){
		$("#"+obj).attr("disabled", "disabled");
	} else {
		$("#"+obj).removeAttr("disabled");
	}
}

/**
* Muestra mensaje de ayuda para los campos de formulario correspondiente
* @param object el
* @param string msg
*/
function showFieldMsg(el, msg){
	var pos  = $(el).offset("top");
	var width = $(el).width();
	$("#fieldmsg").text(msg);
	$("#fieldmsg").css({ top: pos.top + 10 + "px", left: pos.left + width - 10 + "px" });
	$("#fieldmsg").fadeIn();
	$(el).blur(function() { hideFieldMsg(); } );
}

/**
* Oculta mensajes de ayuda
*/
function hideFieldMsg(){
	$("#fieldmsg").hide();
}
