function parseMSJSONString(data)
{
    try {
        var newdata = data.replace(new RegExp('"\\\\\/Date\\\((-?[0-9]+)\\\)\\\\\/"', "g"), "new Date($1)");
        newdata = eval('('+newdata+')');
        return newdata;
    }
    catch(e) { return null; }
}

function dateTranslator(data) {
    try {
        var newdata = data.replace(
            new RegExp('Date\\((-?[0-9]+)\\)', "g")
                        , "\\/Date($1)\\/");
        return newdata;
    }
    catch(e) { return data; }
}

Date.prototype.toJSON = function () {
      var date = "Date(" + this.getTime() + ')';
      return date;
};

function stringifyToMSJSON(data){
    return dateTranslator(JSON.stringify(data));
}


function ajaxCall(url, params, callback){
   $.ajax({
        type: "POST",
        data: {formData:stringifyToMSJSON(params)},
        url: url,
        success: callback,
        error: globalError,
        timeout: 10000
    }); 
    return null;   
}

function globalError(XMLHttpRequest, textStatus, errorThrown){
    alert("Error: " +textStatus+ XMLHttpRequest.responseText);
}