<?php
	/*
	** File: attribute
	** Description: functions for dealing with attributes and variations
	** Created: 10/25/1999
	** Author: Leon Atkinson
	** Email: leon@clearink.com
	** CVS Author: $Author: leon $
	** Last Revised: $Date: 2000/02/02 18:59:45 $
	**
	** Log : $Log: attribute_functions,v $
	** Log : Revision 1.4  2000/02/02 18:59:45  leon
	** Log : Fixing bugs reported by Ted Henigson.
	** Log :
	** Log : Revision 1.3  1999/11/09 00:28:15  leon
	** Log : Changed use of notes column.  This column now stores an array of variation
	** Log : IDs in serialized form.  Names for attributes and variations are pulled
	** Log : from the database using two new functions in the attribute_functions
	** Log : include module.
	** Log :
	** Log : Revision 1.2  1999/11/02 19:26:06  leon
	** Log : Added code to stop double includes
	** Log :
	** Log : Revision 1.1  1999/10/26 17:31:35  leon
	** Log : Removed constants defining variations.  Instead functions wrap the tables.
	** Log : They use caching to reduce the number of database queries.
	** Log :
	**
	** Copyright (c) 1999 Working Dogs.  All rights reserved.
	*/

	$included_flag = 'INCLUDE_' . basename(__FILE__);
	
	if(defined($included_flag))
		//if this module has been included already, then the
		//constant will be defined.  Note the unusual use of
		//the return statement here.  Control will return to
		//the file that included it.
		return;
	
	define($included_flag, TRUE);	


	//returns the ID of an attribute, given the name
	function getAttributeID($name)
	{
		global $DatabaseLink;
		static $attribute;
		
		if(!is_array($attribute))
		{
			//pull attribute table into array
			$Query = "SELECT ID, Name ";
			$Query .= "FROM attribute ";
			$DatabaseResult = mysql_query($Query, $DatabaseLink);
			while($DatabaseRow = mysql_fetch_object($DatabaseResult))
			{
				$attribute[($DatabaseRow->Name)] = $DatabaseRow->ID;
			}			
		}

		return(intval($attribute[$name]));
	}


	//returns ID of a named variation for an attribute
	function getVariationID($attribute, $name)
	{
		global $DatabaseLink;
		static $variation;

		if(!is_array($variation[$attribute]))
		{
			//pull get all variations for an attribute
			$Query = "SELECT ID, Name ";
			$Query .= "FROM variation ";
			$Query .= "WHERE Attribute=$attribute ";
			$DatabaseResult = mysql_query($Query, $DatabaseLink);
			while($DatabaseRow = mysql_fetch_object($DatabaseResult))
			{
				$variation[$attribute][($DatabaseRow->Name)] = $DatabaseRow->ID;
			}			
		}

		return(intval($variation[$attribute][$name]));
	}

	//returns array containing information about an attribute
	function getAttributeInfo($id)
	{
		global $DatabaseLink;
		static $attribute;
		
		if(!is_array($attribute))
		{
			//pull attribute table into array
			$Query = "SELECT ID, Name, Graphic ";
			$Query .= "FROM attribute ";
			$DatabaseResult = mysql_query($Query, $DatabaseLink);
			while($DatabaseRow = mysql_fetch_object($DatabaseResult))
			{
				$attribute[($DatabaseRow->ID)]["Name"] = $DatabaseRow->Name;
				$attribute[($DatabaseRow->ID)]["Description"] = $DatabaseRow->Description;
				$attribute[($DatabaseRow->ID)]["Graphic"] = $DatabaseRow->Graphic;
			}			
		}

		return($attribute[$id]);
	}
	
	
	//returns array containing information about a variation
	function getVariationInfo($id)
	{
		global $DatabaseLink;
		static $variation;

		if(!is_array($variation))
		{
			//pull get all variations for an attribute
			$Query = "SELECT ID, Name, Description, Graphic, Attribute ";
			$Query .= "FROM variation ";
			$DatabaseResult = mysql_query($Query, $DatabaseLink);
			while($DatabaseRow = mysql_fetch_object($DatabaseResult))
			{
				$variation[($DatabaseRow->ID)]["Name"] = $DatabaseRow->Name;
				$variation[($DatabaseRow->ID)]["Description"] = $DatabaseRow->Description;
				$variation[($DatabaseRow->ID)]["Graphic"] = $DatabaseRow->Graphic;
				$variation[($DatabaseRow->ID)]["Attribute"] = $DatabaseRow->Attribute;
			}			
		}

		return($variation[$id]);
	}
	
?>