isIE=document.all;
isNN=!document.all&&document.getElementById;
isN4=document.layers;

/* 
    Nome Classe: Navegador
    Nota: Responsavel por metodos genericos do Navegador como (getScrollXY, viewport) e etc.
    Obs: Quando o metodo de manipulacao for generico do Navegador por favor colocar o metodo na classe
*/

var Calendario = {
    
    return_fnc: {
        
        text : '',
        obj: ''
    },
    
    is_date: function(obj){
         
        var re = /([0-9]{2})+\/+([0-9]{2})+\/+([0-9]{4})/
        
        if(re.test(obj.value)){
            
            var day = parseInt(obj.value.substring(0, 2), 10);
            var month = parseInt(obj.value.substring(3, 5), 10);
            var year = parseInt(obj.value.substring(6, 10), 10);
            
            if(day > 31 || day < 01){
            
                this.return_fnc.text = 'Dia Inválido';      
                return false;
            }
            
            if(month > 12){
            
                this.return_fnc.text = 'Mês Inválido';
                return false;
            }
        }
        else{
        
            this.return_fnc.text = 'Padrão Incorreto para Data';
            return false;
        }        
        return true;
    }    
};

var Formulario = {
   
    used_obj: '',
    
    tabToEnter: function(event, obj_to, select){
    
        var tecla = (window.event ? window.event.keyCode : event.which);
        
        if(tecla == 13) {        
            
            if(select) document.getElementById(obj_to).select();                  
            
            var obj = document.getElementById(obj_to);
            
            if((obj.nodeName == 'INPUT' && obj.type.toUpperCase() == 'BUTTON') || obj.nodeName == 'BUTTON'){

                if(obj.getAttribute('type').toUpperCase() == 'BUTTON'){
                    
                    // -- trigger da funcao caso utilize focus() direto entao executara o onclick do botao
                    
                    setTimeout(function(){document.getElementById(obj_to).focus()});
                }
                return false;
            }            
            document.getElementById(obj_to).focus();
        }
    }
}

var Navegador = {
    
    getScrollXY: function(){
    
        var scrOfX = ''; var scrOfY = '';
        
        if(typeof(window.pageYOffset) == 'number'){
        
            // Nestcape
            scrOfX = window.pageXOffset;
            scrOfY = window.pageYOffset;        
        }
        else if(document.body && (document.body.scrollLeft || document.body.scrollTop)){
        
            // DOM 
            scrOfX = document.body.scrollTop;
            scrOfY = document.body.scrollLeft;
        }
        else if(document.documentELement && (document.documentElement.scrollLeft || document.documentElement.scrollTop)){
        
            // IE6 modo padrao
            scrOfX = document.documentElement.scrollTop;
            scrOfY = document.documentElement.scrollLeft;
        }        
        return {X: scrOfX, Y: scrOfY};
    },

    viewportWidth: function() {
        
        return self.innerWidth || (document.documentElement.clientWidth || document.body.clientWidth);
    },

    viewportHeight: function() {
        
        return self.innerHeight || (document.documentElement.clientHeight || document.body.clientHeight);
    },

    viewportSize: function() {
    
        return { width: this.viewportWidth(), height: this.viewportHeight() };
    },

    createRange: function(obj, ini, fim){
        
        //-- IE < 9
        if(obj.createTextRange) {
            var selRange = obj.createTextRange();
            selRange.collapse(true);
            selRange.moveStart('character', ini);
            selRange.moveEnd('character', fim-ini);
            selRange.select();
            selRange.execCommand('cut');
        }    
        else if(obj.setSelectionRange){ //-- W3C
            obj.setSelectionRange(ini, fim);        
        }
        else if(obj.selectionStart){ //-- Outros
        
            obj.selectionStart = ini;
            obj.selectionEnd = fim;
        }
        
        obj.focus();    
    },

};

/* 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();
}

// 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){
	new Window(nomeJanela, {url: Link, className: "alphacube", top:topo, left:esquerda, width:largura, height:altura, title:titulo, maximizable: false, minimizable: false, destroyOnClose: true}).show();
    return Windows.getWindow(nomeJanela);
}

/*old: // 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();
    return win;
}*/

// 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;
}

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,event){
	/* SE APERTOU BACKSPACE, JÁ RETORNA OU DELETE */
	
	if(document.all) { /* Internet Explorer */
	    nTecla = event.keyCode;
	} else if(document.layers) { /* Nestcape */
	    nTecla = event.which;
	} else {
	    nTecla = event.which;
	    if (nTecla == 8) {
	        return true;
	    }
	}
	
	
	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;
	}

}

/*
 * Calcular quantidade de dias entre duas datas
 * Ex.: calcularDiasEntreDatas(dia/mes/Ano, dia/mes/Ano)
 */

