function onSendJsonError(event, request, settings)
{
	alert("К сожалению, Ваш запрос не был обработан правильно. Попробуйте еще раз.");
	//alert(event);
	//alert(request);
	//alert(settings);
}

function sendJson(targetUrl, data2Send, onSuccess, onFailure, isAsync, options) {
	if (options.debugMode) {
		alert(JSON.stringify(data2Send));
	}
	var result = ($.ajax({
		type: (options.method == undefined) ? "post" : options.method,
		url: targetUrl,
		data: (options.stringify == undefined) ? JSON.stringify(data2Send) : data2Send,
		contentType: "application/json; charset=utf-8",
		dataType: "json",
		async: isAsync,
		success: function(data) {
			if (data.d) {
				onSuccess(data.d, options);
			}
			else {
				onFailure(data.Message, data.StackTrace, data.ExceptionType, options);
			}
		},
		error: onSendJsonError
	})).responseText;
	if (options.debugMode) {
		alert(result);
	}
}

function sendJsonGet(targetUrl, data2Send, onSuccess, onFailure, isAsync, options) {
	var result = ($.ajax({
		type: "get",
		url: "ArtusGetPoints.aspx",
		data: data2Send,
		contentType: "application/json; charset=utf-8",
		dataType: "json",
		async: false,
		success: function(data, options) {
			if (data.d) {
				onGetPointsSuccess(data.d, options);
			}
			else {
				onGetPointsFailure(data.Message, data.StackTrace, data.ExceptionType, options);
			}
		},
		error: onSendJsonError
	})).responseText;
	if (options.debugMode) {
		alert(result);
	}
}