#set( $labelValue = $i18n.getText($parameters.label) )
#if( !$labelValue )
    #set( $labelValue = $parameters.label )
#end

<div #if ($stack.findValue("editMode") == false) class="viewMode"#end>
<label for="$!parameters.id">${labelValue}:</label>

#if ($editMode == false)
   <span #if($parameters.id)id="$!generalUtil.htmlEncode($parameters.id)"#end class="field-value">
        #if (!$parameters.hideValue)
            #set( $items = $parameters.list )
            #if( $items )
                #if ($parameters.nameValue)
                    #foreach( $item in $items )
                        $stack.push($item)

                        #if( $parameters.listKey )
                            #set( $itemKey = $stack.findValue($parameters.listKey) )
                        #else
                            #set( $itemKey = $item )
                        #end

                        #if( $parameters.listValue )
                            #set( $itemValue  = $stack.findValue($parameters.listValue) )
                        #else
                            #set( $itemValue = $item )
                        #end

                        #if( $tag.contains($parameters.nameValue, $itemKey) || $tag.contains($parameters.selectedValue, $itemKey) )
                            $!generalUtil.htmlEncode($itemValue)
                            #set ($trash = $stack.pop())
                        #end
                    #end
                #else
                    $items.get(0).getValue()
                #end
            #end
        #end
        #if ($parameters.comment)
            $parameters.comment
        #end
    </span>
#else
    <select name="$!parameters.name"#*
    *##if ($parameters.size) size="$parameters.size" #end#*
    *##if ($parameters.disabled) disabled="disabled" #end#*
    *##if ($parameters.tabindex) tabindex="$parameters.tabindex" #end#*
    *##if ($parameters.onchange) onchange="$parameters.onchange" #end#*
    *##if ($parameters.id) id="$parameters.id" #end#*
    *##if ($parameters.multiple) multiple="multiple" #end>
    #if ($parameters.headerKey && $parameters.headerValue)
        <option value="$!webwork.htmlEncode($parameters.headerKey)" #if( $tag.contains($parameters.nameValue, $parameters.headerKey) )selected#end>$!webwork.htmlEncode($parameters.headerValue)</option>
    #end
    #if ($parameters.emptyOption)
        <option value=""></option>
    #end
    #set( $items = $parameters.list )
    #if( $items )
        #foreach( $item in $items )
            $stack.push($item)

            #if( $parameters.listKey )
                #set( $itemKey = $stack.findValue($parameters.listKey) )
            #else
                #set( $itemKey = $item )
            #end

            #if( $parameters.listValue )
                #set( $itemValue  = $stack.findValue($parameters.listValue) )
            #else
                #set( $itemValue = $item )
            #end

            <option value="$!webwork.htmlEncode($itemKey)"
                #if( $tag.contains($parameters.nameValue, $itemKey) || $tag.contains($parameters.selectedValue, $itemKey) )selected="selected"#end
            >$!webwork.htmlEncode($itemValue)</option>

            #set ($trash = $stack.pop())
        #end
    #end
    </select>
#end
#if ($parameters.description)
    <span class="description">$parameters.description</span>
#end
</div>