﻿App.experiencia = {};
App.usuario = {};
App.Profile = {};
App.phone = {};
App.PerfilSaude = false;
App.CorrecaoForm = false;
App.UsuarioIdentificado = false;

App.Perfil = {};
App.Perfil.UsuarioComun = 1;
App.Perfil.ProfissionalSaude = 2;

function wizardCompartilhe_register()
{
    page.wizardCompartilhe.OnStepChange = wizardCompartilhe_NextStep;
}
function wizardCompartilhe_NextStep(passo)
{
    //Chama o metodo que trata o passo x
    var ret = false;
    var idBtnContinuar = 'btnContinuar';
    ClearClassName(idBtnContinuar);
    AddClassName(idBtnContinuar,'ht');
    switch (passo)
    {
        case 1: ret = FinalizaPasso1(); break;
        case 2: ret = FinalizaPasso2(); break;
        default: ret = false; break;
    }
    if (!ret) passo -= 1;
    ConfiguraBotaoContinuar(passo);
    return ret;
}
function ConfiguraBotaoContinuar(passo)
{
    //Apenas formatação
    var idBtnContinuar = 'btnContinuar';
    ClearClassName(idBtnContinuar);
    AddClassName(idBtnContinuar,'ht');
    switch (passo)
    {
        case 0:
            AddClassName(idBtnContinuar,'bt_continuar');
            break;
        case 1:
            if (HasPerfilSaude())
                ConfiguraPasso2ComPerfilSaude(idBtnContinuar);
            else if (IsAuthenticated())
                ConfiguraPasso2SemPerfilSaude(idBtnContinuar);
            else
                ConfiguraPasso2NaoAutenticado(idBtnContinuar);
            break;
    }
}
function wizardCompartilhe_Finish()
{
    if (HasPerfilSaude())
    {
        fnInsereExperiencia();
    }
    else if (IsAuthenticated())
    {
        //O usuário esta logado não tem perfil de Forum e preencheu os campos relativos a este perfil, então, primeiro inserimos seu perfil, relogamos o cidadão para disponibilizarmos seus novos dados na propriedade LoginTicket
        // e posteriormente simplesmente inserimos sua experiencia.
        if(App.Profile.idType == 1 || App.Profile.idType == 2)// verificar a foto e o tipo de profile. Usuario ou Prof. Saúde.
            fnInsereProfile();
        else //O usuário esta logado não tem perfil de Forum e não preencheu os campos relativos a este perfil, então, simplesmente inserimos sua experiencia.
            fnInsereExperiencia();
    }
    else
    {
        //Insere usuario + phone + profile. Após inserido os dados do usuario ele é logado e seu LoginTicket fica então disponível. 
        //No callback desta função verifica-se o usuario já esta logado e assim, carrega a propriedade LoginInfo (propriedade que definimos como global no javascript e que corresponde ao LoginTicket 
        Ajax.InsereUsuario(App.usuario.Name, App.usuario.Email, App.usuario.Birthday, App.usuario.CPF, App.usuario.Password, App.usuario.InfoSulAmerica, App.usuario.SmsInfo, App.phone.Code, App.phone.Number, App.Profile.Description, App.Profile.idType, End_CadastroUsuario);
    }
    //return true;
}

function fnInsereProfile()
{
    Ajax.InsereProfile(App.Profile, End_CadastroUsuario);
}

function End_CadastroUsuario(ret)
{
    if(ret == null) 
    {
        if(ret.MSG)        
            alert(ret.MSG);
        else
            alert('Ocorreu algum erro ao efetuar o cadastro ou o login. Sua experiência não pode ser gravada!');            
        return false;
    }
    LoginInfo = ret;
    fnInsereExperiencia();
}

function fnInsereExperiencia()
{
    Ajax.InsereExperiencia(App.experiencia, End_CadastroUsuarioExperiencia);
}

function End_CadastroUsuarioExperiencia(ret)
{
    if (ret)
        location.href = '../Comunidade/Experiencias.aspx?Id=' + App.experiencia.ThemeId;
}

function FinalizaPasso1()
{
    if(!ValidaPasso1())return false;
    App.experiencia.Anonimous = $('cbAnonimo').checked;
    App.experiencia.ThemeId = $('ddltemaCompartilhe').value;
    App.experiencia.Title = $('txtDescricaoTitulo').value;
    App.experiencia.Description = $('txtDescricao').value;
    if (App.UsuarioIdentificado)
    {
        CarregaPasso3();
        page.wizardCompartilhe.Show('visualizacao');
        return false;
    }
    return true;
}
var ValidaPasso1 = function()
{
    var valida = $('txtDescricaoTitulo').value != '';
    valida =  valida & ($('txtDescricao').value != '');        
    if(!valida) 
    {
        alert('É necessário preencher os campos!')
        return false;
    }
    
    return true;
}

