<!--
/*

Validador de Formulário
Elder Pimenta
Criação: 25/02/2003

USO:
No botão SUBMIT use o seguinte parâmetro
onClick = "ValidaForm(campo1,alias1,teste1,campo2,alias2,teste2,campoN,aliasN,testeN);return document.returnValue"
campo = campos do formulário. Ex: nome, email, numero
alias = nome que aparecerá na mensagem. Ex: Nome, E-Mail, Número
teste = começando com "R" é requerido. Ex: RisNum, RisCPF, RisCPF
	    começando com "N" não é requerido. Ex: NisNum, NisCPF, NisCPF
		isNum = tem que ser numérioco
		isEmail  = tem que ser um e-mail
		isCPF = tem que ser um valor válido de CPF
		isCNPJ = tem que ser um valor válido de CNPJ

EXEMPLO:
<input name="Submit" type="submit" onClick="ValidaForm('nome','Nome','R','cpf','CPF','RisCPF','cnpj','CNPJ','RisCNPJ','email','E-mail','RisEmail','numero','Número','RisNum');return document.returnValue" value="Submit">

*/

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 ValidaForm () {
	//alert(document.getElementById('nome').value)
	
	var errors='', p, nm, alias, test, args=ValidaForm.arguments
	for (i=0; i<=(args.length-3); i+=3) {
		nm = args[i]; 
		alias = args[i+1]; 
		test = args[i+2];
		val=MM_findObj(args[i])
		if (val) { 
			nm=val.name;
			if ((val=val.value)!="") {
				if (test.indexOf('isEmail')!=-1) {
					p=val.indexOf('@');
        			if (p<1 || p==(val.length-1)) errors+='- "'+alias+'" contém um e-mail inválido.\n';
				} else if (test.indexOf('isNum')!=-1) {
					if (isNaN(val)) errors+='- "'+alias+'" deve conter um valor numérico.\n';
				} else if (test.indexOf('isCPF')!=-1) {
					if (validCPF(val)==false) errors+='- "'+alias+'" não é um CPF válido.\n';
				} else if (test.indexOf('isCNPJ')!=-1) {
					if (validCNPJ(val)==false) errors+='- "'+alias+'" não é um CNPJ válido.\n';
				}
			} else if (test.charAt(0) == 'R') errors += '- "'+alias+'" não foi preenchido.\n'; 
		}
	}
if (errors) alert('Os seguintes erros ocorreram:\n'+errors);
document.returnValue = (errors == '');
}






//VALIDA CPF

function validCPF(campo) {
var CPF = LIMP(campo); // Recebe o valor digitado no campo

// Aqui começa a checagem do CPF
var posicao, I, soma, dv, dv_informado;
var digito = new Array(10);
dv_informado = CPF.substr(9, 2); // Retira os dois últimos dígitos do número informado

// Desemembra o número do CPF na array digito
for (I=0; I<=8; I++) {
  digito[I] = CPF.substr( I, 1);
}

// Calcula o valor do 10º dígito da verificação
posicao = 10;
soma = 0;
   for (I=0; I<=8; I++) {
      soma = soma + digito[I] * posicao;
      posicao = posicao - 1;
   }
digito[9] = soma % 11;
   if (digito[9] < 2) {
        digito[9] = 0;
}
   else{
       digito[9] = 11 - digito[9];
}

// Calcula o valor do 11º dígito da verificação
posicao = 11;
soma = 0;
   for (I=0; I<=9; I++) {
      soma = soma + digito[I] * posicao;
      posicao = posicao - 1;
   }
digito[10] = soma % 11;
   if (digito[10] < 2) {
        digito[10] = 0;
   }
   else {
        digito[10] = 11 - digito[10];
   }

// Verifica se os valores dos dígitos verificadores conferem
dv = digito[9] * 10 + digito[10];
   if (dv != dv_informado) {
      return false;
   } 
}











