PageSourceSearch

https://www.smalltowndicks.com/wp-content/themes/std/assets/js/mediaelement-castilo.js?ver=6.1.14

js smalltowndicks.com collected 2026-09-28 12:33:09 UTC 3,851 bytes, 83 lines download raw bytes

1(function( window, $, undefined ) { "use strict";
2
3	var settings      = window._wpmejsSettings || {};
4	settings.features = settings.features || mejs.MepDefaults.features;
5	settings.features.push( "castilo" );
6	$.extend( mejs.MepDefaults, {
7		hideVolumeOnTouchDevices: true,
8		audioVolume: "vertical",
9	} );
10	MediaElementPlayer.prototype.buildcastilo = function( player, controls, layers, media ) {
11		var player_container = player.container.addClass( "castilo-mejs-container" ),
12			player_parent = player_container.parents( ".podcast-episode-player" );
13		if ( player_parent.length > 0 ) {
14			player_parent.addClass( "state-init" );
15
16			media.addEventListener( "playing", function( e ) {
17				player_parent.removeClass( "state-init state-paused state-ended" );
18				player_parent.addClass( "state-playing" );
19			}, false);
20
21			media.addEventListener( "pause", function( e ) {
22				player_parent.addClass( "state-paused" ).removeClass( "state-playing" );
23			}, false);
24
25			media.addEventListener( "ended", function( e ) {
26				player_parent.addClass( "state-ended" ).removeClass( "state-paused state-playing" );
27			}, false);
28
29			// manually add duration to the player (as it is prefered to not preload any data, so we can properly collect statistics only when the user clicks the play button)
30			var episode_duration = player_parent.data( "episode-duration" );
31			if ( episode_duration ) {
32				controls.find( "span.mejs-duration" ).html( episode_duration );
33			}
34			// add download button
35			var download_file = player_parent.data( "episode-download" );
36			if ( ! $( 'body' ).hasClass( "no-episode-download" ) && download_file ) {
37				var download_button = $( '<div class="mejs-button mejs-download-button"><a href="' + download_file + '" title="' + player_parent.data( "episode-download-button" ) + '"><span class="screen-reader-text">' + player_parent.data( "episode-download-button" ) + '</span></a></div>' );
38				download_button.appendTo( controls );
39			}
40			// add transcript button
41			var transcript_file = player_parent.data( "episode-transcript" );
42			if ( transcript_file ) {
43				var transcript_button = $( '<div class="mejs-button mejs-transcript-button"><a href="' + transcript_file + '" title="' + player_parent.data( "episode-transcript-button" ) + '" target="_blank"><span class="screen-reader-text">' + player_parent.data( "episode-transcript-button" ) + '</span></a></div>' );
44				transcript_button.appendTo( controls );
45			}
46		}
47	};
48
49	// Handle audio timeline jumping points for episodes.
50	jQuery( ".podcast-episode-player .play-episode" ).on( "click.castilo", function( e ) {
51		e.preventDefault();
52		jQuery( this ).parent( ".podcast-episode-player" ).find( "video" ).get(0).player.play();
53		jQuery( this ).hide();
54
55		// mark a play event for external videos
56		if ( jQuery( "body" ).hasClass( "episode-type-video-embed" ) ) {
57			jQuery.post( podcast_ajax_object.ajax_url, {
58				action: "podcast_helper_episode_start_play",
59				episode_id: jQuery( this ).parent( ".podcast-episode-player" ).data( "episode-id" )
60			});
61		}
62	});
63
64	// Handle audio timeline jumping points for episodes.
65	$( '.single-episode a.jump-point[href^="#"], .single-episode .wp-block-button.jump-point a[href^="#"]' ).on( 'click.castilo', function( e ) {
66		if ( $( '.podcast-episode-player .castilo-mejs-container' ) ) {
67			e.preventDefault();
68
69			var jumping_point = $( this ).attr( 'href' ).substr( 1 ), player = $( '.podcast-episode-player .castilo-mejs-container audio' ).get( 0 ).player, jumping_point_seconds = 0, m = 1, p = jumping_point.split( ':' );
70			while ( p.length > 0 ) {
71				jumping_point_seconds += m * parseInt( p.pop(), 10 );
72				m                     *= 60;
73			}
74			if ( jumping_point_seconds > 0 ) {
75				if ( true == player.paused ) {
76					player.play();
77				}
78				player.setCurrentTime( jumping_point_seconds );
79			}
80		}
81	});
82
83})( this, jQuery );

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.