services.videoPlaylist = function() {

	var baseUrl = "/ajax/playlist.aspx";
	var makeRequest = function(params, callback) {
		$.getJSON(baseUrl, params, callback);
	}
	var makeHtmlRequest = function(params, callback) {
		$.get(baseUrl, params, callback);
	}

	return {
		getLibrary: function(username, callback, order, page) {
			makeRequest({ method: "get-library", username: username, order: order, page: page }, function(data) {
				(data.success)?callback(data):callback(false);
			})
		},
		addToLibrary: function(items, callback) {
			makeRequest({ method: "add-library-article", articleId: items.join(',') }, function(data) {
				(data.success)?callback():callback(false);
			});
		},
		removeFromLibrary: function(items, order, callback) {
			makeRequest({ method: "remove-library-article", articleId: items.join(','), order: order }, function(data) {
				(data.success)?callback(data):callback(false);
			});
		},
		getPlaylistsHtml: function(username, callback) {
			makeHtmlRequest({ method: "get-playlists-html", username: username }, function(data) {
				callback(data);
			})
		},
		getPlaylists: function(username, callback) {
			makeRequest({ method: "get-playlists", username: username }, function(data) {
				(data.success)?callback(data):callback(false);
			});
		},
		getPlaylist: function(playlistId, callback) {
			makeRequest({ method: "get-playlist", playlistid: playlistId }, function(data) {
				(data.success)?callback(data):callback(false);
			});
		},
		createPlaylist: function(playlistName, callback) {
			makeRequest({ method: "add-playlist", title: playlistName }, function(data) {
				callback(data);
			});
		},
		addToPlaylist: function(playlistId, items, callback) {
			makeRequest({ method: "add-playlist-article", playlistid: playlistId.join(','), articleId: items.join(',') }, function(data) {
				callback(data);
			});
		},
		createAndAddToPlaylist: function(playlistName, items, callback) {
			makeRequest({ method: "add-playlist-with-article", title: playlistName, articleId: items.join(',') }, function(data) {
				callback(data);
			});
		},
		deletePlaylist: function(playlistId, callback) {
			makeRequest({ method: "delete-playlist", playlistid: playlistId }, function(data) {
				(data.success)?callback(data):callback(false);
			});
		},
		removeFromPlaylist: function(playlistId, items, callback) {
			makeRequest({ method: "remove-playlist-article", playlistid: playlistId, articleId: items.join(',') }, function(data) {
				(data.success)?callback(data):callback(false);
			});
		},
		savePlaylist: function(playlistId, items, callback) {
			makeRequest({ method: "save-playlist-articles", playlistid: playlistId, articleId: items.join(',') }, function(data) {
				(data.success)?callback(data):callback(false);
			});
		}
	}
}();



