Index: src/bp-xprofile/bp-xprofile-template.php
===================================================================
--- src/bp-xprofile/bp-xprofile-template.php	(revisione 8691)
+++ src/bp-xprofile/bp-xprofile-template.php	(copia locale)
@@ -776,7 +776,7 @@
 
 				<?php foreach( bp_xprofile_get_visibility_levels() as $level ) : ?>
 
-					<?php printf( $r['before_radio'], esc_attr( $level['id'] ) ); ?>
+					<?php printf( $r['before_radio'], $level['id'] ); ?>
 
 					<label for="<?php echo esc_attr( 'see-field_' . $r['field_id'] . '_' . $level['id'] ); ?>">
 						<input type="radio" id="<?php echo esc_attr( 'see-field_' . $r['field_id'] . '_' . $level['id'] ); ?>" name="<?php echo esc_attr( 'field_' . $r['field_id'] . '_visibility' ); ?>" value="<?php echo esc_attr( $level['id'] ); ?>" <?php checked( $level['id'], bp_get_the_profile_field_visibility_level() ); ?> />
Index: src/bp-templates/bp-legacy/js/email-validation.js
===================================================================
--- src/bp-templates/bp-legacy/js/email-validation.js	(revisione 0)
+++ src/bp-templates/bp-legacy/js/email-validation.js	(revisione 0)
@@ -0,0 +1,39 @@
+/* Password Verify */
+( function( $ ){
+	function validate_email_address() {
+		var $email = $( '.email-entry' ),
+			$form = $( '.standard-form' ),	
+			emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;
+
+		var error_handler = function() {
+			$email.focus();
+			return false;
+		};
+		
+		if( !emailReg.test( $email.val() ) ) {
+			$form.bind( 'submit', error_handler );
+			$email.addClass( 'error' );
+			if ( ! $email.prev( 'div.error' ).length ) {
+				$email.before( '<div class="error">' + BP_Validation.invalid_email + '</div>' );
+			}
+			else {
+				// This also could happen
+				$email.prev( 'div.error' ).html( BP_Validation.invalid_email ).css( 'display', 'block' );
+			}
+		}
+		else {
+			$form.unbind( 'submit' );
+			if ( $email.prev( 'div.error' ).length ) {
+				$email.removeClass( 'error' );
+				$email.prev( 'div.error' ).html('').css( 'display', 'none' );
+			}
+		}
+		return;
+	}
+
+	// Bind validate_email_address to blur event in the email fields
+	$( document ).ready( function() {
+		$( '.email-entry' ).val( '' ).blur( validate_email_address );
+	});
+
+} )( jQuery );
\ No newline at end of file
Index: src/bp-templates/bp-legacy/buddypress-functions.php
===================================================================
--- src/bp-templates/bp-legacy/buddypress-functions.php	(revisione 8691)
+++ src/bp-templates/bp-legacy/buddypress-functions.php	(copia locale)
@@ -268,6 +268,27 @@
 			) );
 			wp_enqueue_script( $asset['handle'] . '-password-verify', $asset['location'], $dependencies, $this->version);
 		}
