code: function pongEasyFormSetData( divId, data ) {
  	log( "Pong-EaysForm",  'set data hook: '+divId );
  	var def = moduleConfig[ divId ];
  	if ( def.dataDocSubPath == null ) {
  		// table is the root of the doc
  		log( "Pong-EaysForm",  'no tbl.dataDocSubPath' );
  		// TODO add update code
  		//alert( "Update form with dataDocSubPath..." );
  		pongEasyFormUpdFieldsDta( divId, moduleConfig[ divId ], data ); 
  	} else {
  		log( "Pong-EaysForm",  'tbl.dataDocSubPath='+def.dataDocSubPath );
  		// table is somewhere in the DOM tree
  		var pathToken = def.dataDocSubPath.split('.');
  		log( "Pong-EaysForm",  'pathToken[0] ' + pathToken[0] );
  		var subdata = data[ pathToken[0] ];
  		for ( i = 1; i < pathToken.length; i++ ) {
  			log( "Pong-EaysForm", 'pathToken['+i+'] ' + pathToken[i] );	
  			subdata = subdata[ pathToken[i] ];
  		}
  		log( "Pong-EaysForm", ' subdata = ' + JSON.stringify( subdata ) );
  		//poList[ divId ].pongListData = subdata;
  		// TODO add update code
  		//alert( "Update form w/o dataDocSubPath..." );
  		pongEasyFormUpdFieldsDta( divId, moduleConfig[ divId ], subdata ); 
  	}
  }
docs: hook and used by update hook