Event.observe(window, 'load', init);

function init(){
    /**********SE EXISTE OPCOES DE BRINDE************/
    brinde_assinat_bianual=1;
    brinde_assinat_anual=1;

    el_form=$('form_assinatura');
    
    ls_hide=document.getElementsByClassName('p_hide', el_form);
    for(i=0; i<ls_hide.length; i++){
      Element.hide(ls_hide[i]);
    }
    
    ls_notnull=document.getElementsByClassName('isNotNull', el_form);
    for(i=0; i<ls_notnull.length; i++){
      Event.observe(ls_notnull[i], 'blur', function(evt){
        el_input=Event.element(evt);
         checkNotNull(el_input);
      });
    }
    
    ls_numeric=document.getElementsByClassName('isNumeric', el_form);
    for(i=0; i<ls_numeric.length; i++){
      Event.observe(ls_numeric[i], 'blur', function(evt){
        el_input=Event.element(evt);
        checkNumeric(el_input);
      });
    }
    
    ls_email=document.getElementsByClassName('isEmail', el_form);
    for(i=0; i<ls_email.length; i++){
      Event.observe(ls_email[i], 'blur', function(evt){
        el_input=Event.element(evt);
        checkEmail(el_input);
      ;});
    }
    
    ls_nullordate=document.getElementsByClassName('isNullorDate', el_form);
    for(i=0; i<ls_nullordate.length; i++){
      Event.observe(ls_nullordate[i], 'blur', function(evt){
        el_input=Event.element(evt);
        checkNullorDate(el_input);
      });
      Event.observe(ls_nullordate[i], 'keyup', function(evt){
        el_input=Event.element(evt);
        subsDate(el_input);
      });
    }

    ls_date=document.getElementsByClassName('isDate', el_form);
    for(i=0; i<ls_date.length; i++){
      Event.observe(ls_date[i], 'blur', function(evt){
        el_input=Event.element(evt);
        checkDate(el_input);
      });
      Event.observe(ls_date[i], 'keyup', function(evt){
        el_input=Event.element(evt);
        subsDate(el_input);
      });
    }

    ls_cpf=document.getElementsByClassName('isCpf', el_form);
    for(i=0; i<ls_cpf.length; i++){
      Event.observe(ls_cpf[i], 'blur', function(evt){
        el_input=Event.element(evt);
        checkCpf(el_input);
      ;});
      Event.observe(ls_cpf[i], 'keyup', function(evt){
        el_input=Event.element(evt);
        substNumeric(el_input);
      ;});
    }
    ls_cpfcnpj=document.getElementsByClassName('isCpfOrCnpj', el_form);
    for(i=0; i<ls_cpfcnpj.length; i++){
      Event.observe(ls_cpfcnpj[i], 'blur', function(evt){
        el_input=Event.element(evt);
        checkCpfOrCnpj(el_input);
      ;});
      Event.observe(ls_cpfcnpj[i], 'keyup', function(evt){
        el_input=Event.element(evt);
        substNumeric(el_input);
      ;});
    }
    
    ls_Pgto=document.getElementsByClassName('rad_Pgto', el_form);
    for(i=0; i<ls_Pgto.length; i++){
      Event.observe(ls_Pgto[i], 'click', at_boletos);
    }
    Event.observe($('radTipoAssBianual'), 'click', at_boletos);
    Event.observe($('radTipoAssAnual'), 'click', at_boletos);
    
    
    
    
    //cep
    inp_Cep=$('inp_Cep');
    inp_Cep_presente=$('inp_Cep_presente');
    if($F(inp_Cep)==''){
      inp_Cep_erro=1;
    }else{
      inp_Cep_erro=0;
    }
    if($F(inp_Cep_presente)==''){
      inp_Cep_erro_presente=1;
    }else{
      inp_Cep_erro_presente=0;
    }
    
    inp_tlograd_princ=$('inp_tlograd_princ');
    inp_tlograd_outros=$('inp_tlograd_outros');
    inp_EndLograd=$('inp_EndLograd');
    inp_EndNumero=$('inp_EndNumero');
    inp_Bairro=$('inp_Bairro');
    inp_Cidade=$('inp_Cidade');
    inp_Estado=$('inp_Estado');
    msg_cep=$('msg_erro_cep');
    el_cep=$('div_cep');
    
    inp_tlograd_princ_presente=$('inp_tlograd_princ_presente');
    inp_tlograd_outros_presente=$('inp_tlograd_outros_presente');
    inp_EndLograd_presente=$('inp_EndLograd_presente');
    inp_EndNumero_presente=$('inp_EndNumero_presente');
    inp_Bairro_presente=$('inp_Bairro_presente');
    inp_Cidade_presente=$('inp_Cidade_presente');
    inp_Estado_presente=$('inp_Estado_presente');
    msg_cep_presente=$('msg_erro_cep_presente');
    el_cep_presente=$('div_cep_presente');
    
    Event.observe(inp_Cep, 'blur', function(evt){
      subsCep(evt);
      search_cep();
    });
    Event.observe(inp_Cep_presente, 'blur', function(evt){
      subsCep(evt);
      search_cep_presente();
    });
    
    
    if(brinde_assinat_bianual){
      DadosBrindeBianual=$('DadosBrindeBianual');
    }
    if(brinde_assinat_anual){
      DadosBrindeAnual=$('DadosBrindeAnual');
    }
    DadosPgtoBianual=$('DadosPgtoBianual');
    DadosPgtoAnual=$('DadosPgtoAnual');
    
    radPresenteNao=$('radPresenteNao');
    radPresenteSim=$('radPresenteSim');
    radTipoAssBianual=$('radTipoAssBianual');
    radTipoAssAnual=$('radTipoAssAnual');
    elEndPresente=$('fs_endereco_presenteado');
    elDadosPresente=$('fs_dados_presenteado');
    elTextoCartao=$('fs_texto_cartao');
   
    el_tlograd_outros_presente=$('div_tlograd_outros_presente');    
    el_tlograd_outros=$('div_tlograd_outros');
   
   //anual / bianual 
    Event.observe(radTipoAssBianual, 'click', change_tipo_assinat);
    Event.observe(radTipoAssBianual, 'change', change_tipo_assinat);
    Event.observe(radTipoAssAnual, 'click', change_tipo_assinat);
    Event.observe(radTipoAssAnual, 'change', change_tipo_assinat);
    change_tipo_assinat();

    //tipo de logradouro
    el_tlograd=$('div_tlograd');
    inp_tlograd_princ=$('inp_tlograd_princ');
    inp_tlograd_outros=$('inp_tlograd_outros');
    el_tlograd_outros=$('div_tlograd_outros');

    el_tlograd_presente=$('div_tlograd_presente');
    inp_tlograd_princ_presente=$('inp_tlograd_princ_presente');
    inp_tlograd_outros_presente=$('inp_tlograd_outros_presente');
    el_tlograd_outros_presente=$('div_tlograd_outros_presente');
    
    Event.observe(inp_tlograd_princ, 'change', change_tipo_lograd);
    Event.observe(inp_tlograd_princ_presente, 'change', change_tipo_lograd_presente);
    
    change_tipo_lograd();
    change_tipo_lograd_presente();
    
    Event.observe(inp_tlograd_princ, 'blur', check_tipo_lograd);
    Event.observe(inp_tlograd_princ, 'change', check_tipo_lograd);
    Event.observe(inp_tlograd_outros, 'blur', check_tipo_lograd);
    
    Event.observe(inp_tlograd_princ_presente, 'blur', check_tipo_lograd_presente);
    Event.observe(inp_tlograd_princ_presente, 'change', check_tipo_lograd_presente);
    Event.observe(inp_tlograd_outros_presente, 'blur', check_tipo_lograd_presente);
    
    //telefones
    el_Tel=$('div_telefone');
    inp_TelDdd=$('inp_TelNumero');
    inp_TelNumero=$('inp_TelNumero');
    el_telefone=$('div_telefone');
    inp_TelDdd_presente=$('inp_TelNumero_presente');
    inp_TelNumero_presente=$('inp_TelNumero_presente');
    el_telefone_presente=$('div_telefone_presente');
    inp_TelDdd_blur=0;
    inp_TelNumero_blur=0;
    Event.observe(inp_TelDdd, 'blur', function(){
      inp_TelDdd_blur=1;
      if((inp_TelDdd_blur)&&(inp_TelNumero_blur)){
        check_tel();
      }
    });
    
    Event.observe(inp_TelNumero, 'blur', function(){
      inp_TelNumero_blur=1;
      if((inp_TelDdd_blur)&&(inp_TelNumero_blur)){
        check_tel();
      }
    });

    
    //presente ou nao
    Event.observe(radPresenteNao, 'click', change_presente);
    Event.observe(radPresenteNao, 'change', change_presente);
    Event.observe(radPresenteSim, 'click', change_presente);
    Event.observe(radPresenteSim, 'change', change_presente);
    change_presente();

    ls_notnullpresente=document.getElementsByClassName('isNotNullPresente', el_form);
    for(i=0; i<ls_notnullpresente.length; i++){
      Event.observe(ls_notnullpresente[i], 'blur', function(evt){
        if(is_checked(radPresenteSim)){
          el_input=Event.element(evt);
          checkNotNull(el_input);      
        }else{
          TurnDivOk(el_input.parentNode);
        }
      });
    }
    

    ls_nullordatepresente=document.getElementsByClassName('isNullorDatePresente', el_form);
    for(i=0; i<ls_nullordatepresente.length; i++){
      Event.observe(ls_nullordatepresente[i], 'blur', function(evt){
        el_input=Event.element(evt);
        if(is_checked(radPresenteSim)){
          checkNullorDate(el_input);
        }else{
          TurnDivOk(el_input.parentNode);
        }
      });
      Event.observe(ls_nullordatepresente[i], 'keyup', function(evt){
        el_input=Event.element(evt);
        subsDate(el_input);
      });
    }
    el_toques_disponiveis=$('toques_disponiveis');
    inp_textoCartao=$('inp_textoCartao');
    Event.observe(inp_textoCartao, 'keyup', at_toques_restantes);
    at_toques_restantes();
    at_boletos();
}  //fim do init

