//-----------------------------------
//  Valida os campos do formulário
//-----------------------------------

function formSubmit() {
  if( validaEnvio(document.forms[0], campos, rotulos))
    document.forms[0].submit();
}


function validaEnvio(form, nomes, campos) {

   var obrigSelects;
   var nomeCampos;
   var headerCampos;
   var selecOutros;


   nomeCampos = copiaArray(nomes);
   //alert(nomeCampos);
   headerCampos = copiaArray(campos);

   return checkCamposObrig(form, nomeCampos, headerCampos, obrigSelects, selecOutros);
}

function checkCamposObrig(form, nomeCampos, headerCampos, obrigSelects, selecOutros)
{
   var CheckCampo = true;
   var CamposVazios = " \nVocê deve preencher/selecionar o(s) seguinte(s) campo(s): \n\n"
   var numVazios= 0, indVazio;
   var valor, componente, haSelects;
   var primeiroVazio = -1;
   if( checkCamposObrig.arguments.length < 3)
   {
      alert("Numeros de argumentos invalido.\nUso: checkCamposObrig(form, nomeCampos, headerCampos, [posicaoSelects])");
      return false;
   }
   if( checkCamposObrig.arguments.length >= 4)
      haSelects= true;
   else
      haSelects= false;
   
   for(var num=0; num < nomeCampos.length; num++)
   {
      // OBTENDO O COMPONENTE DA VEZ
      //alert(nomeCampos[num]);
      componente= form.elements[nomeCampos[num]];


      // Verificando os componentes do tipo RADIO	  
	  if (componente.type === undefined) {
		valor = '';  
	  	for(var i=0; i<form.elements[nomeCampos[num]].length; i++) {
			if (form.elements[nomeCampos[num]][i].checked){
				valor = form.elements[nomeCampos[num]][i].value;
			}
		}		
	  } else if( haSelects && (isSelect(nomeCampos[num],obrigSelects)) ) {
         valor= componente.options[componente.selectedIndex].value;
      } else {
         valor= componente.value;
      }


	
      // VERIFICANDO SE O COMPONENTE ESTA VAZIO
      if (isNull( valor) == true)
      {
         if ( primeiroVazio == -1 )
            primeiroVazio = num;
			
         if (form.elements[nomeCampos[primeiroVazio]].type === undefined) {
			 form.elements[nomeCampos[primeiroVazio]][0].focus();
		 } else {
			 form.elements[nomeCampos[primeiroVazio]].focus();
		 }
            

         CamposVazios += "- " + headerCampos[num] + "\n";
         CheckCampo = false;
         numVazios++;
         if( numVazios == 1)
            indVazio= nomeCampos[num];
      }
   }
   if( !CheckCampo)
      alert(CamposVazios);
   return CheckCampo;
}