// requires yui.dom

if (typeof(ARK) === 'undefined')
	var ARK = {};

if (!console) {
    var console = {log: function(){}};
}


ARK.data = {
	// send asnyc request
	sendRequest: function(uri, params, callback, options) {
		var xhrCallback;
		var failureCallback = (options.onfail) ? options.onfail : ARK.data.fetchFailed;
		
		// append params
		uri += (uri.search(/\?/)>=0) ? '&' : '?';
		uri += (params) ? params : '';
		
		if (options.indicator)
			ARK.status.startLoadingStatus(options.indicator);
		
		xhrCallback = {
			success: ARK.data.processResponse,
			failure: failureCallback,
			scope: ARK,
			argument: [callback, options.indicator]
		};
				
		YAHOO.util.Connect.asyncRequest('GET', uri, xhrCallback);
	},
	
	processResponse: function(o) {
		var indicator = o.argument[1];
		var callback = o.argument[0];
		
		if (indicator)
			ARK.status.stopLoadingStatus(indicator);
			
		callback(o);
	},
	
	// request failure callback
	requestFailed: function(o) {
		// do nothing atm	
		console.log('f41L!');
	}
};