$(document).ready(function() {
    $.datepicker.regional["pt-BR"]={
        closeText:"Fechar",
        prevText:"&#x3c;Anterior",
        nextText:"Pr&oacute;ximo&#x3e;",
        currentText:"Hoje",
        monthNames:["Janeiro","Fevereiro","Mar&ccedil;o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],
        monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],
        dayNames:["Domingo","Segunda-feira","Ter&ccedil;a-feira","Quarta-feira","Quinta-feira","Sexta-feira","S&aacute;bado"],
        dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","S&aacute;b"],
        dayNamesMin:["Dom","Seg","Ter","Qua","Qui","Sex","S&aacute;b"],
        weekHeader:"Sm",
        dateFormat:"dd/mm/yy",
        firstDay:0,
        isRTL:false,
        showMonthAfterYear:false,
        defaultDate: "-25y",
        changeYear: true,
        changeMonth: true,
        yearRange: "1960:1996",
        yearSuffix:""};
  $.datepicker.setDefaults($.datepicker.regional['pt-BR']);

    $('.cpf').mask('999.999.999-99');
    $('.cep').mask('99999-999');
    $('.telefone').mask('(99)9999-9999');

    $('.data').datepicker();

    $('#radio-sexo,#radio-lingua').buttonset();

    /**
     * CArregar cidades quando escolher o estado
     */
    $("#estado").change(function() {
        $this = $(this);
        $.ajax({
            url:    "actions/lista_cidades.php",
            data:   'estado='+$(this).val(),
            type:   "POST",
            beforeSend: function() {
                $("#cidades")
                    .attr('disabled','disabled')
                    .html('<option value="">Carregando Cidades...</option>');
                $this.next().removeClass('hide');
            },
            success:    function(data) {

                if( data != "" ) {
                    $("#cidades")
                        .attr('disabled','')
                        .html(data);
                    $this.next().addClass('hide');
                } else {
                    $("#cidades")
                        .attr('disabled','disabled')
                        .html('<option value="">-- Selecione um estado --</option>')
                }
            }
        })
    })

    $cursosVizivali = {
        '' : 'Selecione um curso',
        'administracao' : "Administra&ccedil;&atilde;o",
        'artes' : "Artes Visuais",
        'letras' : "Letras",
        'pedagogia' : "Pedagogia",
        'sistemas' : "Sistemas para Internet"
    };

    $cursosFaf = {
        '' : 'Selecione um curso',
        'administracao' : "Administra&ccedil;&atilde;o",
        'letras' : "Letras",
        'pedagogia' : "Pedagogia",
        'sistemas' : "Sistemas para Internet",
        'matematica' : "Matem&aacute;tica",
        'contabeis' : "Ci&ecirc;ncias Cont&aacute;beis"
    };

    $("#unidade").change(function() {
        $this = $(this);

        $.ajax({
            url:    "actions/exibe_cursos.php",
            data:   "unidade=" + $this.val(),
            type:   "GET",
            dataType:   "json",
            beforeSend:     function() {
              $("#opcao1,#opcao2,#opcao3").html('<option value="">Aguarde, carregando cursos...</option>');
            },
            success:    function(data) {
                if( data ) {
                    $("#opcao1,#opcao2,#opcao3").html('<option value="">-- Selecione um curso --</option>');
                    jQuery.each(data, function( e,i ) {
                        $opt = $("<option></option>")
                            .val(e)
                            .html(i)
                            .attr('id',e);
                        $($opt).appendTo("#opcao1,#opcao2,#opcao3");
                    })

                    $("#opcao2,#opcao3").attr('disabled','disabled');
                } else {
                    $("#opcao1,#opcao2,#opcao3").html('<option value="">-- Selecione uma unidade --</option>');
                }
            }
        })

        if( $this.val() == '1000000003') {
            $("#curso_indicacao").html("");
            jQuery.each($cursosVizivali,function(e,i) {
                $indicacaoOpt = $("<option></option")
                    .val(e)
                    .html(i)
                    .attr('id',e);
                $($indicacaoOpt).appendTo("#curso_indicacao");
            })
        } else {
            $("#curso_indicacao").html("");
           jQuery.each($cursosFaf,function(e,i) {
                $indicacaoOpt = $("<option></option")
                    .val(e)
                    .html(i)
                    .attr('id',e);
                $($indicacaoOpt).appendTo("#curso_indicacao");
            })
        }
    })

    $("#opcao1").change(function() {
        $val = $(this).val();

        $("#opcao2,#opcao3")
            .find('option').attr('disabled','').end()
            .find('option[value=' + $val +']').attr('disabled','disabled').end()
            .attr("disabled","disabled")
            .val("");
        $("#opcao2")
            .attr('disabled','')
            .val("");

    })

    $("#opcao2").change(function() {
        $val = $(this).val();
        $opcao1 = $("#opcao1").val();


         $("#opcao3")
            .find('option').attr('disabled','').end()
            .find('option[value=' + $val +']').attr('disabled','disabled').end()
            .find('option[value=' + $opcao1 +']').attr('disabled','disabled').end()
            .attr("disabled","disabled");
         $("#opcao3")
            .attr('disabled','')
            .val("");
    })

    $.validator.addMethod('validarCursos', function( value,element,param )  {
        $opcao1 = $("#opcao1").val();
        $opcao2 = $("#opcao2").val();
        $opcao3 = $("#opcao3").val();

        if(!$opcao1 || !$opcao2 || !$opcao3) {
            return false;
        } else {
            return true;
        }
    })


    $.validator.addMethod('cpf',function(value,element,param) {
       $return = true;

       if( value ) {
       var invalidos = new Array(
            '111.111.111-11',
            '222.222.222-22',
            '333.333.333-33',
            '444.444.444-44',
            '555.555.555-55',
            '666.666.666-66',
            '777.777.777-77',
            '888.888.888-88',
            '999.999.999-99',
            '000.000.000-00'
        );
        
        for( var i = 0;i<invalidos.length;i++) {
            if( invalidos[i] == value) {
                $return = false;
            }
        }

        add = 0;

        value = value.replace("-","");
        value = value.replace(/\./g,"");

        //validando primeiro digito
        for(var i=0; i < 9; i++ ) {
            add += parseInt(value.charAt(i)) * (10-i);
        }

        rev = 11 - ( add % 11 );

        if( rev == 10 || rev == 11) {
            rev = 0;
        }

        if( rev != parseInt( value.charAt(9) )) {
            $return = false;
        }


        //validando segundo digito

        add = 0;
        for(var i=0; i < 10; i++ ) {
            add += parseInt(value.charAt(i)) * (11-i);
        }

                rev = 11 - ( add % 11 );

        if( rev == 10 || rev == 11) {
            rev = 0;
        }

        if( rev != parseInt( value.charAt(10) )) {
            $return = false;
        }
       }

        return $return;
    })

    $("#frmInscricao").validate({
        rules: {
            'nome' : 'required',
            'rg' : 'required',
            'orgao_exp' : 'required',
            'cpf' : 'cpf',
            'data_nasc' : 'required',
            'rua' : 'required',
            'estado' : 'required',
            'cidades' : 'required',
            'email' : 'email',
            'unidade' : 'required',
            'opcoes_candidato[]' : 'validarCursos',

            'id_local' : 'required',
            'curso_indicacao' : {
                'required' : '#nome_indicacao:filled'
            },
            'periodo_indicacao' : {
                'number' : true,
                'required' : '#nome_indicacao:filled'
            }
        },
        messages: {
            'nome' : 'Nome n&atilde;o pode estar em branco',
            'rg' : 'RG n&atilde;o pode estar em branco',
            'orgao_exp' : '&Oacute;rg&atilde;o Expedidor n&atilde;o pode estar em branco',
            'cpf' : 'CPF inv&aacute;lido',
            'data_nasc' : 'Data de Nascimento n&atilde;o pode estar em branco',
            'rua' : 'Rua n&atilde;o pode estar em branco',
            'estado' : 'Por favor, selecione um estado',
            'cidades' : 'Por favor, selecione uma cidade ',
            'email' : 'Informe um email v&aacute;lido',
            'unidade' : 'Por favor, selecione uma unidade',
            'opcoes_candidato[]' : 'Por favor, selecione todas as op&ccedil;&otilde;es',

            'id_local' : 'Por favor, selecione um local de prova',
            'curso_indicacao' : {
                'required' : 'Por favor, selecione um curso'
            },
            'periodo_indicacao' : {
                'number' : 'Per&iacute;odo deve ser um n&uacute;mero',
                'required' : 'Por favor, informe o per&iacute;odo do acad&ecirc;mico'
            }




        }
    })

    



})
