﻿var timerval = 2400; // segundos de sessão
var timerblink = true;
var timerblinkcalled = false;

function SessionTimer_Start(timerlocal) {
    timerval = timerval - 1;

    document.getElementById("timersession").innerHTML = timerval + " seg.";

    if (timerval <= 30 && !timerblinkcalled) setTimeout("SessionTimer_Blink()", 200);

    if (timerval <= 0)
        self.location = timerlocal;
    else
        setTimeout("SessionTimer_Start('" + timerlocal + "')", 1000); // milissegundos
}

function SessionTimer_Blink() {
    if (timerblink)
        document.getElementById("timersession").innerHTML = "<font color='#dddddd'><b>" + timerval + "</b> seg.</font>";
    else
        document.getElementById("timersession").innerHTML = "<font color='Red'><b>" + timerval + "</b> seg.</font>";

    timerblinkcalled = true;
    timerblink = !timerblink;
    setTimeout("SessionTimer_Blink()", 200);
}




function maxCaracteres(totalMax, txarea, restante) {
    total = totalMax;
    rest = document.getElementById(restante);

    tam = txarea.value.length;
    str = 0;
    str = str + tam;
    rest.innerHTML = total - str;

    if (tam > total) {
        aux = txarea.value;
        txarea.value = aux.substring(0, total);
        rest.innerHTML = 0;
    }
}



function rotateDivs(quant, idAtual, divPrefix, tempoEspera) {
    for (i = 1; i <= quant; i++) {
        var iId = divPrefix + i.toString();
        document.getElementById(iId).style.visibility = 'hidden';
        document.getElementById(iId).style.display = 'none';
    }

    if (idAtual > quant || idAtual <= 0) idAtual = 1;
    document.getElementById(divPrefix + idAtual.toString()).style.visibility = 'visible';
    document.getElementById(divPrefix + idAtual.toString()).style.display = '';
    idAtual += 1;

    setTimeout("rotateDivs(" + quant + ", " + idAtual + ", '" + divPrefix + "', " + tempoEspera + ")", tempoEspera * 1000);
}
 


function ApenasNumero(obj, ev){
	var x = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;
	if ( x<31 && x!=13 ) return true;
	if (x < 48 || x > 57) {
		return false;
	}
	return true;
}

function ApenasFone(obj, ev){
	var x = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;
	if ( x<31 && x!=13 ) return true;
	if(x!=32 && (x<40 || x>57)){
		return false;
	}
	return true;
}

function ApenasEmail(obj, ev){
	var x = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;
	if ( x<31 && x!=13 ) return true;
	if((x<37 || x>39) && x!=45 && x!=46 && (x<48 || x>57) && (x<64 || x>90) && x!=95 && (x<97 || x>122)){
		return false;
	}
	return true;
}

function ApenasLetra(obj, ev) {
	var x = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;
	if ( x<31 && x!=13 ) return true;
	if (x!=39 && x!=32 && (x<65 || x>90) && (x<97 || x>122) && x<128){
		return false;
	}
	return true;
}

function BloqueiaEnter(obj, ev){
	var x = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;
	if(x == 13){
		return false;
	}
	return true;
}

function AcionaBotaoComEnter(obj, ev, botao){
	var x = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;
	if (x == 13) {
	    document.getElementById(botao).click();
        return false;		
	}
	return true;
}

function NaoDuplicaEspaco(obj) {
	var x = obj.value;
	var iTam = x.length;
	var sAux = "";
	var sRetorno = "";
	var i;
	for(i=0; i<=iTam; i++){
		if(sAux != x.substr(i,1) || !(sAux==" " && x.substr(i,1)==" ")){
			sRetorno = sRetorno + x.substr(i,1);
		}
		sAux = x.substr(i,1);
	}
	obj.value = sRetorno;
}

function CompletaAno(obj){
	var sAux;
	if (obj.value.length == 8) {
		sAux = obj.value.substr(6,2);
		if (sAux < 25) {
			sAux = "20" + sAux;
		}
		else {
			sAux = "19" + sAux;
		}
		obj.value = obj.value.substr(0,6) + sAux;
	}
}