function calcularDiasEntreDatas(d1,d2){
	var arrD1 = d1.split("/");
	var arrD2 = d2.split("/");
	
	var D1 = parseFloat(arrD1[0]);
	var M1 = parseFloat(arrD1[1]);
	var A1 = parseFloat(arrD1[2]);
	var D2 = parseFloat(arrD2[0]);
	var M2 = parseFloat(arrD2[1]);
	var A2 = parseFloat(arrD2[2]);
	if(D1 < 1 || D1 > 31 || D1=="" || D1==" " || D1=="0") { alert("Existe um erro no dia da 1a. data."); return; }
	if(D2 < 1 || D2 > 31 || D2=="" || D2==" " || D2=="0") { alert("Existe um erro no dia da 2a. data."); return; }
	if(M1 < 1 || M1 > 12 || M1=="" || M1==" " || M1=="0") { alert("Existe um erro no mes da 1a. data."); return; }
	if(M2 < 1 || M2 > 12 || M2=="" || M2==" " || M2=="0") { alert("Existe um erro no mes da 2a. data."); return; }
	if(A1 < 1582 || A1=="" || A1==" " || A1=="0") { alert("Existe um erro no ano da 1a. data."); return; }
	if(A2 < 1582 || A2=="" || A2==" " || A2=="0") { alert("Existe um erro no ano da 2a. data."); return; }
	var Data1 = new Date(A1,M1,D1);
	var Data2 = new Date(A2,M2,D2);
	dif = Data2.getTime()-Data1.getTime();
	dif /= 86400000;
	dif = parseInt(dif);
	return dif;
}

/* FIM DAS VALIDAÇOES DO CNS (CARTAO SUS)*/

function calculaIdade(data) {
	
	Todays = new Date();
    dataHoje = Todays.getDate() +"/"+ (Todays.getMonth() + 1) + "/" + Todays.getFullYear();
	
    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(){
function enter(ev,obj){
	var codTecla;
	 if(isIE) { /* Internet Explorer*/
        codTecla = event.keyCode; 
     }
      //else if(isNN) { /* Nestcape*/
	  //	 return ;
      //  codTecla = event.which;
      //};
	 else
		 if(ev)
			 codTecla = ev.keyCode;
		 else
			 return;
//	if (codTecla == 13 || codTecla == 3){
//		event.keyCode = 9;
//		/*alert('deu enter');*/
//		return;
//
//	}
	
	if (codTecla == 13 || codTecla == 3){
		if(isIE){
			event.keyCode = 9;
		}else{
			if(ev)
				eval(obj.onkeypress);
			else
				return;
		}
		return false;
	}
}

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;

}

function veriricaCaracterCampoUnidade(evt){
 	var key_code = 	evt.keyCode  ? evt.keyCode  :
					evt.charCode ? evt.charCode :
                    evt.which    ? evt.which    : void 0;

	
   	if(key_code == 99 || key_code == 45)
   		return false;
   	
   /*	alert(key_code); */
   	
    if((key_code >= 48)  &&  (key_code <= 57)){
    	caracter = String.fromCharCode(key_code);
		return true
     }      
	 // Habilita A - Z
    else if ((key_code >= 65)  &&  (key_code <= 90)){
        return true;
    }
    // HABILITA a - z
    else if ((key_code >= 97)  &&  (key_code <= 122)){
        return true;
    }
	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;
  };	
};

/* Criado em: 20111118 */

function ltrim(vString){
	
	var cont_pos = 0;
	
	var vStrLenth = parseInt(vString.length + 1, 10);
	
	for(var i = vStrLenth; i >=0; i--){
				
		if(vString.charAt(i) != " "){
			
			cont_pos = i
		}
	}
	
	var _vString = vString.substring(cont_pos, vStrLenth);
	
	return _vString;
}

function rtrim(vString){

	var cont_pos = 0;
	
	var vStrLenth = parseInt(vString.length, 10);
	
	for(var i = 0; i < vStrLenth; i++){
		
		if(vString.charAt(i) != " "){
			
			cont_pos++;
		}
	}
	
	var _vString = vString.substring(0, cont_pos);
	
	return _vString;
}

function trim(vString){
	
	var _vString = rtrim(ltrim(vString));
		
	// /* DEBUG */ alert("L:"+ltrim(vString).length+"\nR: "+rtrim(vString).length+"\nString:"+vString);
	
	return _vString;
}

function formataCampoDecimal(campooriginal,decimais){

if(campooriginal.value == ''){

    return false;
}
  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(){ top.window.moveTo(0,0);
	window.resizeTo(screen.availWidth,screen.availHeight);
	/*window.resizeTo(screen.width,screen.height)*/
	window.moveTo(screen.availTop,screen.availLeft);
	
	top.window.moveTo(0,0);
};

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 = "";
}

function novaChamadaPacientePainelEletronico(idPainel){
	$('infoGeral').className="aparece";
	xajax_novaChamadaPacientePainelEletronico(idPainel);
}
