/* global jQuery, soWidgets */

( function($){

	$(document).on( 'sowsetupform', function(e) {
		var $form = $(e.target);

		$form.find( '.siteorigin-widget-field-type-order' ).each( function(){
			var $$ = $( this );
			var $valField = $$.find( '.siteorigin-widget-input' );
			var $items = $$.find( '.siteorigin-widget-order-items' );
			$items.sortable( {
				stop: function(){
					var val = $( this ).sortable( 'toArray', { attribute: 'data-value' } );
					$valField.val( val.join(',') );
					$valField.trigger( 'change', { silent: true } );
				}
			} );

			$$.on( 'change', function ( event, params ) {
				if ( ! ( params && params.silent ) ) {
					var values = $valField.val() === '' ? [] : $valField.val().split(',');
					if ( values.length ) {
						for ( var i = 0; i < values.length; i++) {
							var val = values[ i ];
							var $item = $$.find( '.siteorigin-widget-order-item[data-value=' + val + ']' );
							$items.append( $item );
						}
					}
				}
			} );
		} );
	});

}( jQuery ) );
