//*********************************************************************************
//*** PRIMITIVAS DE VALIDACION
//*********************************************************************************

//----------------------------------------------
// Verifica que un campo requerido tenga valores
//----------------------------------------------
function verifyRequired(FieldName)
{
	var sFieldValue = eval(FieldName + ".value");	
	return (sFieldValue.length > 0)
}

//----------------------------------------------
// Verifica que un campo sea numerico entero
//----------------------------------------------
function verifyIntegerField(FieldName)
{
	var sFieldValue = eval(FieldName + ".value");	
	var re = /^[\d]+$/;	
	return re.test(sFieldValue);
}

//----------------------------------------------
// Verifica que un campo sea numerico (entero o decimal)
//----------------------------------------------
function verifyNumericField(FieldName)
{
	var sFieldValue = eval(FieldName + ".value");	
	var re = /^[\d]*([,][\d]+)?$/;	
	return re.test(sFieldValue);
}

//----------------------------------------------
// Verifica que un campo sea alfanumerico 
//----------------------------------------------
function verifyAlphaNumericField(FieldName)
{
	var sFieldValue = eval(FieldName + ".value");	
	var re = /^\w*$/;	
	return re.test(sFieldValue);
}

//----------------------------------------------
// Verifica el contenido de un campo con nombre de usuario (sin el dominio)
//----------------------------------------------
function verifyUserName(FieldName)
{
	var sFieldValue = eval(FieldName + ".value");	
	var sValidadorNombreUsuario = /^\w(\w|-\w|_\w)+$/;	
	return (sValidadorNombreUsuario.test(sFieldValue))
}

//----------------------------------------------
// Verifica el contenido de un campo mail
//----------------------------------------------
function verifyMail(FieldName)
{
	var sFieldValue = eval(FieldName + ".value");	
	var re = /^\w+([\.-]?\w+)*@[\wñáéíóúáàèòïüç·]+([\.-]?[\wñáéíóúáàèòïüç·]+)*(\.\w{2,6})+$/;
	return re.test(sFieldValue);
}

//----------------------------------------------
// Verifica un valor direccion de mail
//----------------------------------------------
function verifyMailValue(sFieldValue)
{	
	var re = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;
	return re.test(sFieldValue);
}

//----------------------------------------------
// Verifica las passwords
//   * - Que esten ingresadas
//   * - Que ambas sean iguales
//   * - Que tengan un formato correcto
// Retorna un codigo de error
//----------------------------------------------
function verifyPasswords(FormName)
{
	//----------------------------------------------
	// 0 - Antes que nada, verifico que los campos de pwd 
	//	   esten disponibles
	//----------------------------------------------

	// obtengo una referencia al campo de la password
	var pwd = document.getElementById("txtPassword");
	
	// si la referencia es nula...
	if (pwd == null)
		// salgo
		return 0;


	//------------------------------------------------
	// obtengo los valores ingresados para las claves
	var sClave		 = eval(FormName + ".txtPassword.value");
	var sRepiteClave = eval(FormName + ".txtRepeatPassword.value");
				
	// creo e inicializo la variable de error
	var nErrorCode = 0;
	
	//----------------------------------------------
	// 1 - Verifico que ingrese "Contraseña" y "Repetir Contraseña"
	//----------------------------------------------
	if (!verifyRequired(FormName + ".txtPassword")) 
	{
		nErrorCode = 1; // falta ingresar el campo "Contraseña"
	}
	else
	{
		if (!verifyRequired(FormName + ".txtRepeatPassword")) 
			nErrorCode = 2; // falta ingresar el campo "repetir contraseña"
	}
	
	//----------------------------------------------
	// 2 - Verifico que ambas sean iguales
	//----------------------------------------------
	// si no hay error, verifico que las 2 passwords sean diferentes		
	if (nErrorCode == 0)
		if (sClave != sRepiteClave)
			nErrorCode = 3; // passwords diferentes

	//----------------------------------------------
	// 3 - Verifico que tenga formato correcto
	//----------------------------------------------
	//if (nErrorCode == 0)
	//{
		// valido que la password sea correcta: al menos 5 caracteres alfanumericos
	//	var re = /^\w\w{3,}\w$/;
	//	if (!re.test(sClave)) 
	//		nErrorCode = 4; // formato de password incorrecto
	//}

	// retorno el mensaje de error
	return nErrorCode;		
}

//*********************************************************************************
//*** FIN DE PRIMITIVAS DE VALIDACION
//*********************************************************************************
