// JavaScript Document
// JavaScript Document
function mascaraTelefone(obj, evento) {
        var BACKSPACE   = 8;
        var DEL         = 46;
        var FRENTE      = 39;
        var TRAS        = 37;
        var TAB         = 9;
        var SHIFT       = 16;

        var tecla       = (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);

        if (tecla == BACKSPACE || tecla == DEL || tecla == FRENTE || tecla == TRAS || tecla == TAB || tecla == SHIFT)
            return true;

        if ((tecla < 48 || tecla > 57) && (tecla < 96 || tecla > 105)){
          obj.value = obj.value.substring(0, obj.value.length - 1);
          evento.returnValue = false;
          return false;
        }

        // sem nada
        var sn = '';
        sn = obj.value.replace('(','');
        sn = sn.replace(')','');
        sn = sn.replace('-','');

        if(sn.length >= 1 && sn.length <= 2)
                obj.value = '(' + sn;
        if(sn.length >= 3 && sn.length <= 6)
                obj.value = '(' + sn.substring(0,2) + ')' + sn.substring(2,sn.length);
        if(sn.length >= 7 && sn.length <= 10)
                obj.value = '(' + sn.substring(0,2) + ')' + sn.substring(2,6) + '-' + sn.substring(6,sn.length);
        if(sn.length >10)
                obj.value = '(' + sn.substring(0,2) + ')' + sn.substring(2,6) + '-' + sn.substring(6,10);
}
function ajustaTelefone(obj) {
        if(obj.value.length == 13)
                return true;

        if(obj.value.length == 12) {
                var parte = obj.value.split("");
                var tudo = parte[0] + parte[1] + parte[2] + parte[3] + " " + parte[4] + parte[5] + parte[6] + parte[8] + parte[7] + parte[9] + parte[10] + parte[11];
                obj.value = tudo;
        }

}

function validaCpf(obj){
 s = obj.value;
 if (isNaN(s)) {
  return false;
 }
 var i;
 var c = s.substr(0,9);
 var dv = s.substr(9,2);
 var d1 = 0;
 for (i = 0; i < 9; i++) {
  d1 += c.charAt(i)*(10-i);
 }
 if (d1 == 0){
  return false;
 }
    d1 = 11 - (d1 % 11);
    if (d1 > 9) d1 = 0;
 if (dv.charAt(0) != d1) {
  return false;
 }
 d1 *= 2;
 for (i = 0; i < 9; i++) {
  d1 += c.charAt(i)*(11-i);
 }
 d1 = 11 - (d1 % 11);
 if (d1 > 9) d1 = 0;
 if (dv.charAt(1) != d1) {
     return false;
    }
    return true;
}
function mascaraCpf(obj) {
        if(obj.value.length == 3)
                obj.value = obj.value + ".";
        if(obj.value.length == 7)
                obj.value = obj.value + ".";
        if(obj.value.length == 11)
                obj.value = obj.value + "-";

        if(obj.value.length == 14) {
                        if(!TESTA(obj.value, "CPF")) {
                                obj.value = "";
                                alert("CPF inválido!");
                                obj.focus() = "";
                        }
        }
}
function mascaraPis(obj) {
        if(obj.value.length == 3)
                obj.value = obj.value + ".";
        if(obj.value.length == 9)
                obj.value = obj.value + ".";
        if(obj.value.length == 12)
                obj.value = obj.value + "-";
        if(obj.value.length == 14) {
				alert("PIS inválido!");
				obj.focus() = "";
        }
}