// VALIDA CNPJ
function validCNPJ(campo)
	{
	if(VerifyCNPJ(campo) != 1 && campo!="")
		{
		return false
		}
	return true;
	}

// Aqui inicia as funções de teste do CNPJ


function isNUMB(c)
	{
	if((cx=c.indexOf(","))!=-1)
		{		
		c = c.substring(0,cx)+"."+c.substring(cx+1);
		}
	if((parseFloat(c) / c != 1))
		{
		if(parseFloat(c) * c == 0)
			{
			return(1);
			}
		else
			{
			return(0);
			}
		}
	else
		{
		return(1);
		}
	}

function LIMP(c)
	{
	while((cx=c.indexOf("-"))!=-1)
		{		
		c = c.substring(0,cx)+c.substring(cx+1);
		}
	while((cx=c.indexOf("/"))!=-1)
		{		
		c = c.substring(0,cx)+c.substring(cx+1);
		}
	while((cx=c.indexOf(","))!=-1)
		{		
		c = c.substring(0,cx)+c.substring(cx+1);
		}
	while((cx=c.indexOf("."))!=-1)
		{		
		c = c.substring(0,cx)+c.substring(cx+1);
		}
	while((cx=c.indexOf("("))!=-1)
		{		
		c = c.substring(0,cx)+c.substring(cx+1);
		}
	while((cx=c.indexOf(")"))!=-1)
		{		
		c = c.substring(0,cx)+c.substring(cx+1);
		}
	while((cx=c.indexOf(" "))!=-1)
		{		
		c = c.substring(0,cx)+c.substring(cx+1);
		}
	return(c);
	}

function VerifyCNPJ(CNPJ)
	{
	CNPJ = LIMP(CNPJ);
	if(isNUMB(CNPJ) != 1)
		{
		return(0);
		}
	else
		{
		if(CNPJ == 0)
			{
			return(0);
			}
		else
			{
			g=CNPJ.length-2;
			if(RealTestaCNPJ(CNPJ,g) == 1)
				{
				g=CNPJ.length-1;
				if(RealTestaCNPJ(CNPJ,g) == 1)
					{	
					return(1);
					}
				else
					{
					return(0);
					}
				}
			else
				{
				return(0);
				}
			}
		}
	}
function RealTestaCNPJ(CNPJ,g)
	{
	var VerCNPJ=0;
	var ind=2;
	var tam;
	for(f=g;f>0;f--)
		{
		VerCNPJ+=parseInt(CNPJ.charAt(f-1))*ind;
		if(ind>8)
			{
			ind=2;
			}
		else
			{
			ind++;
			}
		}
		VerCNPJ%=11;
		if(VerCNPJ==0 || VerCNPJ==1)
			{
			VerCNPJ=0;
			}
		else
			{
			VerCNPJ=11-VerCNPJ;
			}
	if(VerCNPJ!=parseInt(CNPJ.charAt(g)))
		{
		return(0);
		}
	else
		{
		return(1);
		}
	}

function mascara_cpf(cpf)
{
    var mycpf = '';
    mycpf = mycpf + cpf.value;
    if (mycpf.length == 3) {
        mycpf = mycpf + '.';
        cpf.value = mycpf;
    }
    if (mycpf.length == 7) {
        mycpf = mycpf + '.';
        cpf.value = mycpf;
    }
    if (mycpf.length == 11) {
        mycpf = mycpf + '-';
        cpf.value = mycpf;
    }
    if (mycpf.length == 14) {
    }
}

function mascara_cnpj(cnpj)
{
    var mycnpj = '';
    mycnpj = mycnpj + cnpj.value;
    if (mycnpj.length == 2) {
        mycnpj = mycnpj + '.';
        cnpj.value = mycnpj;
    }
    if (mycnpj.length == 6) {
        mycnpj = mycnpj + '.';
        cnpj.value = mycnpj;
    }
    if (mycnpj.length == 10) {
        mycnpj = mycnpj + '/';
        cnpj.value = mycnpj;
    }
    if (mycnpj.length == 15) {
        mycnpj = mycnpj + '-';
        cnpj.value = mycnpj;
    }	
    if (mycnpj.length == 18) {
    }
}

