﻿PulseServiceProxy = function() //constructor for the proxy
{
    this._baseURL = "/pulse/PulseService.svc/";
};

PulseServiceProxy.prototype =
{
    _defaultErrorHandler: function(xhr, status, error) {
        // alert(xhr.statusText);
    },

    GetPulseAuthorHeader: function(data, success, error) {
        this._doAjax("GetPulseAuthorHeader", data, success, error);
    },

    GetPulseListByAuthor: function(data, success, error) {
        this._doAjax("GetPulseListByAuthor", data, success, error);
    },
    
    GetNewPulseItems: function(data, success, error) {
        this._doAjax("GetNewPulseItems", data, success, error);
    },

    GetPulseCountByLinkname: function(data, success, error) {
        this._doAjax("GetPulseCountByLinkname", data, success, error);
    },

    DeletePulseItem: function(data, success, error) {
        this._doAjax("DeactivatePulseItem", data, success, error);
    },

    EditPulseItem: function(data, success, error) {
        this._doAjax("EditPulseItem", data, success, error);
    },

    _doAjax: function(method, data, fnSuccess, fnError) {
        if (!data) data = {};

        if (!fnError) fnError = this._defaultErrorHandler;

        $.ajax({
            type: "POST",
            url: this._baseURL + method,
            data: data,
            contentType: "application/json; charset=utf-8",
            dataType: "text",
            success: fnSuccess,
            error: fnError,
            dataFilter: function(data) {
                var response;

                if (typeof (JSON) !== "undefined" && typeof (JSON.parse) === "function")
                    response = JSON.parse(data);
                else
                    response = val("(" + data + ")");

                if (response.hasOwnProperty("d"))
                    return response.d;
                else
                    return response;
            }
        });
    }
};
