
var YouTubePlayer = function() {

	var players = {};
	var apiLoaded = false;
	var apiAdded = false;

	var addPlayer = function(elementId, settings) {
		addApi();
		players[elementId] = settings;
		loadPlayer(elementId);
	};

	var ready = function() {
		if (apiLoaded) {
			return;
		}
		apiLoaded = true;
		for (var id in players) {
			loadPlayer(id);
		}
	};

	var loadPlayer = function (id) {
		if (!apiLoaded) {
			return;
		}
		var settings = players[id];
		players[id] = new YT.Player(id, settings);
	}

	var addApi = function() {
		if (apiAdded) {
			return;
		}
		apiAdded = true;

		// load the youtube js api
		var tag = document.createElement('script');
		tag.src = 'http://www.youtube.com/player_api';
		var firstScriptTag = document.getElementsByTagName('script')[0];
		firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
	}

	return {
		addPlayer: addPlayer,
		ready: ready
	}

}();

var onYouTubePlayerAPIReady = function() {
    YouTubePlayer.ready();
};