function mascara_cep(nvar)
{
    var myvar = '';
    myvar = myvar + nvar.value;
    //if (myvar.length == 2) {
    //    myvar = myvar + '.';
    //    nvar.value = myvar;
    //}
    if (myvar.length == 5) {
        myvar = myvar + '-';
        nvar.value = myvar;
    }
    if (myvar.length == 9) {
    }
}

function formataNumero(num, casas, antes, zeros) { 

	num = num.toString().replace(/R$|\./g,'');
	num = num.replace(',','.');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	cs = Math.pow(10,casas)
	num = Math.floor(num*cs+0.50000000001);
	cents = num%cs;
	
	num = Math.floor(num/cs).toString();
	cents = cents.toString()
	qcasas = cents.length
	if (qcasas < casas) { 
		for (a=1;a<=casas-qcasas;a++) {cents = "0" + cents;}
	}
	if (zeros == "N") {
		for (a=1;a<=casas;a++) {
			if (cents.substring(cents.length,cents.length-1) == "0") {
				cents = cents.substring(0,cents.length-1)
			} else { break ; }
		}
	}
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
	num = num.toString().replace(/,/g,'.');
	if (cents == "") { virgula='' } else {virgula = ','}
	return (((sign)?'':'-') + antes + num + virgula + cents);
} 

function mascara_numero(nvar, casas, antes, elem, zeros, cponto)
{
	if (nvar.value != '') 
	nvar.value = formataNumero(nvar.value,casas,antes,zeros);
	
	if(cponto!="S"){
		nnvar = nvar.value.replace(antes,'');
		nnvar = nnvar.replace(/\./g,'');
		nnvar = nnvar.replace(',','.');
		document.all(elem).value = nnvar
	}
}

function mascara_numero2(nvar, casas, antes)
{
	nnvar = nvar.value.replace(antes,'');
	nnvar = nnvar.replace(/\./g,'');
	casa = ""
	for (a=1;a<=casas;a++) {casa = casa + "0";}
	if (casa!="") {nnvar = nnvar.replace(','+casa,'');}
	nvar.value = nnvar
	nvar.select();
}

function maskara(nvar, mascara) {
	var myvar = '';
	myvar = myvar + nvar.value;
	qtd = mascara.length
	for (i=0; i<=qtd; i++) {
	  msk = mascara.substr(i, 1);
	  if (isNaN(msk) || msk == " "){
		if (myvar.length == i) {
			myvar = myvar + msk;
			nvar.value = myvar;
		}
	  }
	}
	if (nvar.value.length >= mascara.length - 1){
		nvar.value = nvar.value.substr(0, mascara.length - 1)
	}
}

function dia_mes(nvar) {
	//função para verificar dia e mes (ex.: aniversário)

	mdia = nvar.value.substr(0, 2)
	mmes = nvar.value.substr(3, 2)
	
	if (isNaN(mdia) || isNaN(mmes)) { 
		alert("Data Inválida")
		nvar.value = ""
		nvar.focus()
	}

	mmes = parseInt(mmes)
	mdia = parseInt(mdia)

	if (mmes == 4 || mmes == 6 || mmes == 9 || mmes == 11) { 
		maxdia = 30
	} else if (mmes == 2) {
		maxdia = 29
	} else {
		maxdia = 31
	}

	if (mdia > maxdia) {
		alert("Data Inválida")
		nvar.value = ""
		nvar.focus()
	}

}

