public function processWindow($window, $id, $ctrl, $param1, $param2)
 {
     global $neardBs, $neardBins, $neardLang, $neardWinbinder;
     $serverName = $neardWinbinder->getText($this->wbInputServerName[WinBinder::CTRL_OBJ]);
     $documentRoot = $neardWinbinder->getText($this->wbInputDocRoot[WinBinder::CTRL_OBJ]);
     switch ($id) {
         case $this->wbInputServerName[WinBinder::CTRL_ID]:
             $neardWinbinder->setText($this->wbLabelExp[WinBinder::CTRL_OBJ], sprintf($neardLang->getValue(Lang::VHOST_EXP_LABEL), $serverName, $documentRoot));
             $neardWinbinder->setEnabled($this->wbBtnSave[WinBinder::CTRL_OBJ], empty($serverName) ? false : true);
             break;
         case $this->wbBtnDocRoot[WinBinder::CTRL_ID]:
             $documentRoot = $neardWinbinder->sysDlgPath($window, $neardLang->getValue(Lang::VHOST_DOC_ROOT_PATH), $documentRoot);
             if ($documentRoot && is_dir($documentRoot)) {
                 $neardWinbinder->setText($this->wbInputDocRoot[WinBinder::CTRL_OBJ], $documentRoot . '\\');
                 $neardWinbinder->setText($this->wbLabelExp[WinBinder::CTRL_OBJ], sprintf($neardLang->getValue(Lang::VHOST_EXP_LABEL), $serverName, $documentRoot . '\\'));
             }
             break;
         case $this->wbBtnSave[WinBinder::CTRL_ID]:
             $neardWinbinder->setProgressBarMax($this->wbProgressBar, self::GAUGE_SAVE + 1);
             $neardWinbinder->incrProgressBar($this->wbProgressBar);
             if (is_file($neardBs->getVhostsPath() . '/' . $serverName . '.conf')) {
                 $neardWinbinder->messageBoxError(sprintf($neardLang->getValue(Lang::VHOST_ALREADY_EXISTS), $serverName), $neardLang->getValue(Lang::ADD_VHOST_TITLE));
                 $neardWinbinder->resetProgressBar($this->wbProgressBar);
                 break;
             }
             if (Batch::genSslCertificate($serverName) && file_put_contents($neardBs->getVhostsPath() . '/' . $serverName . '.conf', $neardBins->getApache()->getVhostContent($serverName, $documentRoot)) !== false) {
                 $neardWinbinder->incrProgressBar($this->wbProgressBar);
                 Util::addWindowsHost('127.0.0.1', $serverName);
                 $neardWinbinder->incrProgressBar($this->wbProgressBar);
                 $neardBins->getApache()->getService()->restart();
                 $neardWinbinder->incrProgressBar($this->wbProgressBar);
                 $neardWinbinder->messageBoxInfo(sprintf($neardLang->getValue(Lang::VHOST_CREATED), $serverName, $serverName, $documentRoot), $neardLang->getValue(Lang::ADD_VHOST_TITLE));
                 $neardWinbinder->destroyWindow($window);
             } else {
                 $neardWinbinder->messageBoxError($neardLang->getValue(Lang::VHOST_CREATED_ERROR), $neardLang->getValue(Lang::ADD_VHOST_TITLE));
                 $neardWinbinder->resetProgressBar($this->wbProgressBar);
             }
             break;
         case IDCLOSE:
         case $this->wbBtnCancel[WinBinder::CTRL_ID]:
             $neardWinbinder->destroyWindow($window);
             break;
     }
 }
 public function processWindow($window, $id, $ctrl, $param1, $param2)
 {
     global $neardBs, $neardBins, $neardLang, $neardWinbinder;
     $apachePortUri = $neardBins->getApache()->getPort() != 80 ? ':' . $neardBins->getApache()->getPort() : '';
     $serverName = $neardWinbinder->getText($this->wbInputServerName[WinBinder::CTRL_OBJ]);
     $documentRoot = $neardWinbinder->getText($this->wbInputDocRoot[WinBinder::CTRL_OBJ]);
     switch ($id) {
         case $this->wbInputServerName[WinBinder::CTRL_ID]:
             $neardWinbinder->setText($this->wbLabelExp[WinBinder::CTRL_OBJ], sprintf($neardLang->getValue(Lang::VHOST_EXP_LABEL), $serverName, $documentRoot));
             $neardWinbinder->setEnabled($this->wbBtnSave[WinBinder::CTRL_OBJ], empty($serverName) ? false : true);
             break;
         case $this->wbBtnDocRoot[WinBinder::CTRL_ID]:
             $documentRoot = $neardWinbinder->sysDlgPath($window, $neardLang->getValue(Lang::VHOST_DOC_ROOT_PATH), $documentRoot);
             if ($documentRoot && is_dir($documentRoot)) {
                 $neardWinbinder->setText($this->wbInputDocRoot[WinBinder::CTRL_OBJ], $documentRoot . '\\');
                 $neardWinbinder->setText($this->wbLabelExp[WinBinder::CTRL_OBJ], sprintf($neardLang->getValue(Lang::VHOST_EXP_LABEL), $serverName, $documentRoot . '\\'));
             }
             break;
         case $this->wbBtnSave[WinBinder::CTRL_ID]:
             $neardWinbinder->setProgressBarMax($this->wbProgressBar, self::GAUGE_SAVE + 1);
             $neardWinbinder->incrProgressBar($this->wbProgressBar);
             if ($serverName != $this->initServerName && is_file($neardBs->getVhostsPath() . '/' . $serverName . '.conf')) {
                 $neardWinbinder->messageBoxError(sprintf($neardLang->getValue(Lang::VHOST_ALREADY_EXISTS), $serverName), sprintf($neardLang->getValue(Lang::EDIT_VHOST_TITLE), $this->initServerName));
                 $neardWinbinder->resetProgressBar($this->wbProgressBar);
                 break;
             }
             if ($neardBins->getApache()->removeSslCrt($this->initServerName) && @unlink($neardBs->getVhostsPath() . '/' . $this->initServerName . '.conf')) {
                 new ActionSwitchHost(array('127.0.0.1', $this->initServerName, ActionSwitchHost::SWITCH_OFF));
             }
             if (Batch::genSslCertificate($serverName) && file_put_contents($neardBs->getVhostsPath() . '/' . $serverName . '.conf', $neardBins->getApache()->getVhostContent($serverName, $documentRoot)) !== false) {
                 $neardWinbinder->incrProgressBar($this->wbProgressBar);
                 Util::addWindowsHost('127.0.0.1', $serverName);
                 $neardWinbinder->incrProgressBar($this->wbProgressBar);
                 $neardBins->getApache()->getService()->restart();
                 $neardWinbinder->incrProgressBar($this->wbProgressBar);
                 $neardWinbinder->messageBoxInfo(sprintf($neardLang->getValue(Lang::VHOST_CREATED), $serverName, $serverName, $documentRoot), sprintf($neardLang->getValue(Lang::EDIT_VHOST_TITLE), $this->initServerName));
                 $neardWinbinder->destroyWindow($window);
             } else {
                 $neardWinbinder->messageBoxError($neardLang->getValue(Lang::VHOST_CREATED_ERROR), sprintf($neardLang->getValue(Lang::EDIT_VHOST_TITLE), $this->initServerName));
                 $neardWinbinder->resetProgressBar($this->wbProgressBar);
             }
             break;
         case $this->wbBtnDelete[WinBinder::CTRL_ID]:
             $neardWinbinder->setProgressBarMax($this->wbProgressBar, self::GAUGE_DELETE + 1);
             $boxTitle = $neardLang->getValue(Lang::DELETE_VHOST_TITLE);
             $confirm = $neardWinbinder->messageBoxYesNo(sprintf($neardLang->getValue(Lang::DELETE_VHOST), $this->initServerName), $boxTitle);
             $neardWinbinder->incrProgressBar($this->wbProgressBar);
             if ($confirm) {
                 if ($neardBins->getApache()->removeSslCrt($this->initServerName) && @unlink($neardBs->getVhostsPath() . '/' . $this->initServerName . '.conf')) {
                     $neardWinbinder->incrProgressBar($this->wbProgressBar);
                     new ActionSwitchHost(array('127.0.0.1', $this->initServerName, ActionSwitchHost::SWITCH_OFF));
                     $neardWinbinder->incrProgressBar($this->wbProgressBar);
                     $neardBins->getApache()->getService()->restart();
                     $neardWinbinder->incrProgressBar($this->wbProgressBar);
                     $neardWinbinder->messageBoxInfo(sprintf($neardLang->getValue(Lang::VHOST_REMOVED), $this->initServerName), $boxTitle);
                     $neardWinbinder->destroyWindow($window);
                 } else {
                     $neardWinbinder->messageBoxError(sprintf($neardLang->getValue(Lang::VHOST_REMOVE_ERROR), $neardBs->getVhostsPath() . '/' . $this->initServerName . '.conf'), $boxTitle);
                     $neardWinbinder->resetProgressBar($this->wbProgressBar);
                 }
             }
             break;
         case IDCLOSE:
         case $this->wbBtnCancel[WinBinder::CTRL_ID]:
             $neardWinbinder->destroyWindow($window);
             break;
     }
 }