$(document).ready( function () {
    $( "#main_form" ).validate( {
        rules: {
            username: {
                required: true,
                minlength: 4,
                maxlength: 64,
                remote: {
                    url: "j_check_dup.php",
                    type: "post",
                    data: {
                        type:'username',
                        'value':function(){
                            return $('#username').val();
                        }
                    },
                    dataType: 'json'
                }
            },
            password: {
                required: true,
                minlength: 6
            },
            confirm_password: {
                required: true,
                minlength: 6,
                equalTo: "#password"
            },
            nickname:{
                required: true,
                maxlength: 9,
                remote: {
                    url: "j_check_dup.php",
                    type: "post",
                    data: {
                        type:'nickname',
                        'value':function(){
                            return $('#nickname').val();
                        }
                    },
                    dataType: 'json'
                }
            },
            secret_agree: "required",
            secret_agree2: "required"
        },
        messages: {
            username: {
                required: "유저명을 입력해주세요",
                minlength: "{0}글자 이상 입력하셔야 합니다",
                maxlength: '{0}자를 넘을 수 없습니다'
            },
            password: {
                required: "비밀번호를 입력해주세요",
                minlength: "비밀번호는 적어도 {0}글자 이상이어야 합니다"
            },
            confirm_password: {
                required: "비밀번호를 입력해주세요",
                minlength: "비밀번호는 적어도 {0}글자 이상이어야 합니다",
                equalTo: "비밀번호가 일치하지 않습니다"
            },
            nickname: {
                required: "닉네임을 입력해주세요",
                maxlength: '닉네임은 {0}자를 넘을 수 없습니다'
            },
            secret_agree: "동의해야만 가입하실 수 있습니다.",
            secret_agree2: "동의해야만 가입하실 수 있습니다."
        },
        errorElement: "div",
        errorPlacement: function ( error, element ) {
            // Add the `help-block` class to the error element
            error.addClass( "invalid-feedback" );

            if ( element.prop( "type" ) === "checkbox" ) {
                error.insertAfter( element.parent( "label" ) );
            } else {
                error.insertAfter( element );
            }
        },
        highlight: function ( element, errorClass, validClass ) {
            $( element ).addClass( "is-invalid" ).removeClass( "is-valid" );
        },
        unhighlight: function (element, errorClass, validClass) {
            $( element ).addClass( "is-valid" ).removeClass( "is-invalid" );
        }
    } );

    $( "#main_form" ).submit(function(){
        if(!$("#main_form").valid()){
            return;
        }
        var raw_password = $('#password').val();
        var salt = $('#global_salt').val();
        console.log(salt + raw_password + salt);
        var hash_pw = sha512(salt + raw_password + salt);

        $.post({
            url:'j_join_process.php',
            dataType:'json',
            data:{
                'secret_agree':$('#secret_agree').prop("checked"),
                'secret_agree2':$('#secret_agree2').prop("checked"),
                'third_use':$('#third_use').prop("checked"),
                'username':$('#username').val(),
                'password':hash_pw,
                'nickname':$('#nickname').val(),

            }
        }).then(function(obj){
            if(!obj.result){
                alert(obj.reason);
            }
            else{
                alert('정상적으로 가입되었습니다.');
            }

            window.location.href = "../";

        });
        console.log('Yes!');
        return false;
    });
} );


$(function($){
    $.get('../terms.1.html').then(function(txt){
        $('#terms1').html(txt);
    });

    $.get('../terms.2.html').then(function(txt){
        $('#terms2').html(txt);
    });
});