function mascaraCnpj(obj) {
        if(obj.value.length == 2)
                obj.value = obj.value + ".";
        if(obj.value.length == 6)
                obj.value = obj.value + ".";
        if(obj.value.length == 10)
                obj.value = obj.value + "/";
        if(obj.value.length == 15)
                obj.value = obj.value + "-";

        if(obj.value.length == 18) {
                        if(!TESTA(obj.value, "CNPJ")) {
                                obj.value = "";
                                alert("CNPJ inválido!");
                                obj.focus() = "";
                        }
        }
}
function mascaraData(obj) {
        if(obj.value.length == 2)
                obj.value = obj.value + "/";
        if(obj.value.length == 5)
                obj.value = obj.value + "/";
        if(obj.value.length == 10) {
                var dia = parseInt(obj.value.substring(0,2),10);
                var mes = parseInt(obj.value.substring(3,5),10);
                var ano = parseInt(obj.value.substring(6,10),10);

                if (dia <= 31 && mes <=12 && ano >= 1000){
                        if (obj.value.substring(0,1)=="0" && obj.value.substring(1,2) != "0" || obj.value.substring(0,1)!="0"){
                                if (obj.value.substring(2,3)=="/"){
                                        if (obj.value.substring(3,4)=="0" && obj.value.substring(4,5)!="0" || obj.value.substring(3,4)!="0"){
                                                if (obj.value.substring(5,6)=="/"){
                                                        if (obj.value.substring(6,7)== "0" || obj.value.substring(6,7)=="" && obj.value.substring(7,8)!="0"){
                                                                window.alert("O ano que você digitou não existe!");
                                                                obj.focus();
                                                                obj.value = "";
                                                                return false;
                                                        } else {
                                                if (mes == 2){
                                                        if ((dia > 0 ) && (dia <= 29)){
                                                                if (dia == 29){
                                                                        if ((ano % 4) == 0){
                                                                                return true;
                                                                        }else{
                                                                                window.alert("Este dia não existe, certifique-se de que digitou corretamente!");
                                                                                obj.focus();
                                                                                obj.value = "";
                                                                                return false;
                                                                        }
                                                                        }
                                                        } else {
                                                                window.alert("Este dia não existe, certifique-se de que digitou corretamente!");
                                                                obj.focus();
                                                                obj.value = "";
                                                                return false;
                                                        }
                                                }
                                                if ((mes == 4)||(mes == 6)||(mes == 9)||(mes ==        11)){
                                                        if ((dia > 0 ) && (dia <= 30)){
                                                        return true;
                                                }else{
                                                        window.alert("Este dia não existe, certifique-se de que digitou corretamente!");
                                                        obj.focus();
                                                        obj.value = "";
                                                        return false;
                                                }
                                        }
                                        if ((mes == 1)||(mes == 3)||(mes == 5)||(mes ==7)||(mes == 8)||(mes == 10)||(mes == 12)) {
                                                if ((dia > 0) && (dia <= 31)) {
                                                return true;
                                        }else{
                                                window.alert("Este dia não existe, certifique-se de que digitou corretamente!");
                                                obj.focus();
                                                obj.value = "";
                                                return false;
                                        }
                                }
                        }
                }else{
                        window.alert("A data foi digitada fora do padrão(dd/mm/aaaa) !");
                        obj.focus();
                        obj.value = "";
                        return false;
                }
        }else{
                window.alert("Você digitou um mês que não existe!");
                obj.focus();
                obj.value = "";
                return false;
        }
        }else{
                window.alert("A data foi digitada fora do padrão(dd/mm/aaaa)!");
                obj.focus();
                obj.value = "";
                return false;
        }
        }else{
                window.alert("Você digitou um dia que não existe!");
                obj.focus();
                obj.value = "";
                return false;
        }
        }else{
                window.alert("O dia e/ou o mês que você digitou não existe, ou Você digitou\nfora do padrão (dd/mm/aaaa) !");
                obj.focus();
                obj.value = "";
                return false;
        }
                return true;
        }
}
function mascaraCep(obj) {
        obj.value = obj.value;
        if(obj.value.length == 5)
                obj.value = obj.value+"-";
        }

