// Namepsace setzen
Platform.Services = {};

Platform.Services.AbstractService = Class.create({
	serviceUrl: false,
	method: false,
	onSuccess: Prototype.K,
	onFailure: Prototype.K,
	onException: Prototype.K,
	initialize: function(parameters) {
		if(parameters && parameters.serviceUrl)
			this.serviceUrl = parameters.serviceUrl;
	
		if(parameters && parameters.method)
			this.method = parameters.method;
		
		if(parameters && parameters.onSuccess)
			this.onSuccess = parameters.onSuccess;
		
		if(parameters && parameters.onFailure)
			this.onFailure = parameters.onFailure;
		
		if(parameters && parameters.onException)
			this.onException = parameters.onException;
	},
	serve: function(requestParameters) {
		requestParameters.mode = "ajax";
		new Ajax.Request(this.serviceUrl, {
			method: this.method,
			parameters: requestParameters,
			onSuccess: this.onSuccess,
			onFailure: this.onFailure
		});
	}
}); 

Platform.Services.History = Class.create(Platform.Services.AbstractService, {
	initialize: function($super, parameters) {
		parameters.serviceUrl = "/services/historyService.php";
		parameters.method = "post";
		
		$super(parameters);
	},
	register: function() {
		var requestParams = {
			url: document.location.href,
			__method: "register"
		};
		
		this.serve(requestParams);
	},
	get: function() {
		var requestParams = {
			__method: "get"
		};
		
		this.serve(requestParams);
	}, 
	unregister: function() {
		var requestParams = {
			__method: "unregister"
		};
		
		this.serve(requestParams);
	}
});