var player = null;
var ready = false;
var seekReady = false;
var playheadInterval = 0;
var tooltip = null;

$(document).ready(function() {
	$(".abrirVideo").click(function(){
		
		loadVideo($(this).attr("name"));
		
		return false;
		
	});
	
	// embed chromless player
	var id = 'flash';
	var src = '';
	var params = {allowScriptAccess:"always", wmode:"transparent"};
	var atts = {id:"my-player"};	
	
	swfobject.embedSWF("http://www.youtube.com/apiplayer?video_id=" + src + "&amp;version=3&amp;enablejsapi=1", id, "100%", "100%", "9.0.0", "data/flash/expressInstall.swf", null, params, atts);
	
	// player controls
	
	// play/pause button
	var teste = true;
	var teste2 = true;
	
	$('#play-pause-btn').click(function() {
		if(teste)
		{
			player.playVideo();
			teste = false;
		}
		else
		{
			player.pauseVideo();
			teste = true;
		}
	});
	
	$("#fundo, #cclose-ply").click(function() {
		player.pauseVideo();
	});
	
	// seekbar
	$('#seekbar').click(function(e) {
		if(!seekReady) return;
		else {
			var localX = (e.pageX - $(this).offset().left) - 17;
			if(localX > $(this).innerWidth()) localX = $(this).innerWidth();
		
			var percent = localX / $('#seekbar').innerWidth();
			seekToPercent(percent);
		}
	});
	
	// mute button
	$('#mute-btn').click(function() {
		if(!ready) return;
		else toggleSound();
	});
	
	
});

/************************************************ 
 * onYouTubePlayerReady:void                    *
 *                                              *
 * Called from the YouTube player API.          *
 * This player is ready for action!             *
 ************************************************
/                                              */
onYouTubePlayerReady = function() {
	player = document.getElementById('my-player');
	
	player.addEventListener("onStateChange", "onPlayerStateChange");
	ready = true;
}

/************************************************ 
 * onPlayerStateChange:void                     *
 *                                              *
 * Handle player state change.                  *
 ************************************************
/                                              */
onPlayerStateChange = function(s) {
	switch(s) {
		case -1: // unstarted
			return;
		case 0: // ended
			resetPlayer();
			return;
		case 1: // playing
			seekReady = true;
			$('#play-pause-btn').css('background-position', '0px -40px');
			playheadInterval = setInterval(updatePlayhead, 10);
			return;
		case 2: // paused
			$('#play-pause-btn').css('background-position', '0px 0px');
			clearInterval(playheadInterval);
			return;
		case 3: // buffering
			$('#play-pause-btn').css('background-position', '0px 0px');
			return;
		case 5: // video cued
			resetPlayer();
			ready = true;
			return;
	}
}

/************************************************ 
 * resetPlayer:void                             *
 *                                              *
 * Reset the player.                            *
 ************************************************
/                                              */
resetPlayer = function() {
	clearInterval(playheadInterval);
	$('#play-pause-btn').css('background-position', '0px 0px');
	$('#seekbar').css('background-position', '0px 0px');	
}

/************************************************ 
 * updatePlayhead:void                          *
 *                                              *
 * Update the seekbar.                          *
 ************************************************
/                                              */
updatePlayhead = function() {
	if(typeof(player.getCurrentTime) == 'undefined') {
		clearInterval(playheadInterval);
		return;
	}

	var percentage = player.getCurrentTime() / player.getDuration();
	$('#seekbar').css('background-position', Math.round(percentage * $('#seekbar').innerWidth()) + 'px 0px');
}

/************************************************ 
 * playPause:void                               *
 *                                              *
 * Toggle play/pause.                           *
 ************************************************
/                                              */
playPause = function() {
	switch(player.getPlayerState()) {
		case -1: // unstarted
		case 0: // ended
		case 2: // paused
			player.playVideo();
			return;
		case 1: // playing
			player.pauseVideo();
			return;
		default:
			return;
	}
}

/************************************************ 
 * seekToPercent:void                           *
 *                                              *
 * Seek to the passed percentage.               *
 *                                              *
 * percent:Number - percent to seek to.         *
 ************************************************
/                                              */
seekToPercent = function(percent) {
	var time = percent * player.getDuration();
	player.seekTo(time, true);
}

/************************************************ 
 * toggleSound:void                             *
 *                                              *
 * Toggle mute/unmute.                          *
 ************************************************
/                                              */
toggleSound = function() {
	if(player.isMuted()) {
		player.unMute();
		$('#mute-btn').css('background-position', '0px 0px');
	} else {
		player.mute();
		$('#mute-btn').css('background-position', '0px -40px');
	}
}

//////////// Video Gallery (Optional) ///////////

/************************************************ 
 * loadVideo:void                               *
 *                                              *
 * Load a new video into the player.            *
 *                                              *
 * id:String - video id to load.                *
 ************************************************
/                                              */
loadVideo = function(id) {
	if(!ready) return;
	
	ready = false;
	player.cueVideoById(id, 0, 'default');
}


/////////////////////////////////////////////////
