$(document).ready(function(){

    // initialise plugins
    //$('ul#menu-mainmenu').superfish();

    $('#lista-perfis a').removeClass('active');
    $('#tod a').addClass('active');

    $('#tod').click(function(){
        $('#lista-perfis a').removeClass('active');
        $('#tod a').addClass('active');
        $('.lista-recursos li').show();
    });

    $('#inv').click(function(){
        $('#lista-perfis a').removeClass('active');
        $('#inv a').addClass('active');
        $('#138,#177,#113,#110,#138,#159,#175,#107').hide();
        $('#181,#179,#165,#183,#141,#560').show();
    });

    $('#emp').click(function(){
        $('#lista-perfis a').removeClass('active');
        $('#emp a').addClass('active');
        $('#181,#179,#183,#138,#177,#113,#110,#138,#183,#107,#560').hide();
        $('#159,#165,#175,#141').show();
    });

    $('#pou').click(function(){
        $('#lista-perfis a').removeClass('active');
        $('#pou a').addClass('active');
        $('#181,#179,#165,#183,#141,#159,#110,#138,#107,#159,#175,#560').hide();
        $('#138,#165,#177,#113,#141').show();
    });

    $('#fam').click(function(){
        $('#lista-perfis a').removeClass('active');
        $('#fam a').addClass('active');
        $('#181,#179,#165,#107,#183,#177,#113,#165,#175,#560').hide();
        $('#159,#110,#138,#183,#141').show();
    });

    // -- Faz com que a lateral da página de acessórios desça com a página.
    $('#floating-sidebar #sidebar').floatingbanner();
    $('#lista-acessorio a').removeClass('active');

    $('#lista-acessorio a:first').addClass('active');

    $('#acessorio-backup_online').click(function(){
        $('#lista-acessorio a').removeClass('active');
        $('#acessorio-backup_online a').addClass('active');
        $.scrollTo('595px', 1800);
    });

    $('#acessorio-curso-financedesktop').click(function(){
        $('#lista-acessorio a').removeClass('active');
        $('#acessorio-curso-financedesktop a').addClass('active');
        $.scrollTo('.superwrapper', 1800);
    });

    $('#acessorio-doutor_financas').click(function(){
        $('#lista-acessorio a').removeClass('active');
        $('#acessorio-doutor_financas a').addClass('active');
        $.scrollTo('#3', 1800);
    });

    // -- Compara o hash da url com o valor passado no link
    //    e executa o click do perfil na página de recursos e acessórios
    var hash = window.location.hash;
    if( hash == '#poupadores'){
        $('#pou').click();
        $.scrollTo('h2', 1800);
    } else if( hash == '#investidores'){
        $('#inv').click();
        $.scrollTo('h2', 1800);
    } else if( hash == '#empreendedores'){
        $('#emp').click();
        $.scrollTo('h2', 1800);
    } else if ( hash == '#familia'){
        $('#fam').click();
        $.scrollTo('h2', 1800);
    };

    if( hash == '#backup_online' ){
        $('#acessorio-backup_online').click();
        window.location.hash = '';
    } else if( hash == '#curso_financedesktop' ){
        $('#acessorio-curso-financedesktop').click();
        window.location.hash = '';
    } else if( hash == '#drfinancas' ){
        $('#acessorio-doutor_financas').click();
        window.location.hash = '';
    };
    // --

    $('.dl-destaque-top a').click(function(){
        $.scrollTo('.dl-financedesktop-mission', 1800);
    });

    // -- Valida o formulário de Login
    $("#user-login").validate({
        rules: {
            email: {
                required: true,
                regex: /^[\w\d\.+-]+@[\w\d]+(\.[\w\d]+)+$/
            },
            password: {
                required: true
            }
        },
        messages: {
            email: {
                required: 'Este campo é obrigatório.'
            },
            password: {
                required: 'Este campo é obrigatório.'
            }
        }
    });

    // -- Valida o formulário de Cadastro
    $("#user-register").validate({
        rules: {
            first_name: "required",
            last_name: "required",
            username: {
                required: true,
                regex_username: /^[a-zA-Z0-9][a-zA-Z0-9_\.-]{0,39}$/,
                regex_uppercase: /^[a-z0-9_\.-]{0,40}$/
            },
            email: {
                required: true,
                email: true,
                regex: /^[\w\d\.+-]+@[\w\d]+(\.[\w\d]+)+$/
            },
            password: {
                required: true,
                minlength: 6
            },
            password2: {
                required: true,
                equalTo: "#id_password"
            }
        },
        messages: {
            first_name: {
                required: "Este campo é orbigatório."
            },
            last_name: {
                required: "Este campo é obrigatório."
            },
            username: {
                required: 'Este campo é obrigatório.'
            },
            email: {
                required: 'Este campo é obrigatório.',
                email: 'Digite um endereço de email válido.'
            },
            password: {
                required: 'Este campo é obrigatório.',
                minlength: 'A senha deve possuir no mínimo 6 caracteres.'
            },
            password2: {
                required: 'Este campo é obrigatório.',
            	equalTo: 'Repita a senha digitada acima.'
            }
        }
    });
    // --

    // -- Adiciona método para suportar Expressão Regular
    jQuery.validator.addMethod("regex", function(value, element, regexp) {
        var check = false;
        var re = new RegExp(regexp);
            return this.optional(element) || re.test(value);
    },"Apenas letras, números e sublinhado são permitidos.");

    jQuery.validator.addMethod("regex_uppercase", function(value, element, regexp) {
        var check = false;
        var re = new RegExp(regexp);
            return this.optional(element) || re.test(value);
    },"Apenas letras minúsculas são permitidas.");

    jQuery.validator.addMethod("regex_username", function(value, element, regexp) {
        var check = false;
        var re = new RegExp(regexp);
            return this.optional(element) || re.test(value);
    },"Apenas letras, números e sublinhado são permitidos.");
    // --


 });