function at_boletos(){
  
  if(is_checked(radTipoAssBianual)){
    ls_bolBianual=document.getElementsByClassName('rad_Pgto BoletoBiAnual', el_form);
    for(i=0; i<ls_bolBianual.length; i++){
      if(is_checked(ls_bolBianual[i])){
        Element.show($("DadosVctoBoleto"));
        return true;
      }
    }
        
    
  }else if(is_checked(radTipoAssAnual)){
    ls_bolAnual=document.getElementsByClassName('rad_Pgto BoletoAnual', el_form);
    for(i=0; i<ls_bolAnual.length; i++){
      if(is_checked(ls_bolAnual[i])){
        Element.show($("DadosVctoBoleto"));
        return true;
      }
    }
  }
  Element.hide($("DadosVctoBoleto"));
}

function change_presente(){
  if(is_checked(radPresenteNao)){
    Element.hide(elEndPresente);
    Element.hide(elDadosPresente);
    Element.hide(elTextoCartao);
  }else if(is_checked(radPresenteSim)){
    Element.show(elEndPresente);
    Element.show(elDadosPresente);
    Element.show(elTextoCartao);
  }
}

function change_tipo_assinat(){
  if(is_checked(radTipoAssBianual)){
    Element.show(DadosPgtoBianual);
    Element.hide(DadosPgtoAnual);
    if(brinde_assinat_bianual){
      Element.show(DadosBrindeBianual);
    }
    if(brinde_assinat_anual){
      Element.hide(DadosBrindeAnual);
    }
  }else if(is_checked(radTipoAssAnual)){
    Element.hide(DadosPgtoBianual);
    Element.show(DadosPgtoAnual);
    if(brinde_assinat_bianual){
      Element.hide(DadosBrindeBianual);
    }
    if(brinde_assinat_anual){
      Element.show(DadosBrindeAnual);
    }      
  }
}

