// Fission AJAX Functions
    
    function pfajax_getReqObj() {        
        var httpReq;
        try {
            httpReq=new ActiveXObject('Msxml2.XMLHTTP');
        } catch (e) {
            try {
                httpReq=new ActiveXObject('Microsoft.XMLHTTP');
            } catch (oc) {
                httpReq=null;
            }
        }
        if(!httpReq && typeof XMLHttpRequest != 'undefined') {
            httpReq = new XMLHttpRequest();
        }
        return httpReq;
    }

    function pfajax_callMethod(reqtype, callback, com, process, args) {
        var i, reqObj, cb;
        var task = 'ajax';
        var uri = '/ajax.php';
        var query = '';
        var body = null;
        
        cb = eval(callback);
        query = query + '?com='+escape(com)+'&task='+escape(task)+'&process=' + escape(process);    
        for (i = 0; i < args.length; i++) {            
            keyval = args[i].split('||');
            query = query + '&'+keyval[0]+'='+escape(keyval[1]);
        }
        if (reqtype == 'GET') {
            query = query + '&ajaxtime=' + new Date().getTime();                        
        } else {        
            body = query; query = '';
        }

        reqObj = pfajax_getReqObj();
        reqObj.open(reqtype, uri+query, true);
        if (reqtype == 'POST') {
            reqObj.setRequestHeader('Method', 'POST ' + uri + ' HTTP/1.1');
            reqObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
            reqObj.setRequestHeader('Content-length',body.length); 
            reqObj.setRequestHeader('Connection','close');
        }
        reqObj.onreadystatechange = function() {
            var data = null;
            if (reqObj.readyState == 4) { data = reqObj.responseText; }                        
            return cb(reqObj.readyState, data);
        };
        reqObj.send(body);
        delete reqObj;
    }

// Prebuilt Callbacks

    // Does nothing on all states
    function PF_AJAX_empty( state, data ) { return; }

    // Alerts the responseText on a 'done' state of 4
    function PF_AJAX_alertBody( state, data ) {
        if (state != 4) { return; }                    
        alert(data);
    }
