<script type="text/javascript" src="js/modules/gamemanager.js"></script>
<?php
/*
 *
 * OGP - Open Game Panel
 * Copyright (C) 2008 - 2018 The OGP Development Team
 *
 * http://www.opengamepanel.org/
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 *
 */

require_once('modules/gamemanager/home_handling_functions.php');
require_once("modules/config_games/server_config_parser.php");

require_once("includes/refreshed.php");
require_once('includes/lib_remote.php');

function renderParam($param, $last_param, $param_access_enabled, $home_id)
{
	global $db;
	$isAdmin = $db->isAdmin($_SESSION['user_id']);
	$attributesString = "";
	foreach ($param->attribute as $attribute)
		$attributesString .= $attribute['key']. "='$attribute' ";

	$disabledString = ((($param_access_enabled) && (!property_exists($param, 'access') || $param->access != "admin")) || $isAdmin) ? "" : "disabled ";
	
	if (array_key_exists((string)$param['key'], $last_param))
		$paramValue = (string)$last_param[(string)$param['key']];
	else
		$paramValue = (string)$param->default;

	$idString = "id='".clean_id_string($param['key'])."'";
	$nameString = "name='params[".$param['key']."]'";
	$paramType = $param['type'];
	if ($paramType == "select")
	{
		$inputElementString = "<select $idString $nameString $disabledString>";
		foreach ($param->option as $option)
		{
			$optionValue = (string)($option['value']);
			$selectedString = ($optionValue == $paramValue) ? "selected='selected'" : "";
			$valueString = "value=\"".str_replace('"', "&quot;", strip_real_escape_string($optionValue))."\"";
			$inputElementString .= "<option $selectedString $valueString>$option</option>";
		}
		$inputElementString .="</select>";
	}else if($paramType == "other_game_server_path" || $paramType == "other_game_server_path_additional"){
		if($isAdmin){
			$dbTypeHomesStr = "admin";
		}else{
			$dbTypeHomesStr = "user_and_group";
		}
		
		// Get homes
		$homes = $db->getHomesFor($dbTypeHomesStr, $_SESSION['user_id']);
		
		// Move current home_id home_path to the front of the array so that it is selected by default if no other option has been selected.
		$homes = customShift($homes, "home_id", $home_id);
		
		$inputElementString = "<select $idString name='params[" . $param['key'] . "{DEPENDS:$paramType}]'" . $disabledString . ">";
		foreach($homes as $home){
			if($home["home_path"][strlen($home["home_path"])-1] != "/"){
				$home["home_path"] = $home["home_path"] . "/";
			}
			
			if(stripos($paramValue, $home["home_path"]) !== false){
				$selectedString = "selected='selected'";
				$selectedHome = $home["home_path"];
			}else{
				$selectedString = "";
			}
			$inputElementString .= '<option value="' . $home["home_path"] . '" ' . $selectedString . '>' . $home["home_path"] . '</option>';
		}
		$inputElementString .="</select>";
		if($paramType == "other_game_server_path_additional"){
			$inputElementString .="<input type='text' value='" . (stripos($paramValue, $selectedHome) !== false ? substr($paramValue, strlen($selectedHome)) : (hasValue((string)$param->default) ? (string)$param->default : "")) . "' name='params[other_game_server_path_additional]' " . $disabledString .">";
		}
	}else{
			if ($paramType == "checkbox_key_value") {
				if ($paramValue) // convert the XML object to string
					$attributesString .= "checked='checked' ";
				$paramValue = $param['key'];
				$paramType = "checkbox";
			} 
			else if ($paramType == "checkbox")
			{
				if ($paramValue) // convert the XML object to string
					$attributesString .= "checked='checked' ";
			}
			$inputElementString = "<input $idString $nameString ".
				"type='$paramType' value=\"".str_replace('"', "&quot;", strip_real_escape_string($paramValue))."\" ".
				"$disabledString $attributesString/>";
	}

	echo "<tr><td class='right'><label for='".clean_id_string($param['key'])."'>".$param['key'].
		":</label></td><td class='left'>$inputElementString<label for='".clean_id_string($param['key'])."'>";

	if ( !empty($param->caption) )
		echo $param->caption;
	if ( !empty($param->desc) )
		echo "<br/><span class='info'>(".$param->desc.")</span>";

	echo "</label></td></tr>\n";
}

