<?php

	//include($_SERVER['DOCUMENT_ROOT'] . "/cms/functions/config.inc");
//	include ("config.inc");
	$dblink = 0;

function DB_Connect()
{
global $dblink;
global $db, $dbhost, $dbuser, $dbpass;

	$dblink = mysql_pconnect($dbhost, $dbuser, $dbpass);

	if (!$dblink)
		Die (mysql_error());

	$db_selected = mysql_select_db($db, $dblink);

	return $db_selected;
}

function GetUniqueID($table, $field)
{
global $dblink;

	$result = mysql_query("SELECT MAX($field) as id FROM $table", $dblink);

	if (mysql_num_rows($result))
	{
		$row = mysql_fetch_assoc($result);
		$id = $row['id'] + 1;
		return $id;
	}
	return false;
}

// this function gets the list of fields in the given table
function GetFieldNamesInTable($tbl_name)
{
global $dblink;
$fields = array();

	$result = mysql_query("DESCRIBE $tbl_name");
	$num_results = mysql_num_rows($result);

	for ($i = 0; $i < $num_results; $i++)
	{
		$row = mysql_fetch_assoc($result);
		$fields[] = $row['Field'];
	}

	return $fields;
}

// this function returns an array of values that an enum field can take
// it returns false otherwise
function GetValuesForEnum($table, $column)
{
global $dblink;

	$result = mysql_query("SHOW COLUMNS FROM $table WHERE Field='$column'", $dblink);
	
	if (mysql_num_rows($result))
	{
		$row = mysql_fetch_assoc($result);
		$Type = $row['Type'];
		
		$bracket = strpos($Type, '(');
		$close_bracket = strpos($Type, ')');

		$field_type = ($bracket !== false) ? substr($Type, 0, $bracket) : $Type;
		if ($field_type != 'enum')
			return false;
		
		$len = $close_bracket - $bracket - 1;			// determine how many characters are between the brackets
		$size = substr($Type, $bracket+1, $len);		// extract length of the column
		$size = substr($size, 1, strlen($size)-2);		// this removes the first and last quote marks
		$options = explode("','", $size);				// now spliting it gives us the values in an array
		return $options;
	}
	else return false;	
}

// this function returns an array of values that an set field can take
// it returns false otherwise
// it does the same thing as for ENUM (GetValuesForEnum)
function GetValuesForSet($table, $column)
{
global $dblink;

	$result = mysql_query("SHOW COLUMNS FROM $table WHERE Field='$column'", $dblink);
	
	if (mysql_num_rows($result))
	{
		$row = mysql_fetch_assoc($result);
		$Type = $row['Type'];
		
		$bracket = strpos($Type, '(');
		$close_bracket = strpos($Type, ')');

		$field_type = ($bracket !== false) ? substr($Type, 0, $bracket) : $Type;
		if ($field_type != 'set')
			return false;
		
		$len = $close_bracket - $bracket - 1;			// determine how many characters are between the brackets
		$size = substr($Type, $bracket+1, $len);		// extract length of the column
		$size = substr($size, 1, strlen($size)-2);		// this removes the first and last quote marks
		$options = explode("','", $size);				// now spliting it gives us the values in an array
		return $options;
	}
	else return false;
}

function GetDefaultValuesInTable($table)
{
global $dblink;
$defaults = array();

	$result = mysql_query("DESCRIBE $table");
	$num_results = mysql_num_rows($result);

	for ($i = 0; $i < $num_results; $i++)
	{
		$row = mysql_fetch_assoc($result);
		$field = $row['Field'];
		$default = $row['Default'];
		
		if ($default != "NULL")
			$defaults[$field] = $default;
	}

	return $defaults;
}


?>
