﻿
function abrirPagina(url, titulo) {
    window.open(url, titulo);
}


function fnConfirmarExcluir() {
    radconfirm("Deseja realmente excluir esse registro?", fnCallbackExcluir);
    return false;
}


function somenteNumeros(evt) {
    var charCode = (evt.which) ? evt.which : event.keyCode;
    
    if (charCode > 31 && (charCode < 48 || charCode > 57))
        return false;

    return true;
}

function trim(str) {
    return str.replace(/^\s+|\s+$/g, "");
}

function MudarClasse(obj, args) {
    var parent = document.getElementById(obj.id);
    var browser = navigator.userAgent.toLowerCase();
    
    if (!args.IsValid) {
        parent.style.border = '1px solid #FF0000';
    }
    else {
        parent.style.border = '1px solid #B1B1B1';
    }
}

function Requerido(sender, args) {
    var obj = document.getElementById(sender.controltovalidate);

    if (obj.id.indexOf('ddl') > -1)
        args.IsValid = (obj.value > 0);
    else
        args.IsValid = (trim(obj.value) != '');

    MudarClasse(obj, args);
}

function EmailInvalido(sender, args) {

    var obj = document.getElementById(sender.controltovalidate);

    var emailPat = /^[\w!#$%&'*+\/=?^`{|}~-]+(\.[\w!#$%&'*+\/=?^`{|}~-]+)*@(([\w-]+\.)+[A-Za-z]{2,6}|\[\d{1,3}(\.\d{1,3}){3}\])$/;
     var emailid=obj.value;
     var matchArray = emailid.match(emailPat);
     
     args.IsValid = true;
     if (matchArray == null)
    {
        args.IsValid = false;     
    }    
   
    MudarClasse(obj, args);
}



function RequeridoSenhaCadastro(sender, args) {
    var obj = document.getElementById(sender.controltovalidate);
    var objConfirma = document.getElementById('li3');

    for (i = 0; i < objConfirma.childNodes.length; i++) {
        if (objConfirma.childNodes[i].id != null && objConfirma.childNodes[i].id.indexOf('txtSenhaConfirma') > -1) {
            args.IsValid = (obj.value == objConfirma.childNodes[i].value && obj.value != '');

            MudarClasse(obj, args);
            MudarClasse(objConfirma.childNodes[i], args);
            
            break;
        }
    }
}

function RequeridoSenhaCadastrado(sender, args) {
    var obj = document.getElementById(sender.controltovalidate);
    var objConfirma = document.getElementById('li3');

    for (i = 0; i < objConfirma.childNodes.length; i++) {
        if (objConfirma.childNodes[i].id != null && objConfirma.childNodes[i].id.indexOf('txtSenhaConfirma') > -1) {
            args.IsValid = (obj.value == objConfirma.childNodes[i].value);

            MudarClasse(obj, args);
            MudarClasse(objConfirma.childNodes[i], args);

            break;
        }
    }
}

function RequeridoCEP(sender, args) {
    var obj = document.getElementById(sender.controltovalidate);
    var valor = trim(obj.value);

    if (obj.id.indexOf('CEP1') > -1)
        args.IsValid = (isInteger(valor) && valor.length == 5);
    else if (obj.id.indexOf('CEP2') > -1)
        args.IsValid = (isInteger(valor) && valor.length == 3);
    else
        args.IsValid = (trim(obj.value) != '');

    MudarClasse(document.getElementById('div5'), args);
}

function RequeridoNumero(sender, args) {
    var obj = document.getElementById(sender.controltovalidate);
    var valor = trim(obj.value);

    args.IsValid = (isInteger(valor) && valor.length > 0);

    MudarClasse(obj, args);
}

function RequeridoData(sender, args) {
    var obj = document.getElementById(sender.controltovalidate);

    args.IsValid = isDate(trim(obj.value));

    MudarClasse(obj, args);
}

function RequeridoCPF(sender, args) {
    var obj = document.getElementById(sender.controltovalidate);

    args.IsValid = validaCpfCnpj(obj);

    MudarClasse(obj, args);
}

function validaCpfCnpj(obj) {

    var i;
    var retorno = true;

    cpf = obj.value.replace(".", "");
    cpf = cpf.replace(".", "");
    cpf = cpf.replace("-", "");
    cpf = cpf.replace("/", "");

    if (cpf.length == 11) {
        if (cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999")
            retorno = false;

        add = 0;
        for (i = 0; i < 9; i++)
            add += parseInt(cpf.charAt(i)) * (10 - i);

        rev = 11 - (add % 11);

        if (rev == 10 || rev == 11)
            rev = 0;

        if (rev != parseInt(cpf.charAt(9)))
            retorno = false;

        add = 0;
        for (i = 0; i < 10; i++)
            add += parseInt(cpf.charAt(i)) * (11 - i);

        rev = 11 - (add % 11);

        if (rev == 10 || rev == 11)
            rev = 0;

        if (rev != parseInt(cpf.charAt(10)))
            retorno = false;

    }
    else {
        var numeros, digitos, soma, i, resultado, pos, tamanho, digitos_iguais, cnpj;
        cnpj = cpf;
        digitos_iguais = 1;
        if (cnpj.length < 14 && cnpj.length < 15)
            retorno = 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))
                retorno = 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))
                retorno = false;
        }
        else
            retorno = false;
    }

    return retorno;
}

