function trim(campo){
  var retValue = campo;
  var ch = retValue.substring(0, 1);
   while (ch == " ") {
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") {
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { 
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);
   }
   return retValue;
}

function valida_login(){
	var cnpj = document.form1.cnpj;

	if (trim(cnpj.value) == ""){
		alert("Necessário informar o CNPJ de sua empresa!");
		cnpj.focus();
	}else{
		document.form1.submit();
	}	
}

function clica_enter(funcao){
	if (event.keyCode == 13){
		if (funcao != "")
			funcao();
	}
}

function so_numero(campo) {
	if(((event.keyCode < 48) || (event.keyCode > 57)) && event.KeyCode != 8 && event.KeyCode !=13  ) {
		campo.focus();
		event.returnValue = false;
	}
}	
		
function pega_valor(valor){
    getResponse("pega_valor", "ajax_arquivos.php?id="+valor, "", "Carregando...");
}
	
function valida_upload(){
	var titulo_principal = document.form1.titulo_principal;
	var qtd              = document.form1.id;
	
	if (trim(titulo_principal.value) == ""){
		alert("Título Principal do Upload precisa ser informado!");
		titulo_principal.focus();
	}else if ((trim(qtd.value) == "") || (qtd.value == 0)){
		alert("Quantidade de arquivo(s) do upload precisa ser informado!");
		qtd.value="";		
		qtd.focus();
	}else{
		document.form1.submit();
	}
}

function valida_usuarios(){
	var tp_usu = document.form1.tp_usu;	
	var login  = document.form1.login_usu;
	var senha  = document.form1.senha_usu;	
	
	if (trim(tp_usu.value) == ""){
		alert("Tipo do Usuário precisa ser informado!");	
		tp_usu.focus();
	}else if (trim(login.value) == ""){
		alert("Login do Usuário precisa ser informado!");	
		login.focus();
	}else if (trim(senha.value) == ""){
		alert("Senha do Usuário precisa ser informado!");
		senha.focus();
	}else{		
		tirar_acentos(login);
		document.form1.submit();
	}
}

function tirar_acentos(campo){ 

  campo.value = campo.value.toLowerCase(); 

  var estranha = "áéíóúàèìòùâêîôûäëïöüãõ@#$%^&*()_+=-~` ç"; 
  var correta  = "aeiouaeiouaeiouaeiouao________________c"; 
  var retorno  = ""; 

  for(i=0;i<estranha.length;i++) { 
   
    for(j=0;j<campo.value.length;j++) { 
      retorno = campo.value.replace(estranha.substr(i,1),correta.substr(i,1)); 
      retorno = retorno.replace("_",""); 
      campo.value = retorno; 
    } 
  }    
}

function marcarTodos() {
	if (document.getElementById("ckall").value == '0') {
		document.getElementById("ckall").value = '1';
		for (i = 0; i < document.forms[0].length; i++) {
			if (document.forms[0].elements[i].type == 'checkbox') {
				document.forms[0].elements[i].checked = true;
			}
		}
	} else {
		document.getElementById("ckall").value = '0';
		for (i = 0; i < document.forms[0].length; i++) {
			if (document.forms[0].elements[i].type == 'checkbox') {
				document.forms[0].elements[i].checked = false;
			}
		}		
	}
}