function VerificaReservado(campo)
{
	var txt = document.getElementById(campo).value.toUpperCase();
	var problema = '0';
	if (txt.indexOf('DELETE') >= 0) problema = '1';
	if (txt.indexOf('DROP') >= 0) problema = '1';
	if (txt.indexOf('UPDATE') >= 0) problema = '1';
	if (txt.indexOf('INSERT') >= 0) problema = '1';
	if (txt.indexOf('ALTER') >= 0) problema = '1';
	if (txt.indexOf('CREATE') >= 0) problema = '1';
	if (problema == '1') {
		if(confirm('Cuidado!\nComando perigoso detectado.\nProsseguir?') == false) return false;
	}
}


function RetornaValor(sCampo, valor) 
{
	var obj;
	obj = opener.document.getElementById(sCampo);
	obj.value = "" + valor;
	try { obj.focus() } catch(er){};
	window.close();
}

function AbrePopUpSearch(modulo, param, campo, botao) {
    var obj = window.open('../App_Search/search_' + modulo + '.aspx?campo=' + campo + '&botao=' + botao + param, modulo, "height=500, width=530, resizable=no, scrollbars=yes, status=yes, location=no, toolbar=no, menubar=no, left=30, top=30");
    try { obj.focus() } catch (er) { };
}

function RetornaValorSearch(valor, campo, botao) 
{
	opener.document.getElementById(campo).value = "" + valor;
	opener.document.getElementById(botao).click();
	window.close();
}

function RetornaValorSemFechar(sCampo, valor)
{
    var obj;
    obj = window.opener.document.getElementById(sCampo);
    obj.value = "" + valor;
    try {window.opener.focus();obj.focus(); } catch (er) { };
}

function abrePopUp(endereco, janela) {
	var obj = window.open(endereco, janela, "height=360, width=380, resizable=no, scrollbars=yes, status=no, location=no, toolbar=no, menubar=no, left=192, top=135");
	try { obj.focus() } catch(er){};
}

function abrePopUp(endereco, janela, h, w) {
	var obj = window.open(endereco, janela, "height=" + h + ", width=" + w + ", resizable=no, scrollbars=yes, status=no, location=no, toolbar=no, menubar=no, left=192, top=135");
	try { obj.focus() } catch(er){};
}

function abrePopUpCor(campo) {
	var obj = window.open("../admin/pickcolor.aspx?campo=" + campo, "pickcolor", "height=255, width=100, resizable=no, scrollbars=yes, status=no, location=no, toolbar=no, menubar=no, left=400, top=200");
	try { obj.focus() } catch(er){};
}

function abrePopUpAdmin(endereco, janela) {
    var obj = window.open(endereco, '', "height=600, width=790, resizable=no, scrollbars=yes, status=no, location=no, toolbar=no, menubar=no, left=30, top=30");
    try { obj.focus() } catch (er) { };
}

function abrePopUpIngressos(endereco, janela) {
	var obj = window.open(endereco, janela, "resizable=yes, scrollbars=yes, status=no, location=no, toolbar=no, menubar=no, left=0, top=0");
	try { obj.focus() } catch(er){};
}

function abrePopUpModal(endereco, janela) {
    if (window.showModalDialog) {
        return window.showModalDialog(endereco, janela, "dialogWidth:790px; dialogHeight:600px;");
    }
    else {
        try {
            netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserWrite");
            window.open(endereco, janela, "width=790, height=600, resizable=no, modal=yes;");
        }
        catch (e) {
            abrePopUpAdmin(endereco, janela);
        }
    }
}

function openHelp(id) {
    var obj = window.open("../home/help.aspx?id=" + id, id, "height=400, width=400, resizable=no, scrollbars=yes, status=yes, location=no, toolbar=no, menubar=no, left=150, top=50");
    try { obj.focus() } catch (er) { };
}

function ImprimeMateria(id) {
	var obj = window.open("../home/print.aspx?id=" + id, id, "height=360, width=380, resizable=no, scrollbars=yes, status=no, location=no, toolbar=no, menubar=no, left=192, top=135");
	obj.focus();
	obj.print();
}

function ImprimeProduto(id) {
	var obj = window.open("../home/product_print.aspx?id=" + id, id, "height=360, width=380, resizable=no, scrollbars=yes, status=no, location=no, toolbar=no, menubar=no, left=192, top=135");
	obj.focus();
	obj.print();
}

function AbreImagem(id) {
	var obj = window.open("../home/imgview.aspx?id=" + id, "imagem", "height=500, width=500, resizable=yes, scrollbars=yes, status=no, location=no, toolbar=no, menubar=no, left=30, top=30");
	obj.focus();
}

