/**
 * 
 * aj(ax) Post
 * 
 * @param  {} params 
 * @return void
 *
 */
function ajP(d) {
    var request = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHttp") : window.XMLHttpRequest ? new XMLHttpRequest() : false; //  another ternary;
    
    request.onreadystatechange = function() { 
        if (4 == request.readyState) {
            if (200 == request.status) 
                d.success(request.responseText)
            else 
                d.error(request)

            if (d.done instanceof Function) d.done(request); 
        }
    };

    request.open("POST", d.url, true);
    request.setRequestHeader('X-Requested-With', (d.requestedWith||'XMLHttpRequest'));
    request.setRequestHeader('Content-type', (d.contentType||'application/x-www-form-urlencoded')); // 
    request.send(d.data);
}

@@ -351,79 +351,586 @@
 if (
-200 == request.status) %0A                d.success(request.responseText)
+'undefined' !== typeof d.listeners%5Brequest.status%5D) %7B%0A                // if it is 200, see if it has responseAsObject, then json parse it. If not 200, use the whole request%0A                d.listeners%5Brequest.status%5D(%0A                    200 == request.status%0A                    ? %0A                        d.responseAsObject %0A                        ? %0A                            JSON.parse(request.responseText) %0A                        : %0A                            request.responseText%0A                    :%0A                        request%0A                )%0A            %7D 
 %0A   
@@ -966,12 +966,22 @@
   d.
-erro
+listeners.othe
 r(re
@@ -986,16 +986,18 @@
 request)
+;%0A
 %0A%0A      

Update ajP.js