<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>wheels/view/formsdate.cfm</filename>
    </added>
    <added>
      <filename>wheels/view/formsdateobject.cfm</filename>
    </added>
    <added>
      <filename>wheels/view/formsdateplain.cfm</filename>
    </added>
    <added>
      <filename>wheels/view/formsobject.cfm</filename>
    </added>
    <added>
      <filename>wheels/view/formsplain.cfm</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,5 +1,5 @@
 &lt;cfcomponent output=&quot;false&quot;&gt;
-	&lt;cfinclude template=&quot;global/functions.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;dispatch/functions.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;global/functions.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;plugins/injection.cfm&quot;&gt;
 &lt;/cfcomponent&gt;
\ No newline at end of file</diff>
      <filename>wheels/Dispatch.cfc</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,5 @@
-&lt;cfinclude template=&quot;global/functions.cfm&quot;&gt;
 &lt;cfinclude template=&quot;controller/functions.cfm&quot;&gt;
+&lt;cfinclude template=&quot;global/functions.cfm&quot;&gt;
 &lt;cfinclude template=&quot;view/functions.cfm&quot;&gt;
 &lt;cfinclude template=&quot;plugins/injection.cfm&quot;&gt;
 &lt;cfinclude template=&quot;../#application.wheels.viewPath#/helpers.cfm&quot;&gt;
\ No newline at end of file</diff>
      <filename>wheels/controller.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,17 +1,17 @@
 &lt;cfif StructKeyExists(server, &quot;railo&quot;)&gt;
-	&lt;cfinclude template=&quot;initialization.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;caching.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;filters.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;flash.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;caching.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;rendering.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;redirection.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;initialization.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;miscellaneous.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;redirection.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;rendering.cfm&quot;&gt;
 &lt;cfelse&gt;
-	&lt;cfinclude template=&quot;wheels/controller/initialization.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;wheels/controller/caching.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;wheels/controller/filters.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;wheels/controller/flash.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;wheels/controller/caching.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;wheels/controller/rendering.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;wheels/controller/redirection.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;wheels/controller/initialization.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;wheels/controller/miscellaneous.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;wheels/controller/redirection.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;wheels/controller/rendering.cfm&quot;&gt;
 &lt;/cfif&gt;
\ No newline at end of file</diff>
      <filename>wheels/controller/appfunctions.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,7 +1,7 @@
-&lt;cfinclude template=&quot;initialization.cfm&quot;&gt;
+&lt;cfinclude template=&quot;caching.cfm&quot;&gt;
 &lt;cfinclude template=&quot;filters.cfm&quot;&gt;
 &lt;cfinclude template=&quot;flash.cfm&quot;&gt;
-&lt;cfinclude template=&quot;caching.cfm&quot;&gt;
-&lt;cfinclude template=&quot;rendering.cfm&quot;&gt;
+&lt;cfinclude template=&quot;initialization.cfm&quot;&gt;
+&lt;cfinclude template=&quot;miscellaneous.cfm&quot;&gt;
 &lt;cfinclude template=&quot;redirection.cfm&quot;&gt;
-&lt;cfinclude template=&quot;miscellaneous.cfm&quot;&gt;
\ No newline at end of file
+&lt;cfinclude template=&quot;rendering.cfm&quot;&gt;
\ No newline at end of file</diff>
      <filename>wheels/controller/functions.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,3 +1,336 @@