function AbrePopupImagem(area, camporetorno, botao) {
	var obj = window.open("../admin/imagens.aspx?area=" + area + "&campo=" + camporetorno + "&botao=" + botao, "imagens", "height=500, width=550, resizable=yes, scrollbars=yes, status=yes, location=no, toolbar=no, menubar=no, left=30, top=30");
	obj.focus();
}

function ZapSuperComunicacao() {
    var obj = window.open('../appalerta/appalerta_show_super.aspx', 'zapsc', 'width=' + window.screen.availWidth + ', height=' + window.screen.availHeight + ', scrollbars=no, resizable=yes, menubar=no, status=no, location=no');
    obj.focus();
}


// *********************************************
// FUNÇÃO PARA VALIDAÇÃO DE CPF
// *********************************************
// Exemplo:
//        this.txtCPF.Attributes.Add("onBlur", "return ValidaCPF(this, true, true);");

function ValidaCPF(obj, obriga, podeVazio) {
    var cpf = obj.value;

    if (cpf == '' && podeVazio) return true;

    if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" ||
	    cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" ||
	    cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" ||
	    cpf == "88888888888" || cpf == "99999999999") {
        window.alert("CPF inválido!");
        try {
            if (obriga) {
                setTimeout(function() { obj.focus(); obj.select(); }, 1)
            }
        }
        catch (er) { }
        return false;
    }

    soma = 0;
    for (i = 0; i < 9; i++)
        soma += parseInt(cpf.charAt(i)) * (10 - i);
    resto = 11 - (soma % 11);
    if (resto == 10 || resto == 11)
        resto = 0;
    if (resto != parseInt(cpf.charAt(9))) {
        window.alert("CPF inválido!");
        try {
            if (obriga) {
                setTimeout(function() { obj.focus(); obj.select(); }, 1)
            }
        }
        catch (er) { }
        return false;
    }
    
    soma = 0;
    for (i = 0; i < 10; i++)
        soma += parseInt(cpf.charAt(i)) * (11 - i);
    resto = 11 - (soma % 11);
    if (resto == 10 || resto == 11)
        resto = 0;
    if (resto != parseInt(cpf.charAt(10))) {
        window.alert("CPF inválido!");
        try {
            if (obriga) {
                setTimeout(function() { obj.focus(); obj.select(); }, 1)
            }
        }
        catch (er) { }
        return false;
    }
    
    return true;
}



// *********************************************
// FUNÇÃO PARA VALIDAÇÃO DE CNPJ
// *********************************************
// Exemplo:
//        this.txtCNPJ.Attributes.Add("onBlur", "return ValidaCNPJ(this, true, true);" )

function ValidaCNPJ(obj, obriga, podeVazio) {
    var cnpj = obj.value;
    var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais;

    if (cnpj == '' && podeVazio) return true;

    digitos_iguais = 1;
    if (cnpj.length != 14) {
        alert('CNPJ inválido!');
        try {
            if (obriga) {
                setTimeout(function() { obj.focus(); obj.select(); }, 1)
            }
        }
        catch (er) { }
        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)) {
            alert('CNPJ inválido!');
            try {
                if (obriga) {
                    setTimeout(function() { obj.focus(); obj.select(); }, 1)
                }
            }
            catch (er) { }
            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)) {
            alert('CNPJ inválido!');
            try {
                if (obriga) {
                    setTimeout(function() { obj.focus(); obj.select(); }, 1)
                }
            }
            catch (er) { }
            return false;
        }
        else {
            return true;
        }
    }
    else {
        alert('CNPJ inválido');
        try {
            if (obriga) {
                setTimeout(function() { obj.focus(); obj.select(); }, 1)
            }
        }
        catch (er) { }
        return false;
    }
} 


// *********************************************
// FUNÇÕES PARA FORMATAÇÃO E VALIDAÇÃO DE DATAS
// *********************************************
// Exemplo:
//        Me.txtData.Attributes.Add("onKeyPress", "return ApenasData(this, event);")
//        Me.txtData.Attributes.Add("onBlur",     "return ValidaData(this, true);" )

