var fo=document.forms[0];
var erros=0;
var cart = 0;

function vNOMCLI(){
   var s=document.ginjo.NOMCLI.value;
   if (s.length<1){
      alert("\nSeu nome deve ser informado\n");
      erros++;
   }
}

function vEMAILCLI(){
   var s=document.ginjo.EMAIL.value;
   if (s.length<1){
      alert("\nSeu e-mail deve ser informado\n");
      erros++;
   }

   var s=document.ginjo.LOGCLI.value;
   if (s.length<1){
      alert("\nSeu endereço não foi informado corretamente.\n");
      erros++;
   }

   var s=document.ginjo.BAICLI.value;
   if (s.length<1){
      alert("\nSeu Bairro deve ser informado.\n");
      erros++;
   }

   var s=document.ginjo.MUNCLI.value;
   if (s.length<1){
      alert("\nSeu Município deve ser informado.\n");
      erros++;
   }


   var s=document.ginjo.DDDTEL.value;
   if (s.length<1){
      alert("\nSeu DDD deve ser informado.\n");
      erros++;
   }

   var s=document.ginjo.NUMTEL.value;
   if (s.length<1){
      alert("\nSeu Número de telefone deve ser informado.\n");
      erros++;
   }


	if(document.ginjo.TIPPES.options[document.ginjo.TIPPES.selectedIndex].value=="F"){

	   var s=document.ginjo.DTNAS.value;
	   if (s.length<1){
		  alert("\nA sua data de Nascimento deve ser informado.\n");
		  erros++;
	   }

	   var s=document.ginjo.RGIE.value;
	   if (s.length<1){
		  alert("\nO seu RG deve ser informado.\n");
		  erros++;
	   }

	   var s=document.ginjo.ESTCIVIL.value;
	   if (s.length<1){
		  alert("\nO seu Estado Civil deve ser informado.\n");
		  erros++;
	   }

		if(!verificarCPF(document.ginjo.cgc.value)){
		  erros++;
		}

	}
	else{

	   var s=document.ginjo.cgc.value;
	   if (s.length<1){
		  alert("\nO seu CNPJ deve ser informado.\n");
		  erros++;
	   }

		if(!ChecaForm(s)){
		  erros++;
		}
	}
}

function vENDCLI(){
   var s=document.ginjo.ENDCLI.value;
   if (s.length<1){
      alert("\nSeu endereço dever ser informado\n");
      erros++;
   }
}

function vNUMCLI(){
   var s=document.ginjo.NUMCLI.value;
   if (s.length<1){
      alert("\nO número de sua residência deve ser informado dever ser informado\n");
      erros++;
   }
}

function vEntrega(){
   var s=document.ginjo.flag.value;
   if (s=="1"){
	if (document.ginjo.ENTREGA.value == "")
	{
	      alert("\nO Tipo de Frete deve ser informado !\n");
	      erros++;
	}
   }
  if (document.ginjo.ORDPGFLG.value ==1) /*Verifica a Ordem de Pagamento*/
  {
	if (document.ginjo.ORDPG.checked == true)
	{
	cart++;

	}

  }
}

function vNumCart(){
   var r = "";
   var i = 0;
   var c = "";
   var validos="0123456789";
   var s=document.ginjo.NumCart.value;
   var n=document.ginjo.NOMCART.options[document.ginjo.NOMCART.selectedIndex].value;
   for (i=0; i < s.length; i++){
       c=s.substring(i,i+1);
       if (validos.indexOf(c) >= 0) {r = r + c;}
   }
   if (r.length<1){
      alert("\nO Número do cartão dever ser informado\n");
      erros++;
   }
   s=""; var p=0;
   if (n=="1") {
	if (r.length!=15){
        alert("\nO Número do cartão está errado\n");
        erros++;
    	}
	for (i=r.length-1; i>=0; i--){
	     c=r.substring(i,i+1);
	     s = c + s; p++;
	     if (p==5 && i>0) {s = " " + s;}
	     if (p==11 && i>0) {s = " " + s;}
	}
   } else {
      if (n=="2") {
	if (r.length!=14){
        alert("\nO Número do cartão está errado\n");
        erros++;
    	}
	for (i=r.length-1; i>=0; i--){
	     c=r.substring(i,i+1);
	     s = c + s; p++;
	     if (p==4 && i>0) {s = " " + s;}
	     if (p==10 && i>0) {s = " " + s;}
	}
      } else {
	  if (r.length!=16){
	        alert("\nO Número do cartão está errado\n");
	        erros++;
    	  }
	  for (i=r.length-1; i>=0; i--){
	       c=r.substring(i,i+1);
	       s = c + s; p++;
	       if (p%4==0 && i>0) {s = " " + s;}
	   }
     }
    }
   document.ginjo.NumCart.value=s;
}

