function requestData(template, callback, variables, onlyReturnFirstElement, synchronous) {
	var link = dir;
	var parameters = '_resource=' + escape(template) + ((typeof(window['sid']) != 'undefined') ? '&' + sid : '');
        
	$each(variables, function(v, k){
		parameters += '&' + k + '=' + escape(v);
	});
		
	var request = new Request.JSON({
		url: link,
		data: '_ajax=1&'+parameters,
                async: synchronous ? false : true,
		onComplete: (function(data){
			if (this.onlyReturnFirstElement && data && data.length == 1) {
				this.cb(data[0]);
				return;
			}
			
			this.cb(data);
			
		}).bind({cb: callback, onlyReturnFirstElement: onlyReturnFirstElement})
	}).send();
}

//requestData('data.xml', function(data){alert(data[5].beginn);}, {'id1': 4, 'id2': 5});