function trim(inputString) {
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
	  retValue = retValue.substring(1, retValue.length);
	  ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
	  retValue = retValue.substring(0, retValue.length-1);
	  ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
	  retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
} // Ends the "trim" function

function validCombo(formField,fieldLabel)
{
	var result = true;

	if (formField.selectedIndex==0)
	{
		alert('Por favor escolha um valor para o campo "' + fieldLabel +'".');
		formField.focus();
		result = false;
	}

	return result;
}

function isEmailAddr(email)
{
  var result = false;
  var theStr = new String(email);
  var index = theStr.indexOf("@");
  if (index > 0)
  {
	var pindex = theStr.indexOf(".",index);
	if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function validRequired(formField,fieldLabel)
{
	var result = true;

	if (trim(""+formField.value) == "")
	{
		alert('Por favor digite um valor para o campo "' + fieldLabel +'".');
		formField.focus();
		result = false;
	}

	return result;
}

function allDigits(str)
{
	return inValidCharSet(str,"-0123456789.,");
}

function inValidCharSet(str,charset)
{
	var result = true;

	// Note: doesn't use regular expressions to avoid early Mac browser bugs
	for (var i=0;i<str.length;i++)
		if (charset.indexOf(str.substr(i,1))<0)
		{
			result = false;
			break;
		}

	return result;
}
function validTextAreaField(field,label,required, maxLength)
{
	if (required && !validRequired(field,label))
		  return false;

	if(trim(field.value)=="")
		return true;

	if((field.value).length > maxLength)
	{
		alert('Por favor, digite um valor menor do que "'+maxLength+'" caracteres para o campo "' + label +'".');
				field.focus();
		return false;
	}

		return true;
}

function validEmail(formField,fieldLabel,required)
{
		
	if (!required) {
	 if (formField.value=="") {
	  return true;
	 }
	}
		

	var result = true;
	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) )
	{
		alert("Por favor, digite um email válido para o campo "+fieldLabel+" (nome@dominio.com.br)");
		formField.focus();
		result = false;
	}
  return result;
}

function validInt(formField,fieldLabel,required,tam)
{
	if (!required) {
	 if (formField.value=="") {
	  return true;
	 }
	}

	var result = true;
	if (required && !validRequired(formField,fieldLabel))
		result = false;

	if (result)
	{
		if (!allDigits(formField.value))
		{
			alert('Por favor digite um número válido para o campo "' + fieldLabel +'".');
			formField.focus();
			result = false;
		} else {
			//telefone
			if (formField.value.length > tam) {
			  alert('O número é muito grande para o campo "' + fieldLabel +'".');
			  formField.focus();
			  result = false;
			}
		}
	}

	return result;
}

function validDate(formField,fieldLabel,required)
{
		
	if (!required) {
	 if (formField.value=="") {
	  return true;
	 }
	}
	
	var result = true;
	
	if (required && !validRequired(formField,fieldLabel))
		result = false;

        var reDate = /^((0?[1-9]|[12]\d)\/(0?[1-9]|1[0-2])|30\/(0?[13-9]|1[0-2])|31\/(0?[13578]|1[02]))\/(19|20)?\d{2}$/;
	if (reDate.test(formField.value)) {
		//ok
	} else if (formField.value != null && formField.value != "") {
		alert("Por favor, digite uma data válida (formato dd/mm/aaaa) para o campo "+fieldLabel);
		formField.focus();
		result = false;
	}
  return result;
}

