<?php

if(!defined("IN_LIVEZILLA"))
	die();
	
function optimizeTables($_table)
{
	global $RESPONSE;
	if($_table == DATABASE_VISITOR_DATA_PAGES)
	{
        $result = queryDB(true,"SELECT `id` FROM `".DB_PREFIX.DATABASE_VISITOR_DATA_PAGES."`;");
        while($row = DBManager::FetchArray($result))
        {
            $rows = DBManager::FetchArray(queryDB(true,"(SELECT COUNT(*) AS `csap` FROM `".DB_PREFIX.DATABASE_STATS_AGGS_PAGES."` WHERE `url` = '".$row["id"]."');"));
            if(!empty($rows["csap"]))
                continue;
            $rows = DBManager::FetchArray(queryDB(true,"(SELECT COUNT(*) AS `csap` FROM `".DB_PREFIX.DATABASE_STATS_AGGS_PAGES_EXIT."` WHERE `url` = '".$row["id"]."');"));
            if(!empty($rows["csap"]))
                continue;
            $rows = DBManager::FetchArray(queryDB(true,"(SELECT COUNT(*) AS `csap` FROM `".DB_PREFIX.DATABASE_STATS_AGGS_PAGES_ENTRANCE."` WHERE `url` = '".$row["id"]."');"));
            if(!empty($rows["csap"]))
                continue;
            $rows = DBManager::FetchArray(queryDB(true,"(SELECT COUNT(*) AS `csap` FROM `".DB_PREFIX.DATABASE_VISITOR_BROWSER_URLS."` WHERE `url` = '".$row["id"]."' OR `referrer` = '".$row["id"]."');"));
            if(!empty($rows["csap"]))
                continue;
            $rows = DBManager::FetchArray(queryDB(true,"(SELECT COUNT(*) AS `csap` FROM `".DB_PREFIX.DATABASE_STATS_AGGS_REFERRERS."` WHERE `referrer` = '".$row["id"]."');"));
            if(!empty($rows["csap"]))
                continue;
        }

        queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_PAGES."`;");
        queryDB(true,"REPAIR TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_PAGES."`;");
	}
	else if($_table == DATABASE_VISITOR_DATA_DOMAINS)
	{
		queryDB(true,"DELETE FROM `".DB_PREFIX.DATABASE_VISITOR_DATA_DOMAINS."` WHERE NOT EXISTS (SELECT * FROM `".DB_PREFIX.DATABASE_VISITOR_DATA_PAGES."` WHERE `domain` = `".DB_PREFIX.DATABASE_VISITOR_DATA_DOMAINS."`.`id`) AND NOT EXISTS (SELECT * FROM `".DB_PREFIX.DATABASE_STATS_AGGS_DOMAINS."` WHERE `domain` = `".DB_PREFIX.DATABASE_VISITOR_DATA_DOMAINS."`.`id`);");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_DOMAINS."`;");
        queryDB(true,"REPAIR TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_DOMAINS."`;");
	}
	else if($_table == DATABASE_VISITOR_DATA_PATHS)
	{
		queryDB(true,"DELETE FROM `".DB_PREFIX.DATABASE_VISITOR_DATA_PATHS."` WHERE NOT EXISTS (SELECT * FROM `".DB_PREFIX.DATABASE_VISITOR_DATA_PAGES."` WHERE `path` = `".DB_PREFIX.DATABASE_VISITOR_DATA_PATHS."`.`id`);");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_PATHS."`;");
        queryDB(true,"REPAIR TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_PATHS."`;");
	}
	else if($_table == DATABASE_VISITOR_DATA_ISPS)
	{
		queryDB(true,"DELETE FROM `".DB_PREFIX.DATABASE_VISITOR_DATA_ISPS."` WHERE NOT EXISTS (SELECT * FROM `".DB_PREFIX.DATABASE_STATS_AGGS_ISPS."` WHERE `isp` = `".DB_PREFIX.DATABASE_VISITOR_DATA_ISPS."`.`id`) AND NOT EXISTS (SELECT * FROM `".DB_PREFIX.DATABASE_VISITORS."` WHERE `isp` = `".DB_PREFIX.DATABASE_VISITOR_DATA_ISPS."`.`id`);");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_ISPS."`;");
        queryDB(true,"REPAIR TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_ISPS."`;");
	}
	else if($_table == DATABASE_VISITOR_DATA_QUERIES)
	{
		queryDB(true,"DELETE FROM `".DB_PREFIX.DATABASE_VISITOR_DATA_QUERIES."` WHERE NOT EXISTS (SELECT * FROM `".DB_PREFIX.DATABASE_STATS_AGGS_QUERIES."` WHERE `query` = `".DB_PREFIX.DATABASE_VISITOR_DATA_QUERIES."`.`id`) AND NOT EXISTS (SELECT * FROM `".DB_PREFIX.DATABASE_VISITOR_BROWSERS."` WHERE `query` = `".DB_PREFIX.DATABASE_VISITOR_DATA_QUERIES."`.`id`) AND NOT EXISTS (SELECT * FROM `".DB_PREFIX.DATABASE_STATS_AGGS_GOALS_QUERIES."` WHERE `query` = `".DB_PREFIX.DATABASE_VISITOR_DATA_QUERIES."`.`id`);");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_QUERIES."`;");
        queryDB(true,"REPAIR TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_QUERIES."`;");
	}
	else if($_table == DATABASE_VISITOR_DATA_CITIES)
	{
		queryDB(true,"DELETE FROM `".DB_PREFIX.DATABASE_VISITOR_DATA_CITIES."` WHERE NOT EXISTS (SELECT * FROM `".DB_PREFIX.DATABASE_STATS_AGGS_CITIES."` WHERE `city` = `".DB_PREFIX.DATABASE_VISITOR_DATA_CITIES."`.`id`) AND NOT EXISTS (SELECT * FROM `".DB_PREFIX.DATABASE_VISITORS."` WHERE `city` = `".DB_PREFIX.DATABASE_VISITOR_DATA_CITIES."`.`id`);");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_CITIES."`;");
        queryDB(true,"REPAIR TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_CITIES."`;");
	}
	else if($_table == DATABASE_VISITOR_DATA_REGIONS)
	{
		queryDB(true,"DELETE FROM `".DB_PREFIX.DATABASE_VISITOR_DATA_REGIONS."` WHERE NOT EXISTS (SELECT * FROM `".DB_PREFIX.DATABASE_STATS_AGGS_REGIONS."` WHERE `region` = `".DB_PREFIX.DATABASE_VISITOR_DATA_REGIONS."`.`id`) AND NOT EXISTS (SELECT * FROM `".DB_PREFIX.DATABASE_VISITORS."` WHERE `region` = `".DB_PREFIX.DATABASE_VISITOR_DATA_REGIONS."`.`id`);");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_REGIONS."`;");
        queryDB(true,"REPAIR TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_REGIONS."`;");
	}
	else if($_table == DATABASE_VISITORS)
	{
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_POSTS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_TICKETS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_TICKET_MESSAGES."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_TICKET_EDITORS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_TICKET_CUSTOMS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_EVENT_TRIGGERS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_CHAT_REQUESTS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_BROWSERS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_SYSTEMS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_RESOLUTIONS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_DATA_TITLES."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITORS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_FILTERS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_CHATS."`;");
        queryDB(true,"REPAIR TABLE `".DB_PREFIX.DATABASE_VISITOR_CHATS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_CHAT_OPERATORS."`;");
        queryDB(true,"REPAIR TABLE `".DB_PREFIX.DATABASE_VISITOR_CHAT_OPERATORS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_BROWSERS."`;");
        queryDB(true,"REPAIR TABLE `".DB_PREFIX.DATABASE_VISITOR_BROWSERS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_BROWSER_URLS."`;");
        queryDB(true,"REPAIR TABLE `".DB_PREFIX.DATABASE_VISITOR_BROWSER_URLS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_OPERATOR_STATUS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_OPERATORS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_OPERATOR_LOGINS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_VISITOR_GOALS."`;");
	}
	else if($_table == DATABASE_STATS_AGGS)
	{
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_BROWSERS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_RESOLUTIONS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_COUNTRIES."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_VISITS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_SYSTEMS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_LANGUAGES."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_CITIES."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_REGIONS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_ISPS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_QUERIES."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_PAGES."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_DOMAINS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_REFERRERS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_AVAILABILITIES."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_DURATIONS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_CHATS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_SEARCH_ENGINES."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_VISITORS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_CRAWLERS."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_PAGES_ENTRANCE."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_PAGES_EXIT."`;");
		queryDB(true,"OPTIMIZE TABLE `".DB_PREFIX.DATABASE_STATS_AGGS_GOALS."`;");
	}
	$RESPONSE->SetStandardResponse(1,base64_encode(1));
}
?>