﻿// JScript File
/* ************************************
	Criado por : Lauro A L Brito
	email: lauro_lab@yahoo.com.br
	Data Criação: Janeiro/2007
	- Compativel com MSIE e Firefox.
**************************************/

function changeDisplay(id) {
	var div = document.getElementById(id);
	
	if (div.className=='invisivel')
		div.className='visivel';
	else
		div.className='invisivel';
	}


function checkNumCat() {
	var tBox=document.getElementById('ctl00_Navigate_tbNumCat');
	var combo=document.getElementById('ctl00_Navigate_numcat');
//	alert('combo='+combo.value);
	if (tBox.value=='' && combo.value=='0')
		{
			alert("Digite o Código ou Selecione na Caixa ao lado");
			return false;
		}
	}

function CallPrint(strId)
{
	var prtContent = document.getElementById(strId);
	var WinPrint = window.open('','','letf=0,top=0,width=1,height=1,toolbar=0,scrollbars=0,status=0');
	WinPrint.document.write(prtContent.innerHTML);
	WinPrint.document.write('<link href="App_Themes/Ridgid/print.css" type="text/css" rel="stylesheet" />');
	WinPrint.document.close();
	WinPrint.focus();
	WinPrint.print();
	WinPrint.close();
}


function toUpper(obj) {
	obj.value=obj.value.toUpperCase();
	}

function toLower(obj) {
	obj.value=obj.value.toLowerCase();
	}

/* *****************************************************
*
*	para chamar este validator é necessário
*	definir os nomes dos FormViews da seguinte forma
*	headAdd - para form de headers no modo insert
*	baseado em id tipo: ctl00_Navigate_headAdd_nameFieltd
*
*	headUpd - para form de headers no modo edit
*	baseado em id tipo: ctl00_Navigate_headUpd_nameFieltd
*
*	itemAdd - para form de itens no modo insert
*	baseado em id tipo: ctl00_Navigate_itemAdd_nameFieltd
*
*	itemUpd - para form de itens no modo edit
*	baseado em id tipo: ctl00_Navigate_itemUpd_nameFieltd
*
******************************************************** */

function checkForm(idForm) {
	var objForm=document.getElementById(idForm);
	var len=objForm.length;

	if (objForm.process.value==true) {
		alert('Aguarde, processo em andamento!');
		return false;
		}	
	for (x=0; x < len; x++) {
		var required=(objForm[x].className=='required') ? true : false;	// pode ser required ou nulo
		var id=objForm[x].id.toLowerCase();	// id do campo

		var id=id.substr(23, id.length-23);
		var value=objForm[x].value		// quantidade máxima
				
		if (required) {
			if (value.length==0) {				
				alert("Campo '"+ id.toUpperCase() +"' não pode ficar em branco !");
				objForm[x].focus();
				return false;
				}
				
			// tipo comuns
			if ((id.indexOf('dat', 0)!=-1) && (!checkData(objForm[x].id))) return false;

			if ((id.indexOf('email', 0)!=-1) && (!checkEmail(objForm[x].id))) return false;
			
			if ((id.indexOf('cpf', 0)!=-1 || id.indexOf('cnpj', 0)!=-1) && !checkcnpj(objForm[x].id))
				return false;
			}
		}

	objForm.process.value=true;
	return true;
	}




// função para formatar CEP
function formataNumero(e, id)	{
	
	var code;
	if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;

	var character = String.fromCharCode(code);

	if(code==8)
		{}
	else	{
		if(code > 47 && code < 58) {
			/*
			var conteudo;
			conteudo = document.getElementById(id).value;
			len=conteudo.length;
			if(len==5) {
				conteudo = conteudo + "-";
				document.getElementById(id).value = conteudo;
				}
			*/
			}
		else {
			event.keyCode = 0;
			}
		}
	}





// função para formatar CEP
function formataCEP(e, id)	{
	var code;
	if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;

	var character = String.fromCharCode(code);

	if(code==8)
		{}
	else	{
		if(code > 47 && code < 58) {
			//-------------
			var conteudo;
			conteudo = document.getElementById(id).value;
			len=conteudo.length;
			if(len==5) {
				conteudo = conteudo + "-";
				document.getElementById(id).value = conteudo;
				}
			}
		else {
			event.keyCode = 0;
			}
		}
	}



// função para formatar Data
function formataFone(e, id)	{
	
	var code;
	if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;

	var character = String.fromCharCode(code);

	if(code==8)
		{}
	else	{
		if(code > 47 && code < 58) {
			//-------------
			var conteudo;
			conteudo = document.getElementById(id).value;
			len=conteudo.length;
			if(conteudo.length==2) {
				conteudo = conteudo + " ";
				document.getElementById(id).value = conteudo;
				}
			else if(conteudo.length==7) {
				conteudo = conteudo + "-";
				document.getElementById(id).value = conteudo; 
				}
			}
		else {
			event.keyCode = 0;
			}
		}
	}

// função para formatar Data
function formataData(e, id)	{
	
	var code;
	if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;

	var character = String.fromCharCode(code);

	if(code==8)
		{}
	else	{
		if(code > 47 && code < 58) {
			//-------------
			var conteudo;
			conteudo = document.getElementById(id).value;
			len=conteudo.length;
			if(len==2 || len==5) {
				conteudo = conteudo + "/";
				document.getElementById(id).value = conteudo;
				}
			}
		else {
			event.keyCode = 0;
			}
		}
	}

/* ************************************
	Criado por : Flavio Theruo Kaminisse
	email: falecomjaps@gmail.com
	url: http://www.japs.etc.br
	Data Criao : 30/08/2005
	- Compativel com MSIE e Firefox.
**************************************/

