// YouTube Player
function updateHTML(elmId, value) {
	document.getElementById(elmId).innerHTML = value;
}

function updateTimebar(currentTime, duration) {
	var timebar = document.getElementById('videoTimebar');
	var timebarWidth = parseInt(jQuery('#videoSeeker').css('width'), 10) - 10;
	var width = (timebarWidth / parseInt(duration, 10) * parseInt(currentTime, 10)).toFixed();
	// use the following instead of setAttribute because of IE ;(
	// tested in IE6 and 7, FF3 and Safari3
	timebar.style.cssText = "width:" + width + "px;";
}

function updateVolume(volume) {
	var offset = 0;
	if (volume > 0 ) {
		offset = ((100 - volume) / 12.5).toFixed() * 12;
	}
}

function setytplayerState(newState) {
	var play = document.getElementById('videoPlay');
	var pause = document.getElementById('videoPause');
	if (newState == 1 || newState == 3) {
		// use the following instead of setAttribute because of IE ;(
		// tested in IE6 and 7, FF3 and Safari3
		play.style.cssText = "display:none;";
		pause.style.cssText = "display:block;";
	} else {
		play.style.cssText ="display:block;";
		pause.style.cssText = "display:none;";
	}
}

function onytplayerStateChange(newState) {
	setytplayerState(newState);
}

function updateytplayerInfo() {
	updateHTML( "videoDuration", secondsToMinutesAndSeconds(getDuration()) );
	updateHTML( "videoCurrentTime", secondsToMinutesAndSeconds(getCurrentTime()) );
	updateTimebar( getCurrentTime(), getDuration() );
	updateVolume("videoVolume", getVolume());
}

function cueNewVideo(id, startSeconds) {
  if (window.ytplayer) {
    ytplayer.cueVideoById(id, startSeconds);
  }
}

function loadNewVideo(id, startSeconds) {
	if (window.ytplayer) {
		ytplayer.loadVideoById(id, parseInt(startSeconds, 10));
	}
}

function play() {
  if (window.ytplayer) {
    ytplayer.playVideo();
  }
}

function pause() {
  if (window.ytplayer) {
    ytplayer.pauseVideo();
  }
}

function secondsToMinutesAndSeconds(seconds) {
	var minutes = "00";
	if (parseInt(seconds, 10) > 60) {
		minutes = Math.floor(seconds / 60);
		seconds = (seconds - (60 * minutes)).toString();
		if (minutes.toString().length == 1) {
			minutes = "0" + minutes.toString();
		} else {
			minutes = minutes.toString();
		}
	}
	if (seconds.toString().length == 1) {
		seconds = "0" + seconds.toString();
	}
	return minutes + ":" + seconds;
}

function microsecondsToSeconds(microseconds) {
	return microseconds.toFixed().toString().replace(/-/, '');
}

function getCurrentTime() {
  if (window.ytplayer) {
    return microsecondsToSeconds( ytplayer.getCurrentTime() );
  }
}

function getDuration() {
  if (window.ytplayer) {
    return microsecondsToSeconds( ytplayer.getDuration() );
  }
}

function getVolume() {
	if (window.ytplayer) {
		return ytplayer.getVolume();
	}
}

function setVolume(newVolume) {
	if (window.ytplayer) {
		ytplayer.setVolume(newVolume);
	}
}

function onYouTubePlayerReady(playerId) {
	ytplayer = document.getElementById('bwinytplayer');
	setInterval(updateytplayerInfo, 1000);
	updateytplayerInfo();
	ytplayer.addEventListener('onStateChange', 'onytplayerStateChange');
	ytplayer.setVolume(100);
}
