function SmartFormImageElement($object, $key)
 {
     $var = $object->vars[$key];
     $object_imageurl = $object->getImageDir();
     $this->XoopsFormElementTray($var['form_caption'], ' ');
     $objectArray['image'] = str_replace('{XOOPS_URL}', XOOPS_URL, $objectArray['image']);
     if ($object->getVar($key) != '' && (substr($object->getVar($key), 0, 4) == 'http' || substr($object->getVar($key), 0, 11) == '{XOOPS_URL}')) {
         $this->addElement(new XoopsFormLabel('', "<img src='" . str_replace('{XOOPS_URL}', XOOPS_URL, $object->getVar($key)) . "' alt='' /><br/><br/>"));
     } elseif ($object->getVar($key) != '') {
         $this->addElement(new XoopsFormLabel('', "<img src='" . $object_imageurl . $object->getVar($key) . "' alt='' /><br/><br/>"));
     }
     include_once SMARTOBJECT_ROOT_PATH . "class/form/elements/smartformfileuploadelement.php";
     $this->addElement(new SmartFormFileUploadElement($object, $key));
     $this->addElement(new XoopsFormLabel('<div style="height: 10px; padding-top: 8px; font-size: 80%;">' . _CO_SOBJECT_URL_FILE_DSC . '</div>', ''));
     include_once SMARTOBJECT_ROOT_PATH . "class/form/elements/smartformtextelement.php";
     include_once SMARTOBJECT_ROOT_PATH . "class/form/elements/smartformcheckelement.php";
     $this->addElement(new XoopsFormLabel('', '<br />' . _CO_SOBJECT_URL_FILE));
     $this->addElement(new SmartFormTextElement($object, 'url_' . $key));
     $this->addElement(new XoopsFormLabel('', '<br /><br />'));
     $delete_check = new SmartFormCheckElement('', 'delete_' . $key);
     $delete_check->addOption(1, '<span style="color:red;">' . _CO_SOBJECT_DELETE . '</span>');
     $this->addElement($delete_check);
 }
 function getControl($controlName, $key)
 {
     switch ($controlName) {
         case 'check':
             include_once SMARTOBJECT_ROOT_PATH . "class/form/elements/smartformcheckelement.php";
             $control = $this->targetObject->getControl($key);
             $controlObj = new SmartFormCheckElement($this->targetObject->vars[$key]['form_caption'], $key, $this->targetObject->getVar($key));
             $controlObj->addOptionArray($control['options']);
             return $controlObj;
             break;
         case 'color':
             $control = $this->targetObject->getControl($key);
             $controlObj = new XoopsFormColorPicker($this->targetObject->vars[$key]['form_caption'], $key, $this->targetObject->getVar($key));
             return $controlObj;
             break;
         case 'radio':
             $control = $this->targetObject->getControl($key);
             $controlObj = new XoopsFormRadio($this->targetObject->vars[$key]['form_caption'], $key, $this->targetObject->getVar($key));
             $controlObj->addOptionArray($control['options']);
             return $controlObj;
             break;
         case 'label':
             return new XoopsFormLabel($this->targetObject->vars[$key]['form_caption'], $this->targetObject->getVar($key));
             break;
         case 'textarea':
             return $this->getTextArea($key);
         case 'theme':
             return $this->getThemeSelect($key, $this->targetObject->vars[$key]);
         case 'theme_multi':
             return $this->getThemeSelect($key, $this->targetObject->vars[$key], true);
             break;
         case 'timezone':
             return new XoopsFormSelectTimezone($this->targetObject->vars[$key]['form_caption'], $key, $this->targetObject->getVar($key));
             break;
         case 'group':
             return new XoopsFormSelectGroup($this->targetObject->vars[$key]['form_caption'], $key, false, $this->targetObject->getVar($key, 'e'), 1, false);
             break;
         case 'group_multi':
             return new XoopsFormSelectGroup($this->targetObject->vars[$key]['form_caption'], $key, false, $this->targetObject->getVar($key, 'e'), 5, true);
             break;
             /*case 'user':
               return new XoopsFormSelectUser($this->targetObject->vars[$key]['form_caption'], $key, false, $this->targetObject->getVar($key, 'e'), 1, false);
               break;*/
         /*case 'user':
           return new XoopsFormSelectUser($this->targetObject->vars[$key]['form_caption'], $key, false, $this->targetObject->getVar($key, 'e'), 1, false);
           break;*/
         case 'user_multi':
             return new XoopsFormSelectUser($this->targetObject->vars[$key]['form_caption'], $key, false, $this->targetObject->getVar($key, 'e'), 5, true);
             break;
         case 'password':
             return new XoopsFormPassword($this->targetObject->vars[$key]['form_caption'], $key, 50, 255, $this->targetObject->getVar($key, 'e'));
             break;
         case 'country':
             return new XoopsFormSelectCountry($this->targetObject->vars[$key]['form_caption'], $key, $this->targetObject->getVar($key, 'e'));
             break;
         case 'urllink':
             include_once SMARTOBJECT_ROOT_PATH . "class/form/elements/smartformurllinkelement.php";
             return new SmartFormUrlLinkElement($this->targetObject->vars[$key]['form_caption'], $key, $this->targetObject->getUrlLinkObj($key));
             break;
         case 'richfile':
             include_once SMARTOBJECT_ROOT_PATH . "class/form/elements/smartformrichfileelement.php";
             return new SmartFormRichFileElement($this->targetObject->vars[$key]['form_caption'], $key, $this->targetObject->getFileObj($key));
             break;
         case 'section':
             include_once SMARTOBJECT_ROOT_PATH . "class/form/elements/smartformsection.php";
             return new SmartFormSection($key, $this->targetObject->vars[$key]['form_caption']);
             break;
         default:
             $classname = "SmartForm" . ucfirst($controlName) . "Element";
             if (!class_exists($classname)) {
                 if (file_exists(SMARTOBJECT_ROOT_PATH . "class/form/elements/" . strtolower($classname) . ".php")) {
                     include_once SMARTOBJECT_ROOT_PATH . "class/form/elements/" . strtolower($classname) . ".php";
                 } else {
                     // perhaps this is a control created by the module
                     $moduleName = $this->targetObject->handler->_moduleName;
                     $moduleFormElementsPath = $this->targetObject->handler->_modulePath . 'class/form/elements/';
                     $classname = ucfirst($moduleName) . ucfirst($controlName) . "Element";
                     $classFileName = strtolower($classname) . ".php";
                     if (file_exists($moduleFormElementsPath . $classFileName)) {
                         include_once $moduleFormElementsPath . $classFileName;
                     } else {
                         trigger_error($classname . " Not found", E_USER_WARNING);
                         return new XoopsFormLabel();
                         //Empty object
                     }
                 }
             }
             return new $classname($this->targetObject, $key);
             break;
     }
 }