function Generate()
 {
     foreach ($this->InternalGroups as $groupId => $group) {
         $this->XMLGroups .= "<v id=\"" . base64_encode($groupId) . "\" desc=\"" . base64_encode($group["gr_desc_array"]) . "\" created=\"" . base64_encode($group["gr_created"]) . "\"  email=\"" . base64_encode($group["gr_email"]) . "\"  extern=\"" . base64_encode($group["gr_extern"]) . "\" standard=\"" . base64_encode($group["gr_standard"]) . "\" vf=\"" . base64_encode($group["gr_vfilters"]) . "\">\r\n";
         foreach ($group["gr_predefined"] as $premes) {
             $this->XMLGroups .= $premes->GetXML();
         }
         $this->XMLGroups .= "</v>\r\n";
     }
     foreach ($this->InternalUsers as $sysId => $internaluser) {
         $b64sysId = base64_encode($sysId);
         $sessiontime = getDataSetTime($this->Caller->SessionFile);
         if (file_exists($this->InternalUsers[$sysId]->PictureFile)) {
             if ($_POST[POST_INTERN_XMLCLIP_HASH_PICTURES_PROFILE] == XML_CLIP_NULL || @filemtime($this->InternalUsers[$sysId]->PictureFile) >= $sessiontime) {
                 $this->XMLProfilePictures .= "<v os=\"" . $b64sysId . "\" content=\"" . fileToBase64($this->InternalUsers[$sysId]->PictureFile) . "\" />\r\n";
             }
         } else {
             $this->XMLProfilePictures .= "<v os=\"" . $b64sysId . "\" content=\"" . base64_encode("") . "\" />\r\n";
         }
         if ($sysId != CALLER_SYSTEM_ID && file_exists($this->InternalUsers[$sysId]->WebcamFile)) {
             if ($_POST[POST_INTERN_XMLCLIP_HASH_PICTURES_PROFILE] == XML_CLIP_NULL || @filemtime($this->InternalUsers[$sysId]->WebcamFile) >= $sessiontime) {
                 $this->XMLWebcamPictures .= "<v os=\"" . $b64sysId . "\" content=\"" . fileToBase64($this->InternalUsers[$sysId]->WebcamFile) . "\" />\r\n";
             }
         } else {
             $this->XMLWebcamPictures .= "<v os=\"" . $b64sysId . "\" content=\"" . base64_encode("") . "\" />\r\n";
         }
         $CPONL = $this->InternalUsers[CALLER_SYSTEM_ID]->Level == USER_LEVEL_ADMIN ? " cponl=\"" . base64_encode($internaluser->IsPasswordChangeNeeded() ? 1 : 0) . "\"" : "";
         $PASSWORD = SERVERSETUP ? " pass=\"" . base64_encode($this->InternalUsers[$sysId]->LoadPassword()) . "\"" : "";
         $this->XMLInternal .= "<v status=\"" . base64_encode($this->InternalUsers[$sysId]->Status) . "\" id=\"" . $b64sysId . "\" userid=\"" . base64_encode($this->InternalUsers[$sysId]->UserId) . "\" email=\"" . base64_encode($this->InternalUsers[$sysId]->Email) . "\" websp=\"" . base64_encode($this->InternalUsers[$sysId]->Webspace) . "\" name=\"" . base64_encode($this->InternalUsers[$sysId]->Fullname) . "\" desc=\"" . base64_encode($this->InternalUsers[$sysId]->Description) . "\" groups=\"" . base64_encode($this->InternalUsers[$sysId]->GroupsArray) . "\" perms=\"" . base64_encode($this->InternalUsers[$sysId]->PermissionSet) . "\" ip=\"" . base64_encode($this->InternalUsers[$sysId]->IP) . "\" level=\"" . base64_encode($this->InternalUsers[$sysId]->Level) . "\" " . $CPONL . " " . $PASSWORD . ">\r\n";
         foreach ($internaluser->PredefinedMessages as $premes) {
             $this->XMLInternal .= $premes->GetXML();
         }
         $this->XMLInternal .= "</v>\r\n";
         if ($sysId != $this->Caller->SystemId && $this->InternalUsers[$sysId]->Status != USER_STATUS_OFFLINE) {
             $this->XMLTyping .= "<v id=\"" . $b64sysId . "\" tp=\"" . base64_encode($this->Caller->SystemId === $this->InternalUsers[$sysId]->Typing ? 1 : 0) . "\" />\r\n";
         }
         if (file_exists($internaluser->VisitcardFile)) {
             if (isset($_POST[POST_INTERN_XMLCLIP_HASH_VISITCARDS]) && $_POST[POST_INTERN_XMLCLIP_HASH_VISITCARDS] == XML_CLIP_NULL || @filemtime($internaluser->VisitcardFile) >= $sessiontime) {
                 $this->XMLVisitcards .= "<v os=\"" . $b64sysId . "\" content=\"" . base64_encode(getFile($internaluser->VisitcardFile)) . "\"/>\r\n";
             } else {
                 $this->XMLVisitcards .= "<v os=\"" . $b64sysId . "\"/>\r\n";
             }
         }
     }
 }