function mascara_numero(campo,tammax,teclapres) {
        var tecla = teclapres.keyCode;
                vr = campo.value;
                vr = vr.replace( "/", "" );
                vr = vr.replace( "/", "" );
                vr = vr.replace( ",", "" );
                vr = vr.replace( ",", "" );
                vr = vr.replace( ".", "" );
                vr = vr.replace( ".", "" );
                vr = vr.replace( ".", "" );
                vr = vr.replace( ".", "" );
                tam = vr.length;

                if (tam < tammax && tecla != 8){ tam = vr.length + 1 ; }
                if (tecla == 8 ){ tam = tam - 1 ; }
                if ( (tecla == 8) || (tecla >= 48 && tecla <= 57) || (tecla >= 96 && tecla <= 105) ){
                if ( tam <= 2 ){ campo.value = vr ; }
                if ( (tam > 2) && (tam <= 5) ){campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ) ; }
                if ( (tam >= 6) && (tam <= 8) ){campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
                if ( (tam >= 9) && (tam <= 11) ){campo.value = vr.substr( 0, tam - 8 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
                if ( (tam >= 12) && (tam <= 14) ){campo.value = vr.substr( 0, tam - 11 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ; }
                if ( (tam >= 15) && (tam <= 17) ){campo.value = vr.substr( 0, tam - 14 ) + '.' + vr.substr( tam - 14, 3 ) + '.' + vr.substr( tam - 11, 3 ) + '.' + vr.substr( tam - 8, 3 ) + '.' +
                vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ) ;}
                }
}

function verifica_num(numero, elemento) {
        if(isNaN(numero.substr(numero.length - 1, 1))) {
                alert('Você deve digitar apenas números neste campo.');
                document.forms[0].elements[elemento].value = '';
                return false;
        }
        else {
                return true;
        }
}

function formata_numero(numero,decimais)
	{
	    if (isNaN(numero)) { return '0,00';}
	    if (numero=='') { return '0,00';}

	    var IsNegative=(parseInt(numero)<0);
	    if(IsNegative)numero=-numero;

	    var snum = new String(numero);
	    var sec = snum.split('.');
	    var whole = parseInt(sec[0]);
	    var result = '';
	    if(sec.length > 1){
	  	var dec = new String(sec[1]);
	  	dec = parseInt(dec)/Math.pow(10,parseInt(dec.length-decimais-1));
	  	Math.round(dec);
	  	dec = parseInt(dec)/10;

	  	if(IsNegative)
	  	{
	     var x = 0-dec;
	     x = Math.round(x);
	     dec = - x;
	  	}
	  	else
	  	{
	     dec = Math.round(dec);
	  	}

	  	/*
	    * If the number was rounded up from 9 to 10, and it was for 1 'decimal'
	    * then we need to add 1 to the 'whole' and set the dec to 0.
	    */
	  	if(decimais==1 && dec==10)
	  	{
	     whole+=1;
	     dec="0";
	  	}

	  	dec = String(whole) + "," + String(dec);
	  	var dot = dec.indexOf(',');
	  	if(dot == -1){
	     dec += '.';
	     dot = dec.indexOf(',');
	  	}
	  	var l=parseInt(dot)+parseInt(decimais);
	  	while(dec.length <= l) { dec += '0'; }
	  	result = dec;
	    } else{
	  	var dot;
	  	var dec = new String(whole);
	  	dec += ',';
	  	dot = dec.indexOf(',');
	  	var l=parseInt(dot)+parseInt(decimais);
	  	while(dec.length <= l) { dec += '0'; }
	  	result = dec;
	    }
	    if(IsNegative)result="-"+result;
	    return result;
	}
        
function validaEmail(obj) {
        obj.value = obj.value;
        if(obj.value.length != "") {
                if(obj.value.indexOf("@") == -1 || obj.value.indexOf(".com") == -1) {
                        obj.value = "";
                        obj.focus();
                        alert("email inválido");
                }
        }
}
function validaForm() {
        var campos_vazios                = new Array();
        var num_campos_vazios        = 0;
        var msg_completa                = "";
        for(var i = 0; i < document.forms[0].elements.length; i++) {
                if(document.forms[0].elements[i].value == "") {
                        num_campos_vazios        += 1;
                        campos_vazios[num_campos_vazios - 1]        = document.forms[0].elements[i].name;
                }
        }
        if(num_campos_vazios == 1) {
                msg_completa = "O seguinte campo está vazio: " + campos_vazios[0];
        }
        else if(num_campos_vazios > 1)
        {
                msg_completa = "Os seguintes campos estão vazios: ";
                for(var x = 0; x < campos_vazios.length; x++) {
                        msg_completa += campos_vazios[x];
                        if(x + 2 < campos_vazios.length)
                                msg_completa += ", ";
                        else if(x + 1 < campos_vazios.length)
                                msg_completa += " e ";
                        else
                                msg_completa += " ";
                }
        }

        if(num_campos_vazios == 0)
                return true;
        else {
                alert(msg_completa);
                return false;
        }
}
function validaNome(elemento) {
        texto = document.forms[0].elements[elemento].value;
        var erro = false;
        var letras_iguais = 0;
        if(texto == "")
                erro = true;
        if(texto.length < 4)
                erro = true;
        for(var i = 0; i < texto.length; i++) {
                if(texto.substring(i,i+1) == texto.substring(i+1,i+2))
                        letras_iguais++;
        }
        if(letras_iguais > 2)
                erro = true;

        if(!erro)
                return true;
        if(erro) {
                alert("Nome inválido");
                document.forms[0].elements[elemento].focus();
                document.forms[0].elements[elemento].value = "";
                return false;
        }
}
//---------------------------
function TESTA(CNUMB,CTYPE)
{
  if(Verify(CNUMB, CTYPE))
  {
    return true;
        //alert(CTYPE+" válido!");
  }
  else
  {
          return false;
    //alert(CTYPE+" inválido!");
  }
//  return;
}

function ClearStr(str, char)
{
  while((cx=str.indexOf(char))!=-1)
  {
    str = str.substring(0,cx)+str.substring(cx+1);
  }
  return(str);
}

function ParseNumb(c)
{
  c=ClearStr(c,"-");
  c=ClearStr(c,"/");
  c=ClearStr(c,",");
  c=ClearStr(c,".");
  c=ClearStr(c,"(");
  c=ClearStr(c,")");
  c=ClearStr(c," ");
  if((parseFloat(c) / c != 1))
  {
    if(parseFloat(c) * c == 0)
    {
      return(c);
    }
    else
    {
      return(0);
    }
  }
  else
  {
    return(c);
  }
}

function Verify(CNUMB,CTYPE)
{
  CNUMB=ParseNumb(CNUMB)
  if(CNUMB == 0)
  {
    return(false);
  }
  else
  {
    g=CNUMB.length-2;
    if(TestDigit(CNUMB,CTYPE,g))
    {
      g=CNUMB.length-1;
      if(TestDigit(CNUMB,CTYPE,g))
      {
        return(true);
      }
      else
      {
        return(false);
      }
    }
    else
    {
      return(false);
    }
  }
}

function TestDigit(CNUMB,CTYPE,g)
{
  var dig=0;
  var ind=2;
  for(f=g;f>0;f--)
  {
    dig+=parseInt(CNUMB.charAt(f-1))*ind;
    if (CTYPE=="CNPJ")
    { if(ind>8) {ind=2} else {ind++} }
    else
    { ind++ }
  }
  dig%=11;
  if(dig<2)
  {
    dig=0;
  }
  else
  {
    dig=11-dig;
  }
  if(dig!=parseInt(CNUMB.charAt(g)))
  {
    return(false);
  }
  else
  {
    return(true);
  }
}

function idade(data) {
	/* divide na barra (/) a data passada como parâmetro */
	var parte = data.split('/');
	if(parte.length != 3)
		return false;

	/* coloca nas variaveis a data passada como parâmetro */
	var anoData			= parte[2];
	var mesData			= parte[1];
	var diaData			= parte[0];

	/* coloca nas variaveis a data atual */
	var dataHoje		= new Date();
	var anoHoje			= dataHoje.getFullYear();
	var mesHoje			= dataHoje.getMonth() + 1;
	var diaHoje			= dataHoje.getDate();

	var anoDiferenca	= (anoHoje - anoData) - 1;
	var mesDiferenca	= (mesHoje + 12 - mesData) - 1;
	var diaDiferenca	= (diaHoje + 30 - diaData);

	if(diaDiferenca >= 30) {
		mesDiferenca++;
		diaDiferenca -= 30;
	}

	if(mesDiferenca >= 12) {
		anoDiferenca++;
		mesDiferenca -= 12;
	}

	if(isNaN(anoDiferenca) || isNaN(mesDiferenca) || isNaN(diaDiferenca))
		return '';

	var idadeTotal = new Array(diaDiferenca, mesDiferenca, anoDiferenca);

	return(idadeTotal);

}

function ai(obj, evento) {
  var BACKSPACE   = 8;
  var DEL         = 46;
  var FRENTE      = 39;
  var TRAS        = 37;
  var TAB         = 9;
  var SHIFT       = 16;

  var tecla       = (evento.keyCode ? evento.keyCode: evento.which ? evento.which : evento.charCode);

  if (tecla == BACKSPACE || tecla == DEL || tecla == FRENTE || tecla == TRAS || tecla == TAB || tecla == SHIFT)
    return true;

  if(tecla == 13) {
    var i = 0;
    var nome_atual = document.forms[0].elements[i].name;
    while(nome_atual != obj.name) {
      i++;
      nome_atual = document.forms[0].elements[i].name;
    }

    i++;

    if(i < document.forms[0].length)
      document.forms[0].elements[i].focus();
  }

  var cpn = obj.name;
  if(cpn.indexOf("telefone") != -1 || cpn.indexOf("tene") != -1 || cpn.indexOf("cear") != -1 || cpn.indexOf("tel") != -1 || cpn.indexOf("fax") != -1 || cpn.indexOf("celular") != -1 || cpn.indexOf("tral") != -1 || cpn.indexOf("tcal") != -1 || cpn.indexOf("fax") != -1) {
    mascaraTelefone(obj, evento);
  }

  else if(cpn.indexOf("cep") != -1) {
    mascaraCep(obj, evento);
  }

  else if(cpn.indexOf("cpf") != -1) {
    mascaraCpf(obj, evento);
  }

  else if(cpn.indexOf("cnpj") != -1) {
    mascaraCnpj(obj, evento);
  }

  else if(cpn.indexOf("data") != -1 || cpn.indexOf("dnto") != -1 || cpn.indexOf("dpto") != -1 || cpn.indexOf("daao") != -1 || cpn.indexOf("ddao") != -1 || cpn.indexOf("nascimento") != -1 || cpn.indexOf("dmla") != -1 || cpn.indexOf("diio") != -1 || cpn.indexOf("dtno") != -1 || cpn.indexOf("dlto") != -1 || cpn.indexOf("deao") != -1 || cpn.indexOf("dbxa") != -1 || cpn.indexOf("dvto") != -1){
    mascaraData(obj, evento);
  }

  if(obj.value.length == obj.maxlenght) {
    var i = 0;
    var nome_atual = document.forms[0].elements[i].name;
    while(nome_atual != obj.name) {
      i++;
      nome_atual = document.forms[0].elements[i].name;
    }

    i++;
    if(i < document.forms[0].length)
      document.forms[0].elements[i].focus();
      document.forms[0].elements[i].select();
  }
}



//Time in days to save form fields values after last visit
//Set to different value to reset cookie (ie: "101 days" instead of "100 days"):
var memoryduration="30 minutes"

function setformobjects(){
var theforms=document.forms
memorizearray=new Array()
for (i=0; i< theforms.length; i++){
for (j=0; j< theforms[i].elements.length; j++){
if (theforms[i].elements[j].className.indexOf("memorize")!=-1 && theforms[i].elements[j].type=="text")
memorizearray[memorizearray.length]=theforms[i].elements[j]
}
}
var retrievedvalues=get_cookie("mvalue"+window.location.pathname)
if (retrievedvalues!=""){
retrievedvalues=retrievedvalues.split("|")
if (retrievedvalues[retrievedvalues.length-1]!=parseInt(memoryduration)) //reset cookie if var memoryduration has changed
resetcookie("mvalue"+window.location.pathname)
else{
for (i=0; i<memorizearray.length; i++){
if (retrievedvalues[i]!="empty_value")
memorizearray[i].value=retrievedvalues[i]
}
}
}
}

function get_cookie(Name) {
  var search = Name + "="
  var returnvalue = "";
  if (document.cookie.length > 0) {
    offset = document.cookie.indexOf(search)
    if (offset != -1) { // if cookie exists
      offset += search.length
      end = document.cookie.indexOf(";", offset);
      if (end == -1)
         end = document.cookie.length;
      returnvalue=unescape(document.cookie.substring(offset, end))
      }
   }
  return returnvalue;
}

function resetcookie(id){
var expireDate = new Date()
expireDate.setDate(expireDate.getDate()-10)
document.cookie = id+"=;path=/;expires=" + expireDate.toGMTString()
}

function saveformvalues(){
var formvalues=new Array(), temp
for (i=0; i<memorizearray.length; i++){
temp=memorizearray[i].value!=""? memorizearray[i].value : "empty_value"
formvalues[formvalues.length]=escape(temp)
}
formvalues[formvalues.length]=parseInt(memoryduration)
formvalues=formvalues.join("|")
var expireDate = new Date()
expireDate.setDate(expireDate.getDate()+parseInt(memoryduration))
document.cookie = "mvalue"+window.location.pathname+"="+formvalues+"; path=/;expires=" + expireDate.toGMTString()
}

if (window.addEventListener)
window.addEventListener("load", setformobjects, false)
else if (window.attachEvent)
window.attachEvent("onload", setformobjects)
else if (document.getElementById)
window.onload=setformobjects
if (document.getElementById)
window.onunload=saveformvalues
