$(document).ready(function () {

function disableForm(form) {

    $(form).find('input[type=submit]').attr('disabled', 'disabled');
    
}

function enableForm(form) {

    $(form).find('input[type=submit]').removeAttr('disabled');

}

/* Validating signup form */
function validateLive(el, targetMsgEl, url) {

        var validateTargetMsgEl = targetMsgEl;
        
        el.keyup(function () {
            var t = this;

            if(this.value.length > 0) {

                if (this.value != this.lastValue) {

                    if (this.timer) clearTimeout(this.timer);

                    validateTargetMsgEl.removeClass('error').html('<span class="preloader-form">'+ l.checking +'</span>');

                    this.timer = setTimeout(function () {
                        $.ajax({
                            url: url+t.value.toString(),
                            data: t.value,
                            dataType: 'json',
                            type: 'post',
                            success: function (j) {
                                if(j.ifOk) {
                                    enableForm($('#user_register'));
                                } else {
                                    disableForm($('#user_register'));
                                }

                                validateTargetMsgEl.html(j.message);
                            }
                        });
                    }, 300);

                    this.lastValue = this.value;
                }

            } else { validateTargetMsgEl.empty(); }
            
        });

}

//disableForm($('#user_register'));
validateLive($('#userRegister_username'), $('#validateUsername'), conf.cSiteUrl+'/user/checkUsernameAvailability/username/')
validateLive($('#userRegister_nick'), $('#validateNick'), conf.cSiteUrl+'/user/checkNickAvailability/nick/')
validateLive($('#userSettings_nick'), $('#validateNick'), conf.cSiteUrl+'/user/checkNickAvailability/nick/')


$("#user_register").validate({
            errorElement: 'em',
            rules: {
                    'userRegister[username]': {
                        required: true,
                        maxlength: 40,
                        minlength: 4,
                        email: true
                    },
                    'userRegister[password]': {
				required: true,
				minlength: 6
                    },
                    'userRegister[password2]': {
				required: true,
				minlength: 6,
				equalTo: "#userRegister_password"
                    },
                    'userRegister[nick]': {
				required: true,
				maxlength: 12,
                                minlength: 4
                    },
                    'userRegister[accepts_terms]': {
				required: true
                    }
                    
            },
            messages: {
                    'userRegister[username]': {
                        required: l.v_required,
                        maxlength: l.v_emailMax,
                        minlength: l.v_emailMin,
                        email: l.v_emailMail
                    },
                    'userRegister[password]': {
                        required: l.v_required,
                        minlength: l.v_passwdMin
                    },
                    'userRegister[password2]': {
                        required: l.v_required,
                        minlength: l.v_passwdMin,
                        equalTo: l.v_passwdIdent
                    },
                    'userRegister[nick]': {
                        required: l.v_required,
                        maxlength: l.v_nickMax,
                        minlength: l.v_nickMin
                    },
                    'userRegister[accepts_terms]': {
			required: l.v_terms
                    }
 
            }
});


$("#newMessage_form").validate({
            errorElement: 'em',
            rules: {
                    'email[mail]': {
                        required: true,
                        email: true
                    },
                    'email[message]': {
                        required: true
                    },
                    'private_message[subject]': {
                        required: true
                    },
                    'private_message[body]': {
                        required: true
                    }

            },
            messages: {
                    'email[mail]': {
                        required: l.v_required,
                        email: l.v_emailMail
                    },
                    'email[message]': {
                        required: l.v_required
                    },
                    'private_message[subject]': {
                        required: l.v_required
                    },
                    'private_message[body]': {
                        required: l.v_required
                    }


            }
});

/*$("#settings_form").validate({
            errorElement: 'em',
            rules: {
                    'userSettings[password2]': {
                        equalTo: "#userSettings_password"
                    },
                    'userSettings[gadu_gadu]': {
                        digits: true
                    },
                    'userSettings[pesel]': {
                        digits: true
                    }

            },
            messages: {
                    'userSettings[password2]': {
                        equalTo: l.v_passwdIdent
                    },
                    'userSettings[gadu_gadu]': {
                        digits: l.v_numeric
                    },
                    'userSettings[pesel]': {
                        digits: l.v_numeric
                    }


            }
});*/


});

