box.dom(document).ready(function() {
  box.ui('form').create({
    element: '#discoverYourProfileForm'
  }).addReplacement();


    box.ui('form').create({
        element: '#discoverYourProfileForm'
    }).addReplacement().mustValidate(function(form) {
	
		$("#discoverYourProfileForm input[type=radio]").each(
			function(){
					form.field($(this).attr("name")).mustValidate(function(field) {
						if(!field.isChecked()) {
							return l10n.errors.required.EM_SW_36;
						}
					}
				)
			}
		);	
        return l10n.errors.required.EM_SW_36;
    });
  
    var errorCls = 'error';
    
    var getErrorTarget = function(field) {
        if('radio' != field.type) {
            return field.getLabel();
        } else {
            return field.getElements().parent().parent().parent().parent().prev().prev();
        }
    };
    
    var addFieldError = function(e) {
		getErrorTarget(e.source).addClass(errorCls);
    };
    
    var removeFieldError = function(e) {
        getErrorTarget(e.source).removeClass(errorCls);
    };
    
    var addFormError = function(e) {
        var id = e.source.id + 'Error';
		var msg = e.source.msg;
        var error = box.dom('#' + id);
        if(error.length) {
            error.html(msg);
        } else {
			$('div.alert .content p').text(msg);
			$('#' + e.source.id + ' div.alert').show();
        }
    };
    
    var removeFormError = function(e) {
        box.dom('#' + e.source.id + 'Error').remove();
    };
    
    // binding des événements
    box.bind({
        'error.form': addFormError,
        'valid.form': removeFormError,
        'error.field.text': addFieldError,
		'error.field.select': addFieldError,
        'error.field.radio': addFieldError,
        'error.field.checkbox': addFieldError,
        'valid.field.text': removeFieldError,
		'valid.field.select': removeFieldError,
        'valid.field.radio': removeFieldError,
        'valid.field.checkbox': removeFieldError
    });

});
