public function render(Varien_Data_Form_Element_Abstract $element)
 {
     //this is (more than) a bit nasty - but means we can use the Varien Template easily
     $fakeElement = new Varien_Object();
     $variablesToCopy = array('note', 'html_container_id', 'fieldset_html_class', 'no_display', 'type', 'value_class', 'id', 'label_html');
     array_walk($variablesToCopy, function ($dataName) use($fakeElement, $element) {
         $fakeElement->setData($dataName, $element->getDataUsingMethod($dataName));
     });
     $id = $element->getId();
     $name = $element->getName();
     $value = $element->getValue() ?: "";
     if ($value) {
         $label = htmlspecialchars(array_reduce($element->getValues(), function ($acc, $val) use($value) {
             return $acc ?: ($val['value'] == $value ? $val['label'] : $acc);
         }, ""));
     } else {
         $label = "";
     }
     $value = htmlspecialchars($value);
     $visibleInputName = preg_replace('/^(.*)\\]$/', '$1_visible_input]', $name);
     $fakeElement->setElementHtml("\n        <input id='{$id}_visible_input' name='{$visibleInputName}' type='text' value='{$label}'\n        data-original-value='{$label}' class='" . self::$_SELECTCLASSNAME . "'></input>\n        <input id='{$id}' name='{$name}' type='hidden' value='{$value}' data-original-value='{$value}'></input>\n        ");
     $this->_element = $fakeElement;
     return $this->toHtml();
 }