goog.provide('oneup.DataAccess');

goog.require('goog.net.XhrIo');

oneup.DataAccess = function() {};

oneup.DataAccess.dataUrlBase_ = window.location.protocol + '//' + window.location.host +'/';

oneup.DataAccess.prototype.getAllAchievements = function(callback) {
	goog.net.XhrIo.send(this.getDataUrl("getAllAchievements"), callback);
}

oneup.DataAccess.prototype.getMyAchievements = function(callback) {
	goog.net.XhrIo.send(this.getDataUrl("getMyAchievements"), callback);
}

oneup.DataAccess.prototype.deleteUserAchievement = function(id, callback) {
	goog.net.XhrIo.send(this.getDataUrl("deleteUserAchievement") + "?id=" + id, callback);
}

oneup.DataAccess.prototype.saveUserAchievement = function(id, callback) {
	goog.net.XhrIo.send(this.getDataUrl("saveUserAchievement") + "?id=" + id, callback);
}

oneup.DataAccess.prototype.removeAchievement = function(id, callback) {
  goog.net.XhrIo.send(this.getDataUrl("deleteAchievement") + "?id=" + id, callback);
}

oneup.DataAccess.prototype.newAchievement = function(name, group, callback) {
  goog.net.XhrIo.send(this.getDataUrl("saveAchievement") + "?name=" + name +'&group=' + group, callback);
}

oneup.DataAccess.prototype.isAdmin = function(callback) {
  goog.net.XhrIo.send(this.getDataUrl("isAdmin"), callback);
}

oneup.DataAccess.prototype.search = function(query, callback) {
	goog.net.XhrIo.send(this.getDataUrl('search', 'search') + '?q=' + query, callback);
}

oneup.DataAccess.prototype.getFriendDetails = function(id, callback) {
	goog.net.XhrIo.send(this.getDataUrl('getFriendDetails') + '?id=' + id, callback);
}


oneup.DataAccess.prototype.getDataUrl = function(methodName, opt_controller) {
	var controller = opt_controller || 'data';
	controller += '/';
	return oneup.DataAccess.dataUrlBase_ + controller + methodName;
}

