<ips:template parameters="$name, $value='', $required, $maxlength=NULL, $disabled=FALSE, $class='', $placeholder='', $nullLang=NULL, $autoComplete=NULL" />

{{$valueAsArray = is_array( $value ) ? $value : explode( ',', $value );}}
{{$valueToDisplay = is_array( $value ) ? implode( "\n", $value ) : $value;}}

{{if ( !isset( $autoComplete['commaTrigger'] ) || $autoComplete['commaTrigger'] !== FALSE )}}
	{{// If the stored value has commas in it, we need to explode then implode to get the newlines}}
	{{if mb_stripos( $valueToDisplay, ',') !== FALSE}}
		{{$valueToDisplay = implode("\n", explode(",", $valueToDisplay));}}
	{{endif}}	
{{endif}}

{{if ( isset( $autoComplete['freeChoice'] ) && !$autoComplete['freeChoice'] ) || ( isset( $autoComplete['prefix'] ) and $autoComplete['prefix'] ) }}
<div {{if isset( $autoComplete['freeChoice'] ) && !$autoComplete['freeChoice']}}class="ipsJS_show"{{endif}} {{if isset( $autoComplete['prefix'] ) and $autoComplete['prefix']}}data-controller='core.global.core.prefixedAutocomplete'{{endif}}>
{{endif}}
<textarea
	name="{$name}"
	id='elInput_{expression="preg_replace('/[^a-zA-Z0-9\-_]/', '_', $name)"}'
	class="{$class}"
	{{if $maxlength !== NULL}}maxlength="{$maxlength}"{{endif}}
	{{if $required === TRUE}}aria-required='true'{{endif}}
	{{if $disabled}}disabled aria-disabled='true'{{endif}}
	{{if $placeholder}}placeholder="{$placeholder}"{{endif}}
	data-ipsAutocomplete
	{{if isset( $autoComplete['freeChoice'] ) && !$autoComplete['freeChoice']}}data-ipsAutocomplete-freeChoice='false'{{endif}}
	{{if isset( $autoComplete['forceLower'] ) && $autoComplete['forceLower']}}data-ipsAutocomplete-forceLower{{endif}}
	{{if isset( $autoComplete['maxItems'] )}}data-ipsAutocomplete-maxItems='{$autoComplete['maxItems']}'{{endif}}
	{{if !empty($autoComplete['unique'])}}
		data-ipsAutocomplete-unique
	{{endif}}
	{{if isset($autoComplete['source']) AND is_array( $autoComplete['source'] )}}
		list='{$name}_datalist'
	{{elseif !empty($autoComplete['source'])}}
		data-ipsAutocomplete-dataSource="{url="{$autoComplete['source']}"}"
		data-ipsAutocomplete-queryParam='input'
	{{endif}}
	{{if !empty($autoComplete['resultItemTemplate'])}}
		data-ipsAutocomplete-resultItemTemplate="{$autoComplete['resultItemTemplate']}"
	{{endif}}
	{{if isset( $autoComplete['minLength'] )}}data-ipsAutocomplete-minLength='{$autoComplete['minLength']}'{{endif}}
	{{if isset( $autoComplete['maxLength'] )}}data-ipsAutocomplete-maxLength='{$autoComplete['maxLength']}'{{endif}}
	{{if isset( $autoComplete['minAjaxLength'] )}}data-ipsAutocomplete-minAjaxLength='{$autoComplete['minAjaxLength']}'{{endif}}
	{{if isset( $autoComplete['disallowedCharacters'] )}}data-ipsAutocomplete-disallowedCharacters='{expression="json_encode( $autoComplete['disallowedCharacters'] )"}'{{endif}}
	{{if isset( $autoComplete['commaTrigger'] ) && $autoComplete['commaTrigger'] === FALSE}}data-ipsAutocomplete-commaTrigger='false'{{endif}}
>{$valueToDisplay}</textarea>

{{if isset( $autoComplete['prefix'] ) and $autoComplete['prefix']}}
	<div data-role='prefixRow' class='ipsHide' id='{{if ! empty($htmlId)}}{$htmlId}{{else}}{$name}{{endif}}_prefixWrap'>
		<input type='checkbox' name='{$name}_freechoice_prefix' {{if isset($valueAsArray['prefix'])}}checked{{endif}} class='ipsJS_hide'> <button type='button' id='{{if ! empty($htmlId)}}{$htmlId}{{else}}{$name}{{endif}}_prefix' data-role="prefixButton" data-ipsMenu data-ipsMenu-selectable="radio" data-ipsMenu-appendTo="{{if ! empty($htmlId)}}#{$htmlId}{{else}}#{$name}{{endif}}_prefixWrap" class='ipsButton ipsButton_light ipsButton_verySmall'><span>{{if isset($valueAsArray['prefix'])}}{$valueAsArray['prefix']}{{else}}{lang="select_prefix"}{{endif}}</span> <i class='fa fa-caret-down'></i></button>
		<input type='hidden' data-role='prefixValue' name='{$name}_prefix' value='{{if isset($valueAsArray['prefix'])}}{$valueAsArray['prefix']}{{endif}}'>
		<ul id='{{if ! empty($htmlId)}}{$htmlId}{{else}}{$name}{{endif}}_prefix_menu' data-role="prefixMenu" class='ipsMenu ipsMenu_selectable ipsMenu_auto ipsHide'>
			<li data-ipsMenuValue='-' class='ipsMenu_item ipsMenu_itemChecked'>
				<a href='#'>{lang="no_prefix"}</a>
			</li>
			<li class='ipsMenu_sep'>
				<hr>
			</li>
		</ul>
	</div>
	<noscript>
		<input type="hidden" name="{$name}_first_as_prefix" value="0">
		{{$valueKeys = is_array( $value ) ? array_keys( $value ) : array_keys( explode( ',', $value ) );}}
		<input type="checkbox" name="{$name}_first_as_prefix" value="1" id="{$name}_first_as_prefix" {{if array_shift( $valueKeys ) === 'prefix'}}checked{{endif}}> <label for="{$name}_first_as_prefix">{lang="use_first_tag_as_prefix"}</label>
	</noscript>
{{endif}}

{{if ( isset( $autoComplete['freeChoice'] ) && !$autoComplete['freeChoice'] ) || ( isset( $autoComplete['prefix'] ) and $autoComplete['prefix'] ) }}
</div>
{{endif}}

{{if isset( $autoComplete['desc'] )}}
	<span class='ipsFieldRow_desc'>
		{$autoComplete['desc']|raw}
	</span>
{{endif}}

{{if $nullLang}}
	{lang="or"} 
	<span class='ipsCustomInput'>
		<input type="checkbox" role='checkbox' data-control="unlimited" name="{$name}_null" id="{expression="preg_replace('/[^a-zA-Z0-9\-_]/', '_', $name)"}_null" value="1" {{if $value === NULL}}checked aria-checked='true'{{endif}} {{if $disabled}}disabled{{endif}} aria-controls='{$name}' aria-labelledby='{$name}_null_label'>
		<span></span>
	</span> <label for='{expression="preg_replace('/[^a-zA-Z0-9\-_]/', '_', $name)"}_null' id='{expression="preg_replace('/[^a-zA-Z0-9\-_]/', '_', $name)"}_null_label' class='ipsField_unlimited'>{lang="$nullLang"}</label>
{{endif}}

{{if isset($autoComplete['source']) AND is_array( $autoComplete['source'] )}}
	<datalist id="{$name}_datalist">
		{{foreach $autoComplete['source'] as $v}}
			<option value="$v">{$v}</option>
		{{endforeach}}
	</datalist>
{{endif}}

{{if isset( $autoComplete['freeChoice'] ) && !$autoComplete['freeChoice']}}
<noscript>
	<select name="{$name}_noscript[]" multiple>
		{{foreach $autoComplete['source'] as $v}}
			<option value="$v" {{if in_array( $v, $valueAsArray )}}selected{{endif}}>{$v}</option>
		{{endforeach}}
	</select>
	{{if isset( $autoComplete['prefix'] ) and $autoComplete['prefix']}}
		<br><br>
		{lang="prefix_noscript"}
		<select name="{$name}_noscript_prefix">
			<option value=""></option>
			{{foreach $autoComplete['source'] as $v}}
				<option value="$v" {{if isset( $valueAsArray['prefix'] ) and $valueAsArray['prefix'] === $v}}selected{{endif}}>{$v}</option>
			{{endforeach}}
		</select>
	{{endif}}
</noscript>
{{endif}}