0) { // Select the Initiate flag to check if an Administrator has initiated the user with a Support request $query = "SELECT `initiate`, `status` FROM " . $table_prefix . "requests WHERE `id` = '$request_id'"; $row = $SQL->selectquery($query); if (is_array($row)) { $request_initiate_flag = $row['initiate']; $request_status = $row['status']; if ($request_initiate_flag > 0 || $request_initiate_flag == -1) { $request_initiated = true; } if ($initiate != '') { // Update Initiate status fields to display the status of the floating popup. if ($initiate == 'Opened') { // Update request flag to show that the guest user OPENED the Online Chat Request $initiate = '-1'; } elseif ($initiate == 'Accepted') { // Update request flag to show that the guest user ACCEPTED the Online Chat Request $initiate = '-2'; } elseif ($initiate == 'Declined') { // Update request flag to show that the guest user DENIED the Online Chat Request $initiate = '-3'; } if ($url == '' && $title == '') { // Update current page time $query = "UPDATE " . $table_prefix . "requests SET `refresh` = NOW(), `initiate` = '$initiate', `status` = '$request_status' WHERE `id` = '$request_id'"; $SQL->miscquery($query); } else { // Update current page details $query = "UPDATE " . $table_prefix . "requests SET `refresh` = NOW(), `request` = NOW(), `initiate` = '$initiate', `url` = '$url', `title` = '$title', `status` = '0' WHERE `id` = '$request_id'"; $SQL->miscquery($query); } } else { if ($url == '' && $title == '') { // Update current page time $query = "UPDATE " . $table_prefix . "requests SET `refresh` = NOW(), `status` = '$request_status' WHERE `id` = '$request_id'"; $SQL->miscquery($query); } else { // Update current page details $query = "UPDATE " . $table_prefix . "requests SET `refresh` = NOW(), `request` = NOW(), `url` = '$url', `title` = '$title', `status` = '0' WHERE `id` = '$request_id'"; $SQL->miscquery($query); } } } } elseif ($request_id != '') { if ($width != '' && $height != '' && $url != '') { $page = $_REQUEST['URL']; for ($i = 0; $i < 3; $i++) { $pos = strpos($page, '/'); if ($pos === false) { $page = ''; break; } if ($i < 2) { $page = substr($page, $pos + 1); } elseif ($i >= 2) { $page = substr($page, $pos); } } if ($page == '') { $page = '/'; } $page = urldecode(trim($page)); // Update the current URL statistics within the requests tables if ($referrer == '') { $referrer = 'Direct Visit / Bookmark'; } $country = ''; if ($_SETTINGS['IP2COUNTRY'] == true) { $ip = sprintf("%u", ip2long(ip_address())); $query = "SELECT code FROM " . $table_prefix . "ip2country WHERE ip_from <= '$ip' AND ip_to >= '$ip' LIMIT 1"; $row = $SQL->selectquery($query); if (is_array($row)){ $query = "SELECT country FROM " . $table_prefix . "countries WHERE code = '" . $row['code'] . "' LIMIT 1"; $row = $SQL->selectquery($query); $country = ucwords(strtolower($row['country'])); } else { $country = 'Unavailable'; } } $query = "INSERT INTO " . $table_prefix . "requests(`ipaddress`, `useragent`, `resolution`, `country`, `datetime`, `request`, `refresh`, `url`, `title`, `referrer`, `path`, `initiate`, `status`) VALUES('$ipaddress', '$useragent', '$width x $height', '$country', NOW(), NOW(), NOW(), '$url', '$title', '$referrer', '$page', '0', '0')"; $request_id = $SQL->insertquery($query); $session = array(); $session['REQUEST'] = $request_id; $session['LANGUAGE'] = LANGUAGE_TYPE; $session['DOMAIN'] = $cookie_domain; $data = serialize($session); setCookie('LiveHelpSession', $data, false, '/', $cookie_domain, 0); header('P3P: CP=\'' . $_SETTINGS['P3P'] . '\''); } } if ($request_initiated == true) { echo('displayInitiateChat();'); } } $num_support_available_users = 0; $num_support_hidden_users = 0; $num_support_online_users = 0; $num_support_away_users = 0; $num_support_brb_users = 0; // Counts the total number of support users within each Online/Offline/BRB/Away status mode $query = "SELECT DISTINCT `status`, count(`id`) FROM " . $table_prefix . "users WHERE (UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(`refresh`)) < '$connection_timeout'"; if($department != '' && $_SETTINGS['DEPARTMENTS']) { $query .= " AND `department` LIKE '%$department%'"; } $query .= " GROUP BY `status`"; $rows = $SQL->selectall($query); if(is_array($rows)) { foreach ($rows as $key => $row) { if (is_array($row)) { switch ($row['status']) { case 0: // Offline - Hidden $num_support_hidden_users = $row['count(`id`)']; break; case 1: // Online $num_support_online_users = $row['count(`id`)']; break; case 2: // Be Right Back $num_support_brb_users = $row['count(`id`)']; break; case 3: // Away $num_support_away_users = $row['count(`id`)']; break; } } } } $num_support_available_users = $num_support_online_users + $num_support_away_users + $num_support_brb_users; // Set Be Right Back active status if all users are in BRB mode inc. Departments if ($num_support_available_users == $num_support_brb_users && $num_support_brb_users > 0 ) { $brb_mode_active = true; } else { $brb_mode_active = false; } // Set Away active status if all users are in Away mode inc. Departments if ($num_support_available_users == $num_support_away_users && $num_support_away_users > 0 ) { $away_mode_active = true; } else { $away_mode_active = false; } if($num_support_online_users > 0 || $brb_mode_active == 'true' || $away_mode_active == 'true') { // If Be Right Back Mode is to be displayed then print out... if ($brb_mode_active == true) { if ($javascript == true) { echo('changeStatus("BRB");'); exit(); } header('Content-type: image/gif'); if ($server != '' && ini_get('allow_url_fopen') == true) { $fp = @fopen('../../' . $_SETTINGS['BERIGHTBACKLOGO'], 'rb'); if ($fp == false) { header('Location: ' . $_SETTINGS['URL'] . $_SETTINGS['BERIGHTBACKLOGO']); } else { $contents = fread($fp, filesize('../../' . $_SETTINGS['BERIGHTBACKLOGO'])); echo($contents); } fclose($fp); } else { $fp = @fopen('../../' . $_SETTINGS['BERIGHTBACKLOGO'], 'rb'); if ($fp == false) { header('Location: ../../' . $_SETTINGS['BERIGHTBACKLOGO']); } else { $contents = fread($fp, filesize('../../' . $_SETTINGS['BERIGHTBACKLOGO'])); echo($contents); } fclose($fp); } exit(); } elseif ($away_mode_active == true) { if ($javascript == true) { echo('changeStatus("Away");'); exit(); } header('Content-type: image/gif'); if ($server != '' && ini_get('allow_url_fopen') == true) { $fp = @fopen('../../' . $_SETTINGS['AWAYLOGO'], 'rb'); if ($fp == false) { header('Location: ' . $_SETTINGS['URL'] . $_SETTINGS['AWAYLOGO']); } else { $contents = fread($fp, filesize('../../' . $_SETTINGS['AWAYLOGO'])); echo($contents); } fclose($fp); } else { $fp = @fopen('../../' . $_SETTINGS['AWAYLOGO'], 'rb'); if ($fp == false) { header('Location: ../../' . $_SETTINGS['AWAYLOGO']); } else { $contents = fread($fp, filesize('../../' . $_SETTINGS['AWAYLOGO'])); echo($contents); } fclose($fp); } exit(); } else { if ($javascript == true) { echo('changeStatus("Online");'); exit(); } header('Content-type: image/gif'); if ($server != '' && ini_get('allow_url_fopen') == true) { $fp = @fopen('../../' . $_SETTINGS['ONLINELOGO'], 'rb'); if ($fp == false) { header('Location: ' . $_SETTINGS['URL'] . $_SETTINGS['ONLINELOGO']); } else { $contents = fread($fp, filesize('../../' . $_SETTINGS['ONLINELOGO'])); echo($contents); } fclose($fp); } else { $fp = @fopen('../../' . $_SETTINGS['ONLINELOGO'], 'rb'); if ($fp == false) { header('Location: ../../' . $_SETTINGS['ONLINELOGO']); } else { $contents = fread($fp, filesize('../../' . $_SETTINGS['ONLINELOGO'])); echo($contents); } fclose($fp); } exit(); } } else { if ($javascript == true) { if ($num_support_hidden_users > 0) { echo('changeStatus("Hidden");'); } else { echo('changeStatus("Offline");'); } exit(); } if ($_SETTINGS['OFFLINEEMAIL'] == false) { header('Content-type: image/gif'); if ($server != '' && ini_get('allow_url_fopen') == true) { $fp = @fopen('../../' . $_SETTINGS['OFFLINEEMAILLOGO'], 'rb'); if ($fp == false) { header('Location: ' . $_SETTINGS['URL'] . $_SETTINGS['OFFLINEEMAILLOGO']); } else { $contents = fread($fp, filesize('../../' . $_SETTINGS['OFFLINEEMAILLOGO'])); echo($contents); } fclose($fp); } else { $fp = @fopen('../../' . $_SETTINGS['OFFLINEEMAILLOGO'], 'rb'); if ($fp == false) { header('Location: ../../' . $_SETTINGS['OFFLINEEMAILLOGO']); } else { $contents = fread($fp, filesize('../../' . $_SETTINGS['OFFLINEEMAILLOGO'])); echo($contents); } fclose($fp); } exit(); } else { header('Content-type: image/gif'); if ($server != '' && ini_get('allow_url_fopen') == true) { $fp = @fopen('../../' . $_SETTINGS['OFFLINELOGO'], 'rb'); if ($fp == false) { header('Location: ' . $_SETTINGS['URL'] . $_SETTINGS['OFFLINELOGO']);; } else { $contents = fread($fp, filesize('../../' . $_SETTINGS['OFFLINELOGO'])); echo($contents); } fclose($fp); } else { $fp = @fopen('../../' . $_SETTINGS['OFFLINELOGO'], 'rb'); if ($fp == false) { header('Location: ../../' . $_SETTINGS['OFFLINELOGO']); } else { $contents = fread($fp, filesize('../../' . $_SETTINGS['OFFLINELOGO'])); echo($contents); } fclose($fp); } exit(); } } ?>