// On document ready event
jQuery( document ).ready( function() {
	// Find slidedeck
	jQuery( "dl.slidedeck" )
		// On mouseenter stop the Slidedeck autoplay
		.mouseenter( function() {
			jQuery( this ).slidedeck().pauseAutoPlay = true;
		})
		// On mouseleave start the Slidedeck autoplay again
		.mouseleave( function() {
			// But only if the YT player isn't actually playing or buffering
			if ( player && ( player.getPlayerState() == 1 || player.getPlayerState() == 3 )) {
				// If that's so, leave the function
				return;
			} else {
				// Turn on autoplay
				jQuery( this ).slidedeck().pauseAutoPlay = false;
			}
		});
});

var player;
/*
 * The API will call this function when the page has finished downloading the JavaScript
 * for the player API, which enables you to then use the API on your page. Thus,
 * this function might create the player objects that you want to display when
 * the page loads.
 */
function onYouTubePlayerAPIReady() {
	/*
	 * Constructing a YT.Player object.
	 * All methods and properties of the player will be found there later.
	 */
	player = new YT.Player( "myYTPlayer", {
		events: {
			/*
			 * Here we attach callback for the onStateChange event.
			 * That is called everytime a state of the player is changed.
			 */
			"onStateChange": onPlayerStateChange
		}
	});
}

/*
 * Implementation of the onStateChange event.
 * Only parameter is an event object, its data property holds a value of a new player state.
 * Values: -1 (unstarted), 0 (ended), 1 (playing), 2 (paused), 3 (buffering), 5 (video cued)
 */
function onPlayerStateChange( event ) {
	// integer indicating new state of the player
	var newState = event.data,
		// store the slideck element for later calls, so we don't have to query the DOM again
		$slidedeck = jQuery( "dl.slidedeck" );

	// Video loading or buffering?
	if ( newState == 1 || newState == 3 ) {
		// Then pause the slidedeck autoplay.
		$slidedeck.slidedeck().pauseAutoPlay = true;
	// Video has just ended?
	} else if ( newState == 0 ) {
		// Then resume the Slidedeck autoplay.
		$slidedeck.slidedeck().pauseAutoPlay = false;
	}
}
