/* Esta constante se comprueba que existe desde los ficheros que
   incluyen a este para verificar que el fichero se ha incluido
   correctamente.
*/
var cteJS_include_code = true;


/* Constantes utilizadas por el fichero code.js */
var cteJS_Usuarios_Long_CodPostal = 20;
var cteJS_Usuarios_Long_Telefono = 20;

function val_evalRegExp(tmpCad, tmpRegExp)
	{
	// Evaluación mediante expresiones regulares 
	var flagSoporteRegExp = 0;
	var retorno = false;
	
	if (window.RegExp) 
		{
		var tempStr = "a";
		var tempReg = new RegExp(tempStr);
		if (tempReg.test(tempStr)) flagSoporteRegExp = 1;
		}
		
		
	if (flagSoporteRegExp) 
		{
		var r1 = new RegExp(tmpRegExp);
		retorno = r1.test(tmpCad) 
		}
	
	return (retorno);
	}

			
	function val_isCorrect_EmailAddress(tmpParEmail, tmpFlagNullIsOk)
		{
		// Valida un correo electrónico
		// Si tmpFlagNullIsOk es false, el campo tmpParEmail con contenido vacío no es considerado correcto
		var retorno = true
		var tmpRegExp_Mail = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
		var tmpRegExp_Mail2 = /^\w[-.\w]*\@[-a-b0-9]+(?:\.[-a-b0-9]+)*\.(?:com|edu|biz|org|gov|int|info|mil|net|name|museum|coop|aero|[a-z][a-z])\b/;

		if (retorno)
			if (tmpParEmail == '' && !tmpFlagNullIsOk)
				retorno = false;
		
		if (retorno)
			retorno = val_evalRegExp(tmpParEmail,tmpRegExp_Mail)

		return(retorno)
		}
	
	function val_isCorrect_Url (tmpParUrl, tmpFalgNullIsOk)
	{
		// Valida un una direccion Url
		// Si tmpFlagNullIsOk es false, el campo tmpParUrl con contenido vacío no es considerado correcto
		
		var retorno = true
		var urlPattern = /^(?:(?:ftp|https?):\/\/)?(?:[a-z0-9](?:[-a-z0-9]*[a-z0-9])?\.)+(?:com|edu|biz|org|gov|int|info|mil|net|name|museum|coop|aero|[a-z][a-z])\b(?:\d+)?(?:\/[^;"'<>()\[\]{}\s\x7f-\xff]*(?:[.,?]+[^;"'<>()\[\]{}\s\x7f-\xff]+)*)?/;
		
		if (retorno)
			if (tmpParUrl == '' && !tmpFlagNullIsOk)
				retorno = false;
		
		if (retorno)
			retorno = val_evalRegExp(tmpParUrl,urlPattern)

		return(retorno)
	}
	

/* VALIDACION GENERICA DE USUARIOS */

	function doUsuarios_nuevo(tmpIdIdioma, tmpNombreForm, tmpNombreCampo_Mail,
							tmpNombreCampo_Nombre, tmpNombreCampo_Apellidos,
							tmpNombreCampo_Direccion, tmpNombreCampo_CodPos, 
							tmpNombreCampo_Provincia, tmpNombreCampo_Pais,
							tmpNombreCampo_Telefono)
	{
		var tmpForm = document.getElementById(tmpNombreForm);	
		var tmpMail;	
		var tmpCampo;
		var tmpMsgError = '';
		var tmpCampoErroneo = null;
		
		// Valido tmpNombreCampo_Mail
		if (tmpNombreCampo_Mail && tmpMsgError == '')
		{
			tmpCampo = document.getElementById(tmpNombreCampo_Mail);
			if (!val_isCorrect_EmailAddress(tmpCampo.value, false))
			{
				tmpMsgError = 'Debe de introducir un email correcto';
				tmpCampoErroneo = tmpCampo;
			}
		}
		// Valido tmpNombreCampo_Nombre
		if (tmpNombreCampo_Nombre && tmpMsgError == '')
		{
			tmpCampo = document.getElementById(tmpNombreCampo_Nombre);
			if (tmpCampo.value == '')
			{
				tmpMsgError = 'Debe de introducir un nombre';
				tmpCampoErroneo = tmpCampo;
			}
		}
		// Valido tmpNombreCampo_Apellidos
		if (tmpNombreCampo_Apellidos && tmpMsgError == '')
		{
			tmpCampo = document.getElementById(tmpNombreCampo_Apellidos);
			if (tmpCampo.value == '')
			{
				tmpMsgError = 'Debe de introducir sus apellidos';
				tmpCampoErroneo = tmpCampo;
			}
		}
		// Valido tmpNombreCampo_Direccion
		if (tmpNombreCampo_Direccion && tmpMsgError == '')
		{
			tmpCampo = document.getElementById(tmpNombreCampo_Direccion);
			if (tmpCampo.value == '')
			{
				tmpMsgError = 'Debe de introducir una direccion';
				tmpCampoErroneo = tmpCampo;
			}
		}
		// Valido tmpNombreCampo_CodPos
		if (tmpNombreCampo_CodPos && tmpMsgError == '')
		{
			tmpCampo = document.getElementById(tmpNombreCampo_CodPos);
			if (tmpCampo.value == '')
			{
				tmpMsgError = 'Debe de introducir un Codigo Postal';
				tmpCampoErroneo = tmpCampo;
			}
			else
			{
				if (tmpCampo.value.length > cteJS_Usuarios_Long_CodPostal)
				{
					tmpMsgError = 'El Codigo Postal no debe exceder los ' + cteJS_Usuarios_Long_CodPostal + ' caracteres';
					tmpCampoErroneo = tmpCampo;
				}
			}				
		}
		// Valido tmpNombreCampo_Provincia
		if (tmpNombreCampo_Provincia && tmpMsgError == '')
		{
			tmpCampo = document.getElementById(tmpNombreCampo_Provincia);
			if (tmpCampo.value == '')
			{
				tmpMsgError = 'Debe de introducir una provincia';
				tmpCampoErroneo = tmpCampo;
			}
		}
		// Valido tmpNombreCampo_Pais
		if (tmpNombreCampo_Pais && tmpMsgError == '')
		{
			tmpCampo = document.getElementById(tmpNombreCampo_Pais);
			if (tmpCampo.value == '')
			{
				tmpMsgError = 'Debe de introducir un pais';
				tmpCampoErroneo = tmpCampo;
			}
		}
		// Valido tmpNombreCampo_Telefono
		if (tmpNombreCampo_Telefono && tmpMsgError == '')
		{
			tmpCampo = document.getElementById(tmpNombreCampo_Telefono);
			if (tmpCampo.value == '')
			{
				tmpMsgError = 'Debe de introducir un telefono';
				tmpCampoErroneo = tmpCampo;
			}
			else
			{
				if (tmpCampo.value.length > cteJS_Usuarios_Long_Telefono)
				{
					tmpMsgError = 'El telefono no debe exceder los ' + cteJS_Usuarios_Long_Telefono + ' caracteres';
					tmpCampoErroneo = tmpCampo;
				}
			}	
		}
		
		if (tmpMsgError != '')
		{
			alert(tmpMsgError);
			tmpCampoErroneo.focus();
		}
		else
			tmpForm.submit();			
	}

