isIE=document.all;
isNN=!document.all&&document.getElementById;
isN4=document.layers;


/* FUNÇÕES DO PROTOTYPE */
function abreJanelaModal(Link,Largura,Altura){
	new Window({url: Link, className: "alphacube",top:50, left: 300, width:Largura, height:Altura,maximizable:false,minimizable:false  }).show('modal');
	WindowCloseKey.init();
}
function abreJanela(Link,largura,altura,top,left){
	new Window({url: Link, className: "alphacube",top:top, left: left, width:largura, height:altura,maximizable:true,minimizable:true }).show();
	WindowCloseKey.init();
	
}
// FUNÇÃO QUE TOCA UM SOM PASSANDO UM EMBED COMO PARAMETRO: EX: <embed src="beep.wav" autostart=false hidden=true id="chime" name="chime">
function tocaSom(embed) { // SÓ FUNFA NO INTERNET EXPLORER
	if(isIE) { // Internet Explorer
		document.getElementById(embed).Play();
	}
	return;
}


// ESTA FUNÇÃO AQUI É MELHOR POIS ABRE A JANELA E SE OS DADOS NAO FORAM CARREGADOS AO FECHAR A JANELA ELA É DESTRUIDA ALEM DE OUTRAS MELHORIAS
function abreJanela2(Link,nomeJanela,largura,altura,topo,esquerda,titulo){
	var win = new Window(nomeJanela, {url: Link, className: "alphacube", top:topo, left:esquerda, width:largura, height:altura, title:titulo,
                          maximizable: false, minimizable: false});
  
    win.show();
	win.setDestroyOnClose();
}

function conta(contador) { // USADO PARA AVISAR O TEMPO QUE FALTA PARA EXPIRARA A SESSAO
	minutos = Math.floor(contador/60);
	segundos = Math.floor(contador-(minutos*60));
	
	if(minutos < 3)
		document.getElementById('tempo').innerHTML='&nbsp;&nbsp;A Sessão vai expirar em: ~'+minutos+':'+segundos;
	if(minutos == 0 && segundos == 0)
		document.getElementById('tempo').innerHTML='';
	
	if (contador != 0){
		contador = contador-1;
		setTimeout("conta("+contador+")", 1000);
	}
	
}
function sleep(milliseconds) {
	setTimeout(function(){
		var start = new Date().getTime();
		while ((new Date().getTime() - start) < milliseconds){
			// Do nothing
		}
	},0);
}

function janelaBuscaCep(cCep,cEndereco,cBairro){
	abreJanela('poupUp.php?modulo=buscaCep&campoCep='+cCep+'&campoEndereco='+cEndereco+'&campoBairro='+cBairro,700,450,30,30)
}

function checar_capsLock(ev,div) {
	var e = ev || window.event;
	codigo_tecla = e.keyCode?e.keyCode:e.which;
	tecla_shift = e.shiftKey?e.shiftKey:((codigo_tecla == 16)?true:false);
	if(((codigo_tecla >= 65 && codigo_tecla <= 90) && !tecla_shift) || ((codigo_tecla >= 97 && codigo_tecla <= 122) && tecla_shift)) {
		document.getElementById(div).className = 'msgOk';
	}
	else {
		document.getElementById(div).className = 'desaparece';
	}
}

/*******************NOVAS MASCARAS***************************/
function mascaraData(campoData,evt){
	// SE APERTOU BACKSPACE, JÁ RETORNA
	
	 if(isIE) { // Internet Explorer
        codTecla = evt.keyCode; }
      else if(isNN) { // Nestcape
		//return;
        codTecla = evt.which;
      };
	
	if(codTecla == 8 || codTecla == 46){
		return;
	}
	
	var data = campoData.value;
	if (data.length == 2){
		data = data + '/';
		campoData.value = data;
		return true;              
	}
	
	// SE FOI APAGADO ATÉ A POSICAO 3 TEM Q COLOCAR A BARRA PARA CONTINUAR DIGITANDO
	if(data.length == 3 && data.charAt(2) != '/' ){
		dia = data.charAt(0)+data.charAt(1);
		digito = data.charAt(2);
		data = dia+'/'+digito;
		//alert(data);
		
		campoData.value = data;
		return true;
	}
	// SE FOI APAGADO ATÉ A POSICAO 5TEM Q COLOCAR A BARRA PARA CONTINUAR DIGITANDO
	if(data.length == 6 && data.charAt(5) != '/' ){
		dia = data.charAt(0)+data.charAt(1);
		mes = data.charAt(3)+data.charAt(4);
		digito = data.charAt(5);
		data = dia+'/'+mes+'/'+digito;
		//alert(data);
		
		campoData.value = data;
		return true;
	}
	
	
	if (data.length == 5){
		data = data + '/';
		campoData.value = data;
		return true;
	}
	
}

