﻿
/*************************************************************
CONFIG
*************************************************************/

// Variável booleana que indica se as configurações deste arquivo são
// para debug (quando em localhost) ou homologação.
var debug = false;

// Determina os hosts que são considerados de debug,
// e caso o host atual seja um deles, a var. debug é true.
var hostsDebug = ['localhost', 'desenvwww'];
for (var i in hostsDebug) {
  if (location.hostname == hostsDebug[i]) {
    debug = true;
    break;
  }
}

var urlLogin = debug
  //? 'http://localhost/bodygenics/sac/login.aspx'
  ? 'http://localhost:2827/Login.aspx'
    /*
    ['http://',
     location.hostname + (location.port && location.port.length ? ':' + location.port : ''),
     '/Login.aspx'].join('')
	*/
  : 'http://www.bodygenics.com.br/sac/Login.aspx';


/*************************************************************
UTIL
*************************************************************/

// Permite recuperar parâmetros de query string via javascript.
HttpRequest = {};
HttpRequest.QueryString = [];
(function() {
  var queryStringItems = location.search.replace(/\x3F/, "").replace(/\x2B/g, " ").split("&");
  for (var i = 0, l = queryStringItems.length; i < l; i++) {
    var item = queryStringItems[i].split('=');
    HttpRequest.QueryString[item[0]] = unescape(item[1]);
  }
})();

// Verifica se o browser informado é o browser atual.
// @browserName: String: O nome do browser a ser verificado. Exemplo: 'MSIE'.
function isCurrentBrowser(browserName) {
    if (navigator.userAgent.search(browserName) != -1)
        return true;
    else
        return false;
}

// Adiciona a função 'trim' a objetos string.
String.prototype.trim = function() { var str = this; str = str.replace(/^\s\s*/, ''), ws = /\s/, i = str.length; while (ws.test(str.charAt(--i))); return str.slice(0, i + 1); }


/*************************************************************
FORUMULÁRIO DE LOGIN
*************************************************************/

// Habilita o campo login para possuir valores numéricos
function ApenasNumeros(evt) {   
    if (!evt)
        evt = window.event;
    var charCode = "";
    if (isCurrentBrowser("MSIE"))
        charCode = evt.keyCode;
    else
        charCode = evt.charCode;
    var evtChar = String.fromCharCode(charCode);
    if ((evtChar.search(/[^0-9]/i) != -1) && (charCode != 0)) {
        if (isCurrentBrowser("MSIE"))
            evt.returnValue = false;
        else
            evt.preventDefault();
    }
}

// Caso venha o parâmetro falha login na query string.
if (HttpRequest.QueryString["falhaLogin"]) {
  var mensagemErro = 'Login ou senha inválidos.';

  // Verifica se a mensagem de erro de login já foi mostrada.
  if (typeof (jaMostrouMensagemErro) == 'undefined') {
    var jaMostrouMensagemErro = true;
    alert(mensagemErro);
  }
  else if (!jaMostrouMensagemErro)
    alert(mensagemErro);
}

// Altera as propriedades do formulário de login para fazer integração
// com o sistema Bodygenics.
jQuery(function() {
  jQuery('#baseLogin form')
	  .attr('action', urlLogin)
    .attr('name', 'formLogin')
    .attr('method', 'POST')
    .find('input[type=image]').click(btnLogin_click).end()
    .find('input[maxlength]').attr('maxlength', 100);
});

// Envia os dados de login para o sistema Bodygenics.
function btnLogin_click(e) {
  document.forms["formLogin"].submit();
}

jQuery(function() {
    //seleciona o elemento do login (CPF)
    var Login = jQuery('input[id=login]');
    
    jQuery(Login)
    .val('CPF')
    .focus(function() {
        if (this.value.toLowerCase() == 'cpf') {
            this.value = '';
        }
    }).blur(function() {
        if (this.value.trim().length == 0)
            this.value = 'CPF';
    }).keypress(function(e) {        
        ApenasNumeros(e);
    }).attr('maxlength', '11');

    // Limpa a caixa de texto de senha quando recebe o foco e está com o valor padrão.
    // Preenche de volta quando perde o foco e está vazia.
    // -- Por causa do IE, foi preciso colocar uma caixa de texto a mais para senha, que serve
    // -- apenas para mostrar o texto 'Senha' quando o usuário não informou uma senha. Assim,
    // -- é feita a troca de valor de style.display entre a caixa de senha real e a auxiliar
    // -- conforme o necessário.
    jQuery('input[id$=senha_aux]').show().focus(function() {
        this.style.display = 'none';
        jQuery('input[id$=senha]').show().get(0).focus();
    });
    jQuery('input[id$=senha]').hide().blur(function() {
        if (this.value.trim().length == 0) {
            this.style.display = 'none';
            this.value = '';
            jQuery('input[id$=senha_aux]').show();
        }
    });
});


/*************************************************************
FORUMULÁRIO DE REENVIO DE SENHA
*************************************************************/

// Caso venha o parâmetro sucesso de reenvio de senha na query string.
if (HttpRequest.QueryString["reenvio"] == '1') {
  alert('Seus dados de login foram enviados para seu e-mail.');
}
else if (HttpRequest.QueryString["reenvio"] == '0') {
  alert('Não foi encontrado nenhum usuário com o e-mail informado.');
}

// Altera as propriedades do formulário de reenvio de senha para fazer integração
// com o sistema Bodygenics.
jQuery('form:has(.campoEmail):not(:has(.campoDDD))')
  .attr('action', urlLogin)
  .attr('name', 'formReenvio')
  .attr('method', 'POST')
  .find('input.botLogin').click(btnReenviar_click);

// Envia os dados de login para o sistema Bodygenics.
function btnReenviar_click(e) {
  var email = jQuery('form[name=formReenvio] input[type=text].campoEmail').val();
  if (jQuery.trim(email).length == 0) {
    alert('Informe um e-mail.');
    e.preventDefault();
  }
  else
    document.forms["formReenvio"].submit();
}