function FinalizaPasso2()
{
    if (HasPerfilSaude()) //Com perfil saude
    {
        CarregaPasso3();
        return true;
    }
    else if (IsAuthenticated()) //Sem perfil saude
    {   
        //fazer o upload da foto;
        App.Profile.Description = $('txtSobreMim').value;
        App.Profile.idType = $('rbtPerfilParticipanteCaso3').checked ? App.Perfil.UsuarioComun : App.Perfil.ProfissionalSaude;
        App.UsuarioIdentificado = true;
        CarregaPasso3();
        if (EnviarImagem(page.wizardCompartilhe_upLoad2)) return false; //Para não avançar. O avanço será feito no callback do upload
        return true;
    }
    else //Sem login
    {
        if (!CarregarCadastroForum())
            return false;
        App.UsuarioIdentificado = true;
        CarregaPasso3();
        if (EnviarImagem(page.wizardCompartilhe_upLoad1)) return false; //Para não avançar. O avanço será feito no callback do upload
        return true;
    }
}
function EnviarImagem(campoUpload)
{
    if (campoUpload.value == '') return false;
    page.AjaxUpload(campoUpload,EnviarImagem_OnSuccess);
    return true;
}
function EnviarImagem_OnSuccess(ret)
{
    if (ret)
    {
        CarregaPasso3();
        page.wizardCompartilhe.Show('visualizacao');
    }
}
function GetNextButton()
{
    return $('btnContinuar');
}

function PopulaTemaComboCompartilhe()
{
    var ddltemaCompartilhe = $('ddltemaCompartilhe');
	    for(var i=0; i<Temas.length; i++)
        {
            var sName = Temas[i].Text;
            var sValue = Temas[i].Value
            ComboAddOption(ddltemaCompartilhe, sName, sValue);
        }
}

function SelecionaTema(idTema)
{
    var ddltemaCompartilhe = $('ddltemaCompartilhe');
    ddltemaCompartilhe.SetSelectedValue = Tesla.UI.ListControl.Functions.SetSelectedValue;
    ddltemaCompartilhe.SetSelectedValue(idTema);
}

function CarregaPasso3()
{   
    $('lblbTituloVisualizacao').innerHTML = App.experiencia.Title;
    $('lblNomeVizualizacao').innerHTML = App.experiencia.Anonimous?"Anônimo":GetUserName()||App.usuario.Name;
    $('lblDescricaoVizualizacao').innerHTML = App.experiencia.Description;
}

function ConfiguraPasso2ComPerfilSaude(idBtnContinuar)
{
    AddClassName(idBtnContinuar,'bt_continuar');
    $('lblNomePerfil').innerHTML = GetUserName();
    $('lblEmailPerfil').innerHTML = GetUserEmail();
    MostraDivPasso2('boxCaso2');
}

function ConfiguraPasso2SemPerfilSaude(idBtnContinuar)
{   
    MostraDivPasso2('boxCaso3');
    //carregar os checkbox de perfil
    CheckRadio();
    AddClassName(idBtnContinuar,'bt_continuar');
    $('lblNome').innerHTML = GetUserName();
    $('lblEmail').innerHTML = GetUserEmail();
    App.PerfilSaude = true;
}

function ConfiguraPasso2NaoAutenticado(idBtnContinuar)
{   
    AddClassName(idBtnContinuar,'bt_enviar');
    MostraDivPasso2('boxCaso1');
    CheckRadio();
}

function MostraDivPasso2(div)
{
    $('boxCaso1').style.display = "none";
    $('boxCaso2').style.display = "none";
    $('boxCaso3').style.display = "none";
    $(div).style.display = "";
}

function CarregarCadastroForum()
{
    var usu = {};
    var profile = {};
    var ph = {};
    usu.Name = $('txtIdentificacaoNome').value;
    usu.Email = $('txtIdentificacaoEmail').value;
    usu.Birthday = String.Format('{0}/{1}/{2}', $('txtIdentificacaoDiaNasc').value, $('txtIdentificacaoMesNasc').value, $('txtIdentificacaoAnoNasc').value);
    usu.CPF = $('txtIdentificacaoCpf').value;
    usu.Password = $('txtIdentificacaoSenha').value;
    var passwordConfirm = $('txtIdentificacaoRe_senha').value;
    usu.InfoSulAmerica = $('chkbox').checked;
    usu.SmsInfo = $('chkbox2').checked;
    profile.Description = $('txtIdentificacaoSobreMim').value;
    profile.idType = $('rbtPerfilParticipanteCaso1').checked ? App.Perfil.UsuarioComun : App.Perfil.ProfissionalSaude;
    ph.Code = $('txtIdentificacaoCeldd').value;
    ph.Number = $('txtIdentificacaoCel').value;
    App.usuario = usu;
    App.phone = ph;
    App.Profile = profile;
    return ValidaCadastroForum(passwordConfirm);
}