function mascaraHora(campo,event){
	// SE APERTOU BACKSPACE, JÁ RETORNA
	if(event.keyCode == 8 || event.keyCode == 46){
		return;
	}
	
	var hora = campo.value;
	if (hora.length == 2){
		hora = hora + ':';
		campo.value = hora;
		return true;              
	}
	if(hora.length == 3 && hora.charAt(2) != ':' ){
		h = hora.charAt(0)+hora.charAt(1);
		digito = hora.charAt(2);
		hora = h+':'+digito;
			
		campo.value = hora;
		return true;
	}
}

function mascaraCnpj(campo){
	// SE APERTOU BACKSPACE, JÁ RETORNA
	if(event.keyCode == 8 || event.keyCode == 46){
		return;
	}
	
	var cnpj = campo.value;
	if (cnpj.length == 2){
		cnpj = cnpj + '.';
		campo.value = cnpj;
		return true;              
	}
	
	// SE FOI APAGADO ATÉ A POSICAO 3 TEM Q COLOCAR A BARRA PARA CONTINUAR DIGITANDO
	if(cnpj.length == 3 && cnpj.charAt(2) != '.' ){
		v1 = cnpj.charAt(0)+cnpj.charAt(1);
		digito = cnpj.charAt(2);
		cnpj = v1+'.'+digito;
		
		campo.value = cnpj;
		return true;
	}
	
	if (cnpj.length == 6){
		cnpj = cnpj + '.';
		campo.value = cnpj;
		return true;              
	}
	
	if(cnpj.length == 7 && cnpj.charAt(6) != '.' ){
		v1 = cnpj.charAt(0)+cnpj.charAt(1);
		v2 = cnpj.charAt(3)+cnpj.charAt(4)+cnpj.charAt(5);
		digito = cnpj.charAt(6);
		cnpj = v1+'.'+v2+'.'+digito;
		
		campo.value = cnpj;
		return true;
	}
	
	if (cnpj.length == 10){
		cnpj = cnpj + '/';
		campo.value = cnpj;
		return true;              
	}
	
	if(cnpj.length == 11 && cnpj.charAt(10) != '/' ){
		v1 = cnpj.charAt(0)+cnpj.charAt(1);
		v2 = cnpj.charAt(3)+cnpj.charAt(4)+cnpj.charAt(5);
		v3 = cnpj.charAt(7)+cnpj.charAt(8)+cnpj.charAt(9);
		digito = cnpj.charAt(6);
		cnpj = v1+'.'+v2+'.'+v3+'/'+digito;
		
		campo.value = cnpj;
		return true;
	}
	
	if (cnpj.length == 15){
		cnpj = cnpj + '-';
		campo.value = cnpj;
		return true;              
	}
	
	if(cnpj.length == 16 && cnpj.charAt(15) != '-' ){
		v1 = cnpj.charAt(0)+cnpj.charAt(1);
		v2 = cnpj.charAt(3)+cnpj.charAt(4)+cnpj.charAt(5);
		v3 = cnpj.charAt(7)+cnpj.charAt(8)+cnpj.charAt(9);
		v4 = cnpj.charAt(11)+cnpj.charAt(12);
		digito = cnpj.charAt(6);
		cnpj = v1+'.'+v2+'.'+v3+'/'+v4+'-'+digito;
		
		campo.value = cnpj;
		return true;
	}
	
	
	
}

