// Constantes
var letras = 'abcdefghijklmnopqrstuvwxyz';
var letras_es = 'áéíóúńü';
var numeros = '0123456789';
var guiones = '_-';

// Función para quitar los espacios en blanco de los extremos de una cadena de caracteres
function trim(str)
{
	var i = 0, p = str.length-1;
	while (str.charAt(i) == ' ') i++;
	while (str.charAt(p) == ' ') p--;
	if (i > p) return ('');
	return (str.substring(i,p+1));
}

/* Función que comprueba que 'str' contiene caracteres que se encuentren en 'cars'
   y los obligatoriamente todos los caracteres en 'oblig' */
function comprueba(str,cars,oblig)
{
	var checkOK = cars;
	var checkStr = str;
	var allValid = true;
	var validGroups = true;
	var decPoints = 0;
	var allNum = '';

	if (trim(oblig).length > 0)
	{
		for (ii = 0; ii < oblig.length; ii++)
		{
			if (str.indexOf(oblig.charAt(ii)) == -1)
			{
				allValid = false;
				break;
			}
		}
	}
	
	if (!allValid) return (allValid);
	
	for (ii = 0;  ii < checkStr.length;  ii++)
	{
		ch = checkStr.charAt(ii);
		for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j)) break;
		if (j == checkOK.length)
		{
			allValid = false;
			break;
		}
		allNum += ch;
	}
	return (allValid);
}

// Función que abre una ventana o pop-up centrada 
function abrir_ventana(page,win,ancho,alto,menu)
{
	izq = (screen.width-ancho)/2;
	arr = (screen.height-alto)/2;

	window.open(page,win,'width='+ancho+', height='+alto+', left='+izq+', top='+arr+
				', scrollbars=yes, status=yes, resizable=yes, menubar='+menu+'');
}

// Función que permite sólo caracteres numéricos en los input
function solo_numeros() 
{
	if ((event.keyCode < 48) || (event.keyCode > 57)) event.returnValue = false;
}

// Función para validar una dirección de e-mail
function es_email(dir)
{
	return (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(dir))
}

// Radio Button Validation
// copyright Stephen Chapman, 15th Nov 2004,14th Sep 2005
function valButton(btn)
{
    var cnt = -1;
    for (var i=btn.length-1; i > -1; i--) {
        if (btn[i].checked) {cnt = i; i = -1;}
    }
    if (cnt > -1) return btn[cnt].value;
    else return null;
}

function valChecks(cajas)
{
	var sel = 0;

	if (cajas.length == undefined)
	{
		if (cajas.checked) sel++;
	}
	else
	{
		for (var i=0; i<cajas.length; i++)
			if (cajas[i].checked) sel++;
	}

	if (sel == 0)
		return (false);
	else
		return (true);
}