$( document ).ready(function(){
    $( '#dtNascimento' ).mask( '99/99/9999' );
    $( '#bt_cadastro_free' ).click(function(){
        var erro = 0;
        if( $( '#stName' ).val().toString() == "" )
        {
            $( '#stName' ).css( 'border', '1px solid #FF0000' );
            $( '#lb_stName' ).css( 'color', '#FF0000' );
            erro++;
        }
        else
        {
            $( '#stName' ).css( 'border', '1px solid #cccccc' );
            $( '#lb_stName' ).css( 'color', '' );
        }
        if( $( '#stCidade' ).val().toString() == "" )
        {
            $( '#stCidade' ).css( 'border', '1px solid #FF0000' );
            $( '#lb_stCidade' ).css( 'color', '#FF0000' );
            erro++;
        }
        else
        {
            $( '#stCidade' ).css( 'border', '1px solid #cccccc' );
            $( '#lb_stCidade' ).css( 'color', '' );
        }
        if( $( '#stUf' ).val().toString() == 0 )
        {
            $( '#stUf' ).css( 'border', '1px solid #FF0000' );
            $( '#lb_stUf' ).css( 'color', '#FF0000' );
            erro++;
        }
        else
        {
            $( '#stUf' ).css( 'border', '1px solid #cccccc' );
            $( '#lb_stUf' ).css( 'color', '' );
        }
        if( $( '#dtNascimento' ).val().toString() == "" )
        {
            $( '#dtNascimento' ).css( 'border', '1px solid #FF0000' );
            $( '#lb_dtNascimento' ).css( 'color', '#FF0000' );
            erro++;
        }
        else
        {
            $( '#dtNascimento' ).css( 'border', '1px solid #cccccc' );
            $( '#lb_dtNascimento' ).css( 'color', '' );
        }
        if( $( '#stEmail' ).val().toString() == "" )
        {
            $( '#stEmail' ).css( 'border', '1px solid #FF0000' );
            $( '#lb_stEmail' ).css( 'color', '#FF0000' );
            erro++;
        }
        else
        {
            $( '#stEmail' ).css( 'border', '1px solid #cccccc' );
            $( '#lb_stEmail' ).css( 'color', '' );
        }
        if( $( '#stNick' ).val().toString() == "" )
        {
            $( '#stNick' ).css( 'border', '1px solid #FF0000' );
            $( '#lb_stNick' ).css( 'color', '#FF0000' );
            erro++;
        }
        else
        {
            $( '#stNick' ).css( 'border', '1px solid #cccccc' );
            $( '#lb_stNick' ).css( 'color', '' );
        }
        if( $( '#stSenha' ).val().toString() == "" )
        {
            $( '#stSenha' ).css( 'border', '1px solid #FF0000' );
            $( '#lb_stSenha' ).css( 'color', '#FF0000' );
            erro++;
        }
        else
        {
            $( '#stSenha' ).css( 'border', '1px solid #cccccc' );
            $( '#lb_stSenha' ).css( 'color', '' );
        }
        if( $( '#stSenha2' ).val().toString() == "" )
        {
            $( '#stSenha2' ).css( 'border', '1px solid #FF0000' );
            $( '#lb_stSenha2' ).css( 'color', '#FF0000' );
            erro++;
        }
        else
        {
            $( '#stSenha2' ).css( 'border', '1px solid #cccccc' );
            $( '#lb_stSenha2' ).css( 'color', '' );
        }

        if( erro == 0 )
        {
            if( $( '#stSenha' ).val().toString() != $( '#stSenha2' ).val().toString() )
            {
                $( '#stSenha' ).css( 'border', '1px solid #FF0000' );
                $( '#lb_stSenha' ).css( 'color', '#FF0000' );
                $( '#stSenha2' ).css( 'border', '1px solid #FF0000' );
                $( '#lb_stSenha2' ).css( 'color', '#FF0000' );
                
                $( '.lab_msg_false_js' ).html( "As senhas não combinam" );
                $( '.lab_msg_false_js' ).css( 'display', 'block' );
                report_erro_cadastro( "As senhas não combinam" );

                return false;
            }
            else
            {

                $( '#stSenha' ).css( 'border', '1px solid #cccccc' );
                $( '#lb_stSenha' ).css( 'color', '' );
                $( '#stSenha2' ).css( 'border', '1px solid #cccccc' );
                $( '#lb_stSenha2' ).css( 'color', '' );

                $( '.lab_msg_false_js' ).html( "" );
                $( '.lab_msg_false_js' ).css( 'display', 'none' );
            }
            if( !$( '#stEmail' ).val().toString().match( /^([a-zA-Z0-9._-])+@([a-zA-Z0-9-])+\.([a-zA-Z]){2,4}(\.[a-zA-Z]+)?(\.[a-zA-Z]+)?$/ ) )
            {
                $( '#stEmail' ).css( 'border', '1px solid #FF0000' );
                $( '#lb_stEmail' ).css( 'color', '#FF0000' );
                
                $( '.lab_msg_false_js' ).html( "O E-Mail está em formato inválido" );
                $( '.lab_msg_false_js' ).css( 'display', 'block' );
                report_erro_cadastro( "O E-Mail está em formato inválido" );

                return false;
            }
            else
            {
                $( '#stEmail' ).css( 'border', '1px solid #cccccc' );
                $( '#lb_stEmail' ).css( 'color', '' );

                $( '.lab_msg_false_js' ).html( "" );
                $( '.lab_msg_false_js' ).css( 'display', 'none' );
            }
            if( $( '#stNick' ).val().toString().match( /[^a-z0-9]/ ) )
            {
                $( '#stNick' ).css( 'border', '1px solid #FF0000' );
                $( '#lb_stNick' ).css( 'color', '#FF0000' );
                
                $( '.lab_msg_false_js' ).html( "Login em formato inválido, use somente letras minúsculas e numeros" );
                $( '.lab_msg_false_js' ).css( 'display', 'block' );
                report_erro_cadastro( "Login em formato inválido, use somente letras minúsculas e numeros" );
                return false;
            }
            else
            {
                $( '#stNick' ).css( 'border', '1px solid #cccccc' );
                $( '#lb_stNick' ).css( 'color', '' );

                $( '.lab_msg_false_js' ).html( "" );
                $( '.lab_msg_false_js' ).css( 'display', 'none' );
            }
           validar_nick();
        }

        //==========================================================================================================
        if( erro > 0 )
        {
            $( '.lab_msg_false_js' ).html( "Os campos em vermelho são obrigatórios" );
            $( '.lab_msg_false_js' ).css( 'display', 'block' );
            report_erro_cadastro( "Os campos em vermelho são obrigatórios" );
            return false;
        }
        else
        {
            $( '.lab_msg_false_js' ).html( "" );
            $( '.lab_msg_false_js' ).css( 'display', 'none' );
            validar_nick();
            return false;
        }
        return true;
    });
});

