<cfsilent></cfsilent>
<!--- version 2.01--->
<cfimport prefix="m" taglib="."/>
<cfparam name="ATTRIBUTES.target" type="string"/>
<cfparam name="ATTRIBUTES.scopeName" type="string" default="CALLER"/>
<cfparam name="ATTRIBUTES.structName" type="string" default="filter"/>
<cfparam name="ATTRIBUTES.markerList" type="string" default="applyFilter,saveAndClose"/>

<cfif thisTag.executionMode IS "start">	
	<cfset key="#ATTRIBUTES.target#.filter"/>

	<cfif isDefined("reset") or isDefined("resetAndClose")>		
		<m:settings action="clear" key="#key#"/>
	</cfif>

	<m:settings action="get" key="#key#" output="filter"/>
	<cfset "#ATTRIBUTES.scopeName#.#ATTRIBUTES.structName#"=#filter#/>
<cfelse>
	<!--- in fact, for any action --->
	<cfloop list=#ATTRIBUTES.markerList# index="marker">
		<cfif structKeyExists(FORM,"#marker#") OR structKeyExists(URL,"#marker#")>
			<m:settings action="sync" key="#key#" obj=#CALLER.filter#>
			<cfbreak/>
		</cfif>
	</cfloop>
</cfif>