function dia_mes_ano(nvar) {
	//função para verificar dia e mes (ex.: aniversário)

	mdia = nvar.value.substr(0, 2)
	mmes = nvar.value.substr(3, 2)
	mano = nvar.value.substr(6, 4)
	
	if (isNaN(mdia) || isNaN(mmes) || isNaN(mano)) { 
		alert("Data Inválida")
		nvar.value = ""
		nvar.focus()
	}

	mmes = parseInt(mmes)
	mdia = parseInt(mdia)
	mano = parseInt(mano)

	if (mmes == 4 || mmes == 6 || mmes == 9 || mmes == 11) { 
		maxdia = 30
	} else if (mmes == 2) {
		maxdia = 29
	} else {
		maxdia = 31
	}

	if (mano < 1900 || mano > 3000) {
		alert("Data Inválida !")
		nvar.value = ""
		nvar.focus()
	}
	
	if (mmes == 0 || mmes > 12) {
		alert("Data Inválida !")
		nvar.value = ""
		nvar.focus()
	}
	
	if (mdia > maxdia) {
		alert("Data Inválida !")
		nvar.value = ""
		nvar.focus()
	}

}

function valor_ano(nvar) {
	//função para verificar dia e mes (ex.: aniversário)

	mano = nvar.value.substr(0,4)
	mano = parseInt(mano)
	if (mano < 1900 || mano > 3000) {
		alert("Ano Inválido !")
		nvar.value = ""
		nvar.focus()
	}
}



function cpf_cpnj(nvar) {

	if (nvar.value.length == 0) { 
		// se estiver vazio, nao faz nada.
	} else {
		if (nvar.value.length > 14) { 
			if (validCNPJ(nvar.value) != false) {
				//cnpj ok
				nvar.value = LimpaCPFCNPJ(nvar.value)
				mv = nvar.value
				nvar.value = mv.substr(0, 2) + "." + mv.substr(2, 3) + "." + mv.substr(5, 3) + "/" + mv.substr(8, 4) + "-" + mv.substr(12, 2);
			} else {	
				alert("CNPJ Inválido")
				nvar.focus()
				nvar.select();
			}; 
		} else {
			if (validCPF(nvar.value) != false) {
				//cpf ok
				nvar.value = LimpaCPFCNPJ(nvar.value)
				mv = nvar.value
				nvar.value = mv.substr(0, 3) + "." + mv.substr(3, 3) + "." + mv.substr(6, 3) + "-" + mv.substr(9, 2) 				
			} else {
				alert("CPF Inválido")	
				nvar.focus()
				nvar.select();
			}; 
		} 
	}

}

function do_cnpj(nvar) {

	if (nvar.value.length == 0) { 
		// se estiver vazio, nao faz nada.
	} else {
		if (validCNPJ(nvar.value) != false) {
			//cnpj ok
			nvar.value = LimpaCPFCNPJ(nvar.value)
			mv = nvar.value
			nvar.value = mv.substr(0, 2) + "." + mv.substr(2, 3) + "." + mv.substr(5, 3) + "/" + mv.substr(8, 4) + "-" + mv.substr(12, 2);
		} else {	
			alert("CNPJ Inválido")
			nvar.focus()
			nvar.select();
		}; 
	}
}

