<?
	if (empty($INCL_FORMS)) {
	$INCL_FORMS = 1;
	
	$f_js = "";
	
	function f_text($name, $value = false, $width = 35) {
		global $$name;
		global $f_js;
		
		if ($value === false) {
			if (isset($$name)) {
				$value = $$name;
			}
			else {
				$value = "";
			}
		}
		
		?>
		<input class="w w-text" type=text 
				name="<?= $name; ?>" id="<?= $name; ?>"
			   value="<?= htmlspecialchars($value); ?>"
			   size="<?= $width; ?>" maxlength="200"
			   <?= $f_js; ?>>
		<?
		$f_js = "";
	}

	function f_hidden($name, $value = false) {
		global $$name;
		global $f_js;
		
		if ($value === false) {
			if (isset($$name)) {
				$value = $$name;
			}
			else {
				$value = "";
			}
		}
		
		?>
		<input type=hidden 
				name="<?= $name; ?>" 
			   value="<?= htmlspecialchars($value); ?>"
			   <?= $f_js; ?>>
		<?
		$f_js = "";
	}

	function f_textarea($name, $value = false) {
		global $$name;
		global $f_js;
		
		if ($value === false) {
			if (isset($$name)) {
				$value = $$name;
			}
			else {
				$value = "";
			}
		}
		
		?>

		<textarea class="w w-textarea" name="<?= $name; ?>" rows=7 cols=60
			<?= $f_js; ?>><?
			echo htmlspecialchars($value);
		?></textarea>

		<?
		$f_js = "";
	}

	$g_sel_name = "";
	$g_sel_value = "";
	
	function f_sel_start($name, $value = false, $extra = "") {
		global $g_sel_name;
		global $g_sel_value;
		global $f_js;
		
		if ($value === false) {	
			global $$name;
			
			if (isset($$name)) {
				$value = $$name;
			}
			else {
				$value = "";
			}
		}
		
		$g_sel_name = $name;
		$g_sel_value = $value;
		
		?>
		
		<select class="w w-select" 
			name="<?= $name; ?>" id="<?= $name; ?>"
			default_value="<?= $g_sel_value; ?>"
			<?= $extra; ?> <?= $f_js; ?>>
		
		<?
		$f_js = "";
	}
	
	function f_sel_item($description, $value = "--") {
		global $g_sel_name;
		global $g_sel_value;
		
		if ($value == "--") {
			$value = $description;
		}

		if ($g_sel_value == $value) {
			$s = " selected ";
		}
		else {
			$s = "";
		}
		
		echo "<option $s value=\"$value\">$description</option>\n";
	}
	
	function f_sel_end() {
		echo "</select>";
	}
	
	function f_checkbox($name, $value, $cur_value = false) {
		global $$name;
		global $f_js;
		
		if ($cur_value === false) {
			if (isset($$name)) {
				$cur_value = $$name;
			}
			else {
				$cur_value = "";
			}
		}
		
		if ($value == $cur_value) {
			$checked = " checked ";
		}
		else {
			$checked = "";
		}
		?>
		<input class="w w-checkbox" type=checkbox name="<?=$name;?>"
			value="<?=htmlspecialchars($value);?>" <?= $f_js; ?>
			<?=$checked;?>>
		<?
		$f_js = "";
	}

	function f_radio($name, $value, $cur_value = false) {
		global $$name;
		global $f_js;
		
		if ($cur_value === false) {
			if (isset($$name)) {
				$cur_value = $$name;
			}
			else {
				$cur_value = "";
			}
		}
		
		if ($value == $cur_value) {
			$checked = " checked ";
		}
		else {
			$checked = "";
		}
		?>
		<input class="w w-radio" type=radio name="<?=$name;?>"
			value="<?=htmlspecialchars($value);?>" <?= $f_js; ?>
			<?=$checked;?>>
		<?
		$f_js = "";
	}
	
	// Display a series of date dropdown boxes to enter a date.
	// $value must be in MySQL YYYY-MM-DD format.
	// Returns the components of the date in $name_y, $name_m, $name_d.
	function f_date($name, $value)
	{
		global $f_js;
		$x = $f_js;
		
		if (empty($value)) {
			$mon = "0";
			$day = "0";
			$year = "0";
		}
		else {
			$parts = split(" ", $value);
			if (count($parts) == 1) {
				$parts = split("-", $value);
				$year = $parts[0];
				$mon = $parts[1];
				$day = $parts[2];
			}
			else {
				$date = $parts[0];
				$time = $parts[1];
				$parts = split("-", $date);
				$year = $parts[0];
				$mon = $parts[1];
				$day = $parts[2];
			}
		}
		
		$f_js = "";
		f_sel_start($name . "_m", $mon);
		f_sel_item("--", "0");
		for ($i = 1; $i <= 12; $i++) {
			$tmp = date("Y")."-".sprintf("%02d", $i)."-01";
			f_sel_item(date("M", strtotime($tmp)), $i);
		}
		f_sel_end();

		$f_js = "";
		f_sel_start($name . "_d", $day);
		f_sel_item("--", "0");
		for ($i = 1; $i <= 31; $i++) 
			f_sel_item($i);
		f_sel_end();

		$f_js = $x;
		f_sel_start($name . "_y", $year);
		f_sel_item("--", "0");
		for ($i = 1900; $i <= date("Y")+5; $i++) 
			f_sel_item($i);
		f_sel_end();
	}

	function alz($d) {
		if (strlen($d) == 1) 
			return "0$d";
		else
			return $d;
	}

	function alz4($d) {
		if (strlen($d) == 1) 
			return "000$d";
		elseif (strlen($d) == 2) 
			return "00$d";
		elseif (strlen($d) == 3) 
			return "0$d";
		else
			return $d;
	}
	
	function f_date_reassemble($name)
	{
		if (!empty($GLOBALS[$name]) && $GLOBALS[$name] != "F_DATE_TIME") 
			return $GLOBALS[$name];
			
		$d = alz4($GLOBALS["${name}_y"]) . "-" .
			 alz($GLOBALS["${name}_m"]) . "-" .
			 alz($GLOBALS["${name}_d"]);
		$GLOBALS["$name"] = $d;
		return $d;
	}
	
	// Display a series of date/time dropdown boxes to enter a date.
	// $value must be in MySQL YYYY-MM-DD HH:MM:SS format.
	// Returns the components of the date in $name_y, $name_m, $name_d
	// and "F_DATE_TIME" in $name
	function f_date_time($name, $value)
	{
		global $f_js;
		
		$x = $f_js;
		?>
		<input type="hidden" name="<?= $name; ?>"
			value="F_DATE_TIME">
		<?
		
		
		if (empty($value)) {
			$mon = "0";
			$day = "0";
			$year = "0";
			$hour = "0";
			$min = "0";
			$sec = "0";
		}
		else {
			$parts = split(" ", $value);
			if (count($parts) == 1) {
				$parts = split("-", $value);
				$year = $parts[0];
				$mon = $parts[1];
				$day = $parts[2];
				$hour = 0;
				$min = 0;
				$sec = 0;
			}
			else {
				$date = $parts[0];
				$time = $parts[1];
				$parts = split("-", $date);
				$year = $parts[0];
				$mon = $parts[1];
				$day = $parts[2];
				$parts = split(":", $time);
				$hour = $parts[0];
				$min = $parts[1];
				$sec = $parts[2];
			}
		}
		
		f_sel_start($name . "_m", $mon);
		f_sel_item("--", "0");
		for ($i = 1; $i <= 12; $i++) {
			$tmp = date("Y")."-".sprintf("%02d", $i)."-01";
			f_sel_item(date("M", strtotime($tmp)), $i);
		}
		f_sel_end();

		$f_js = $x;
		f_sel_start($name . "_d", $day);
		f_sel_item("--", "0");
		for ($i = 1; $i <= 31; $i++) 
			f_sel_item($i);
		f_sel_end();

		$f_js = $x;
		f_sel_start($name . "_y", $year);
		f_sel_item("--", "0");
		for ($i = 1900; $i <= date("Y"); $i++) 
			f_sel_item($i);
		f_sel_end();

		$f_js = $x;
		f_sel_start($name . "_h", $hour);
		f_sel_item("--", "0");
		for ($i = 0; $i <= 24; $i++) 
			f_sel_item($i);
		f_sel_end();


		$f_js = $x;
		f_sel_start($name . "_i", $min);
		f_sel_item("--", "0");
		for ($i = 0; $i <= 60; $i++) 
			f_sel_item($i);
		f_sel_end();
	}

	function f_date_time_reassemble($name)
	{
		if (!empty($GLOBALS[$name]) && $GLOBALS[$name] != "F_DATE_TIME") 
			return $GLOBALS[$name];
			
		$d = alz4($GLOBALS["${name}_y"]) . "-" .
			alz($GLOBALS["${name}_m"]) . "-" .
			alz($GLOBALS["${name}_d"]) . " " .
			alz($GLOBALS["${name}_h"]) . ":" .
			alz($GLOBALS["${name}_i"]);
		$GLOBALS["$name"] = $d;
		return $d;
	}
	
	
	}
?>
