var ds_Plugin_Ajax = ds_Base.extend({
	
	initialize: function(options) {
		
		// Implement given options
    	this.setOptions(options);
		
		// Cleanup Ajax request
		this.ajaxRequest = Class.empty;		
		
	},

	getAjax: function(url, onComplete, evalscripts) {
		
		var ajaxFailure = this.ajaxFailure.bind(this);
		var ajaxOptions = {
			method: 		'get',
			evalScripts: 	evalscripts,
			onComplete: 	onComplete, 
			onFailure: 		ajaxFailure
		};
		
		// Fire Ajax request
		this.ajaxRequest = new Ajax(url, ajaxOptions).request();
	},
	 
	postAjax: function(url, onComplete, evalscripts) {
		//console.log(url + onComplete + evalscripts);
		var ajaxFailure = this.ajaxFailure.bind(this);
		var ajaxOptions = {
			method: 		'post',
			evalScripts: 	evalscripts,
			onComplete: 	onComplete, 
			onFailure: 		ajaxFailure
		};
		
		// Fire Ajax request
		this.ajaxRequest = new Ajax(url, ajaxOptions).request();
	},
	
	postAjaxBody: function(url, onComplete, body) {
		var ajaxFailure = this.ajaxFailure.bind(this);
		var ajaxOptions = {
			method: 		'post',
			postBody:       body,
			evalScripts: 	false,
			onComplete: 	onComplete, 
			onFailure: 		ajaxFailure
		};
		
		// Fire Ajax request
		this.ajaxRequest = new Ajax(url, ajaxOptions).request();
	},
	
	postAjaxVoid:  function(url, body) {
		//console.log(url + onComplete + evalscripts);
		var ajaxFailure = this.ajaxFailure.bind(this);
		var ajaxOptions = {
			postBody:       body,
			method: 		'post',
			evalScripts: 	false,
			onFailure: 		ajaxFailure
		};
		
		// Fire Ajax request
		this.ajaxRequest = new Ajax(url, ajaxOptions).request();
	},
	
	ajaxFailure: function(msg) {
		//console.log(msg);
	}
	
});