function change_tipo_lograd(){
  if($F(inp_tlograd_princ)=='outro'){
    Element.show(el_tlograd_outros);
  }else{
    Element.hide(el_tlograd_outros);
  }
}
function change_tipo_lograd_presente(){
  if($F(inp_tlograd_princ_presente)=='outro'){
    Element.show(el_tlograd_outros_presente);
  }else{
    Element.hide(el_tlograd_outros_presente);
  }
}

function check_tipo_lograd(){
  if((($F(inp_tlograd_princ)=='outro')&&(!isNotNull($F(inp_tlograd_outros))))||(!$F(inp_tlograd_princ))){
    TurnDivErro(el_tlograd, 'Especifique o tipo de logradouro');
    return(0);
  }else{
    TurnDivOk(el_tlograd);
    return(1);
  }
}

function check_tipo_lograd_presente(){
  if((($F(inp_tlograd_princ_presente)=='outro')&&(!isNotNull($F(inp_tlograd_outros_presente))))||(!$F(inp_tlograd_princ_presente))&&(is_checked(radPresenteSim))){
    TurnDivErro(el_tlograd_presente, 'Especifique o tipo de logradouro');
    return(0);
  }else{
    TurnDivOk(el_tlograd_presente);
    return(1);
  }
}

function check_tel(){
  if((!isNumeric($F(inp_TelDdd)))||(!isNumeric($F(inp_TelNumero)))||(!isNotNull($F(inp_TelDdd)))||(!isNotNull($F(inp_TelNumero)))){
    TurnDivErro(el_Tel, 'Informe seu telefone');
    return(0);
  }else{
    TurnDivOk(el_Tel);
    return(1);
  } 
}

