/**
 *
 * Vitrines
 *
 */
var Vitrines = {

  /**
   *
   * slideshow1
   *
   */
  'slideshow1': {

    /**
     *
     * preCargaImg
     *
     */
    'preCargaImg': function () {

      var rotulo = '<span class="rotulo_carregando_imagem">[carregando a imagem...]</span>';

      $('#descricao_imagem1').html(rotulo);

    },  // preCargaImg


    /**
     *
     * posCargaImg
     *
     */
    'posCargaImg': function () {

      var txtAlt = $(this).attr('alt');
      var nomeExpositor = txtAlt.substr(19, txtAlt.length);

      $('#descricao_imagem1').text(nomeExpositor);

    } // posCargaImg

  },  // slideshow1

  /**
   *
   * slideshow1
   *
   */
  'slideshow2': {

    /**
     *
     * preCargaImg
     *
     */
    'preCargaImg': function () {

      var rotulo = '<span class="rotulo_carregando_imagem">[carregando a imagem...]</span>';

      $('#descricao_imagem2').html(rotulo);

    },  // preCargaImg


    /**
     *
     * posCargaImg
     *
     */
    'posCargaImg': function () {

      var txtAlt = $(this).attr('alt');
      var nomeExpositor = txtAlt.substr(19, txtAlt.length);

      $('#descricao_imagem2').text(nomeExpositor);

    } // posCargaImg

  }  // slideshow2

};  // Vitrines


/**
 *
 * Dialogo.colecaoBotoes.tiposReg
 *
 */
Dialogo.colecaoBotoes.tiposReg = {

  /**
   *
   * profissional
   *
   */
  'profissional': function () {

    Dialogo.colecaoAcoes.fechar.call(this);

    location.href = '../registro/profissional.php';

  },  // profissional

  /**
   *
   * fornecedor
   *
   */
  'fornecedor': function () {

    Dialogo.colecaoAcoes.fechar.call(this);

    location.href = '../registro/fornecedor.php';

  } // fornecedor

};  // Dialogo.colecaoBotoes.tiposReg


/**
 * Configura os eventos e as ações da home do portal
 */
