validator = Object;

$(document).ready(
    function() {
        //Adiciona Event Handlers.
        $('#frm_cadastro').submit(formCadastroSubmit);
        $('#frm_login').submit(formLoginSubmit);
        $('#isento').change(checkboxIsentoChange);
        $('input').focus(inputFocus);
        $('input').blur(inputBlur);
        $('input[name=cep]').blur(checkCEP);

    });
    var cepIsValid = false;
    checkCEP =  function()
    {
        $.get('/Usuario/checkCEP/',{'cep':$(this).val()},
            function(data)
            {
                if(!data.Valid)
                {
                	setErrorMessage('cep', 'CEP inválido');
                    cepIsValid = false;
                    $('#img_continuar_login').show();
                    $('#img_loading_login').hide();
                    return;
                }
                cleanValidationMessages();
                $('input[name=endereco]').val(data.Endereco);
                $('input[name=bairro]').val(data.Bairro);
                $('#estado').html(data.Estado);
                $('#cidade').html(data.Cidade);
                cepIsValid = true;
            },'json')
    }
    
    checkboxIsentoChange = function() {
        if ($('#isento').attr('checked')) {
            $('#txt_insc').rules('remove', 'required');
            $('#txt_insc').focus();
            $('#txt_email').focus();
        }
        else {
            $('#txt_insc').focus();
        }
    }

    inputFocus = function() {
        if($(this).val() == '')
        $(this).parent().find('em').hide();
    }
    
    inputBlur = function() {
        if ($(this).val() == '')
            $(this).parent().find('em').show();
    }

    formLoginSubmit = function() {
        var serial = $('#frm_login').serialize() + '&json=true';
        if(!cepIsValid)
            return;
            
        $('#img_continuar_login').hide();
        $('#img_loading_login').show();
        
            
        $.post('/Autenticacao/Login', serial,
            function(data) {
                if (data.IsValid) {
                    $('#frm_login').unbind('submit', formLoginSubmit)
                    $('#frm_login').submit();
                }
                else {
                    $('#img_continuar_login').show();
                    $('#img_loading_login').hide();
                    var m = data.Messages;
                    cleanValidationMessages()
                    if (m.email != null)
                        setErrorMessage('email', m.email, '#frm_login');
                    if (m.senha != null)
                        setErrorMessage('senha', m.senha, '#frm_login');
                }
            }
        ,'json');
        return false;
    }


    formCadastroSubmit = function() {
        $('#img_continuar').hide();
        $('#img_loading').show();
        sendFormCadastro();
        return false;
    }

    
    
    sendFormCadastro = function() {
        var serial = $('#frm_cadastro').serialize()
        serial += "&json=true";
        
        $.post('/Autenticacao/Signin/', serial,
            function(data) {

                if (data.IsValid) {
                    $('#frm_cadastro').unbind('submit', formCadastroSubmit)
                    $('#frm_cadastro').submit();
                }
                else {
                    $('#img_continuar').show();
                    $('#img_loading').hide();

                    m = data.Messages
                    
                    cleanValidationMessages()
                    for (i in m)
                        setErrorMessage(i, m[i])
                }
            }, 'json');
        return validator;
    }
