﻿Panagora.onError = function onError(XHR, error) {
	if (XHR.status == 500 || XHR.status == 404) {
		var response = eval('(' + XHR.responseText + ')');
		if (Panagora.NoticeManager)
			Panagora.NoticeManager.displayError(response.Status, 4000);
	} else {
		if (Panagora.NoticeManager)
			Panagora.NoticeManager.displayError(error);
	}
};

Panagora.ajax = function ajax(parameters) {
	parameters = parameters || {};
	
	if (!parameters.error)
		parameters.error = Panagora.onError;
	
	if (!parameters.dataType || parameters.dataType == 'json') {
		parameters.dataType = 'text';

		var successCallback = parameters.success || function () {};
		parameters.success = function (response, ts, xhr) {
			var data = $j.browser.mozilla
				? (new Function("return " + response))()
				: eval('(' + response + ')');
			successCallback(data, ts, xhr);
		}
	}
		
	jQuery.ajax(parameters);
}

Panagora.post = function post(parameters) {
	parameters = parameters || {};
	parameters.type = 'POST';

	Panagora.ajax(parameters);
}

Panagora.postJSON = Panagora.post; // obsolete
