/* global WPGroHo:true, Gravatar */
WPGroHo = jQuery.extend(
	{
		my_hash: '',
		data: {},
		renderers: {},
		syncProfileData: function( hash, id ) {
			if ( ! WPGroHo.data[ hash ] ) {
				WPGroHo.data[ hash ] = {};
				jQuery( 'div.grofile-hash-map-' + hash + ' span' ).each( function() {
					WPGroHo.data[ hash ][ this.className ] = jQuery( this ).text();
				} );
			}

			WPGroHo.appendProfileData( WPGroHo.data[ hash ], hash, id );
		},
		appendProfileData: function( data, hash, id ) {
			for ( var key in data ) {
				if ( jQuery.isFunction( WPGroHo.renderers[ key ] ) ) {
					return WPGroHo.renderers[ key ]( data[ key ], hash, id, key );
				}

				jQuery( '#' + id )
					.find( 'h4' )
					.after( jQuery( '<p class="grav-extra ' + key + '" />' ).html( data[ key ] ) );
			}
		},
	},
	WPGroHo
);

jQuery( document ).ready( function() {
	if ( 'undefined' === typeof Gravatar ) {
		return;
	}

	Gravatar.profile_cb = function( h, d ) {
		WPGroHo.syncProfileData( h, d );
	};

	Gravatar.my_hash = WPGroHo.my_hash;
	Gravatar.init( 'body', '#wpadminbar' );
} );
