function _validateEmail(field)
{
  var str = field.value;
  while (str.substring(str.length-1,str.length) == ' ')
    str = str.substring(0, str.length-1);

  if (window.RegExp) {
    var reg1str = "(@.*@)|(\\.\\.)|(@\\.)|(\\.@)|(^\\.)";
    var reg2str = "^.+\\@(\\[?)[a-zA-Z0-9\\-\\.\\_]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$";
    var reg1 = new RegExp(reg1str);
    var reg2 = new RegExp(reg2str);
    if (!reg1.test(str) && reg2.test(str))
    {}
    else
    {
    window.alert("O e-mail digitado esta invalido. Por favor verifique o endereco e tente novamente.");
    field.focus();
    field.select();
    return false;
    }
  } else {
    if(str.indexOf("@") >= 0)
    {}
    else
    {
    field.focus();
    field.select();
    return false;
    }
  }
return true;
}

function _validatePhone(field)
{
	var pattern = new RegExp( "[a-z]", "i" );
	var result = (!pattern.test(field.value));
	if (!result)
	{
		alert( "O telefone digitado esta invalido. Por favor verifique o endereco e tente novamente." );
	}
	return result;
}

function getIsFormValid()
{
	var form = document.ContacteFORM;
	var required_fields = new Array("NomeSobrenome","mail_user","Idade");
	var error_message = "Preencha todos os campos obrigatorios.";

	var validationStatus = true;
	for(var i=0;i<required_fields.length;i++)
	{
		var element=form[required_fields[i]];

		if(element.value=="")
		{
			validationStatus = false;
			alert(error_message);
			break;
		}
	}
	if (validationStatus)
	{
		validationStatus = _validateEmail(form.mail_user);
	}
	if (validationStatus)
	{
		validationStatus = _validatePhone(form.Telefone_para_contato);
	}
	if (validationStatus)
	{
		if (document.getElementById('Sexo').checked == false && document.getElementById('Sexo2').checked == false)
		{
			alert( "Voce deve selecionar um sexo determinado." );
			validationStatus = false;
		}
	}

	return validationStatus;
}

function validateAndSubmit()
{
	if (getIsFormValid()) {
		document.ContacteFORM.submit();
	}
}



	/*  Activa o desactiva el campo libre DetalleDeConsulta en caso de que el usuario
		seleccione o no la opcion Otros en el tema de la consulta. 
		En caso de de-seleccionar la opcion Otros luego de haber escrito algo en el 
		campo libre, borra el contenido del campo libre para que no llegue en el mail de contacto.
	*/
	function activacionCampoOtros()
	{
		if ( document.ContacteFORM.Obter_informacoes_sobre_Outros.checked )
		{
			document.ContacteFORM.Outros_especifique.disabled = false;
		}
		else
		{
			document.ContacteFORM.Outros_especifique.disabled = true;
			document.ContacteFORM.Outros_especifique.value = '';
		}
	}


	/* 	Oculta o muestra una lista de checkboxes con productos en caso de que
		el usuario haya informado que compró productos de Lenovo.
		En caso de arrepentirse y seleccionar NO luego de haber elegido que SI y seleccionado
		productos, borra las opciones checkeadas para que no lleguen en el mail de contacto
	*/
	function comproLenovoOnChanged()
	{
		// Dado que el valor del campo Possui_productos_Lenovo no se puede obtener directamente para 
		// compararlo, uso el estado checkeado del radio correspondiente al NO.
		// Esto es valido unicamente porque hay 2 opciones.
		if ( document.getElementById('Possui_produto_Lenovo').checked )
		{
			document.getElementById('opciones_de_compra').style.display = 'none';
			document.ContacteFORM.Possui_Lenovo3000notebooks.checked = false;
			document.ContacteFORM.Possui_ThinkPad.checked = false;
			document.ContacteFORM.Possui_Lenovo3000desktops.checked = false;
			document.ContacteFORM.Possui_ThinkCentre.checked = false;
			document.ContacteFORM.Possui_Accesorios.checked = false;
		}
		else
		{
			document.getElementById('opciones_de_compra').style.display = '';
		}
	}