function LimpaStilo()
{
    //nome
    ClearClassName('txtIdentificacaoNome');
    ClearClassName('lblnome');
    //senha
    ClearClassName('lblre_senha');
    ClearClassName('lblsenha');
    ClearClassName('txtIdentificacaoSenha');
    ClearClassName('txtIdentificacaoRe_senha');
    //cpf
    ClearClassName('lblcpf');
    ClearClassName('txtIdentificacaoCpf');
    //email
    ClearClassName('lblemail');
    ClearClassName('txtIdentificacaoEmail');
    //birthday
    ClearClassName('lblniver');
    ClearClassName('txtIdentificacaoDiaNasc');
    ClearClassName('txtIdentificacaoMesNasc');
    ClearClassName('txtIdentificacaoAnoNasc');
    //Sms
    ClearClassName('txtIdentificacaoCeldd');
    ClearClassName('txtIdentificacaoCel');
    ClearClassName('lblcel');
    //Mensagem
    $('MsgFormulario').innerHTML = '';
    $('MsgFormulario').innerHTML = 'Para deixar sua experiência é preciso estar cadastrado no Community Marketing:';
    ClearClassName('MsgFormulario');
}

function ValidaCadastroForum(passwordConfirm)
{
    LimpaStilo();
    var valida = true;
    var validaSms = true;
    if(App.usuario.Name == '')//////nome
    {
        AddClassName('txtIdentificacaoNome', 'erro');
        AddClassName('lblnome', 'erro');
        $('txtIdentificacaoNome').value = '';
        valida = false;
    }
    if(App.usuario.Password == '' || (App.usuario.Password != passwordConfirm))//////senha
    {
        AddClassName('lblre_senha', 'erro');
        AddClassName('lblsenha', 'erro');
        AddClassName('txtIdentificacaoSenha', 'erro');
        AddClassName('txtIdentificacaoRe_senha', 'erro');
        $('txtIdentificacaoSenha').value = '';
        $('txtIdentificacaoRe_senha').value = '';
        valida = false;
    }
    if(App.usuario.CPF == '' || !(Validadores.ValidaNumero(App.usuario.CPF)) || !(Validadores.ValidaCPF(App.usuario.CPF)))///////cpf
    {
        AddClassName('lblcpf', 'erro');
        AddClassName('txtIdentificacaoCpf', 'erro');
        $('txtIdentificacaoCpf').value = '';
        valida = false;
    }
    
    if(App.usuario.Email == '' || !Validadores.ValidaEmail(App.usuario.Email))///////email
    {
        AddClassName('lblemail', 'erro');
        AddClassName('txtIdentificacaoEmail', 'erro');
        $('txtIdentificacaoEmail').value = '';
        valida = false;
    }
    else if(Ajax.VerificaUsuarioExistente(App.usuario.Email)) //email já cadastrado
    {
        $('txtIdentificacaoEmail').value = '';

        alert('O e-mail informado já está cadastrado no Fórum Saúde Para recuperar sua senha, clique em “esqueci a senha”, localizado na parte superior da tela e informe o e-mail cadastrado. Sua senha será enviada para o e-mail informado.');
        valida = false;
    }
    
    //VerificaUsuarioExistente
    if(Validadores.ValidaData(App.usuario.Birthday) == null)///////data
    {
        AddClassName('lblniver', 'erro');
        AddClassName('txtIdentificacaoDiaNasc', 'erro');
        AddClassName('txtIdentificacaoMesNasc', 'erro');
        AddClassName('txtIdentificacaoAnoNasc', 'erro');
        $('txtIdentificacaoDiaNasc').value = '';
        $('txtIdentificacaoMesNasc').value = '';
        $('txtIdentificacaoAnoNasc').value = '';
        valida = false;
    }
    if($('chkbox2').checked && $('txtIdentificacaoCeldd').value == '' && $('txtIdentificacaoCel').value == '')/////regra para envio de sms
	{
	    AddClassName('txtIdentificacaoCeldd', 'erro');
	    AddClassName('txtIdentificacaoCel', 'erro');
	    AddClassName('lblcel', 'erro');
	    validaSms = false;
	}
    if(!valida)//mensagem
    {
        $('MsgFormulario').innerHTML = '';
	    $('MsgFormulario').innerHTML = "É preciso preencher os campos obrigatórios corretamente.";
	    AddClassName('MsgFormulario', 'erro');
	    window.scroll(0,0);
	    return valida;
	}
	if(!validaSms)/////regra para envio de sms
	{
	    $('MsgFormulario').innerHTML = '';
        $('MsgFormulario').innerHTML ="Para receber novidades por SMS é necessário informar o número do celular.";
        AddClassName('MsgFormulario', 'erro');
        window.scroll(0,0);
	    return false;
	}
	return valida;
}

function End_EfetuaLoginCompartilhe(ret)
{
    if(ret == null) 
    {
        alert('O login não foi efetuado!');
        return false;
    }
    LoginInfo = ret;
    if(HasPerfilSaude())
    {
        CarregaPasso3();
        page.wizardCompartilhe.Show('visualizacao');
    }
    else
    {
        ConfiguraPasso2SemPerfilSaude('btnContinuar');
        page.wizardCompartilhe.Show('identificacao');
    }
}

function HabilitaCorrecaoExperienciaPassoFinal()
{
    page.wizardCompartilhe.Show('descricao');
    ConfiguraBotaoContinuar(0);
}