function LimpaCPFCNPJ(xvar) {
	mvar = xvar
	mvar = mvar.toString().replace(/-/g, "" );
	mvar = mvar.toString().replace(/\./g, "" );
	mvar = mvar.toString().replace(/\//g, "" );	
	return mvar
}


function hora_min(nvar, maxhora) {

	mhor = nvar.value.substr(0, 2)
	mmin = nvar.value.substr(3, 2)
	
	if (isNaN(mhor) || isNaN(mmin)) { 
		alert("Horário Inválido")
		nvar.value = ""
		nvar.focus()
		
	}

	mhor = parseInt(mhor)
	mmin = parseInt(mmin)

	if (mhor > maxhora) {
		alert("A hora só pode ser entre 0 a " + maxhora)
		nvar.value = ""
		nvar.focus()
	} else if (mmin > 59) {
		alert("Minutos só podem ser entre 0 e 59")
		nvar.value = ""
		nvar.focus()
	}

}

function Maximiza(largura, altura, grava) {
	
	nm_cook = document.location.pathname
	jan = document.all.minhajan;
	ico = document.all.maxi_ico;
	expir = "Thu, 1 Jan 2100 00:00:00 GMT"

	if (grava !=1 ) {
		condit = Get_Cookie(nm_cook)=='0';
	} else {
		condit = Get_Cookie(nm_cook)!='0';
	}
	if (condit) {
		jan.style.width=largura;
		jan.style.height=altura;
		ico.src = 'images/maximizar.jpg'
		if (grava != 1) {document.cookie = nm_cook + "=" + escape('1') + "; expires=" + expir + ";null;null;"; return 0;}
	} else {
		jan.style.width='100%';
		jan.style.height='100%'	
		ico.src = 'images/minimizar.jpg'
		if (grava != 1) {document.cookie = nm_cook + "=" + escape('0') + "; expires=" + expir + ";null;null;"; return 0;}

	}
}

function Get_Cookie(name) { 
	var start = document.cookie.indexOf(name+"="); 
	var len = start+name.length+1; 
	if ((!start) && (name != document.cookie.substring(0,name.length))) return null; 
	if (start == -1) return null; 
	var end = document.cookie.indexOf(";",len); 
	if (end == -1) end = document.cookie.length; 
	return unescape(document.cookie.substring(len,end)); 
}

function Put_Cookie(nome, val) {
	document.cookie = nome + "=" + escape(val) + ";30;null;null;"
}

function MarcaLinha(quem, opt) {
	if (opt == 1) {
		quem.style.backgroundColor = '#dddddd';
	} else {
		quem.style.backgroundColor = '';
	}
}

function MaskTel(nvar) {
	mascara = '(00) 0000-0000'
	var myvar = '';
	myvar = myvar + nvar.value;
	qtd = mascara.length
	for (i=0; i<=qtd; i++) {
	  msk = mascara.substr(i, 1);
	  if (isNaN(msk) || msk == " "){
		if (myvar.length == i) {
			myvar = myvar + msk;
			nvar.value = myvar;
		}
	  }
	}
	if (nvar.value.length >= mascara.length - 1){
		nvar.value = nvar.value.substr(0, mascara.length - 1)
	}
	if (nvar.value.substr(0,1) != "(") {
		nvar.value = "(" + nvar.value;
	}
}

function VerifTel(quem) {
	vvar = quem.value.replace(/\-/g,''); 
	vvar = vvar.replace(/\)/g,''); 
	vvar = vvar.replace(/\(/g,''); 
	vvar = vvar.replace(/\ /g,''); 
	ig = "";
	valido = false
	if (vvar != "") {
		for (a=0;a<vvar.length;a++) {
			//alert(ig + "=" + vvar.charAt(a))
			if (ig != "") {
				if (ig != vvar.charAt(a)) {
					valido = true
					break;
				}
			}
			ig = vvar.charAt(a)
		}
		if (isNaN(vvar)) { valido = false; } //Se não for número
		if (vvar.length != 10) { valido = false; } //Se não tiver 10 números
		if (quem.value.charAt(0) != '(') {valido = false;}
		if (quem.value.charAt(3) != ')') {valido = false;}
		if (valido == false) { 
			alert('Número de Telefone Inválido'); 
			quem.value=''; 
			quem.focus()
		}
	}
}

function VerifCEP(quem) {
	  
	vvar = quem.value.replace(/\-/g,''); 
	vvar = vvar.replace(/\./g,''); 
	ig = "";
	valido = false
	if (vvar != "") {
		for (a=0;a<vvar.length;a++) {
			//alert(ig + "=" + vvar.charAt(a))
			if (ig != "") {
				if (ig != vvar.charAt(a)) {
					valido = true
					break;
				}
			}
			ig = vvar.charAt(a)
		}
		
		if (vvar.length != 8) { valido = false; } //Se não tiver 8 números
		if (isNaN(vvar)) { valido = false; } //Se não for número	
		//if (quem.value.charAt(2) != '.') {valido = false;}
		if (quem.value.charAt(5) != '-') {valido = false;}
		if (valido == false) { 
			alert('CEP Inválido'); 
			quem.value=''; 
			quem.focus()
		}
	}
}

 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];}}
}

