jQuery( function ( $ )
{
	'use strict';

	function rwmb_update_color_picker()
	{
		var $this = $( this ),
			$clone_container = $this.closest( '.rwmb-clone' ),
			$color_picker = $this.siblings( '.rwmb-color-picker' );

		// Make sure the value is displayed
		if ( !$this.val() )
		{
			$this.val( '#' );
		}

		if ( typeof $.wp === 'object' && typeof $.wp.wpColorPicker === 'function' )
		{
			if ( $clone_container.length > 0 )
			{
				$this.appendTo( $clone_container ).siblings( 'div.wp-picker-container' ).remove();
			}
			$this.wpColorPicker();
		}
		else
		{
			//We use farbtastic if the WordPress color picker widget doesn't exist
			$color_picker.farbtastic( $this );
		}
	}

	$( ':input.rwmb-color' ).each( rwmb_update_color_picker );
	$( '.rwmb-input' )
		.on( 'clone', ':input.rwmb-color', rwmb_update_color_picker )
		.on( 'focus', '.rwmb-color', function ()
		{
			$( this ).siblings( '.rwmb-color-picker' ).show();
			return false;
		} ).on( 'blur', '.rwmb-color', function ()
		{
			$( this ).siblings( '.rwmb-color-picker' ).hide();
			return false;
		} );
} );
