﻿var DataProvider = new Object();

DataProvider.getJSON = function (getJSONParameters, onErrorFunction)
{
    $.ajax({
        url: getJSONParameters.url,
        async: false,
        type: 'POST',
        dataType: 'json',
        data: getJSONParameters.data,
        success: function (data, textStatus)
        {
            try
            {
                if ($.isFunction(getJSONParameters.callback))
                    getJSONParameters.callback(data);
            }
            catch (e)
            {
                if ($.isFunction(onErrorFunction))
                {
                    onErrorFunction(e);
                }                
            }
        },
        error: function (XMLHttpRequest, textStatus, errorThrown)
        {
            if ($.isFunction(onErrorFunction))
            {
                onErrorFunction(XMLHttpRequest.responseText);
            }
        }
    });
}

DataProvider.sendRequest = function (url, method, data, callback)
{
    var dataClone = CloneObject(data);
    dataClone.method = method;
    var params = {
        url: url,
        data: dataClone,
        callback: callback
    };

    DataProvider.getJSON(params);
}

DataProvider.getHTML = function (getHtmlParameters)
{
    $.ajax({
        url: getHtmlParameters.url,
        type: 'POST',
        dataType: 'html',
        data: getHtmlParameters.data,
        success: function (data, textStatus)
        {
            try
            {
                if ($.isFunction(getHtmlParameters.callback))
                    getHtmlParameters.callback(data);
            }
            catch (e)
            {
                alert('Error');
            }
        }        
    });
}