// Ajax com CEP ----------------------------------

function GetXmlHttpObject(handler) { 
	var objXmlHttp=null;
	objXmlHttp=new XMLHttpRequest();
	objXmlHttp.onreadystatechange=handler;
	return objXmlHttp;
}


function Trim(str){return str.replace(/^\s+|\s+$/g,"");}

function searchCEP(x, campos, atab) {
	//CEP
	var id;	
	var URL="includes/cep.php?cep="+x;
	
		try	{
			wxmlHttp=GetXmlHttpObject(stateChangedW);
			wxmlHttp.open("GET", URL , true);
			wxmlHttp.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
			wxmlHttp.send(null);
		}
		catch(e) {
			alert("Não foi possível criar o objeto.")
		}
	
		function stateChangedW() { 
			
			if (wxmlHttp.readyState==4) { 
				if (wxmlHttp.status === 200) {
					if (Trim(wxmlHttp.responseText)=='') {
						alert('Nao foi possível encontrar este CEP.')	
						preencheCampos(campos, wxmlHttp.responseText)
					} else {
						preencheCampos(campos, wxmlHttp.responseText, atab)
					}
				} else {
					alert("Não foi possível fazer a pesquisa do Endereço.")
				}
			} 
		}
}

function preencheCampos(campos, retorno, atab) {
	//CEP
	spc = campos.split(";");
	spr = retorno.split(";");
	for(a=0;a<spc.length;a++) {
		if(spr[a] != undefined) {
			document.getElementById(spc[a]).value=spr[a];
		} else {
			document.getElementById(spc[a]).value="";
		}
	}
	if(atab != undefined) {
		document.getElementById(atab).focus();
	}
}

function DescobreID() {
  idjan = 0;
  todos = parent.document.getElementsByTagName('DIV')
  for (i=0;i<todos.length;i++) {
	if (todos[i].className == 'resizeMe') {
		sp = todos[i].name.split("_");
		idjan = sp[1]
		if (parent.frames["minhajan_fra_" + idjan].document.location.pathname == document.location.pathname) {
			break;
		}
	}
  }
  return idjan;
}

function tempo(){
	j = j + 1
	if (j > 20) {
		fadeOut("mensag", 0.1);
	}
	else {t = setTimeout('tempo()', 200);}
}

function setMensagem(texto, temporario) {
	j = 1;
	document.getElementById('mensag').innerText = texto
	fadeIn("mensag", 0.1);
	if (temporario == 1) {
		tempo();
	}
}

function fadeOut(id, time) {
	target = document.getElementById(id);
	alpha = 100;
	timer = (time*1000)/50;
	var i = setInterval(
			function() {
				if (alpha <= 0) {
					clearInterval(i);
					target.style.visibility = 'hidden';
				}
				setAlpha(target, alpha);
				alpha -= 2;
			}, timer);
	
}

function fadeIn(id, time) {
	target = document.getElementById(id);
	alpha = 0;
	setAlpha(target, alpha);
	target.style.visibility = 'visible';
	timer = (time*1000)/50;
	var i = setInterval(
			function() {
				if (alpha >= 100)
					clearInterval(i);
				setAlpha(target, alpha);
				alpha += 2;
			}, timer);
}

function setAlpha(target, alpha) {
	target.style.filter = "alpha(opacity="+ alpha +")";
	target.style.opacity = alpha/100;
}

function ismaxlength(obj){
	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
	if (obj.getAttribute && obj.value.length>mlength)
	obj.value=obj.value.substring(0,mlength)
}

function ismaxlengthrev(obj){
	var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
	if (obj.getAttribute && obj.value.length>mlength-1)
	obj.value=obj.value.substring(0,mlength-1)
}

// --------------------------------

//-->
