<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (c) 1995-2005 Macromedia, Inc. All rights reserved. -->
<!--
Sample javascript output. generated by CFFORM
**************************************************************
<script language="JavaScript" type="text/javascript" src="/CFIDE/scripts/cfform.js"/>
<script language="JavaScript" type="text/javascript">
    function  _CF_checkCFForm_1(_CF_this)
    {
        //reset on submit
        _CF_error_messages = new Array();
        _CF_error_fields = new Object();
        _CF_FirstErrorField = null;

        //form element firstName required check
        if( _CF_hasValue(_CF_this['firstName'], "TEXT", false ) )
        {
            //form element firstName 'TELEPHONE' validation checks
            if (!_CF_checkphone(_CF_this['firstName'].value))
            {
                _CF_onError(_CF_this, "firstName", _CF_this['firstName'].value, "error in first name!!");
            }
        }

        //display error messages and return success
        if( _CF_error_messages.length > 0 )
        {
            // show alert() message
            _CF_onErrorAlert(_CF_error_messages);
            // set focus to first form error, if the field supports js focus().
            if( _CF_this[_CF_FirstErrorField].type == "text" )
            { _CF_this[_CF_FirstErrorField].focus(); }

            return false;
        }else {
            return true;
        }
    }
</script>	
**************************************************************
-->
<xsl:stylesheet version="1.0" 
	xmlns:xsi = "http://www.w3.org/1999/XMLSchema-instance"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
	xmlns:xf="http://www.w3.org/2002/xforms" 
	xmlns:html="http://www.w3.org/1999/xhtml"
	xmlns:cf="http://www.macromedia.com/2004/cfform"  
	exclude-result-prefixes="xsi xsl xf html cf"
>

	<xsl:template name="getMessage">
		<xsl:choose>
			<xsl:when test="xf:extension/cf:attribute/@name = 'message' ">
				<xsl:value-of  select="xf:extension/cf:attribute[@name = 'message' ]/text()"/>
			</xsl:when>
			<xsl:when test="xf:extension/cf:validate/cf:argument[@name='message']">
				<xsl:value-of  select="xf:extension/cf:validate/cf:argument[@name='message']/text()"/>
			</xsl:when>
			<xsl:when test="cf:argument/@name = 'message' ">
				<xsl:value-of  select="cf:argument[@name = 'message' ]/text()"/>
			</xsl:when>
			<xsl:when test="@id ">
				<!-- default required error message -->
				<xsl:text>Error in </xsl:text>
				<xsl:value-of select="@id"/>
				<xsl:text> field.</xsl:text>
			</xsl:when>
			<xsl:when test="parent::*/parent::*/@id">
				<!-- default required error message -->
				<xsl:text>Error in </xsl:text>
				<xsl:value-of select="parent::*/parent::*/@id"/>									<xsl:text> field.</xsl:text>
			</xsl:when>
			<xsl:otherwise>
				<!-- default catch all message -->
					<xsl:text>Error in field.</xsl:text>
			</xsl:otherwise>
		</xsl:choose>
 	</xsl:template>
 	
 	<xsl:template name="getHiddenMessage">
		<xsl:choose>
			<xsl:when test="cf:argument/@name = 'message' ">
				<xsl:value-of  select="cf:argument[@name = 'message' ]/text()"/>
			</xsl:when>
			<xsl:otherwise>
				<xsl:value-of select="text()"/>
			</xsl:otherwise>
		</xsl:choose>
 	</xsl:template>
 	


<!-- **************************************************************************************************
	*	Server Side / Hidden Field Validation
	************************************************************************************************** -->
	
	<!-- loop over each item in hte model that doesn't have a form element with a matching @id -->
	<xsl:template name="onServerValidation">
		<xsl:for-each select="//form/xf:model/xf:instance/cf:data/*[not(name() =  //form/descendant::*/@id)]">
			<xsl:call-template name="hidden"></xsl:call-template>
		</xsl:for-each>
	</xsl:template>
	
	<xsl:template name="hidden">
		<xsl:element name="div">
		<xsl:element name="input">
			<xsl:attribute name="type">hidden</xsl:attribute>
			<xsl:attribute name="name"><xsl:value-of select="name()"/></xsl:attribute>

			<xsl:choose>
				<xsl:when test="text()">
					<xsl:attribute name="value">
						<xsl:call-template name="getHiddenMessage"/>
					</xsl:attribute>
				</xsl:when>
                <xsl:when test="contains(name(), '_CFFORM')">
                    <!-- default error message -->
					<xsl:attribute name="value">
						<xsl:text>Error in </xsl:text>
						<xsl:value-of select="substring-before(name(), '_')"/>
						<xsl:text> field.</xsl:text>
					</xsl:attribute>
                </xsl:when>
				<xsl:otherwise>
					<xsl:attribute name="value"/>
				</xsl:otherwise>
			</xsl:choose>
		</xsl:element>
		</xsl:element>
	</xsl:template>

	

