$(function(){
    var formBoxID = '.join_form';
    var formID = formBoxID + ' form';

    function processJurFields() {
    	if ($(formID + ' .formElement_is_jur input:checked').val() == 0) {
            $(formID + ' .formLabel_organization').hide();
            $(formID + ' .formElement_organization').hide();
            $(formID + ' .formLabel_inn').hide();
            $(formID + ' .formElement_inn').hide();
            $(formID + ' .formLabel_kpp').hide();
            $(formID + ' .formElement_kpp').hide();
            $(formID + ' .formLabel_address_jur').hide();
            $(formID + ' .formElement_address_jur').hide();
        } else {
            $(formID + ' .formLabel_organization').show();
            $(formID + ' .formElement_organization').show();
            $(formID + ' .formLabel_inn').show();
            $(formID + ' .formElement_inn').show();
            $(formID + ' .formLabel_kpp').show();
            $(formID + ' .formElement_kpp').show();
            $(formID + ' .formLabel_address_jur').show();
            $(formID + ' .formElement_address_jur').show();
        }
    }
    processJurFields();
	$(formID + ' .formElement_is_jur input').change(function(){
	    processJurFields();
	});
	$(formID + ' .formElement_is_jur input').click(function(){
	    processJurFields();
	});

    $(formID + ' .formElement_key').after('<br class="clr" />');
    $(formID + ' .formElement_key').after($("#captchaBox"));
    $(formID + ' .formElement_key input').attr('autocomplete','off');

    function refreshCaptcha() {
        $(formID + ' img.imageCaptcha').attr('src', '/product/join/captcha/?r=' + Math.random());
    }

    $('a.refreshCaptcha').click(function(e){
        e.preventDefault();
        refreshCaptcha();
        return false;
    });

    /**/
    function clearErrors() {
        $(formID + " .formErrors").empty();
    }

    function setError(field, error) {
        $(formID + " .formErrors_" + field).text(error);
    }
    
    $(formID).ajaxForm({
        //target:        '#output0',
        success:       showResponse,

        // other available options:
        url:       '/product/join/?id=' + productId + '&process=1',
        type:      'post',
        dataType:  'json',        // 'xml', 'script', or 'json' (expected server response type)
        //clearForm: true        // clear all form fields after successful submit
        //resetForm: true        // reset the form after successful submit
        timeout:   3000
    });


    // post-submit callback
    function showResponse(responseText, statusText)  {
		var res = responseText;
		refreshCaptcha();
        clearErrors();
        if ( res.success ) {
            window.location = '/product/join/done/?id='+productId;
        } 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);
                }
            }
        }
    }
    /**/
});
