<!--- Tag Parameters --->
<CFPARAM NAME="Attributes.Input" TYPE="string">
<CFPARAM NAME="Attributes.Output" TYPE="variableName">

<!--- Local Variable --->
<CFSET Result = "">

<!--- For each word in the input --->
<CFLOOP LIST="#Attributes.Input#" INDEX="ThisWord" DELIMITERS=" ">
  <!--- Grab the first letter, and convert it to uppercase --->
  <CFSET FirstLetter = UCase( Mid(ThisWord, 1, 1) )>
  <!--- Grab remaining letters, convert them to lowercase --->
  <CFSET RestOfWord = LCase( Mid(ThisWord, 2, Len(ThisWord)-1) )>
  
  <!--- Append the completed, capitalized word to result --->
  <CFSET Result = ListAppend(Result, FirstLetter & RestOfWord, " ")>
</CFLOOP>

<!--- Return result to calling template --->
<CFSET "Caller.#Attributes.Output#" = Result>