function getConfig()
{
    global $CONFIG;
    loadConfig();
    $skeys = array("gl_db_host", "gl_db_user", "gl_db_pass", "gl_db_name");
    $xml = "<gl_c h=\"" . base64_encode(substr(md5file(FILE_CONFIG), 0, 5)) . "\">\r\n";
    foreach ($CONFIG as $key => $val) {
        if (is_array($val)) {
            $xml .= "<conf key=\"" . base64_encode($key) . "\">\r\n";
            foreach ($val as $skey => $sval) {
                $xml .= "<sub key=\"" . base64_encode($skey) . "\">" . base64_encode($sval) . "</sub>\r\n";
            }
            $xml .= "</conf>\r\n";
        } else {
            if (!in_array($key, $skeys) || SERVERSETUP) {
                $xml .= "<conf value=\"" . base64_encode($val) . "\" key=\"" . base64_encode($key) . "\" />\r\n";
            } else {
                $xml .= "<conf value=\"" . base64_encode("") . "\" key=\"" . base64_encode($key) . "\" />\r\n";
            }
        }
    }
    if (SERVERSETUP) {
        $xml .= "<translations>\r\n";
        $files = getDirectory("./_language", "index", true);
        foreach ($files as $translation) {
            $lang = str_replace(".php", "", str_replace("lang", "", $translation));
            $xml .= "<language key=\"" . base64_encode($lang) . "\" />\r\n";
        }
        $xml .= "</translations>\r\n";
        if (@file_exists(FILE_CARRIERLOGO)) {
            $xml .= "<carrier_logo content=\"" . fileToBase64(FILE_CARRIERLOGO) . "\" />\r\n";
        }
        if (@file_exists(FILE_CARRIERHEADER)) {
            $xml .= "<carrier_header content=\"" . fileToBase64(FILE_CARRIERHEADER) . "\" />\r\n";
        }
        if (@file_exists(FILE_INVITATIONLOGO)) {
            $xml .= "<invitation_logo content=\"" . fileToBase64(FILE_INVITATIONLOGO) . "\" />\r\n";
        }
    }
    $xml .= "<php_cfg_vars post_max_size=\"" . base64_encode(cfgFileSizeToBytes(!isnull(@get_cfg_var("post_max_size")) ? get_cfg_var("post_max_size") : MAX_POST_SIZE_SAFE_MODE)) . "\" upload_max_filesize=\"" . base64_encode(cfgFileSizeToBytes(!isnull(@get_cfg_var("upload_max_filesize")) ? get_cfg_var("upload_max_filesize") : MAX_UPLOAD_SIZE_SAFE_MODE)) . "\" />\r\n";
    $xml .= "</gl_c>\r\n";
    return $xml;
}
function importButtons($_folder, $_prefix, $_connection)
{
    try {
        administrationLog("importButtons", serialize($_POST), CALLER_SYSTEM_ID);
        $buttons = getDirectory($_folder, ".php", true);
        foreach ($buttons as $button) {
            $parts = explode("_", $button);
            if (count($parts) == 3) {
                $type = $parts[0] == "overlay" ? $parts[0] : "inlay";
                $id = intval($parts[1]);
                $online = explode(".", $parts[2]);
                $online = $online[0];
                $parts = explode(".", $button);
                $itype = $parts[1];
                $_connection->Query(false, "INSERT INTO `" . DBManager::RealEscape($_prefix) . DATABASE_IMAGES . "` (`id`,`online`,`button_type`,`image_type`,`data`) VALUES ('" . DBManager::RealEscape($id) . "','" . DBManager::RealEscape($online) . "','" . DBManager::RealEscape($type) . "','" . DBManager::RealEscape($itype) . "','" . DBManager::RealEscape(fileToBase64($_folder . $button)) . "');");
            }
        }
    } catch (Exception $e) {
        logit(serialize($e));
    }
}
function getConfig()
{
    global $CONFIG;
    $xml = "<gl_c h=\"" . base64_encode(substr(md5file(FILE_CONFIG), 0, 5)) . "\">\r\n";
    foreach ($CONFIG as $key => $val) {
        if (is_array($val)) {
            $val = implode(";", $val);
        }
        $xml .= "<conf value=\"" . base64_encode($val) . "\" />\r\n";
    }
    if (SERVERSETUP && file_exists(FILE_CARRIERLOGO)) {
        $xml .= "<carrier_logo content=\"" . fileToBase64(FILE_CARRIERLOGO) . "\" />\r\n";
    }
    if (SERVERSETUP && file_exists(FILE_INVITATIONLOGO)) {
        $xml .= "<invitation_logo content=\"" . fileToBase64(FILE_INVITATIONLOGO) . "\" />\r\n";
    }
    $xml .= "<php_cfg_vars post_max_size=\"" . base64_encode(cfgFileSizeToBytes(@get_cfg_var("post_max_size") != NULL ? get_cfg_var("post_max_size") : MAX_POST_SIZE_SAFE_MODE)) . "\" upload_max_filesize=\"" . base64_encode(cfgFileSizeToBytes(@get_cfg_var("upload_max_filesize") != NULL ? get_cfg_var("upload_max_filesize") : MAX_UPLOAD_SIZE_SAFE_MODE)) . "\" />\r\n";
    $xml .= "</gl_c>\r\n";
    return $xml;
}