public function isValid($data)
 {
     $isSaas = Application_Model_Preference::GetPlanLevel() == 'disabled' ? false : true;
     $isValid = parent::isValid($data);
     if (!$isSaas) {
         $master_harbor_input_port = $data['master_harbor_input_port'];
         $dj_harbor_input_port = $data['dj_harbor_input_port'];
         if ($master_harbor_input_port == $dj_harbor_input_port && $master_harbor_input_port != "") {
             $element = $this->getElement("dj_harbor_input_port");
             $element->addError("You cannot use same port as Master DJ port.");
         }
         if ($master_harbor_input_port != "") {
             if (is_numeric($master_harbor_input_port)) {
                 if ($master_harbor_input_port != Application_Model_StreamSetting::getMasterLiveStreamPort()) {
                     $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
                     $res = socket_bind($sock, 0, $master_harbor_input_port);
                     if (!$res) {
                         $element = $this->getElement("master_harbor_input_port");
                         $element->addError("Port '{$master_harbor_input_port}' is not available.");
                         $isValid = false;
                     }
                     socket_close($sock);
                 }
             } else {
                 $isValid = false;
             }
         }
         if ($dj_harbor_input_port != "") {
             if (is_numeric($dj_harbor_input_port)) {
                 if ($dj_harbor_input_port != Application_Model_StreamSetting::getDjLiveStreamPort()) {
                     $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
                     $res = socket_bind($sock, 0, $dj_harbor_input_port);
                     if (!$res) {
                         $element = $this->getElement("dj_harbor_input_port");
                         $element->addError("Port '{$dj_harbor_input_port}' is not available.");
                         $isValid = false;
                     }
                     socket_close($sock);
                 }
             } else {
                 $isValid = false;
             }
         }
     }
     return $isValid;
 }
 public function isValid($data)
 {
     $isValid = parent::isValid($data);
     $master_harbor_input_port = $data['master_harbor_input_port'];
     $dj_harbor_input_port = $data['dj_harbor_input_port'];
     if ($master_harbor_input_port == $dj_harbor_input_port && $master_harbor_input_port != "") {
         $element = $this->getElement("dj_harbor_input_port");
         $element->addError(_("You cannot use same port as Master DJ port."));
         $isValid = false;
     }
     if ($master_harbor_input_port != "") {
         if (is_numeric($master_harbor_input_port)) {
             if ($master_harbor_input_port != Application_Model_StreamSetting::getMasterLiveStreamPort()) {
                 $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
                 try {
                     socket_bind($sock, 0, $master_harbor_input_port);
                 } catch (Exception $e) {
                     $element = $this->getElement("master_harbor_input_port");
                     $element->addError(sprintf(_("Port %s is not available"), $master_harbor_input_port));
                     $isValid = false;
                 }
                 socket_close($sock);
             }
         } else {
             $isValid = false;
         }
     }
     if ($dj_harbor_input_port != "") {
         if (is_numeric($dj_harbor_input_port)) {
             if ($dj_harbor_input_port != Application_Model_StreamSetting::getDjLiveStreamPort()) {
                 $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
                 try {
                     socket_bind($sock, 0, $dj_harbor_input_port);
                 } catch (Exception $e) {
                     $element = $this->getElement("dj_harbor_input_port");
                     $element->addError(sprintf(_("Port %s is not available"), $dj_harbor_input_port));
                     $isValid = false;
                 }
                 socket_close($sock);
             }
         } else {
             $isValid = false;
         }
     }
     return $isValid;
 }