﻿// JSONHelper: Contains methods for preparing and carrying out JSON requests.
var JSONHelper = {
    // ServicePath: Fully qualified path to the WebService
    ConferenceServicePath: SERVICE_ENDPOINT_ADDRESS + "/Services/Public/Conference/ConferenceSearch.svc/rest",
    EventServicePath: SERVICE_ENDPOINT_ADDRESS + "/Services/Public/Conference/AccountlessEventRequests.svc/rest",

    // MakeRequest: Carries out the actual JSON request.
    MakeRequest: function(requestName, requestData, onSuccess) {

        $.ajax({
            type: "GET",
            //contentType: "application/json; charset=utf-8",
            contentType: "application/json",
            url: this.ConferenceServicePath + "/" + requestName,
            //scriptCharset: "iso-8859-1",
            data: requestData,
            dataType: "jsonp",
            error: HandleError,
            success: HandleSuccess,
            async: true
        });

        function HandleSuccess(result) {
            //console.log(arguments);

            if (result.Success) {
                onSuccess(result.Data);
            } else {
                alert("Ajax error");
                console.error(result);
            }
        }

        function HandleError(XMLHttpRequest, textStatus, errorThrown) {
            alert("Ajax error:\n" + textStatus);
            console.log(XMLHttpRequest);
        }
    },

    MakeObjectRequest: function(requestName, requestData, onSuccess) {

        $.ajax({
            type: "GET",
            //contentType: "application/json; charset=utf-8",
            contentType: "application/json",
            url: this.EventServicePath + "/" + requestName,
            //scriptCharset: "iso-8859-1",
            data: requestData,
            dataType: "jsonp",
            error: HandleError,
            success: HandleSuccess,
            async: true
        });

        function HandleSuccess(result) {
            //console.log(arguments);

            if (result.d && result.d.Success) {
                onSuccess(result.d.Data);
            } else {
                alert("Ajax error");
                console.error(result);
            }
        }

        function HandleError(XMLHttpRequest, textStatus, errorThrown) {
            alert("Ajax error:\n" + textStatus);
            console.log(XMLHttpRequest);
        }
    }
}
