function stringTrim(targetString) 
{  
	var iBegin = 0;
	var iEnd   = 0;
	
	for (iBegin = 0; iBegin < targetString.length; iBegin++)
	{    
		if (targetString.charAt(iBegin) != " ")
		{
			for (iEnd = targetString.length - 1; iEnd > iBegin; iEnd--)
			{
				if (targetString.charAt(iEnd) != " ") 
				{           
					break;
				}       
			}
			break;
		}
	}
	
	if (iBegin > iEnd) 
	{
		iBegin = iEnd;
	}
	
	if (targetString.length > 0 && targetString.charAt(iEnd) != " ")
	{
		iEnd++;
	}
	
	return targetString.substring(iBegin, iEnd);
}

function fieldTrim(objForm,fd) 
{
	var trimmedString = stringTrim(objForm.elements[fd].value);
	objForm.elements[fd].value = trimmedString;
}

function validateASCIIData(targetString)
{
	var iIndex;
	for (iIndex = 0; iIndex < targetString.length; iIndex++) 
	{
		if((targetString.charAt(iIndex) < " ") || (targetString.charAt(iIndex) > "~"))
		{
			return false;
		}
	}
	return true;
}

function validateAlphaNumericData(targetString)
{
	var iIndex;
	var cLetter;
	var isOK;
	
	for(iIndex=0; iIndex < targetString.length; iIndex++)
	{ 
		cLetter = targetString.charAt(iIndex);
		if(!(cLetter >= "A" && cLetter <= "Z" || cLetter >= "a" && cLetter <= "z" || cLetter >= "0" && cLetter <= "9"))
		{
			return false; 
		}
	}
	return true;
}

function validateEMail(objForm, fieldNameString)
{
	var eMailString = objForm.elements[fieldNameString].value;
	
	if(!validateASCIIData(eMailString))
	{
		alert("Caracter inválido en la dirección de email.");
		return false;
	}
	
	var invalidCharsString = "\"|&;<>!*\'\\";
	
	for(var iIndex = 0; iIndex < invalidCharsString.length; iIndex++)
	{
		if (eMailString.indexOf(invalidCharsString.charAt(iIndex)) != -1)
		{
			alert("Caracter inválido en el email.\nLos siguientes caracteres no estan permitidos:\n" + invalidCharsString);
			objForm.elements[fieldNameString].focus();
			return false;
		}
	}
	
	if(eMailString.indexOf("@")==-1) 
	{
		alert("La dirección de email debe contener el simbolo @");
		objForm.elements[fieldNameString].focus();
		return false;
	}
	
	if(eMailString.indexOf(" ") != -1)
	{
		alert("Los espacios no estan permitidos en la dirección de email.");
		objForm.elements[fieldNameString].focus();
		return false;
	}  
	
	if(window.RegExp)
	{
		var reg1String = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
		var reg2String = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
		var reg1RegExp = new RegExp (reg1String);
		var reg2RegExp = new RegExp (reg2String);
		if (reg1RegExp.test(eMailString) || !reg2RegExp.test(eMailString))
		{
			alert("La dirección de email contiene caracteres inválidos.");
			objForm.elements[fieldNameString].focus();
			return false;
		}
	}
	
	return true;
}

function validateFieldNotEmpty(objForm,fieldNameString, errorString)
{
	var fieldValueString;
	
	fieldValueString = objForm.elements[fieldNameString].value;
	fieldValueString = stringTrim(fieldValueString);
	if(fieldValueString == "")
	{
		alert(errorString);
		objForm.elements[fieldNameString].focus();
		return false;
	}
	else
	{
		return true;
	}
}