g_AjaxModuleWrappers = new Array();
g_AMW_argSets = new Array();

// find the wrapper ID instance that owns this child
function AjaxModuleWrapper_GetID( childID ) {
	el = $( childID );
	
	do {
		el = el.parentNode;
	} while( el && el.className != "ajax_module_wrapper" );
	
	if( !el )
		return null;
	id = el.id;
	return id;
}

// store a refresh method for a given instance, in case we need to update that div later (timed refresh, or button/form-based refresh)
function AjaxModuleWrapper_Register( divID, updaterFunc ) {
	g_AjaxModuleWrappers[ divID ] = updaterFunc;
}

// store a key/value pair for a given instance
function AjaxModuleWrapper_SetArg( divID, argName, argValue ) {
	//alert( "AMW_SetArg( '" + argName + "', '" + argValue + "' )" );
	
	// initialize this arg set if first arg in it
	if( !g_AMW_argSets[ divID ] )
		g_AMW_argSets[ divID ] = new Object();
		
	// if we're deleting an arg
	if( argValue == null )
		delete g_AMW_argSets[ divID ][ argName ];
	// else store the new value
	else g_AMW_argSets[ divID ][ argName ] = argValue;
}

// retrieve an arg from the arg set for a given instance
function AjaxModuleWrapper_GetArg( divID, argName ) {
	if( g_AMW_argSets[ divID ][ argName ] )
		return g_AMW_argSets[ divID ][ argName ];
	else return null;
}

// get the entire arg set for a given instance
function AjaxModuleWrapper_GetArgs( divID ) {
	return g_AMW_argSets[ divID ];
}

// refresh an instance
function AjaxModuleWrapper_Refresh( divID, form, button ) {
	g_AjaxModuleWrappers[ divID ]( form, button );
}