//Funcao que valida a data
function checkData(idData) {
	var date = document.getElementById(idData).value;
	var array_data = new Array;
	var ExpReg = new RegExp("(0[1-9]|[12][0-9]|3[01])/(0[1-9]|1[012])/[12][0-9]{3}");
	//vetor que contem o dia o mes e o ano
	array_data = date.split("/");
	erro = false;
	//Valido se a data esta no formato dd/mm/yyyy e se o dia tem 2 digitos e esta entre 01 e 31
	//se o mes tem d2 digitos e esta entre 01 e 12 e o ano se tem 4 digitos e esta entre 1000 e 2999
	if ( date.search(ExpReg) == -1 )
		erro = true;
	//Valido os meses que nao tem 31 dias com execao de fevereiro
	else if ( ( ( array_data[1] == 4 ) || ( array_data[1] == 6 ) || ( array_data[1] == 9 ) || ( array_data[1] == 11 ) ) && ( array_data[0] > 30 ) )
		erro = true;
	//Valido o mes de fevereiro
	else if ( array_data[1] == 2 ) {
		//Valido ano que nao e bissexto
		if ( ( array_data[0] > 28 ) && ( ( array_data[2] % 4 ) != 0 ) )
			erro = true;
		//Valido ano bissexto
		if ( ( array_data[0] > 29 ) && ( ( array_data[2] % 4 ) == 0 ) )
			erro = true;
	}
	if ( erro ) {
		alert("A Data digitada é Invalida");
		document.getElementById(idData).focus();
		return false;
		}
	return true;
	}





/* **********************************
				CNPJ
************************************/

function formataCNPJ(e, id)	{
	
	var code;
	if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;

	var character = String.fromCharCode(code);

	if(code==8)
		{}
	else	{
		if(code > 47 && code < 58) {
			//-------------
			var conteudo;
			conteudo = document.getElementById(id).value;
			if(conteudo.length==2) {
				conteudo = conteudo + ".";
				document.getElementById(id).value = conteudo;
				}
			else if(conteudo.length==6) {
				conteudo = conteudo + ".";
				document.getElementById(id).value = conteudo; 
				}
			else if(conteudo.length==10) {
				conteudo = conteudo + "/";
				document.getElementById(id).value = conteudo;
				}

			else if(conteudo.length==15) {
				conteudo = conteudo + "-";
				document.getElementById(id).value = conteudo;
				}
			
			
			if(conteudo.length==18) {
				if (!checkcnpj(id)) {
					alert("O cnpj digitado não é válido!\nPor favor verifique se digitou corretamente.");
					return false;
					}
				else
					return true;
				}
			}
		else {
			event.keyCode = 0;
			}
		}
	}
	

/* **********************************
				CPF
************************************/

function formataCPF(e, id)	{
	
	var code;
	if (!e) var e = window.event;
	if (e.keyCode) code = e.keyCode;
	else if (e.which) code = e.which;

	var character = String.fromCharCode(code);

	if(code==8)
		{}
	else	{
		if(code > 47 && code < 58) {
			//-------------
			var conteudo;
			conteudo = document.getElementById(id).value;
			if(conteudo.length==3) {
				conteudo = conteudo + ".";
				document.getElementById(id).value = conteudo;
				}
			else if(conteudo.length==7) {
				conteudo = conteudo + ".";
				document.getElementById(id).value = conteudo; 
				}
			else if(conteudo.length==11) {
				conteudo = conteudo + "-";
				document.getElementById(id).value = conteudo;
				}


			if(conteudo.length==14) {
				if (!checkcnpj(id)) {
					alert("O CPF digitado não é válido!\nPor favor verifique se digitou corretamente.");
					return false;
					}
				else
					return true;
				}
			}
		else {
			event.keyCode = 0;
			}
		}
	}
	
	
function checkcnpj(id) {
	var cnpjId=document.getElementById(id)
	var source;
	source=cnpjId.value;
	var i, len;
	s = soNumeros(source);
	len=s.length-2;
	if ((len != 9) && (len != 12)) {
		alert("O CPF ou CNPJ digitado não está correto!");
		cnpjId.focus();
		return false;
		}

	var c = s.substr(0,len);
	var dv = s.substr(len,2);
	var d1 = 0;
	for (i = 0; i < len; i++) {
		if (len==9) d1 += c.charAt(i) * (10 - i);
		else d1 += c.charAt(11 - i) * (2 + (i % 8));
		}

	if (d1 == 0) {
		alert("O CPF ou CNPJ digitado não está correto!");
		cnpjId.focus();
		return false;
		}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1) {
		alert("O CPF ou CNPJ digitado não está correto!");
		cnpjId.focus();
		return false;
		}

	d1 *= 2;
	for (i = 0; i < len; i++) {
		if (len < 12) { d1 += c.charAt(i) * (11-i); }
		else { d1 += c.charAt(11 - i) * (2 + ((i + 1) % 8));}
		}

	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1) {
		alert("O CPF ou CNPJ digitado não está correto!");
		cnpjId.focus();
		return false;
		}	
	return true;
	}
	
	

function soNumeros(Str){
// Deixa so' os digitos no numero

	var Digitos = "0123456789";
	var temp = '';
	var digito = '';
	for (var i=0; i < Str.length; i++)	{
		digito = Str.charAt(i);
		if (Digitos.indexOf(digito) >= 0)	{
			temp += digito; }
		}
	return temp;
	}

// validação de emails
function checkEmail(id) {
	var invalid;
	invalid = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
	
	objform=document.getElementById(id);

	if (objform.value == '')	{
		alert('Campo email não pode ficar me branco!');
		objform.focus();
		return false;
		}
	if (invalid.test(objform.value) == false) {
		objform.style.color = "red";
		alert("Favor informar corretamente seu e-mail.");
		objform.focus();
		return (false); }

	return true;
	}