<!-- **************************************************************************************************
	*	onSubmit Validation
	************************************************************************************************** -->

	<xsl:template name="onSubmitValidation">
		<xsl:variable name="formName" select="//form/@cf:name"/>
		<xsl:variable name="scriptSrc" select="//form/@cf:scriptsrc"/>
		<!-- include cfform.js file -->
		<xsl:element name="script">
			<xsl:attribute name="type">text/javascript</xsl:attribute>
			<xsl:attribute name="src">
				<xsl:value-of select="concat($scriptSrc, 'cfform.js')"/>
			</xsl:attribute>
			<xsl:text> </xsl:text>
		</xsl:element>
		<!-- output custom block of calls to the cfform.js file, these are just the calls required to validate this file -->
		<xsl:element name="script">
			<xsl:attribute name="type">text/javascript</xsl:attribute>
				
<xsl:text disable-output-escaping="yes">
	function </xsl:text><xsl:value-of select="concat('_CF_check', $formName)"/><xsl:text>(_CF_this)
	{
	        //reset on submit
	        _CF_error_messages = new Array();
	        _CF_error_fields = new Object();
	        _CF_FirstErrorField = null;
</xsl:text>

<xsl:for-each select="//form/xf:model/xf:bind">
	<xsl:call-template name="getOnSubmitJavascript"/>
</xsl:for-each>

<xsl:text disable-output-escaping="yes">	
        //display error messages and return success
        if( _CF_error_messages.length > 0 )
        {
            // show alert() message
            _CF_onErrorAlert(_CF_error_messages);
            // set focus to first form error, if the field supports js focus().
            if( _CF_this[_CF_FirstErrorField].type == "text" )
            { _CF_this[_CF_FirstErrorField].focus(); }

            return false;
        }else {
            return true;
        }
}
</xsl:text>
		</xsl:element>	
	</xsl:template>
	
	<xsl:template name="getOnSubmitJavascript">
		<xsl:variable name="name" select="@id" />
		<xsl:variable name="required" select="@required"/> 
		<xsl:variable name="onError" select="xf:extension/cf:attribute[@name='onerror']/text()"/>



		
		<!-- only work with bind elements that have a cf:type attribute, ignoring the NOBLANKS type (this is used in hte required check) -->


		<!-- wrap validation call in required check, if needed -->
		<xsl:if test="$required = 'true()'">
			<xsl:text>
				if( _CF_hasValue(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'], "</xsl:text><xsl:value-of select="xf:extension/cf:attribute[@name='type']/text()"/><xsl:text>", </xsl:text>
				<xsl:choose>
					<xsl:when test="xf:extension/cf:validate[@type = 'noblanks']">
						<xsl:text>true</xsl:text>
					</xsl:when>
					<xsl:otherwise>
						<xsl:text>false</xsl:text>
					</xsl:otherwise>
				</xsl:choose>		
				<xsl:text> ) )
			       {	
			</xsl:text>	
		</xsl:if>
		
		<xsl:for-each select="xf:extension/cf:validate">
			<xsl:if test="cf:trigger[@event = 'onsubmit']">
				
				<xsl:choose>
					<xsl:when test="@type='boolean'">
						<xsl:text>
					            if (!_CF_checkBoolean(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>			
					</xsl:when>
					<xsl:when test="@type='creditcard'">
						<xsl:text>
					            if (!_CF_checkcreditcard(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");	            
							}
						</xsl:text>			
					</xsl:when>
					<xsl:when test="@type='date'">
						<xsl:text>
					            if (!_CF_checkdate(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>			
					</xsl:when>
					<xsl:when test="@type='usdate'">
						<xsl:text>
					            if (!_CF_checkdate(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>						
					</xsl:when>
					<xsl:when test="@type='email'">
						<xsl:text>
					            if (!_CF_checkEmail(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='eurodate'">
						<xsl:text>
					            if (!_CF_checkeurodate(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='float'">
						<xsl:text>
					            if (!_CF_checknumber(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='guid'">
						<xsl:text>
					            if (!_CF_checkGUID(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='integer'">
						<xsl:text>
					            if (!_CF_checkinteger(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='numeric'">
						<xsl:text>
					            if (!_CF_checknumber(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='maxlength'">
					
					</xsl:when>
					<xsl:when test="@type='range'">
						
					</xsl:when>
					<xsl:when test="@type='regex'">
						<xsl:text>
					            if (!_CF_checkregex(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            			<xsl:text>/</xsl:text>
<xsl:value-of select="cf:argument[@name='pattern']"/><xsl:text>/,</xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='regular_expression'">
						<xsl:text>
					            if (!_CF_checkregex(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='ssn'">
						<xsl:text>
					            if (!_CF_checkssn(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='social_security_number'">
						<xsl:text>
					            if (!_CF_checkssn(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='telephone'">
						<xsl:text>
					            if (!_CF_checkphone(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='time'">
						<xsl:text>
					            if (!_CF_checktime(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='url'">
						<xsl:text>
					            if (!_CF_checkURL(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='uuid'">
						<xsl:text>
					            if (!_CF_checkUUID(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='zipcode'">
						<xsl:text>
					            if (!_CF_checkzip(_CF_this['</xsl:text><xsl:value-of select="$name"/><xsl:text>'].value, </xsl:text>
					            		<xsl:choose>
									<xsl:when test="@required='true()'">true</xsl:when>
									<xsl:otherwise>false</xsl:otherwise>
								</xsl:choose>					            
					            <xsl:text>))
					            {
					                </xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="$name"/><xsl:text>",  _CF_this['</xsl:text>
					                		<xsl:value-of select="$name"/><xsl:text>'].value,"</xsl:text>
					                		<xsl:call-template name="getMessage" /><xsl:text>");
					            }
						</xsl:text>
					</xsl:when>
					<xsl:when test="@type='submitonce'">
					
					</xsl:when>
				</xsl:choose>

			</xsl:if>
		</xsl:for-each>

		
		<xsl:if test="$required = 'true()'">
			<xsl:text>
				}else {
		            		</xsl:text><xsl:value-of select="$onError"/><xsl:text>(_CF_this, "</xsl:text><xsl:value-of select="@id"/><xsl:text>", _CF_this['</xsl:text><xsl:value-of select="@id"/><xsl:text>'].value, "</xsl:text><xsl:call-template name="getMessage" /><xsl:text>");
		        	}
			</xsl:text>	
		</xsl:if>
	
	</xsl:template>

	
	
	
	
	
	
	
	
<!-- **************************************************************************************************
	*	onBlur Validation
	************************************************************************************************** -->	
	<xsl:template name="onBlurValidation">
		<xsl:for-each select="xf:extension/cf:validate">
			<xsl:if test="cf:trigger[@event = 'onblur']">
				<xsl:call-template name="getOnBlurJavaScript"/>
			</xsl:if>
		</xsl:for-each>
	</xsl:template>
	
	<xsl:template name="getOnBlurJavaScript">
		<xsl:variable name="name" select="parent::*/parent::*/@id" />
		<xsl:variable name="required" select="parent::*/parent::*/@required"/>       


		<xsl:choose>
			<xsl:when test="@type = 'boolean'">
  		       <xsl:attribute name="onBlur">
				<xsl:text>if (!_CF_checkBoolean(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>
				<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
					<xsl:call-template name="getMessage" />
				<xsl:text>')); }</xsl:text>
			</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'creditcard'">
            		<xsl:attribute name="onBlur">
				<xsl:text>if (!_CF_checkcreditcard(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>
				<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
					<xsl:call-template name="getMessage" />
				<xsl:text>')); }</xsl:text>
			</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'date'">
            		<xsl:attribute name="onBlur">
				<xsl:text>if (!_CF_checkdate(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>				
				<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
					<xsl:call-template name="getMessage" />
				<xsl:text>')); }</xsl:text>
			</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'email'">
            		<xsl:attribute name="onBlur">
				<xsl:text>if (!_CF_checkEmail(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>				
				<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
					<xsl:call-template name="getMessage" />
				<xsl:text>')); }</xsl:text>
			</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'eurodate'">
            		<xsl:attribute name="onBlur">
				<xsl:text>if (!_CF_checkeurodate(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>				
				<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
					<xsl:call-template name="getMessage" />
				<xsl:text>')); }</xsl:text>
			</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'float'">
			<xsl:attribute name="onBlur">
				<xsl:text>if (!_CF_checknumber(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>				
				<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
					<xsl:call-template name="getMessage" />
				<xsl:text>')); }</xsl:text>
			</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'guid'">
            		<xsl:attribute name="onBlur">
				<xsl:text>if (!_CF_checkGUID(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>				
				<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
					<xsl:call-template name="getMessage" />
				<xsl:text>')); }</xsl:text>
			</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'integer'">
            		<xsl:attribute name="onBlur">
				<xsl:text>if (!_CF_checkinteger(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>				
				<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
					<xsl:call-template name="getMessage" />
				<xsl:text>')); }</xsl:text>
			</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'maxlength'"></xsl:when>
			<xsl:when test="@type = 'numeric'">
			<xsl:attribute name="onBlur">
				<xsl:text>if (!_CF_checknumber(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>				
				<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
					<xsl:call-template name="getMessage" />
				<xsl:text>')); }</xsl:text>
			</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'range'"></xsl:when>								
			<xsl:when test="@type = 'regex'">
            		<xsl:attribute name="onBlur">
				<xsl:text>if (!_CF_checkregex(this.value, </xsl:text>
					<xsl:text>/</xsl:text>
<xsl:value-of select="cf:argument[@name='pattern']"/><xsl:text>/,</xsl:text>

		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>				
				<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
					<xsl:call-template name="getMessage" />
				<xsl:text>')); }</xsl:text>
			</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'regular_expression'">
            		<xsl:attribute name="onBlur">
				<xsl:text>if (!_CF_checkregex(this.value, </xsl:text>
					<xsl:text>/</xsl:text>
<xsl:value-of select="cf:argument[@name='pattern']"/><xsl:text>/,</xsl:text>

		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>				
				<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
					<xsl:call-template name="getMessage" />
				<xsl:text>')); }</xsl:text>
			</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'required'"></xsl:when>
			<xsl:when test="@type = 'ssn'">
            		<xsl:attribute name="onBlur">
				<xsl:text>if (!_CF_checkssn(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>				
				<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
					<xsl:call-template name="getMessage" />
				<xsl:text>')); }</xsl:text>
			</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'social_security_number'">
            		<xsl:attribute name="onBlur">
				<xsl:text>if (!_CF_checkssn(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>				
				<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
					<xsl:call-template name="getMessage" />
				<xsl:text>')); }</xsl:text>
			</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'telephone'">
            		<xsl:attribute name="onBlur">
                		<xsl:text>if (!_CF_checkphone(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>                		
                		<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
                    		<xsl:call-template name="getMessage" />
                		<xsl:text>')); }</xsl:text>
            		</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'time'">
            		<xsl:attribute name="onBlur">
                		<xsl:text>if (!_CF_checktime(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>                		
                		<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
                    		<xsl:call-template name="getMessage" />
                		<xsl:text>')); }</xsl:text>
            		</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'url'">
            		<xsl:attribute name="onBlur">
                		<xsl:text>if (!_CF_checkURL(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>                		
                		<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
                    		<xsl:call-template name="getMessage" />
                		<xsl:text>')); }</xsl:text>
            		</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'uuid'">
            		<xsl:attribute name="onBlur">
                		<xsl:text>if (!_CF_checkUUID(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>                		
                		<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
                    		<xsl:call-template name="getMessage" />
                		<xsl:text>')); }</xsl:text>
            		</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'usdate'">
            		<xsl:attribute name="onBlur">
                		<xsl:text>if (!_CF_checkdate(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>                		
                		<xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
                    		<xsl:call-template name="getMessage" />
                		<xsl:text>')); }</xsl:text>
            		</xsl:attribute>
			</xsl:when>
			<xsl:when test="@type = 'zipcode'">
			<xsl:attribute name="onBlur">
	                <xsl:text>if (!_CF_checkzip(this.value, </xsl:text>
		            		<xsl:choose>
						<xsl:when test="@required='true()'">true</xsl:when>
						<xsl:otherwise>false</xsl:otherwise>
					</xsl:choose>	                
	                <xsl:text>)){ _CF_onErrorAlert(new Array('</xsl:text>
	                    	<xsl:call-template name="getMessage" />
	                <xsl:text>')); }</xsl:text>
	            	</xsl:attribute>
			</xsl:when>
		</xsl:choose>			
	</xsl:template>
</xsl:stylesheet>