function mascaraCep(campo){
	// SE APERTOU BACKSPACE, JÁ RETORNA OU DELETE
	if(event.keyCode == 8 || event.keyCode == 46){
		return;
	}
	
	var cep = campo.value;
	if (cep.length == 5){
		cep = cep + '-';
		campo.value = cep;
		return true;              
	}
}
function mascaraNumeroAih(campo){
	// SE APERTOU BACKSPACE, JÁ RETORNA OU DELETE
	
	 if(!isIE) { // Internet Explorer
        return false;
	}
  
	
	if(event.keyCode == 8 || event.keyCode == 46){
		return;
	}
	var numero = campo.value;
	if (numero.length == 12){
		numero = numero + '-';
		campo.value = numero;
		return true;              
	}
	
	// SE FOI APAGADO ATÉ A POSICAO 5TEM Q COLOCAR A BARRA PARA CONTINUAR DIGITANDO
	if(numero.length == 13 && numero.charAt(14) != '-' ){
		num = numero.substr(0,12);
		digito = numero.charAt(12); 
		numero = num+'-'+digito;
			
		campo.value = numero;
		return true;
	}
	
}



// FUNÇOES PARA CHECAR O CARTAO SUS: CNS = > USADO NO CADASTRO DE PACIENTE E NA GUIA PACIENTE DO MODULO AIH


// Validação CNS  - CARTAO SUS
function validaCNS(vlrCNS) {
	// Formulário que contem o campo CNS
	var soma = new Number;
    var resto = new Number;
	var dv = new Number;
    var pis = new String;
    var resultado = new String;
	var tamCNS = vlrCNS.length;
	if ((tamCNS) != 15) {
		//alert("Numero de CNS invalido");
		return false;
	}
	pis = vlrCNS.substring(0,11);
	soma = (((Number(pis.substring(0,1))) * 15) +
	        ((Number(pis.substring(1,2))) * 14) +
		    ((Number(pis.substring(2,3))) * 13) +
		    ((Number(pis.substring(3,4))) * 12) +
            ((Number(pis.substring(4,5))) * 11) +
            ((Number(pis.substring(5,6))) * 10) +
            ((Number(pis.substring(6,7))) * 9) +
            ((Number(pis.substring(7,8))) * 8) +
            ((Number(pis.substring(8,9))) * 7) +
            ((Number(pis.substring(9,10))) * 6) +
            ((Number(pis.substring(10,11))) * 5));
	resto = soma % 11;
    dv = 11 - resto;
	if (dv == 11) {
		dv = 0;
    }
	if (dv == 10) {
		soma = (((Number(pis.substring(0,1))) * 15) +
	            ((Number(pis.substring(1,2))) * 14) +
		    	((Number(pis.substring(2,3))) * 13) +
		    	((Number(pis.substring(3,4))) * 12) +
            	((Number(pis.substring(4,5))) * 11) +
            	((Number(pis.substring(5,6))) * 10) +
            	((Number(pis.substring(6,7))) * 9) +
            	((Number(pis.substring(7,8))) * 8) +
            	((Number(pis.substring(8,9))) * 7) +
            	((Number(pis.substring(9,10))) * 6) +
            	((Number(pis.substring(10,11))) * 5) + 2);
		resto = soma % 11;
        dv = 11 - resto;
        resultado = pis + "001" + String(dv);
	} else {
		resultado = pis + "000" + String(dv);
	}
	if (vlrCNS != resultado) {
		//alert("Numero de CNS invalido");
      return false;
    } else {
		//alert("Numero de CNS válido");
       return true;
	}
}
//VALIDA CNS PROVISÓRIO (CARTAO SUS)
function ValidaCNS_PROV(Obj)
{
    var pis;
    var resto;
    var dv;
    var soma;
    var resultado;
    var result;
    result = 0;

	pis = Obj.value.substring(0,15);

	if (pis == "")
	   {
	      return false
	   }

	if (Obj.value.substring(0,1) != "8")
	   {
              //alert("Atenção! Número Provisório inválido!");
              return false
  	   }

 	soma = (   (parseInt(pis.substring( 0, 1),10)) * 15)
			+ ((parseInt(pis.substring( 1, 2),10)) * 14)
			+ ((parseInt(pis.substring( 2, 3),10)) * 13)
			+ ((parseInt(pis.substring( 3, 4),10)) * 12)
			+ ((parseInt(pis.substring( 4, 5),10)) * 11)
			+ ((parseInt(pis.substring( 5, 6),10)) * 10)
			+ ((parseInt(pis.substring( 6, 7),10)) * 9)
			+ ((parseInt(pis.substring( 7, 8),10)) * 8)
			+ ((parseInt(pis.substring( 8, 9),10)) * 7)
			+ ((parseInt(pis.substring( 9,10),10)) * 6)
			+ ((parseInt(pis.substring(10,11),10)) * 5)
			+ ((parseInt(pis.substring(11,12),10)) * 4)
			+ ((parseInt(pis.substring(12,13),10)) * 3)
			+ ((parseInt(pis.substring(13,14),10)) * 2)
			+ ((parseInt(pis.substring(14,15),10)) * 1);

	resto = soma % 11;

	if (resto == 0)
	   {
	     return true;
	   }
	else
	   {
        // alert("Atenção! Número Provisório inválido!");
         return false;
	   }
}


