/*Atendimento*/
$(document).ready(function(){

  $('p.carregando').hide();
  $('ul.lista_duvidas, ul.ajuda').show();

	/*Abrir e fechar os links de ajuda
	Criado por: Flavia Gomes <flavia.gomes@agenciaclick.com.br>
	*/
	$('.duvida').click(function() {
		$('.aberto').parent().next().slideUp();
		var self = this
		if($(this).hasClass('aberto')) {
			$(this).parent().next().slideUp("normal", function(){
				$(self).removeClass('aberto')
			});
		}else{
			$(this).parent().next().slideDown("normal", function(){
				$(self).addClass('aberto');
			});
		}
		return false;
	});

	/*Abre e fecha box de ajuda
	Criado por: Flavia Gomes <flavia.gomes@agenciaclick.com.br>
	Busca de conteúdo via ajax por: Rafael Hengles <rafael.hengles@agenciaclick.com.br> # 2009.08.17
	*/
	$('ul.ajuda a').click(function() {
		$('.conteudo_ajuda').hide();
		$('a.selecionado').removeClass('selecionado');
		var query = "#conteudo_" + this.id;
		$(query).show();
		$(this).addClass('selecionado');
    if ( $(this).hasClass('solicitado') ) return false; // pra não fazer o ajax duas vezes
    $.ajax({
      type: 'GET',
      url: this.href,
      dataType: 'html',
      success: function(data, status) {
        var html_ajuda = $(data);
        $(query+' a.duvida').each(function() {
          var sharppos = this.href.indexOf('#');
          if ( sharppos < 0 ) return; // Se não tiver hash eu não faço nada.
          var anchor = this.href.substr(sharppos, this.href.length-sharppos);
          var conteudo = $(anchor+' div.corpo', html_ajuda);
          if ( !conteudo.length ) return;
          $(this).closest('li').after(
            $('<li/>').addClass('conteudo_aberto').append( conteudo ) );
        });
/*      },
      error: function(xhr, status, e) {
        console.debug( [status, e, xhr] ); /**/
      }
    });
    $(this).addClass('solicitado');
		return false;
	});

	/* Busca conteúdo de ajuda sob demanda
	Criado por: Rafael Hengles <rafael.hengles@agenciaclick.com.br> # 2009.08.17
	*/
  var ajuda_paginas = {};
  var ajuda_links = $('ul.lista_duvidas a.pergunta');
  ajuda_links.each(function() {
    var sharppos = this.href.indexOf('#');
    if ( sharppos < 1 ) return; // Se não tiver hash ou for o primeiro caractere eu não faço nada.
    var sem_hash = this.href.substr(0, sharppos);
    var info = {
      hash: this.href.substr(sharppos, this.href.length-sharppos),
      link: this
    };
    if ( ajuda_paginas[sem_hash] == undefined ) {
      ajuda_paginas[sem_hash] = {solicitado: false, items: []};
    }
    ajuda_paginas[sem_hash].items.push( info );
  });
  ajuda_links.bind('click', function() {
    if ( !$(this).hasClass('solicitado') ) {
      var sharppos = this.href.indexOf('#');
      if ( sharppos < 0 ) return true; // Se não tiver hash eu deixo o link ser ativado.
      var sem_hash = this.href.substr(0, sharppos);
      $.ajax({
        type: 'GET',
        url: sem_hash,
        dataType: 'html',
        success: function(data, status) {
          var html_ajuda = $(data);
          $.each(ajuda_paginas[sem_hash].items, function() {
            var conteudo = $(this.hash+' div.corpo', html_ajuda).contents();
            if ( !conteudo.length ) {
              //console.log( this.hash+' div.corpo' );
              return;
            }
            $('p.fr', conteudo).remove(); // Remove os links de âncora para voltar ao topo
            $('a[name]', conteudo).bind('click', function() { // Ativa as tags do HBX
              var t = gettag(this);
              if (t) _hbLink(t[1], t[2]);
            });
            $(this.link).addClass('carregado').parent().after(
              $('<li/>').addClass('resposta').append( conteudo ) );
            var is_loading = $(this.link).parent().children('span.loading');
            if ( is_loading.length ) {
              is_loading.remove();
              $(this.link).addClass('aberto').parent().next().slideDown();
            }
          });
/*      },
        error: function(xhr, status, e) {
          console.debug( [status, e, xhr] ); /**/
        }
      });
      $(this).parent().append(
        $('<span/>').addClass('loading').text(' (Carregando...)') );
      $.each(ajuda_paginas[sem_hash].items, function() {
        $(this.link).addClass('solicitado');
      });
      $('ul.lista_duvidas .aberto').removeClass('aberto').parent().next('li.resposta').slideUp();
      return false;
    }
    var estava_aberto = $(this).hasClass('aberto');
		$('ul.lista_duvidas .aberto').removeClass('aberto').parent().next('li.resposta').slideUp();
		if ( !estava_aberto && $(this).hasClass('carregado') ) {
			$(this).addClass('aberto').parent().next('li.resposta').slideDown();
		}
    return false;
  });

	/*Abre  o box das cidades
	Criado por: Flavia Gomes <flavia.gomes@agenciaclick.com.br>
	*/
	$('.linkcidades').click(function() {
		$('.cidades').show();
		return false;
	});
	$('.bt_fechar').click(function() {
		$('.cidades').hide();
		return false;
	});

	$('.conteudo_contato a').click(function() {
		if ($(this).hasClass("linkcidades")) {
			$('.cidades').show();
			return false;
		}

	})



	/*
	Abre links do combobox do header
	Criado por: Flavia Gomes <flavia.gomes@agenciaclick.com.br>
	*/
	$('select[name=acessorapido],select[name=motivo_contato]').change(function() {
		var url = false;
		switch(this.value) {
			case "1": url = '/atendimento/sugestoes.htm';
			break;
			case "2": url = '/atendimento/reclamacoes.htm';
			break;
			case "3": url = '/atendimento/perda-roubo.htm';
			break;
			case "4": url = '/atendimento/cancelamento.htm';
			break;
			case "5": url = '/atendimento/informacoes-sobre-cartao.htm';
			break;
			case "6": url = '/atendimento/fatura.htm';
			break;
			case "7": url = '/atendimento/anuidades-tarifas-e-creditos.htm';
			break;
			case "8": url = '/atendimento/assistencia-em-viagens.htm';
			break;
			case "9": url = '/atendimento/atendimento-estabelecimentos.htm';
			break;
			case "10": url = '/atendimento/centrais-de-venda.htm';
			break;
			case "11": url = '/atendimento/outras-informacoes.htm';
			break;
		}
    _hbLink(
      this.name == 'acessorapido' ? 'Acesso rapido'
      : ( this.name == 'motivo_contato' ? 'Qual motivo'
        : this.name ),
      this.options[this.selectedIndex].text);
		if ( url ) location.href = url;
	});

	links_ajax();

  var form_ouv = document.getElementById('form_ouv');
  if ( form_ouv ) {
    $('#numero_cartao, #protocolo, #nome, #e_mail, #ddd, #tel, #mensagem')
      .bind('keypress', function(ev) {
        var key = (!ev.which) ? ev.keyCode : ev.which;
        if ( key == 8 || key == 9 || key == 35 || key == 36 || key == 46 ) return true;
        var chr = String.fromCharCode(key);
        if ( ('<>%;()&+').indexOf(chr) >= 0 ) {
          window.setTimeout(function() { window.alert( 'CARACTERE INVÁLIDO "'+chr+'"' ); },0);
          return false;
        }
        if ( this.id == 'numero_cartao' || this.id == 'ddd' || this.id == 'tel' ) {
          if ( '0123456789'.indexOf(chr) < 0 ) return false;
          /*if ( this.id == 'numero_cartao' ) {
            if ( this.value.length == 3 || this.value.length == 8 || this.value.length == 13 )
              window.setTimeout(function() { document.getElementById('numero_cartao').value += ' '; },0);
          }*/
        } else if ( this.id == 'e_mail' ) {
          if ( /[^\w.@-]/i.test(chr) ) return false;
        }
        return true;
      });
  }
});
	/*
	Chama o  conteudo em ajax da pagina de fatura
	Criado por: Flavia Gomes <flavia.gomes@agenciaclick.com.br>
	*/
	function links_ajax() {
		$('ul.menu_contato li div div h4').click(function() {
      var linkElement = $(this).find('a'),
			  carrega = linkElement.attr('href'),
        hbxTag = linkElement.attr('name').match(/^&lid=(.*?)&lpos=(.*)$/);
      if ( hbxTag ) { _hbLink(
        decodeURIComponent(hbxTag[1].split('+').join('%20')),
        decodeURIComponent(hbxTag[2].split('+').join('%20')) );
      }
			if (carrega != ' ') {
        var por_email = (/\bpor-email(-ouvidoria|-vendas|-sucesso)?\.html$/).exec(carrega);
        if ( por_email != null ) {
          /* if ( !(/^https:\/\//).test(document.location.href) ) {
            carrega = 'https://www.credicard.com.br/atendimento/'+por_email[0];
          } /**/
          $('.box_contato2').empty().append( $('<iframe/>').attr({'src': carrega, 'border': '0', 'frameBorder': '0', 'width': '618', 'height': '350'}).css({'border': 'none'}) );
        } else {
          $('.box_contato2').load(carrega);
        }
			}
			$('ul.menu_contato li').removeClass('selected');
			$(this).parent().parent().parent().addClass('selected');

			return false;
		});
    $('ul.menu_contato li.selected h4').triggerHandler('click');
	}

