// JavaScript Document
var sepList = "|:;!*-+.qwertyuiopasdfghjklzxcvbnm";

Object.extend = function(destination, source) {
    for (property in source) {
        destination[property] = source[property];
    }
    
    return destination;
};

Object.extend(String.prototype, {
    trim: function() {
        var ns = this;
        var chars = [' ', '\n', '\t', '\r'];
        
        while(chars.inArray(ns.charAt(0)))
            ns = ns.substring(1, ns.length);
        
        while(chars.inArray(ns.charAt(ns.length - 1)))
            ns = ns.substring(0, ns.length - 2);
        
        return ns;
    },
    
    myReplace: function(src, rep) {
        if(typeof src == 'string' && typeof rep == 'string') {
            var ret = this;
            
            ret = ret.split(src);
            ret = ret.join(rep);
            
            return ret;
        } else {
            if(src.length != rep.length)
                return;
            
            var ret = this;
            
            for(var i = 0; i < src.length; i++) {
                ret = ret.myReplace(src[i], rep[i]);
            }
            
            return ret;
        }
    }
});

function AjaxUnserialize(v) {
    var convert = function(str, lv, func) {
        var nlv = lv + 1;
        var c = sepList.charAt(lv);
        
        var arr = str.split(' ' + c + ' ');
        
        for(var i = 0; i < arr.length; i++) {
            var x = arr[i];
            var type = x.charAt(0);
            var cont = x.substring(1, x.length);
            
            cont = cont.myReplace(c + '' + c, c);
            
            if(type == 'A')
                arr[i] = func(cont, nlv, func);
            else
                arr[i] = cont;
        }
        
        return arr;
    };
    
    return convert(v, 0, convert);
}
