﻿// JScript File
function AbreJanela(url, nome, largura, altura) {
    window.open(url, nome, 'resizable=no, width=' + largura + ', height=' + altura);
}

function openPopup(url, name, width, height, top, left, scrollbars, resizable, directories, location, menubar, status, titlebar, toolbar) {
}

function openPopup(url, name, features) {
    window.open(url, name, features);
}

function openPopupFull(url, name) {
    var largura = (screen.width - 50).toString();
    var altura = (screen.height - 100).toString();
    var feat = 'width=' + largura + ', height=' + altura + ', top=20, left=20, resizable=yes';
    window.open(url, name, feat);
}

function openReport(url, name) {
    var largura = (screen.width - 50).toString();
    var altura = (screen.height - 100).toString();
    var feat = 'width=' + largura + ', height=' + altura + ', top=20, left=20, resizable=yes, scrollbars=yes';
    window.open(url, name, feat);
}

/*
Width: Ajusta a largura da janela. Em pixels 
Height: Ajusta a altura da janela 
Top: Indica a posição da janela. Na verdade é a distancia em pixels que existe entre a borda superior da tela e a borda superior da janela. 
Left: Indica a posição da janela. Em concreto é a distancia em pixels que existe entre a borda esquerda da tela e a borda da janela. 
Scrollbars: Para definir de forma exata se saem ou não as barras de deslocamento. scrollbars=NO fazem com que nunca saiam. Scrollbars=YES faz com que sempre saiam (sempre em ie e somente se forem necessárias em NTS). 
Resizable: Establece se se pode ou não modificar o tamanho da janela. Com resizable=YES pode-se modificar o tamanho e com resizable=NO consegue-se um tamanho fixo. 
Directories: (barra diretorios) A partir de aqui se enumeram outra série de propriedades que serven para mostrar ou não um elemento da barra de navegação que tem os navegadores mais populares, como poderia ser a barra de menus ou a barra de estado. 
Quando colocamos o atributo=YES estamos forçando que esse elemento seja visto. Quando colocamos atributo=NO o que fazemos é evitar que esse elemento seja visto. 
Location: (barra endereços) 
Menubar: (barra de menus) 
Status: (barra de estado) 
Titlebar: (a barra do título) 
Toolbar: (barra de ferramentas) 
*/

function FechaJanela() {
    //window.close();
    self.close();
}

var formatoMoeda = function (value) {
    if (value == null) value = 0;
    var num = value.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);
}

var formatoPercentual = function (value) {
    var valor = formatoMoeda(value);
    if (valor == '0,00')
        valor = '';
    else
        valor = valor + '%';
    return valor;
}

var formatoData = function (value) {
    var dt;
    if (value != null && value != '')
        dt = new Date(value).format('d/m/y');
    else
        dt = '';
    return dt;
}

/*
function doEvent(pEvent) {
return pEvent.keyCode.toString();
}
*/

/*
function FormataCpf(campo, teclapres) {
var tecla = teclapres.keyCode;
var vr = new String(campo.value);
vr = vr.replace(".", "");
vr = vr.replace("/", "");
vr = vr.replace("-", "");
tam = vr.length + 1;
if (tecla != 14) {
if (tam == 4)
campo.value = vr.substr(0, 3) + '.';
if (tam == 7)
campo.value = vr.substr(0, 3) + '.' + vr.substr(3, 6) + '.';
if (tam == 11)
campo.value = vr.substr(0, 3) + '.' + vr.substr(3, 3) + '.' + vr.substr(7, 3) + '-' + vr.substr(11, 2);
}
}

// Javascript Document//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 ao telefone
function mascaraTelefone(tel) {
if (mascaraInteiro(tel) == false) {
event.returnValue = false;
}
return formataCampo(tel, '(00) 0000-0000', event);
}  //velamox bd 875 mg 1 comp 12/12 tylenol 750 



//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!');
}

//valida data
function validaData(data) {
exp = /\d{2}\/\d{2}\/\d{4}/
if (!exp.test(data.value))
alert('Data Invalida!');
}

//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 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 doSomething(e) {
    var code;
    if (!e)
        var e = window.event;
    if (e.keyCode)
        code = e.keyCode;
    else if (e.which)
        code = e.which;
    var character = String.fromCharCode(code);
    alert('Character was ' + character);
}

function mascaraMoeda(objTextBox, SeparadorMilesimo, SeparadorDecimal, e) {
    e.returnValue = false;
    var indice = 0;
    var sep = 0;
    var key = '';
    var i = j = 0;
    var len = len2 = 0;
    var strCheck = '0123456789';
    var aux = aux2 = '';
    var whichCode = (e.which) ? e.which : e.keyCode;
    if (whichCode == 13 || whichCode == 8) return true;
    key = String.fromCharCode(whichCode); // Valor para o código da Chave
    if (strCheck.indexOf(key) == -1) {
        return false; // Chave inválida     
    }
    len = objTextBox.getValue().length;
    for (i = 0; i < len; i++)
        if ((objTextBox.getValue().charAt(i) != '0') && (objTextBox.getValue().charAt(i) != SeparadorDecimal)) break;
    aux = '';
    for (; i < len; i++) {
        indice = strCheck.indexOf(objTextBox.getValue().charAt(i));
        if (indice != -1) {
            aux += objTextBox.getValue().charAt(i);
        }
    }
    aux += key;
    len = aux.length;
    if (len == 0) objTextBox.setValue('');
    if (len == 1) objTextBox.setValue('0' + SeparadorDecimal + '0' + aux);
    if (len == 2) objTextBox.setValue('0' + SeparadorDecimal + aux);
    if (len > 2) {
        aux2 = '';
        for (j = 0, i = len - 3; i >= 0; i--) {
            if (j == 3) {
                aux2 += SeparadorMilesimo;
                j = 0;
            }
            aux2 += aux.charAt(i);
            j++;
        }
        objTextBox.setValue('');
        len2 = aux2.length;
        for (i = len2 - 1; i >= 0; i--)
            objTextBox.setValue(objTextBox.getValue() + aux2.charAt(i));
        objTextBox.setValue(objTextBox.getValue() + SeparadorDecimal + aux.substr(len - 2, len));
    }
    return true;
}

function mascaraInteiro(evento) {
    var code = (evento.keyCode) ? evento.keyCode : evento.which;

    if (code < 48 || code > 57) {
        event.returnValue = false;
        return false;
    }
    return true;
}

//adiciona mascara de data
function mascaraData(campo, evento) {
    if (mascaraInteiro(evento) == false) {
        evento.returnValue = false;
    }
    return formataCampo(campo, '00/00/0000', evento);
}

//1.234.567.890-0

//adiciona mascara de pis
function mascaraPis(campo, evento) {
    if (mascaraInteiro(evento) == false) {
        evento.returnValue = false;
    }
    return formataCampo(campo, '0.000.000.000-0', evento);
}

//adiciona mascara de cpf
function mascaraCpf(campo, evento) {
    if (mascaraInteiro(evento) == false) {
        evento.returnValue = false;
    }
    return formataCampo(campo, '000.000.000-00', evento);
}

function formataCampo(campo, Mascara, evento) {
    var boleanoMascara;
    var digitato;

    if (!evento) evento = window.event;

    if (evento.keyCode) Digitato = evento.keyCode;
    else if (evento.which) Digitato = evento.which;

    exp = /\-|\.|\/|\(|\)| /g
    campoSoNumeros = campo.getRawValue().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.setRawValue(NovoValorCampo);
        return true;
    } else {
        return true;
    }
}




