// Overwrite default gravity form 'select all and deselect all '

function gformToggleCheckboxes( toggleCheckbox ) {

	var $toggle      = jQuery( toggleCheckbox ).closest('li'),
	    $toggleLabel = $toggle.find( 'label' );
		$checkboxes  = $toggle.parent().find( 'li:not( .gchoice_select_all )' );
		
	// Set checkboxes state.
	$checkboxes.each( function() {
	
		jQuery( 'input[type="checkbox"]', this ).prop( 'checked', toggleCheckbox.checked ).trigger( 'change' );

		// for Material switches
		if( jQuery( '.mdc-switch', this ).length !== 0  ) {

			if( jQuery( 'input[type="checkbox"]', this ).prop('checked') === true ) {
				jQuery( '.mdc-switch', this ).addClass('mdc-switch--checked');
			}
			else{
				jQuery( '.mdc-switch', this ).removeClass('mdc-switch--checked');
			}
		}

		
		// Execute onclick event.
		if ( typeof jQuery( 'input[type="checkbox"]', this )[0].onclick === 'function' ) {
			jQuery( 'input[type="checkbox"]', this )[0].onclick();
			console.log( jQuery( 'input[type="checkbox"]', this )[0] );
		}

	} );

	// Change toggle label.
	if ( toggleCheckbox.checked ) {
		$toggleLabel.html( $toggleLabel.data( 'label-deselect' ) );
	} else {
		$toggleLabel.html( $toggleLabel.data( 'label-select' ) );
	}
}