function search_cep(){
  cep_valor=$F(inp_Cep);
  if(isNotNull(cep_valor)){
    TurnDivOk(el_cep);
    if(cep_valor.length!=8){
      TurnDivErro(el_cep, 'CEP incorreto');
      inp_Cep_erro=1;
      return false;
    }else{
      SearchInfosbyCEP(cep_valor);
      inp_Cep_erro=0;
      return true;
    }
  }else{
    TurnDivErro(el_cep, 'Preencha o seu CEP');
    inp_Cep_erro=1;
    return false;
  }
  
  function SearchInfosbyCEP(cep_valor){
    msg_cep.innerHTML='<img class="loading_cep" src="loading.gif" alt="carregando..."/> procurando endereço...';
    var url="busca_cep.php";
    var pars="cep="+cep_valor;
    new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: resp_cep});
    
    function resp_cep(resp){
      dados=(resp.responseText).split(';;');
      if(dados[0]==0){
        TurnDivErro(el_cep, "dados do CEP não encontrados");
        inp_Cep_erro=0;
      }else if(dados[0]==1){
        set_select(inp_Estado, dados[1]);
        TurnDivOk(inp_Estado.parentNode);
        inp_Cidade.value=dados[2];
        TurnDivOk(inp_Cidade.parentNode);
        inp_Bairro.value=dados[3];
        TurnDivOk(inp_Bairro.parentNode);
        
        if(!set_select(inp_tlograd_princ, dados[4])){
          set_select(inp_tlograd_princ, 'outro');
          inp_tlograd_outros.value=dados[4];
        }
        change_tipo_lograd();
        check_tipo_lograd();
        
        inp_EndLograd.value=dados[5];
        TurnDivOk(inp_EndLograd.parentNode);
        
        TurnDivOk(el_cep);
        inp_Cep_erro=0;
        msg_cep.innerHTML='';
        
      }else if(dados[0]==2){
        set_select(inp_Estado, dados[1]);
        TurnDivOk(inp_Estado.parentNode);
        inp_Cidade.value=dados[2];
        TurnDivOk(el_cep);
        inp_Cep_erro=0;
        msg_cep.innerHTML='';
      }else{
        TurnDivOk(el_cep); //nao se pode afirmar q o cep está errado
        inp_Cep_erro=0;
        msg_cep.innerHTML='';
      }
    }
  }
}
function search_cep_presente(){
  cep_valor_presente=$F(inp_Cep_presente);
  if(isNotNull(cep_valor_presente)){
    TurnDivOk(el_cep_presente);
    if(cep_valor_presente.length!=8){
      TurnDivErro(el_cep_presente, 'CEP incorreto');
      inp_Cep_erro_presente=1;
      return false;
    }else{
      SearchInfosbyCEPPresente(cep_valor_presente);
      inp_Cep_erro_presente=0;
      return true;
    }
  }else{
    TurnDivErro(el_cep_presente, 'Preencha o seu CEP');
    inp_Cep_erro_presente=1;
    return false;
  }
  
  function SearchInfosbyCEPPresente(cep_valor){
    msg_cep_presente.innerHTML='<img class="loading_cep" src="loading.gif" alt="carregando..."/> procurando endereço...';
    var url="busca_cep.php";
    var pars="cep="+cep_valor;
    new Ajax.Request(url, {method: 'get', parameters: pars, onComplete: resp_cep});
    function resp_cep(resp){
      dados=(resp.responseText).split(';;');
      if(dados[0]==0){
        TurnDivErro(el_cep_presente, "dados do CEP não encontrados");
        inp_Cep_erro_presente=0;
      }else if(dados[0]==1){
        set_select(inp_Estado_presente, dados[1]);
        TurnDivOk(inp_Estado_presente.parentNode);
        inp_Cidade_presente.value=dados[2];
        TurnDivOk(inp_Cidade_presente.parentNode);
        inp_Bairro_presente.value=dados[3];
        TurnDivOk(inp_Bairro_presente.parentNode);
        
        if(!set_select(inp_tlograd_princ_presente, dados[4])){
          set_select(inp_tlograd_princ_presente, 'outro');
          inp_tlograd_outros_presente.value=dados[4];
        }
        change_tipo_lograd_presente();
        check_tipo_lograd_presente();
  
        inp_EndLograd_presente.value=dados[5];
        TurnDivOk(inp_EndLograd_presente.parentNode);
        
        TurnDivOk(el_cep_presente);
        inp_Cep_erro_presente=0;
        msg_cep_presente.innerHTML='';
        
      }else if(dados[0]==2){
        set_select(inp_Estado_presente, dados[1]);
        TurnDivOk(inp_Estado_presente.parentNode);
        inp_Cidade_presente.value=dados[2];
        TurnDivOk(el_cep_presente);
        inp_Cep_erro_presente=0;
        msg_cep_presente.innerHTML='';
      }else{
        inp_Cep_erro_presente=0;
        msg_cep_presente.innerHTML='';
      }
    }
  }
}

