// JavaScript Document

// JavaScript Document

// 'phone'     : { mask : '(99) 9999-9999' }, //Telefone
// 'phone-us'  : { mask : '(999) 9999-9999' }, //Telefone dos USA
// 'cpf'       : { mask : '999.999.999-99' }, //CPF
// 'cnpj'      : { mask : '99.999.999/9999-99' }, //CNPJ
// 'date'      : { mask : '39/19/9999' }, //Data
// 'date-us'   : { mask : '19/39/9999' }, //Data dos USA
// 'cep'       : { mask : '99999-999' }, //CEP
// 'time'      : { mask : '29:69' }, //Hora
// 'cc'        : { mask : '9999 9999 9999 9999' }, //Cartão de Crédito
// 'integer'   : { mask : '999.999.999.999', type : 'reverse' }, //Número inteiro
// 'decimal'   : { mask : '99,999.999.999.999', type : 'reverse', defaultValue: '000' }, //Decimal
// 'decimal-us'    : { mask : '99.999,999,999,999', type : 'reverse', defaultValue: '000' }, //Decimal dos USA
// 'signed-decimal'    : { mask : '99,999.999.999.999', type : 'reverse', defaultValue : '+000' }, //Decimal Positivo
// 'signed-decimal-us' : { mask : '99,999.999.999.999', type : 'reverse', defaultValue : '+000' } //Decimal dos USA


/* Bloqueia digitação de acentos */
/* onKeyUp="return bloqueiaacentos(this,event);" */

function bloqueiaacentos(obj,e) 
{
	var campo = eval(obj);
	var tecla=(window.event)?event.keyCode:e.which;  
	var ok = true;
	var nova = "";
	
	if (tecla==8) { return true; } /* delete */
	if (tecla==9) { return true; } /* backspace */
	if (tecla==13) { return true; }	/* enter */	
	if (tecla==27) { return true; }	/* esc */
	if (tecla==37) { return true; } /* seta esquerda */		
	if (tecla==39) { return true; } /* seta direita */			
	if (tecla==116) { return true; } /* shift */				
	
	if (tecla==16) { return false; } /* circunflexo */
	if (tecla==219) { return false; } /* grave */		
	if (tecla==97) { return false; } /* plica */		
	
	if (ok) {
		/* Agora verifica a ultima letra para ver se nao foi acentuada */
		letra = campo.value.substr(campo.value.length-1,1);
		codigo = letra.charCodeAt(0);

		if (codigo==224 || codigo==225 || codigo==226 || codigo==227 || codigo==192 || codigo==193 || codigo==194) { nova="A"; }
		if (codigo==201 || codigo==202 || codigo==200 || codigo==233 ) { nova="E"; }
		if (codigo==237 || codigo==236 || codigo==206 ) { nova="I"; }
		if (codigo==243 || codigo==242 || codigo==244 || codigo==245 ) { nova="O"; }
		if (codigo==250 || codigo==249 || codigo==251 || codigo==219 ) { nova="U"; }
		if (codigo==231 || codigo==199 ) { nova="C"; }		
		/* Substitui */
		if ( !nova=="") { campo.value = campo.value.substr(0,campo.value.length-1) + nova; } 
	}
	else {
		campo.value = campo.value.substr(0,campo.value.length-1);
	}
	campo.value = campo.value.toUpperCase();
	return true;	
}

//OnKeyUp="minuscula(this);"
function maiuscula(objeto) {
	campo = eval(objeto);
	campo.value = campo.value.toUpperCase();	
}

function minuscula(objeto) {
	campo = eval(objeto);
	campo.value = campo.value.toLowerCase();	
}

function left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function virgula(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] + '00' : '.00';
	x2 = left(x2,3);
	return x1 + x2;
}




function SomenteNumero(e){
    var tecla=(window.event)?event.keyCode:e.which;   
    if((tecla>47 && tecla<58)) return true;
    else{
    	if (tecla==8 || tecla==0) return true; // delete
	else  return false;
    }
}



/*  ========================================= */
/*  ROTINAS PARA PEGAR DADOS ON-LINE  */
/*  ========================================= */


function moedatela(valor) {
	valor = formatCurrency(valor);
	valor = valor.replace(",","x");
	valor = valor.replace(".",",");
	valor = valor.replace("x",".");
	return valor;
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	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));
	return (((sign)?'':'-') + num + '.' + cents);
}
	