function ApenasData(obj, ev) 
{
	var x = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;
	if ( x == 13 ) return false; // enter
	else if ( x == 37 || x == 38 || x == 39 || x == 40 ) return true; // setas
	else if ( x < 31 ) return true;
	else if ( x < 47 || x > 57) return false;
	else 
	{
		if( x != 8 && x != 47) 
		{
			if (obj.value.length == 2) obj.value += '/';
			if (obj.value.length == 5) obj.value += '/'; 
		}
		else if ( x == 47 ) 
		{
			if (obj.value.length == 1) obj.value = '0' + obj.value;
			if (obj.value.length == 4) obj.value = obj.value.substr(0,3) + '0' + obj.value.substr(3,1); 
		} 
	} 
}
function ValidaData(obj, podeVazio)
{
	CompletaAno(obj);
	if ((podeVazio == false) && (obj.value == ''))
	{
        alert('Preenchimento de data obrigatório!');
        try
        {
            setTimeout(function() { obj.focus(); obj.select(); }, 1)
        }
        catch(er){}
        return false;
    }
    if (isDate(obj.value) == false)
    {
        alert('Data incorreta!');
        try
        {
            //            obj.focus();
            //            obj.select();
            setTimeout(function() { obj.focus(); obj.select(); }, 1)
        }
        catch(er){}
        return false;
    }
    return true;
}
function isDate(x)
{
	var dia, mes, ano;
	if (x.length == 0) return true;
	if (x.length < 10) return false;
	mes = x.substr(3,2);
	if (mes > '12' || mes == '00') return false;
	dia = x.substr(0,2);
	if (dia == '00') return false;
	ano = x.substr(6,4);
	if (ano < '0200') return false;
	if (mes == '01' || mes == '03' || mes == '05' || mes == '07' || mes == '08' || mes == '10' || mes == '12')
	{
		if (dia > '31') return false; 
	}
	if (mes == '04' || mes == '06' || mes == '09' || mes =='11')
	{
		if (dia > '30') return false;
	}
	if (mes == '02')
	{
		if (Bissexto(parseInt(ano)) == true)
		{
			if (dia > '29') return false;
		}
		else
			if (dia > '28') return false; 
	}
	return true;
}
function CompletaAno(obj)
{
	var sAux;
	if (obj.value.length == 8) 
	{
		sAux = obj.value.substr(6,2);
		if (sAux >= '25')
		{
			sAux = '19' + sAux; 
		}
		else {
			sAux = '20' + sAux;
		}
		obj.value = obj.value.substr(0,6) + sAux;
	}
}
function Bissexto(ano)
{
    var bissexto = false;
    if( (((ano % 4) == 0) && ((ano % 100) != 0)) || ((ano % 400) == 0) )
        bissexto = true;
	return bissexto;
}


// *********************************************
// FUNÇÕES PARA FORMATAÇÃO E VALIDAÇÃO DE HORAS
// *********************************************
// Exemplo:
//        Me.txtHora.Attributes.Add("onKeyPress", "return ApenasHora(this, event);")
//        Me.txtHora.Attributes.Add("onBlur",     "return ValidaHora(this, true);")