function at_toques_restantes(){
  var max_toques=300;
  var texto=inp_textoCartao.value;
  var cont=(max_toques-texto.length);
  if(cont>=0){
    el_toques_disponiveis.innerHTML=cont+' ';
  }else{
    inp_textoCartao.value=texto.substring(0, max_toques);
    el_toques_disponiveis.innerHTML='0 ';
  }  
}


//checagem de form
function CheckForm(){
  erros=0;
  for(i=0; i<ls_notnull.length; i++){
    if(!checkNotNull(ls_notnull[i])){
      erros++;
    };
  }
  for(i=0; i<ls_numeric.length; i++){
    if(!checkNumeric(ls_numeric[i])){
      erros++;
    };
  }
  for(i=0; i<ls_email.length; i++){
    if(!checkEmail(ls_email[i])){
      erros++;
    };
  }
  for(i=0; i<ls_nullordate.length; i++){
    if(!checkNullorDate(ls_nullordate[i])){
      erros++;
    };
  }
  for(i=0; i<ls_date.length; i++){
    if(!checkDate(ls_date[i])){
      erros++;
    };
  }  
  for(i=0; i<ls_cpf.length; i++){
    if(!checkCpf(ls_cpf[i])){
      erros++;
    };
  }
  for(i=0; i<ls_cpfcnpj.length; i++){
    if(!checkCpfOrCnpj(ls_cpfcnpj[i])){
      erros++;
    };
  }
  
  for(i=0; i<ls_notnullpresente.length; i++){
    if(is_checked(radPresenteSim)){
      if(!checkNotNull(ls_notnullpresente[i])){
        erros++;
      };
    }else{
      TurnDivOk(ls_notnullpresente[i].parentNode);
    }
  }
  
  for(i=0; i<ls_nullordatepresente.length; i++){
    if(is_checked(radPresenteSim)){
      if(!checkNullorDate(ls_nullordatepresente[i])){
        erros++;
      };
    }else{
      TurnDivOk(ls_nullordatepresente[i].parentNode);
    }
  }
  
  if (!check_tel()){
    inp_TelDdd_blur=1;
    inp_TelNumero_blur=1;
    erros++;
  }
  
  if(!check_tipo_lograd()){
    erros++;
  }
  
  if(inp_Cep_erro){
    erros++;
    TurnDivErro(el_cep, 'Preencha o Cep');
  }else{
    TurnDivOk(el_cep);
  }
  
  if((!check_tipo_lograd_presente())&&(is_checked(radPresenteSim))){
    erros++;
  }
  
  if((inp_Cep_erro_presente)&&(is_checked(radPresenteSim))){
    erros++;
    TurnDivErro(el_cep_presente, 'Preencha o Cep');
  }else{
    TurnDivOk(el_cep_presente);
  }
  
  if(erros){
    alert("Corrija os campos destacados.");
    return(false);
  }else{
    return(true);
  }
}
