﻿
/*

Usage:
function send()
{
    var jsonObjectArray = new Array();
    jsonObjectArray.push(new dataRequestObject(name = "url", value = url, dataType = "string"));

    $.ajax({
        type: "POST",
        contentType: 'application/json; charset=utf-8',
        url: requestUrl,
        data: buildJSONDataRequest(jsonObjectArray),
        dataType: 'json',
        success: function (result, status) {
        },
        error: function (xhr, textStatus, errorThrown) {
        }
    });
}
*/

function dataRequestObject(name, value, datatype) {
    this.name = name;
    this.value = value;
    this.dataType = datatype;
    return this;
}

function buildJSONDataRequest(dataArray) {

    var request = '{';
    for (var i = 0; i < dataArray.length; i++) {
        if (dataArray[i].dataType == "string") {
            request += '"' + dataArray[i].name + '":"' + _escapeDoubleQuoteChars(dataArray[i].value) + '"';
        } else {
            request += '"' + dataArray[i].name + '":' + dataArray[i].value;
        }
        if (i < dataArray.length - 1) {
            request += ',';
        }
    }
    request += '}';

    return _escapeNewLineChars(request);

}

/*
*  Escape newline chars for being transmitted with JSON over the wire
*/
function _escapeNewLineChars(valueToEscape) {
    if (valueToEscape != null && valueToEscape != "") {
        return valueToEscape.toString().replace(/\n/gi, "");
    } else {
        return valueToEscape;
    }
}

function _escapeDoubleQuoteChars(valueToEscape) {
    if (valueToEscape != null && valueToEscape != "") {
        return valueToEscape.toString().replace(/\"/gi, "'");
    } else {
        return valueToEscape;
    }
}




