{block name='productdetails-variation'}
    {if isset($Artikel->Variationen) && count($Artikel->Variationen) > 0 && !$showMatrix}
        {$variationHoverEnabled = $variationHoverEnabled|default:true}
        {$showVariationNameOnSelect = $showVariationNameOnSelect|default:'default'}{* this enables overrides from including templates *}
        {if $showVariationNameOnSelect === 'default'}
            {et_getGlobalSettings assign="etGlobalSettings"}
            {$showVariationNameOnSelect = false}
            {if $etGlobalSettings.showVariationNameOnSelect === 'always'
                || $etGlobalSettings.showVariationNameOnSelect === 'detail' && $nSeitenTyp === $smarty.const.PAGE_ARTIKEL
                || $etGlobalSettings.showVariationNameOnSelect === 'category' && $nSeitenTyp === $smarty.const.PAGE_ARTIKELLISTE}
                {$showVariationNameOnSelect = true}
            {/if}
        {/if}
        {assign var=VariationsSource value='Variationen'}
        {if isset($ohneFreifeld) && $ohneFreifeld}
            {assign var=VariationsSource value='VariationenOhneFreifeld'}
        {/if}
        {assign var=oVariationKombi_arr value=$Artikel->getChildVariations()}
        {block name='productdetails-variation-spinner'}
            <div class="row">
                <div class="col updatingStockInfo text-center-util d-none">
                    <i class="{et_getIcon key="variationLoader"} et-icon-spin" title="{lang key='updatingStockInformation' section='productDetails'}"></i>
                </div>
            </div>
        {/block}
        {block name='productdetails-variation-variation'}
            <div class="row variations {if $simple}simple{else}switch{/if}-variations variation-hover-{if $variationHoverEnabled}enabled{else}disabled{/if}">
                <div class="col">
                    <dl>
                    {foreach name=Variationen from=$Artikel->$VariationsSource key=i item=Variation}
                    {strip}
                        {block name='et-productdetails-variation-label'}
                        {* Do not show the type here for selectboxes, as they have the type inside the box *}
                        {if $Variation->cTyp !== 'SELECTBOX' || ($Variation->cTyp === 'SELECTBOX' && $showVariationNameOnSelect)}
                            <dt>{$Variation->cName}&nbsp;
                                {if $Variation->cTyp === 'IMGSWATCHES'}
                                    <span class="swatches-selected text-success" data-id="{$Variation->kEigenschaft}">
                                    {foreach $Variation->Werte as $variationValue}
                                        {if isset($oVariationKombi_arr[$variationValue->kEigenschaft])
                                            && in_array($variationValue->kEigenschaftWert, $oVariationKombi_arr[$variationValue->kEigenschaft])}
                                            {$variationValue->cName}
                                            {break}
                                        {/if}
                                    {/foreach}
                                    </span>
                                {/if}
                            </dt>
                        {/if}
                        {/block}
                        <dd class="form-group text-left-util">
                            {if $Variation->cTyp === 'SELECTBOX'}
                                {block name='productdetails-variation-select-outer'}
                                <select class="form-control custom-select selectpicker" data-size="10" title="{block name="et-productdetails-variation-selectbox-title-attribute"}{if $Variation->cTyp === 'SELECTBOX' && $showVariationNameOnSelect}{lang key="pleaseChooseVariation" section="productDetails"}{else}{$Variation->cName}{/if}{/block}" name="eigenschaftwert[{$Variation->kEigenschaft}]" {if !$showMatrix}required{/if}>
                                    {foreach name=Variationswerte from=$Variation->Werte key=y item=Variationswert}
                                        {assign var=bSelected value=false}
                                        {if isset($oVariationKombi_arr[$Variationswert->kEigenschaft])}
                                            {assign var=bSelected value=in_array($Variationswert->kEigenschaftWert, $oVariationKombi_arr[$Variationswert->kEigenschaft])}
                                        {/if}
                                        {if isset($oEigenschaftWertEdit_arr[$Variationswert->kEigenschaft])}
                                            {assign var=bSelected value=$Variationswert->kEigenschaftWert == $oEigenschaftWertEdit_arr[$Variationswert->kEigenschaft]->kEigenschaftWert}
                                        {/if}
                                        {if ($Artikel->kVaterArtikel > 0 || $Artikel->nIstVater == 1) && $Artikel->nVariationOhneFreifeldAnzahl == 1 &&
                                        $Einstellungen.global.artikeldetails_variationswertlager == 3 &&
                                        !empty($Artikel->VariationenOhneFreifeld[$i]->Werte[$y]->nNichtLieferbar) && $Artikel->VariationenOhneFreifeld[$i]->Werte[$y]->nNichtLieferbar == 1}
                                        {else}
                                            {block name='productdetails-variation-select-inner'}
                                                {block name='productdetails-variation-select-include-variation-value'}
                                                    {include file='productdetails/variation_value.tpl' assign='cVariationsWert'}
                                                {/block}
                                                <option value="{$Variationswert->kEigenschaftWert}" class="variation"
                                                        data-content="<span data-value='{$Variationswert->kEigenschaftWert}'>{trim($cVariationsWert)|escape:'html'}
                                                    {if $Variationswert->notExists} <span class='badge badge-danger badge-not-available'>{lang key='notAvailableInSelection'}</span>
                                                    {elseif !$Variationswert->inStock}<span class='badge badge-danger badge-not-available'>{lang key='ampelRot'}</span>{/if}</span>"
                                                        data-type="option"
                                                        data-original="{$Variationswert->cName}"
                                                        data-key="{$Variationswert->kEigenschaft}"
                                                        data-value="{$Variationswert->kEigenschaftWert}"
                                                        {if !empty($Variationswert->getImage(\JTL\Media\Image::SIZE_XS))}
                                                            data-list='{prepare_image_details item=$Variationswert json=true}'
                                                            data-title='{$Variationswert->cName}'
                                                        {/if}
                                                        {if isset($Variationswert->oVariationsKombi)}
                                                            data-ref="{$Variationswert->oVariationsKombi->kArtikel}"
                                                        {/if}
                                                        {if $bSelected} selected="selected"{/if}>
                                                    {trim($cVariationsWert)|escape:'html'}
                                                </option>
                                            {/block}
                                        {/if}
                                    {/foreach}
                                </select>
                                {/block}
                            {elseif $Variation->cTyp === 'RADIO'}
                                {block name='productdetails-variation-radio-outer'}
                                    {foreach name=Variationswerte from=$Variation->Werte key=y item=Variationswert}
                                        {assign var=bSelected value=false}
                                        {if isset($oVariationKombi_arr[$Variationswert->kEigenschaft])}
                                           {assign var=bSelected value=in_array($Variationswert->kEigenschaftWert, $oVariationKombi_arr[$Variationswert->kEigenschaft])}
                                        {/if}
                                        {if isset($oEigenschaftWertEdit_arr[$Variationswert->kEigenschaft])}
                                            {assign var=bSelected value=$Variationswert->kEigenschaftWert == $oEigenschaftWertEdit_arr[$Variationswert->kEigenschaft]->kEigenschaftWert}
                                        {/if}
                                        {if ($Artikel->kVaterArtikel > 0 || $Artikel->nIstVater == 1) && $Artikel->nVariationOhneFreifeldAnzahl == 1 &&
                                        $Einstellungen.global.artikeldetails_variationswertlager == 3 &&
                                        !empty($Artikel->VariationenOhneFreifeld[$i]->Werte[$y]->nNichtLieferbar) && $Artikel->VariationenOhneFreifeld[$i]->Werte[$y]->nNichtLieferbar == 1}
                                        {else}
                                            {block name='productdetails-variation-radio-inner'}
                                                <div class="custom-control custom-radio">
                                                    <input type="radio"
                                                        class="custom-control-input"
                                                        name="eigenschaftwert[{$Variation->kEigenschaft}]"
                                                        id="{if isset($smallView) && $smallView}a-{$Artikel->kArtikel}{/if}vt{$Variationswert->kEigenschaftWert}"
                                                        value="{$Variationswert->kEigenschaftWert}"
                                                        {if $bSelected}checked="checked"{/if}
                                                        {if $smarty.foreach.Variationswerte.index === 0 && !$showMatrix} required{/if}
                                                    >
                                                    <label class="variation custom-control-label d-flex" for="{if isset($smallView) && $smallView}a-{$Artikel->kArtikel}{/if}vt{$Variationswert->kEigenschaftWert}"
                                                           data-type="radio"
                                                           data-original="{$Variationswert->cName}"
                                                           data-key="{$Variationswert->kEigenschaft}"
                                                           data-value="{$Variationswert->kEigenschaftWert}"
                                                           {if !empty($Variationswert->getImage(\JTL\Media\Image::SIZE_XS))}
                                                                data-list='{prepare_image_details item=$Variationswert json=true}'
                                                                data-title='{$Variationswert->cName}{if $Variationswert->notExists} - {lang key='notAvailableInSelection'}{elseif !$Variationswert->inStock} - {lang key='ampelRot'}{/if}'
                                                           {/if}
                                                           {if !$Variationswert->inStock}
                                                                data-stock="out-of-stock"
                                                           {/if}
                                                           {if isset($Variationswert->oVariationsKombi)}
                                                                data-ref="{$Variationswert->oVariationsKombi->kArtikel}"
                                                           {/if}>
                                                        {block name='productdetails-variation-radio-include-variation-value'}
                                                            {include file="productdetails/variation_value.tpl" badgeRight=true}
                                                            {if $Variationswert->notExists}
                                                                <span class="badge badge-danger badge-not-available">{lang key='notAvailableInSelection'}</span>
                                                            {elseif !$Variationswert->inStock}
                                                                <span class="badge badge-danger badge-not-available">{lang key='ampelRot'}</span>
                                                            {/if}
                                                        {/block}
                                                    </label>
                                                </div>
                                            {/block}
                                        {/if}
                                    {/foreach}
                                {/block}
                            {elseif $Variation->cTyp === 'IMGSWATCHES'}
                                {block name='productdetails-variation-swatch-outer'}
                                    <div class="form-row swatches {$Variation->cTyp|lower}">
                                        {foreach name=Variationswerte from=$Variation->Werte key=y item=Variationswert}
                                            {assign var=bSelected value=false}
                                            {assign var=hasImage value=!empty($Variationswert->getImage(\JTL\Media\Image::SIZE_XS))
                                                && strpos($Variationswert->getImage(\JTL\Media\Image::SIZE_XS), $smarty.const.BILD_KEIN_ARTIKELBILD_VORHANDEN) === false}
                                            {if isset($oVariationKombi_arr[$Variationswert->kEigenschaft])}
                                                {assign var=bSelected value=in_array($Variationswert->kEigenschaftWert, $oVariationKombi_arr[$Variationswert->kEigenschaft])}
                                            {/if}
                                            {if isset($oEigenschaftWertEdit_arr[$Variationswert->kEigenschaft])}
                                                {assign var=bSelected value=($Variationswert->kEigenschaftWert == $oEigenschaftWertEdit_arr[$Variationswert->kEigenschaft]->kEigenschaftWert)}
                                            {/if}
                                            {if ($Artikel->kVaterArtikel > 0 || $Artikel->nIstVater == 1) && $Artikel->nVariationOhneFreifeldAnzahl == 1 &&
                                            $Einstellungen.global.artikeldetails_variationswertlager == 3 &&
                                            !empty($Artikel->VariationenOhneFreifeld[$i]->Werte[$y]->nNichtLieferbar) && $Artikel->VariationenOhneFreifeld[$i]->Werte[$y]->nNichtLieferbar == 1}
                                                {* /do nothing *}
                                            {else}
                                                {block name='productdetails-variation-swatch-inner'}
                                                <div class="col col-auto">
                                                    <label class="variation swatches {if $hasImage}swatches-image{else}swatches-text{/if} {if $bSelected}active{/if} {if $Variationswert->notExists}swatches-not-in-stock not-available{elseif !$Variationswert->inStock}swatches-sold-out not-available{/if}"
                                                            data-type="swatch"
                                                            data-original="{$Variationswert->cName}"
                                                            data-key="{$Variationswert->kEigenschaft}"
                                                            data-value="{$Variationswert->kEigenschaftWert}"
                                                            for="{if isset($smallView) && $smallView}a-{$Artikel->kArtikel}{/if}vt{$Variationswert->kEigenschaftWert}"
                                                            {if !empty($Variationswert->getImage(\JTL\Media\Image::SIZE_XS))}
                                                                data-list='{prepare_image_details item=$Variationswert json=true}'
                                                            {/if}
                                                            {if $Variationswert->notExists}
                                                                title="{lang key='notAvailableInSelection'}"
                                                                data-title="{$Variationswert->cName} - {lang key='notAvailableInSelection'}"
                                                                data-toggle="tooltip"
                                                            {elseif $Variationswert->inStock}
                                                                data-title="{$Variationswert->cName}"
                                                            {else}
                                                                title="{lang key='ampelRot'}"
                                                                data-title="{$Variationswert->cName} - {lang key='ampelRot'}"
                                                                data-toggle="tooltip"
                                                                data-stock="out-of-stock"
                                                            {/if}
                                                            {if isset($Variationswert->oVariationsKombi)}
                                                                data-ref="{$Variationswert->oVariationsKombi->kArtikel}"
                                                            {/if}>
                                                        <input type="radio"
                                                               class="control-hidden"
                                                               name="eigenschaftwert[{$Variation->kEigenschaft}]"
                                                               id="{if isset($smallView) && $smallView}a-{$Artikel->kArtikel}{/if}vt{$Variationswert->kEigenschaftWert}"
                                                               value="{$Variationswert->kEigenschaftWert}"
                                                               aria-label="{$Variationswert->cName}"
                                                               {if $bSelected}checked="checked"{/if}
                                                               {if $smarty.foreach.Variationswerte.index === 0 && !$showMatrix} required{/if}
                                                               />
                                                            {block name="et-productdetails-swatch-image"}
                                                                {if $hasImage}
                                                                    {include file='snippets/image.tpl' item=$Variationswert srcSize='xs'}
                                                                {else}
                                                                    {$Variationswert->cName}
                                                                {/if}
                                                            {/block}
                                                        {block name='productdetails-variation-swatch-include-variation-value'}
                                                            {include file='productdetails/variation_value.tpl' hideVariationValue=true}
                                                        {/block}
                                                    </label>
                                                </div>
                                                {/block}
                                            {/if}
                                        {/foreach}
                                    </div>
                                {/block}
                            {elseif $Variation->cTyp === 'TEXTSWATCHES'}
                                {block name='productdetails-variation-textswatch-outer'}
                                    <div class="form-row swatches {$Variation->cTyp|lower}">
                                        {foreach name=Variationswerte from=$Variation->Werte key=y item=Variationswert}
                                            {assign var=bSelected value=false}
                                            {if isset($oVariationKombi_arr[$Variationswert->kEigenschaft])}
                                                {assign var=bSelected value=in_array($Variationswert->kEigenschaftWert, $oVariationKombi_arr[$Variationswert->kEigenschaft])}
                                            {/if}
                                            {if isset($oEigenschaftWertEdit_arr[$Variationswert->kEigenschaft])}
                                                {assign var=bSelected value=($Variationswert->kEigenschaftWert == $oEigenschaftWertEdit_arr[$Variationswert->kEigenschaft]->kEigenschaftWert)}
                                            {/if}
                                            {if ($Artikel->kVaterArtikel > 0 || $Artikel->nIstVater == 1) && $Artikel->nVariationOhneFreifeldAnzahl == 1 &&
                                            $Einstellungen.global.artikeldetails_variationswertlager == 3 &&
                                            !empty($Artikel->VariationenOhneFreifeld[$i]->Werte[$y]->nNichtLieferbar) && $Artikel->VariationenOhneFreifeld[$i]->Werte[$y]->nNichtLieferbar == 1}
                                                {* /do nothing *}
                                            {else}
                                                {block name='productdetails-variation-textswatch-inner'}
                                                <div class="col col-auto">
                                                    <label class="variation swatches swatches-text{if $bSelected} active{/if} {if $Variationswert->notExists}swatches-not-in-stock{elseif !$Variationswert->inStock}swatches-sold-out{/if}"
                                                            data-type="swatch"
                                                            data-original="{$Variationswert->cName}"
                                                            data-key="{$Variationswert->kEigenschaft}"
                                                            data-value="{$Variationswert->kEigenschaftWert}"
                                                            for="{if isset($smallView) && $smallView}a-{$Artikel->kArtikel}{/if}vt{$Variationswert->kEigenschaftWert}"
                                                            {if !empty($Variationswert->getImage(\JTL\Media\Image::SIZE_XS))}
                                                                data-list='{prepare_image_details item=$Variationswert json=true}'
                                                            {/if}
                                                            {if $Variationswert->notExists}
                                                                title="{lang key='notAvailableInSelection'}"
                                                                data-title="{$Variationswert->cName} - {lang key='notAvailableInSelection'}"
                                                                data-toggle="tooltip"
                                                            {elseif $Variationswert->inStock}
                                                                data-title="{$Variationswert->cName}"
                                                            {else}
                                                                title="{lang key='ampelRot'}"
                                                                data-title="{$Variationswert->cName} - {lang key='ampelRot'}"
                                                                data-toggle="tooltip"
                                                                data-stock="out-of-stock"
                                                            {/if}
                                                            {if isset($Variationswert->oVariationsKombi)}
                                                                data-ref="{$Variationswert->oVariationsKombi->kArtikel}"
                                                            {/if}>
                                                        <input type="radio"
                                                               class="control-hidden"
                                                               name="eigenschaftwert[{$Variation->kEigenschaft}]"
                                                               id="{if isset($smallView) && $smallView}a-{$Artikel->kArtikel}{/if}vt{$Variationswert->kEigenschaftWert}"
                                                               value="{$Variationswert->kEigenschaftWert}"
                                                               {if $bSelected}checked="checked"{/if}
                                                               {if $smarty.foreach.Variationswerte.index === 0 && !$showMatrix} required{/if}
                                                               />
                                                        <span class="label-variation">
                                                            {$Variationswert->cName}
                                                        </span>
                                                        {block name='productdetails-variation-textswatch-include-variation-value'}
                                                            {include file='productdetails/variation_value.tpl' hideVariationValue=true}
                                                        {/block}
                                                    </label>
                                                </div>
                                                {/block}
                                            {/if}
                                        {/foreach}
                                    </div>
                                {/block}
                            {elseif $Variation->cTyp === 'FREIFELD' || $Variation->cTyp === 'PFLICHT-FREIFELD'}
                                {block name='productdetails-variation-info-variation-text'}
                                    <label for="vari-{$Variation->kEigenschaft}" class="sr-only">{$Variation->cName}</label>
                                    <input id="vari-{$Variation->kEigenschaft}" name="{'eigenschaftwert['|cat:$Variation->kEigenschaft|cat:']'}"
                                        class="form-control"
                                        value="{$oEigenschaftWertEdit_arr[$Variation->kEigenschaft]->cEigenschaftWertNameLocalized|default:''}"
                                        data-key="{$Variation->kEigenschaft}"
                                        maxlength="255"
                                        {if $Variation->cTyp === 'PFLICHT-FREIFELD'}required{/if}
                                    />
                                {/block}
                            {/if}
                        </dd>
                    {/strip}
                    {/foreach}
                    </dl>
                </div>
            </div>
        {/block}
    {/if}
{/block}