function checkAll(){
   erros=0;
   vNOMCLI();
   vENDCLI();
   vNUMCLI();
   vEMAILCLI();
   cart = 0 ;
   vEntrega();
   if (cart == 0)
   {
   		vNumCart();
   }
   else
   {
      document.ginjo.NumCart.value = " ";
      document.ginjo.NOMCART.value= 0;
      document.tst.VencCart.value = " ";
    }

   return (erros==0)
}

//******************************************************************************************
// Função verificadora de campo data
//******************************************************************************************

function valida(campo){
	if (campo.value != ""){
		if(campo.value.charAt(2) != "/" || campo.value.charAt(5) != "/" || campo.value.length != 10){
			alert("A data não está no formato correto.");
			campo.value="";
			campo.focus();
			return(false);
		}

		for(i=0;i<10;i++){
			if(i != 2 && i != 5){
				if(campo.value.charAt(i) != 0 && campo.value.charAt(i) != 1 && campo.value.charAt(i) != 2 && campo.value.charAt(i) != 3 && campo.value.charAt(i) != 4 && campo.value.charAt(i) != 5 && campo.value.charAt(i) != 6 && campo.value.charAt(i) != 7 && campo.value.charAt(i) != 8 && campo.value.charAt(i) != 9 || campo.value.charAt(i) == " "){
					alert("A data não está no formato correto.");
					campo.value="";
					campo.focus();
					return(false);
				}
			}
		}
	}

return (true);
}

//******************************************************************************************
//Função verificadora de campo numéricos
//******************************************************************************************
function numero(campo) {

	var t = 0;
	for(cont=0;cont<campo.value.length;cont++)
	{
		if(campo.value.charAt(cont) != "0" && campo.value.charAt(cont) != "1" && campo.value.charAt(cont) != "2" && campo.value.charAt(cont) != "3" && campo.value.charAt(cont) != "4" && campo.value.charAt(cont) != "5" && campo.value.charAt(cont) != "6" && campo.value.charAt(cont) != "7" && campo.value.charAt(cont) != "8" && campo.value.charAt(cont) != "9")
			{
			alert("O campo " + campo.name + " aceita apenas números");
			campo.value="";
			campo.focus();
			return (false);
			}
	}
	return (true);
}

//******************************************************************************************
// Função Verificadora do Campo CGC
//******************************************************************************************

function ValChar(ch) {
	if (ch=="0") return 0
	else if (ch=="1") return 1
	else if (ch=="2") return 2
	else if (ch=="3") return 3
	else if (ch=="4") return 4
	else if (ch=="5") return 5
	else if (ch=="6") return 6
	else if (ch=="7") return 7
	else if (ch=="8") return 8
	else if (ch=="9") return 9
	else return 10
}

//Verifica se o argumento é um CGC válido de 8 dígitos
function ChecaCGC8 (CKCGC) {
var CGC = CKCGC;
var NewCGC = "";
//Elimina todos os espaços, pontos, barras e traços do CGC
for (i=0;i<CGC.length;i++) { //>
	if (CGC.charAt(i) != " " && CGC.charAt(i) != "." && CGC.charAt(i) != "/" && CGC.charAt(i) != "-") NewCGC = NewCGC + CGC.charAt(i);
}
//Verifica tamanho do CGC
if (NewCGC.length!=8) {
	return false;
}
//verifica se todos os caracteres são numéricos
var Numerico = false;
var Numeros = "0123456789";
for (i=0;i<NewCGC.length;i++) { //>
	Numerico = false;
	for (j=0;j<Numeros.length;j++) { //>
		if (NewCGC.charAt(i) == Numeros.charAt(j)) {
			Numerico = true;
			break;
		}
	}
	if (!Numerico) {
		return false;
	}
}
//Calcula os dígitos verificadores
var s1 = 0;
aux = 0;
soma = 0
for (i=1;i<=8;i++) {
	//alert("i="+i+" - char(i-1)="+NewCGC.charAt(i-1));
	aux = (ValChar(NewCGC.charAt(i-1)))*((i % 2)+1);
	//alert ("aux="+aux);
	if (aux>9) aux = aux-9;
	//alert ("aux="+aux);
	soma = soma + aux;
}
r1 = soma % 10;
//alert("soma="+soma+" - resto="+r1);
if (r1==0) return (true)
else {
	return (false);
}
}