function checarCampoCns(campo){
   var string = $(campo).value;
   var PrimeiroDigito =  string.substr(0,1);
	if(PrimeiroDigito=='8'){ // SE O PRIMEIRO DÍGITO FOR 8 ENTAO É CNS PROVISÓRIO
		if(ValidaCNS_PROV(campo))
			return true;
		else
			return false;
	}else{
		if(validaCNS(string))
			return true;
		else
			return false;
	}

}

// FIM DAS VALIDAÇOES DO CNS (CARTAO SUS)

function calculaIdade(data) {
	
	Todays = new Date();
    dataHoje = Todays.getDate() +"/"+ (Todays.getMonth() + 1) + "/" + Todays.getYear();
	
    x = data.split("/");
    h = dataHoje.split("/");
    if(x[0] > 31 || x[1] > 12 || x[2] > h[2]) {
        return 0;
    }

    anosProvisorio = h[2] - x[2];
           
    if(h[1] < x[1]) {
        anosProvisorio -= 1;
    }
    else if(h[1] == x[1]) {
        if(h[0] < x[0]) {
            anosProvisorio -= 1;
        }
    }

    return anosProvisorio;
}

function poupUp(modulo){
	 window.open(modulo, "JANELA", "height = 300, width = 400, scrollbars = yes, status=yes, location = no, toolbar = no, menubar=yes");
}

function openAlert(Msg,Largura,Altura) {
	Dialog.alert(Msg, 
    {windowParameters: {className: "alphacube", width:Largura, height:Altura}, okLabel: "Ok", 
    ok:function(win) {debug("validate alert panel"); return true;}, cancel:function(win) {debug("validate cancel panel"); return true;}});
}


function openInfoDialog(msg) {
 Dialog.info(msg, {width:200, height:50, top:10, showProgress: false}); 
timeout=3; setTimeout(infoTimeout, 500) } 
function infoTimeout() { timeout--; if (timeout >0) 
{setTimeout(infoTimeout, 500) } else Dialog.closeInfo() }



/* TERMINA AS FUNÇOES DO PROTOTYPE */ 

// FUNÇÃO QUE NÃO DEIXA O NAVEGADOR VOLTAR A PAGINA ANTERIOR AO CLICAR EM BACKSPACE, SE TIVER FORA DO FORM OU ESTIVER NUM CAMPO COMBOBOX...
function impedeBackSpace(){
	 if(isIE) { // Internet Explorer
        codTecla = event.keyCode; }
      else if(isNN) { // Nestcape
		 return ;
        codTecla = event.which;
      };
	if(event.keyCode == 8){
		event.keyCode = null;
		return;
	}
}

// ESTA FUNÇÃO SÓ MUDA DE CAMPO SE O CAMPO ESTIVER VALIDO
function enterVerifica(campo){ alert('teste');
	if ( event.keyCod == 9 || event.keyCode == 13 || event.keyCode == 3){
		
		if($(campo).id == 'nomePaciente'){ 
			if($(campo).value == ''){
				alert('Informe o nome do paciente');
				$(campo).focus();
				return;
			}
		}
	
		event.keyCode = 9;
		//alert('deu enter');
		return;

	}
	
}