// verifica o numero de checkbox´s checados
function numeroChecados() {
	var aux = 0;
	for (i = 0; i < document.forms[0].length; i++) {
		if (document.forms[0].elements[i].type == 'checkbox' && document.forms[0].elements[i].id != 'dbListCheckAll_1') {
			if (document.forms[0].elements[i].checked) {
				aux += 1;
			}
		}
	}
	return aux;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


function valida_email( campo ){
	if (campo.value !=''){
		if ( campo.value.indexOf('@')==-1 ||
			 campo.value.indexOf('.')==-1 ||
			 campo.value.indexOf(' ')!=-1 ||
			 campo.value.indexOf('@.')!=-1 ||
			 campo.value.indexOf('.@')!=-1 ||
			 campo.value.length<6) {
				alert('E-mail inválido!');
				campo.select();
				campo.focus();
				return false;
		}
	}
}


function auto_cnpj(campo) {
  so_numero(campo);	
  texto = campo.value;
  if(parseInt(texto.length) == 2) {
	texto += ".";
	campo.value = texto;
	  
  }else if(parseInt(texto.length) == 6) {
	texto += ".";
	campo.value = texto;			
	  
  }else if(parseInt(texto.length) == 10) {
	texto += "/";
	campo.value = texto;
  } else if ( parseInt(texto.length) == 15) {
	texto += "-";
	campo.value = texto;
  }
}

function verifica_cnpj2(campo) {
  var texto = campo.value;
  if (texto != "") {
	if (parseInt(texto.length) < 18) {
	  alert("ATENÇÃO: CNPJ inválido!");
	  campo.focus();
	  return false;
	}
  }	  	
}			


var ncnpj = new Array;

function valida_cnpj(Form,nForm){
	if (form1.cnpj.value != '') {
		var Campos = eval('document.' + nForm + '.vcnpj.value');
		var Contador = 0;
		var x = 0;
		var i = Campos.indexOf( "," );
		if (i==-1){
			ncnpj[Contador] = Campos.slice(0,Campos.length);
		} else {
			ncnpj[Contador] = Campos.slice(0,i);
			Campos = Campos.slice(i+1,Campos.length);
			//Rotina que recebe os demais campos
			for (;x<Campos.length;x++){
				if (Campos.slice(x,x+1) == ","){
					Contador = Contador + 1;
					ncnpj[Contador] = Campos.slice(0,x);
					Campos = Campos.slice(x+1,Campos.length);
					x = 0;
				}
			}
			ncnpj[ncnpj.length] = Campos;
		}
		x = 0;
		for (;x<ncnpj.length;x++){
			var Obj = eval ("document." + nForm + "." + ncnpj[x])
			if(!verifica_cnpj(Obj)){
			Obj.focus();
			ncnpj = new Array;
			return false;
		}
	}
}
return true;
}

function verifica_cnpj(S){
	Testa_Tamanho_do_Numero = true;
	Digitos_Verificadores_cnpj = 2;
	Digitos_cnpj = 18; //xx.xxx.xxx/xxxx-xx tem 14 numeros
	/*
	 * Alem de testar os digitos verificadores as funcoes seguintes
	 * tambem devem testar o tamanho dos numeros fornecidos (no caso
	 * desta constante ser True). Se for colocada como False sera'
	 * somente verificada a igualdade dos digitos verificadores.
	*/
	
	// S - é o OBJETO Text e não o valor!!!
	//Verifica se o string esta' ok (CPF ou cnpj)
	
	var Original = Limpa_cnpj(S);
	var Gerado = "";
	var Tamanho = Digitos_cnpj;  //tamanho esperado para o cnpj
	
	teste = (( !Testa_Tamanho_do_Numero) || (Testa_Tamanho_do_Numero && Original.length == Tamanho));
	//alert("Resposta da condição: "+teste);
	if (teste){
		//Gerado = Original;
		//retira digitos verificadores
		Gerado = Original.substring( 0, Original.length - Digitos_Verificadores_cnpj )
		Gerado = Completa_cnpj( Gerado ); //Gera numero completo
		
		cnpj_valido = (Gerado == Original) //compara com original
		//alert("Valor de cnpj_valido: "+cnpj_valido)

		if (!cnpj_valido) {
			alert("O CNPJ (cnpj) é inválido, favor corrigi-lo!");
			S.select();
			S.focus();
			return false
		}else{
			return true
		}
	} else {
		alert("A quantidade de números do cnpj é inválida, favor corrigir.");
		S.select();
		S.focus();
		return false    //Nao tem o tamanho certo
	}
}

function Limpa_cnpj( S_aux2 ) {
	//Retira tudo o que nao for numero,
	// mas não tira os números do cnpj
	// S_aux2 - é o objeto Text e não o valor. Prestar atenção!!!
	var SAux = '';
	S = S_aux2.value;
	//alert("cnpj: " + S)
	var pos = 0
	for( ; pos < S.length; pos++ ) {
		if( S.charAt(pos) >= '0' && S.charAt(pos) <= '9' ) {
			SAux = SAux + S.charAt(pos);
		}
		return SAux
	}
}
//Completa o numero colocando digitos verificadores
function Completa_cnpj( S ) {
	//   var SAux = Limpa_String(S);
	var SAux = S;
	var Quantos = Digitos_Verificadores_cnpj;
	var c = 1
	for( ; c <= Quantos; c++ ){
		SAux = SAux + Digito_Verificador_cnpj( SAux );
		return SAux
	}
}
//Calcula um digito verificador em funcao do numero
function Digito_Verificador_cnpj( S ) {
	//   S = Limpa_String(S);
	var soma = 0
	var comprimento = S.length
	var i = 1
	for( ; i <= comprimento; i++ ) {
		// fator = 2,3,4,5,6,7,8,9, 2, 3, 4, 5...
		var fator = 2+( (i-1) % 8 );
		soma = soma + parseInt( S.charAt(comprimento-i) ) * fator
	}
	return ((10*soma) % 11) % 10
}


function auto_cep(quadro) {
  so_numero(quadro);		
	texto = quadro.value;
	if( parseInt(texto.length) == 5 ) {
		texto += "-";
		quadro.value = texto;
	}
}
	
function auto_fone(campo){
  so_numero(campo);
  texto = campo.value;
  
  if( texto.length == 0 ) {
	texto += '(';
	campo.value = texto;  
  } else if( texto.length == 3 ) {
	texto += ') ';
	campo.value = texto;
  } else if( texto.length == 9 ) {
	texto += '-';
	campo.value = texto;
  }
}


function auto_tab(campo1,campo2,qtd) {
	var val = campo1.value;
		if (val.length == qtd) {
			campo2.focus();
		}	
}
	
function valida_fornecedor(){
	var razao = document.form1.razao;
	var fant  = document.form1.fantasia;	
	var cnpj  = document.form1.vcnpj;
	var ins   = document.form1.inscricao;		
	var uf    = document.form1.uf;
	var cep   = document.form1.cep;
	var resp  = document.form1.resp;	
	var email = document.form1.email;
	var senha = document.form1.senha;

	if (trim(razao.value) == ""){
		alert("Razão Social do Fornecedor precisa ser informado!");
		razao.focus();
	}else if (trim(fant.value) == ""){
		alert("Nome Fantasia do Fornecedor precisa ser informado!");
		fant.focus();
	}else if (trim(cnpj.value) == ""){
		alert("CNPJ do Fornecedor precisa ser informado!");
		cnpj.focus();
	}else if (trim(ins.value) == ""){
		alert("Inscrição Estadual do Fornecedor precisa ser informado!");
		ins.focus();
	}else if (uf.value == ""){
		alert("Estado do Fornecedor precisa ser informado!");
		uf.focus();
	}else if (trim(cep.value) == ""){
		alert("CEP do Fornecedor precisa ser informado!");
		cep.focus();		
	}else if (trim(resp.value) == ""){
		alert("Responsável do Fornecedor precisa ser informado!");
		resp.focus();
	}else if (trim(email.value) == ""){
		alert("E-mail do Fornecedor precisa ser informado!");
		email.focus();
	}else if (trim(senha.value) == ""){
		alert("Senha do Fornecedor precisa ser informado!");
		senha.focus();
	}else{
		document.form1.submit();
	}
}	
	
function auto_inscricao(campo) {
	so_numero(campo);		
	texto = campo.value;
	if( parseInt(texto.length) == 2 ) {
		texto += ".";
		campo.value = texto;
	} else if( parseInt(texto.length) == 5) {
		texto += ".";
		campo.value = texto;
	} else if( parseInt(texto.length) == 10) {
		texto += "-";
		campo.value = texto;
	}
}
	
function validar_inscricao(campo) {
	resultado = true;
	if( campo.value != '' ) {
		if( campo.value.length != 12 ) {
			resultado = false;
		} else if( campo.value.charAt(2) != '.' ) {
			resultado = false;
		} else if( campo.value.charAt(5) != '.' ) {
			resultado = false;
		} else if( campo.value.charAt(10) != '-' ) {
			resultado = false;
		}
	}

	if( resultado == false ) {
		alert("Inscrição Estadual inválida!");
		campo.value = "";
		campo.focus();
		return false;
	} else {
		return true;
	}
}

	function auto_data( campo ) {
	    texto = campo.value;
    	if( texto.length == 2 ) {
	        texto += '/';
    	    campo.value = texto;
	    } else if( texto.length == 5 ) {
	        texto += '/';
	        campo.value = texto;
    	}
	}
	
	function valida_data( campo ) {
		data = campo.value;
		resultado = true;
	
		if( data != "" ) {
			if( data.charAt(0) != '0' ) {
				dia = data.charAt(0) + data.charAt(1);
			} else {
				dia =data.charAt(1);
			}
			dia = parseInt(dia);
	
			if( data.charAt(3) != "0" ) {
				mes = data.charAt(3) + data.charAt(4);
			} else {
				mes = data.charAt(4);
			}
			mes = parseInt(mes);
	
			if( data.charAt(6) != '0' && data.charAt(7) != '0' && data.charAt(8) != '0' ) {
				ano = data.charAt(7) + data.charAt(8) + data.charAt(9);
			} else if( data.charAt(7) != '0' && data.charAt(8) != '0' ) {
				ano = data.charAt(8) + data.charAt(9);
			} else if( data.charAt(8) != '0' ) {
				ano = data.charAt(9);
			} else {
				ano = data.charAt(6) + data.charAt(7) + data.charAt(8) + data.charAt(9);
			}
			ano = parseInt(ano);
	
			if( campo.value.length != 10 ) {
				alert( "Data Inválida!\nVerifique a quantidade de dígitos" );
				campo.focus();
				resultado = false;
			} else if( (mes == 4 || mes == 6 || mes == 9 || mes == 11) && dia > 30 ) {
				alert( "Data Inválida!\nEsse mês não permite dia 31" );
				campo.focus();
				resultado = false;
			} else if( mes == 2 && dia > 29 ) {
				alert( "Data Inválida!\nFevereiro não permite dia com esse valor" );
				campo.focus();
				resultado = false;
			} else if( campo.value.charAt( 2 ) != '/' || campo.value.charAt( 5 ) != '/' ) {
				alert( "Data Inválida!\nVerifique o formato da data" );
				campo.focus();
				resultado = false;
			} else if( dia < 1 || dia > 31 ) {
				alert( "Data Inválida!\nVerifique o valor do dia" );
				campo.focus();
				resultado = false;
			} else if( mes < 1 || mes > 12 ) {
				alert( "Data Inválida!\nVerifique o valor do mês" );
				campo.focus();
				resultado = false;
			} else if( ano < 1 ) {
				alert( "Data Inválida!\nVerifique o valor do ano" );
				campo.focus();
				resultado = false;
			}
			if (resultado == false){
			  campo.value = "";	  
			}
			return resultado;
		}
	}	
