	function updateHTML(elmId, value) {
	  document.getElementById(elmId).innerHTML = value;
	}

	function setytplayerState(newState) {
	  updateHTML("playerstate", newState);
	}

	function onYouTubePlayerReady(playerId) {
	  ytplayer = document.getElementById("myytplayer");
	  setInterval(updateytplayerInfo, 250);
	  updateytplayerInfo();
	  ytplayer.addEventListener("onStateChange", "onytplayerStateChange");
	  ytplayer.addEventListener("onError", "onPlayerError");
	}

	function onPlayerError(errorCode) {
	  alert("An error occured: " + errorCode);
	}

	function onytplayerStateChange(newState) {
	  setytplayerState(newState);
	}

	function updateytplayerInfo() {
	  updateHTML("bytesloaded", getBytesLoaded());
	  updateHTML("bytestotal", getBytesTotal());
	  updateHTML("videoduration", getDuration());
	  updateHTML("videotime", getCurrentTime());
	  updateHTML("startbytes", getStartBytes());
	  updateHTML("volume", getVolume());
	}

	// functions for the api calls
	function loadNewVideo(id, startSeconds) {
	  if (ytplayer) {
		ytplayer.loadVideoById(id, parseInt(startSeconds));
	  }
	}

	function cueNewVideo(id, startSeconds) {
	  if (ytplayer) {
		ytplayer.cueVideoById(id, startSeconds);
	  }
	}

	function play() {
	  if (ytplayer) {
		ytplayer.playVideo();
	  }
	}

	function pause() {
	  if (ytplayer) {
		ytplayer.pauseVideo();
	  }
	}

	function stop() {
	  if (ytplayer) {
		ytplayer.stopVideo();
	  }
	}

	function getPlayerState() {
	  if (ytplayer) {
		return ytplayer.getPlayerState();
	  }
	}

	function seekTo(seconds) {
	  if (ytplayer) {
		ytplayer.seekTo(seconds, true);
	  }
	}

	function getBytesLoaded() {
	  if (ytplayer) {
		return ytplayer.getVideoBytesLoaded();
	  }
	}

	function getBytesTotal() {
	  if (ytplayer) {
		return ytplayer.getVideoBytesTotal();
	  }
	}

	function getCurrentTime() {
	  if (ytplayer) {
		return ytplayer.getCurrentTime();
	  }
	}

	function getDuration() {
	  if (ytplayer) {
		return ytplayer.getDuration();
	  }
	}

	function getStartBytes() {
	  if (ytplayer) {
		return ytplayer.getVideoStartBytes();
	  }
	}

	function mute() {
	  if (ytplayer) {
		ytplayer.mute();
	  }
	}

	function unMute() {
	  if (ytplayer) {
		ytplayer.unMute();
	  }
	}
	
	function getEmbedCode() {
	  alert(ytplayer.getVideoEmbedCode());
	}

	function getVideoUrl() {
	  alert(ytplayer.getVideoUrl());
	}
	
	function setVolume(newVolume) {
	  if (ytplayer) {
		ytplayer.setVolume(newVolume);
	  }
	}

	function getVolume() {
	  if (ytplayer) {
		return ytplayer.getVolume();
	  }
	}

	function clearVideo() {
	  if (ytplayer) {
		ytplayer.clearVideo();
	  }
	}