function enter(){
	 if(isIE) { // Internet Explorer
        codTecla = event.keyCode; }
      else if(isNN) { // Nestcape
		 return ;
        codTecla = event.which;
      };
	if (codTecla == 13 || codTecla == 3){
		event.keyCode = 9;
		//alert('deu enter');
		return;

	}
}

function dataMaior(data1,data2){ // RETORNA TRUE SE A DATA 1 FOR MAIOR
	dia_1 = parseInt(data1.substr(0,2));;
	dia_2 = parseInt(data2.substr(0,2));

	mes_1 = parseInt(data1.substr(3,2));
	mes_2 = parseInt(data2.substr(3,2));

	ano_1 = parseInt(data1.substr(6,4));
	ano_2 = parseInt(data2.substr(6,4));


	dias_tot_1 = parseInt(dia_1 + mes_1*30 + ano_1*365);
	dias_tot_2 = parseInt(dia_2 + mes_2*30 + ano_2*365);

	if( dias_tot_1 > dias_tot_2 ) 
		return true;
	else
		return false;
}

// NAO USAR ESTA FUNCAO, USAR A OUTRA: validaData()
function validarData(data){
var expReg = /^(([0-2]\d|[3][0-1])\/([0]\d|[1][0-2])\/[1-2][0-9]\d{2})$/;
var msgErro = 'Formato inválido de data.';
if ((data.match(expReg)) && (data!='')){
var dia = data.substring(0,2);
var mes = data.substring(3,5);
var ano = data.substring(6,10);
if(mes==4 || mes==6 || mes==9 || mes==11 && dia > 30){

return false;
} else{
if(ano%4!=0 && mes==2 && dia>28){

return false;
} else{
if(ano%4==0 && mes==2 && dia>29){

return false;
} else{

return true;
}}}} else {

return false;
}}


function limpa_string(S){
	var Digitos = "0123456789";
	var temp = "";
	var digito = "";

	for (var i=0; i<S.length; i++)	{
		digito = S.charAt(i);
		if (Digitos.indexOf(digito)>=0)	{
			temp=temp+digito	}
	} //for
	return temp
}
function maiusculo(campo) {
    campo.value = campo.value.toUpperCase();
}
function validaCPF(s){
    s = limpa_string(s);
	var i;
	var c = s.substr(0,9);
	var dv = s.substr(9,2);
	var d1 = 0;
	for (i = 0; i < 9; i++){
		d1 += c.charAt(i)*(10-i);
	}	
    if (d1 == 0) return false;
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;	
	if ( String(dv.charAt(0)) != String(d1) ){
		return false;
	}
	d1 *= 2;
	for (i = 0; i < 9; i++){
		d1 += c.charAt(i)*(11-i);
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;

	if ( String(dv.charAt(1)) != String(d1)) {
		return false;
	}
    return true;
}

function ContaCheckBoxSelecionados(NomeFormulario){
   var Conta = 0;
   for (i=0;i<NomeFormulario.elements.length;i++)
      if(NomeFormulario.elements[i].type == "checkbox")
         if(NomeFormulario.elements[i].checked==1)
          Conta++;
   return Conta;
}

function MarcarCheckBox(NomeFormulario){
   // vamos ver se tem algum checkbox selecionado, se tiver desmarca todos
   // caso contrário marca todos
   if(ContaCheckBoxSelecionados(NomeFormulario)>0){
     for (i=0;i<NomeFormulario.elements.length;i++)
        if(NomeFormulario.elements[i].type == "checkbox")
          NomeFormulario.elements[i].checked=0;
   }else{
       for (i=0;i<NomeFormulario.elements.length;i++)
        if(NomeFormulario.elements[i].type == "checkbox")
          NomeFormulario.elements[i].checked=1;
   }

}


function validaEmail(emailStr) {
	var checkTLD=1;
	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);
	if (matchArray==null) {
		//alert("Email address seems incorrect (check @ and .'s)");
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];
	for (i=0; i<user.length; i++) {
	if (user.charCodeAt(i)>127) {
		//alert("Ths username contains invalid characters.");
		return false;
	   }
	}
	for (i=0; i<domain.length; i++) {
	if (domain.charCodeAt(i)>127) {
		//alert("Ths domain name contains invalid characters.");
		return false;
	   }
	}
	if (user.match(userPat)==null) {
		//alert("The username doesn't seem to be valid.");
		return false;
	}
	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
	for (var i=1;i<=4;i++) {
	if (IPArray[i]>255) {
	//	alert("Destination IP address is invalid!");
		return false;
	   }
	}
	return true;
	}
	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
	if (domArr[i].search(atomPat)==-1) {
		//alert("The domain name does not seem to be valid.");
		return false;
	   }
	}
	
	if (checkTLD && domArr[domArr.length-1].length!=2 && 
		domArr[domArr.length-1].search(knownDomsPat)==-1) {
			//alert("The address must end in a well-known domain or two letter " + "country.");
			return false;
		}
		if (len<2) {
			//alert("This address is missing a hostname!");
			return false;
		}
		return true;
};