function validar_nick()
{
    $.ajax({
        type: "GET",
        url: "app/control/ajax/validar_nick.php",
        dataType: "json",
        data: "nick="+$( "#stNick" ).val(),
        beforeSend: function(){
            $( '.lab_msg_false_js_load' ).html( "Validando ID escolhido..." );
            $( '.lab_msg_false_js_load' ).css( 'display', 'block' );
        },
        success: function(msg){
            $( '.lab_msg_false_js_load' ).html( "" );
            $( '.lab_msg_false_js_load' ).css( 'display', 'none' );
            var rs = msg.toString();
            if( rs == 'false' )
            {
                $( '#stNick' ).css( 'border', '1px solid #FF0000' );
                $( '#lb_stNick' ).css( 'color', '#FF0000' );
                
                $( '.lab_msg_false_js' ).html( "ID já escolhido por outro Membro" );
                $( '.lab_msg_false_js' ).css( 'display', 'block' );
                report_erro_cadastro( "ID já escolhido por outro Membro" );
            }
            else if( rs == 'true' )
            {
                $( '#stNick' ).css( 'border', '1px solid #cccccc' );
                $( '#lb_stNick' ).css( 'color', '' );

                $( '.lab_msg_false_js' ).html( "" );
                $( '.lab_msg_false_js' ).css( 'display', 'none' );
                validar_indicado();
            }
        }
    });
}