function displayTrueThisFalse(v1,v2) {
	$("#"+ v1).show();
	$("#"+ v2).hide();
}

/* validação de formulário */
function validaForm(formulario){
	var form = document.getElementById(formulario);
	var numero_card = document.getElementById("numero_cartao");
	var protocolo = document.getElementById("protocolo");
	var nome = document.getElementById("nome");
	var e_mail = document.getElementById("e_mail");
	var ddd = document.getElementById("ddd");
	var tel = document.getElementById("tel");
	var mensagem = document.getElementById("mensagem");
	var erro = '';
	if(numero_card.value.length < 16){
		erro += '\n - Número do cartão';
	}else if(!(/^\d{16}$/).test(numero_card.value)){
		erro += '\n - Número do cartão';
	}else{
		var numero_car = parseInt( numero_card.value.charAt(0), 10 );
		if (numero_car != 4 && numero_car != 5) {
			erro += '\n - Cartão inexistente';
		}
	}
	if(nome.value == ""){
		erro += "\n - Nome";
	}else if(!(/[a-zàáâãäçèéêëìíîïòóôõöùúûüñýÿ -]/i).test(nome.value)){
		erro += '\n - Nome (Apenas letras)';
	}
	if(e_mail.value == ""){
		erro += "\n - E-mail";
	}else if((/^[a-z0-9.-]+@[a-z0-9][a-z0-9.-]*[a-z0-9]$/i).test(nome.value)){
		erro += "\n - E-mail";
	}
	if(ddd.value.length != 2 || tel.value.length != 8){
		erro += '\n - Número do telefone';
	}else if(!(/^\d{2}$/).test(ddd.value) || !(/^\d{8}$/).test(tel.value)){
		erro += '\n - Número do telefone';
	}
	if(mensagem.value == ""){
		erro += '\n - Mensagem';
	}else if((/[<>%;()&+]/).test(mensagem.value)){
		erro += '\n - Mensagem (Não são permitidos os caracteres <>%;()&+ neste campo)';
	}
	if(/*protocolo.value.length != 7/* && */ protocolo.value.length != 14 ){
		erro += '\n - Protocolo (Caso você não possua o número, por favor, entre em contato com a Central de Atendimento)';
	/*}else /.*if (protocolo.value.length == 6)*./{
		var prot6re = /^[0-6][0-9]{6}$/;
		if ( !prot6re.test(protocolo.value) ) {
			erro += '\n - Protocolo (Caso você não possua o número, por favor, entre em contato com a Central de Atendimento)';
		} else {
		  var prot6inv = [true, true];
		  for (var i=1; i<6; i+=1) {
		    prot6inv[0] = prot6inv[0] && (protocolo.value.charAt(i-1) == protocolo.value.charAt(i));
		    prot6inv[1] = prot6inv[1] && (''+((1*protocolo.value.charAt(i-1)+1)%10) == protocolo.value.charAt(i));
/.*			console.log( '[ '+i+': '+protocolo.value.charAt(i-1)+' = '+protocolo.value.charAt(i)+' ('+prot6inv[0]+'); '
          +'= '+((1*protocolo.value.charAt(i-1)+1)%10)+' - 1 ('+prot6inv[1]+') ]' ); *./
		  }
		  if ( prot6inv[0] || prot6inv[1] ) {
			erro += '\n - Protocolo (Caso você não possua o número, por favor, entre em contato com a Central de Atendimento)';
		  }
		} */
	}else if (protocolo.value.length == 14) {
		var prot14re = /^[AS][0-9]{5}(?:3[01]|0[1-9]|[12][0-9])(?:1[0-2]|0[1-9])[0-9]{2}(?:2[0-4]|[01][0-9])$/i;
		if ( !prot14re.test(protocolo.value) ) {
			erro += '\n - Protocolo (Caso você não possua o número, por favor, entre em contato com a Central de Atendimento)';
		}
	}
	if(erro != ''){
		alert('Preencha os campos abaixo corretamente:'+erro);
	}else{
		if (location.hostname == 'localhost' || location.hostname == '192.168.1.41') {
			form.method = 'get';
			form.action = 'por-email-sucesso.html';
		}
    _hbLink('Atendimento Email - Enviar', 'Enviar');
		form.submit();
	}
}

function urldec(s) {
  return decodeURIComponent(s.split('+').join('%20'));
}
function gettag(e) {
  return urldec(e.name).match(/^&lid=(.*?)&lpos=(.*)$/i);
}