// CONFERIR 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);
	}
}

// função que colocar zeros a esquerda ou a direita de um número:
// palavra:  A palavra ou número que vc quer preencher;
//casas:  O nro de digitos que vc quer;
//carac:  O caracter que vc quer usar para preencher
// dir:  É se vc quer preencher para a esquerda ('L') ou a direita ('R')
function colocarZero(palavra, casas, carac, dir) {
  //dir = 'R' => Right; dir = 'L' => Left;
  if(palavra == null || palavra == '') palavra = 0;
  var ret = '';
  var nro = casas - (palavra.length);
  for(var i = 0; i < nro; i++) ret += carac;
  if(dir == 'R')
    ret = palavra + ret;
  else if(dir == 'L')
    ret += palavra;
  return ret;
} 

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 validaCNPJ(cnpj){
      cnpj = LIMP(cnpj);
      var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;
      digitos_iguais = 1;
      if (cnpj.length < 14 && cnpj.length < 15)
            return false;
      for (i = 0; i < cnpj.length - 1; i++)
            if (cnpj.charAt(i) != cnpj.charAt(i + 1))
                  {
                  digitos_iguais = 0;
                  break;
                  }
      if (!digitos_iguais)
            {
            tamanho = cnpj.length - 2
            numeros = cnpj.substring(0,tamanho);
            digitos = cnpj.substring(tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
                  {
                  soma += numeros.charAt(tamanho - i) * pos--;
                  if (pos < 2)
                        pos = 9;
                  }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(0))
                  return false;
            tamanho = tamanho + 1;
            numeros = cnpj.substring(0,tamanho);
            soma = 0;
            pos = tamanho - 7;
            for (i = tamanho; i >= 1; i--)
                  {
                  soma += numeros.charAt(tamanho - i) * pos--;
                  if (pos < 2)
                        pos = 9;
                  }
            resultado = soma % 11 < 2 ? 0 : 11 - soma % 11;
            if (resultado != digitos.charAt(1))
                  return false;
            return true;
            }
      else
            return false;
      }


function PoupUp(Link,Nome,extras) {
  window.open(Link,Nome,extras);
};