function moeda(campo, e) {
	var milSep = "";
	var decSep = ".";
	var sep = 0;
	var key = '';
	var i = j = 0;
	var len = len2 = 0;
	var strCheck = '0123456789';
	var aux = aux2 = '';
	var whichCode = (window.Event) ? e.which : e.keyCode;
	
	if (whichCode == 13) return true;  // Enter
	if (whichCode == 9) return true;  // tab
	if (whichCode == 44) return true; // ???
	if (e.keyCode == 9) return true; // tab
	if (e.shiftKey && whichCode == 9) return true;  // shift+tab
	if (whichCode == 8) return true;  // Delete
	key = String.fromCharCode(whichCode);  // Get key value from key code
	
	if (strCheck.indexOf(key) == -1) return false;  // Not a valid key
	len = campo.value.length;
	for(i = 0; i < len; i++)
		if ((campo.value.charAt(i) != '0') && (campo.value.charAt(i) != decSep)) break;
	aux = '';
	for(; i < len; i++)
		if (strCheck.indexOf(campo.value.charAt(i))!=-1) aux += campo.value.charAt(i);
		
	aux += key;
	len = aux.length;
	if (len == 0) campo.value = '';
	if (len == 1) campo.value = '0'+ decSep + '0' + aux;
	if (len == 2) campo.value = '0'+ decSep + aux;
	if (len > 2) {
	aux2 = '';
	for (j = 0, i = len - 3; i >= 0; i--) {
	  if (j == 3) {
		aux2 += milSep;
		j = 0;
	  }
	  aux2 += aux.charAt(i);
	  j++;
	}
	campo.value = '';
	len2 = aux2.length;
	for (i = len2 - 1; i >= 0; i--)
	campo.value += aux2.charAt(i);
	campo.value += decSep + aux.substr(len - 2, len);
	}
	return false;
}



/*  ========================================= */
/*  ROTINAS PARA PEGAR DADOS ON-LINE  */
/*  ========================================= */

function pegadadoscliente( valor ) {
	http.open("GET", "result.php?id=" + valor, true);
	http.onreadystatechange = handleHttpResponse;
	http.send(null);
}	

/*  Aqui manda as informações para a tela atual */
function handleHttpResponse() {
	if (http.readyState == 4) {		
		document.cadastro.dadoscliente.value = http.responseText.toString();
	}
}

function getHTTPObject() {
	var req;
	try {
		if (window.XMLHttpRequest) {
			req = new XMLHttpRequest();
			if (req.readyState == null) {
				req.readyState = 1;
				req.addEventListener("load", function () {
					req.readyState = 4;
					if (typeof req.onReadyStateChange == "function")
						req.onReadyStateChange();
				}, false);
			}
		  return req;
		}
		
		if (window.ActiveXObject) {
			var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
		   
			for (var i = 0; i < prefixes.length; i++) {
				try {
					req = new ActiveXObject(prefixes[i] + ".XmlHttp");
					return req;
				} catch (ex) {};
			}
		}
	} 
	catch (ex) {}
		alert("XmlHttp Objects not supported by client browser");
}
var http = getHTTPObject();



/*  Aqui manda as informações para a tela atual - versao original */
function handleHttpResponseOriginal() {

	if (http.readyState == 4) {
		document.cadastro.dadoscliente.value = "";
		results = http.responseText.split(",");
		for( i = 0; i < results.length; i++ ) {
			string = results[i].split( "|" );
			document.cadastro.dadoscliente.value = document.cadastro.dadoscliente.value + " " + new Option( string[0], string[1] );
		}
	}
}



/*  ========================================= */
/*  MASCARAS */
/* tirado de http://forum.imasters.com.br/topic/222133-mascara-e-validacao-de-cpfcnpjcepdatatelefone */ 
/* CEP <input type="text" name="cep" onKeyPress="MascaraCep(form1.cep);" maxlength="10" onBlur="ValidaCep(form1.cep)">  */
/* DATA: <input type="text" name="data" onKeyPress="MascaraData(form1.data);" maxlength="10" onBlur= "ValidaData(form1.data);"> */
/* TEL: <input type="text" name="tel" onKeyPress="MascaraTelefone(form1.tel);" maxlength="14"  onBlur="ValidaTelefone(form1.tel);"> */
/* CPF: <input type="text" name="cpf" onBlur="ValidarCPF(form1.cpf);" onKeyPress="MascaraCPF(form1.cpf);" maxlength="14">  */
/* CNPJ: <input type="text" name="cnpj" onKeyPress="MascaraCNPJ(form1.cnpj);" maxlength="18" onBlur="ValidarCNPJ(form1.cnpj);"> */
/*  ========================================= */


