/**
* @author Márcio d'Ávila
* @version 1.01, 2004
*
* PROTÓTIPOS:
* método String.lpad(int pSize, char pCharPad)
* método String.trim()
*
* String unformatNumber(String pNum)
* String formatCpfCnpj(String pCpfCnpj, boolean pUseSepar, boolean pIsCnpj)
* String dvCpfCnpj(String pEfetivo, boolean pIsCnpj)
* boolean isCpf(String pCpf)
* boolean isCnpj(String pCnpj)
* boolean isCpfCnpj(String pCpfCnpj)
*/
NUM_DIGITOS_CPF = 11;
NUM_DIGITOS_CNPJ = 14;
NUM_DGT_CNPJ_BASE = 8;
/**
* Adiciona método lpad() à classe String.
* Preenche a String à esquerda com o caractere fornecido,
* até que ela atinja o tamanho especificado.
*/
String.prototype.lpad = function(pSize, pCharPad)
{
var str = this;
var dif = pSize - str.length;
var ch = String(pCharPad).charAt(0);
for (; dif>0; dif--) str = ch + str;
return (str);
} //String.lpad
/**
* Adiciona método trim() à classe String.
* Elimina brancos no início e fim da String.
*/
String.prototype.trim = function()
{
return this.replace(/^\s*/, "").replace(/\s*$/, "");
} //String.trim
/**
* Elimina caracteres de formatação e zeros à esquerda da string
* de número fornecida.
* @param String pNum
* String de número fornecida para ser desformatada.
* @return String de número desformatada.
*/
function unformatNumber(pNum)
{
return String(pNum).replace(/\D/g, "").replace(/^0+/, "");
} //unformatNumber
/**
* Formata a string fornecida como CNPJ ou CPF, adicionando zeros
* à esquerda se necessário e caracteres separadores, conforme solicitado.
* @param String pCpfCnpj
* String fornecida para ser formatada.
* @param boolean pUseSepar
* Indica se devem ser usados caracteres separadores (. - /).
* @param boolean pIsCnpj
* Indica se a string fornecida é um CNPJ.
* Caso contrário, é CPF. Default = false (CPF).
* @return String de CPF ou CNPJ devidamente formatada.
*/
function formatCpfCnpj(pCpfCnpj, pUseSepar, pIsCnpj)
{
if (pIsCnpj==null) pIsCnpj = false;
if (pUseSepar==null) pUseSepar = true;
var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
var numero = unformatNumber(pCpfCnpj);
numero = numero.lpad(maxDigitos, '0');
if (!pUseSepar) return numero;
if (pIsCnpj)
{
reCnpj = /(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})$/;
numero = numero.replace(reCnpj, "$1.$2.$3/$4-$5");
}
else
{
reCpf = /(\d{3})(\d{3})(\d{3})(\d{2})$/;
numero = numero.replace(reCpf, "$1.$2.$3-$4");
}
return numero;
} //formatCpfCnpj
/**
* Calcula os 2 dígitos verificadores para o número-efetivo pEfetivo de
* CNPJ (12 dígitos) ou CPF (9 dígitos) fornecido. pIsCnpj é booleano e
* informa se o número-efetivo fornecido é CNPJ (default = false).
* @param String pEfetivo
* String do número-efetivo (SEM dígitos verificadores) de CNPJ ou CPF.
* @param boolean pIsCnpj
* Indica se a string fornecida é de um CNPJ.
* Caso contrário, é CPF. Default = false (CPF).
* @return String com os dois dígitos verificadores.
*/
function dvCpfCnpj(pEfetivo, pIsCnpj)
{
if (pIsCnpj==null) pIsCnpj = false;
var i, j, k, soma, dv;
var cicloPeso = pIsCnpj? NUM_DGT_CNPJ_BASE: NUM_DIGITOS_CPF;
var maxDigitos = pIsCnpj? NUM_DIGITOS_CNPJ: NUM_DIGITOS_CPF;
var calculado = formatCpfCnpj(pEfetivo, false, pIsCnpj);
calculado = calculado.substring(2, maxDigitos);
var result = "";
for (j = 1; j <= 2; j++)
{
k = 2;
soma = 0;
for (i = calculado.length-1; i >= 0; i--)
{
soma += (calculado.charAt(i) - '0') * k;
k = (k-1) % cicloPeso + 2;
}
dv = 11 - soma % 11;
if (dv > 9) dv = 0;
calculado += dv;
result += dv
}
return result;
} //dvCpfCnpj
/**
* Testa se a String pCpf fornecida é um CPF válido.
* Qualquer formatação que não seja algarismos é desconsiderada.
* @param String pCpf
* String fornecida para ser testada.
* @return true se a String fornecida for um CPF válido.
*/
function isCpf(pCpf)
{
var numero = formatCpfCnpj(pCpf, false, false);
var base = numero.substring(0, numero.length - 2);
var digitos = dvCpfCnpj(base, false);
var algUnico, i;
// Valida dígitos verificadores
if (numero != base + digitos) return false;
/* Não serão considerados válidos os seguintes CPF:
* 000.000.000-00, 111.111.111-11, 222.222.222-22, 333.333.333-33, 444.444.444-44,
* 555.555.555-55, 666.666.666-66, 777.777.777-77, 888.888.888-88, 999.999.999-99.
*/
algUnico = true;
for (i=1; itrue se a String fornecida for um CNPJ válido.
*/
function isCnpj(pCnpj)
{
var numero = formatCpfCnpj(pCnpj, false, true);
var base = numero.substring(0, NUM_DGT_CNPJ_BASE);
var ordem = numero.substring(NUM_DGT_CNPJ_BASE, 12);
var digitos = dvCpfCnpj(base + ordem, true);
var algUnico;
// Valida dígitos verificadores
if (numero != base + ordem + digitos) return false;
/* Não serão considerados válidos os CNPJ com os seguintes números BÁSICOS:
* 11.111.111, 22.222.222, 33.333.333, 44.444.444, 55.555.555,
* 66.666.666, 77.777.777, 88.888.888, 99.999.999.
*/
algUnico = numero.charAt(0) != '0';
for (i=1; itrue se a String fornecida for um CPF ou CNPJ válido.
*/
function isCpfCnpj(pCpfCnpj)
{
var numero = pCpfCnpj.replace(/\D/g, "");
if (numero.length > NUM_DIGITOS_CPF)
return isCnpj(pCpfCnpj)
else
return isCpf(pCpfCnpj);
} //isCpfCnpj
/*
Função LIMP: Remove da string caracteres de auxilío, tipo ".", "/" entre outros, que auxiliam a visualização e digitação dos dados pelos humanos. Acho deprimente, quando entro num site e recebo uma respota do tipo "valor inválido", porque coloquei um "-" no número do CEP, por exemplo.
Função isNUMB: Verificar se contem apenas numeros
O CNPJ é testado em blocos, por isso, para um melhor aproveitamento e redução do código principal, subdividi o teste em duas partes:
VerifyCNPJ: Verifica o CNPJ, repassando os blocos para a outra função RealTestaCNPJ. Se algum dos blocos for inválido, a função retorna como valor inválido.
RealTestaCNPJ: Verifica os blocos de números do CNPJ.
*/
function testaCPF_CNPJ() {
cpf_cnpj = document.form.CPF_CNPJ.value;
if (cpf_cnpj.length == 11) //cpf
{
if (!isCpf(cpf_cnpj))
{
return false;
}
}
else if (cpf_cnpj.length == 15) //cnpj
{
if (!validarCNPJ(cpf_cnpj))
{
return false;
}
}
else {
return false;
}
return true;
}
function validarCNPJ(CNPJ) {
CNPJ = LIMP(CNPJ);
if(isNUMB(CNPJ) != 1) {
return false;
} else {
if(CNPJ == 0) {
return false;
} else {
g=CNPJ.length-2;
if(RealTestaCNPJ(CNPJ,g) == 1) {
g=CNPJ.length-1;
if(RealTestaCNPJ(CNPJ,g) == 1) {
return true;
} else {
return false;
}
} else {
return false;
}
}
}
}
/*Checa o email*/
function isMail(string) {
var reg = new RegExp('^([\.a-zA-Z0-9_-]+)@([\.a-zA-Z0-9_-]){1,}[\.]{1,1}[a-zA-Z]{2,3}$');
if (!reg.test(string)) return false;
return true;
}
/*Fim Checa o email*/
/*Tira os espaços em branco*/
function trim(sString)
{
while (sString.substring(0,1) == ' ') {
sString = sString.substring(1, sString.length);
}
while (sString.substring(sString.length-1, sString.length) == ' ') {
sString = sString.substring(0,sString.length-1);
}
return sString;
}
/*Fim Tira os espaços em branco*/
/* Pesquisa do neoCast */
function neoCast_Search(){
var section = document.getElementById('section').value;
ajax('esColuna1','neocast/list.php?castSearchInput='+document.getElementById('castSearchInput').value+'§ion='+section,null);
}
/* Fim Pesquisa do neoCast */
/*Pesquisa do neoCast Berçario Virtual*/
function neoCast_SearchByKeyCodeMessages(KeyCode){
var section = document.getElementById('section').value;
if (KeyCode == 13 && section > 0) {
//event.keyCode = null;
ajax('esColuna1','../neocast/bercario.php?pagina=h_galeria&castSearchInput='+document.getElementById('castSearchInput').value+'§ion='+section,null);
}
}
/*Fim Pesquisa do neoCast Berçario Virtual*/
/*Combo de paginação do neoCast*/
function neoCast_ChPage(comboSelect){
var section = document.getElementById('section').value;
var search = document.getElementById('castSearchInput').value;
var newPage = comboSelect[comboSelect.selectedIndex].value;
ajax('esColuna1','../neocast/list.php?section='+section+'&page='+newPage+'&castSearchInput='+search,null);
}
/*Fim Combo de paginação do neoCast*/
/*Combo de paginação do neoCast*/
function neoCastBercario_ChPage(comboSelect){
var section = document.getElementById('section').value;
var search = document.getElementById('castSearchInput').value;
var newPage = comboSelect[comboSelect.selectedIndex].value;
ajax('esColuna1','../neocast/bercario.php?section='+section+'&page='+newPage+'&castSearchInput='+search,null);
}
/*Fim Combo de paginação do neoCast*/
/*Validação do formulário de contato*/
function checkFormContato(){
form = document.frFale;
if(trim(form.NOME.value) == '') {
alert('Informe o nome');
form.NOME.focus();
return false;
}
if(!isMail(trim(form.EMAIL.value))) {
alert('Informe o email');
form.EMAIL.focus();
return false;
}
if (document.getElementById("ESCOLHA").value == 3) {
form.action = 'trabalharConosco.php';
}
else {
form.action = 'neoMailer/action.php';
}
form.submit();
return true;
}
/*Fim Validação do formulário de contato*/
/*Cadastra-se newsLetter*/
function openSubscriberWindow() {
var obj = document.getElementById('newsletter');
var regex = new RegExp('^([\.a-zA-Z0-9_-]+)@([\.a-zA-Z0-9_-]){1,}[\.]{1,1}[a-zA-Z]{2,3}$');
if(!regex.test(obj.value)) {
alert('Endereço de email inválido!');
return false;
}
window.open('/neocast/subscriber.php?view=$view&subscriberMail='+obj.value, '', 'width=500, height=400, scrollbars=yes, resizable:no, scroll:no, location:no');
obj.value = '';
}
/*Fim Cadastra-se newsLetter*/
/*Abre popUp*/
function popUp (x, y) {
var t = window.open ('' , 'window', 'width=' + x + ',height=' + y + ',scrollbars=yes');
t.focus();
}
/*Fim Abre popUp*/
/* Função de controle do Menu */
function controlaMenu(nomeDiv) {
menuPrincipal = document.getElementById(nomeDiv);
menuPrincipal.className = menuPrincipal.className == 'esconde' ? 'mostra' : 'esconde';
}
/* Fim da Função de controle do Menu */
function irPara(comboSelect) {
var newPage = comboSelect[comboSelect.selectedIndex].value;
ajaxSendRequest('esColuna1','guiaMedico/showGuiaMedico.php?page=' + newPage,document.getElementById('frGuia'));
}
function irParaFarmacia(comboSelect) {
var newPage = comboSelect[comboSelect.selectedIndex].value;
ajaxSendRequest('esColuna1','/guiaMedico/showFarmacia.php?page=' + newPage,document.getElementById('frPrecos'));
}
function setSelectGuia(opcao) {
//console.debug('estou aqui');
comboSelect = document.getElementById('frGuia');
comboSelect.selectedIndex = opcao;
//console.debug(comboSelect.selectedIndex);
}
/*Validação do formulário de mensagens*/
function checkFormMessages(){
form = document.frmsg;
if(trim(form.pessoa.value) == '') {
alert('Informe o nome');
form.pessoa.focus();
return false;
}
/*
if(!isMail(trim(form.email.value))) {
alert('Informe o email');
form.email.focus();
return false;
}
*/
if(trim(form.texto.value) == '') {
alert('Informe a mensagem');
form.texto.focus();
return false;
}
return true;
}
function abre_janela(txtURL) {
window.open(txtURL, 'nomes', 'toolbar=no,location=no,directories=no,status=yes,menubar=no,scrollbars=yes,resizable=no,width=500, height=350');
}
/*Pesquisa Nome Bercario*/
function searchNameBerc(){
var texto = document.getElementById('nome').value;
ajax('esColuna1','../neocast/bercario_nomes.php?busca='+texto,null);
if (texto != ''){
var titulo = "Sugestões e significados de nomes - [" + texto + "]";
Modalbox.show(titulo,'../neocast/readName.php?letra='+texto,{width: 650, height:550});
} else {
alert('O campo de busca está vazio.')
}
}
/*Fim Pesquisa Nome Bercario*/
/*Fim Validação do formulário de mensagens*/
/* Funcoes de autenticação de usuarios */
function JanelaMsg(pURL,pLargura,pAltura)
{
var pos = pURL.indexOf(".");
var janela = open(pURL,pURL.substring(0,pos),"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width=640,height=480");
//janela.moveTo ( 220, 100 );
janela.moveTo ( 0, 0 );
/* self.open(pURL,pURL.substring(0,pos),"toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0,width=640,height=480"); */
}
/* Fim das Funcoes de autenticação de usuarios */
/* Função que esconde o banner na capa */
function esconderBanner() {
if (document.getElementById('bannerD'))
document.getElementById('bannerD').className = 'esconde';
if (document.getElementById('bannerR'))
document.getElementById('bannerR').className = 'esconde';
}
/* Fim da Função que esconde o banner na capa */
/* Função que esconde o banner na capa */
function esconderPromocao() {
if (document.getElementById('cxPromo'))
document.getElementById('cxPromo').className = 'esconde';
}
/* Fim da Função que esconde o banner na capa */
/* Função que grava log de vizualização do neoBanner */
function logView(imgId,area,logPage){
document.getElementById('neoBannerHiddenFrame_'+area).src = logPage + '?logView=TRUE&bannerId='+imgId+'&area='+area;
}
/* Fim da Função que grava log de vizualização do neoBanner */
/* Função que lista os arquivos para uma determinada categoria escolhida */
function neoDownload_ChPage(){
url = "neodownload/listaArquivos.php?category=" + document.getElementById('category').value;
ajaxSendRequest('neoDownload_listaArquivos', url, null);
}
/* Fim da Função que lista os arquivos para uma determinada categoria escolhida */
/*Validação do formulário de contato*/
function checkFormFaleConosco(){
form = document.getElementById('frContato');
if(trim(form.NOME.value) == '') {
alert('Informe o nome');
form.NOME.focus();
return false;
}
if(!isMail(trim(form.EMAIL.value))) {
alert('Informe o email');
form.EMAIL.focus();
return false;
}
form.submit();
return true;
}
/*Fim Validação do formulário de contato*/
/*Validação do formulário de curriculo*/
function checkFormCur(){
form = document.getElementById('frCurriculo');
if(trim(form.NOME.value) == '') {
alert('Informe o nome');
form.NOME.focus();
return false;
}
if(!isMail(trim(form.EMAIL.value))) {
alert('Informe o email');
form.EMAIL.focus();
return false;
}
if(trim(form.arquivo.value) == '') {
alert('Informe o arquivo');
form.curriculo.focus();
return false;
}
form.submit();
return true;
}
/*Fim Validação do formulário de curriculo*/
/*Validação do formulário de IR*/
function checkFormIR(){
form = document.getElementById('frIR');
if(trim(form.NOME.value) == '') {
alert('Informe o nome');
form.NOME.focus();
return false;
}
if(trim(form.CARTAO.value) == '') {
alert('Informe o cartao');
form.CARTAO.focus();
return false;
}
if(trim(form.CPF.value) == '') {
alert('Informe o CPF');
form.CPF.focus();
return false;
}
if (!isCpf(form.CPF.value)) {
alert('CPF inválido');
form.CPF.focus();
return false;
}
if(!isMail(trim(form.EMAIL.value))) {
alert('Informe o email');
form.EMAIL.focus();
return false;
}
form.submit();
return true;
}
/*Fim Validação do formulário de IR*/
/*Validação do formulário 2a via cartao*/
function checkFormIICartao(){
form = document.getElementById('fr2vCartao');
if(trim(form.CARTAO.value) == '') {
alert('Informe o cartao');
form.CARTAO.focus();
return false;
}
if(trim(form.NOME.value) == '') {
alert('Informe o nome');
form.NOME.focus();
return false;
}
if (form.PESSOA[0].checked == true) {
if (trim(form.CPF.value) == '') {
alert('Informe o CPF');
form.CPF.focus();
return false;
}
if (!isCpf(form.CPF.value)) {
alert('CPF inválido');
form.CPF.focus();
return false;
}
}
if (form.PESSOA[1].checked) {
if (trim(form.CNPJ.value) == '') {
alert('Informe o CNPJ');
form.CNPJ.focus();
return false;
}
if (!isCnpj(form.CNPJ.value)) {
alert('CNPJ inválido');
form.CNPJ.focus();
return false;
}
}
if(!isMail(trim(form.EMAIL.value))) {
alert('Informe o email');
form.EMAIL.focus();
return false;
}
form.submit();
return true;
}
/*Fim Validação do formulário 2a via cartao*/
/*Validação do formulário de Cadastro*/
function checkFormCadastro(){
form = document.getElementById('frACadastro');
if(trim(form.NOME.value) == '') {
alert('Informe o nome');
form.NOME.focus();
return false;
}
if(trim(form.CARTAO.value) == '') {
alert('Informe o cartao');
form.CARTAO.focus();
return false;
}
if(trim(form.CPF.value) == '') {
alert('Informe o CPF');
form.CPF.focus();
return false;
}
if (!isCpf(form.CPF.value)) {
alert('CPF inválido');
form.CPF.focus();
return false;
}
if(!isMail(trim(form.EMAIL.value))) {
alert('Informe o email');
form.EMAIL.focus();
return false;
}
if(trim(form.ENDERECO.value)== '') {
alert('Informe o endereco');
form.ENDERECO.focus();
return false;
}
if(trim(form.BAIRRO.value)== '') {
alert('Informe o bairro');
form.BAIRRO.focus();
return false;
}
if(trim(form.CIDADE.value)== '') {
alert('Informe o cidade');
form.CIDADE.focus();
return false;
}
if(trim(form.ESTADO.value)== '') {
alert('Informe o estado');
form.ESTADO.focus();
return false;
}
if(trim(form.CEP.value)== '') {
alert('Informe o cep');
form.CEP.focus();
return false;
}
form.submit();
return true;
}
/*Fim Validação do formulário de Cadastro*/
function OpenPrint(){
var indice = document.frGuia.especialidade.selectedIndex;
var especialidade2 = document.frGuia.especialidade.options[indice].text;
var opcao = document.getElementById('opcao').value;
var filtro = document.getElementById('filtro').value;
var especialidade = document.getElementById('especialidade').value;
var cidade = document.getElementById('cidade').value;
window.open("guiaMedico/showGuiaMedicoPrint.php?opcao="+opcao+"&especialidade="+especialidade+"&page=1&cidade="+cidade+"&filtro="+filtro+"&especialidade2="+especialidade2,"Imprimir");
}
function neophotoChPg(obj,cat){
// Link para a nova página
var newPage = '../neophoto/list_images.php?'+'category='+cat+'&page='+(obj[obj.selectedIndex].value);
ajax('esColuna1', newPage, null);
}
function guiaMedicoEsp(){
var idDiv = document.getElementById("opcao");
var escolha = idDiv.options[idDiv.selectedIndex].value;
if (escolha == 1)
ajaxSendRequest('divEsp','guiaMedico/ajaxEspecialidade.php');
else
ajaxSendRequest('divEsp','guiaMedico/ajaxServicos.php');
}