// campo com somente números
function mascaraNumero(evt) {
    var key_code = evt.keyCode  ? evt.keyCode  :
                       evt.charCode ? evt.charCode :
                       evt.which    ? evt.which    : void 0;


        // Habilita teclas <DEL>, <TAB>, <ENTER>, <ESC> e <BACKSPACE>
        if (key_code == 8  ||  key_code == 9  ||  key_code == 13  ||  key_code == 27  ||  key_code == 46)
        {
            return true;
        }

        // Habilita teclas <HOME>, <END>, mais as quatros setas de navegação (cima, baixo, direta, esquerda)
        else if ((key_code >= 35)  &&  (key_code <= 40))
        {
            return true
        }

        // Habilita números de 0 a 9
        else if ((key_code >= 48)  &&  (key_code <= 57))
        {
            return true
        }

        return false;

}
function mascaraLetra(evt) {
    var key_code = evt.keyCode  ? evt.keyCode  :
                       evt.charCode ? evt.charCode :
                       evt.which    ? evt.which    : void 0;

		//alert(key_code);
		
        // Habilita teclas <DEL>, <TAB>, <ENTER>, <ESC> e <BACKSPACE>
        if (key_code == 8  ||  key_code == 9  ||  key_code == 13  ||  key_code == 27 || key_code == 32)
        {
            return true;
        }

        // Habilita teclas <HOME>, <END>, mais as quatros setas de navegação (cima, baixo, direta, esquerda)
        else if ((key_code >= 35)  &&  (key_code <= 40))
        {
            return true
        }

        // Habilita A - Z
        else if ((key_code >= 65)  &&  (key_code <= 90)) 
        {
            return true;
        }
		
		else if ((key_code >= 97)  &&  (key_code <= 122))  // HABILITA a - z
        {
            return true;
        }
		
		alert('Caracter Inválido');
        return false;

}
// campo com somente letras
function mascaraTexto(evt) {
    var key_code = evt.keyCode  ? evt.keyCode  :
                       evt.charCode ? evt.charCode :
                       evt.which    ? evt.which    : void 0;


        // Habilita teclas <DEL>, <TAB>, <ENTER>, <ESC> e <BACKSPACE>
        if (key_code == 8  ||  key_code == 9  ||  key_code == 13  ||  key_code == 27  ||  key_code == 46)
        {
            return true;
        }

        // Habilita teclas <HOME>, <END>, mais as quatros setas de navegação (cima, baixo, direta, esquerda)
        else if ((key_code >= 35)  &&  (key_code <= 40))
        {
            return true
        }

        // Desaabilita números de 0 a 9
        else if ((key_code >= 48)  &&  (key_code <= 57))
        {
            return false
        }

        return true;

}



/*
function mascaraCep(v){
    v=v.replace(/D/g,"")                //Remove tudo o que não é dígito
    v=v.replace(/^(\d{5})(\d)/,"$1-$2")
    return v
}*/