function get_sync_name($server_xml)
{
	if( $server_xml->game_key )
  
											
							
   
										  
					  
   
  
										
	{
		$sync_name = $server_xml->game_key;
		
   
										 
						  
											 
						  
   
	}
	elseif( isset($server_xml->protocol) )
		$sync_name = $server_xml->protocol;
	else
		$sync_name = $server_xml->mods->mod['key'];
	return $sync_name;
}

function exec_ogp_module() {
	global $db, $settings, $loggedInUserInfo;
	echo "<h2 class='gameMonitor " . ($db->isAdmin( $_SESSION['user_id'] ) ? "isAdminUser" : "") . "'>". get_lang("game_monitor") ."</h2>";
	$refresh = new refreshed();
	set_time_limit(0);
	$stats_servers_online = 0;
	$stats_servers = 0;
	$stats_players = 0;
	$stats_maxplayers = 0;
	
$home_id = $_GET['home_id'];
$home_info = $db->getGameHomeWithoutMods($home_id);

	$home_page = (isset($_GET['page']) && (int)$_GET['page'] > 0) ? (int)$_GET['page'] : 1;
	$home_limit = (isset($_GET['limit']) && (int)$_GET['limit'] > 0) ? (int)$_GET['limit'] : 10;
	$home_cfg_id = (isset($_GET['home_cfg_id']) && (int)$_GET['home_cfg_id'] > 0) ? (int)$_GET['home_cfg_id'] : false;
	
	$search_field = (isset($_GET['search']) && !empty($_GET['search'])) ? $_GET['search'] : false;
	
	
	if(hasValue($loggedInUserInfo) && is_array($loggedInUserInfo) && $loggedInUserInfo["users_page_limit"] && !(isset($_GET['limit']) and !empty($_GET['limit']))){
		$home_limit = $loggedInUserInfo["users_page_limit"];
	}
	
	$isAdmin = $db->isAdmin( $_SESSION['user_id'] );
	
	if ( $isAdmin )
		{
			$show_games_type = $db->getHomesFor('admin', $_SESSION['user_id']);
			if(isset($_GET['home_id']) OR isset($_GET['home_id-mod_id-ip-port']))          
				$server_homes = $db->getHomesFor('admin', $_SESSION['user_id']);
			else
				$server_homes = $db->getHomesFor_limit('admin', $_SESSION['user_id'],$home_page,$home_limit,$home_cfg_id,$search_field);
	
		}
		else
		{
			$show_games_type = $db->getHomesFor('user_and_group', $_SESSION['user_id']);
			if(isset($_GET['home_id']) OR isset($_GET['home_id-mod_id-ip-port']))          
				$server_homes = $db->getHomesFor('user_and_group', $_SESSION['user_id']);
			else			
				$server_homes = $db->getHomesFor_limit('user_and_group', $_SESSION['user_id'],$home_page,$home_limit,$home_cfg_id,$search_field);
		}

	if( $server_homes === FALSE )
	{
		// If there are no games, then there can not be any mods either.

		if (!empty($search_field)) {
			print_failure(get_lang_f('no_results_found', htmlentities($search_field)));
		} else {
			print_failure(get_lang('no_game_homes_assigned'));
		}

		if ( $isAdmin )
		{
			echo "<p><a href='?m=user_games&amp;p=assign&amp;user_id=$_SESSION[user_id]'>".
				 get_lang("assign_game_homes") ."</a></p>";
		}
		return;
	}
	?>
		<form action="home.php" style="float:right;">
			<b><?php print_lang('search'); ?>:</b>
			<input type ="hidden" name="m" value="gamemanager" />
			<input type ="hidden" name="p" value="game_monitor" />
			<input name="search" type="text" id="search" value="<?php if(hasValue($search_field)){ echo $search_field; } ?>" />
			<input type="submit" value="<?php echo get_lang('search'); ?>" />
		</form>
	<?php
	foreach($_POST as $key => $value)
	{
		if( preg_match( "/^action/", $key ) )
		{
			list($action,$home_id,$mod_id,$ip,$port) = explode("-", $value);
			exec_operation( $action, $home_id, $mod_id, $ip, $port );
		}
	}
	
	if ( empty( $_GET['home_id-mod_id-ip-port'] ) )
		unset( $_GET['home_id-mod_id-ip-port'] );
	if ( empty( $_GET['home_id'] ) )
		unset( $_GET['home_id'] );
	if ( isset($_GET['home_cfg_id']) and $_GET['home_cfg_id'] ==  get_lang('game_type') )
		unset( $_GET['home_cfg_id'] );

	create_home_selector_game_type($_GET['m'], $_GET['p'], $show_games_type);

	if (!isset($_GET['home_id-mod_id-ip-port']) and !isset($_GET['home_id']) and !isset($_GET['home_cfg_id'])) 
	{
		create_home_selector_address($_GET['m'], $_GET['p'], $server_homes);
		$show_all = TRUE;
	}
	else
	{
		create_home_selector_address($_GET['m'], $_GET['p'], $server_homes);
		create_home_selector($_GET['m'], $_GET['p'], "show_all");
		$show_all = FALSE;
	}

	require("protocol/lgsl/lgsl_protocol.php");

	$info = $db->getUserById($_SESSION['user_id']);
	if($info['user_expires'] != "X")
	{
	?>
		<span style="color:black;font-weight:bold;">
			<center>
			<?php echo print_lang('account_expiration'); ?>: <span style="color:green;"><?php echo date( "l, F jS, Y, H:i:s", $info['user_expires'] ).
			" ( ".str_replace('hr', 'hours', read_expire($info['user_expires'])).")"; ?></span>
			</center>
		</span>
	<?php
	}
	
	if($settings["show_server_id_game_monitor"]){
		echo "<p class='serverIdToggle' showtext='" . get_lang('show_server_id') . "' hidetext='" . get_lang('hide_server_id') . "'>" . get_lang('show_server_id') . "</p>";
	}
 
echo "<table id='servermonitor' class='tablesorter' data-sortlist='[[0,0],[3,1]]'>".

		 "<thead>".
		 "<tr>".
		 "\t<th style='width:16px;background-position: center;'></th>".
		 "\t<th style='width:16px;background-position: center;'></th>".
		 "\t<th class=\"hide serverId\">" . get_lang("server_id") . "</th>".
		 "\t<th>" . get_lang("server_name") . "</th>".
		 "\t<th>IP and Port</th>".
		 "\t<th>" . get_lang("owner") . "</th>".
		 "\t<th>Server Expiration".
										
																												  
																														
																													
                 "\t</th>".
                 "</tr>".
                 "</thead>".
                 "<tbody>";                 

	if( isset( $_GET['home_id-mod_id-ip-port']) )
		list( $post_home_id,
			  $post_mod_id, 
			  $post_ip, 
			  $post_port ) = explode( "-", $_GET['home_id-mod_id-ip-port'] );
	
	$j = 1;
	foreach( $server_homes as $server_home )
	{
		if( ( $show_all or isset($_GET['home_cfg_id']) ) AND ( !isset($server_home['ip']) or !isset($server_home['mod_id']) ) ){
			$j++;
			continue;
		}
		// Count the number of servers.
		$stats_servers++;
		
		if( $show_all 
			OR ( isset( $_GET['home_id'] ) and $_GET['home_id'] == $server_home['home_id'] ) 
			OR ( isset( $_GET['home_id-mod_id-ip-port'] ) and $server_home['home_id'] == $post_home_id and $server_home['mod_id'] == $post_mod_id and $post_ip == $server_home['ip'] and $post_port == $server_home['port'] ) 
			OR ( isset( $_GET['home_cfg_id'] ) and $_GET['home_cfg_id'] == $server_home['home_cfg_id'] ) 
		  )
		{
			//Unset variables.
			unset($map,
				  $trclass, 
				  $first, 
				  $second, 
				  $onlineT, 
				  $ts3opt, 
				  $offlineT, 
				  $halfT, 
				  $ministart, 
				  $player_list, 
				  $groupsus, 
				  $name,
				  $mod_name,
				  $SrvCtrl,
				  $user,
				  $pos,
				  $ctrlChkBoxes,
				  $expiration_dates);
			
			if ( $isAdmin )
				$server_home['access_rights'] = $db->getFullAccessRightsString();
			
			if ($server_home['mod_name'] == "none" OR $server_home['mod_name'] == "None")
				$mod_name = "";
			elseif($server_home['mod_name'] != $server_home['game_name'])
				$mod_name = " ( ".$server_home['mod_name']." )";
				


			//set the display of how long server has until expired
			//default is it never expires 
			$expiration_dates = "This Server Will NEVER Expire";
			//get all orders thare are active or invoiced
			$query = "SELECT * FROM ogp_billing_orders WHERE home_id = " . $server_home['home_id'] . " AND status IN ('paid', 'invoiced', 'suspended', 'in-cart', 'unknown')" ;
			$results = $db->resultQuery($query);
			if(!is_null($results[0]['status'])) 
			{
			//there is an end date
			if($results[0]['status'] == 'paid')
			{ 
			$expire_date = $results[0]['finish_date'];
                        $expiration_dates = "<font color='green'>" . read_expire($expire_date) . "</font>";
			}
				// in-cart its expire, invoice printed
			if($results[0]['status'] == 'in-cart' || $results[0]['status'] == 'unknown')
                        {
                        $expire_date = $results[0]['finish_date'];
			$expiration_dates = "<font color='yellow'>".  read_expire($expire_date) . "</font><a href='home.php?m=billing&p=cart'> Invoice</a>";
                        }

			// invoiced its expire, invoice printed
			if($results[0]['status'] == 'invoiced')
                        {
                        $expire_date = $results[0]['finish_date'];
			$expiration_dates = "<font color='yellow'>".  read_expire($expire_date) . "</font><a href='home.php?m=billing&p=cart'> Invoice</a>";
                        }
			// suspended its suspended, invoice still available
			if($results[0]['status'] == 'suspended')
                        {
                        $expire_date = $results[0]['finish_date'];
			$expiration_dates = "<font color='red'> SUSPENDED </font><a href='home.php?m=billing&p=cart'> Invoice</a>";
                        }

			}//end isnull
                         
			
			if( !isset($server_home['mod_id']) )
			{
				$ministart = get_lang("fail_no_mods");

				if ( $isAdmin )
				{
					$ministart .= " <a href='?m=user_games&amp;p=edit&amp;home_id=".$server_home['home_id']."'>" . get_lang("configure_mods") . "</a>";
				}
			}

			$server_xml = read_server_config(SERVER_CONFIG_LOCATION."/".$server_home['home_cfg_file']);
						
			$mod = $server_home['mod_key'];
			// If query name does not exist use mod key instead.
			if ($server_xml->protocol == "gameq")
				$query_name = $server_xml->gameq_query_name;
			elseif ($server_xml->protocol == "lgsl")
				$query_name = $server_xml->lgsl_query_name;
			elseif ($server_xml->protocol == "teamspeak3")
				$query_name = 'ts3';
			else
				$query_name = $mod;
			
			//----------+ getting the lgsl image icon
			$icon_paths = array("images/icons/$mod.png",
					   "images/icons/$query_name.png",
					   "protocol/lgsl/other/icon_unknown.gif");

			$icon_path = get_first_existing_file($icon_paths);

			//Properties for all servers
			if(isset($post_home_id) && $post_home_id == $server_home['home_id'] OR isset($_GET['home_id']) && $_GET['home_id'] == $server_home['home_id'] )
				$trclass = " expandme";

			$groupusers = $db->getGroupUsersByHomeId($server_home['home_id']);
			$groupsus = "";
			if($groupusers)
			{
				foreach($groupusers as $groupu)
				{
					if($groupu['user_id'] == $server_home['user_id_main'])
						continue;
					$groupsus .= $groupu['users_login']."<br>";
				}
			}
			$groupsus = $groupsus != "" ? $groupsus = "<b>". get_lang("group_users") ."</b><br>".$groupsus : "";

			$owners = $db->getUsersByHomeId($server_home['home_id']);
			$other_owners = "";
			if($owners)
			{
				foreach($owners as $owner)
				{
					if($owner['user_id'] == $server_home['user_id_main'])
						continue;
					$other_owners .= $owner['users_login'].'<br>';
				}
			}
			$other_owners = $other_owners != "" ? $other_owners = "<b>". get_lang("assigned_to") ."</b><br>".$other_owners : "";
			
			$btns = get_monitor_buttons($server_home, $server_xml);
			
			//End

			$remote = new OGPRemoteLibrary($server_home['agent_ip'], $server_home['agent_port'], $server_home['encryption_key'], $server_home['timeout']);
			$host_stat = $remote->status_chk();

			if( $host_stat === 1)
			{
				$ip = $server_home['ip'];
				$query_ip = checkDisplayPublicIP($server_home['display_public_ip'], ($server_home['use_nat'] == 1 ? $server_home['agent_ip'] : $ip));
				$displayIP =  checkDisplayPublicIP($server_home['display_public_ip'], $ip);
				$address = "";

				$screen_running = $remote->is_screen_running(OGP_SCREEN_TYPE_HOME,$server_home['home_id']) === 1;
				$update_in_progress = $remote->is_screen_running(OGP_SCREEN_TYPE_UPDATE,$server_home['home_id']) === 1;
				if($screen_running)
				{
					// Check if the screen running the server is running.
					$status = "online";
					$order = 1 + $j;
					if ($server_xml->protocol == "lgsl")
					{
						$get_q_and_s = lgsl_port_conversion($query_name, $server_home['port'], "", "");
						//Connection port
						$c_port = $get_q_and_s['0'];
						//query port
						$q_port = $get_q_and_s['1'];
						//software port
						$s_port = $get_q_and_s['2'];
						$address = "<a href='" . lgsl_software_link($query_name, $query_ip, $c_port, $q_port, $s_port) . "' >Connect</a>";


					}
					if ($server_xml->protocol == "teamspeak3")
						$address = "<a href='ts3server://" . $query_ip . ":" . $server_home['port'] . "'>".$displayIP.":".$server_home['port']."</a>";
					if($server_xml->protocol == "gameq" and $server_xml->installer == 'steamcmd')
						$address = "<a href='steam://connect/" . $query_ip . ":" . $server_home['port'] . "'>" . $displayIP . ":" . $server_home['port'] . "</a>";
					$pos = $refresh->add("home.php?m=gamemanager&p=ref_servermonitor&type=cleared&home_id=". $server_home['home_id'] . "&mod_id=". $server_home['mod_id'] . "&ip=" . $server_home['ip'] . "&port=" . $server_home['port']);

					if ($server_xml->protocol == "teamspeak3")
					{
						require('protocol/TeamSpeak3/functions.php');
					}

					$startup_file_exists = $remote->rfile_exists( "startups/".$server_home['ip']."-".$server_home['port'] ) === 1;
					if( isset($server_home['ip']) and isset($server_home['mod_id']) and ($server_xml->protocol != "teamspeak3" or ($startup_file_exists and $server_xml->protocol == "teamspeak3")) )
					{
						//$ctrlChkBoxes .= '';
						$ctrlChkBoxes .= '<div id="server_icon" class="action-stop'.$server_home['home_id'].'" ><div>'.
										 '<input id="action-stop" class="action-stop'.$server_home['home_id'].'" name="action-'.$server_home['home_id'].'" value="stop-'.
										 $server_home['home_id'].'-'.$server_home['mod_id'].'-'.$server_home['ip'].'-'.$server_home['port'].
										 '" type="radio"><img style="border:0;height:15px;" src="'  . check_theme_image("images/stop.png") . '"/></div><div>&nbsp;'.
										  get_lang("stop_server") .'</div></div><div id="server_icon" class="action-restart'.$server_home['home_id'].'" ><div>'.
										 '<input id="action-restart" class="action-restart'.$server_home['home_id'].'" name="action-'.$server_home['home_id'].'" value="restart-'.
										 $server_home['home_id'].'-'.$server_home['mod_id'].'-'.$server_home['ip'].'-'.$server_home['port'].
										 '" type="radio"><img style="border:0;height:15px;" src="' . check_theme_image("images/restart.png") . '"/></div><div>&nbsp;'.
										  get_lang("restart_server") .'</div></div>';
					}
					$stats_servers_online++;
				}
				else
				{
					$status = "offline";
					if ($server_home['last_param'] != "" and isset($server_home['ip']) and isset($server_home['mod_id']))
					{
						if($update_in_progress)
							$ctrlChkBoxes .= '<div id="server_icon" class="action-start'.$server_home['home_id'].'" >&nbsp;'. get_lang("update_in_progress") .'</div>';
						else
							//$ctrlChkBoxes .= '';
						$ctrlChkBoxes .= '<div id="server_icon" class="action-start'.$server_home['home_id'].'" >
											 <div>
											 <input id="action-start" class="action-start'.$server_home['home_id'].'" name="action-'.$server_home['home_id'].'" value="start-'.
											 $server_home['home_id'].'-'.$server_home['mod_id'].'-'.$server_home['ip'].'-'.$server_home['port'].
											 '" type="radio"><img style="border:0;height:15px;" src="' . check_theme_image("images/start.png") . '"/></div><div>&nbsp;'.
											  get_lang("start_server") .'</div></div>';
					
					}
					$order = 3;
					if(isset($server_home['mod_id']))
					{
						ob_start();
						require('modules/gamemanager/mini_start.php');
						$ministart = ob_get_contents();
						ob_end_clean();
					}
					if($update_in_progress)
						$offlineT = '<div id="server_icon" class="action-start'.$server_home['home_id'].'" >&nbsp;'. get_lang("update_in_progress") .'</div>';
					else
						$offlineT = $ministart;
				}
			}
			else{
				$status = "offline";
				$order = 3;
				$address = "<span style='color:darkred;font-weight:bold;'>Agent Offline</span>";
			}
			$user = $db->getUserById($server_home['user_id_main']);
			$query = "SELECT * FROM ogp_billing_orders WHERE home_id = " . $server_home['home_id'] . " AND status = 'paid'" ;
//DISABLE SHOWING EXPIRATION DATES
//$expiration_dates = "";


			// Template
                              @$first = "<tr class='maintr$trclass'>";
				$first .= "<td class='collapsible' data-status='$status' data-pos='$pos'><span class='hidden'>$order</span>" . "<img src='" . check_theme_image("images/$status.png") . "' />" . "</td>";
				$first .= "<td class='collapsible'>" . "<span class='hidden'>$mod</span><img src='$icon_path' />" . "</td>";
				$first .= "<td class='collapsible serverId hide'>" . $server_home["home_id"] . "</td>";
				$first .= "<td class='collapsible' data-status='$status' data-pos='$pos'><b>" . htmlentities($server_home['home_name']) . "</b>$mod_name</td>";
				$first .= "<td>" . $server_home['ip'] . ":" .  $server_home['port'] ." " . $address . "</td>";
				//$first .= "<td class='collapsible serverIPAddress ignoreSortable' data-status='$status' data-pos='$pos'>" . $address . "</td>";
				//$first .= "<td class='collapsible serverIPAddress ignoreSortable' data-status='$status' data-pos='$pos'>" . $server_home['ip'] . ":" .  $server_home['port'] . "</td>";
				$first .= "<td class='owner collapsible serverOwner ignoreSortable'>" . $user['users_login'] . "</td>";
				if ($isAdmin){
				$first .= "<td style='width:328px;padding:0px;'>" . $expiration_dates . "<br>". $ctrlChkBoxes . "</td>";
				} else {
				$first .= "<td style='width:328px;padding:0px;'>" . $expiration_dates . "</td>";
				}
				$first .= "</tr>";

			$second = "<tr class='expand-child'>";
				@$second .= "<td colspan='4'>" . $refresh->getdiv($pos,"width:100%;") . "$offlineT</td>";
				$second .= "<td class='owner' >$other_owners$groupsus</td>";

				if( $server_xml->protocol != "teamspeak3" OR ($startup_file_exists and $server_xml->protocol == "teamspeak3") OR ($status == "offline" and $server_xml->protocol == "teamspeak3") )
					@$second .= "<td class='operations'><div class='inline-block monitorButtonContainer'>" . trim($btns) . trim($ts3opt) . "<b class='failure' style='float:left; color:yellow; ' ></b></div></td>";
				else
					$second .= "<td class='operations' >$ts3opt</td>";
			$second .= "</tr>";
			//Echo them all
			echo "$first$second";
		}
		$j++;
	}
	echo "</tbody>";

	echo "<tfoot style='border:1px solid grey;'>
			<tr>
			  <td colspan='7' >
				<div class='bloc' >
				<img src='" . check_theme_image("images/magnifglass.png") . "' /> ". get_lang("statistics") .": $stats_servers_online/$stats_servers ". get_lang("servers") ."\n</div>
				<div class='right bloc' >";
				 if($isAdmin){
					 echo "<label>". get_lang("execute_selected_server_operations") ."</label>";
					 echo "<input id='execute_operations' type='submit' value='". get_lang("execute_operations") ."' >\n";
				 }  
				echo "</div>
			  </td>
			</tr>
		  </tfoot>";

	echo "</table>";

	if ($isAdmin) {	
		$homes_count = $db->getHomesFor_count('admin', $_SESSION['user_id'], $home_cfg_id,$search_field);
	} else {
		$isSubUser = $db->isSubUser($_SESSION['user_id']);

		if ($isSubUser) {
			$homes_count = $db->getHomesFor_count('subuser',$_SESSION['user_id'], $home_cfg_id,$search_field);
		} else {
			$homes_count = $db->getHomesFor_count('user_and_group',$_SESSION['user_id'], $home_cfg_id,$search_field);
		}	
	}
	
	if(isset($_GET['home_cfg_id']) && !empty($_GET['home_cfg_id'])){
	$uri = '?m=gamemanager&p=game_monitor&home_cfg_id='.$_GET['home_cfg_id'].''.($search_field ? "&search=$search_field" : "").'&limit='.$home_limit.'&page=';
	}
	else{
	$uri = '?m=gamemanager&p=game_monitor'.($search_field ? "&search=$search_field" : "").'&limit='.$home_limit.'&page=';	
	}
	
	if(!isset($_GET['home_id-mod_id-ip-port']) && !isset($_GET['home_id']))
	{echo paginationPages($homes_count[0]['total'], $home_page, $home_limit, $uri, 3, 'serverMonitor');}
/*
	echo "<div id=translation data-title='". get_lang("upload_map_image") .
		 "' data-upload_button='". get_lang("upload_image") .
		 "' data-bad_file='". get_lang("jpg_gif_png_less_than_1mb") .
		 "' data-upload_failure='". get_lang("check_dev_console") .
		 "' >put the log file here</div>\n";
*/
echo "<div>Put the log file here</div>";
//include("log.php");
?>
	
	<script type="text/javascript">
	<?php echo $refresh->build(isset($settings['query_cache_life']) ? $settings['query_cache_life'] * 2000 : 60000); ?>
	</script>
	<?php
}
?>






