<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<formidable version="1.0.0"
	xmlns:datahandler="http://www.ameos.com/formidable/1.0.0/datahandler"
	xmlns:datasource="http://www.ameos.com/formidable/1.0.0/datasource"
	xmlns:renderer="http://www.ameos.com/formidable/1.0.0/renderer"
	xmlns:renderlet="http://www.ameos.com/formidable/1.0.0/renderlet"
	xmlns:validator="http://www.ameos.com/formidable/1.0.0/validator"
	xmlns:actionlet="http://www.ameos.com/formidable/1.0.0/actionlet">
	
	<meta>
		<name>Standard XML file</name>
		<form formid="myform"/>
		<debug>false</debug>
		<displaylabels>true</displaylabels>
	</meta>
	
	<control>
		<datahandler:VOID />
		<renderer:STANDARD/>
	</control>

	<elements>
		
		<renderlet:TEXT name="required" label="My text field required">
			<validators>
				<validator:STANDARD>
					<required message="text field is required" />
				</validator:STANDARD>
			</validators>
		</renderlet:TEXT>

		<renderlet:TEXT name="email" label="My text field email">
			<validators>
				<validator:STANDARD>
					<email>
						<message>This is not an email</message>
					</email>
				</validator:STANDARD>
			</validators>
		</renderlet:TEXT>

		<renderlet:TEXT name="too_short" label="My text field too short">
			<validators>
				<validator:STANDARD>
					<minsize>
					<value>10</value>
						<message>Your text is to short</message>
					</minsize>
				</validator:STANDARD>
			</validators>
		</renderlet:TEXT>

		<renderlet:TEXT name="toolong" label="My text field too long">
			<validators>
				<validator:STANDARD>
					<maxsize>
						<value>10</value>
						<message>Your text is to long</message>
					</maxsize>
				</validator:STANDARD>
			</validators>
		</renderlet:TEXT>

		<renderlet:TEXT name="rightsize" label="My text field right sized">
			<validators>
				<validator:STANDARD>
					<size>
						<value>10</value>
						<message>Your text has not the right size</message>
					</size>
				</validator:STANDARD>
			</validators>
		</renderlet:TEXT>

		<renderlet:TEXT name="mytxt" label="My text field reference" />

		<renderlet:TEXT name="mysecondtxt" label="This text field should be equal to the reference">
			<validators>
				<validator:STANDARD>
					<sameas>
						<value>mytxt</value>
						<message>The second text field is not the same as the first one</message>
					</sameas>
				</validator:STANDARD>
			</validators>
		</renderlet:TEXT>

		<renderlet:TEXT name="auth" label="My text field is authentified">
			<validators>
				<validator:STANDARD>
					<authentified>
						<value>TRUE</value>
						<message>You must be logged in to complete this form</message>
					</authentified>
				</validator:STANDARD>
			</validators>
		</renderlet:TEXT>

		<renderlet:TEXT name="isnumeric" label="My text field is numeric">
			<validators>
				<validator:NUM>
					<isnum>
						<message>You must be looged in to complete this form</message>
					</isnum>
				</validator:NUM>
			</validators>
		</renderlet:TEXT>

		<renderlet:TEXT name="lower" label="My text field is lower than 100">
			<validators>
				<validator:NUM>
					<islower>
						<value>100</value>
						<message>Your field should be lower than 100</message>
					</islower>
				</validator:NUM>
			</validators>
		</renderlet:TEXT>

		<renderlet:TEXT name="ishigher" label="My text field is higher than 100">
			<validators>
				<validator:NUM>
					<ishigher>
						<value>100</value>
						<message>Your field should be higher than 100</message>
					</ishigher>
				</validator:NUM>
			</validators>
		</renderlet:TEXT>

		<renderlet:TEXT name="between" label="My text field s between 50 and 100">
			<validators>
				<validator:NUM>
					<isbetween>
						<value>50,100</value>
						<message>Your field should be between 50 and 100</message>
					</isbetween>
				</validator:NUM>
			</validators>
		</renderlet:TEXT>

		<renderlet:TEXT name="integer" label="My text field is an integer">
			<validators>
				<validator:NUM>
					<isinteger>
						<message>Your field should be an integer</message>
					</isinteger>
				</validator:NUM>
			</validators>
		</renderlet:TEXT>

		<renderlet:TEXT name="float" label="My text field is a float">
			<validators>
				<validator:NUM>
					<isfloat>
						<message>Your field should be a float</message>
					</isfloat>
				</validator:NUM>
			</validators>
		</renderlet:TEXT>

		<renderlet:UPLOAD name="extension" label="My file field is a jpg, gif or png">
			<data targetDir="uploads" />
			<validators>
				<validator:FILE>
					<extension>
						<value>jpg,gif,png</value>
						<message>Your file should be either a jpg, gif or png</message>
					</extension>
				</validator:FILE>
			</validators>
		</renderlet:UPLOAD>

		<renderlet:UPLOAD name="filesizekb" label="My file field is less than 10kb">
			<data targetDir="uploads" />
			<validators>
				<validator:FILE>
					<filesizekb>
						<value>10</value>
						<message>Your file is to big</message>
					</filesizekb>
				</validator:FILE>
			</validators>
		</renderlet:UPLOAD>

		<renderlet:TEXT name="unique" label="My text field is a unique username in fe_user">
			<validators>
				<validator:DB>
					<unique>
						<tablename>fe_users</tablename>
						<field>username</field>
						<message>This username does already exist in our database</message>
					</unique>
				</validator:DB>
			</validators>
		</renderlet:TEXT>

		<renderlet:TEXT name="userobj" label="My text field is validate by a userobj">
			<validators>
				<validator:STANDARD>
					<userobj message="this word is not allowed here">
						<php><![CDATA[

						$aData = $this->getUserObjParams();

						if(!empty($aData["value"])) {

							if(strstr(strtolower($aData["value"]), "microsoft")) {
							   return FALSE;
							}
						}
						return TRUE;
						]]></php>
					</userobj>
				</validator:STANDARD>
			</validators>
		</renderlet:TEXT>

		<renderlet:SUBMIT name="submit" value="submit" label="submit" />
	</elements>

</formidable>