//Verifica se o argumento é um CGC válido
function ChecaCGC (CKCGC) {
var CGC = CKCGC;
var NewCGC = "";




//Verifica tamanho do CGC
if (CGC.length!=14) {
	return false;
}


//Calcula os dígitos verificadores
//Guarda os 12 primeiros digitos
var DVCGC = CGC.substring(0,12);


//calcula o primeiro digito verificador
var s1 = 0;
for (i=1;i<=4;i++) s1 = s1 + (ValChar(DVCGC.charAt(i-1))*(6-i));
for (i=5;i<=12;i++) s1 = s1 + (ValChar(DVCGC.charAt(i-1))*(14-i));
r1 = s1 % 11;
if (r1<2) dv1=0;
else dv1 = 11 - r1;



//calcula o segundo digito verificador
var s2 = dv1*2;
for (i=1;i<=5;i++) s2 = s2 + (ValChar(DVCGC.charAt(i-1))*(7-i));
for (i=6;i<=12;i++) s2 = s2 + (ValChar(DVCGC.charAt(i-1))*(15-i));
r2 = s2 % 11;
if (r2<2) dv2=0;
else dv2 = 11 - r2;


//junta os digitos verificadores
var DV = "";
DV = DV + dv1 + dv2;


//guarda os digitos verificadores do CGC digitado (últimas duas posições no string)
var NewDV = CGC.substring(12,14)
if (NewDV==DV) { //se o DV calculado for igual ao digitado, retorna true
	return true
}
else {
	return false
}
}

function ChecaForm(theField) {
	if (theField!="") { //se o campo cgc tiver algum valor, verifica
		if (theField.length > 14)  //verifica se o tamanho não é maior que 14
		{
			alert("Para CGC o campo deve conter apenas 14 dígitos.");
			//theField.focus();
			return (false);
		}
		// verifica se todos os caracteres digitados são numeros
		var checkOK = "0123456789-";
		var checkStr = theField;
		var allValid = true;
		var decPoints = 0;
		var allNum = "";
		for (i = 0;  i < checkStr.length;  i++)
		{
			ch = checkStr.charAt(i);
			for (j = 0;  j < checkOK.length;  j++)
			if (ch == checkOK.charAt(j)) break;
			if (j == checkOK.length)
			{
				allValid = false;
				break;
			}
			allNum += ch;
		}
		if (!allValid)
		{
			alert("O campo CNPJ deve conter apenas números.");
			//theField.focus();
			return (false);
		}
		//checa se o campo é CPF válido, retorna true e envia o formulário
		if (ChecaCGC(theField)||ChecaCGC8(theField))return (true);
		else
		{
			alert("CGC inválido!");
			//theField.focus();
			return (false);
		}
	}
}

//******************************************************************************************
// Função Verificadora do Campo CPF
//******************************************************************************************
function verificarCPF(theForm)
{

	var numero = "";
	var multipli = 0;
	var soma = 0;
	var cont = 1;
	var cont1 = 10;

	for(cont=0;cont<9;cont++)
	{
        numero = theForm.charAt(cont);
        multipli = numero * cont1;
        soma = soma + multipli;
        cont1 = cont1 - 1;
        numero = "";
	}

	soma = soma % 11;
	soma = 11 - soma;
	numero = theForm.charAt(9);

	if(soma > 9 )
	{
	if(numero != 0)
		{
		alert("CPF Inexistente.");
		return (false);
		}
	}
	else
	{
		if(soma != numero)
		{
 		alert("CPF Inexistente.");
		return (false);
		}
	}


	multipli = 0;
	soma = 0;
	cont = 1;
	cont1 = 11;

	for(cont=0;cont<11;cont++)
	{
	        numero = theForm.charAt(cont);
		if(numero != "-")
		{
	            multipli = numero * cont1;
        	    soma = soma + multipli;
	            cont1 = cont1 - 1;
		}
        	numero = "";
	}

	soma = soma % 11;
	soma = 11 - soma;
	numero = theForm.charAt(11);

	if(soma > 9 )
	{
		if(numero != 0)
		{
			alert("CPF Inexistente.");
			return (false);
		}
	}
	else
	{
		if(soma != numero)
		{
			alert("CPF Inexistente.");
			return (false);
		}
	}

  return (true);
}