// Validação de formulário

function submitForm( formName , fields ) {

	objForm = document.forms[formName];
	arrFields = submitForm.arguments;
	email = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;

//	Carrega os campos obrigatorios
	for( i=1 ; i<arrFields.length ; i++ )
	{
		objField = objForm.elements[ arrFields[i] ];
		objType = ( objField[0] != null && objField[0].type == 'radio' ) ? objField[0].type:objField.type;
	//	Para campos de texto. faz a validação automática de e-mail
		switch( objType )
		{
			// Campos de texto e textareas
			case 'text':
				if( objField.value==null || objField.value=='' )
				{
					alert( 'Por favor, preencha o campo ' + objField.alt );
					objField.focus();
					return false;
				}
				// Validação de e-mail
				else if( objField.name.indexOf('email') > -1 || objField.name.indexOf('e_mail') > -1 )
				{
					if( !email.test( objField.value ) )
					{
							alert( 'Preencha o e-mail corretamente!' );
							objField.focus();
							return false;
					}
				}
				break;
			case 'textarea':
				if( objField.value==null || objField.value=='' )
				{
					alert( 'Por favor, preencha o campo ' + objField.title );
					objField.focus();
					return false;
				}
				break;
			// Campos de seleção
			case 'select-one':
			case 'select-multiple':
				if( objField.options[objField.selectedIndex].value==null || objField.options[objField.selectedIndex].value=='' )
				{
					alert( 'Por favor, selecione o campo ' + objField.title );
					objField.focus();
					return false;
				}
				break;
			// Verifica se foi selecionado ao menos 1 campo do rádio
			case 'radio':
				objChecked = false;
				// Percorre as opções do rádio
				for( j=0 ; j<objField.length ; j++ ) {
					// Encontra uma opção selecionada
					if( objField[j].checked )
					{
						objChecked = true;
					}
				}
				// Caso não haja opção selecionada
				if( !objChecked )
				{
					alert( 'Por favor, selecione um item no campo ' + objField[0].alt );
					return false;
				}
				break;
			// Valida visto de um checkbox 
			case 'checkbox':
				// Caso não haja um campo checkado
				if( !objField.checked )
				{
					alert( 'Por favor, coloque um visto no campo ' + objField.alt );
					return false;
				}
				break;
			case 'file':
				if( objField.value==null || objField.value=='' )
				{
					alert( 'Por favor, selecione um arquivo para o campo ' + objField.alt );
					objField.focus();
					return false;
				}
				break;

		}

	}

	objForm.submit();

}