+		
+		// Maybe enqueue email validation JS (register page or user settings page)
+		if ( bp_is_register_page() || ( function_exists( 'bp_is_user_settings_general' ) && bp_is_user_settings_general() ) ) {
+			
+			// Add more words that we need to use in JS so they
+			// can be translated.
+			// Note: here we could also add a filter to pass blacklisted domains.
+			$params = array(
+				'invalid_email'   => __( 'The email address is invalid.', 'buddypress' ),
+			);
+			wp_localize_script( $asset['handle'], 'BP_Validation', $params );
+			
+			$min      = defined( 'SCRIPT_DEBUG' ) && SCRIPT_DEBUG ? '' : '.min';
+			$filename = "email-validation{$min}.js";
+
+			// Locate the Register Page JS file
+			$asset = $this->locate_asset_in_stack( $filename, 'js' );
+
+			// Enqueue script
+			wp_enqueue_script( $asset['handle'] . '-email-validation', $asset['location'], $dependencies, $this->version);
+		}
 	}
 
 	/**
Index: src/bp-templates/bp-legacy/buddypress/members/single/settings/general.php
===================================================================
--- src/bp-templates/bp-legacy/buddypress/members/single/settings/general.php	(revisione 8691)
+++ src/bp-templates/bp-legacy/buddypress/members/single/settings/general.php	(copia locale)
@@ -10,7 +10,7 @@
 	<?php endif; ?>
 
 	<label for="email"><?php _e( 'Account Email', 'buddypress' ); ?></label>
-	<input type="text" name="email" id="email" value="<?php echo bp_get_displayed_user_email(); ?>" class="settings-input" />
+	<input type="text" name="email" id="email" value="<?php echo bp_get_displayed_user_email(); ?>" class="settings-input email-entry" />
 
 	<label for="pass1"><?php _e( 'Change Password <span>(leave blank for no change)</span>', 'buddypress' ); ?></label>
 	<input type="password" name="pass1" id="pass1" size="16" value="" class="settings-input small password-entry" /> &nbsp;<?php _e( 'New Password', 'buddypress' ); ?><br />
Index: src/bp-templates/bp-legacy/buddypress/members/register.php
===================================================================
--- src/bp-templates/bp-legacy/buddypress/members/register.php	(revisione 8691)
+++ src/bp-templates/bp-legacy/buddypress/members/register.php	(copia locale)
@@ -31,20 +31,20 @@
 
 				<label for="signup_username"><?php _e( 'Username', 'buddypress' ); ?> <?php _e( '(required)', 'buddypress' ); ?></label>
 				<?php do_action( 'bp_signup_username_errors' ); ?>
-				<input type="text" name="signup_username" id="signup_username" value="<?php bp_signup_username_value(); ?>" />
+				<input type="text" name="signup_username" id="signup_username" value="<?php bp_signup_username_value(); ?>" required />
 
 				<label for="signup_email"><?php _e( 'Email Address', 'buddypress' ); ?> <?php _e( '(required)', 'buddypress' ); ?></label>
 				<?php do_action( 'bp_signup_email_errors' ); ?>
-				<input type="text" name="signup_email" id="signup_email" value="<?php bp_signup_email_value(); ?>" />
+				<input type="text" name="signup_email" id="signup_email" value="<?php bp_signup_email_value(); ?>" class="email-entry" required />
 
 				<label for="signup_password"><?php _e( 'Choose a Password', 'buddypress' ); ?> <?php _e( '(required)', 'buddypress' ); ?></label>
 				<?php do_action( 'bp_signup_password_errors' ); ?>
-				<input type="password" name="signup_password" id="signup_password" value="" class="password-entry" />
+				<input type="password" name="signup_password" id="signup_password" value="" class="password-entry" required />
 				<div id="pass-strength-result"></div>
 
 				<label for="signup_password_confirm"><?php _e( 'Confirm Password', 'buddypress' ); ?> <?php _e( '(required)', 'buddypress' ); ?></label>
 				<?php do_action( 'bp_signup_password_confirm_errors' ); ?>
-				<input type="password" name="signup_password_confirm" id="signup_password_confirm" value="" class="password-entry-confirm" />
+				<input type="password" name="signup_password_confirm" id="signup_password_confirm" value="" class="password-entry-confirm" required />
 
 				<?php do_action( 'bp_account_details_fields' ); ?>
 
Index: src/bp-templates/bp-legacy/buddypress/activity/post-form.php
===================================================================
--- src/bp-templates/bp-legacy/buddypress/activity/post-form.php	(revisione 8691)
+++ src/bp-templates/bp-legacy/buddypress/activity/post-form.php	(copia locale)
@@ -35,7 +35,7 @@
 				<input type="submit" name="aw-whats-new-submit" id="aw-whats-new-submit" value="<?php esc_attr_e( 'Post Update', 'buddypress' ); ?>" />
 			</div>
 
-			<?php if ( bp_is_active( 'groups' ) && !bp_is_my_profile() && !bp_is_group() ) : ?>
+			<?php if ( bp_is_active( 'groups' ) && !bp_is_my_profile() && !bp_is_group() && bp_get_total_group_count_for_user() > 0 ) : ?>
 
 				<div id="whats-new-post-in-box">
 
