$(document).ready(function () {


	   var formBoxID = '.reg_form';
	   var formID = formBoxID + ' form';
	   function clearErrors() {
            $(formID + " .formErrors").empty();
        }

        function setError(field, error) {
            $(formID + " .formErrors_" + field).text(error);
        }

        function refreshCaptcha() {
            $(formBoxID + ' img.imageCaptcha').attr('src', '/profile/signup/captcha/?r=' + Math.random());
        }

        $(formID + ' .formElement_key').after('<br class="clr" />');
        $(formID + ' .formElement_key').after($("#captchaBox"));
        $(formID + ' .formElement_key input').attr('autocomplete','off');

        $(formID).ajaxForm({
            //target:        '#output0',
            success:       showResponse,

            // other available options:?process=1
            url:       '/profile/signup/?process=1',
            type:      'post',
            dataType:  'json',        // 'xml', 'script', or 'json' (expected server response type)
            clearForm: false,        // clear all form fields after successful submit
            resetForm: false,        // reset the form after successful submit 
            timeout:   3000
        });

        $(formBoxID + ' a.refreshCaptcha').click(function(e){
            e.preventDefault();
            refreshCaptcha();
            return false;
        });

        // post-submit callback
	    function showResponse(responseText, statusText)  {
    		var res = responseText;
    		refreshCaptcha();
            clearErrors();
            if (res.success) {
                window.location = '/profile/signup/done/';
            } else {
                $(formID + " .formElement_key input").val('');
                var fields = res.errors;
                for (var field in fields) {
                    var errors = fields[field];
                    for (var errorId in errors) {
                        var errorMsg = errors[errorId];
                        setError(field, errorMsg);
                    }
                }
            }
	    }

});