//adiciona mascara de cnpj
function MascaraCNPJ(cnpj){
        if(mascaraInteiro(cnpj)==false){
                event.returnValue = false;
        }       
        return formataCampo(cnpj, '00.000.000/0000-00', event);
}

//adiciona mascara de cep
function MascaraCep(cep){
                if(mascaraInteiro(cep)==false){
                event.returnValue = false;
        }       
        return formataCampo(cep, '00.000-000', event);
}

//adiciona mascara de data
function MascaraData(data){
        if(mascaraInteiro(data)==false){
                event.returnValue = false;
        }       
        return formataCampo(data, '00/00/0000', event);
}

//adiciona mascara ao telefone
function MascaraTelefone(tel){  
        if(mascaraInteiro(tel)==false){
                event.returnValue = false;
        }       
        return formataCampo(tel, '(00) 0000-0000', event);
}

//adiciona mascara ao CPF
function MascaraCPF(cpf){
        if(mascaraInteiro(cpf)==false){
                event.returnValue = false;
        }       
        return formataCampo(cpf, '000.000.000-00', event);
}

//valida telefone
function ValidaTelefone(tel){
        exp = /\(\d{2}\)\ \d{4}\-\d{4}/
        if(!exp.test(tel.value))
                alert('Numero de Telefone Invalido!');
}

//valida CEP
function ValidaCep(cep){
        exp = /\d{2}\.\d{3}\-\d{3}/
        if(!exp.test(cep.value))
                alert('Numero de Cep Invalido!');               
}


function ValidaData(data) {
	var msg = "";
	var tam = data.length;
	if (tam != 10) { msg = "Data invalida! Digite no formato DD/MM/AAAA. ("+tam+")"; return msg }
	var dia = data.substr(0,2)
	var mes = data.substr (3,2)
	var ano = data.substr (6,4)	
	if (ano < 1980)	{ msg = "Data invalida! Anterior a 1980.";return msg; }
    if (ano > 2090)	{ msg = "Data invalida! Apos 2090."; return msg; }
	if (mes > 12)	{ msg = "Data invalida! Mes inexistente.";return msg; }
	if (mes < 01)	{ msg = "Data invalida! Mes invalido.";return msg; }

	switch (mes) {
	case '01':
		if  (dia <= 31) 
		return ("");
		break;
	case '02':
		if  (dia <= 29) 
		return ("");
		break;
	case '03':
		if  (dia <= 31) 
		return ("");
		break;
	case '04':
		if  (dia <= 30) 
		return ("");
		break;
	case '05':
		if  (dia <= 31) 
		return ("");
		break;
	case '06':
		if  (dia <= 30) 
		return ("");
		break;
	case '07':
		if  (dia <= 31) 
		return ("");
		break;
	case '08':
		if  (dia <= 31) 
		return ("");
		break;
	case '09':
		if  (dia <= 30) 
		return ("");
		break;
	case '10':
		if  (dia <= 31) 
		return ("");
		break;
	case '11':
		if  (dia <= 30) 
		return ("");
		break;
	case '12':
		if  (dia <= 31) 
		return ("");
		break;
	}
	msg = "Data invalida! Corrija o dia.";
	return msg;
}

function datavalida(cData,lCriticar) {
	var msg = ValidaData(cData.value);

	if (msg == "") { 
		return true; }
	else { 
		if (lCriticar) {
			cData.focus();
			cData.select();
			alert(msg);
		} 
		return false; 
	}
}

//valida o CPF digitado
function ValidarCPF(Objcpf){
        var cpf = Objcpf.value;
        exp = /\.|\-/g
        cpf = cpf.toString().replace( exp, "" ); 
        var digitoDigitado = eval(cpf.charAt(9)+cpf.charAt(10));
        var soma1=0, soma2=0;
        var vlr =11;
        
        for(i=0;i<9;i++){
                soma1+=eval(cpf.charAt(i)*(vlr-1));
                soma2+=eval(cpf.charAt(i)*vlr);
                vlr--;
        }       
        soma1 = (((soma1*10)%11)==10 ? 0:((soma1*10)%11));
        soma2=(((soma2+(2*soma1))*10)%11);
        
        var digitoGerado=(soma1*10)+soma2;
        if(digitoGerado!=digitoDigitado)        
                alert('CPF Invalido!');         
}

//valida numero inteiro com mascara
function mascaraInteiro(){
        if (event.keyCode < 48 || event.keyCode > 57){
                event.returnValue = false;
                return false;
        }
        return true;
}