$(document).ready(function () {

  /**
   * Configura os eventos das imagens dos 'slideshow'
   */

  $('#imagens_slideshow_vitrines1 img').click(Slideshow.img.clique);

  $('#imagens_slideshow_vitrines2 img').click(Slideshow.img.clique);

  //$('#slideshow_patrocinadores div.slideshow img').click(Slideshow.img.clique);

  $('#slideshow_anunciantes div.slideshow img').click(Slideshow.img.clique);

  /**
   * Configura os 'slideshow'
   */

  /**
   * 'Slideshow' de vitrines
   */
  $('#imagens_slideshow_vitrines1').cycle({
    'fx': 'scrollLeft',
    'timeout': 5000,
    'before': Vitrines.slideshow1.preCargaImg,
    'after': Vitrines.slideshow1.posCargaImg
  });

  $('#imagens_slideshow_vitrines2').cycle({
    'fx': 'scrollLeft',
    'timeout': 5000,
    'before': Vitrines.slideshow2.preCargaImg,
    'after': Vitrines.slideshow2.posCargaImg
  });

  /**
   * 'Slideshow' de patrocinadores
   */
  $('#slideshow_patrocinadores div.slideshow').cycle({
    'fx': 'fade',
    'timeout': 8000
  });

  /**
   * 'Slideshow' de anunciantes
   */
  $('#slideshow_anunciantes div.slideshow').cycle({
    'fx': 'shuffle',  // shuffle, toss
    'timeout': 6000
  });

  /**
   * Validação dos dados do formulário de registro básico (utiliza estilos da jQuery UI)
   */
  $('#form_registro_basico').submit(function (eventoPadraoObj) {

    var dadosValidos = true,
        msgs = [],
        msg,
        botoesDialogoReg;

    /**
     * Campos (objetos)
     */
    var campos = {
      'nome': $('#input_nome'),
      'email': $('#input_email'),
      'senha': $('#input_senha'),
      'confirmacaoSenha': $('#input_confirmacao_senha'),
      'UF': $('#select_uf'),
      'cidade': $('#input_cidade')
    };

    /**
     * Valores dos campos
     */
    var valoresCampos = {
      'nome': $.trim(campos.nome.val()),
      'email': $.trim(campos.email.val()),
      'senha': campos.senha.val(),
      'confirmacaoSenha': campos.confirmacaoSenha.val(),
      'UF': $('#select_uf option:selected').val(),
      'cidade': $.trim(campos.cidade.val())
    };

    /**
     * Variáveis para o envio via POST
     */
    var valoresCamposPOST = {
      'nome': valoresCampos.nome,
      'email': valoresCampos.email,
      'senha': valoresCampos.senha,
      'confirmacao_senha': valoresCampos.confirmacaoSenha,
      'uf': valoresCampos.UF,
      'cidade': valoresCampos.cidade,
      'ajax': true
    };

    /**
     * Verifica se o nome foi informado e se é válido
     */
    if (!validaComprimentoTxt(valoresCampos.nome, 2, 50)) {
      dadosValidos = false;

      campos.nome.addClass('ui-state-error');
      msgs.push('Seu nome não foi informado ou é inválido. O nome deve ter entre 2 e 50 caracteres.');
    } else campos.nome.removeClass('ui-state-error');

    /**
     * Verifica se o e-mail foi informado e se é válido
     */
    if (!(validaComprimentoTxt(valoresCampos.email, 6, 255) &&
          validaEmail(valoresCampos.email))) {
      dadosValidos = false;

      campos.email.addClass('ui-state-error');
      msgs.push('Seu e-mail não foi informado ou é inválido. Um exemplo de e-mail válido é: conta@provedor.com.br.');
    } else campos.email.removeClass('ui-state-error');

    /**
     * Verifica se a senha foi informada e se é válida
     */
    if (!validaComprimentoTxt(valoresCampos.senha, 6, 16)) {
      dadosValidos = false;

      campos.senha.addClass('ui-state-error');
      msgs.push('Sua senha não foi informada ou é inválida. A senha deve ter entre 6 e 16 caracteres.');
    } else campos.senha.removeClass('ui-state-error');

    /**
     * Verifica se as senhas informadas combinam (são iguais)
     */
    if (valoresCampos.confirmacaoSenha != valoresCampos.senha) {
      dadosValidos = false;

      campos.confirmacaoSenha.addClass('ui-state-error');
      msgs.push('As senhas informadas não combinam. As senhas devem ser iguais.');
    } else if (valoresCampos.confirmacaoSenha == '') campos.confirmacaoSenha.addClass('ui-state-error');
    else campos.confirmacaoSenha.removeClass('ui-state-error');

    /**
     * Verifica se a UF foi informada
     */
    if ($.inArray(valoresCampos.UF, UFs) == -1) {
      dadosValidos = false;

      campos.UF.addClass('ui-state-error');
      msgs.push('O estado onde você reside não foi selecionado. O estado deve ser informado.');
    } else campos.UF.removeClass('ui-state-error');

    /**
     * Verifica se a cidade foi informada e se é válida
     */
    if (!validaComprimentoTxt(valoresCampos.cidade, 2, 50)) {
      dadosValidos = false;

      campos.cidade.addClass('ui-state-error');
      msgs.push('O nome da cidade onde você reside não foi informado ou é inválido. O nome da cidade deve ter entre 2 e 50 caracteres.');
    } else campos.cidade.removeClass('ui-state-error');

    /**
     * Envia os dados para o manipulador do registro
     */
    if (dadosValidos) {
      $.post('../registro/registrar_usuario.php', valoresCamposPOST, function (dadosRet) {

        if (dadosRet == 0) {
          msg = '<br /><span class="negrito">Registro efetuado com sucesso!</span><br /><br />';
          msg += 'Um e-mail de confirmação foi enviado para o endereço de e-mail informado.<br />';
          msg += 'Siga as instruções neste e-mail para <span class="negrito">ativar seu registro.</span><br /><br />';
          msg += 'Se você for um <span class="sublinhado">profissional</span> da área de Arquitetura ou correlacionadas ';
          msg += '<span class="italico">(como Decoração e Paisagismo)</span>, clique no botão <span class="negrito">Profissional</span> ';
          msg += 'para completar seu registro.<br /><br />';
          msg += 'Se você for um <span class="sublinhado">fornecedor</span> para a área de Arquitetura ou correlacionadas, clique no botão ';
          msg += '<span class="negrito">Fornecedor</span> para completar seu registro.<br /><br />';
          msg += 'Caso contrário, clique no botão <span class="negrito">Ok</span> para finalizar.<br /><br />';

          botoesDialogoReg = $('#dialogo').dialog('option', 'buttons');
          botoesDialogoReg.Profissional = Dialogo.colecaoBotoes.tiposReg.profissional;
          botoesDialogoReg.Fornecedor = Dialogo.colecaoBotoes.tiposReg.fornecedor;

          limpaForm('form_registro_basico');

          $('#dialogo').html(msg);
          $('#dialogo').dialog('option', 'width', 600);
          $('#dialogo').dialog('option', 'title', 'Registro');
          $('#dialogo').dialog('option', 'buttons', botoesDialogoReg);
          $('#dialogo').dialog('open');
        } else {
          msg = '<br />' + dadosRet;

          $('#dialogo').html(msg);
          $('#dialogo').dialog('option', 'width', 600);
          $('#dialogo').dialog('option', 'title', 'Erro no registro');
          $('#dialogo').dialog('open');
        }

      });
    } else {
      msg = '';

      $.each(msgs, function() {msg += '<br />' + this + '<br />';});

      msg += '<br />';

      $('#dialogo').html(msg);
      $('#dialogo').dialog('option', 'width', 600);
      $('#dialogo').dialog('option', 'title', 'Erro no registro');
      $('#dialogo').dialog('open');
    }

    eventoPadraoObj.preventDefault();

  });

});
