function validarTelefono(telefono, valPorDef)
{
	/* Se crea un patrón para validar el número de teléfono, tiene que ser un número */
	re = /[^0-9]/;
	
 	// Se comprueba si el texto concuerda con el patrón especificado.
	if (re.test(telefono.value))
	{
		alert("El telefóno debe ser numérico");
		telefono.value = valPorDef;
	}
	else if (telefono.value.length<=8)
	{
		alert("Debe introducir el teléfono de al menos 9 caracteres");
		telefono.value = valPorDef;
	}
}

function validarFax(fax, valPorDef)
{
	/* Se crea un patrón para validar el número de fax, tiene que ser un número */
	re = /[^0-9]/;
	
 	// Se comprueba si el texto concuerda con el patrón especificado.
	if (re.test(fax.value))
	{
		alert("El Fax debe ser numérico");
		fax.value = valPorDef;
	}
	else if (fax.value.length<=8)
	{
		alert("Debe introducir el fax de al menos 9 caracteres");
		fax.value = valPorDef;
	}
}

function validarCodigoPostal(codigoPostal, valPorDef)
{
	/* Se crea un patrón para validar el número de código postal, tiene que ser un número */
	re = /[^0-9]/;

	// Se comprueba si el texto concuerda con el patrón especificado.
	if (re.test(codigoPostal.value))
	{
	    alert("El código postal debe ser numerico")
	    codigoPostal.value = valPorDef;
	}
	else if (codigoPostal.value.length<=4)

	{

		alert("Debe introducir el código postal de 5 caracteres ");
		codigoPostal.value = valPorDef;
	}

}

function validarEmail(email, valPorDef)
{

	var check = false;
	var originalEmail = email;
	auxEmail = email.value;

	// Se divide la dirección de correo en la parte del dominio, y en la parte del nombre.
	emailarray = auxEmail.split("@");

	if (emailarray.length != 2)
	{
		check = true;	//Demasiadas arrobas.
	}
	else
	{
		// Se examina la parte del nombre.
		if (emailarray[0].search("^[A-Za-z0-9]") == -1) check = true; // El comienzo del nombre debe ser alfanumérico.
		if (emailarray[0].search("[A-Za-z0-9]$") == -1) check = true; // El final del nombre debe ser alfanumérico.
		if (emailarray[0].search("[\.\_\-]+") > 0)
		{
			// Se permite el punto, el guión bajo o el guión, pero no en los extremos del nombre
			if (emailarray[0].search("[A-Za-z0-9][\.\_\-][A-Za-z0-9]+$") == -1) check = true;

		}
		// Se examina la parte del dominio.
		// Los dos primeros caracteres deben ser alfanuméricos, así como los dos últimos. Al menos debe haber un punto.
		if (emailarray[1].search("^[A-Za-z0-9][A-Za-z0-9\-]+[\.]+[A-Za-z0-9]{2,}") == -1) check = true;
		if (originalEmail.value.indexOf("..") >= 0) check = true; // No se admiten dos puntos juntos.
	}
	if (check)
	{
		alert("Debe introducir dirección de correo válido");
		email.value = valPorDef;
	}
}
/**
 * Función que convierte el caracter ',' en '.'
 */
 function convertirComaPunto (vCadena) {

    var copia = "";
    for (i=0; i< vCadena.length; i++) {
        if (vCadena.charAt (i)== ',')
            copia += '.';
        else
            copia += vCadena.charAt(i);
    }

    return copia;
}
/**
 * Función que devuelve el número de decimales del número que se pasa como parámetro.
 */
function numerosDecimales(numero){
	
	var numeroLength = convertirComaPunto(numero).length;	
	var parteDecimal = 0;
	for(i=0;i<numeroLength;i++)
		{
		if(numero.charAt(i)=='.')
			{
    			parteDecimal = numeroLength-(i+1);
    			return parteDecimal;
			}
		}
	return 0;
}
/**
 * Función que valida si el parámetro pasado es un numero entero y positivo.
 */
function esNumeroPositivoEntero(numero){
	if(numero<0)
		return false;
	if(numerosDecimales(numero)>0)
		return false;
	return true;	
}

/**
 * Funcion que devuelve si un campo DNI es correcto.
 */
function esDniValido(nif, valPorDef){ 
	
	// Quitar los 0's de la izquierda del DNI
	var i = 0;
	var salir = false;
	while(i < nif.value.length && !salir)
	{ 
		if(nif.value.charAt(i) > 0)
		{ salir = true; }
		else
		{ i++; }
	}
	auxNif = nif.value.substring(i,nif.value.length);
	var letras = 'TRWAGMYFPDXBNJZSQVHLCKE'; 
	var dni = auxNif.substring(0,auxNif.length-1); 
	
	if(!esNumeroPositivoEntero(dni)){
		alert("Debe introducir DNI válido");
		nif.value = valPorDef;
	}
	if (dni.length>9){
		alert("Debe introducir DNI válido");
		nif.value = valPorDef;
	}
	

	var letraNif = nif.value.charAt(nif.value.length-1); 
	var letraAux; 
	var numero = dni%23; 
	letraAux = letras.substring(numero,numero+1); 
	if(letraAux != letraNif.toUpperCase())
	{ 
		alert("Debe introducir un nif válido");
		nif.value = valPorDef;
	}
}
function esNumerico(campo, ValPorDef)

{

    //Patron 

	re=/[^0-9]/;
    if (re.test(campo.value))

	{

		alert("Debe ser numérico el número de ejemplares");

		campo.value = ValPorDef;

		

	}

}