components/utils/htdocs/scripts/jsmart.js
function obMerge(prefix, ob1, ob2 /*, ...*/)
    {
        for (var i=2; i<arguments.length; ++i)
        {
            for (var nm in arguments[i]) 
            {
                if (arguments[i].hasOwnProperty(nm) || typeof arguments[i][nm] == 'function')
                {
                    if (typeof(arguments[i][nm]) == 'object' && arguments[i][nm] != null)
                    {
                        ob1[prefix+nm] = (arguments[i][nm] instanceof Array) ? new Array : new Object;
                        obMerge('', ob1[prefix+nm], arguments[i][nm]);
                    }
                    else
                    {
                        ob1[prefix+nm] = arguments[i][nm]; 
                    }
                }
            }
        }
        return ob1;
    }
function obMerge(prefix, ob1, ob2 /*, ...*/)
    {
        for (var i=2; i<arguments.length; ++i)
        {
            for (var nm in arguments[i]) 
            {
                if (arguments[i].hasOwnProperty(nm) || typeof arguments[i][nm] == 'function')
                {
                    if (typeof(arguments[i][nm]) == 'object' && arguments[i][nm] != null)
                    {
                        ob1[prefix+nm] = (arguments[i][nm] instanceof Array) ? new Array : new Object;
                        obMerge('', ob1[prefix+nm], arguments[i][nm]);
                    }
                    else
                    {
                        ob1[prefix+nm] = arguments[i][nm]; 
                    }
                }
            }
        }
        return ob1;
    }
function obMerge ( prefix , ob1 , ob2 /*, ...*/ ) { for ( var i = 2 ; i < arguments . length ; ++ i ) { for ( var nm in arguments [ i ] ) { if ( arguments [ i ] . hasOwnProperty ( nm ) || typeof arguments [ i ] [ nm ] == 'function' ) { if ( typeof ( arguments [ i ] [ nm ] ) == 'object' && arguments [ i ] [ nm ] != null ) { ob1 [ prefix + nm ] = ( arguments [ i ] [ nm ] instanceof Array ) ? new Array : new Object ; obMerge ( '' , ob1 [ prefix + nm ] , arguments [ i ] [ nm ] ) ; } else { ob1 [ prefix + nm ] = arguments [ i ] [ nm ] ; } } } } return ob1 ; }
merges two or more objects into one and add prefix at the beginning of every property name at the top level
objects type is lost, only own properties copied
merges two or more objects into one and add prefix at the beginning of every property name at the top level objects type is lost only own properties copied