//valida o CNPJ digitado
function ValidarCNPJ(ObjCnpj){
        var cnpj = ObjCnpj.value;
        var valida = new Array(6,5,4,3,2,9,8,7,6,5,4,3,2);
        var dig1= new Number;
        var dig2= new Number;
        
        exp = /\.|\-|\//g
        cnpj = cnpj.toString().replace( exp, "" ); 
        var digito = new Number(eval(cnpj.charAt(12)+cnpj.charAt(13)));
                
        for(i = 0; i<valida.length; i++){
                dig1 += (i>0? (cnpj.charAt(i-1)*valida[i]):0);  
                dig2 += cnpj.charAt(i)*valida[i];       
        }
        dig1 = (((dig1%11)<2)? 0:(11-(dig1%11)));
        dig2 = (((dig2%11)<2)? 0:(11-(dig2%11)));
        
        if(((dig1*10)+dig2) != digito)  
                alert('CNPJ Invalido!');
                
}

//formata de forma generica os campos
function formataCampo(campo, Mascara, evento) { 
	var boleanoMascara; 
	
	var Digitato = evento.keyCode;
	exp = /\-|\.|\/|\(|\)| /g
	campoSoNumeros = campo.value.toString().replace( exp, "" ); 

	var posicaoCampo = 0;    
	var NovoValorCampo="";
	var TamanhoMascara = campoSoNumeros.length;; 
	
	if (Digitato != 8) { // backspace 
			for(i=0; i<= TamanhoMascara; i++) { 
					boleanoMascara  = ((Mascara.charAt(i) == "-") || (Mascara.charAt(i) == ".")
															|| (Mascara.charAt(i) == "/")) 
					boleanoMascara  = boleanoMascara || ((Mascara.charAt(i) == "(") 
															|| (Mascara.charAt(i) == ")") || (Mascara.charAt(i) == " ")) 
					if (boleanoMascara) { 
							NovoValorCampo += Mascara.charAt(i); 
							  TamanhoMascara++;
					}else { 
							NovoValorCampo += campoSoNumeros.charAt(posicaoCampo); 
							posicaoCampo++; 
					  }              
			  }      
			campo.value = NovoValorCampo;
			  return true; 
	}else { 
			return true; 
	}
}






function editar () {
if (confirm("Deseja Realmente Editar")==true) {
	formulario.txtAcao.value = "Editar";
	formulario.submit();
	return true;}
else {
	return false;}
}

function gravar () {
if (confirm("Deseja realmente gravar?")==true) {
	formulario.txtAcao.value = "gravar";
	formulario.id.value = id;
	formulario.submit();
	return true;}
}

function excluir(id) {
	if (confirm("Deseja realmente excluir este registro?")==true) {
		formulario.id.value = id;
		formulario.acao.value = "excluir";
		formulario.submit();
		return true;}
}

 
function alterar(id) 
{
	formulario.id.value = id;
	formulario.acao.value = "alterar";
	formulario.submit();
}


function verifica(formulario) {
	if (formulario.nome.value == "") { alert("Preencha o campo nome !"); formulario.nome.focus(); return false; }
	if (formulario.email.value == "") { alert("Preencha o campo e-mail !"); formulario.email.focus(); return false; }
	if (formulario.email.value == "<digite seu e-mail>") { alert("Preencha o campo e-mail !"); formulario.email.focus(); return false; }
	return true;
	}

function foto(foto,largura,altura) {
	var x = 0;
	var y = 0;
	var Detalhes;
	x = ((screen.width - (largura+10)) / 2);
	y = ((screen.height - (altura+0)) / 2)-50;
	Detalhes = "scrollbars=no,width="+largura+",height="+altura+",screenX=" + x + ",screenY=" + y + ",left=" + x + ",top=" + y;
	
	var w = window.open("","Ampliacao",Detalhes);
	w.document.write("<html><head><title>"+foto+"</title></head>");
	w.document.write("<body bgcolor='#FFFFFF' topmargin='0' leftmargin='0'>");
	w.document.write("<img src='../"+foto+"'>")
	w.document.write("</body></html>");
	w.document.close();
}

function janela(url,largura,altura,scrollbars) {
	var x = 0;
	var y = 0;
	var Detalhes;
	x = ((screen.width - (largura+10)) / 2);
	y = ((screen.height - (altura+0)) / 2)-50;
	Detalhes = "scrollbars="+scrollbars+",width="+largura+",height="+altura+",screenX=" + x + ",screenY=" + y + ",left=" + x + ",top=" + y;
	
	var w = window.open(url,"Ampliacao",Detalhes);
}


