Index: src/bp-templates/bp-legacy/css/buddypress.css
===================================================================
--- src/bp-templates/bp-legacy/css/buddypress.css	(revisione 9057)
+++ src/bp-templates/bp-legacy/css/buddypress.css	(copia locale)
@@ -433,10 +433,6 @@
 #buddypress div.activity-comments form.root {
 	margin-left: 0;
 }
-#buddypress div.activity-comments div#message {
-	margin-top: 15px;
-	margin-bottom: 0;
-}
 #buddypress div.activity-comments form .ac-textarea {
 	background: #fff;
 	border: 1px inset #ccc;
@@ -504,32 +500,37 @@
 /*--------------------------------------------------------------
 3.4 - Errors / Success Messages
 --------------------------------------------------------------*/
-#buddypress div#message {
-	margin: 0 0 15px;
+
+body.buddypress #message {
+	width: 100%;
+	position: fixed;
+	z-index: 3;
+	overflow-y: hidden;
+	transition-property: all;
+	transition-duration: 1s;
+	transition-timing-function: cubic-bezier(0, 1, 0.5, 1);	
 }
-#buddypress #message.info {
-	margin-bottom: 0;
+
+body.buddypress #message > p {
+	background: rgba(255, 255, 255, 0.95);
+	width: 30%;
+	border-radius: 0 0 4px 4px;
+	margin: 0 auto 10px;
+	padding: 10px 20px;
+	text-align: center;
+	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
+	border-left: 4px solid #7ad03a;
 }
-#buddypress div#message.updated {
-	clear: both;
+
+body.buddypress #message.error > p {
+	border-left: 4px solid #dd3d36;
 }
-#buddypress div#message p,
+
 #sitewide-notice p {
 	font-size: 90%;
 	display: block;
 	padding: 10px 15px;
 }
-#buddypress div#message.error p {
-	background-color: #fdc;
-	border: 1px solid #a00;
-	clear: left;
-	color: #800;
-}
-#buddypress div#message.updated p {
-	background-color: #efc;
-	border: 1px solid #591;
-	color: #250;
-}
 #buddypress #pass-strength-result {
 	background-color: #eee;
 	border-color: #ddd;
@@ -1119,7 +1120,6 @@
 	font-size: 120%;
 	font-weight: bold;
 }
-#buddypress div#message p,
 #sitewide-notice p {
 	font-weight: normal;
 	margin-top: 3px;
@@ -1210,9 +1210,6 @@
 	float: left;
 	margin: 10px 10px 0 0;
 }
-#buddypress div#item-header div#message.info {
-	line-height: 80%;
-}
 #buddypress ul.item-list {
 	border-top: 1px solid #eaeaea;
 	width: 100%;
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/js/buddypress.js
===================================================================
--- src/bp-templates/bp-legacy/js/buddypress.js	(revisione 9057)
+++ src/bp-templates/bp-legacy/js/buddypress.js	(copia locale)
@@ -162,8 +162,7 @@
 
 			/* Check for errors and append if found. */
 			if ( response[0] + response[1] === '-1' ) {
-				form.prepend( response.substr( 2, response.length ) );
-				jq( '#' + form.attr('id') + ' div.error').hide().fadeIn( 200 );
+				bp_confirmation_message( response );
 			} else {
 				if ( 0 === jq('ul.activity-list').length ) {
 					jq('div.error').slideUp(100).remove();
@@ -604,7 +603,7 @@
 
 				/* Check for errors and append if found. */
 				if ( response[0] + response[1] === '-1' ) {
-					form.append( jq( response.substr( 2, response.length ) ).hide().fadeIn( 200 ) );
+					bp_confirmation_message( response );
 				} else {
 					var activity_comments = form.parent();
 					form.fadeOut( 200, function() {
@@ -673,7 +672,7 @@
 			function(response) {
 				/* Check for errors and append if found. */
 				if ( response[0] + response[1] === '-1' ) {
-					comment_li.prepend( jq( response.substr( 2, response.length ) ).hide().fadeIn( 200 ) );
+					bp_confirmation_message( response );
 				} else {
 					var children  = jq( '#' + comment_li.attr('id') + ' ul' ).children('li'),
 						child_count = 0,
@@ -1851,6 +1850,21 @@
 	});
 }
 
+/* Confirmation messages */
+function bp_confirmation_message( response ) {
+	var topOffset = jq( '.site-header' ).height() + jq( '#wpadminbar' ).height();
+
+	jq( 'body' ).addClass( 'warning-message-on' ).append( jq( response.substr( 2, response.length ) ) );
+	jq( '#message' ).css( 'top', topOffset + 'px' );
+	
+	setTimeout( function() {
+		jq( 'body' ).removeClass( 'warning-message-on' );
+		jq( 'body #message' ).animate({top: -topOffset }, 100, function() {
+			jq( this ).remove();
+		});
+	}, 10000);
+}
+
 /* Helper Functions */
 
 function checkAll() {
Index: src/bp-templates/bp-legacy/buddypress/members/register.php
===================================================================
--- src/bp-templates/bp-legacy/buddypress/members/register.php	(revisione 9057)
+++ 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/members/single/settings/general.php
===================================================================
--- src/bp-templates/bp-legacy/buddypress/members/single/settings/general.php	(revisione 9057)
+++ 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/activity/post-form.php
===================================================================
--- src/bp-templates/bp-legacy/buddypress/activity/post-form.php	(revisione 9057)
+++ 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">
 