var dtCh = "/";
var minYear = 1900;
var maxYear = 2200;

function isInteger(s) {
    var i;
    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);
        
        if (((c < "0") || (c > "9")))
            return false;
    }
    
    return true;
}

function stripCharsInBag(s, bag) {
    var i;
    var returnString = "";
    
    for (i = 0; i < s.length; i++) {
        var c = s.charAt(i);

        if (bag.indexOf(c) == -1)
            returnString += c;
    }
    
    return returnString;
}

function daysInFebruary(year) {
    return (((year % 4 == 0) && ((!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28);
}
function DaysArray(n) {
    for (var i = 1; i <= n; i++) {
        this[i] = 31
        if (i == 4 || i == 6 || i == 9 || i == 11) { this[i] = 30 }
        if (i == 2) { this[i] = 29 }
    }
    
    return this
}

function isDate(dtStr) {
    var daysInMonth = DaysArray(12)
    var pos1 = dtStr.indexOf(dtCh)
    var pos2 = dtStr.indexOf(dtCh, pos1 + 1)
    var strDay = dtStr.substring(0, pos1)
    var strMonth = dtStr.substring(pos1 + 1, pos2)
    var strYear = dtStr.substring(pos2 + 1)
    strYr = strYear
    if (strDay.charAt(0) == "0" && strDay.length > 1) strDay = strDay.substring(1)
    if (strMonth.charAt(0) == "0" && strMonth.length > 1) strMonth = strMonth.substring(1)
    for (var i = 1; i <= 3; i++) {
        if (strYr.charAt(0) == "0" && strYr.length > 1) strYr = strYr.substring(1)
    }
    month = parseInt(strMonth)
    day = parseInt(strDay)
    year = parseInt(strYr)
    if (pos1 == -1 || pos2 == -1) {
        return false
    }
    if (strMonth.length < 1 || month < 1 || month > 12) {
        return false
    }
    if (strDay.length < 1 || day < 1 || day > 31 || (month == 2 && day > daysInFebruary(year)) || day > daysInMonth[month]) {
        return false
    }
    if (strYear.length != 4 || year == 0 || year < minYear || year > maxYear) {
        return false
    }
    if (dtStr.indexOf(dtCh, pos2 + 1) != -1 || isInteger(stripCharsInBag(dtStr, dtCh)) == false) {
        return false
    }
    
    return true
}

function ValidateForm() {
    var dt = document.frmSample.txtDate
    if (isDate(dt.value) == false) {
        dt.focus()
        return false
    }
    return true
}

// Monta a URL amigavel para nova pagina
function montarURLAmigavel(o, d) {
    var origem = document.getElementById(o);
    var destino = document.getElementById(d);

    if (destino.value != '') return;

    var texto = '';
    texto = origem.value;
    try { texto = retira_acentos(texto); } catch (err) { alert(err); }
    try { texto = texto.replace(/[^0-9a-zA-Z]/, '-'); } catch (err) { alert(err); }
    try { texto = texto.split(' ').join('-'); } catch (err) { alert(err); }

    destino.value = texto;
}

//evento em onkeypress
//d - textbox onde está sendo digitada a url
function montarURL(d) {
    var destino = document.getElementById(d);
    var texto = '';
    
    texto = destino.value;

    try { texto = retira_acentos(texto); } catch (err) {  }
    try { texto = texto.replace(/[^0-9a-zA-Z]/, '-'); } catch (err) { }
    try { texto = texto.split(' ').join('-'); } catch (err) {  }

    destino.value = texto;
}

// ******************************************************************
// Retira acentos de uma string
//
function retira_acentos(palavra) {
    palavra = palavra.replace("\'", "-");
    palavra = palavra.replace("\"", "-");
    palavra = palavra.replace("\\", "-");
    palavra = palavra.replace("\?", "-");

    var com_acento = 'áàãâäéèêëíìîïóòõôöúùûüçÁÀÃÂÄÉÈÊËÍÌÎÏÓÒÕÖÔÚÙÛÜÇ.*[](){}<>|¹²³&%#@!?¨+=/.,ºª§°;:£¢¬';
    var sem_acento = 'aaaaaeeeeiiiiooooouuuucAAAAAEEEEIIIIOOOOOUUUUC-----------------------------------';
    var nova = '';

    palavra = palavra.replace(/\*/g, '-');
    palavra = palavra.replace(/\[/g, '-');
    palavra = palavra.replace(/\]/g, '-');
    palavra = palavra.replace(/\(/g, '-');
    palavra = palavra.replace(/\)/g, '-');
    palavra = palavra.replace(/\{/g, '-');
    palavra = palavra.replace(/\}/g, '-');
    palavra = palavra.replace(/\|/g, '-');
    palavra = palavra.replace(/\¹/g, '-');
    palavra = palavra.replace(/\²/g, '-');
    palavra = palavra.replace(/\³/g, '-');

    for (i = 0; i < palavra.length; i++) {
        if (com_acento.search(palavra.substr(i, 1)) >= 0) {
            nova += sem_acento.substr(com_acento.search(palavra.substr(i, 1)), 1);
        }
        else {
            nova += palavra.substr(i, 1);
        }
    }
    return nova;
}

// ******************************************************************