function validate_text_input (input, required, required_error, option, option_error)
{
	if(required)
	{
		if(input.value == "")
		{
			alert(required_error);
			input.focus();
			return(false);
		}
	}
	if(input.value != "")
	{
		var ok = true;
		switch(option)
		{
			case "num":
				reg_exp = /^[0-9][0-9]*$/;
				if(!reg_exp.test(input.value))
					ok = false;
				break;
			case "email":
				reg_exp_1 = /^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/;
				reg_exp_2 = /^.*@[^_]*$/;
				if(!reg_exp_1.test(input.value) || !reg_exp_2.test(input.value))
					ok = false;
				break;
			case "dir":
				reg_exp = /^[a-zA-ZáÁéÉíÍóÓúÚñÑãÃçÇ0-9#ºª \.-]*$/;
				if(!reg_exp.test(input.value))
					ok = false;
				break;
			case "dir_web":
				reg_exp = /^[a-zA-Z0-9\.\-_/:?=&]*$/;
				if(!reg_exp.test(input.value))
					ok = false;
				break;
			case "real":
				reg_exp = /^\-?[0-9]+(\.[0-9]+)?$/;
				if(!reg_exp.test(input.value))
					ok = false;
				break;
			case "login":
				reg_exp = /^[a-z][a-z0-9_]{4}[a-z0-9_]*$/;
				if(!reg_exp.test(input.value))
					ok = false;
				break;
		}
		if(!ok)
		{
			alert(option_error);
			input.focus();
			return(false);
		}
	}
	return(true);
}

function confirmation (message, location)
{
	if(confirm(message))
		window.location = location;
}

function show_row (limit, prefix)
{
	var i;
	var _break = false;
	for(i=1; i<=limit && !_break; i++)
	{
		if(document.getElementById(prefix + i).style.display == 'none')
		{
			document.getElementById(prefix + i).style.display = 'block';
			if(i == limit)
				document.getElementById(prefix + 'n').style.display = 'none';
			_break = true;
		}
	}
}

function validate_input_lang (f, input, required, error)
{
	// En las siguientes líneas se validan los nombres de los tipos de atractivos.
	var i;
	var muestra = -1;  // Almacena el subíndice del campo que tiene el texto que se va a copiar en los demás.
	// Se recorren todos los elementos del formulario, desde el primero hasta el último.
	for(i=0; i<f.elements.length && muestra == -1; i++)
		if(f.elements[i].name.indexOf(input) == 0 && f.elements[i].value != '')  // Entra en la decisión si el nombre de un elemento contiene la subcadena 'campo' y si el valor de este elemento no es vacío.
			muestra = i; // Este es el que se va a copiar en los demás.
	if(muestra == -1)
	{
		if(required)
		{
			alert(error);
			return(false);
		}
	}
	else
		for(i=0; i<f.elements.length; i++)  // En este ciclo se buscan los campos del nombre de la categoría que estén vacíos y se llenan con el que se encontró arriba.
			if(f.elements[i].name.indexOf(input) == 0 && f.elements[i].value == '')  // Entra en la decisión si el nombre de un elemento contiene la subcadena 'campo' y si el valor de este elemento es vacío.
				f.elements[i].value = f.elements[muestra].value;
	return(true);
}

function validate_login (err_user, err_password)
{
	if(!validate_text_input(document.login_usuario.login, true, err_user, null, null))
		return(false);
	if(!validate_text_input(document.login_usuario.clave, true, err_password, null, null))
		return(false);
	return(true);
}

function show_element (element_id)
{
	if(document.getElementById(element_id).style.display == 'none')
		document.getElementById(element_id).style.display = 'block';
}

function hide_element (element_id)
{
	if(document.getElementById(element_id).style.display == 'block' || document.getElementById(element_id).style.display == '')
		document.getElementById(element_id).style.display = 'none';
}

function validar_fecha(fecha)//valida fechas en formato aaaa-mm-dd
{
	var anio= new String(fecha.substring(0,fecha.indexOf("-")));
	var mes= new String(fecha.substring(fecha.indexOf("-")+1,fecha.lastIndexOf("-")));
	var dia= new String(fecha.substring(fecha.lastIndexOf("-")+1,fecha.length));
	// Valido el año
	if (isNaN(anio) || anio=="" || anio.length<4 || parseFloat(anio)<1900)
	{
		alert('Año no válido');   
		return false;
	}
	// Valido el Mes
	if (isNaN(mes) || mes=="" || parseFloat(mes)<1 || parseFloat(mes)>12)
	{
		alert('Mes no válido');
		return false;
	}
	// Valido el Dia
	//alert('dia: '+dia);
	if (isNaN(dia) || dia=="" || parseInt(dia, 10)<1 || parseInt(dia, 10)>31)
	{
		alert('Día no válido');
		return false;
	}
	if (mes==4 || mes==6 || mes==9 || mes==11)
	{
		if (dia>30)
		{
			alert('Día no válido');
			return false;
		}
	}
	if(mes==2)
	{    
		if((parseInt(anio)%4)==0)
		{
			if(dia>29)
			{
				alert('Día no válido');
				return false;
			}
		}
		else
		{
			if(dia>28)
			{
				alert('Día no válido');
				return false;
			}
		}
	}
	return true;
}