function mascara(objeto, sMask, evtKeyPress) {
    var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;

/*	
if(objeto.value.length == 10){
	objeto.value = '';
	return true;
}*/
	

if(document.all) { // Internet Explorer
    nTecla = evtKeyPress.keyCode;
} else if(document.layers) { // Nestcape
    nTecla = evtKeyPress.which;
} else {
    nTecla = evtKeyPress.which;
    if (nTecla == 8) {
        return true;
    }
}

    sValue = objeto.value;

    // Limpa todos os caracteres de formatação que
    // já estiverem no campo.
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( "-", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( ".", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( "/", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( ":", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( "(", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( ")", "" );
    sValue = sValue.toString().replace( " ", "" );
    sValue = sValue.toString().replace( " ", "" );
    fldLen = sValue.length;
    mskLen = sMask.length;

    i = 0;
    nCount = 0;
    sCod = "";
    mskLen = fldLen;

    while (i <= mskLen) {
      bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/") || (sMask.charAt(i) == ":"))
      bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))

      if (bolMask) {
        sCod += sMask.charAt(i);
        mskLen++; }
      else {
        sCod += sValue.charAt(nCount);
        nCount++;
      }

      i++;
    }

    objeto.value = sCod;

    if (nTecla != 8) { // backspace
      if (sMask.charAt(i-1) == "9") { // apenas números...
        return ((nTecla > 47) && (nTecla < 58)); }
      else { // qualquer caracter...
        return true;
      }
    }
    else {
      return true;
    }
  }







function MascaraMoeda(campo, evtKeyPress) {
	  //onKeyPress="return(mascaraMoeda(this,event))"
      var codTecla;
      if(isIE) { // Internet Explorer
        codTecla = evtKeyPress.keyCode; }
      else if(isNN) { // Nestcape
        codTecla = evtKeyPress.which;
      };

  if (codTecla != 8 && codTecla!=0) { // backspace
	if(((codTecla > 47) && (codTecla < 58)) || String.fromCharCode(codTecla)==',' || String.fromCharCode(codTecla)=='.'){
		if((String.fromCharCode(codTecla)==',' || String.fromCharCode(codTecla)=='.') && campo.value.indexOf(',')!=-1){
			return false;
		}else{
			if(campo.value.length==0 && (String.fromCharCode(codTecla)==',' || String.fromCharCode(codTecla)=='.')){
				return false;
			}else{
				if(campo.value.indexOf(',')!=-1){
						if(String.fromCharCode(codTecla)=='.' || String.fromCharCode(codTecla)==','){
							return false;
						}else{
							return true;
						};				
				}else{
					if(String.fromCharCode(codTecla)=='.'){
						campo.value+=',';
						return false;
					}else{
						return true;
					};
				};
			};
		};
	}else{
		return false;
	};
  } else {
	return true;
  };	
};

function formataCampoDecimal(campooriginal,decimais)
{
  var posicaoPontoDecimal;
  var campo = '';
  var resultado = '';
  var pos,sep,dec;

//Retira possiveis separadores de milhar
  for (pos=0; pos < campooriginal.value.length; pos ++)
  {
    if (campooriginal.value.charAt(pos)!='.')
        campo = campo + campooriginal.value.charAt(pos);
  }     

//Formata valor monetário com decimais
  posicaoPontoDecimal = campo.indexOf(',');
  if (posicaoPontoDecimal != -1)
   {
      sep = 0;
      for (pos=posicaoPontoDecimal-1;pos >= 0;pos--)
      {
        sep ++;
        if (sep > 3)
        {
           resultado = '.' + resultado;
           sep = 1;
        }

        resultado = campo.charAt(pos) + resultado;   
      }

      // Trata parte decimal
      if (parseInt(decimais) > 0 )
      {
         resultado = resultado + ',';
      
         pos=posicaoPontoDecimal+1;
         for (dec = 1;dec <= parseInt(decimais); dec++)
         {
           if (pos < campo.length)
           {
              resultado = resultado + campo.charAt(pos);
              pos++;
           }
           else
              resultado = resultado + '0';   
         }

      } // trata decimais
   }
   // Trata valor monetário sem decimais
   else
   {
      sep = 0;
      for (pos=campo.length-1;pos >= 0;pos--)
      {
        sep ++;
        if (sep > 3)
        {
           resultado = '.' + resultado;
           sep = 1;
        }
        resultado = campo.charAt(pos) + resultado;   
      }
      // Trata parte decimal
      if (parseInt(decimais) > 0 )
      {
         resultado = resultado + ',';
         for (dec = 1;dec <= parseInt(decimais); dec++)
         {
              resultado = resultado + '0';   
         }
      } // trata decimais
   }
   campooriginal.value = resultado;
}

function FormataMoeda(num) {
	num = num.toString().replace(/[^0-9,]/g,'');		
	num = num.toString().replace(',','.');
	if( parseInt(num) > 0 || parseFloat(num) > 0){
		parseFloat(num);
		if(isNaN(num)){
			num = 0;	
		}else{
			var x = new Number(num);
			num=x.toFixed(2);
		};
		numFormatado=num.toString();
		return numFormatado.replace(/[.]/g,',');
	}else{
		return '0,00';
	};
};


function MaximizarPoupUp(){
	window.resizeTo(screen.availWidth,screen.availHeight);
	window.moveTo(screen.availTop,screen.availLeft);
};

function validaData(data){
	DataRef=data.split('/',3);
	if(DataRef.length!=3){
		return false;
	};
	if( isNaN(DataRef[0]) || !( DataRef[0] >= 1 && DataRef[0] <= 31) ){
		return false;
	};
	if( isNaN(DataRef[1]) || !( DataRef[1] >=1 && DataRef[1] <= 12) ){
		return false;
	};
	if( isNaN(DataRef[2]) || String(DataRef[2]).length!=4 ){
		return false;
	};
	return true;
};

function tratarCampoLoginFocus(obj){
	if(obj.value == "Usuário:")
	{
		obj.value = "";
	}
}

function tratarCampoLoginBlur(obj){
	if(obj.value == ""){
		obj.value = "Usuário:";
	}
	document.getElementById("senha").value = "";
}