function getActionText($_sender, $_action, $break = false, $sel_message = null)
{
    if (!empty($_action->Value)) {
        return $_action->Value;
    }
    $available = array(Server::$Operators[$_sender->UserSystemId]->PredefinedMessages, Server::$Groups[$_sender->GroupId]->PredefinedMessages);
    foreach ($available as $list) {
        foreach ($list as $message) {
            if ($message->IsDefault && empty(VisitorMonitoring::$Visitor->Language) || VisitorMonitoring::$Visitor->Language == $message->LangISO) {
                $sel_message = $message;
                $break = true;
                break;
            } else {
                if ($message->IsDefault && empty($_action->Value)) {
                    $sel_message = $message;
                }
            }
        }
        if ($break) {
            break;
        }
    }
    if ($_action->Type == 2 && $sel_message != null) {
        $_action->Value = $sel_message->InvitationAuto;
    } else {
        if ($_action->Type == 4) {
            $_action->Value = $sel_message->WebsitePushAuto;
            $_action->Value = str_replace("%target_url%", $_action->WebsitePush->TargetURL, $_action->Value);
        }
    }
    $_action->Value = Server::$Groups[$_sender->GroupId]->TextReplace($_action->Value, $message->LangISO);
    $_action->Value = VisitorMonitoring::$Visitor->TextReplace($_action->Value);
    $_action->Value = VisitorMonitoring::$Browser->TextReplace($_action->Value);
    $_action->Value = Server::$Operators[$_sender->UserSystemId]->TextReplace($_action->Value);
    $_action->Value = Configuration::Replace($_action->Value);
    return $_action->Value;
}
 static function GetSubject($_subject, $_email, $_username, $_group, $_chatid, $_company, $_phone, $_ip, $_question, $_language, $_customs = null)
 {
     $_subject = Configuration::Replace($_subject);
     $_subject = str_replace(array("%external_name%", "%USERNAME%"), $_username, $_subject);
     $_subject = str_replace(array("%external_email%", "%USEREMAIL%"), $_email, $_subject);
     $_subject = str_replace(array("%external_company%", "%USERCOMPANY%"), $_company, $_subject);
     $_subject = str_replace("%external_phone%", $_phone, $_subject);
     $_subject = str_replace("%external_ip%", $_ip, $_subject);
     $_subject = str_replace(array("%question%", "%USERQUESTION%", "%mailtext%"), $_question, $_subject);
     $_subject = str_replace(array("%group_name%", "%group_id%", "%TARGETGROUP%"), $_group, $_subject);
     $_subject = str_replace("%group_description%", isset(Server::$Groups[$_group]) ? Server::$Groups[$_group]->GetDescription($_language) : $_group, $_subject);
     $_subject = str_replace(array("%chat_id%", "%CHATID%"), $_chatid, $_subject);
     foreach (Server::$Inputs as $index => $input) {
         if ($input->Active && $input->Custom) {
             if ($input->Type == "CheckBox") {
                 $_subject = str_replace("%custom" . $index . "%", !empty($_customs[$index]) ? LocalizationManager::$TranslationStrings["client_yes"] : LocalizationManager::$TranslationStrings["client_no"], $_subject);
             } else {
                 if (!empty($_customs[$index])) {
                     $_subject = str_replace("%custom" . $index . "%", $input->GetClientValue($_customs[$index]), $_subject);
                 } else {
                     $_subject = str_replace("%custom" . $index . "%", "", $_subject);
                 }
             }
         } else {
             $_subject = str_replace("%custom" . $index . "%", "", $_subject);
         }
     }
     return Server::Replace(str_replace("\n", "", $_subject), true, false);
 }
 function ShowGroupQueueInformation($_visitor, $_shown)
 {
     $pdm = PredefinedMessage::GetByLanguage(Server::$Groups[$this->DesiredChatGroup]->PredefinedMessages, $_visitor != null ? $_visitor->Language : "");
     if ($pdm != null && !empty($pdm->QueueMessage) && time() - $this->FirstActive > $pdm->QueueMessageTime && !$_shown) {
         $message = Server::$Groups[$this->DesiredChatGroup]->TextReplace($pdm->QueueMessage, $_visitor->Language);
         $message = $_visitor->TextReplace($message);
         $message = $this->TextReplace($message);
         $message = Configuration::Replace($message);
         $this->QueueMessageShown = true;
         return $message;
     }
     return "";
 }