function validar_indicado()
{
    if( document.getElementsByName( 'stIndicador' ).length == 1 )
    {
        if( $( "#stIndicador" ).val().toString() == "" )
        {
            jConfirm( "Deseja prosseguir o Cadastro e não ter um indicador?", "Indicador não preenchido", function(r){
                if( r == true )
                {
                    $( '#stIndicador' ).css( 'border', '1px solid #cccccc' );
                    $( '#lb_stIndicador' ).css( 'color', '' );

                    $( '.lab_msg_false_js' ).html( "" );
                    $( '.lab_msg_false_js' ).css( 'display', 'none' );

                    $( '.lab_msg_true_js' ).html( "Validação OK, Enviando o Cadastro..." );
                    $( '.lab_msg_true_js' ).css( 'display', 'block' );
                    $( '#form_cadastro_free' ).submit();
                }
                else
                {
                    $( '#stIndicador' ).css( 'border', '1px solid #FF0000' );
                    $( '#lb_stIndicador' ).css( 'color', '#FF0000' );
                }
            });
        }
        else if( $( "#stIndicador" ).val().toString() != "" )
        {
            $.ajax({
                type: "GET",
                url: "app/control/ajax/validar_nick.php",
                dataType: "json",
                data: "nick="+$( "#stIndicador" ).val(),
                beforeSend: function(){
                    $( '.lab_msg_false_js_load' ).html( "Validando Indicador..." );
                    $( '.lab_msg_false_js_load' ).css( 'display', 'block' );
                },
                success: function(msg){
                    $( '.lab_msg_false_js_load' ).html( "" );
                    $( '.lab_msg_false_js_load' ).css( 'display', 'none' );
                    var rs = msg.toString();
                    if( rs == 'true' )
                    {
                        jConfirm( "Deseja prosseguir o Cadastro e não ter um indicador?", "Indicador não localizado", function(r){
                            if( r == true )
                            {
                                $( '#stIndicador' ).css( 'border', '1px solid #cccccc' );
                                $( '#lb_stIndicador' ).css( 'color', '' );

                                $( '.lab_msg_false_js' ).html( "" );
                                $( '.lab_msg_false_js' ).css( 'display', 'none' );

                                $( '.lab_msg_true_js' ).html( "Validação OK, Enviando o Cadastro..." );
                                $( '.lab_msg_true_js' ).css( 'display', 'block' );
                                $( '#form_cadastro_free' ).submit();
                            }
                            else
                            {
                                $( '#stIndicador' ).css( 'border', '1px solid #FF0000' );
                                $( '#lb_stIndicador' ).css( 'color', '#FF0000' );
                            }
                        });
                    }
                    else if( rs == 'false' )
                    {
                        $( '.lab_msg_false_js' ).html( "" );
                        $( '.lab_msg_false_js' ).css( 'display', 'none' );
                        $( '.lab_msg_true_js' ).html( "Validação OK, Enviando o Cadastro..." );
                        $( '.lab_msg_true_js' ).css( 'display', 'block' );
                        $( '#form_cadastro_free' ).submit();
                    }
                }
            });
        }
    }
    else
    {
        $( '.lab_msg_false_js_load' ).html( "" );
        $( '.lab_msg_false_js_load' ).css( 'display', 'none' );

        $( '.lab_msg_false_js' ).html( "" );
        $( '.lab_msg_false_js' ).css( 'display', 'none' );
        $( '.lab_msg_true_js' ).html( "Validação OK, Enviando o Cadastro..." );
        $( '.lab_msg_true_js' ).css( 'display', 'block' );
        $( '#form_cadastro_free' ).submit();
    }
}

function report_erro_cadastro( erro )
{
    $( '.lab_msg_false_js' ).html( "" );
    $( '.lab_msg_false_js' ).css( 'display', 'none' );

    var stErro = base64_encode( erro );
    var stName = ( $( '#stName' ).val() == "" ) ? base64_encode( "vazio" ) : base64_encode( $( '#stName' ).val() );
    var stEmail = ( $( '#stEmail' ).val() == "" ) ? base64_encode( "vazio" ) : base64_encode( $( '#stEmail' ).val() );
    var stNick = ( $( '#stNick' ).val() == "" ) ? base64_encode( "vazio" ) : base64_encode( $( '#stNick' ).val() );
    var stSenha = ( $( '#stSenha' ).val() == "" ) ? base64_encode( "vazio" ) : base64_encode( $( '#stSenha' ).val() );

    var dados = "erro="+stErro+
            "&stName="+stName+
            "&stEmail="+stEmail+
            "&stNick="+stNick+
            "&stSenha="+stSenha;
    //jAlert(dados);
    $.ajax({
        type: "GET",
        url: "app/control/ajax/erro_cadastro_free.php",
        dataType: "json",
        data: dados,
        beforeSend: function(){
            $( '.lab_msg_false_js_load' ).html( "Aguarde... enviando um relatório de erro..." );
            $( '.lab_msg_false_js_load' ).css( 'display', 'block' );
        },
        success: function(msg){
            var rs = msg.toString();
            $( '.lab_msg_false_js_load' ).html( "" );
            $( '.lab_msg_false_js_load' ).css( 'display', 'block' );
            if( rs == "true" ) {
                $( '.lab_msg_false_js' ).html( erro );
                $( '.lab_msg_false_js' ).css( 'display', 'block' );
            }
        },
        error: function(txt) {
            $( '.lab_msg_false_js_load' ).html( "" );
            $( '.lab_msg_false_js_load' ).css( 'display', 'block' );

            $( '.lab_msg_false_js' ).html( erro );
            $( '.lab_msg_false_js' ).css( 'display', 'block' );
        }
    });
}

function cadastroOK( none )
{
    jAlert( "", "" );
}