function ApenasHora(obj, ev)
{
    var x = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;
    if ( x == 13 ) return false; // enter
    else if ( x == 8 || x == 9 || x == 43 ) return true; // tab, bkspace, :
    else if ( x == 37 || x == 38 || x == 39 || x == 40 ) return true; // setas
    else if ( x >= 48 && x <= 58 ) return true; // 0 a 9
    else return false;
}
function ValidaHora(obj, podeVazio) {
	if ((podeVazio == false) && (obj.value == ''))
	{
        alert('Favor preencher o campo!');
        try
        {
            setTimeout(function() { obj.focus(); obj.select(); }, 1)
        }
        catch(er){}
        return false;
    }
    if (sHora != '')
    {
        FormataHora(obj);
        var bFormatoHora = true;
        var bOK = true;
        var sHora = Trim_Hora(obj.value)
        var iPos2p = sHora.indexOf(':');
        var sH = Trim_Hora(sHora.substring(0, iPos2p));
        var sM = Trim_Hora(sHora.substring(iPos2p + 1, sHora.length));
        if (!IsNumeric_Hora(sH) || !IsNumeric_Hora(sM))
        {
            bOK = false;
        }
        else if (bFormatoHora)
        {
            if (parseInt(sH) > 23 || parseInt(sH) < 0)
            {
                bOK = false;
            }
            else if (parseInt(sM) > 59 || parseInt(sM) < 0)
            {
                bOK = false;
            }
        }
        if (!bOK)
        {
            alert('Hora incorreta!');
            try
            {
                setTimeout(function() { obj.focus(); obj.select(); }, 1)
            }
            catch(er){}
            return false;
        }
    }
}
function Trim_Hora(STRING)
{
    STRING = LTrim_Hora(STRING);
    return RTrim_Hora(STRING);
}
function RTrim_Hora(STRING)
{
    while(STRING.charAt((STRING.length -1))==' ')
    {
        STRING = STRING.substring(0,STRING.length-1);
    }
    return STRING;
}
function LTrim_Hora(STRING)
{
    while(STRING.charAt(0)==' ')
    {
        STRING = STRING.replace(STRING.charAt(0),'');
    }
    return STRING;
}
function IsNumeric_Hora(VALUE)
{
    var bOK = true;
    for(var ivA = 0; ivA < VALUE.length;ivA ++)
    {
        if(VALUE.charCodeAt(ivA) < 48 || VALUE.charCodeAt(ivA) > 57)
        {
            if(VALUE.charCodeAt(ivA) != 46 && VALUE.charCodeAt(ivA) != 32 && VALUE.charAt(ivA) != ',')
            {
                bOK = false;
            }
        }
    }
    return bOK;
}
function FormataHora(obj)
{
    var iPos2p;
    var sMesa;
    var sH;
    var sM;
    var sValor = obj.value;
    sMesa = Trim_Hora(sValor);
    if (sMesa.length > 0)
    {
        iPos2p = sMesa.indexOf(':');
        if (iPos2p == -1) iPos2p = sMesa.indexOf('.');
        if (iPos2p == -1) iPos2p = sMesa.indexOf(',');
        sH = sMesa;
        sM = sMesa;
        if (iPos2p > -1)
        {
            sH = Trim_Hora(sH.substring(0, iPos2p));
            sM = Trim_Hora(sM.substring(iPos2p + 1, sM.length));
            if (sM.length == 1) {sM = sM + '0';}
            sMesa = sH + ':' + sM;
            if (iPos2p == 1) {sMesa = '0' + sMesa;}
            if (sM == '') {sMesa = sMesa + '00';}
        }
        else
        {
            if (sMesa.length >= 3)
            {
                sH = sH.substring(0, sH.length - 2);
                sM = sM.substring(sM.length - 2, sM.length);
                sMesa = sH + ':' + sM;
            }
            else
            {
                sMesa = sMesa + ':00';
            }
            iPos2p = sMesa.indexOf(':');
            if (iPos2p == 1) {sMesa = '0' + sMesa};
        }
    }
    obj.value = sMesa;
}


// *********************************************
// FUNÇÕES PARA FORMATAÇÃO E VALIDAÇÃO DE VALOR
// *********************************************
// Exemplo
//        Me.txtValor.Attributes.Add("onKeyPress", "return ApenasValor(this, event);")
//        Me.txtValor.Attributes.Add("onBlur", "return FormataValor(this, 2);")

function ApenasValor(obj, ev){
    var x = ev.keyCode ? ev.keyCode : ev.which ? ev.which : ev.charCode;
    if (x == 13) return false;
    if (x < 31) return true;
    if (((x < 48) || (x > 57)) && (x != 44) && (x != 45)) return false;
    else {
        if (x == 44) {
            if ((obj.value.length == 0) || (obj.value.indexOf(',') > 0)) return false; }
        if (x == 45) {
            if (obj.value.length != 0) return false; }
    }
}
function FormataValor(obj, iMaxDec) {
	if (obj.value == '') return true;
	var posNeg = obj.value.indexOf('-');
	var decPart = '';
	var i;
	var newVal = '';
	var x = '';
	for (i=0; i<obj.value.length; i++) {
		x = obj.value.substr(i,1);
		if ((x != '.') && (x != '-')) newVal += x; }
	var iPos = newVal.indexOf(',');
	if (iPos >= 0 ) {
		decPart = newVal.substr(iPos+1, iMaxDec); }
	else {
		iPos = newVal.length+1; }
	for (i=decPart.length; i<iMaxDec; i++) {
		decPart = decPart + '0'; }
	newVal = newVal.substr(0, iPos);
	var retorno = '';
	var cento = '';
	for (i=newVal.length; i>=0; i--) {
		if (cento.length == 3) {
			retorno = '.' + retorno;
			cento = ''; }
		cento += newVal.substr(i,1);
		retorno = newVal.substr(i,1) + retorno; }
	retorno += ',' + decPart;
	if (posNeg >= 0) retorno = '-' + retorno;
	obj.value = retorno;
}