function trim(str) {    if (str != null){        while (str.charAt(str.length -1) == " ")            str = str.substring(0, str.length -1);        while (str.charAt(0) == " ")            str = str.substring(1, str.length);    }	    return str;}function isEmpty(str) {    if (str == null) {        return true;    } else if (str.length <= 0) {        return true;    }    return false;}function isPositiveInteger(str){    var pattern = "0123456789";    var i = 0;    var pos = 0;    do {        pos = 0;        for (j = 0; j < pattern.length; j++){            if (str.charAt(i) == pattern.charAt(j)) {                pos = 1;                break;            }        }        i++;    } while (pos==1 && i < str.length)    return pos == 1;}/* * Validacao de datas * @param campo do formulario */function validDate(formField){    var result = true;    if (formField) {        var elems = formField.value.split("/");        result = (elems.length == 3); // should be three components        if (result)	{            var day = elems[0];            var month = elems[1];            var year = elems[2];            result = ! isNaN(elems[0]) && (month > 0) && (month < 13) &&            ! isNaN(elems[1]) && (day > 0) && (day < 32) &&            ! isNaN(elems[2]) && ((elems[2].length == 2) || (elems[2].length == 4));        }        if (!result){            alert('Entre uma data valida!');            formField.focus();		            formField.select();        }    } else result = false;    return result;}/* * Validacao de email */function validEmail(email){    var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;    if (filter.test(email)) {        return true;    }    return false;}/*  * Formata??o para qualquer mascara * Exemplos: * CEP - onKeyUP="formatar(this, '#####-###')" * CPF - onKeyUP="formatar(this, '###.###.###-##')" * DATA - onKeyUP="formatar(this, '##/##/####')" */function formatar(src, mask) {    if (src != null && src.value != null) {        var i = src.value.length;        var saida = mask.substring(0,1);        var texto = mask.substring(i);        if (texto.substring(0,1) != saida) {            src.value += texto.substring(0,1);        }    }}function formatFone(src){    if ((src) && (src.vaue != '')) {        var s = new String(trimtodigits(src.value));        src.value = s.substring(0, s.length -4)+'-'+s.substring(s.length -4, s.length);    }    return;}/*  * FormataValor(object, tammax, decimals) * Formata numero */function FormataValor(objeto,tammax,decimais) {    var vr = objeto.value;    if (vr == "") {        return;    }    var idx = -1;    // procura o "." ou "," de separacao das casas decimais    for (i = vr.length; i >= 0; i--){        if (vr.charAt(i) == "." || vr.charAt(i) == ",") {            idx = vr.length - i - 1;            break;        }    }    vr = trimtodigits(vr);    if (idx != -1) {        // faz o arredondamento        var currCD = idx;        vr = vr / Math.pow(10, currCD);        vr = (Math.round(vr * Math.pow(10, decimais)) / Math.pow(10, decimais))+"";        idx = -1;        for (i = vr.length; i >= 0; i--){            if (vr.charAt(i) == ".") {                idx = vr.length - i -1;                break;            }        }    }    var vi = "";    var vd = "";    if (idx == -1) {        idx = vr.length;        vi = vr;    } else {        vi = vr.substring(0, vr.length - idx -1)          vd = vr.substring(vr.length - idx, vr.length);    }    // adiciona o ponto a cada 3 casas    var viaux = vi;    vi = "";    var vialen = viaux.length;    while ((viaux.length - (viaux.length - vialen)) > 3) {        vi = "."+viaux.substring(vialen - 3, vialen) + vi;        vialen = vialen - 3;    }    vi = viaux.substring(0, vialen) + vi;    // adiciona zeros para a formatacao    var currCD = vd.length;    while (decimais > currCD) {        vd += "0";        currCD++;    }    // formata    objeto.value = vi+ "," +vd;}/*  * by Spot - verifica o CNPJ */function verificaCNPJ(scgc) {      var cgc = trimtodigits(scgc);      if ((cgc.indexOf("-") != -1) || (cgc.indexOf(".") != -1) || (cgc.indexOf("/") != -1)){          return( false )      }      var df, resto, dac = ""      df = 5*cgc.charAt(0)+4*cgc.charAt(1)+3*cgc.charAt(2)+2*cgc.charAt(3)+9*cgc.charAt(4)+8*cgc.charAt(5)+7*cgc.charAt(6)+6*cgc.charAt(7)+5*cgc.charAt(8)+4*cgc.charAt(9)+3*cgc.charAt(10)+2*cgc.charAt(11)      resto = df % 11      dac += ( (resto <= 1) ? 0 : (11-resto) )      df = 6*cgc.charAt(0)+5*cgc.charAt(1)+4*cgc.charAt(2)+3*cgc.charAt(3)+2*cgc.charAt(4)+9*cgc.charAt(5)+8*cgc.charAt(6)+7*cgc.charAt(7)+6*cgc.charAt(8)+5*cgc.charAt(9)+4*cgc.charAt(10)+3*cgc.charAt(11)+2*parseInt(dac)      resto = df % 11      dac += ( (resto <= 1) ? 0 : (11-resto) )      return !(dac == cgc.substring(cgc.length-2,cgc.length))  }  /*  * Remove todos os caracteres excetos 0-9 */function trimtodigits(tstring){      s="";      ts=new String(tstring);      for (x=0;x<ts.length;x++){          ch=ts.charAt(x);          if (asc(ch)>=48 && asc(ch)<=57){              s=s+ch;          }      }      return s;  }  /*  * Retorna o c?digo ASC do caracter passada por par?metro */function asc(achar) {    var n=0;    var ascstr = makeCharsetString();    for(i=0;i<ascstr.length;i++) {        if(achar==ascstr.substring(i,i+1)) {            n=i;            break;        }    }    return n+32}/*  * Gera uma string com os caracteres b?sicos na sequ?ncia de c?digos ASC */function makeCharsetString(){      var astr    astr = ' !"#$%&\'()*+,-./0123456789:;<=>?@';    astr+= 'ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz';    astr+= '{|}~';    return astr;}  /*  * verifica o cpf */function verificaCPF(cpf){    var num_cpf = trimtodigits(cpf);    if (num_cpf == null){         return false;    }    if (num_cpf.length != 11){        return false;    }    num_cpf_dv = num_cpf.substring(9,11);    num_cpf = num_cpf.substring(0,9);    for (k=1;k<3;k++) {        soma = 0;        multi = 1;        for (i=num_cpf.length-1;i>=0;i--){            multi++;            soma += (parseInt(num_cpf.substring(i,i+1),10) * multi);         }        resto = (soma % 11);        dv =0;        if (resto > 1){            dv= 11 - resto;        }        num_cpf +=dv;     }    return (num_cpf_dv == num_cpf.substring(9,11));}
