<!--

/*
    FreePokerAlliance Backend parser JavaScript functions
    (c) 2009, MGame Solutions
*/

var beParser = function() {
    function getKey(keyvalstr) {
        return keyvalstr.replace(/=.*/, '');
    }
    
    function getValue(keyvalstr) {
        return keyvalstr.replace(/^\w+=/, '');
    }
    
    function arrayize(data) {
        DELIMITER = '|';
        ESCAPECHAR = '\\';
        data = data.replace(/^Response=/, '');
        a = new Array();
        i = 0;
        j = 0;
        while (i<data.length) {
            while (a.length <= j)
                a.push('');
            if (data.length > (i+1)) {
                if (data.charAt(i) == ESCAPECHAR && (data.charAt(i+1) == DELIMITER || data.charAt(i+1) == ESCAPECHAR)) {
                    i++;
                    a[j] += data.charAt(i);
                } else if (data.charAt(i) == DELIMITER)
                    j++;
                else
                    a[j] += data.charAt(i);
            } else if (data.charAt(i) == DELIMITER)
                j++;
            else
                a[j] += data.charAt(i);
            i++;
        }
        b = new Array();
        for (i=0; i<a.length; i++) {
            b[getKey(a[i])] = getValue(a[i]);
        }
        return b;
    }
    
    return {
        parse: function(dataresponse) {
            return arrayize(dataresponse);
        }
    };
}();

//-->
