﻿registerNS("Tegud.AJAX");

Tegud.AJAX.SendRequest = function (url,
                                    data,
                                    callbacks) {
    if (callbacks == undefined)
        callbacks = {};

    $.ajax({
        cache: false,
        success: function (data) {
            Tegud.AJAX.ProcessResponse(data, callbacks.Success, callbacks.Failure);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            Tegud.AJAX.Error("Error contacting Web Service.", callbacks.Failure);
        },
        type: "POST",
        url: url,
        dataType: "json",
        data: data
    });
}

Tegud.AJAX.SendJSONRequest = function (url,
                                        data,
                                        callbacks) {
    if (callbacks == undefined)
        callbacks = {};

    $.ajax({
        cache: false,
        success: function (data) {
            Tegud.AJAX.ProcessResponse(data, callbacks.Success, callbacks.Failure);
        },
        error: function (XMLHttpRequest, textStatus, errorThrown) {
            Tegud.AJAX.Error("Error contacting Web Service.", callbacks.Failure);
        },
        type: "POST",
        url: url,
        contentType: "application/json",
        dataType: "json",
        data: JSON.stringify(data)
    });
}

Tegud.AJAX.ProcessResponse = function (data, successCallback, failureCallback) {
    if (data.Error != undefined) {
        Tegud.AJAX.Error(data.Error, failureCallback);
        return;
    }

    if (successCallback == undefined)
        return;

    successCallback(data);
}

Tegud.AJAX.Error = function (message, callback) {
    if ((message || "") != "")
        alert(message);

    if (callback)
        callback();
}