+&lt;cffunction name=&quot;$callAction&quot; returntype=&quot;void&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
+	&lt;cfargument name=&quot;controller&quot; type=&quot;any&quot; required=&quot;true&quot;&gt;
+	&lt;cfargument name=&quot;controllerName&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
+	&lt;cfargument name=&quot;actionName&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
+	&lt;cfscript&gt;
+		var loc = {};
+		
+		if (Left(arguments.actionName, 1) == &quot;$&quot; || ListFindNoCase(application.wheels.protectedControllerMethods, arguments.actionName))
+			$throw(type=&quot;Wheels.ActionNotAllowed&quot;, message=&quot;You are not allowed to execute the `#arguments.actionName#` method as an action.&quot;, extendedInfo=&quot;Make sure your action does not have the same name as any of the built-in Wheels functions.&quot;);
+
+		if (StructKeyExists(arguments.controller, arguments.actionName))
+			$invoke(componentReference=arguments.controller, method=arguments.actionName);
+		if (!StructKeyExists(request.wheels, &quot;response&quot;))
+		{
+			// a render function has not been called yet so call it here
+			try
+			{
+				arguments.controller.renderPage();
+			}
+			catch(Any e)
+			{
+				if (FileExists(ExpandPath(&quot;#application.wheels.viewPath#/#LCase(arguments.controllerName)#/#LCase(arguments.actionName)#.cfm&quot;)))
+				{
+					$throw(object=e);
+				}
+				else
+				{
+					if (application.wheels.showErrorInformation)
+					{
+						$throw(type=&quot;Wheels.ViewNotFound&quot;, message=&quot;Could not find the view page for the `#arguments.actionName#` action in the `#arguments.controllerName#` controller.&quot;, extendedInfo=&quot;Create a file named `#LCase(arguments.actionName)#.cfm` in the `views/#LCase(arguments.controllerName)#` directory (create the directory as well if it doesn't already exist).&quot;);
+					}
+					else
+					{
+						$header(statusCode=&quot;404&quot;, statusText=&quot;Not Found&quot;);
+						$includeAndOutput(template=&quot;#application.wheels.eventPath#/onmissingtemplate.cfm&quot;);
+						$abort();
+					}
+				}
+			}
+		}
+	&lt;/cfscript&gt;
+&lt;/cffunction&gt;
+
+&lt;cffunction name=&quot;$callActionAndAddToCache&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
+	&lt;cfscript&gt;
+		$callAction(controller=arguments.controller, controllerName=arguments.controllerName, actionName=arguments.actionName);
+		$addToCache(key=arguments.key, value=request.wheels.response, time=arguments.time, category=arguments.category);
+	&lt;/cfscript&gt;
+	&lt;cfreturn request.wheels.response&gt;
+&lt;/cffunction&gt;
+
+&lt;cffunction name=&quot;$createParams&quot; returntype=&quot;struct&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
+	&lt;cfargument name=&quot;route&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
+	&lt;cfargument name=&quot;foundRoute&quot; type=&quot;struct&quot; required=&quot;true&quot;&gt;
+	&lt;cfargument name=&quot;formScope&quot; type=&quot;struct&quot; required=&quot;false&quot; default=&quot;#form#&quot;&gt;
+	&lt;cfargument name=&quot;urlScope&quot; type=&quot;struct&quot; required=&quot;false&quot; default=&quot;#url#&quot;&gt;
+	&lt;cfscript&gt;
+		var loc = {};
+		
+		// add all normal URL variables to struct (i.e. ?x=1&amp;y=2 etc)
+		loc.returnValue = arguments.urlScope; 
+		
+		// go through the matching route pattern and add URL variables from the route to the struct
+		loc.iEnd = ListLen(arguments.foundRoute.pattern, &quot;/&quot;);
+		for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
+		{
+			loc.item = ListGetAt(arguments.foundRoute.pattern, loc.i, &quot;/&quot;);
+			if (Left(loc.item, 1) == &quot;[&quot;)
+				loc.returnValue[ReplaceList(loc.item, &quot;[,]&quot;, &quot;,&quot;)] = ListGetAt(arguments.route, loc.i, &quot;/&quot;);
+		}
+
+		// add controller and action unless they already exist
+		if (!StructKeyExists(loc.returnValue, &quot;controller&quot;))
+			loc.returnValue.controller = arguments.foundRoute.controller;
+		if (!StructKeyExists(loc.returnValue, &quot;action&quot;))
+			loc.returnValue.action = arguments.foundRoute.action;
+		
+		// convert controller to upperCamelCase and action to normal camelCase
+		loc.returnValue.controller = REReplace(loc.returnValue.controller, &quot;-([a-z])&quot;, &quot;\u\1&quot;, &quot;all&quot;);
+		loc.returnValue.action = REReplace(loc.returnValue.action, &quot;-([a-z])&quot;, &quot;\u\1&quot;, &quot;all&quot;);
+	
+		// add name of route to params if a named route is running
+		if (StructKeyExists(arguments.foundRoute, &quot;name&quot;) &amp;&amp; Len(arguments.foundRoute.name) &amp;&amp; !StructKeyExists(loc.returnValue, &quot;route&quot;))
+			loc.returnValue.route = arguments.foundRoute.name;
+	
+		// decrypt all values except controller and action
+		if (application.wheels.obfuscateUrls)
+		{
+			for (loc.key in loc.returnValue)
+			{
+				if (loc.key != &quot;controller&quot; &amp;&amp; loc.key != &quot;action&quot;)
+				{
+					try
+					{
+						loc.returnValue[loc.key] = deobfuscateParam(loc.returnValue[loc.key]);
+					}
+					catch(Any e) {}
+				}
+			}
+		}
+	
+		if (StructCount(arguments.formScope))
+		{
+			// loop through form variables, merge any date variables into one, fix checkbox submissions
+			loc.dates = {};
+			for (loc.key in arguments.formScope)
+			{
+				if (FindNoCase(&quot;($checkbox)&quot;, loc.key))
+				{
+					// if no other form parameter exists with this name it means that the checkbox was left blank and therefore we force the value to the unchecked values for the checkbox (to get around the problem that unchecked checkboxes don't post at all)
+					loc.formParamName = ReplaceNoCase(loc.key, &quot;($checkbox)&quot;, &quot;&quot;);
+					if (!StructKeyExists(arguments.formScope, loc.formParamName))
+						arguments.formScope[loc.formParamName] = arguments.formScope[loc.key];
+					StructDelete(arguments.formScope, loc.key);
+				}
+				else if (REFindNoCase(&quot;.*\((\$year|\$month|\$day|\$hour|\$minute|\$second)\)$&quot;, loc.key))
+				{
+					loc.temp = ListToArray(loc.key, &quot;(&quot;);
+					loc.firstKey = loc.temp[1];
+					loc.secondKey = SpanExcluding(loc.temp[2], &quot;)&quot;);
+					if (!StructKeyExists(loc.dates, loc.firstKey))
+						loc.dates[loc.firstKey] = {};
+					loc.dates[loc.firstKey][ReplaceNoCase(loc.secondKey, &quot;$&quot;, &quot;&quot;)] = arguments.formScope[loc.key];
+				}
+			}
+			for (loc.key in loc.dates)
+			{
+				if (!StructKeyExists(loc.dates[loc.key], &quot;year&quot;))
+					loc.dates[loc.key].year = 1899;
+				if (!StructKeyExists(loc.dates[loc.key], &quot;month&quot;))
+					loc.dates[loc.key].month = 12;
+				if (!StructKeyExists(loc.dates[loc.key], &quot;day&quot;))
+					loc.dates[loc.key].day = 30;
+				if (!StructKeyExists(loc.dates[loc.key], &quot;hour&quot;))
+					loc.dates[loc.key].hour = 0;
+				if (!StructKeyExists(loc.dates[loc.key], &quot;minute&quot;))
+					loc.dates[loc.key].minute = 0;
+				if (!StructKeyExists(loc.dates[loc.key], &quot;second&quot;))
+					loc.dates[loc.key].second = 0;
+				try
+				{
+					arguments.formScope[loc.key] = CreateDateTime(loc.dates[loc.key].year, loc.dates[loc.key].month, loc.dates[loc.key].day, loc.dates[loc.key].hour, loc.dates[loc.key].minute, loc.dates[loc.key].second);
+				}
+				catch(Any e)
+				{
+					arguments.formScope[loc.key] = &quot;&quot;;
+				} 
+				if (StructKeyExists(arguments.formScope, &quot;#loc.key#($year)&quot;))
+					StructDelete(arguments.formScope, &quot;#loc.key#($year)&quot;);
+				if (StructKeyExists(arguments.formScope, &quot;#loc.key#($month)&quot;))
+					StructDelete(arguments.formScope, &quot;#loc.key#($month)&quot;);
+				if (StructKeyExists(arguments.formScope, &quot;#loc.key#($day)&quot;))
+					StructDelete(arguments.formScope, &quot;#loc.key#($day)&quot;);
+				if (StructKeyExists(arguments.formScope, &quot;#loc.key#($hour)&quot;))
+					StructDelete(arguments.formScope, &quot;#loc.key#($hour)&quot;);
+				if (StructKeyExists(arguments.formScope, &quot;#loc.key#($minute)&quot;))
+					StructDelete(arguments.formScope, &quot;#loc.key#($minute)&quot;);
+				if (StructKeyExists(arguments.formScope, &quot;#loc.key#($second)&quot;))
+					StructDelete(arguments.formScope, &quot;#loc.key#($second)&quot;);
+			}
+		
+			// add form variables to the params struct
+			for (loc.key in arguments.formScope)
+			{
+				if (loc.key != &quot;fieldnames&quot;)
+				{
+					if (Find(&quot;[&quot;, loc.key) &amp;&amp; Right(loc.key, 1) == &quot;]&quot;)
+					{
+						// object form field
+						loc.name = SpanExcluding(loc.key, &quot;[&quot;);
+						loc.property = SpanExcluding(Reverse(SpanExcluding(Reverse(loc.key), &quot;[&quot;)), &quot;]&quot;);
+						if (!StructKeyExists(loc.returnValue, loc.name))
+							loc.returnValue[loc.name] = {};
+						if (Find(&quot;][&quot;, loc.key))
+						{
+							// a collection of objects was passed in
+							loc.primaryKeyValue = Replace(SpanExcluding(loc.key, &quot;]&quot;), loc.name &amp; &quot;[&quot;, &quot;&quot;, &quot;one&quot;);
+							if (!StructKeyExists(loc.returnValue[loc.name], loc.primaryKeyValue))
+								loc.returnValue[loc.name][loc.primaryKeyValue] = {};
+							loc.returnValue[loc.name][loc.primaryKeyValue][loc.property] = arguments.formScope[loc.key];
+						}
+						else
+						{
+							// just one object was passed in
+							loc.returnValue[loc.name][loc.property] = arguments.formScope[loc.key];
+						}
+					}
+					else
+					{
+						// normal form field
+						loc.returnValue[loc.key] = arguments.formScope[loc.key];
+					}
+				}
+			}
+		}
+	&lt;/cfscript&gt;
+	&lt;cfreturn loc.returnValue&gt;
+&lt;/cffunction&gt;
+
+&lt;cffunction name=&quot;$findMatchingRoute&quot; returntype=&quot;struct&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
+	&lt;cfargument name=&quot;route&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
+	&lt;cfargument name=&quot;routes&quot; type=&quot;array&quot; required=&quot;false&quot; default=&quot;#application.wheels.routes#&quot;&gt;
+	&lt;cfscript&gt;
+		var loc = {};
+		loc.iEnd = ArrayLen(arguments.routes);
+		for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
+		{
+			loc.currentRoute = arguments.routes[loc.i].pattern;
+			if (arguments.route == &quot;&quot; &amp;&amp; loc.currentRoute == &quot;&quot;)
+			{
+				loc.returnValue = arguments.routes[loc.i];
+				break;
+			}
+			else
+			{
+				if (ListLen(arguments.route, &quot;/&quot;) &gt;= ListLen(loc.currentRoute, &quot;/&quot;) &amp;&amp; loc.currentRoute != &quot;&quot;)
+				{
+					loc.match = true;
+					loc.jEnd = ListLen(loc.currentRoute, &quot;/&quot;);
+					for (loc.j=1; loc.j &lt;= loc.jEnd; loc.j++)
+					{
+						loc.item = ListGetAt(loc.currentRoute, loc.j, &quot;/&quot;);
+						loc.thisRoute = ReplaceList(loc.item, &quot;[,]&quot;, &quot;,&quot;);
+						loc.thisURL = ListGetAt(arguments.route, loc.j, &quot;/&quot;);
+						if (Left(loc.item, 1) != &quot;[&quot; &amp;&amp; loc.thisRoute != loc.thisURL)
+							loc.match = false;
+					}
+					if (loc.match)
+					{
+						loc.returnValue = arguments.routes[loc.i];
+						break;
+					}
+				}
+			}
+		}
+		if (!StructKeyExists(loc, &quot;returnValue&quot;))
+			$throw(type=&quot;Wheels.RouteNotFound&quot;, message=&quot;Wheels couldn't find a route that matched this request.&quot;, extendedInfo=&quot;Make sure there is a route setup in your `config/routes.cfm` file that matches the `#arguments.route#` request.&quot;);
+		&lt;/cfscript&gt;
+		&lt;cfreturn loc.returnValue&gt;
+&lt;/cffunction&gt;
+
+&lt;cffunction name=&quot;$getRouteFromRequest&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
+	&lt;cfargument name=&quot;pathInfo&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#request.cgi.path_info#&quot;&gt;
+	&lt;cfargument name=&quot;scriptName&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#request.cgi.script_name#&quot;&gt;
+	&lt;cfscript&gt;
+		var returnValue = &quot;&quot;;
+		if (arguments.pathInfo == arguments.scriptName || arguments.pathInfo == &quot;/&quot; || arguments.pathInfo == &quot;&quot;)
+			returnValue = &quot;&quot;;
+		else
+			returnValue = Right(arguments.pathInfo, Len(arguments.pathInfo)-1);
+	&lt;/cfscript&gt;
+	&lt;cfreturn returnValue&gt;
+&lt;/cffunction&gt;
+
+&lt;cffunction name=&quot;$request&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
+	&lt;cfscript&gt;
+		var loc = {};
+		if (application.wheels.showDebugInformation)
+			$debugPoint(&quot;setup&quot;);
+		
+		// set route from incoming url, find a matching one and create the params struct
+		loc.route = $getRouteFromRequest();
+		loc.foundRoute = $findMatchingRoute(route=loc.route);
+		loc.params = $createParams(route=loc.route, foundRoute=loc.foundRoute);
+		
+		// set params in the request scope as well so we can display it in the debug info outside of the controller context
+		request.wheels.params = loc.params;
+		
+		// create an empty flash unless it already exists
+		if (!StructKeyExists(session, &quot;flash&quot;))
+			session.flash = {};
+		
+		// create the requested controller
+		loc.controller = $controller(loc.params.controller).$createControllerObject(loc.params);
+		
+		if (application.wheels.showDebugInformation)
+			$debugPoint(&quot;setup,beforeFilters&quot;);
+		
+		// run verifications and before filters if they exist on the controller
+		$runVerifications(controller=loc.controller, actionName=loc.params.action, params=loc.params);
+		$runFilters(controller=loc.controller, type=&quot;before&quot;, actionName=loc.params.action);
+		
+		if (application.wheels.showDebugInformation)
+			$debugPoint(&quot;beforeFilters,action&quot;);
+			
+		// call action on controller if it exists
+		loc.actionIsCachable = false;
+		if (application.wheels.cacheActions &amp;&amp; StructIsEmpty(session.flash) &amp;&amp; StructIsEmpty(form))
+		{
+			loc.cachableActions = loc.controller.$getCachableActions();
+			loc.iEnd = ArrayLen(loc.cachableActions);
+			for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
+			{
+				if (loc.cachableActions[loc.i].action == loc.params.action)
+				{
+					loc.actionIsCachable = true;
+					loc.timeToCache = loc.cachableActions[loc.i].time;
+				}
+			}
+		}
+		if (loc.actionIsCachable)
+		{
+			loc.category = &quot;action&quot;;
+			loc.key = &quot;#request.cgi.script_name##request.cgi.path_info##request.cgi.query_string#&quot;;
+			loc.lockName = loc.category &amp; loc.key;
+			loc.conditionArgs = {};
+			loc.conditionArgs.key = loc.key;
+			loc.conditionArgs.category = loc.category;
+			loc.executeArgs = {};
+			loc.executeArgs.controller = loc.controller;
+			loc.executeArgs.controllerName = loc.params.controller;
+			loc.executeArgs.actionName = loc.params.action;
+			loc.executeArgs.key = loc.key;
+			loc.executeArgs.time = loc.timeToCache;
+			loc.executeArgs.category = loc.category;
+			request.wheels.response = $doubleCheckedLock(name=loc.lockName, condition=&quot;$getFromCache&quot;, execute=&quot;$callActionAndAddToCache&quot;, conditionArgs=loc.conditionArgs, executeArgs=loc.executeArgs);
+		}
+		else
+		{
+			$callAction(controller=loc.controller, controllerName=loc.params.controller, actionName=loc.params.action);
+		}
+		if (application.wheels.showDebugInformation)
+			$debugPoint(&quot;action,afterFilters&quot;);
+		$runFilters(controller=loc.controller, type=&quot;after&quot;, actionName=loc.params.action);
+		if (application.wheels.showDebugInformation)
+			$debugPoint(&quot;afterFilters&quot;);
+		
+		// clear the flash (note that this is not done for redirectTo since the processing does not get here)
+		StructClear(session.flash);
+	&lt;/cfscript&gt;
+	&lt;cfreturn Trim(request.wheels.response)&gt;
+&lt;/cffunction&gt;
+
 &lt;cffunction name=&quot;$returnDispatcher&quot; returntype=&quot;any&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
 	&lt;cfreturn this&gt;
 &lt;/cffunction&gt;
@@ -75,337 +408,4 @@
 			}
 		}
 	&lt;/cfscript&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$getRouteFromRequest&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfargument name=&quot;pathInfo&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#request.cgi.path_info#&quot;&gt;
-	&lt;cfargument name=&quot;scriptName&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#request.cgi.script_name#&quot;&gt;
-	&lt;cfscript&gt;
-		var returnValue = &quot;&quot;;
-		if (arguments.pathInfo == arguments.scriptName || arguments.pathInfo == &quot;/&quot; || arguments.pathInfo == &quot;&quot;)
-			returnValue = &quot;&quot;;
-		else
-			returnValue = Right(arguments.pathInfo, Len(arguments.pathInfo)-1);
-	&lt;/cfscript&gt;
-	&lt;cfreturn returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$findMatchingRoute&quot; returntype=&quot;struct&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfargument name=&quot;route&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;routes&quot; type=&quot;array&quot; required=&quot;false&quot; default=&quot;#application.wheels.routes#&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		loc.iEnd = ArrayLen(arguments.routes);
-		for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
-		{
-			loc.currentRoute = arguments.routes[loc.i].pattern;
-			if (arguments.route == &quot;&quot; &amp;&amp; loc.currentRoute == &quot;&quot;)
-			{
-				loc.returnValue = arguments.routes[loc.i];
-				break;
-			}
-			else
-			{
-				if (ListLen(arguments.route, &quot;/&quot;) &gt;= ListLen(loc.currentRoute, &quot;/&quot;) &amp;&amp; loc.currentRoute != &quot;&quot;)
-				{
-					loc.match = true;
-					loc.jEnd = ListLen(loc.currentRoute, &quot;/&quot;);
-					for (loc.j=1; loc.j &lt;= loc.jEnd; loc.j++)
-					{
-						loc.item = ListGetAt(loc.currentRoute, loc.j, &quot;/&quot;);
-						loc.thisRoute = ReplaceList(loc.item, &quot;[,]&quot;, &quot;,&quot;);
-						loc.thisURL = ListGetAt(arguments.route, loc.j, &quot;/&quot;);
-						if (Left(loc.item, 1) != &quot;[&quot; &amp;&amp; loc.thisRoute != loc.thisURL)
-							loc.match = false;
-					}
-					if (loc.match)
-					{
-						loc.returnValue = arguments.routes[loc.i];
-						break;
-					}
-				}
-			}
-		}
-		if (!StructKeyExists(loc, &quot;returnValue&quot;))
-			$throw(type=&quot;Wheels.RouteNotFound&quot;, message=&quot;Wheels couldn't find a route that matched this request.&quot;, extendedInfo=&quot;Make sure there is a route setup in your `config/routes.cfm` file that matches the `#arguments.route#` request.&quot;);
-		&lt;/cfscript&gt;
-		&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$createParams&quot; returntype=&quot;struct&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfargument name=&quot;route&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;foundRoute&quot; type=&quot;struct&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;formScope&quot; type=&quot;struct&quot; required=&quot;false&quot; default=&quot;#form#&quot;&gt;
-	&lt;cfargument name=&quot;urlScope&quot; type=&quot;struct&quot; required=&quot;false&quot; default=&quot;#url#&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		
-		// add all normal URL variables to struct (i.e. ?x=1&amp;y=2 etc)
-		loc.returnValue = arguments.urlScope; 
-		
-		// go through the matching route pattern and add URL variables from the route to the struct
-		loc.iEnd = ListLen(arguments.foundRoute.pattern, &quot;/&quot;);
-		for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
-		{
-			loc.item = ListGetAt(arguments.foundRoute.pattern, loc.i, &quot;/&quot;);
-			if (Left(loc.item, 1) == &quot;[&quot;)
-				loc.returnValue[ReplaceList(loc.item, &quot;[,]&quot;, &quot;,&quot;)] = ListGetAt(arguments.route, loc.i, &quot;/&quot;);
-		}
-
-		// add controller and action unless they already exist
-		if (!StructKeyExists(loc.returnValue, &quot;controller&quot;))
-			loc.returnValue.controller = arguments.foundRoute.controller;
-		if (!StructKeyExists(loc.returnValue, &quot;action&quot;))
-			loc.returnValue.action = arguments.foundRoute.action;
-		
-		// convert controller to upperCamelCase and action to normal camelCase
-		loc.returnValue.controller = REReplace(loc.returnValue.controller, &quot;-([a-z])&quot;, &quot;\u\1&quot;, &quot;all&quot;);
-		loc.returnValue.action = REReplace(loc.returnValue.action, &quot;-([a-z])&quot;, &quot;\u\1&quot;, &quot;all&quot;);
-	
-		// add name of route to params if a named route is running
-		if (StructKeyExists(arguments.foundRoute, &quot;name&quot;) &amp;&amp; Len(arguments.foundRoute.name) &amp;&amp; !StructKeyExists(loc.returnValue, &quot;route&quot;))
-			loc.returnValue.route = arguments.foundRoute.name;
-	
-		// decrypt all values except controller and action
-		if (application.wheels.obfuscateUrls)
-		{
-			for (loc.key in loc.returnValue)
-			{
-				if (loc.key != &quot;controller&quot; &amp;&amp; loc.key != &quot;action&quot;)
-				{
-					try
-					{
-						loc.returnValue[loc.key] = deobfuscateParam(loc.returnValue[loc.key]);
-					}
-					catch(Any e) {}
-				}
-			}
-		}
-	
-		if (StructCount(arguments.formScope))
-		{
-			// loop through form variables, merge any date variables into one, fix checkbox submissions
-			loc.dates = {};
-			for (loc.key in arguments.formScope)
-			{
-				if (FindNoCase(&quot;($checkbox)&quot;, loc.key))
-				{
-					// if no other form parameter exists with this name it means that the checkbox was left blank and therefore we force the value to the unchecked values for the checkbox (to get around the problem that unchecked checkboxes don't post at all)
-					loc.formParamName = ReplaceNoCase(loc.key, &quot;($checkbox)&quot;, &quot;&quot;);
-					if (!StructKeyExists(arguments.formScope, loc.formParamName))
-						arguments.formScope[loc.formParamName] = arguments.formScope[loc.key];
-					StructDelete(arguments.formScope, loc.key);
-				}
-				else if (REFindNoCase(&quot;.*\((\$year|\$month|\$day|\$hour|\$minute|\$second)\)$&quot;, loc.key))
-				{
-					loc.temp = ListToArray(loc.key, &quot;(&quot;);
-					loc.firstKey = loc.temp[1];
-					loc.secondKey = SpanExcluding(loc.temp[2], &quot;)&quot;);
-					if (!StructKeyExists(loc.dates, loc.firstKey))
-						loc.dates[loc.firstKey] = {};
-					loc.dates[loc.firstKey][ReplaceNoCase(loc.secondKey, &quot;$&quot;, &quot;&quot;)] = arguments.formScope[loc.key];
-				}
-			}
-			for (loc.key in loc.dates)
-			{
-				if (!StructKeyExists(loc.dates[loc.key], &quot;year&quot;))
-					loc.dates[loc.key].year = 1899;
-				if (!StructKeyExists(loc.dates[loc.key], &quot;month&quot;))
-					loc.dates[loc.key].month = 12;
-				if (!StructKeyExists(loc.dates[loc.key], &quot;day&quot;))
-					loc.dates[loc.key].day = 30;
-				if (!StructKeyExists(loc.dates[loc.key], &quot;hour&quot;))
-					loc.dates[loc.key].hour = 0;
-				if (!StructKeyExists(loc.dates[loc.key], &quot;minute&quot;))
-					loc.dates[loc.key].minute = 0;
-				if (!StructKeyExists(loc.dates[loc.key], &quot;second&quot;))
-					loc.dates[loc.key].second = 0;
-				try
-				{
-					arguments.formScope[loc.key] = CreateDateTime(loc.dates[loc.key].year, loc.dates[loc.key].month, loc.dates[loc.key].day, loc.dates[loc.key].hour, loc.dates[loc.key].minute, loc.dates[loc.key].second);
-				}
-				catch(Any e)
-				{
-					arguments.formScope[loc.key] = &quot;&quot;;
-				} 
-				if (StructKeyExists(arguments.formScope, &quot;#loc.key#($year)&quot;))
-					StructDelete(arguments.formScope, &quot;#loc.key#($year)&quot;);
-				if (StructKeyExists(arguments.formScope, &quot;#loc.key#($month)&quot;))
-					StructDelete(arguments.formScope, &quot;#loc.key#($month)&quot;);
-				if (StructKeyExists(arguments.formScope, &quot;#loc.key#($day)&quot;))
-					StructDelete(arguments.formScope, &quot;#loc.key#($day)&quot;);
-				if (StructKeyExists(arguments.formScope, &quot;#loc.key#($hour)&quot;))
-					StructDelete(arguments.formScope, &quot;#loc.key#($hour)&quot;);
-				if (StructKeyExists(arguments.formScope, &quot;#loc.key#($minute)&quot;))
-					StructDelete(arguments.formScope, &quot;#loc.key#($minute)&quot;);
-				if (StructKeyExists(arguments.formScope, &quot;#loc.key#($second)&quot;))
-					StructDelete(arguments.formScope, &quot;#loc.key#($second)&quot;);
-			}
-		
-			// add form variables to the params struct
-			for (loc.key in arguments.formScope)
-			{
-				if (loc.key != &quot;fieldnames&quot;)
-				{
-					if (Find(&quot;[&quot;, loc.key) &amp;&amp; Right(loc.key, 1) == &quot;]&quot;)
-					{
-						// object form field
-						loc.name = SpanExcluding(loc.key, &quot;[&quot;);
-						loc.property = SpanExcluding(Reverse(SpanExcluding(Reverse(loc.key), &quot;[&quot;)), &quot;]&quot;);
-						if (!StructKeyExists(loc.returnValue, loc.name))
-							loc.returnValue[loc.name] = {};
-						if (Find(&quot;][&quot;, loc.key))
-						{
-							// a collection of objects was passed in
-							loc.primaryKeyValue = Replace(SpanExcluding(loc.key, &quot;]&quot;), loc.name &amp; &quot;[&quot;, &quot;&quot;, &quot;one&quot;);
-							if (!StructKeyExists(loc.returnValue[loc.name], loc.primaryKeyValue))
-								loc.returnValue[loc.name][loc.primaryKeyValue] = {};
-							loc.returnValue[loc.name][loc.primaryKeyValue][loc.property] = arguments.formScope[loc.key];
-						}
-						else
-						{
-							// just one object was passed in
-							loc.returnValue[loc.name][loc.property] = arguments.formScope[loc.key];
-						}
-					}
-					else
-					{
-						// normal form field
-						loc.returnValue[loc.key] = arguments.formScope[loc.key];
-					}
-				}
-			}
-		}
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$request&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		if (application.wheels.showDebugInformation)
-			$debugPoint(&quot;setup&quot;);
-		
-		// set route from incoming url, find a matching one and create the params struct
-		loc.route = $getRouteFromRequest();
-		loc.foundRoute = $findMatchingRoute(route=loc.route);
-		loc.params = $createParams(route=loc.route, foundRoute=loc.foundRoute);
-		
-		// set params in the request scope as well so we can display it in the debug info outside of the controller context
-		request.wheels.params = loc.params;
-		
-		// create an empty flash unless it already exists
-		if (!StructKeyExists(session, &quot;flash&quot;))
-			session.flash = {};
-		
-		// create the requested controller
-		loc.controller = $controller(loc.params.controller).$createControllerObject(loc.params);
-		
-		if (application.wheels.showDebugInformation)
-			$debugPoint(&quot;setup,beforeFilters&quot;);
-		
-		// run verifications and before filters if they exist on the controller
-		$runVerifications(controller=loc.controller, actionName=loc.params.action, params=loc.params);
-		$runFilters(controller=loc.controller, type=&quot;before&quot;, actionName=loc.params.action);
-		
-		if (application.wheels.showDebugInformation)
-			$debugPoint(&quot;beforeFilters,action&quot;);
-			
-		// call action on controller if it exists
-		loc.actionIsCachable = false;
-		if (application.wheels.cacheActions &amp;&amp; StructIsEmpty(session.flash) &amp;&amp; StructIsEmpty(form))
-		{
-			loc.cachableActions = loc.controller.$getCachableActions();
-			loc.iEnd = ArrayLen(loc.cachableActions);
-			for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
-			{
-				if (loc.cachableActions[loc.i].action == loc.params.action)
-				{
-					loc.actionIsCachable = true;
-					loc.timeToCache = loc.cachableActions[loc.i].time;
-				}
-			}
-		}
-		if (loc.actionIsCachable)
-		{
-			loc.category = &quot;action&quot;;
-			loc.key = &quot;#request.cgi.script_name##request.cgi.path_info##request.cgi.query_string#&quot;;
-			loc.lockName = loc.category &amp; loc.key;
-			loc.conditionArgs = {};
-			loc.conditionArgs.key = loc.key;
-			loc.conditionArgs.category = loc.category;
-			loc.executeArgs = {};
-			loc.executeArgs.controller = loc.controller;
-			loc.executeArgs.controllerName = loc.params.controller;
-			loc.executeArgs.actionName = loc.params.action;
-			loc.executeArgs.key = loc.key;
-			loc.executeArgs.time = loc.timeToCache;
-			loc.executeArgs.category = loc.category;
-			request.wheels.response = $doubleCheckedLock(name=loc.lockName, condition=&quot;$getFromCache&quot;, execute=&quot;$callActionAndAddToCache&quot;, conditionArgs=loc.conditionArgs, executeArgs=loc.executeArgs);
-		}
-		else
-		{
-			$callAction(controller=loc.controller, controllerName=loc.params.controller, actionName=loc.params.action);
-		}
-		if (application.wheels.showDebugInformation)
-			$debugPoint(&quot;action,afterFilters&quot;);
-		$runFilters(controller=loc.controller, type=&quot;after&quot;, actionName=loc.params.action);
-		if (application.wheels.showDebugInformation)
-			$debugPoint(&quot;afterFilters&quot;);
-		
-		// clear the flash (note that this is not done for redirectTo since the processing does not get here)
-		StructClear(session.flash);
-	&lt;/cfscript&gt;
-	&lt;cfreturn Trim(request.wheels.response)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$callActionAndAddToCache&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfscript&gt;
-		$callAction(controller=arguments.controller, controllerName=arguments.controllerName, actionName=arguments.actionName);
-		$addToCache(key=arguments.key, value=request.wheels.response, time=arguments.time, category=arguments.category);
-	&lt;/cfscript&gt;
-	&lt;cfreturn request.wheels.response&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$callAction&quot; returntype=&quot;void&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfargument name=&quot;controller&quot; type=&quot;any&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;controllerName&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;actionName&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		
-		if (Left(arguments.actionName, 1) == &quot;$&quot; || ListFindNoCase(application.wheels.protectedControllerMethods, arguments.actionName))
-			$throw(type=&quot;Wheels.ActionNotAllowed&quot;, message=&quot;You are not allowed to execute the `#arguments.actionName#` method as an action.&quot;, extendedInfo=&quot;Make sure your action does not have the same name as any of the built-in Wheels functions.&quot;);
-
-		if (StructKeyExists(arguments.controller, arguments.actionName))
-			$invoke(componentReference=arguments.controller, method=arguments.actionName);
-		if (!StructKeyExists(request.wheels, &quot;response&quot;))
-		{
-			// a render function has not been called yet so call it here
-			try
-			{
-				arguments.controller.renderPage();
-			}
-			catch(Any e)
-			{
-				if (FileExists(ExpandPath(&quot;#application.wheels.viewPath#/#LCase(arguments.controllerName)#/#LCase(arguments.actionName)#.cfm&quot;)))
-				{
-					$throw(object=e);
-				}
-				else
-				{
-					if (application.wheels.showErrorInformation)
-					{
-						$throw(type=&quot;Wheels.ViewNotFound&quot;, message=&quot;Could not find the view page for the `#arguments.actionName#` action in the `#arguments.controllerName#` controller.&quot;, extendedInfo=&quot;Create a file named `#LCase(arguments.actionName)#.cfm` in the `views/#LCase(arguments.controllerName)#` directory (create the directory as well if it doesn't already exist).&quot;);
-					}
-					else
-					{
-						$header(statusCode=&quot;404&quot;, statusText=&quot;Not Found&quot;);
-						$includeAndOutput(template=&quot;#application.wheels.eventPath#/onmissingtemplate.cfm&quot;);
-						$abort();
-					}
-				}
-			}
-		}
-	&lt;/cfscript&gt;
 &lt;/cffunction&gt;
\ No newline at end of file</diff>
      <filename>wheels/dispatch/request.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -3,27 +3,27 @@
 &lt;cfset this.mappings[&quot;/wheelsMapping&quot;] = this.rootDir &amp; &quot;wheels&quot;&gt;
 &lt;cfset this.sessionManagement = true&gt;
 &lt;cfif StructKeyExists(server, &quot;railo&quot;)&gt;
-	&lt;cfinclude template=&quot;global/appfunctions.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;controller/appfunctions.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;global/appfunctions.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;events/onapplicationend.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;events/onapplicationstart.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;events/onerror.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;events/onmissingtemplate.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;events/onsessionend.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;events/onsessionstart.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;events/onrequeststart.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;events/onrequest.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;events/onrequestend.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;events/onsessionend.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;events/onapplicationend.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;events/onmissingtemplate.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;events/onerror.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;events/onrequeststart.cfm&quot;&gt;
 &lt;cfelse&gt;
-	&lt;cfinclude template=&quot;wheels/global/appfunctions.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;wheels/controller/appfunctions.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;wheels/global/appfunctions.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;wheels/events/onapplicationend.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;wheels/events/onapplicationstart.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;wheels/events/onerror.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;wheels/events/onmissingtemplate.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;wheels/events/onsessionend.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;wheels/events/onsessionstart.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;wheels/events/onrequeststart.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;wheels/events/onrequest.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;wheels/events/onrequestend.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;wheels/events/onsessionend.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;wheels/events/onapplicationend.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;wheels/events/onmissingtemplate.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;wheels/events/onerror.cfm&quot;&gt;
+	&lt;cfinclude template=&quot;wheels/events/onrequeststart.cfm&quot;&gt;
 &lt;/cfif&gt;
\ No newline at end of file</diff>
      <filename>wheels/functions.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,11 +1,11 @@
 &lt;cfif StructKeyExists(server, &quot;railo&quot;)&gt;
+	&lt;cfinclude template=&quot;cfml.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;internal.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;public.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;cfml.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;../../events/functions.cfm&quot;&gt;
 &lt;cfelse&gt;
+	&lt;cfinclude template=&quot;wheels/global/cfml.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;wheels/global/internal.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;wheels/global/public.cfm&quot;&gt;
-	&lt;cfinclude template=&quot;wheels/global/cfml.cfm&quot;&gt;
 	&lt;cfinclude template=&quot;events/functions.cfm&quot;&gt;
 &lt;/cfif&gt;
\ No newline at end of file</diff>
      <filename>wheels/global/appfunctions.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
+&lt;cfinclude template=&quot;cfml.cfm&quot;&gt;
 &lt;cfinclude template=&quot;internal.cfm&quot;&gt;
 &lt;cfinclude template=&quot;public.cfm&quot;&gt;
-&lt;cfinclude template=&quot;cfml.cfm&quot;&gt;
 &lt;cfinclude template=&quot;../../events/functions.cfm&quot;&gt;
\ No newline at end of file</diff>
      <filename>wheels/global/functions.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,13 +1,50 @@
-&lt;cffunction name=&quot;set&quot; returntype=&quot;void&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Use to configure a global setting.&quot;
+&lt;!--- PUBLIC CONFIGURATION METHODS ---&gt;
+
+&lt;cffunction name=&quot;addRoute&quot; returntype=&quot;void&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Adds a new route to your application.&quot;
 	examples=
 	'
-		&lt;cfset set(URLRewriting=&quot;Partial&quot;)&gt; &lt;!--- can be set to &quot;On&quot;, &quot;Off&quot; or &quot;Partial&quot; ---&gt;
+		&lt;!--- Adds a route which will invoke the `profile` action on the `user` controller with `params.userName` set when the URL matches the `pattern` argument ---&gt;
+		&lt;cfset addRoute(name=&quot;userProfile&quot;, pattern=&quot;user/[username]&quot;, controller=&quot;user&quot;, action=&quot;profile&quot;)&gt;
+	'
+	categories=&quot;configuration&quot; chapters=&quot;using-routes&quot; functions=&quot;&quot;&gt;
+	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Name for the route.&quot;&gt;
+	&lt;cfargument name=&quot;pattern&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The URL pattern for the route.&quot;&gt;
+	&lt;cfargument name=&quot;controller&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Controller to call when route matches (unless the controller name exists in the pattern).&quot;&gt;
+	&lt;cfargument name=&quot;action&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Action to call when route matches (unless the action name exists in the pattern).&quot;&gt;
+	&lt;cfscript&gt;
+		var loc = {};
+
+		// throw errors when controller or action is not passed in as arguments and not included in the pattern
+		if (!Len(arguments.controller) &amp;&amp; arguments.pattern Does Not Contain &quot;[controller]&quot;)
+			$throw(type=&quot;Wheels.IncorrectArguments&quot;, message=&quot;The `controller` argument is not passed in or included in the pattern.&quot;, extendedInfo=&quot;Either pass in the `controller` argument to specifically tell Wheels which controller to call or include it in the pattern to tell Wheels to determine it dynamically on each request based on the incoming URL.&quot;);
+		if (!Len(arguments.action) &amp;&amp; arguments.pattern Does Not Contain &quot;[action]&quot;)
+			$throw(type=&quot;Wheels.IncorrectArguments&quot;, message=&quot;The `action` argument is not passed in or included in the pattern.&quot;, extendedInfo=&quot;Either pass in the `action` argument to specifically tell Wheels which action to call or include it in the pattern to tell Wheels to determine it dynamically on each request based on the incoming URL.&quot;);
+
+		loc.thisRoute = Duplicate(arguments);
+		loc.thisRoute.variables = &quot;&quot;;
+		loc.iEnd = ListLen(arguments.pattern, &quot;/&quot;);
+		for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
+		{
+			loc.item = ListGetAt(arguments.pattern, loc.i, &quot;/&quot;);
+			if (loc.item Contains &quot;[&quot;)
+				loc.thisRoute.variables = ListAppend(loc.thisRoute.variables, ReplaceList(loc.item, &quot;[,]&quot;, &quot;,&quot;));
+		}
+		ArrayAppend(application.wheels.routes, loc.thisRoute);
+	&lt;/cfscript&gt;
+&lt;/cffunction&gt;
+
+&lt;cffunction name=&quot;set&quot; returntype=&quot;void&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Use to configure a global setting or set a default for a function.&quot;
+	examples=
+	'
+		&lt;!--- URL rewriting setting (determined and set automatically by Wheels, override it by setting it to &quot;On&quot;, &quot;Off&quot; or &quot;Partial&quot;) ---&gt;
+		&lt;cfset set(URLRewriting=&quot;Partial&quot;)&gt;
+
+		&lt;!--- Database settings (set automatically by Wheels to the same name as the folder the application resides, override it by setting `dataSourceName`) ---&gt;
 		&lt;cfset set(dataSourceName=&quot;&quot;)&gt;
 		&lt;cfset set(dataSourceUserName=&quot;&quot;)&gt;
 		&lt;cfset set(dataSourcePassword =&quot;&quot;)&gt;
 
-		&lt;!--- environment settings ---&gt;
+		&lt;!--- Caching settings ---&gt;
 		&lt;cfset set(cacheDatabaseSchema = false)&gt;
 		&lt;cfset set(cacheFileChecking = false)&gt;
 		&lt;cfset set(cacheImages = false)&gt;
@@ -18,29 +55,29 @@
 		&lt;cfset set(cachePages = false)&gt;
 		&lt;cfset set(cachePartials = false)&gt;
 		&lt;cfset set(cacheQueries = false)&gt;
+		&lt;cfset set(maximumItemsToCache = 5000)&gt;
+		&lt;cfset set(cacheCullPercentage = 10)&gt;
+		&lt;cfset set(cacheCullInterval = 5)&gt;
+		&lt;cfset set(defaultCacheTime = 60)&gt;
+
+		&lt;!--- Error and debugging settings ---&gt;
 		&lt;cfset set(showDebugInformation = true)&gt;
 		&lt;cfset set(showErrorInformation = true)&gt;
 		&lt;cfset set(sendEmailOnError = false)&gt;
 		&lt;cfset set(errorEmailAddress = &quot;&quot;)&gt;
-		&lt;cfset set(errorEmailServer = &quot;&quot;)&gt; &lt;!--- only required if the mail server hasn''t been set in the ColdFusion Administrator ---&gt;
+		&lt;cfset set(errorEmailServer = &quot;&quot;)&gt;
 
-		&lt;!--- miscellaneous settings ---&gt;
+		&lt;!--- Miscellaneous settings ---&gt;
 		&lt;cfset set(tableNamePrefix = &quot;&quot;)&gt;
 		&lt;cfset set(obfuscateURLs = false)&gt;
 		&lt;cfset set(reloadPassword = &quot;&quot;)&gt;
+		&lt;cfset set(ipExceptions = &quot;&quot;)&gt;
 		&lt;cfset set(softDeleteProperty = &quot;deletedAt&quot;)&gt;
 		&lt;cfset set(timeStampOnCreateProperty = &quot;createdAt&quot;)&gt;
 		&lt;cfset set(timeStampOnUpdateProperty = &quot;updatedAt&quot;)&gt;
-		&lt;cfset set(ipExceptions = &quot;&quot;)&gt;
 		&lt;cfset set(overwritePlugins = true)&gt;
 
-		&lt;!--- caching settings ---&gt;
-		&lt;cfset set(maximumItemsToCache = 5000)&gt;
-		&lt;cfset set(cacheCullPercentage = 10)&gt;
-		&lt;cfset set(cacheCullInterval = 5)&gt;
-		&lt;cfset set(defaultCacheTime = 60)&gt;
-
-		&lt;!--- function settings ---&gt;
+		&lt;!--- Function defaults ---&gt;
 		&lt;cfset set(functionName=&quot;average&quot;, distinct=false)&gt;
 		&lt;cfset set(functionName=&quot;buttonTo&quot;, onlyPath=true, host=&quot;&quot;, protocol=&quot;&quot;, port=0, text=&quot;&quot;, confirm=&quot;&quot;, image=&quot;&quot;, disable=&quot;&quot;)&gt;
 		&lt;cfset set(functionName=&quot;caches&quot;, time=60)&gt;
@@ -110,7 +147,7 @@
 		&lt;cfset set(functionName=&quot;verifies&quot;, handler=false)&gt;
 		&lt;cfset set(functionName=&quot;yearSelectTag&quot;, label=&quot;&quot;, wrapLabel=true, prepend=&quot;&quot;, append=&quot;&quot;, prependToLabel=&quot;&quot;, appendToLabel=&quot;&quot;, includeBlank=false, startYear=Year(Now())-5, endYear=Year(Now())+5)&gt;
 	'
-	categories=&quot;configuration&quot; chapters=&quot;configurationand-defaults&quot; functions=&quot;get&quot;&gt;
+	categories=&quot;configuration&quot; chapters=&quot;configuration-and-defaults&quot; functions=&quot;get&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		if (ArrayLen(arguments) &gt; 1)
@@ -128,18 +165,63 @@
 	&lt;/cfscript&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;get&quot; returntype=&quot;any&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Returns the current setting for the supplied variable name.&quot;
+&lt;!--- PUBLIC GLOBAL METHODS ---&gt;
+
+&lt;!--- miscellaneous ---&gt;
+
+&lt;cffunction name=&quot;deobfuscateParam&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Deobfuscates a value.&quot;
+	examples=
+	'
+		&lt;!--- Get the original value from an obfuscated one ---&gt;
+		&lt;cfset originalValue = deobfuscateParam(&quot;b7ab9a50&quot;)&gt;
+	'
+	categories=&quot;global&quot; chapters=&quot;obfuscating-urls&quot; functions=&quot;obfuscateParam&quot;&gt;
+	&lt;cfargument name=&quot;param&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Value to deobfuscate.&quot;&gt;
+	&lt;cfscript&gt;
+		var loc = {};
+		if (Val(arguments.param) != arguments.param)
+		{
+			try
+			{
+				loc.checksum = Left(arguments.param, 2);
+				loc.returnValue = Right(arguments.param, (Len(arguments.param)-2));
+				loc.z = BitXor(InputBasen(loc.returnValue,16),461);
+				loc.returnValue = &quot;&quot;;
+				loc.iEnd = Len(loc.z)-1;
+				for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
+					loc.returnValue = loc.returnValue &amp; Left(Right(loc.z, loc.i),1);
+				loc.checksumtest = &quot;0&quot;;
+				loc.iEnd = Len(loc.returnValue);
+				for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
+					loc.checksumtest = (loc.checksumtest + Left(Right(loc.returnValue, loc.i),1));
+				if (Left(ToString(FormatBaseN((loc.checksumtest+154),10)),2) != Left(InputBasen(loc.checksum, 16),2))
+					loc.returnValue = arguments.param;
+			}
+			catch(Any e)
+			{
+	    	loc.returnValue = arguments.param;
+			}
+		}
+		else
+		{
+    	loc.returnValue = arguments.param;
+		}
+	&lt;/cfscript&gt;
+	&lt;cfreturn loc.returnValue&gt;
+&lt;/cffunction&gt;
+
+&lt;cffunction name=&quot;get&quot; returntype=&quot;any&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Returns the current setting for the supplied variable name.&quot;
 	examples=
 	'
-		&lt;!--- custom find method ---&gt;
-		&lt;cfquery name=&quot;yourQueryName&quot; datasource=&quot;##get(''dataSourceName'')##&quot;&gt;
-		  &lt;!--- YOUR SQL CODE ---&gt;
-		&lt;/cfquery&gt;
+		&lt;!--- Get the current setting for the `tableNamePrefix` variable ---&gt;
+		&lt;cfset setting = get(&quot;tableNamePrefix&quot;)&gt;
+		
+		&lt;!--- Get the default for the `message` argument on the `validatesConfirmationOf` method  ---&gt;
+		&lt;cfset setting = get(functionName&quot;validatesConfirmationOf&quot;, name=&quot;message&quot;)&gt;
 	'
-	categories=&quot;configuration&quot; chapters=&quot;configurationand-defaults&quot; functions=&quot;set&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Variable name to get setting for&quot;&gt;
-	&lt;cfargument name=&quot;functionName&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Function name to get setting for&quot;&gt;
+	categories=&quot;global&quot; chapters=&quot;configuration-and-defaults&quot; functions=&quot;set&quot;&gt;
+	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Variable name to get setting for.&quot;&gt;
+	&lt;cfargument name=&quot;functionName&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Function name to get setting for.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		if (Len(arguments.functionName))
@@ -150,25 +232,76 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;URLFor&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Creates an internal URL based on supplied arguments.&quot;
+&lt;cffunction name=&quot;model&quot; returntype=&quot;any&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Returns a reference to the requested model so that class level methods can be called on it.&quot;
+	examples=
+	'
+		&lt;!--- The `model(&quot;author&quot;)` part of the code below gets a reference to the class in the application scope and then `findByKey` is called on it ---&gt;
+		&lt;cfset authorObject = model(&quot;author&quot;).findByKey(1)&gt;
+	'
+	categories=&quot;global&quot; chapters=&quot;object-relational-mapping&quot; functions=&quot;&quot;&gt;
+	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Name of the model (class name) to get a reference to.&quot;&gt;
+	&lt;cfreturn $doubleCheckedLock(name=&quot;modelLock&quot;, condition=&quot;$cachedModelClassExists&quot;, execute=&quot;$createModelClass&quot;, conditionArgs=arguments, executeArgs=arguments)&gt;
+&lt;/cffunction&gt;
+
+&lt;cffunction name=&quot;obfuscateParam&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Obfuscates a value, typically used for hiding primary key values when passed along in the URL.&quot;
+	examples=
+	'
+		&lt;!--- Obfuscate the primary key value `99` ---&gt;
+		&lt;cfset newValue = obfuscateParam(99)&gt;
+	'
+	categories=&quot;global&quot; chapters=&quot;obfuscating-urls&quot; functions=&quot;deobfuscateParam&quot;&gt;
+	&lt;cfargument name=&quot;param&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;Value to obfuscate.&quot;&gt;
+	&lt;cfscript&gt;
+		var loc = {};
+		if (IsValid(&quot;integer&quot;, arguments.param) &amp;&amp; IsNumeric(arguments.param) &amp;&amp; arguments.param &gt; 0)
+		{
+			loc.iEnd = Len(arguments.param);
+			loc.a = (10^loc.iEnd) + Reverse(arguments.param);
+			loc.b = &quot;0&quot;;
+			for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
+				loc.b = (loc.b + Left(Right(arguments.param, loc.i), 1));
+			loc.returnValue = FormatBaseN((loc.b+154),16) &amp; FormatBaseN(BitXor(loc.a,461),16);
+		}
+		else
+		{
+			loc.returnValue = arguments.param;
+		}
+	&lt;/cfscript&gt;
+	&lt;cfreturn loc.returnValue&gt;
+&lt;/cffunction&gt;
+
+&lt;cffunction name=&quot;pluginNames&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Returns a list of all installed plugins.&quot;
+	examples=
+	'
+		&lt;!--- Check if the Scaffold plugin is installed ---&gt;
+		&lt;cfif ListFindNoCase(&quot;scaffold&quot;, pluginNames())&gt;
+			&lt;!--- do something cool ---&gt;
+		&lt;/cfif&gt;
+	'
+	categories=&quot;global&quot; chapters=&quot;using-and-creating-plugins&quot; functions=&quot;&quot;&gt;
+	&lt;cfreturn StructKeyList(application.wheels.plugins)&gt;
+&lt;/cffunction&gt;
+
+&lt;cffunction name=&quot;URLFor&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Creates an internal URL based on supplied arguments.&quot;
 	examples=
 	'
+		&lt;!--- Create the URL for the `logOut` action on the `account` controller, typically resulting in `/account/logout` ---&gt;
 		##URLFor(controller=&quot;account&quot;, action=&quot;logOut&quot;)##
 
+		&lt;!--- Create a URL with an anchor set on it ---&gt;
 		##URLFor(action=&quot;comments&quot;, anchor=&quot;comment10&quot;)##
 	'
-	categories=&quot;global-helper&quot; chapters=&quot;request-handling,linking-pages&quot; functions=&quot;redirectTo,linkTo,startFormTag&quot;&gt;
-	&lt;cfargument name=&quot;route&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Name of a route that you have configured in 'config/routes.cfm'&quot;&gt;
-	&lt;cfargument name=&quot;controller&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Name of the controller to include in the URL&quot;&gt;
-	&lt;cfargument name=&quot;action&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Name of the action to include in the URL&quot;&gt;
-	&lt;cfargument name=&quot;key&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Key(s) to include in the URL&quot;&gt;
-	&lt;cfargument name=&quot;params&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Any additional params to be set in the query string&quot;&gt;
-	&lt;cfargument name=&quot;anchor&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Sets an anchor name to be appended to the path&quot;&gt;
-	&lt;cfargument name=&quot;onlyPath&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.URLFor.onlyPath#&quot; hint=&quot;If true, returns only the relative URL (no protocol, host name or port)&quot;&gt;
-	&lt;cfargument name=&quot;host&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.URLFor.host#&quot; hint=&quot;Set this to override the current host&quot;&gt;
-	&lt;cfargument name=&quot;protocol&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.URLFor.protocol#&quot; hint=&quot;Set this to override the current protocol&quot;&gt;
-	&lt;cfargument name=&quot;port&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.URLFor.port#&quot; hint=&quot;Set this to override the current port number&quot;&gt;
+	categories=&quot;global&quot; chapters=&quot;request-handling,linking-pages&quot; functions=&quot;redirectTo,linkTo,startFormTag&quot;&gt;
+	&lt;cfargument name=&quot;route&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Name of a route that you have configured in `config/routes.cfm`.&quot;&gt;
+	&lt;cfargument name=&quot;controller&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Name of the controller to include in the URL.&quot;&gt;
+	&lt;cfargument name=&quot;action&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Name of the action to include in the URL.&quot;&gt;
+	&lt;cfargument name=&quot;key&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Key(s) to include in the URL.&quot;&gt;
+	&lt;cfargument name=&quot;params&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Any additional params to be set in the query string.&quot;&gt;
+	&lt;cfargument name=&quot;anchor&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Sets an anchor name to be appended to the path.&quot;&gt;
+	&lt;cfargument name=&quot;onlyPath&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.URLFor.onlyPath#&quot; hint=&quot;If `true`, returns only the relative URL (no protocol, host name or port).&quot;&gt;
+	&lt;cfargument name=&quot;host&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.URLFor.host#&quot; hint=&quot;Set this to override the current host.&quot;&gt;
+	&lt;cfargument name=&quot;protocol&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.URLFor.protocol#&quot; hint=&quot;Set this to override the current protocol.&quot;&gt;
+	&lt;cfargument name=&quot;port&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.URLFor.port#&quot; hint=&quot;Set this to override the current port number.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		loc.params = {};
@@ -279,155 +412,27 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;obfuscateParam&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Obfuscates a value.&quot;
-	examples=
-	'
-		&lt;cfset obfuscateParam(99)&gt;
-	'
-	categories=&quot;global-helper&quot; chapters=&quot;obfuscating-urls&quot; functions=&quot;deobfuscateParam&quot;&gt;
-	&lt;cfargument name=&quot;param&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;Value to obfuscate&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		if (IsValid(&quot;integer&quot;, arguments.param) &amp;&amp; IsNumeric(arguments.param) &amp;&amp; arguments.param &gt; 0)
-		{
-			loc.iEnd = Len(arguments.param);
-			loc.a = (10^loc.iEnd) + Reverse(arguments.param);
-			loc.b = &quot;0&quot;;
-			for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
-				loc.b = (loc.b + Left(Right(arguments.param, loc.i), 1));
-			loc.returnValue = FormatBaseN((loc.b+154),16) &amp; FormatBaseN(BitXor(loc.a,461),16);
-		}
-		else
-		{
-			loc.returnValue = arguments.param;
-		}
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;deobfuscateParam&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Deobfuscates a value.&quot;
-	examples=
-	'
-		&lt;cfset deobfuscateParam(&quot;b7ab9a50&quot;)&gt;
-	'
-	categories=&quot;global-helper&quot; chapters=&quot;obfuscating-urls&quot; functions=&quot;obfuscateParam&quot;&gt;
-	&lt;cfargument name=&quot;param&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Value to deobfuscate&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		if (Val(arguments.param) != arguments.param)
-		{
-			try
-			{
-				loc.checksum = Left(arguments.param, 2);
-				loc.returnValue = Right(arguments.param, (Len(arguments.param)-2));
-				loc.z = BitXor(InputBasen(loc.returnValue,16),461);
-				loc.returnValue = &quot;&quot;;
-				loc.iEnd = Len(loc.z)-1;
-				for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
-					loc.returnValue = loc.returnValue &amp; Left(Right(loc.z, loc.i),1);
-				loc.checksumtest = &quot;0&quot;;
-				loc.iEnd = Len(loc.returnValue);
-				for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
-					loc.checksumtest = (loc.checksumtest + Left(Right(loc.returnValue, loc.i),1));
-				if (Left(ToString(FormatBaseN((loc.checksumtest+154),10)),2) != Left(InputBasen(loc.checksum, 16),2))
-					loc.returnValue = arguments.param;
-			}
-			catch(Any e)
-			{
-	    	loc.returnValue = arguments.param;
-			}
-		}
-		else
-		{
-    	loc.returnValue = arguments.param;
-		}
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;addRoute&quot; returntype=&quot;void&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Adds a new route to your application.&quot;
-	examples=
-	'
-		&lt;cfset addRoute(name=&quot;userProfile&quot;, pattern=&quot;user/[username]&quot;, controller=&quot;user&quot;, action=&quot;profile&quot;)&gt;
-	'
-	categories=&quot;global-helper&quot; chapters=&quot;using-routes&quot; functions=&quot;&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Name for the route&quot;&gt;
-	&lt;cfargument name=&quot;pattern&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The URL pattern for the route&quot;&gt;
-	&lt;cfargument name=&quot;controller&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Controller to call when route matches (unless the controller name exists in the pattern)&quot;&gt;
-	&lt;cfargument name=&quot;action&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Action to call when route matches (unless the action name exists in the pattern)&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
+&lt;!--- string helpers ---&gt;
 
-		// throw errors when controller or action is not passed in as arguments and not included in the pattern
-		if (!Len(arguments.controller) &amp;&amp; arguments.pattern Does Not Contain &quot;[controller]&quot;)
-			$throw(type=&quot;Wheels.IncorrectArguments&quot;, message=&quot;The `controller` argument is not passed in or included in the pattern.&quot;, extendedInfo=&quot;Either pass in the `controller` argument to specifically tell Wheels which controller to call or include it in the pattern to tell Wheels to determine it dynamically on each request based on the incoming URL.&quot;);
-		if (!Len(arguments.action) &amp;&amp; arguments.pattern Does Not Contain &quot;[action]&quot;)
-			$throw(type=&quot;Wheels.IncorrectArguments&quot;, message=&quot;The `action` argument is not passed in or included in the pattern.&quot;, extendedInfo=&quot;Either pass in the `action` argument to specifically tell Wheels which action to call or include it in the pattern to tell Wheels to determine it dynamically on each request based on the incoming URL.&quot;);
-
-		loc.thisRoute = Duplicate(arguments);
-		loc.thisRoute.variables = &quot;&quot;;
-		loc.iEnd = ListLen(arguments.pattern, &quot;/&quot;);
-		for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
-		{
-			loc.item = ListGetAt(arguments.pattern, loc.i, &quot;/&quot;);
-			if (loc.item Contains &quot;[&quot;)
-				loc.thisRoute.variables = ListAppend(loc.thisRoute.variables, ReplaceList(loc.item, &quot;[,]&quot;, &quot;,&quot;));
-		}
-		ArrayAppend(application.wheels.routes, loc.thisRoute);
-	&lt;/cfscript&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;model&quot; returntype=&quot;any&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Returns a reference to the requested model so that class level methods can be called on it.&quot;
-	examples=
-	'
-		&lt;cfset authorObject = model(&quot;author&quot;).findByKey(1)&gt;
-	'
-	categories=&quot;global-helper&quot; chapters=&quot;object-relational-mapping&quot; functions=&quot;&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Name of the model (class name) to get a reference to&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		loc.returnValue = $doubleCheckedLock(name=&quot;modelLock&quot;, condition=&quot;$cachedModelClassExists&quot;, execute=&quot;$createModelClass&quot;, conditionArgs=arguments, executeArgs=arguments);
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;pluginNames&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Returns a list of all installed plugins.&quot;
-	examples=
-	'
-		&lt;cfif ListFindNoCase(&quot;scaffold&quot;, pluginNames())&gt;
-			&lt;!--- do something cool ---&gt;
-		&lt;/cfif&gt;
-	'
-	categories=&quot;global-helper&quot; chapters=&quot;global-functions&quot; functions=&quot;&quot;&gt;
-	&lt;cfreturn StructKeyList(application.wheels.plugins)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;capitalize&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Returns the text with the first character converted to uppercase.&quot;
+&lt;cffunction name=&quot;capitalize&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Returns the text with the first character converted to uppercase.&quot;
 	examples=
 	'
+		&lt;!--- Capitalize a sentence, will result in &quot;Wheels is a framework&quot; ---&gt;
 		##capitalize(&quot;wheels is a framework&quot;)##
-		-&gt; Wheels is a framework
 	'
-	categories=&quot;global-helper&quot; chapters=&quot;global-functions&quot; functions=&quot;humanize,pluralize,singularize&quot;&gt;
-	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Text to capitalize&quot;&gt;
+	categories=&quot;global&quot; chapters=&quot;miscellaneous-helpers&quot; functions=&quot;humanize,pluralize,singularize&quot;&gt;
+	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Text to capitalize.&quot;&gt;
 	&lt;cfreturn UCase(Left(arguments.text, 1)) &amp; Mid(arguments.text, 2, Len(arguments.text)-1)&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;humanize&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Returns readable text by capitalizing, converting camel casing to multiple words.&quot;
+&lt;cffunction name=&quot;humanize&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Returns readable text by capitalizing, converting camel casing to multiple words.&quot;
 	examples=
 	'
+		&lt;!--- Humanize a string, will result in &quot;Wheels Is A Framework&quot; ---&gt;
 		##humanize(&quot;wheelsIsAFramework&quot;)##
-		-&gt; Wheels Is A Framework
 	'
-	categories=&quot;global-helper&quot; chapters=&quot;global-functions&quot; functions=&quot;capitalize,pluralize,singularize&quot;&gt;
-	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Text to humanize&quot;&gt;
+	categories=&quot;global&quot; chapters=&quot;miscellaneous-helpers&quot; functions=&quot;capitalize,pluralize,singularize&quot;&gt;
+	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Text to humanize.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		loc.returnValue = REReplace(arguments.text, &quot;([[:upper:]])&quot;, &quot; \1&quot;, &quot;all&quot;); // adds a space before every capitalized word
@@ -437,34 +442,35 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;singularize&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Returns the singular form of the passed in word.&quot;
+&lt;cffunction name=&quot;pluralize&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Returns the plural form of the passed in word.&quot;
 	examples=
 	'
-		##singularize(&quot;languages&quot;)##
-		-&gt; language
+		&lt;!--- Pluralize a word, will result in &quot;people&quot; ---&gt;
+		##pluralize(&quot;person&quot;)##
+
+		&lt;!--- Pluralize based on the count passed in ---&gt;
+		Your search returned ##pluralize(word=&quot;person&quot;, count=users.recordCount)##
 	'
-	categories=&quot;global-helper&quot; chapters=&quot;global-functions&quot; functions=&quot;capitalize,humanize,pluralize&quot;&gt;
-	&lt;cfargument name=&quot;word&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;String to singularize&quot;&gt;
-	&lt;cfreturn $singularizeOrPluralize(text=arguments.word, which=&quot;singularize&quot;)&gt;
+	categories=&quot;global&quot; chapters=&quot;miscellaneous-helpers&quot; functions=&quot;capitalize,humanize,singularize&quot;&gt;
+	&lt;cfargument name=&quot;word&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The word to pluralize.&quot;&gt;
+	&lt;cfargument name=&quot;count&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;-1&quot; hint=&quot;Pluralization will occur when this value is not `1`.&quot;&gt;
+	&lt;cfargument name=&quot;returnCount&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;true&quot; hint=&quot;Will return `count` prepended to the pluralization when `true` and `count` is not `-1`.&quot;&gt;
+	&lt;cfreturn $singularizeOrPluralize(text=arguments.word, which=&quot;pluralize&quot;, count=arguments.count, returnCount=arguments.returnCount)&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;pluralize&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Returns the plural form of the passed in word.&quot;
+&lt;cffunction name=&quot;singularize&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Returns the singular form of the passed in word.&quot;
 	examples=
 	'
-		##pluralize(&quot;person&quot;)##
-		-&gt; people
-
-		Your search returned ##pluralize(word=&quot;person&quot;, count=users.recordCount)##.
+		&lt;!--- Singularize a word, will result in &quot;language&quot; ---&gt;
+		##singularize(&quot;languages&quot;)##
 	'
-	categories=&quot;global-helper&quot; chapters=&quot;global-functions&quot; functions=&quot;capitalize,humanize,singularize&quot;&gt;
-	&lt;cfargument name=&quot;word&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The word to pluralize&quot;&gt;
-	&lt;cfargument name=&quot;count&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;-1&quot; hint=&quot;Pluralization will occur when this value is not 1&quot;&gt;
-	&lt;cfargument name=&quot;returnCount&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;true&quot; hint=&quot;Will return the count prepended to the pluralization when true and count is not -1&quot;&gt;
-	&lt;cfreturn $singularizeOrPluralize(text=arguments.word, which=&quot;pluralize&quot;, count=arguments.count, returnCount=arguments.returnCount)&gt;
+	categories=&quot;global&quot; chapters=&quot;miscellaneous-helpers&quot; functions=&quot;capitalize,humanize,pluralize&quot;&gt;
+	&lt;cfargument name=&quot;word&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;String to singularize.&quot;&gt;
+	&lt;cfreturn $singularizeOrPluralize(text=arguments.word, which=&quot;singularize&quot;)&gt;
 &lt;/cffunction&gt;
 
+&lt;!--- PRIVATE GLOBAL METHODS ---&gt;
+
 &lt;cffunction name=&quot;$singularizeOrPluralize&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
 	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
 	&lt;cfargument name=&quot;which&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;</diff>
      <filename>wheels/global/public.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,4 @@
-&lt;cffunction name=&quot;contentForLayout&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Used inside a layout file to output the HTML created in the view.&quot;
+&lt;cffunction name=&quot;contentForLayout&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Used inside a layout file to output the HTML created in the view.&quot;
 	examples=
 	'
 		&lt;!--- views/layout.cfm ---&gt;
@@ -20,8 +19,7 @@
 	&lt;cfreturn request.wheels.contentForLayout&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;includePartial&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Includes a specified file. Similar to using `cfinclude` but with the ability to cache the result and using Wheels specific file look-up. By default, Wheels will look for the file in the current controller's view folder. To include a file relative from the `views` folder, you can start the path supplied to `name` with a forward slash.&quot;
+&lt;cffunction name=&quot;includePartial&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Includes the specified file in the view. Similar to using `cfinclude` but with the ability to cache the result and using Wheels specific file look-up. By default, Wheels will look for the file in the current controller's view folder. To include a file relative from the `views` folder, you can start the path supplied to `name` with a forward slash.&quot;
 	examples=
 	'
 		&lt;cfoutput&gt;##includePartial(&quot;login&quot;)##&lt;/cfoutput&gt;
@@ -34,10 +32,10 @@
 		-&gt; Wheels will include the file &quot;views/shared/_button.cfm&quot;.
 	'
 	categories=&quot;view-helper&quot; chapters=&quot;pages,partials&quot; functions=&quot;renderPartial&quot;&gt;
-	&lt;cfargument name=&quot;partial&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;See documentation for `renderPartial`&quot;&gt;
-	&lt;cfargument name=&quot;group&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;field to group the query by. A new query will be passed into the partial template for you to iterate over&quot;&gt;
-	&lt;cfargument name=&quot;cache&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for `renderPartial`&quot;&gt;
-	&lt;cfargument name=&quot;layout&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.includePartial.layout#&quot; hint=&quot;See documentation for `renderPartial`&quot;&gt;
-	&lt;cfargument name=&quot;spacer&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;HTML or string to place between partials when called using a query&quot;&gt;
+	&lt;cfargument name=&quot;partial&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;See documentation for @renderPartial.&quot;&gt;
+	&lt;cfargument name=&quot;group&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;field to group the query by. A new query will be passed into the partial template for you to iterate over.&quot;&gt;
+	&lt;cfargument name=&quot;cache&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @renderPartial.&quot;&gt;
+	&lt;cfargument name=&quot;layout&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.includePartial.layout#&quot; hint=&quot;See documentation for @renderPartial.&quot;&gt;
+	&lt;cfargument name=&quot;spacer&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;HTML or string to place between partials when called using a query.&quot;&gt;
 	&lt;cfreturn $includeOrRenderPartial(argumentCollection=$dollarify(arguments, &quot;partial,group,cache,layout,spacer&quot;))&gt;
-&lt;/cffunction&gt;
+&lt;/cffunction&gt;
\ No newline at end of file</diff>
      <filename>wheels/view/content.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,14 +1,13 @@
-&lt;cffunction name=&quot;distanceOfTimeInWords&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Pass in two dates to this method, and it will return a string describing the difference between them.&quot;
+&lt;cffunction name=&quot;distanceOfTimeInWords&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Pass in two dates to this method, and it will return a string describing the difference between them.&quot;
 	examples='
 	&lt;cfset aWhileAgo = Now() - 30&gt;
 	&lt;cfset rightNow = Now()&gt;
 	&lt;cfoutput&gt;##distanceOfTimeInWords(aWhileAgo, rightNow)##&lt;/cfoutput&gt;
 	'
-	categories=&quot;view-helper&quot; functions=&quot;timeAgoInWords,timeUntilInWords&quot;&gt;
-	&lt;cfargument name=&quot;fromTime&quot; type=&quot;date&quot; required=&quot;true&quot; hint=&quot;Date to compare from&quot;&gt;
-	&lt;cfargument name=&quot;toTime&quot; type=&quot;date&quot; required=&quot;true&quot; hint=&quot;Date to compare to&quot;&gt;
-	&lt;cfargument name=&quot;includeSeconds&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.distanceOfTimeInWords.includeSeconds#&quot; hint=&quot;Whether or not to include the number of seconds in the returned string&quot;&gt;
+	categories=&quot;view-helper&quot; chapters=&quot;miscellaneous-helpers&quot; functions=&quot;timeAgoInWords,timeUntilInWords&quot;&gt;
+	&lt;cfargument name=&quot;fromTime&quot; type=&quot;date&quot; required=&quot;true&quot; hint=&quot;Date to compare from.&quot;&gt;
+	&lt;cfargument name=&quot;toTime&quot; type=&quot;date&quot; required=&quot;true&quot; hint=&quot;Date to compare to.&quot;&gt;
+	&lt;cfargument name=&quot;includeSeconds&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.distanceOfTimeInWords.includeSeconds#&quot; hint=&quot;Whether or not to include the number of seconds in the returned string.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		loc.minuteDiff = DateDiff(&quot;n&quot;, arguments.fromTime, arguments.toTime);
@@ -81,28 +80,26 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;timeAgoInWords&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Pass in a date to this method, and it will return a string describing the approximate time difference between that date and the current date. &quot;
+&lt;cffunction name=&quot;timeAgoInWords&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Pass in a date to this method, and it will return a string describing the approximate time difference between that date and the current date.&quot;
 	examples='
 		&lt;cfset aWhileAgo = Now() - 30&gt;
 		&lt;cfoutput&gt;##timeAgoInWords(aWhileAgo)##&lt;/cfoutput&gt;
 	'
-	categories=&quot;view-helper&quot; functions=&quot;distanceOfTimeInWords,timeUntilInWords&quot;&gt;
-	&lt;cfargument name=&quot;fromTime&quot; type=&quot;date&quot; required=&quot;true&quot; hint=&quot;See documentation for @distanceOfTimeInWords&quot;&gt;
-	&lt;cfargument name=&quot;includeSeconds&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeAgoInWords.includeSeconds#&quot; hint=&quot;See documentation for @distanceOfTimeInWords&quot;&gt;
-	&lt;cfargument name=&quot;toTime&quot; type=&quot;date&quot; required=&quot;false&quot; default=&quot;#now()#&quot; hint=&quot;See documentation for @distanceOfTimeInWords&quot;&gt;
+	categories=&quot;view-helper&quot; chapters=&quot;miscellaneous-helpers&quot; functions=&quot;distanceOfTimeInWords,timeUntilInWords&quot;&gt;
+	&lt;cfargument name=&quot;fromTime&quot; type=&quot;date&quot; required=&quot;true&quot; hint=&quot;See documentation for @distanceOfTimeInWords.&quot;&gt;
+	&lt;cfargument name=&quot;includeSeconds&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeAgoInWords.includeSeconds#&quot; hint=&quot;See documentation for @distanceOfTimeInWords.&quot;&gt;
+	&lt;cfargument name=&quot;toTime&quot; type=&quot;date&quot; required=&quot;false&quot; default=&quot;#now()#&quot; hint=&quot;See documentation for @distanceOfTimeInWords.&quot;&gt;
 	&lt;cfreturn distanceOfTimeInWords(argumentCollection=arguments)&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;timeUntilInWords&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Pass in a date to this method, and it will return a string describing the approximate time difference between the current date and that date.&quot;
+&lt;cffunction name=&quot;timeUntilInWords&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Pass in a date to this method, and it will return a string describing the approximate time difference between the current date and that date.&quot;
 	examples='
 		&lt;cfset aLittleAhead = Now() + 30&gt;
 		&lt;cfoutput&gt;##timeUntilInWords(aLittleAhead)##&lt;/cfoutput&gt;
 	'
-	categories=&quot;view-helper&quot; functions=&quot;timeAgoInWords,distanceOfTimeInWords&quot;&gt;
-	&lt;cfargument name=&quot;toTime&quot; type=&quot;date&quot; required=&quot;true&quot; hint=&quot;See documentation for @distanceOfTimeInWords&quot;&gt;
-	&lt;cfargument name=&quot;includeSeconds&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeUntilInWords.includeSeconds#&quot; hint=&quot;See documentation for @distanceOfTimeInWords&quot;&gt;
-	&lt;cfargument name=&quot;fromTime&quot; type=&quot;date&quot; required=&quot;false&quot; default=&quot;#now()#&quot; hint=&quot;See documentation for @distanceOfTimeInWords&quot;&gt;
+	categories=&quot;view-helper&quot; chapters=&quot;miscellaneous-helpers&quot; functions=&quot;timeAgoInWords,distanceOfTimeInWords.&quot;&gt;
+	&lt;cfargument name=&quot;toTime&quot; type=&quot;date&quot; required=&quot;true&quot; hint=&quot;See documentation for @distanceOfTimeInWords.&quot;&gt;
+	&lt;cfargument name=&quot;includeSeconds&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeUntilInWords.includeSeconds#&quot; hint=&quot;See documentation for @distanceOfTimeInWords.&quot;&gt;
+	&lt;cfargument name=&quot;fromTime&quot; type=&quot;date&quot; required=&quot;false&quot; default=&quot;#now()#&quot; hint=&quot;See documentation for @distanceOfTimeInWords.&quot;&gt;
 	&lt;cfreturn distanceOfTimeInWords(argumentCollection=arguments)&gt;
 &lt;/cffunction&gt;
\ No newline at end of file</diff>
      <filename>wheels/view/dates.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,4 @@
-&lt;cffunction name=&quot;errorMessagesFor&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a list (`ul` tag with a class of `error-messages`) containing all the error messages for all the properties of the object, if any. Returns an empty string otherwise.&quot;
+&lt;cffunction name=&quot;errorMessagesFor&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Builds and returns a list (`ul` tag with a class of `error-messages`) containing all the error messages for all the properties of the object, if any. Returns an empty string otherwise.&quot;
 	examples=
 	'
 		&lt;!--- view code ---&gt;
@@ -8,9 +7,9 @@
 		&lt;/cfoutput&gt;
 	'
 	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;errorMessagesOn&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The variable name of the object to display error messages for&quot;&gt;
-	&lt;cfargument name=&quot;class&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.errorMessagesFor.class#&quot; hint=&quot;CSS class to set on the `ul` element&quot;&gt;
-	&lt;cfargument name=&quot;showDuplicates&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.errorMessagesFor.showDuplicates#&quot; hint=&quot;Whether to show duplicate error messages&quot;&gt;
+	&lt;cfargument name=&quot;objectName&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The variable name of the object to display error messages for.&quot;&gt;
+	&lt;cfargument name=&quot;class&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.errorMessagesFor.class#&quot; hint=&quot;CSS class to set on the `ul` element.&quot;&gt;
+	&lt;cfargument name=&quot;showDuplicates&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.errorMessagesFor.showDuplicates#&quot; hint=&quot;Whether to show duplicate error messages.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		$insertDefaults(name=&quot;errorMessagesFor&quot;, input=arguments);
@@ -44,8 +43,7 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;errorMessageOn&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Returns the error message, if one exists, on the object's property. If multiple error messages exists, the first one is returned.&quot;
+&lt;cffunction name=&quot;errorMessageOn&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Returns the error message, if one exists, on the object's property. If multiple error messages exists, the first one is returned.&quot;
 	examples=
 	'
 	&lt;!--- view code ---&gt;
@@ -54,12 +52,12 @@
 	&lt;/cfoutput&gt;
 	'
 	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;errorMessagesOn&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The variable name of the object to display the error message for&quot;&gt;
-	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The name of the property (database column) to display the error message for&quot;&gt;
-	&lt;cfargument name=&quot;prependText&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.errorMessageOn.prependText#&quot; hint=&quot;String to prepend to the error message&quot;&gt;
-	&lt;cfargument name=&quot;appendText&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.errorMessageOn.appendText#&quot; hint=&quot;String to append to the error message&quot;&gt;
-	&lt;cfargument name=&quot;wrapperElement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.errorMessageOn.wrapperElement#&quot; hint=&quot;HTML element to wrap the error message in&quot;&gt;
-	&lt;cfargument name=&quot;class&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.errorMessageOn.class#&quot; hint=&quot;CSS class to set on the wrapper element&quot;&gt;
+	&lt;cfargument name=&quot;objectName&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The variable name of the object to display the error message for.&quot;&gt;
+	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The name of the property to display the error message for.&quot;&gt;
+	&lt;cfargument name=&quot;prependText&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.errorMessageOn.prependText#&quot; hint=&quot;String to prepend to the error message.&quot;&gt;
+	&lt;cfargument name=&quot;appendText&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.errorMessageOn.appendText#&quot; hint=&quot;String to append to the error message.&quot;&gt;
+	&lt;cfargument name=&quot;wrapperElement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.errorMessageOn.wrapperElement#&quot; hint=&quot;HTML element to wrap the error message in.&quot;&gt;
+	&lt;cfargument name=&quot;class&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.errorMessageOn.class#&quot; hint=&quot;CSS class to set on the wrapper element.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		$insertDefaults(name=&quot;errorMessageOn&quot;, input=arguments);</diff>
      <filename>wheels/view/errors.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,22 @@
-&lt;cffunction name=&quot;startFormTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing the opening form tag. The form's action will be built according to the same rules as `URLFor`.&quot;
+&lt;cffunction name=&quot;endFormTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Builds and returns a string containing the closing `form` tag.&quot;
+	examples=
+	'
+		&lt;!--- view code ---&gt;
+		&lt;cfoutput&gt;
+		    ##startFormTag(action=&quot;create&quot;)##
+		        &lt;!--- your form controls ---&gt;
+		    ##endFormTag()##
+		&lt;/cfoutput&gt;
+	'
+	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,submitTag,textField,radioButton,checkBox,passwordField,hiddenField,textArea,fileField,select,dateTimeSelect,dateSelect,timeSelect&quot;&gt;
+	&lt;cfscript&gt;
+		if (StructKeyExists(request.wheels, &quot;currentFormMethod&quot;))
+			StructDelete(request.wheels, &quot;currentFormMethod&quot;);
+	&lt;/cfscript&gt;
+	&lt;cfreturn &quot;&lt;/form&gt;&quot;&gt;
+&lt;/cffunction&gt;
+
+&lt;cffunction name=&quot;startFormTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Builds and returns a string containing the opening form tag. The form's action will be built according to the same rules as `URLFor`.&quot;
 	examples=
 	'
 		&lt;!--- view code ---&gt;
@@ -10,19 +27,19 @@
 		&lt;/cfoutput&gt;
 	'
 	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,endFormTag,submitTag,textField,radioButton,checkBox,passwordField,hiddenField,textArea,fileField,select,dateTimeSelect,dateSelect,timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;method&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.method#&quot; hint=&quot;The type of method to use in the form tag, `get` and `post` are the options&quot;&gt;
-	&lt;cfargument name=&quot;multipart&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.multipart#&quot; hint=&quot;Set to `true` if the form should be able to upload files&quot;&gt;
-	&lt;cfargument name=&quot;spamProtection&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.spamProtection#&quot; hint=&quot;Set to `true` to protect the form against spammers (done with JavaScript)&quot;&gt;
-	&lt;cfargument name=&quot;route&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;controller&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;action&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;key&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;params&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;anchor&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;onlyPath&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.onlyPath#&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;host&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.host#&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;protocol&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.protocol#&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;port&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.port#&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
+	&lt;cfargument name=&quot;method&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.method#&quot; hint=&quot;The type of method to use in the form tag, `get` and `post` are the options.&quot;&gt;
+	&lt;cfargument name=&quot;multipart&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.multipart#&quot; hint=&quot;Set to `true` if the form should be able to upload files.&quot;&gt;
+	&lt;cfargument name=&quot;spamProtection&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.spamProtection#&quot; hint=&quot;Set to `true` to protect the form against spammers (done with JavaScript).&quot;&gt;
+	&lt;cfargument name=&quot;route&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;controller&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;action&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;key&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;params&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;anchor&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;onlyPath&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.onlyPath#&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;host&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.host#&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;protocol&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.protocol#&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;port&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.startFormTag.port#&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		$insertDefaults(name=&quot;startFormTag&quot;, input=arguments);
@@ -59,27 +76,7 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;endFormTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing the closing `form` tag.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    ##startFormTag(action=&quot;create&quot;)##
-		        &lt;!--- your form controls ---&gt;
-		    ##endFormTag()##
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,submitTag,textField,radioButton,checkBox,passwordField,hiddenField,textArea,fileField,select,dateTimeSelect,dateSelect,timeSelect&quot;&gt;
-	&lt;cfscript&gt;
-		if (StructKeyExists(request.wheels, &quot;currentFormMethod&quot;))
-			StructDelete(request.wheels, &quot;currentFormMethod&quot;);
-	&lt;/cfscript&gt;
-	&lt;cfreturn &quot;&lt;/form&gt;&quot;&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;submitTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a submit button `form` control.&quot;
+&lt;cffunction name=&quot;submitTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Builds and returns a string containing a submit button `form` control.&quot;
 	examples=
 	'
 		!--- view code ---&gt;
@@ -91,9 +88,9 @@
 		&lt;/cfoutput&gt;
 	'
 	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,textField,radioButton,checkBox,passwordField,hiddenField,textArea,fileField,select,dateTimeSelect,dateSelect,timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;value&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.submitTag.value#&quot; hint=&quot;Message to display in the button form control&quot;&gt;
-	&lt;cfargument name=&quot;image&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.submitTag.image#&quot; hint=&quot;File name of the image file to use in the button form control&quot;&gt;
-	&lt;cfargument name=&quot;disable&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.submitTag.disable#&quot; hint=&quot;Whether to disable the button upon clicking (prevents double-clicking)&quot;&gt;
+	&lt;cfargument name=&quot;value&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.submitTag.value#&quot; hint=&quot;Message to display in the button form control.&quot;&gt;
+	&lt;cfargument name=&quot;image&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.submitTag.image#&quot; hint=&quot;File name of the image file to use in the button form control.&quot;&gt;
+	&lt;cfargument name=&quot;disable&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.submitTag.disable#&quot; hint=&quot;Whether to disable the button upon clicking (prevents double-clicking).&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		$insertDefaults(name=&quot;submitTag&quot;, reserved=&quot;type,src&quot;, input=arguments);
@@ -125,1220 +122,6 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;textField&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a text field form control based on the supplied `objectName` and `property`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##textField(label=&quot;First Name&quot;, objectName=&quot;user&quot;, property=&quot;firstName&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,radioButton,checkBox,passwordField,hiddenField,textArea,fileField,select,dateTimeSelect,dateSelect,timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;The variable name of the object to build the form control for&quot;&gt;
-	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The name of the property (database column) to use in the form control&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textField.label#&quot; hint=&quot;The label text to use in the form control&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textField.labelPlacement#&quot; hint=&quot;Whether to place the label before, after, or wrapped around the form control&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textField.prepend#&quot; hint=&quot;String to prepend to the form control. Useful to wrap the form control around HTML tags&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textField.append#&quot; hint=&quot;String to append to the form control. Useful to wrap the form control around HTML tags&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textField.prependToLabel#&quot; hint=&quot;String to prepend to the form control's label. Useful to wrap the form control around HTML tags&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textField.appendToLabel#&quot; hint=&quot;String to append to the form control's label. Useful to wrap the form control around HTML tags&quot;&gt;
-	&lt;cfargument name=&quot;errorElement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textField.errorElement#&quot; hint=&quot;HTML tag to wrap the form control with when the object contains errors&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		$insertDefaults(name=&quot;textField&quot;, reserved=&quot;type,name,value&quot;, input=arguments);
-		loc.before = $formBeforeElement(argumentCollection=arguments);
-		loc.after = $formAfterElement(argumentCollection=arguments);
-		arguments.type = &quot;text&quot;;
-		arguments.name = $tagName(arguments.objectName, arguments.property);
-		if (!StructKeyExists(arguments, &quot;id&quot;))
-			arguments.id = $tagId(arguments.objectName, arguments.property);
-		arguments.value = $formValue(argumentCollection=arguments);
-		loc.returnValue = loc.before &amp; $tag(name=&quot;input&quot;, close=true, skip=&quot;objectName,property,label,labelPlacement,prepend,append,prependToLabel,appendToLabel,errorElement&quot;, skipStartingWith=&quot;label&quot;, attributes=arguments) &amp; loc.after;
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;textFieldTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a text field form control based on the supplied `name`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##textFieldTag(name=&quot;someName&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,radioButtonTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,textAreaTag,fileFieldTag,selectTag,dateTimeSelectTags,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Name to populate in tag's `name` attribute&quot;&gt;
-	&lt;cfargument name=&quot;value&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Value to populate in tag's `value` attribute&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textFieldTag.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textFieldTag.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textFieldTag.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textFieldTag.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textFieldTag.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textFieldTag.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		arguments.property = arguments.name;
-		arguments.objectName = {};
-		arguments.objectName[arguments.name] = arguments.value;
-		StructDelete(arguments, &quot;name&quot;);
-		StructDelete(arguments, &quot;value&quot;);
-		loc.returnValue = textField(argumentCollection=arguments);
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;passwordField&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a password field form control based on the supplied `objectName` and `property`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##passwordField(objectName=&quot;user&quot;, property=&quot;pass&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapter=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textField,radioButton,checkBox,hiddenField,textArea,fileField,select,dateTimeSelect,dateSelect,timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.passwordField.label#&quot; hint=&quot;See documentation for textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.passwordField.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.passwordField.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.passwordField.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.passwordField.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.passwordField.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;errorElement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.passwordField.errorElement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		$insertDefaults(name=&quot;passwordField&quot;, reserved=&quot;type,name,value&quot;, input=arguments);
-		loc.before = $formBeforeElement(argumentCollection=arguments);
-		loc.after = $formAfterElement(argumentCollection=arguments);
-		arguments.type = &quot;password&quot;;
-		arguments.name = $tagName(arguments.objectName, arguments.property);
-		if (!StructKeyExists(arguments, &quot;id&quot;))
-			arguments.id = $tagId(arguments.objectName, arguments.property);
-		arguments.value = $formValue(argumentCollection=arguments);
-		loc.returnValue = loc.before &amp; $tag(name=&quot;input&quot;, close=true, skip=&quot;objectName,property,label,labelPlacement,prepend,append,prependToLabel,appendToLabel,errorElement&quot;, skipStartingWith=&quot;label&quot;, attributes=arguments) &amp; loc.after;
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;passwordFieldTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a password field form control based on the supplied `name`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##passwordFieldTag(name=&quot;password&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,checkBoxTag,hiddenFieldTag,textAreaTag,fileFieldTag,selectTag,dateTimeSelectTags,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;value&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.passwordFieldTag.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.passwordFieldTag.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.passwordFieldTag.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.passwordFieldTag.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.passwordFieldTag.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.passwordFieldTag.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		arguments.property = arguments.name;
-		arguments.objectName = {};
-		arguments.objectName[arguments.name] = arguments.value;
-		StructDelete(arguments, &quot;name&quot;);
-		StructDelete(arguments, &quot;value&quot;);
-		loc.returnValue = passwordField(argumentCollection=arguments);
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;hiddenField&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a hidden field form control based on the supplied `objectName` and `property`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##hiddenField(objectName=&quot;user&quot;, property=&quot;id&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textField,radioButton,checkBox,passwordField,textArea,fileField,select,dateTimeSelect,dateSelect,timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		$insertDefaults(name=&quot;hiddenField&quot;, reserved=&quot;type,name,value&quot;, input=arguments);
-		arguments.type = &quot;hidden&quot;;
-		arguments.name = $tagName(arguments.objectName, arguments.property);
-		if (!StructKeyExists(arguments, &quot;id&quot;))
-			arguments.id = $tagId(arguments.objectName, arguments.property);
-		arguments.value = $formValue(argumentCollection=arguments);
-		if (application.wheels.obfuscateUrls &amp;&amp; StructKeyExists(request.wheels, &quot;currentFormMethod&quot;) &amp;&amp; request.wheels.currentFormMethod == &quot;get&quot;)
-			arguments.value = obfuscateParam(arguments.value);
-		loc.returnValue = $tag(name=&quot;input&quot;, close=true, skip=&quot;objectName,property&quot;, attributes=arguments);
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;hiddenFieldTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a hidden field form control based on the supplied `name`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##hiddenFieldTag(name=&quot;userId&quot;, value=user.id)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,checkBoxTag,passwordFieldTag,textAreaTag,fileFieldTag,selectTag,dateTimeSelectTags,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;value&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		arguments.property = arguments.name;
-		arguments.objectName = {};
-		arguments.objectName[arguments.name] = arguments.value;
-		StructDelete(arguments, &quot;name&quot;);
-		StructDelete(arguments, &quot;value&quot;);
-		loc.returnValue = hiddenField(argumentCollection=arguments);
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;fileField&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a file field form control based on the supplied `objectName` and `property`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##fileField(objectName=&quot;photo&quot;, property=&quot;imageFile&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textField,radioButton,checkBox,passwordField,hiddenField,textArea,select,dateTimeSelect,dateSelect,timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.fileField.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.fileField.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.fileField.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.fileField.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.fileField.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.fileField.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;errorElement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.fileField.errorElement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		$insertDefaults(name=&quot;fileField&quot;, reserved=&quot;type,name&quot;, input=arguments);
-		loc.before = $formBeforeElement(argumentCollection=arguments);
-		loc.after = $formAfterElement(argumentCollection=arguments);
-		arguments.type = &quot;file&quot;;
-		arguments.name = $tagName(arguments.objectName, arguments.property);
-		if (!StructKeyExists(arguments, &quot;id&quot;))
-			arguments.id = $tagId(arguments.objectName, arguments.property);
-		loc.returnValue = loc.before &amp; $tag(name=&quot;input&quot;, close=true, skip=&quot;objectName,property,label,labelPlacement,prepend,append,prependToLabel,appendToLabel,errorElement&quot;, skipStartingWith=&quot;label&quot;, attributes=arguments) &amp; loc.after;
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;fileFieldTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a file form control based on the supplied `name`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##fileFieldTag(name=&quot;photo&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,textAreaTag,selectTag,dateTimeSelectTags,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.fileFieldTag.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.fileFieldTag.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.fileFieldTag.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.fileFieldTag.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.fileFieldTag.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.fileFieldTag.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		arguments.property = arguments.name;
-		arguments.objectName = {};
-		arguments.objectName[arguments.name] = &quot;&quot;;
-		StructDelete(arguments, &quot;name&quot;);
-		loc.returnValue = fileField(argumentCollection=arguments);
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;textArea&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a password field form control based on the supplied `objectName` and `property`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		  &lt;p&gt;##textArea(objectName=&quot;article&quot;, property=&quot;overview&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textField,radioButton,checkBox,passwordField,hiddenField,fileField,select,dateTimeSelect,dateSelect,timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textArea.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textArea.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textArea.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textArea.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textArea.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textArea.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;errorElement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textArea.errorElement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		$insertDefaults(name=&quot;textArea&quot;, reserved=&quot;name&quot;, input=arguments);
-		loc.before = $formBeforeElement(argumentCollection=arguments);
-		loc.after = $formAfterElement(argumentCollection=arguments);
-		arguments.name = $tagName(arguments.objectName, arguments.property);
-		if (!StructKeyExists(arguments, &quot;id&quot;))
-			arguments.id = $tagId(arguments.objectName, arguments.property);
-		loc.content = $formValue(argumentCollection=arguments);
-		loc.returnValue = loc.before &amp; $element(name=&quot;textarea&quot;, skip=&quot;objectName,property,label,labelPlacement,prepend,append,prependToLabel,appendToLabel,errorElement&quot;, skipStartingWith=&quot;label&quot;, content=loc.content, attributes=arguments) &amp; loc.after;
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;textAreaTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a text area form control based on the supplied `name`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		  &lt;p&gt;##textAreaTag(name=&quot;description&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,fileFieldTag,selectTag,dateTimeSelectTags,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;content&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Content to display in `textarea` by default&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textAreaTag.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textAreaTag.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textAreaTag.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textAreaTag.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textAreaTag.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.textAreaTag.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		arguments.property = arguments.name;
-		arguments.objectName = {};
-		arguments.objectName[arguments.name] = arguments.content;
-		StructDelete(arguments, &quot;name&quot;);
-		StructDelete(arguments, &quot;content&quot;);
-		loc.returnValue = textArea(argumentCollection=arguments);
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;radioButton&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a radio button form control based on the supplied `objectName` and `property`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;
-			    ##radioButton(objectName=&quot;user&quot;, property=&quot;gender&quot;, tagValue=&quot;m&quot;, label=&quot;Male&quot;)##&lt;br /&gt;
-		        ##radioButton(objectName=&quot;user&quot;, property=&quot;gender&quot;, tagValue=&quot;f&quot;, label=&quot;Female&quot;)##
-			&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,textField,submitTag,checkBox,passwordField,hiddenField,textArea,fileField,select,dateTimeSelect,dateSelect,timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;tagValue&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The value of the radio button when `selected`&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.radioButton.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.radioButton.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.radioButton.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.radioButton.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.radioButton.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.radioButton.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;errorElement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.radioButton.errorElement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		$insertDefaults(name=&quot;radioButton&quot;, reserved=&quot;type,name,value,checked&quot;, input=arguments);
-		loc.valueToAppend = LCase(Replace(ReReplaceNoCase(arguments.tagValue, &quot;[^a-z0-9- ]&quot;, &quot;&quot;, &quot;all&quot;), &quot; &quot;, &quot;-&quot;, &quot;all&quot;));
-		arguments.$appendToFor = loc.valueToAppend;
-		loc.before = $formBeforeElement(argumentCollection=arguments);
-		loc.after = $formAfterElement(argumentCollection=arguments);
-		arguments.type = &quot;radio&quot;;
-		arguments.name = $tagName(arguments.objectName, arguments.property);
-		if (!StructKeyExists(arguments, &quot;id&quot;))
-			arguments.id = $tagId(arguments.objectName, arguments.property) &amp; &quot;-&quot; &amp; loc.valueToAppend;
-		arguments.value = arguments.tagValue;
-		if (arguments.tagValue == $formValue(argumentCollection=arguments))
-			arguments.checked = &quot;checked&quot;;
-		loc.returnValue = loc.before &amp; $tag(name=&quot;input&quot;, close=true, skip=&quot;objectName,property,tagValue,label,labelPlacement,prepend,append,prependToLabel,appendToLabel,errorElement&quot;, skipStartingWith=&quot;label&quot;, attributes=arguments) &amp; loc.after;
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;radioButtonTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a radio button form control based on the supplied `name`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;
-			    ##radioButtonTag(name=&quot;gender&quot;, value=&quot;m&quot;, label=&quot;Male&quot;, checked=true)##&lt;br /&gt;
-		        ##radioButtonTag(name=&quot;gender&quot;, value=&quot;f&quot;, label=&quot;Female&quot;)##
-			&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,textAreaTag,fileFieldTag,selectTag,dateTimeSelectTags,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;value&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;checked&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;false&quot; hint=&quot;Whether or not to check the radio button by default&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.radioButtonTag.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.radioButtonTag.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.radioButtonTag.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.radioButtonTag.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.radioButtonTag.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.radioButtonTag.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		arguments.property = arguments.name;
-		arguments.objectName = {};
-		if (arguments.checked)
-		{
-			arguments.objectName[arguments.name] = arguments.value;
-			arguments.tagValue = arguments.value;
-		}
-		else
-		{
-			arguments.objectName[arguments.name] = &quot;&quot;;
-			arguments.tagValue = arguments.value;
-		}
-		StructDelete(arguments, &quot;name&quot;);
-		StructDelete(arguments, &quot;value&quot;);
-		StructDelete(arguments, &quot;checked&quot;);
-		loc.returnValue = radioButton(argumentCollection=arguments);
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;checkBox&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a check box form control based on the supplied `objectName` and `property`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##checkBox(objectName=&quot;photo&quot;, property=&quot;isPublic&quot;, label=&quot;Display this photo publicly.&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textField,radioButton,passwordField,hiddenField,textArea,fileField,select,dateTimeSelect,dateSelect,timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;checkedValue&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBox.checkedValue#&quot; hint=&quot;The value of the check box when it's on the `checked` state&quot;&gt;
-	&lt;cfargument name=&quot;uncheckedValue&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBox.uncheckedValue#&quot; hint=&quot;The value of the check box when it's on the `unchecked` state&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBox.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBox.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBox.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBox.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBox.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBox.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;errorElement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBox.errorElement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		$insertDefaults(name=&quot;checkBox&quot;, reserved=&quot;type,name,value,checked&quot;, input=arguments);
-		loc.before = $formBeforeElement(argumentCollection=arguments);
-		loc.after = $formAfterElement(argumentCollection=arguments);
-		arguments.type = &quot;checkbox&quot;;
-		arguments.name = $tagName(arguments.objectName, arguments.property);
-		if (!StructKeyExists(arguments, &quot;id&quot;))
-			arguments.id = $tagId(arguments.objectName, arguments.property);
-		arguments.value = arguments.checkedValue;
-		loc.value = $formValue(argumentCollection=arguments);
-		if (loc.value == arguments.value || IsNumeric(loc.value) &amp;&amp; loc.value == 1 || !IsNumeric(loc.value) &amp;&amp; IsBoolean(loc.value) &amp;&amp; loc.value)
-			arguments.checked = &quot;checked&quot;;
-		loc.returnValue = loc.before &amp; $tag(name=&quot;input&quot;, close=true, skip=&quot;objectName,property,checkedValue,uncheckedValue,label,labelPlacement,prepend,append,prependToLabel,appendToLabel,errorElement&quot;, skipStartingWith=&quot;label&quot;, attributes=arguments);
-		if (!IsStruct(arguments.objectName))
-		{
-			loc.hiddenAttributes = {};
-			loc.hiddenAttributes.type = &quot;hidden&quot;;
-			loc.hiddenAttributes.name = arguments.name &amp; &quot;($checkbox)&quot;;
-			loc.hiddenAttributes.value = arguments.uncheckedValue;
-			loc.returnValue = loc.returnValue &amp; $tag(name=&quot;input&quot;, close=true, attributes=loc.hiddenAttributes);
-		}
-		loc.returnValue = loc.returnValue &amp; loc.after;
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;checkBoxTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a check box form control based on the supplied `name`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##checkBoxTag(name=&quot;suscribe&quot;, value=&quot;true&quot;, label=&quot;Suscribe to our newsletter&quot;, checked=false)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,passwordFieldTag,hiddenFieldTag,textAreaTag,fileFieldTag,selectTag,dateTimeSelectTag,dateSelectTag,timeSelectTag&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;checked&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;false&quot; hint=&quot;Whether or not the check box should be checked by default&quot;&gt;
-	&lt;cfargument name=&quot;value&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBoxTag.value#&quot; hint=&quot;Value of check box in its `checked` state&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBoxTag.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBoxTag.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBoxTag.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBoxTag.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBoxTag.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.checkBoxTag.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		arguments.checkedValue = arguments.value;
-		arguments.property = arguments.name;
-		arguments.objectName = {};
-		if (arguments.checked)
-			arguments.objectName[arguments.name] = arguments.value;
-		else
-			arguments.objectName[arguments.name] = &quot;&quot;;
-		StructDelete(arguments, &quot;name&quot;);
-		StructDelete(arguments, &quot;value&quot;);
-		StructDelete(arguments, &quot;checked&quot;);
-		loc.returnValue = checkBox(argumentCollection=arguments);
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;select&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a select form control based on the supplied `objectName` and `property`.&quot;
-	examples=
-	'
-		&lt;!--- controller code ---&gt;
-		&lt;cfset authors = model(&quot;author&quot;).findAll()&gt;
-
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##select(objectName=&quot;book&quot;, property=&quot;authorId&quot;, options=authors)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textField,radioButton,checkBox,passwordField,hiddenField,textArea,fileField,dateTimeSelect,dateSelect,timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;options&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;A collection to populate the select form control with. Can be a query recordset or an array of objects&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.select.includeBlank#&quot; hint=&quot;Whether to include a blank option in the select form control. Pass `true` to include a blank line or a string that should represent what display text should appear for the empty value (for example, '- Select One -')&quot;&gt;
-	&lt;cfargument name=&quot;valueField&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.select.valueField#&quot; hint=&quot;The column or property to use for the value of each list element. Used only when a query or array of objects has been supplied in the `options` argument&quot;&gt;
-	&lt;cfargument name=&quot;textField&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.select.textField#&quot; hint=&quot;The column or property to use for the value of each list element that the end user will see. Used only when a query or array of objects has been supplied in the `options` argument&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.select.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.select.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.select.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.select.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.select.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.select.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;errorElement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.select.errorElement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		$insertDefaults(name=&quot;select&quot;, reserved=&quot;name&quot;, input=arguments);
-		loc.before = $formBeforeElement(argumentCollection=arguments);
-		loc.after = $formAfterElement(argumentCollection=arguments);
-		arguments.name = $tagName(arguments.objectName, arguments.property);
-		if (!StructKeyExists(arguments, &quot;id&quot;))
-			arguments.id = $tagId(arguments.objectName, arguments.property);
-		if (StructKeyExists(arguments, &quot;multiple&quot;))
-		{
-			if (arguments.multiple)
-				arguments.multiple = &quot;multiple&quot;;
-			else
-				StructDelete(arguments, &quot;multiple&quot;);
-		}
-		loc.content = $optionsForSelect(argumentCollection=arguments);
-		if (!IsBoolean(arguments.includeBlank) || arguments.includeBlank)
-		{
-			if (!IsBoolean(arguments.includeBlank))
-				loc.blankOptionText = arguments.includeBlank;
-			else
-				loc.blankOptionText = &quot;&quot;;
-			loc.blankOptionAttributes = {value=&quot;&quot;};
-			loc.content = $element(name=&quot;option&quot;, content=loc.blankOptionText, attributes=loc.blankOptionAttributes) &amp; loc.content;
-		}
-		loc.returnValue = loc.before &amp; $element(name=&quot;select&quot;, skip=&quot;objectName,property,options,includeBlank,valueField,textField,label,labelPlacement,prepend,append,prependToLabel,appendToLabel,errorElement&quot;, skipStartingWith=&quot;label&quot;, content=loc.content, attributes=arguments) &amp; loc.after;
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;selectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a select form control based on the supplied `name` and `options`.&quot;
-	examples=
-	'
-		&lt;!--- controller code ---&gt;
-		&lt;cfset cities = model(&quot;city&quot;).findAll()&gt;
-
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##selectTag(name=&quot;cityId&quot;, options=cities)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,textAreaTag,fileFieldTag,dateTimeSelectTags,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;options&quot; type=&quot;any&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;selected&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Value of option that should be selected by default&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.selectTag.includeBlank#&quot; hint=&quot;See documentation for @select&quot;&gt;
-	&lt;cfargument name=&quot;multiple&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.selectTag.multiple#&quot; hint=&quot;Whether to allow multiple selection of options in the select form control&quot;&gt;
-	&lt;cfargument name=&quot;valueField&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.selectTag.valueField#&quot; hint=&quot;See documentation for @select&quot;&gt;
-	&lt;cfargument name=&quot;textField&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.selectTag.textField#&quot; hint=&quot;See documentation for @select&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.selectTag.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.selectTag.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.selectTag.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.selectTag.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.selectTag.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.selectTag.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		arguments.property = arguments.name;
-		arguments.objectName = {};
-		arguments.objectName[arguments.name] = arguments.selected;
-		StructDelete(arguments, &quot;name&quot;);
-		StructDelete(arguments, &quot;selected&quot;);
-		loc.returnValue = select(argumentCollection=arguments);
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;dateSelect&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing three select form controls for a date based on the supplied `objectName` and `property`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		  &lt;p&gt;##dateSelect(objectName=&quot;user&quot;, property=&quot;dateOfBirth&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,textField,submitTag,radioButton,checkBox,passwordField,hiddenField,textArea,fileField,select,dateTimeSelect,timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;order&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelect.order#&quot; hint=&quot;Use to change the order of or exclude date select tags&quot;&gt;
-	&lt;cfargument name=&quot;separator&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelect.separator#&quot; hint=&quot;Use to change the character that is displayed between the date select tags&quot;&gt;
-	&lt;cfargument name=&quot;startYear&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelect.startYear#&quot; hint=&quot;First year in select list&quot;&gt;
-	&lt;cfargument name=&quot;endYear&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelect.endYear#&quot; hint=&quot;Last year in select list&quot;&gt;
-	&lt;cfargument name=&quot;monthDisplay&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelect.monthDisplay#&quot; hint=&quot;Pass in `names`, `numbers` or `abbreviations` to control display&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelect.includeBlank#&quot; hint=&quot;See documentation for @select&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelect.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelect.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelect.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelect.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelect.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelect.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;errorElement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelect.errorElement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		$insertDefaults(name=&quot;dateSelect&quot;, input=arguments);
-		arguments.$functionName = &quot;dateSelect&quot;;
-	&lt;/cfscript&gt;
-	&lt;cfreturn $dateOrTimeSelect(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;dateSelectTags&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing three select form controls (month, day and year).&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##dateSelectTags()##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,textFieldTag,submitTag,radioButtonTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,textAreaTag,fileFieldTag,selectTag,dateTimeSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;selected&quot; type=&quot;date&quot; required=&quot;false&quot; default=&quot;#Now()#&quot; hint=&quot;See documentation for @selectTag&quot;&gt;
-	&lt;cfargument name=&quot;order&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelectTags.order#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;separator&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelectTags.separator#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;startYear&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelectTags.startYear#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;endYear&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelectTags.endYear#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;monthDisplay&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelectTags.monthDisplay#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelectTags.includeBlank#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelectTags.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelectTags.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelectTags.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelectTags.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelectTags.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateSelectTags.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		arguments.property = arguments.name;
-		arguments.objectName = {};
-		arguments.objectName[arguments.name] = arguments.selected;
-		StructDelete(arguments, &quot;name&quot;);
-		StructDelete(arguments, &quot;selected&quot;);
-		arguments.$functionName = &quot;dateSelectTag&quot;;
-	&lt;/cfscript&gt;
-	&lt;cfreturn $dateOrTimeSelect(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;timeSelect&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing three select form controls for a time based on the supplied `objectName` and `property`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##timeSelect(objectName=&quot;business&quot;, property=&quot;openUntil&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textField,radioButton,checkBox,passwordField,hiddenField,textArea,fileField,select,dateTimeSelect,dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;order&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelect.order#&quot; hint=&quot;Use to change the order of or exclude time select tags&quot;&gt;
-	&lt;cfargument name=&quot;separator&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelect.separator#&quot; hint=&quot;Use to change the character that is displayed between the time select tags&quot;&gt;
-	&lt;cfargument name=&quot;minuteStep&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelect.minuteStep#&quot; hint=&quot;Pass in `10` to only show minute 10, 20,30 etc&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelect.includeBlank#&quot; hint=&quot;See documentation for @select&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelect.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelect.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelect.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelect.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelect.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelect.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;errorElement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelect.errorElement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		$insertDefaults(name=&quot;timeSelect&quot;, input=arguments);
-		arguments.$functionName = &quot;timeSelect&quot;;
-	&lt;/cfscript&gt;
-	&lt;cfreturn $dateOrTimeSelect(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;timeSelectTags&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing three select form controls for a time based on the supplied `objectName` and `property`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##timeSelectTags(name=&quot;timeOfMeeting&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,textAreaTag,fileFieldTag,selectTag,dateTimeSelectTags,dateSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;selected&quot; type=&quot;date&quot; required=&quot;false&quot; default=&quot;#Now()#&quot; hint=&quot;See documentation for @selectTag&quot;&gt;
-	&lt;cfargument name=&quot;order&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelectTags.order#&quot; hint=&quot;See documentation for @timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;separator&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelectTags.separator#&quot; hint=&quot;See documentation for @timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;minuteStep&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelectTags.minuteStep#&quot; hint=&quot;See documentation for @timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelectTags.includeBlank#&quot; hint=&quot;See documentation for @timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelectTags.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelectTags.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelectTags.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelectTags.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelectTags.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.timeSelectTags.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		arguments.property = arguments.name;
-		arguments.objectName = {};
-		arguments.objectName[arguments.name] = arguments.selected;
-		StructDelete(arguments, &quot;name&quot;);
-		StructDelete(arguments, &quot;selected&quot;);
-		arguments.$functionName = &quot;timeSelectTag&quot;;
-	&lt;/cfscript&gt;
-	&lt;cfreturn $dateOrTimeSelect(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;dateTimeSelect&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing six select form controls (three for date selection and the remaining three for time selection) based on the supplied `objectName` and `property`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##dateTimeSelect(objectName=&quot;article&quot;, property=&quot;publishedAt&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textField,radioButton,checkBox,passwordField,hiddenField,textArea,fileField,select,dateSelect,timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;dateOrder&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.dateOrder#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;dateSeparator&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.dateSeparator#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;startYear&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.startYear#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;endYear&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.endYear#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;monthDisplay&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.monthDisplay#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;timeOrder&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.timeOrder#&quot; hint=&quot;See documentation for @timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;timeSeparator&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.timeSeparator#&quot; hint=&quot;See documentation for @timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;minuteStep&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.minuteStep#&quot; hint=&quot;See documentation for @timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;separator&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.separator#&quot; hint=&quot;Use to change the character that is displayed between the first and second set of select tags&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.includeBlank#&quot; hint=&quot;See documentation for @select&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;errorElement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelect.errorElement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		$insertDefaults(name=&quot;dateTimeSelect&quot;, reserved=&quot;name&quot;, input=arguments);
-		arguments.$functionName = &quot;dateTimeSelect&quot;;
-	&lt;/cfscript&gt;
-	&lt;cfreturn dateTimeSelectTags(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;dateTimeSelectTags&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing six select form controls (three for date selection and the remaining three for time selection).&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##dateTimeSelectTags()##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,textAreaTag,fileFieldTag,selectTag,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;dateOrder&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.dateOrder#&quot; hint=&quot;See documentation for @dateTimeSelect&quot;&gt;
-	&lt;cfargument name=&quot;dateSeparator&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.dateSeparator#&quot; hint=&quot;See documentation for @dateTimeSelect&quot;&gt;
-	&lt;cfargument name=&quot;startYear&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.startYear#&quot; hint=&quot;See documentation for @dateTimeSelect&quot;&gt;
-	&lt;cfargument name=&quot;endYear&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.endYear#&quot; hint=&quot;See documentation for @dateTimeSelect&quot;&gt;
-	&lt;cfargument name=&quot;monthDisplay&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.monthDisplay#&quot; hint=&quot;See documentation for @dateTimeSelect&quot;&gt;
-	&lt;cfargument name=&quot;timeOrder&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.timeOrder#&quot; hint=&quot;See documentation for @dateTimeSelect&quot;&gt;
-	&lt;cfargument name=&quot;timeSeparator&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.timeSeparator#&quot; hint=&quot;See documentation for @dateTimeSelect&quot;&gt;
-	&lt;cfargument name=&quot;minuteStep&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.minuteStep#&quot; hint=&quot;See documentation for @dateTimeSelect&quot;&gt;
-	&lt;cfargument name=&quot;separator&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.separator#&quot; hint=&quot;See documentation for @dateTimeSelect&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.includeBlank#&quot; hint=&quot;See documentation for @select&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.label#&quot; hint=&quot;See documentation for @textField@&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.dateTimeSelectTags.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		loc.returnValue = &quot;&quot;;
-		loc.separator = arguments.separator;
-		arguments.order = arguments.dateOrder;
-		arguments.separator = arguments.dateSeparator;
-		if (StructKeyExists(arguments, &quot;$functionName&quot;) &amp;&amp; arguments.$functionName == &quot;dateTimeSelect&quot;)
-			loc.returnValue = loc.returnValue &amp; dateSelect(argumentCollection=arguments);
-		else
-			loc.returnValue = loc.returnValue &amp; dateSelectTags(argumentCollection=arguments);
-		loc.returnValue = loc.returnValue &amp; loc.separator;
-		arguments.order = arguments.timeOrder;
-		arguments.separator = arguments.timeSeparator;
-		if (StructKeyExists(arguments, &quot;$functionName&quot;) &amp;&amp; arguments.$functionName == &quot;dateTimeSelect&quot;)
-			loc.returnValue = loc.returnValue &amp; timeSelect(argumentCollection=arguments);
-		else
-			loc.returnValue = loc.returnValue &amp; timeSelectTags(argumentCollection=arguments);
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;yearSelectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a select form control for a range of years based on the supplied `name`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##yearSelectTag(name=&quot;yearOfBirthday&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,textAreaTag,fileFieldTag,selectTag,dateTimeSelectTags,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;selected&quot; type=&quot;date&quot; required=&quot;false&quot; default=&quot;#Year(Now())#&quot; hint=&quot;The year that should be selected initially&quot;&gt;
-	&lt;cfargument name=&quot;startYear&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.yearSelectTag.startYear#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;endYear&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.yearSelectTag.endYear#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.yearSelectTag.includeBlank#&quot; hint=&quot;See documentation for @select&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.yearSelectTag.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.yearSelectTag.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.yearSelectTag.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.yearSelectTag.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.yearSelectTag.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.yearSelectTag.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		arguments.selected = createDate(arguments.selected, Month(Now()), Day(Now()));
-		arguments.order = &quot;year&quot;;
-	&lt;/cfscript&gt;
-	&lt;cfreturn dateSelectTags(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;monthSelectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a select form control for the months of the year based on the supplied `name`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##monthSelectTag(name=&quot;monthOfBirthday&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,textAreaTag,fileFieldTag,selectTag,dateTimeSelectTags,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;selected&quot; type=&quot;date&quot; required=&quot;false&quot; default=&quot;#Month(Now())#&quot; hint=&quot;The month that should be selected initially&quot;&gt;
-	&lt;cfargument name=&quot;monthDisplay&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.monthSelectTag.monthDisplay#&quot; hint=&quot;See documentation for @dateSelect&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.monthSelectTag.includeBlank#&quot; hint=&quot;See documentation for @select&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.monthSelectTag.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.monthSelectTag.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.monthSelectTag.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.monthSelectTag.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.monthSelectTag.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.monthSelectTag.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		arguments.selected = createDate(Year(Now()), arguments.selected, Day(Now()));
-		arguments.order = &quot;month&quot;;
-	&lt;/cfscript&gt;
-	&lt;cfreturn dateSelectTags(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;daySelectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing a select form control for the days of the week based on the supplied `name`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##daySelectTag(name=&quot;dayOfWeek&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,textAreaTag,fileFieldTag,selectTag,dateTimeSelectTags,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;selected&quot; type=&quot;date&quot; required=&quot;false&quot; default=&quot;#Day(Now())#&quot; hint=&quot;The day that should be selected initially&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.daySelectTag.includeBlank#&quot; hint=&quot;See documentation for @select&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.daySelectTag.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.daySelectTag.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.daySelectTag.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.daySelectTag.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.daySelectTag.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.daySelectTag.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		arguments.selected = createDate(Year(Now()), Month(Now()), arguments.selected);
-		arguments.order = &quot;day&quot;;
-	&lt;/cfscript&gt;
-	&lt;cfreturn dateSelectTags(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;hourSelectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing one select form control for the hours of the day based on the supplied `name`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##hourSelectTag(name=&quot;hourOfMeeting&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,textAreaTag,fileFieldTag,selectTag,dateTimeSelectTags,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;selected&quot; type=&quot;date&quot; required=&quot;false&quot; default=&quot;#Hour(Now())#&quot; hint=&quot;The hour that should be selected initially&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.hourSelectTag.includeBlank#&quot; hint=&quot;See documentation for @select&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.hourSelectTag.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.hourSelectTag.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.hourSelectTag.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.hourSelectTag.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.hourSelectTag.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.hourSelectTag.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		arguments.selected = createTime(arguments.selected, Minute(Now()), Second(Now()));
-		arguments.order = &quot;hour&quot;;
-	&lt;/cfscript&gt;
-	&lt;cfreturn timeSelectTags(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;minuteSelectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing one select form control for the minutes of an hour based on the supplied `name`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##minuteSelectTag(name=&quot;minuteOfMeeting&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,textAreaTag,fileFieldTag,selectTag,dateTimeSelectTags,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;selected&quot; type=&quot;date&quot; required=&quot;false&quot; default=&quot;#Minute(Now())#&quot; hint=&quot;The minute that should be selected initially&quot;&gt;
-	&lt;cfargument name=&quot;minuteStep&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.minuteSelectTag.minuteStep#&quot; hint=&quot;See documentation for @timeSelect&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.minuteSelectTag.includeBlank#&quot; hint=&quot;See documentation for @select&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.minuteSelectTag.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.minuteSelectTag.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.minuteSelectTag.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.minuteSelectTag.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.minuteSelectTag.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.minuteSelectTag.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		arguments.selected = createTime(Hour(Now()), arguments.selected, Second(Now()));
-		arguments.order = &quot;minute&quot;;
-	&lt;/cfscript&gt;
-	&lt;cfreturn timeSelectTags(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;secondSelectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing one select form control for the seconds of a minute based on the supplied `name`.&quot;
-	examples=
-	'
-		&lt;!--- view code ---&gt;
-		&lt;cfoutput&gt;
-		    &lt;p&gt;##secondSelectTag(name=&quot;secondsToLaunch&quot;)##&lt;/p&gt;
-		&lt;/cfoutput&gt;
-	'
-	categories=&quot;view-helper&quot; chapters=&quot;form-helpers-and-showing-errors&quot; functions=&quot;URLFor,startFormTag,endFormTag,submitTag,textFieldTag,radioButtonTag,checkBoxTag,passwordFieldTag,hiddenFieldTag,textAreaTag,fileFieldTag,selectTag,dateTimeSelectTags,dateSelectTags,timeSelectTags&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;See documentation for @textFieldTag&quot;&gt;
-	&lt;cfargument name=&quot;selected&quot; type=&quot;date&quot; required=&quot;false&quot; default=&quot;#Second(Now())#&quot; hint=&quot;The second that should be selected initially&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.secondSelectTag.includeBlank#&quot; hint=&quot;See documentation for @select&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.secondSelectTag.label#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.secondSelectTag.labelPlacement#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.secondSelectTag.prepend#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.secondSelectTag.append#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.secondSelectTag.prependToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.secondSelectTag.appendToLabel#&quot; hint=&quot;See documentation for @textField&quot;&gt;
-	&lt;cfscript&gt;
-		arguments.selected = createTime(Hour(Now()), Minute(Now()), arguments.selected);
-		arguments.order = &quot;second&quot;;
-	&lt;/cfscript&gt;
-	&lt;cfreturn timeSelectTags(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$yearSelectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfargument name=&quot;startYear&quot; type=&quot;numeric&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;endYear&quot; type=&quot;numeric&quot; required=&quot;true&quot;&gt;
-	&lt;cfscript&gt;
-		if (structkeyexists(arguments, &quot;value&quot;) &amp;&amp; val(arguments.value) gt 0 &amp;&amp; arguments.value lt arguments.startYear)
-		{
-			arguments.startYear = arguments.value;
-		}
-		arguments.$loopFrom = arguments.startYear;
-		arguments.$loopTo = arguments.endYear;
-		arguments.$type = &quot;year&quot;;
-		arguments.$step = 1;
-		StructDelete(arguments, &quot;startYear&quot;);
-		StructDelete(arguments, &quot;endYear&quot;);
-	&lt;/cfscript&gt;
-	&lt;cfreturn $yearMonthHourMinuteSecondSelectTag(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$monthSelectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfargument name=&quot;monthDisplay&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfscript&gt;
-		arguments.$loopFrom = 1;
-		arguments.$loopTo = 12;
-		arguments.$type = &quot;month&quot;;
-		arguments.$step = 1;
-		if (arguments.monthDisplay == &quot;abbreviations&quot;)
-			arguments.$optionNames = &quot;Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec&quot;;
-		else if (arguments.monthDisplay == &quot;names&quot;)
-			arguments.$optionNames = &quot;January,February,March,April,May,June,July,August,September,October,November,December&quot;;
-		StructDelete(arguments, &quot;monthDisplay&quot;);
-	&lt;/cfscript&gt;
-	&lt;cfreturn $yearMonthHourMinuteSecondSelectTag(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$daySelectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfscript&gt;
-		arguments.$loopFrom = 1;
-		arguments.$loopTo = 31;
-		arguments.$type = &quot;day&quot;;
-		arguments.$step = 1;
-	&lt;/cfscript&gt;
-	&lt;cfreturn $yearMonthHourMinuteSecondSelectTag(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$hourSelectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfscript&gt;
-		arguments.$loopFrom = 0;
-		arguments.$loopTo = 23;
-		arguments.$type = &quot;hour&quot;;
-		arguments.$step = 1;
-	&lt;/cfscript&gt;
-	&lt;cfreturn $yearMonthHourMinuteSecondSelectTag(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$minuteSelectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfargument name=&quot;minuteStep&quot; type=&quot;numeric&quot; required=&quot;true&quot;&gt;
-	&lt;cfscript&gt;
-		arguments.$loopFrom = 0;
-		arguments.$loopTo = 59;
-		arguments.$type = &quot;minute&quot;;
-		arguments.$step = arguments.minuteStep;
-		StructDelete(arguments, &quot;minuteStep&quot;);
-	&lt;/cfscript&gt;
-	&lt;cfreturn $yearMonthHourMinuteSecondSelectTag(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$secondSelectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfscript&gt;
-		arguments.$loopFrom = 0;
-		arguments.$loopTo = 59;
-		arguments.$type = &quot;second&quot;;
-		arguments.$step = 1;
-	&lt;/cfscript&gt;
-	&lt;cfreturn $yearMonthHourMinuteSecondSelectTag(argumentCollection=arguments)&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$dateOrTimeSelect&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfargument name=&quot;objectName&quot; type=&quot;any&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;$functionName&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		loc.name = $tagName(arguments.objectName, arguments.property);
-		arguments.$id = $tagId(arguments.objectName, arguments.property);
-		loc.value = $formValue(argumentCollection=arguments);
-		loc.returnValue = &quot;&quot;;
-		loc.firstDone = false;
-		loc.iEnd = ListLen(arguments.order);
-		for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
-		{
-			loc.item = ListGetAt(arguments.order, loc.i);
-			arguments.name = loc.name &amp; &quot;($&quot; &amp; loc.item &amp; &quot;)&quot;;
-			if (Len(loc.value))
-				if (Isdate(loc.value))
-					arguments.value = Evaluate(&quot;#loc.item#(loc.value)&quot;);
-				else
-					arguments.value = loc.value;
-			else
-				arguments.value = &quot;&quot;;
-			if (loc.firstDone)
-				loc.returnValue = loc.returnValue &amp; arguments.separator;
-			loc.returnValue = loc.returnValue &amp; Evaluate(&quot;$#loc.item#SelectTag(argumentCollection=arguments)&quot;);
-			loc.firstDone = true;
-		}
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$yearMonthHourMinuteSecondSelectTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;value&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;includeBlank&quot; type=&quot;any&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;label&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;labelPlacement&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;prependToLabel&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;appendToLabel&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;errorElement&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot;&gt;
-	&lt;cfargument name=&quot;$type&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;$loopFrom&quot; type=&quot;numeric&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;$loopTo&quot; type=&quot;numeric&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;$id&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;$step&quot; type=&quot;numeric&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;$optionNames&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		if (!Len(arguments.value) &amp;&amp; (!IsBoolean(arguments.includeBlank) || !arguments.includeBlank))
-			arguments.value = Evaluate(&quot;#arguments.$type#(Now())&quot;);
-		arguments.$appendToFor = arguments.$type;
-		if (StructKeyExists(arguments, &quot;order&quot;) &amp;&amp; ListLen(arguments.order) &gt; 1 &amp;&amp; ListLen(arguments.label) &gt; 1)
-			arguments.label = ListGetAt(arguments.label, ListFindNoCase(arguments.order, arguments.$type));
-		loc.before = $formBeforeElement(argumentCollection=arguments);
-		loc.after = $formAfterElement(argumentCollection=arguments);
-		loc.content = &quot;&quot;;
-		if (!IsBoolean(arguments.includeBlank) || arguments.includeBlank)
-		{
-			loc.args = {};
-			loc.args.value = &quot;&quot;;
-			if (!IsBoolean(arguments.includeBlank))
-				loc.optionContent = arguments.includeBlank;
-			else
-				loc.optionContent = &quot;&quot;;
-			loc.content = loc.content &amp; $element(name=&quot;option&quot;, content=loc.optionContent, attributes=loc.args);
-		}
-		for (loc.i=arguments.$loopFrom; loc.i &lt;= arguments.$loopTo; loc.i=loc.i+arguments.$step)
-		{
-			loc.args = {};
-			loc.args.value = loc.i;
-			if (arguments.value == loc.i)
-				loc.args.selected = &quot;selected&quot;;
-			if (Len(arguments.$optionNames))
-				loc.optionContent = ListGetAt(arguments.$optionNames, loc.i);
-			else
-				loc.optionContent = loc.i;
-			if (arguments.$type == &quot;minute&quot; || arguments.$type == &quot;second&quot;)
-				loc.optionContent = NumberFormat(loc.optionContent, &quot;09&quot;);
-			loc.content = loc.content &amp; $element(name=&quot;option&quot;, content=loc.optionContent, attributes=loc.args);
-		}
-		if (!StructKeyExists(arguments, &quot;id&quot;))
-			arguments.id = arguments.$id &amp; &quot;-&quot; &amp; arguments.$type;
-		loc.returnValue = loc.before &amp; $element(name=&quot;select&quot;, skip=&quot;objectName,property,label,labelPlacement,prepend,append,prependToLabel,appendToLabel,errorElement,value,includeBlank,order,separator,startYear,endYear,monthDisplay,dateSeparator,dateOrder,timeSeparator,timeOrder,minuteStep&quot;, skipStartingWith=&quot;label&quot;, content=loc.content, attributes=arguments) &amp; loc.after;
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$optionsForSelect&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfargument name=&quot;options&quot; type=&quot;any&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;valueField&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;textField&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		loc.value = $formValue(argumentCollection=arguments);
-		loc.returnValue = &quot;&quot;;
-		if (IsQuery(arguments.options))
-		{
-			if (!Len(arguments.valueField) || !Len(arguments.textField))
-			{
-				// order the columns according to their ordinal position in the database table
-				loc.info = GetMetaData(arguments.options);
-				loc.iEnd = ArrayLen(loc.info);
-				loc.columns = &quot;&quot;;
-				for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
-					loc.columns = ListAppend(loc.columns, loc.info[loc.i].name);
-				if (ListLen(loc.columns) == 1)
-				{
-					arguments.valueField = ListGetAt(loc.columns, 1);
-					arguments.textField = ListGetAt(loc.columns, 1);
-				}
-				else
-				{
-					// take the first numeric field in the query as the value field and the first non numeric as the text field
-					loc.iEnd = arguments.options.RecordCount;
-					for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
-					{
-						loc.jEnd = ListLen(loc.columns);
-						for (loc.j=1; loc.j &lt;= loc.jEnd; loc.j++)
-						{
-							if (!Len(arguments.valueField) &amp;&amp; IsNumeric(arguments.options[ListGetAt(loc.columns, loc.j)][loc.i]))
-								arguments.valueField = ListGetAt(loc.columns, loc.j);
-							if (!Len(arguments.textField) &amp;&amp; !IsNumeric(arguments.options[ListGetAt(loc.columns, loc.j)][loc.i]))
-								arguments.textField = ListGetAt(loc.columns, loc.j);
-						}
-					}
-					if (!Len(arguments.valueField) || !Len(arguments.textField))
-					{
-						// the query does not contain both a numeric and a text column so we'll just use the first and second column instead
-						arguments.valueField = ListGetAt(loc.columns, 1);
-						arguments.textField = ListGetAt(loc.columns, 2);
-					}
-				}
-			}
-			loc.iEnd = arguments.options.RecordCount;
-			for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
-			{
-				loc.returnValue = loc.returnValue &amp; $option(objectValue=loc.value, optionValue=arguments.options[arguments.valueField][loc.i], optionText=arguments.options[arguments.textField][loc.i]);
-			}
-		}
-		else if (IsStruct(arguments.options))
-		{
-			loc.sortedKeys = ListSort(StructKeyList(arguments.options), &quot;textnocase&quot;); // sort struct keys alphabetically
-			loc.iEnd = ListLen(loc.sortedKeys);
-			for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
-			{
-				loc.key = ListGetAt(loc.sortedKeys, loc.i);
-				loc.returnValue = loc.returnValue &amp; $option(objectValue=loc.value, optionValue=LCase(loc.key), optionText=arguments.options[loc.key]);
-			}
-		}
-		else
-		{
-			// convert the options to an array so we don't duplicate logic
-			if (IsSimpleValue(arguments.options))
-				arguments.options = ListToArray(arguments.options);
-
-			// loop through the array
-			loc.iEnd = ArrayLen(arguments.options);
-			for (loc.i=1; loc.i &lt;= loc.iEnd; loc.i++)
-			{
-				loc.optionValue = &quot;&quot;;
-				loc.optionText = &quot;&quot;;
-				// see if the value in the array cell is an array, which means the programmer is using multidimensional arrays. if it is, use the first dimension for the key and the second for the value if it exists.
-				if (IsSimpleValue(arguments.options[loc.i]))
-				{
-					loc.optionValue = arguments.options[loc.i];
-					loc.optionText = humanize(arguments.options[loc.i]);
-				}
-				else if (IsArray(arguments.options[loc.i]) &amp;&amp; ArrayLen(arguments.options[loc.i]) &gt;= 2)
-				{
-					loc.optionValue = arguments.options[loc.i][1];
-					loc.optionText = arguments.options[loc.i][2];
-				}
-				loc.returnValue = loc.returnValue &amp; $option(objectValue=loc.value, optionValue=loc.optionValue, optionText=loc.optionText);
-			}
-		}
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
-&lt;cffunction name=&quot;$option&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
-	&lt;cfargument name=&quot;objectValue&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;optionValue&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfargument name=&quot;optionText&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;
-	&lt;cfscript&gt;
-		var loc = {};
-		loc.optionAttributes = {value=arguments.optionValue};
-		if (arguments.optionValue == arguments.objectValue || ListFindNoCase(arguments.objectValue, arguments.optionValue))
-			loc.optionAttributes.selected = &quot;selected&quot;;
-		if (application.wheels.obfuscateUrls &amp;&amp; StructKeyExists(request.wheels, &quot;currentFormMethod&quot;) &amp;&amp; request.wheels.currentFormMethod == &quot;get&quot;)
-			loc.optionAttributes.value = obfuscateParam(loc.optionAttributes.value);
-		loc.returnValue = $element(name=&quot;option&quot;, content=arguments.optionText, attributes=loc.optionAttributes);
-	&lt;/cfscript&gt;
-	&lt;cfreturn loc.returnValue&gt;
-&lt;/cffunction&gt;
-
 &lt;cffunction name=&quot;$formValue&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;&gt;
 	&lt;cfargument name=&quot;objectName&quot; type=&quot;any&quot; required=&quot;true&quot;&gt;
 	&lt;cfargument name=&quot;property&quot; type=&quot;string&quot; required=&quot;true&quot;&gt;</diff>
      <filename>wheels/view/forms.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -2,6 +2,11 @@
 &lt;cfinclude template=&quot;dates.cfm&quot;&gt;
 &lt;cfinclude template=&quot;errors.cfm&quot;&gt;
 &lt;cfinclude template=&quot;forms.cfm&quot;&gt;
+&lt;cfinclude template=&quot;formsdate.cfm&quot;&gt;
+&lt;cfinclude template=&quot;formsdateobject.cfm&quot;&gt;
+&lt;cfinclude template=&quot;formsdateplain.cfm&quot;&gt;
+&lt;cfinclude template=&quot;formsobject.cfm&quot;&gt;
+&lt;cfinclude template=&quot;formsplain.cfm&quot;&gt;
 &lt;cfinclude template=&quot;media.cfm&quot;&gt;
 &lt;cfinclude template=&quot;miscellaneous.cfm&quot;&gt;
 &lt;cfinclude template=&quot;text.cfm&quot;&gt;</diff>
      <filename>wheels/view/functions.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,4 @@
-&lt;cffunction name=&quot;styleSheetLinkTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Returns a `link` tag based on the supplied arguments.&quot;
+&lt;cffunction name=&quot;styleSheetLinkTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Returns a `link` tag for a stylesheet (or several) based on the supplied arguments.&quot;
 	examples=
 	'
 		&lt;!--- view code ---&gt;
@@ -8,9 +7,9 @@
 		&lt;/head&gt;
 	'
 	categories=&quot;view-helper&quot; chapters=&quot;miscellaneous-helpers&quot; functions=&quot;javaScriptIncludeTag,imageTag&quot;&gt;
-	&lt;cfargument name=&quot;sources&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;The name of one or many CSS files in the `stylesheets` folder, minus the `.css` extension. (Can also be called with the `source` argument)&quot;&gt;
-	&lt;cfargument name=&quot;type&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.styleSheetLinkTag.type#&quot; hint=&quot;The `type` attribute for the `link` tag&quot;&gt;
-	&lt;cfargument name=&quot;media&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.styleSheetLinkTag.media#&quot; hint=&quot;The `media` attribute for the `link` tag&quot;&gt;
+	&lt;cfargument name=&quot;sources&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;The name of one or many CSS files in the `stylesheets` folder, minus the `.css` extension. (Can also be called with the `source` argument).&quot;&gt;
+	&lt;cfargument name=&quot;type&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.styleSheetLinkTag.type#&quot; hint=&quot;The `type` attribute for the `link` tag.&quot;&gt;
+	&lt;cfargument name=&quot;media&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.styleSheetLinkTag.media#&quot; hint=&quot;The `media` attribute for the `link` tag.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		if (StructKeyExists(arguments, &quot;source&quot;))
@@ -31,8 +30,7 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;javaScriptIncludeTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Returns a `script` tag based on the supplied arguments.&quot;
+&lt;cffunction name=&quot;javaScriptIncludeTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Returns a `script` tag for a Javascript file (or several) tag based on the supplied arguments.&quot;
 	examples=
 	'
 		&lt;!--- view code ---&gt;
@@ -41,8 +39,8 @@
 		&lt;/head&gt;
 	'
 	categories=&quot;view-helper&quot; chapters=&quot;miscellaneous-helpers&quot; functions=&quot;styleSheetLinkTag,imageTag&quot;&gt;
-	&lt;cfargument name=&quot;sources&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;The name of one or many JavaScript files in the `javascripts` folder, minus the `.js` extension. (Can also be called with the `source` argument)&quot;&gt;
-	&lt;cfargument name=&quot;type&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.javaScriptIncludeTag.type#&quot; hint=&quot;The `type` attribute for the `script` tag&quot;&gt;
+	&lt;cfargument name=&quot;sources&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;The name of one or many JavaScript files in the `javascripts` folder, minus the `.js` extension. (Can also be called with the `source` argument).&quot;&gt;
+	&lt;cfargument name=&quot;type&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.javaScriptIncludeTag.type#&quot; hint=&quot;The `type` attribute for the `script` tag.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		if (StructKeyExists(arguments, &quot;source&quot;))
@@ -62,14 +60,13 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;imageTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Returns an image tag and will (if the image is stored in the local `images` folder) set the `width`, `height`, and `alt` attributes automatically for you.&quot;
+&lt;cffunction name=&quot;imageTag&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Returns an `img` tag and will (if the image is stored in the local `images` folder) set the `width`, `height`, and `alt` attributes automatically for you.&quot;
 	examples=
 	'
 		##imageTag(&quot;logo.png&quot;)##
 	'
 	categories=&quot;view-helper&quot; chapters=&quot;miscellaneous-helpers&quot; functions=&quot;javaScriptIncludeTag,styleSheetLinkTag&quot;&gt;
-	&lt;cfargument name=&quot;source&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Image file name if local or full URL if remote&quot;&gt;
+	&lt;cfargument name=&quot;source&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Image file name if local or full URL if remote.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		$insertDefaults(name=&quot;imageTag&quot;, reserved=&quot;src&quot;, input=arguments);</diff>
      <filename>wheels/view/media.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,4 @@
-&lt;cffunction name=&quot;cycle&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Cycles through list values every time it is called.&quot;
+&lt;cffunction name=&quot;cycle&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Cycles through list values every time it is called.&quot;
 	examples=
 	'
 		&lt;!--- alternating table row colors ---&gt;
@@ -30,8 +29,8 @@
 		&lt;/cfoutput&gt;
 	'
 	categories=&quot;view-helper&quot; functions=&quot;resetCycle&quot;&gt;
-	&lt;cfargument name=&quot;values&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;List of values to cycle through&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;default&quot; hint=&quot;Name to give the cycle. Useful when you use multiple cycles on a page&quot;&gt;
+	&lt;cfargument name=&quot;values&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;List of values to cycle through.&quot;&gt;
+	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;default&quot; hint=&quot;Name to give the cycle. Useful when you use multiple cycles on a page.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		if (!StructKeyExists(request.wheels, &quot;cycle&quot;))
@@ -52,8 +51,7 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;resetCycle&quot; returntype=&quot;void&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Resets a cycle so that it starts from the first list value the next time it is called.&quot;
+&lt;cffunction name=&quot;resetCycle&quot; returntype=&quot;void&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Resets a cycle so that it starts from the first list value the next time it is called.&quot;
 	examples=
 	'
 		&lt;!--- alternating row colors and shrinking emphasis ---&gt;
@@ -71,7 +69,7 @@
 	'
 	categories=&quot;view-helper&quot; functions=&quot;cycle&quot;
 	&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;default&quot; hint=&quot;The name of the cycle to reset&quot;&gt;
+	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;default&quot; hint=&quot;The name of the cycle to reset.&quot;&gt;
 	&lt;cfscript&gt;
 		if (StructKeyExists(request.wheels, &quot;cycle&quot;) &amp;&amp; StructKeyExists(request.wheels.cycle, arguments.name))
 			StructDelete(request.wheels.cycle, arguments.name);</diff>
      <filename>wheels/view/miscellaneous.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,15 +1,14 @@
-&lt;cffunction name=&quot;excerpt&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Extracts an excerpt from text that matches the first instance of phrase.&quot;
+&lt;cffunction name=&quot;excerpt&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Extracts an excerpt from text that matches the first instance of phrase.&quot;
 	examples=
 	'
 		##excerpt(text=&quot;ColdFusion Wheels is a Rails-like MVC framework for Adobe ColdFusion and Railo&quot;, phrase=&quot;framework&quot;, radius=5)##
 		-&gt; ... MVC framework for ...
 	'
 	categories=&quot;view-helper&quot; functions=&quot;highlight,simpleFormat,stripLinks,stripTags,titleize,truncate&quot;&gt;
-	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The text to extract an excerpt from&quot;&gt;
-	&lt;cfargument name=&quot;phrase&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The phrase to extract&quot;&gt;
-	&lt;cfargument name=&quot;radius&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;100&quot; hint=&quot;Number of characters to extract surrounding the phrase&quot;&gt;
-	&lt;cfargument name=&quot;excerptString&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;...&quot; hint=&quot;String to replace first and/or last characters with&quot;&gt;
+	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The text to extract an excerpt from.&quot;&gt;
+	&lt;cfargument name=&quot;phrase&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The phrase to extract.&quot;&gt;
+	&lt;cfargument name=&quot;radius&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;100&quot; hint=&quot;Number of characters to extract surrounding the phrase.&quot;&gt;
+	&lt;cfargument name=&quot;excerptString&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;...&quot; hint=&quot;String to replace first and/or last characters with.&quot;&gt;
 	&lt;cfscript&gt;
 	var loc = {};
 	loc.pos = FindNoCase(arguments.phrase, arguments.text, 1);
@@ -45,17 +44,16 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;highlight&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Highlights the phrase(s) everywhere in the text if found by wrapping it in a span tag.&quot;
+&lt;cffunction name=&quot;highlight&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Highlights the phrase(s) everywhere in the text if found by wrapping it in a `span` tag.&quot;
 	examples=
 	'
 		##highlight(text=&quot;You searched for: Wheels&quot;, phrases=&quot;Wheels&quot;)##
 		-&gt; You searched for: &lt;span class=&quot;highlight&quot;&gt;Wheels&lt;/span&gt;
 	'
 	categories=&quot;view-helper&quot; functions=&quot;excerpt,simpleFormat,stripLinks,stripTags,titleize,truncate&quot;&gt;
-	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Text to search&quot;&gt;
-	&lt;cfargument name=&quot;phrases&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;List of phrases to highlight&quot;&gt;
-	&lt;cfargument name=&quot;class&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;highlight&quot; hint=&quot;Class to use in `span` tags surrounding highlighted phrase(s)&quot;&gt;
+	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;Text to search.&quot;&gt;
+	&lt;cfargument name=&quot;phrases&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;List of phrases to highlight.&quot;&gt;
+	&lt;cfargument name=&quot;class&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;highlight&quot; hint=&quot;Class to use in `span` tags surrounding highlighted phrase(s).&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		if (!Len(arguments.text) || !Len(arguments.phrases))
@@ -91,8 +89,7 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;simpleFormat&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Replaces single newline characters with HTML break tags and double newline characters with HTML paragraph tags (properly closed to comply with XHTML standards).&quot;
+&lt;cffunction name=&quot;simpleFormat&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Replaces single newline characters with HTML break tags and double newline characters with HTML paragraph tags (properly closed to comply with XHTML standards).&quot;
 	examples=
 	'
 		&lt;!--- how most of your calls will look ---&gt;
@@ -117,8 +114,8 @@
 		   &lt;/p&gt;
 	'
 	categories=&quot;view-helper&quot; functions=&quot;excerpt,highlight,stripLinks,stripTags,titleize,truncate&quot;&gt;
-	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The text to format&quot;&gt;
-	&lt;cfargument name=&quot;wrap&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;true&quot; hint=&quot;Set to true to wrap the result in a paragraph&quot;&gt;
+	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The text to format.&quot;&gt;
+	&lt;cfargument name=&quot;wrap&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;true&quot; hint=&quot;Set to `true` to wrap the result in a paragraph.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		loc.returnValue = Trim(arguments.text);
@@ -131,42 +128,39 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;stripLinks&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Removes all links from an HTML string, leaving just the link text.&quot;
+&lt;cffunction name=&quot;stripLinks&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Removes all links from an HTML string, leaving just the link text.&quot;
 	examples=
 	'
 		##stripLinks(&quot;&lt;strong&gt;Wheels&lt;/strong&gt; is a framework for &lt;a href=&quot;http://www.adobe.com/products/coldfusion/&quot;&gt;ColdFusion&lt;/a&gt;.&quot;)##
 		-&gt; &lt;strong&gt;Wheels&lt;/strong&gt; is a framework for ColdFusion.
 	'
 	categories=&quot;view-helper&quot; functions=&quot;excerpt,highlight,simpleFormat,stripTags,titleize,truncate&quot;&gt;
-	&lt;cfargument name=&quot;html&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The html to remove links from&quot;&gt;
+	&lt;cfargument name=&quot;html&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The html to remove links from.&quot;&gt;
 	&lt;cfreturn REReplaceNoCase(arguments.html, &quot;&lt;a.*?&gt;(.*?)&lt;/a&gt;&quot;, &quot;\1&quot; , &quot;all&quot;)&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;stripTags&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Removes all HTML tags from a string.&quot;
+&lt;cffunction name=&quot;stripTags&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Removes all HTML tags from a string.&quot;
 	examples=
 	'
 		##stripTags(&quot;&lt;strong&gt;Wheels&lt;/strong&gt; is a framework for &lt;a href=&quot;http://www.adobe.com/products/coldfusion/&quot;&gt;ColdFusion&lt;/a&gt;.&quot;)##
 		-&gt; Wheels is a framework for ColdFusion.
 	'
 	categories=&quot;view-helper&quot; functions=&quot;excerpt,highlight,simpleFormat,stripLinks,titleize,truncate&quot;&gt;
-	&lt;cfargument name=&quot;html&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The HTML to remove links from&quot;&gt;
+	&lt;cfargument name=&quot;html&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The HTML to remove links from.&quot;&gt;
 	&lt;cfset var returnValue = &quot;&quot;&gt;
 	&lt;cfset returnValue = REReplaceNoCase(arguments.html, &quot;&lt;\ *[a-z].*?&gt;&quot;, &quot;&quot;, &quot;all&quot;)&gt;
 	&lt;cfset returnValue = REReplaceNoCase(returnValue, &quot;&lt;\ */\ *[a-z].*?&gt;&quot;, &quot;&quot;, &quot;all&quot;)&gt;
 	&lt;cfreturn returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;titleize&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Capitalizes all words in the text to create a nicer looking title.&quot;
+&lt;cffunction name=&quot;titleize&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Capitalizes all words in the text to create a nicer looking title.&quot;
 	examples=
 	'
 		##titleize(&quot;Wheels is a framework for ColdFusion&quot;)##
 		-&gt; Wheels Is A Framework For ColdFusion
 	'
 	categories=&quot;view-helper&quot; functions=&quot;excerpt,highlight,simpleFormat,stripLinks,stripTags,truncate&quot;&gt;
-	&lt;cfargument name=&quot;word&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The text to turn into a title&quot;&gt;
+	&lt;cfargument name=&quot;word&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The text to turn into a title.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		loc.returnValue = &quot;&quot;;
@@ -179,8 +173,7 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;truncate&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Truncates text to the specified length and replaces the last characters with the specified truncate string. (Defaults to '...')&quot;
+&lt;cffunction name=&quot;truncate&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Truncates text to the specified length and replaces the last characters with the specified truncate string. (Defaults to &quot;&quot;...&quot;&quot;).&quot;
 	examples=
 	'
 		##truncate(text=&quot;Wheels is a framework for ColdFusion&quot;, length=20)##
@@ -190,9 +183,9 @@
 		-&gt; Wheels is a framework f (more)
 	'
 	categories=&quot;view-helper&quot; functions=&quot;excerpt,highlight,simpleFormat,stripLinks,stripTags,titleize&quot;&gt;
-	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The text to truncate&quot;&gt;
-	&lt;cfargument name=&quot;length&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;30&quot; hint=&quot;Length to truncate the text to&quot;&gt;
-	&lt;cfargument name=&quot;truncateString&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;...&quot; hint=&quot;String to replace the last characters with&quot;&gt;
+	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The text to truncate.&quot;&gt;
+	&lt;cfargument name=&quot;length&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;30&quot; hint=&quot;Length to truncate the text to.&quot;&gt;
+	&lt;cfargument name=&quot;truncateString&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;...&quot; hint=&quot;String to replace the last characters with.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		if (Len(arguments.text) &gt; arguments.length)</diff>
      <filename>wheels/view/text.cfm</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,4 @@
-&lt;cffunction name=&quot;linkTo&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Creates a link to another page in your application. Pass in a route name to use your configured routes or a controller/action/key combination.&quot;
+&lt;cffunction name=&quot;linkTo&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Creates a link to another page in your application. Pass in the name of a `route` to use your configured routes or a `controller`/`action`/`key` combination.&quot;
 	examples=
 	'
 		##linkTo(text=&quot;Log Out&quot;, controller=&quot;account&quot;, action=&quot;logout&quot;)##
@@ -20,18 +19,18 @@
 		-&gt; &lt;a href=&quot;/user/joe&quot;&gt;Joe''s Profile&lt;/a&gt;
 	'
 	categories=&quot;view-helper&quot; chapters=&quot;linking-pages&quot; functions=&quot;URLFor,buttonTo,mailTo&quot;&gt;
-	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;The text content of the link&quot;&gt;
-	&lt;cfargument name=&quot;confirm&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Pass a message here to cause a JavaScript confirmation dialog box to pop up containing the message&quot;&gt;
-	&lt;cfargument name=&quot;route&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;controller&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;action&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;key&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;params&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;anchor&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;onlyPath&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.linkTo.onlyPath#&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;host&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.linkTo.host#&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;protocol&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.linkTo.protocol#&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;port&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.linkTo.port#&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
+	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;The text content of the link.&quot;&gt;
+	&lt;cfargument name=&quot;confirm&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;Pass a message here to cause a JavaScript confirmation dialog box to pop up containing the message.&quot;&gt;
+	&lt;cfargument name=&quot;route&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;controller&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;action&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;key&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;params&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;anchor&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;onlyPath&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.linkTo.onlyPath#&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;host&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.linkTo.host#&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;protocol&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.linkTo.protocol#&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;port&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.linkTo.port#&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		$insertDefaults(name=&quot;linkTo&quot;, reserved=&quot;href&quot;, input=arguments);
@@ -52,27 +51,26 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;buttonTo&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Creates a form containing a single button that submits to the URL. The URL is built the same way as the `linkTo` function.&quot;
+&lt;cffunction name=&quot;buttonTo&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Creates a form containing a single button that submits to the URL. The URL is built the same way as the @linkTo function.&quot;
 	examples=
 	'
 		##buttonTo(text=&quot;Delete Account&quot;, action=&quot;perFormDelete&quot;, disabled=&quot;Wait...&quot;)##
 	'
 	categories=&quot;view-helper&quot; functions=&quot;URLFor,linkTo,mailTo&quot;&gt;
-	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.text#&quot; hint=&quot;The text content of the button&quot;&gt;
-	&lt;cfargument name=&quot;confirm&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.confirm#&quot; hint=&quot;See documentation for @linkTo&quot;&gt;
-	&lt;cfargument name=&quot;image&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.image#&quot; hint=&quot;If you want to use an image for the button pass in the link to it here (relative from the `images` folder)&quot;&gt;
-	&lt;cfargument name=&quot;disable&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.disable#&quot; hint=&quot;Pass in `true` if you want the button to be disabled when clicked (can help prevent multiple clicks), or pass in a string if you want the button disabled and the text on the button updated (to 'please wait...', for example)&quot;&gt;
-	&lt;cfargument name=&quot;route&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;controller&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;action&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;key&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;params&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;anchor&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;onlyPath&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.onlyPath#&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;host&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.host#&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;protocol&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.protocol#&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
-	&lt;cfargument name=&quot;port&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.port#&quot; hint=&quot;See documentation for @URLFor&quot;&gt;
+	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.text#&quot; hint=&quot;The text content of the button.&quot;&gt;
+	&lt;cfargument name=&quot;confirm&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.confirm#&quot; hint=&quot;See documentation for @linkTo.&quot;&gt;
+	&lt;cfargument name=&quot;image&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.image#&quot; hint=&quot;If you want to use an image for the button pass in the link to it here (relative from the `images` folder).&quot;&gt;
+	&lt;cfargument name=&quot;disable&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.disable#&quot; hint=&quot;Pass in `true` if you want the button to be disabled when clicked (can help prevent multiple clicks), or pass in a string if you want the button disabled and the text on the button updated (to &quot;&quot;please wait...&quot;&quot;, for example).&quot;&gt;
+	&lt;cfargument name=&quot;route&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;controller&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;action&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;key&quot; type=&quot;any&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;params&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;anchor&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;onlyPath&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.onlyPath#&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;host&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.host#&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;protocol&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.protocol#&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
+	&lt;cfargument name=&quot;port&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.buttonTo.port#&quot; hint=&quot;See documentation for @URLFor.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		$insertDefaults(name=&quot;buttonTo&quot;, reserved=&quot;method&quot;, input=arguments);
@@ -93,17 +91,16 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;mailTo&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Creates a mailto link tag to the specified email address, which is also used as the name of the link unless name is specified.&quot;
+&lt;cffunction name=&quot;mailTo&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Creates a `mailto` link tag to the specified email address, which is also used as the name of the link unless name is specified.&quot;
 	examples=
 	'
 		##mailTo(emailAddress=&quot;webmaster@yourdomain.com&quot;, name=&quot;Contact our Webmaster&quot;)##
 		-&gt; &lt;a href=&quot;mailto:webmaster@yourdomain.com&quot;&gt;Contact our Webmaster&lt;/a&gt;
 	'
 	categories=&quot;view-helper&quot; functions=&quot;URLFor,linkTo,buttonTo&quot;&gt;
-	&lt;cfargument name=&quot;emailAddress&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The email address to link to&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;A string to use as the link text ('Joe' or 'Support Department', for example)&quot;&gt;
-	&lt;cfargument name=&quot;encode&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.mailTo.encode#&quot; hint=&quot;Pass `true` here to encode the email address, making it harder for bots to harvest it&quot;&gt;
+	&lt;cfargument name=&quot;emailAddress&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The email address to link to.&quot;&gt;
+	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;&quot; hint=&quot;A string to use as the link text (&quot;&quot;Joe&quot;&quot; or &quot;&quot;Support Department&quot;&quot;, for example).&quot;&gt;
+	&lt;cfargument name=&quot;encode&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.mailTo.encode#&quot; hint=&quot;Pass `true` here to encode the email address, making it harder for bots to harvest it for example.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		$insertDefaults(name=&quot;mailTo&quot;, reserved=&quot;href&quot;, input=arguments);
@@ -129,8 +126,7 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;autoLink&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Turns all URLs and e-mail addresses into clickable links.&quot;
+&lt;cffunction name=&quot;autoLink&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Turns all URLs and e-mail addresses into clickable links.&quot;
 	examples=
 	'
 		##autoLink(&quot;Download Wheels from http://cfwheels.org/download&quot;)##
@@ -140,8 +136,8 @@
 		-&gt; Email us at &lt;a href=&quot;mailto:info@cfwheels.org&quot;&gt;info@cfwheels.org&lt;/a&gt;
 	'
 	categories=&quot;view-helper&quot;&gt;
-	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The text to create links in&quot;&gt;
-	&lt;cfargument name=&quot;link&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;all&quot; hint=&quot;Whether to link URLs, email addresses or both. Possible values are: `all` (default), `URLs` and `emailAddresses`&quot;&gt;
+	&lt;cfargument name=&quot;text&quot; type=&quot;string&quot; required=&quot;true&quot; hint=&quot;The text to create links in.&quot;&gt;
+	&lt;cfargument name=&quot;link&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;all&quot; hint=&quot;Whether to link URLs, email addresses or both. Possible values are: `all` (default), `URLs` and `emailAddresses`.&quot;&gt;
 	&lt;cfscript&gt;
 		var loc = {};
 		loc.urlRegex = &quot;(?ix)([^(url=)|(href=)'&quot;&quot;])(((https?)://([^:]+\:[^@]*@)?)([\d\w\-]+\.)?[\w\d\-\.]+\.(com|net|org|info|biz|tv|co\.uk|de|ro|it)(( / [\w\d\.\-@%\\\/:]* )+)?(\?[\w\d\?%,\.\/\##!@:=\+~_\-&amp;amp;]*(?&lt;![\.]))?)&quot;;
@@ -155,16 +151,15 @@
 	&lt;cfreturn loc.returnValue&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;pagination&quot; returntype=&quot;struct&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Returns a struct with information about the specificed paginated query. The available variables are `currentPage`, `totalPages` and `totalRecords`.&quot;
+&lt;cffunction name=&quot;pagination&quot; returntype=&quot;struct&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Returns a struct with information about the specificed paginated query. The available variables are `currentPage`, `totalPages` and `totalRecords`.&quot;
 	examples=
 	'
 		&lt;cfparam name=&quot;params.page&quot; default=&quot;1&quot;&gt;
-		&lt;cfset allAuthors = model(&quot;author&quot;).findAll(page=params.page, perPage=25, order=&quot;lastName&quot;, handle=&quot;authors_data&quot;)&gt;
-		&lt;cfset pageination_data = pagination(&quot;authors_data&quot;)&gt;
+		&lt;cfset allAuthors = model(&quot;author&quot;).findAll(page=params.page, perPage=25, order=&quot;lastName&quot;, handle=&quot;authorsData&quot;)&gt;
+		&lt;cfset paginationData = pagination(&quot;authorsData&quot;)&gt;
 	'
 	categories=&quot;view-helper&quot;&gt;
-	&lt;cfargument name=&quot;handle&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;query&quot; hint=&quot;The handle given to the query to return pagination information for&quot;&gt;
+	&lt;cfargument name=&quot;handle&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;query&quot; hint=&quot;The handle given to the query to return pagination information for.&quot;&gt;
 	&lt;cfscript&gt;
 		if (application.wheels.showErrorInformation)
 		{
@@ -177,8 +172,7 @@
 	&lt;cfreturn request.wheels[arguments.handle]&gt;
 &lt;/cffunction&gt;
 
-&lt;cffunction name=&quot;paginationLinks&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot;
-	hint=&quot;Builds and returns a string containing links to pages based on a paginated query. Uses `linkTo` internally to build the link, so you need to pass in a route name, controller/action/key combination. All other `linkTo` arguments can be supplied as well, in which case they are passed through directly to `linkTo`. If you have paginated more than one query in the controller, you can use the `handle` argument to reference them. (Don't forget to pass in a `handle` to the `findAll` function in your controller first)&quot;
+&lt;cffunction name=&quot;paginationLinks&quot; returntype=&quot;string&quot; access=&quot;public&quot; output=&quot;false&quot; hint=&quot;Builds and returns a string containing links to pages based on a paginated query. Uses @linkTo internally to build the link, so you need to pass in a `route` name or a `controller`/`action`/`key` combination. All other @linkTo arguments can be supplied as well, in which case they are passed through directly to @linkTo. If you have paginated more than one query in the controller, you can use the `handle` argument to reference them. (Don't forget to pass in a `handle` to the @findAll function in your controller first).&quot;
 	examples=
 	'
 		&lt;!--- controller code ---&gt;
@@ -220,20 +214,20 @@
 		&lt;/ul&gt;
 	'
 	categories=&quot;view-helper&quot; chapters=&quot;getting-paginated-data,displaying-links-for-pagination&quot; functions=&quot;linkTo,findAll,URLFor&quot;&gt;
-	&lt;cfargument name=&quot;windowSize&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.windowSize#&quot; hint=&quot;The number of page links to show around the current page&quot;&gt;
-	&lt;cfargument name=&quot;alwaysShowAnchors&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.alwaysShowAnchors#&quot; hint=&quot;Whether or not links to the first and last page should always be displayed&quot;&gt;
-	&lt;cfargument name=&quot;anchorDivider&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.anchorDivider#&quot; hint=&quot;String to place next to the anchors on either side of the list&quot;&gt;
-	&lt;cfargument name=&quot;linkToCurrentPage&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.linkToCurrentPage#&quot; hint=&quot;Whether or not the current page should be linked to&quot;&gt;
-	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.prepend#&quot; hint=&quot;String or HTML to be prepended before result&quot;&gt;
-	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.append#&quot; hint=&quot;String or HTML to be appended after result&quot;&gt;
-	&lt;cfargument name=&quot;prependToPage&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.prependToPage#&quot; hint=&quot;String or HTML to be prepended before each page number&quot;&gt;
-	&lt;cfargument name=&quot;prependOnFirst&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.prependOnFirst#&quot; hint=&quot;Whether or not to prepend the `prependToPage` string on the first page in the list&quot;&gt;
-	&lt;cfargument name=&quot;appendToPage&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.appendToPage#&quot; hint=&quot;String or HTML to be appended after each page number&quot;&gt;
-	&lt;cfargument name=&quot;appendOnLast&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.appendOnLast#&quot; hint=&quot;Whether or not to append the `appendToPage` string on the last page in the list&quot;&gt;
-	&lt;cfargument name=&quot;classForCurrent&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.classForCurrent#&quot; hint=&quot;Class name for the current page number (if `linkToCurrentPage` is `true`, the class name will go on the `a` element. If not, a `span` element will be used)&quot;&gt;
-	&lt;cfargument name=&quot;handle&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;query&quot; hint=&quot;The handle given to the query that the pagination links should be displayed for&quot;&gt;
-	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.name#&quot; hint=&quot;The name of the param that holds the current page number&quot;&gt;
-	&lt;cfargument name=&quot;showSinglePage&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.showSinglePage#&quot; hint=&quot;Will show a single page when set to `true`. (The default behavior is to return an empty string when there is only one page in the pagination)&quot;&gt;
+	&lt;cfargument name=&quot;windowSize&quot; type=&quot;numeric&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.windowSize#&quot; hint=&quot;The number of page links to show around the current page.&quot;&gt;
+	&lt;cfargument name=&quot;alwaysShowAnchors&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.alwaysShowAnchors#&quot; hint=&quot;Whether or not links to the first and last page should always be displayed.&quot;&gt;
+	&lt;cfargument name=&quot;anchorDivider&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.anchorDivider#&quot; hint=&quot;String to place next to the anchors on either side of the list.&quot;&gt;
+	&lt;cfargument name=&quot;linkToCurrentPage&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.linkToCurrentPage#&quot; hint=&quot;Whether or not the current page should be linked to.&quot;&gt;
+	&lt;cfargument name=&quot;prepend&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.prepend#&quot; hint=&quot;String or HTML to be prepended before result.&quot;&gt;
+	&lt;cfargument name=&quot;append&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.append#&quot; hint=&quot;String or HTML to be appended after result.&quot;&gt;
+	&lt;cfargument name=&quot;prependToPage&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.prependToPage#&quot; hint=&quot;String or HTML to be prepended before each page number.&quot;&gt;
+	&lt;cfargument name=&quot;prependOnFirst&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.prependOnFirst#&quot; hint=&quot;Whether or not to prepend the `prependToPage` string on the first page in the list.&quot;&gt;
+	&lt;cfargument name=&quot;appendToPage&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.appendToPage#&quot; hint=&quot;String or HTML to be appended after each page number.&quot;&gt;
+	&lt;cfargument name=&quot;appendOnLast&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.appendOnLast#&quot; hint=&quot;Whether or not to append the `appendToPage` string on the last page in the list.&quot;&gt;
+	&lt;cfargument name=&quot;classForCurrent&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.classForCurrent#&quot; hint=&quot;Class name for the current page number (if `linkToCurrentPage` is `true`, the class name will go on the `a` element. If not, a `span` element will be used).&quot;&gt;
+	&lt;cfargument name=&quot;handle&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;query&quot; hint=&quot;The handle given to the query that the pagination links should be displayed for.&quot;&gt;
+	&lt;cfargument name=&quot;name&quot; type=&quot;string&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.name#&quot; hint=&quot;The name of the param that holds the current page number.&quot;&gt;
+	&lt;cfargument name=&quot;showSinglePage&quot; type=&quot;boolean&quot; required=&quot;false&quot; default=&quot;#application.wheels.functions.paginationLinks.showSinglePage#&quot; hint=&quot;Will show a single page when set to `true`. (The default behavior is to return an empty string when there is only one page in the pagination).&quot;&gt;
 
 	&lt;cfscript&gt;
 		var loc = {};</diff>
      <filename>wheels/view/urls.cfm</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>08c3db27279e98e7780b90da2cb31af89a657341</id>
    </parent>
  </parents>
  <author>
    <name>per.djurner</name>
    <email>per.djurner@d8ff095c-9719-0410-9cd3-1dd5d13d90f5</email>
  </author>
  <url>http://github.com/rip747/cfwheels/commit/179561f6f833a331ca86e341e178f9d7d9c52cc2</url>
  <id>179561f6f833a331ca86e341e178f9d7d9c52cc2</id>
  <committed-date>2009-11-04T06:33:38-08:00</committed-date>
  <authored-date>2009-11-04T06:33:38-08:00</authored-date>
  <message>Docs, syntax, file moves.

git-svn-id: https://cfwheels.googlecode.com/svn/trunk@3648 d8ff095c-9719-0410-9cd3-1dd5d13d90f5</message>
  <tree>82db90424458d77578954ee717a5b07c76fdaa4f</tree>
  <committer>
    <name>per.djurner</name>
    <email>per.djurner@d8ff095c-9719-0410-9cd3-1dd5d13d90f5</email>
  </committer>
</commit>
