public function startForm()
 {
     $prefix = "s" . $this->prefix;
     $stream_number = $this->prefix;
     $setting = $this->setting;
     $stream_types = $this->stream_types;
     $stream_bitrates = $this->stream_bitrates;
     $this->setIsArray(true);
     $this->setElementsBelongTo($prefix . "_data");
     $disable_all = Application_Model_Preference::GetEnableStreamConf() == "false";
     $enable = new Zend_Form_Element_Checkbox('enable');
     $enable->setLabel(_('Enabled:'))->setValue($setting[$prefix . '_enable'] == 'true' ? 1 : 0)->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $enable->setAttrib("disabled", "disabled");
     }
     $this->addElement($enable);
     $type = new Zend_Form_Element_Select('type');
     $type->setLabel(_("Stream Type:"))->setMultiOptions($stream_types)->setValue(isset($setting[$prefix . '_type']) ? $setting[$prefix . '_type'] : 0)->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $type->setAttrib("disabled", "disabled");
     }
     $this->addElement($type);
     $bitrate = new Zend_Form_Element_Select('bitrate');
     $bitrate->setLabel(_("Bit Rate:"))->setMultiOptions($stream_bitrates)->setValue(isset($setting[$prefix . '_bitrate']) ? $setting[$prefix . '_bitrate'] : 0)->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $bitrate->setAttrib("disabled", "disabled");
     }
     $this->addElement($bitrate);
     $output = new Zend_Form_Element_Select('output');
     $output->setLabel(_("Service Type:"))->setMultiOptions(array("icecast" => "Icecast", "shoutcast" => "SHOUTcast"))->setValue(isset($setting[$prefix . '_output']) ? $setting[$prefix . '_output'] : "icecast")->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $output->setAttrib("disabled", "disabled");
     }
     $this->addElement($output);
     $channels = new Zend_Form_Element_Select('channels');
     $channels->setLabel(_("Channels:"))->setMultiOptions(array("mono" => _("1 - Mono"), "stereo" => _("2 - Stereo")))->setValue(isset($setting[$prefix . '_channels']) ? $setting[$prefix . '_channels'] : "stereo")->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $channels->setAttrib("disabled", "disabled");
     }
     $this->addElement($channels);
     $host = new Zend_Form_Element_Text('host');
     $host->setLabel(_("Server"))->setValue(isset($setting[$prefix . '_host']) ? $setting[$prefix . '_host'] : "")->setValidators(array(array('regex', false, array('/^[0-9a-zA-Z-_.]+$/', 'messages' => _('Invalid character entered')))))->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $host->setAttrib("disabled", "disabled");
     }
     $host->setAttrib('alt', 'domain');
     $this->addElement($host);
     $port = new Zend_Form_Element_Text('port');
     $port->setLabel(_("Port"))->setValue(isset($setting[$prefix . '_port']) ? $setting[$prefix . '_port'] : "")->setValidators(array(new Zend_Validate_Between(array('min' => 0, 'max' => 99999))))->addValidator('regex', false, array('pattern' => '/^[0-9]+$/', 'messages' => array('regexNotMatch' => _('Only numbers are allowed.'))))->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $port->setAttrib("disabled", "disabled");
     }
     $this->addElement($port);
     $pass = new Zend_Form_Element_Text('pass');
     $pass->setLabel(_("Password"))->setValue(isset($setting[$prefix . '_pass']) ? $setting[$prefix . '_pass'] : "")->setValidators(array(array('regex', false, array('/^[^ &<>]+$/', 'messages' => _('Invalid character entered')))))->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $pass->setAttrib("disabled", "disabled");
     }
     $pass->setAttrib('alt', 'regular_text');
     $this->addElement($pass);
     $genre = new Zend_Form_Element_Text('genre');
     $genre->setLabel(_("Genre"))->setValue(isset($setting[$prefix . '_genre']) ? $setting[$prefix . '_genre'] : "")->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $genre->setAttrib("disabled", "disabled");
     }
     $this->addElement($genre);
     $url = new Zend_Form_Element_Text('url');
     $url->setLabel(_("URL"))->setValue(isset($setting[$prefix . '_url']) ? $setting[$prefix . '_url'] : "")->setValidators(array(array('regex', false, array('/^[0-9a-zA-Z\\-_.:\\/]+$/', 'messages' => _('Invalid character entered')))))->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $url->setAttrib("disabled", "disabled");
     }
     $url->setAttrib('alt', 'url');
     $this->addElement($url);
     $name = new Zend_Form_Element_Text('name');
     $name->setLabel(_("Name"))->setValue(isset($setting[$prefix . '_name']) ? $setting[$prefix . '_name'] : "")->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $name->setAttrib("disabled", "disabled");
     }
     $this->addElement($name);
     $description = new Zend_Form_Element_Text('description');
     $description->setLabel(_("Description"))->setValue(isset($setting[$prefix . '_description']) ? $setting[$prefix . '_description'] : "")->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $description->setAttrib("disabled", "disabled");
     }
     $this->addElement($description);
     $mount = new Zend_Form_Element_Text('mount');
     $mount->setLabel(_("Mount Point"))->setValue(isset($setting[$prefix . '_mount']) ? $setting[$prefix . '_mount'] : "")->setValidators(array(array('regex', false, array('/^[^ &<>]+$/', 'messages' => _('Invalid character entered')))))->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $mount->setAttrib("disabled", "disabled");
     }
     $mount->setAttrib('alt', 'regular_text');
     $this->addElement($mount);
     $user = new Zend_Form_Element_Text('user');
     $user->setLabel(_("Username"))->setValue(isset($setting[$prefix . '_user']) ? $setting[$prefix . '_user'] : "")->setValidators(array(array('regex', false, array('/^[^ &<>]+$/', 'messages' => _('Invalid character entered')))))->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $user->setAttrib("disabled", "disabled");
     }
     $user->setAttrib('alt', 'regular_text');
     $this->addElement($user);
     $adminUser = new Zend_Form_Element_Text('admin_user');
     $adminUser->setLabel(_("Admin User"))->setValue(Application_Model_StreamSetting::getAdminUser($prefix))->setValidators(array(array('regex', false, array('/^[^ &<>]+$/', 'messages' => _('Invalid character entered')))))->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $adminUser->setAttrib("disabled", "disabled");
     }
     $adminUser->setAttrib('alt', 'regular_text');
     $this->addElement($adminUser);
     $adminPass = new Zend_Form_Element_Password('admin_pass');
     $adminPass->setLabel(_("Admin Password"))->setValue(Application_Model_StreamSetting::getAdminPass($prefix))->setValidators(array(array('regex', false, array('/^[^ &<>]+$/', 'messages' => _('Invalid character entered')))))->setDecorators(array('ViewHelper'));
     if ($disable_all) {
         $adminPass->setAttrib("disabled", "disabled");
     }
     $adminPass->setAttrib('alt', 'regular_text');
     $this->addElement($adminPass);
     $liquidsopa_error_msg = '<div class="stream-status status-info"><h3>' . _('Getting information from the server...') . '</h3></div>';
     $this->setDecorators(array(array('ViewScript', array('viewScript' => 'form/stream-setting-form.phtml', "stream_number" => $stream_number, "enabled" => $enable->getValue(), "liquidsoap_error_msg" => $liquidsopa_error_msg))));
 }