(function( $ ) {
    'use strict';

   $(document).on("click", ".upload_image_button", function (e) {
      e.preventDefault();
      var $button = $(this);

      // Create the media frame.
      var file_frame = wp.media.frames.file_frame = wp.media({
         title: 'Select or upload image',
         library: { // remove these to show all
            type: 'image' // specific mime
         },
         button: {
            text: 'Select'
         },
         multiple: false  // Set to true to allow multiple files to be selected
      });

      // When an image is selected, run a callback.
      file_frame.on('select', function () {
         // We set multiple to false so only get one image from the uploader
         var attachment = file_frame.state().get('selection').first().toJSON();
         $button.siblings('input').val(attachment.url).trigger('change');
      });

      // Finally, open the modal
      file_frame.open();
   });
})(jQuery);