Index: trunk/ippMonitor/Makefile
===================================================================
--- trunk/ippMonitor/Makefile	(revision 9003)
+++ trunk/ippMonitor/Makefile	(revision 9008)
@@ -22,11 +22,8 @@
 $(DESTBIN)/DetrendSteps.php \
 $(DESTBIN)/ImfileTables.php \
-$(DESTBIN)/phptest.php \
-$(DESTBIN)/flat_1_0.b1.jpeg \
-$(DESTBIN)/flat_1_0.b2.jpeg \
-$(DESTBIN)/pic.png
-
+$(DESTBIN)/phptest.php
 
 DEFSRC = \
+$(DESTBIN)/masterDetrendImages.php \
 $(DESTBIN)/detInputExp.php \
 $(DESTBIN)/detMasterFrame.php \
@@ -56,7 +53,30 @@
 
 PICTURES = \
-$(DESTBIN)/PScolorlogo2.jpg
+$(DESTBIN)/PScolorlogo2.jpg \
+$(DESTBIN)/flat_1_0.b1.jpeg \
+$(DESTBIN)/flat_1_0.b2.jpeg \
+$(DESTBIN)/pic.png
 
-php: $(RAWSRC) $(DEFSRC) $(PICTURES)
+DEMOPICS = \
+$(DESTBIN)/806237f.detresid.3.0.b1.jpg \
+$(DESTBIN)/806237f.detresid.3.0.b2.jpg \
+$(DESTBIN)/806238f.detresid.3.0.b1.jpg \
+$(DESTBIN)/806238f.detresid.3.0.b2.jpg \
+$(DESTBIN)/806239f.detresid.3.0.b1.jpg \
+$(DESTBIN)/806239f.detresid.3.0.b2.jpg \
+$(DESTBIN)/838749d.detresid.2.0.b1.jpg \
+$(DESTBIN)/838749d.detresid.2.0.b2.jpg \
+$(DESTBIN)/838790d.detresid.2.0.b1.jpg \
+$(DESTBIN)/838790d.detresid.2.0.b2.jpg \
+$(DESTBIN)/838791d.detresid.2.0.b1.jpg \
+$(DESTBIN)/838791d.detresid.2.0.b2.jpg \
+$(DESTBIN)/850131b.detresid.1.0.b1.jpg \
+$(DESTBIN)/850131b.detresid.1.0.b2.jpg \
+$(DESTBIN)/850132b.detresid.1.0.b1.jpg \
+$(DESTBIN)/850132b.detresid.1.0.b2.jpg \
+$(DESTBIN)/850133b.detresid.1.0.b1.jpg \
+$(DESTBIN)/850133b.detresid.1.0.b2.jpg
+
+php: $(RAWSRC) $(DEFSRC) $(PICTURES) $(DEMOPICS)
 
 # dependancy rules for binary code #########################
@@ -64,32 +84,33 @@
 # .PRECIOUS: $(BIN)/%.$(ARCH)
 
-$(SRC)/%.php: $(DEF)/%.d $(DEF)/autocode.php
+$(SRC)/%.php: $(DEF)/%.d $(DEF)/autocode.php ./generate
 	@if [ ! -d $(SRC) ]; then mkdir -p $(SRC); fi
 	./generate $< $(DEF)/autocode.php $@
 
-$(SRC)/%.php: $(RAW)/%.php
-	@if [ ! -d $(SRC) ]; then mkdir -p $(SRC); fi
-	cp $< $@
+# $(SRC)/%.php: $(RAW)/%.php
+# 	@if [ ! -d $(SRC) ]; then mkdir -p $(SRC); fi
+# 	cp $< $@
+# 
+# $(SRC)/%.css: $(RAW)/%.css
+# 	@if [ ! -d $(SRC) ]; then mkdir -p $(SRC); fi
+# 	cp $< $@
+# 
+# $(SRC)/%.dat: $(RAW)/%.dat
+# 	@if [ ! -d $(SRC) ]; then mkdir -p $(SRC); fi
+# 	cp $< $@
+# 
+# $(SRC)/%.jpg: $(RAW)/%.jpg
+# 	@if [ ! -d $(SRC) ]; then mkdir -p $(SRC); fi
+# 	cp $< $@
+# 
+# $(SRC)/%.png: $(RAW)/%.png
+# 	@if [ ! -d $(SRC) ]; then mkdir -p $(SRC); fi
+# 	cp $< $@
+# 
+# $(SRC)/%.jpeg: $(RAW)/%.jpeg
+# 	@if [ ! -d $(SRC) ]; then mkdir -p $(SRC); fi
+# 	cp $< $@
 
-$(SRC)/%.css: $(RAW)/%.css
-	@if [ ! -d $(SRC) ]; then mkdir -p $(SRC); fi
-	cp $< $@
-
-$(SRC)/%.dat: $(RAW)/%.dat
-	@if [ ! -d $(SRC) ]; then mkdir -p $(SRC); fi
-	cp $< $@
-
-$(SRC)/%.jpg: $(RAW)/%.jpg
-	@if [ ! -d $(SRC) ]; then mkdir -p $(SRC); fi
-	cp $< $@
-
-$(SRC)/%.png: $(RAW)/%.png
-	@if [ ! -d $(SRC) ]; then mkdir -p $(SRC); fi
-	cp $< $@
-
-$(SRC)/%.jpeg: $(RAW)/%.jpeg
-	@if [ ! -d $(SRC) ]; then mkdir -p $(SRC); fi
-	cp $< $@
-
+# generated php code is built into SRC first
 $(DESTBIN)/%.php: $(SRC)/%.php
 	@if [ ! -d $(DESTBIN) ]; then mkdir -p $(DESTBIN) || exit; fi
@@ -97,28 +118,35 @@
 	cp $(SRC)/$*.php $(DESTBIN)/$*.php || exit
 
-$(DESTBIN)/%.css: $(SRC)/%.css
+# non-generated php code is copied directly
+$(DESTBIN)/%.php: $(RAW)/%.php
+	@if [ ! -d $(DESTBIN) ]; then mkdir -p $(DESTBIN) || exit; fi
+	rm -f $(DESTBIN)/$*.php || exit
+	cp $(RAW)/$*.php $(DESTBIN)/$*.php || exit
+
+# all other files are copied directly
+$(DESTBIN)/%.css: $(RAW)/%.css
 	@if [ ! -d $(DESTBIN) ]; then mkdir -p $(DESTBIN) || exit; fi
 	rm -f $(DESTBIN)/$*.css || exit
-	cp $(SRC)/$*.css $(DESTBIN)/$*.css || exit
+	cp $(RAW)/$*.css $(DESTBIN)/$*.css || exit
 
-$(DESTBIN)/%.dat: $(SRC)/%.dat
+$(DESTBIN)/%.dat: $(RAW)/%.dat
 	@if [ ! -d $(DESTBIN) ]; then mkdir -p $(DESTBIN) || exit; fi
 	rm -f $(DESTBIN)/$*.dat || exit
-	cp $(SRC)/$*.dat $(DESTBIN)/$*.dat || exit
+	cp $(RAW)/$*.dat $(DESTBIN)/$*.dat || exit
 
-$(DESTBIN)/%.jpg: $(SRC)/%.jpg
+$(DESTBIN)/%.jpg: $(RAW)/%.jpg
 	@if [ ! -d $(DESTBIN) ]; then mkdir -p $(DESTBIN) || exit; fi
 	rm -f $(DESTBIN)/$*.jpg || exit
-	cp $(SRC)/$*.jpg $(DESTBIN)/$*.jpg || exit
+	cp $(RAW)/$*.jpg $(DESTBIN)/$*.jpg || exit
 
-$(DESTBIN)/%.jpeg: $(SRC)/%.jpeg
+$(DESTBIN)/%.jpeg: $(RAW)/%.jpeg
 	@if [ ! -d $(DESTBIN) ]; then mkdir -p $(DESTBIN) || exit; fi
 	rm -f $(DESTBIN)/$*.jpeg || exit
-	cp $(SRC)/$*.jpeg $(DESTBIN)/$*.jpeg || exit
+	cp $(RAW)/$*.jpeg $(DESTBIN)/$*.jpeg || exit
 
-$(DESTBIN)/%.png: $(SRC)/%.png
+$(DESTBIN)/%.png: $(RAW)/%.png
 	@if [ ! -d $(DESTBIN) ]; then mkdir -p $(DESTBIN) || exit; fi
 	rm -f $(DESTBIN)/$*.png || exit
-	cp $(SRC)/$*.png $(DESTBIN)/$*.png || exit
+	cp $(RAW)/$*.png $(DESTBIN)/$*.png || exit
 
 # utilities #################################################
@@ -132,3 +160,5 @@
 .PRECIOUS: $(SRC)/%.css
 .PRECIOUS: $(SRC)/%.dat
+.PRECIOUS: $(SRC)/%.png
 .PRECIOUS: $(SRC)/%.jpg
+.PRECIOUS: $(SRC)/%.jpeg
Index: trunk/ippMonitor/def/autocode.php
===================================================================
--- trunk/ippMonitor/def/autocode.php	(revision 9003)
+++ trunk/ippMonitor/def/autocode.php	(revision 9008)
@@ -20,4 +20,6 @@
 // ** TABLE RESTRICTIONS **
 
+echo "WHERE: $WHERE<br><br>\n";
+
 // query the database
 if ($WHERE) {
@@ -27,4 +29,6 @@
 }
 
+echo "SQL: $sql<br><br>\n";
+
 $qry = $db->query($sql);
 if (DB::iserror($db)) {
@@ -33,5 +37,5 @@
 }
 
-// ** BODY HTML **
+// ** HEAD CODE **
 
 // set up the table and form
@@ -72,5 +76,5 @@
 echo "</form>\n";
 
-// ** TAIL HTML **
+// ** TAIL CODE **
 
 menu_end();
Index: trunk/ippMonitor/def/detInputExp.d
===================================================================
--- trunk/ippMonitor/def/detInputExp.d	(revision 9003)
+++ trunk/ippMonitor/def/detInputExp.d	(revision 9008)
@@ -4,7 +4,7 @@
 MENU  ipp.detrend.dat
 
-BODY.HTML  test 1 <br>
-BODY.HTML  test 2 <br>
-BODY.HTML  test 3 <br>
+HEAD HTML  test head 1 <br>
+HEAD HTML  test head 2 <br>
+HEAD HTML  test head 3 <br>
 
 #     field      name       show        link to                 extras
@@ -15,5 +15,5 @@
 FIELD include,   include
 
-TAIL.HTML test tail 1 <br>
-TAIL.HTML test tail 2 <br>
-TAIL.HTML test tail 3 <br>
+TAIL HTML test tail 1 <br>
+TAIL HTML test tail 2 <br>
+TAIL HTML test tail 3 <br>
Index: trunk/ippMonitor/def/detResidExp.d
===================================================================
--- trunk/ippMonitor/def/detResidExp.d	(revision 9003)
+++ trunk/ippMonitor/def/detResidExp.d	(revision 9008)
@@ -4,13 +4,13 @@
 MENU  ipp.detrend.dat
 
-#     field      name       show            link to         extras
+#     field      name       show            link to             extras
 FIELD det_id,    det_id,    value
 FIELD iteration, iteration, value
 FIELD accept,    accept,    value
-FIELD exp_id, 	 exp_id,    value,          rawImfile.php,  exp_id=$exp_id
-FIELD b1_uri, 	 b1_uri,    image=$b1_uri,  display.php,    image=$b2_uri
-FIELD recipe, 	 recipe,    image=pic.png
+FIELD exp_id, 	 exp_id,    value,          rawImfile.php,      exp_id=$exp_id
+FIELD b2_uri, 	 b2_uri,    image=$b2_uri,  detResidImfile.php, det_id=$det_id,iteration=$iteration,exp_id=$exp_id,image=$b1_uri
+FIELD recipe, 	 recipe,    value
 FIELD bg,        backgnd,   value
 FIELD bg_stdev,  bg_stdev,  value
-FIELD b2_uri, 	 b2_uri,    none
+FIELD b1_uri, 	 b1_uri,    none
 # FIELD bg_mean_stdev, bg_mean_stdev
Index: trunk/ippMonitor/def/detResidImfile.d
===================================================================
--- trunk/ippMonitor/def/detResidImfile.d	(revision 9003)
+++ trunk/ippMonitor/def/detResidImfile.d	(revision 9008)
@@ -16,2 +16,4 @@
 FIELD b1_uri, b1_uri
 FIELD b2_uri, b2_uri
+
+TAIL PHP insert_image ('image');
Index: trunk/ippMonitor/def/masterDetrendImages.d
===================================================================
--- trunk/ippMonitor/def/masterDetrendImages.d	(revision 9008)
+++ trunk/ippMonitor/def/masterDetrendImages.d	(revision 9008)
@@ -0,0 +1,34 @@
+# this file is based on the detRunSummary.d file: it uses the same tables restricted to the 
+# master detrend runs which have been accepted
+
+TABLE detRunSummary, detRun
+TITLE Master Detrend Images
+FILE  masterDetrendImages.php
+MENU  ipp.detrend.dat
+
+HEAD PHP insert_image ('image');
+HEAD HTML extra <b> lines </b><br><br>
+
+# the following WHERE clauses are added to all queries joined by AND
+WHERE detRunSummary.accept = 1
+WHERE detRun.position = detRunSummary.det_id
+WHERE detRun.iteration = detRunSummary.iteration
+
+#     field                    name           show         link to           extras
+FIELD detRunSummary.det_id,    det_id
+FIELD detRun.det_type,         type
+FIELD detRunSummary.iteration, iteration,   value,       detInputExp.php,  det_id=$detRunSummary.det_id,iteration=$detRunSummary.iteration
+FIELD *,                       resid,       value=resid, detResidExp.php,  det_id=$detRunSummary.det_id,iteration=$detRunSummary.iteration
+FIELD detRunSummary.bg,        bg
+FIELD detRunSummary.bg_stdev,  bg_stdev
+# FIELD bg_mean_stdev, bg_mean_stdev
+
+# this file illustrates a simple inner join to generate the output table
+# assuming no other dynamic restrictions are added, this generates the following query:
+# SELECT detRunSummary.det_id,detRunSummary.iteration,detRunSummary.iteration,detRun.det_type,detRunSummary.bg,detRunSummary.bg_stdev \
+# FROM detRunSummary, detRun \
+# WHERE detRunSummary.accept = 1 AND detRun.position = detRunSummary.det_id AND detRun.iteration = detRunSummary.iteration \
+# LIMIT 20
+
+TAIL HTML extra <b> tail lines </b><br>
+TAIL PHP  echo "this is a php line at the end<br>\n";
Index: trunk/ippMonitor/generate
===================================================================
--- trunk/ippMonitor/generate	(revision 9003)
+++ trunk/ippMonitor/generate	(revision 9008)
@@ -9,4 +9,9 @@
 $template = $ARGV[1];
 $output   = $ARGV[2];
+
+# global variables:
+# @key, @value                         : paired list of keys and values
+# @field, @name, @show, @link, @extras : properties of each table column
+# @headcode, @tailcode                 : additional HTML or PHP code before or after table
 
 &parse_schema;
@@ -31,7 +36,7 @@
 	($key, $value) = split (" ", $line, 2);
 	
-	# strip white space from the following
-	if ($key eq "TABLE") { ($value) = $value =~ m|\s*(\S+)\s*|; }
-	if ($key eq "TYPE")  { ($value) = $value =~ m|\s*(\S+)\s*|; }
+	# strip leading and trailing white space from the following
+	if ($key eq "TABLE") { ($value) = $value =~ m|^\s*(.+)\s*$|; }
+	if ($key eq "TYPE")  { ($value) = $value =~ m|^\s*(.+)\s*$|; }
 
 	&set_keypair ($key, $value);
@@ -52,20 +57,19 @@
 
 	# list of the table fields
- 	if ($key eq "BODY.HTML") {
-	    push @bodyhtml, $value;
+ 	if ($key eq "HEAD") {
+	    push @headcode, $value;
 	}
 
 	# list of the table fields
- 	if ($key eq "TAIL.HTML") {
-	    push @tailhtml, $value;
+ 	if ($key eq "TAIL") {
+	    push @tailcode, $value;
 	}
 
 	# list of the table restrictions
- 	if ($key eq "RESTRICT") {
+	# replace this with a flexible where statement?
+ 	if ($key eq "WHERE") {
 	    ($field) = split (/,\s+/, $value, 1);
-	    # ($field) = $field =~ m|\s*(\S+)\s*|;
-
 	    if ($VERBOSE) { printf "%-20s\n", $field; }
-	    push @restrict,   $field;
+	    push @where,   $field;
 	}
     }
@@ -83,6 +87,8 @@
     }
 
-    # define query string, add to keypairs
-    &define_query_fields;
+    # define FIELDS and WHERE strings, add to keypairs
+    &define_fields_count;
+    &define_fields_string (@field);
+    &define_where_string (@where);
 
     if (0) {
@@ -139,12 +145,12 @@
 	}
 
-	# fill in body HTML
-	if ($line =~ m|// \*\* BODY HTML \*\*|) {
-	    &write_body_html;
-	}
-
-	# fill in tail HTML
-	if ($line =~ m|// \*\* TAIL HTML \*\*|) {
-	    &write_tail_html;
+	# fill in head HTML or PHP code
+	if ($line =~ m|// \*\* HEAD CODE \*\*|) {
+	    &write_inline_code (@headcode);
+	}
+
+	# fill in tail HTML or PHP code
+	if ($line =~ m|// \*\* TAIL CODE \*\*|) {
+	    &write_inline_code (@tailcode);
 	}
     }
@@ -152,28 +158,20 @@
 }
 
-sub write_body_html {
-    my ($i);
-
-    if (@bodyhtml == 0) { return; }
-    printf FILE "?>\n";
+sub write_inline_code {
+    my (@code) = @_;
+    my ($i, $code, $type);
     
-    for ($i = 0; $i < @bodyhtml; $i++) {
-	printf FILE "$bodyhtml[$i]\n";
-    }
-    printf FILE "<?\n";
-}
-
-sub write_tail_html {
-    my ($i);
-
-    if (@tailhtml == 0) { return; }
-    printf FILE "?>\n";
-    
-    for ($i = 0; $i < @tailhtml; $i++) {
-	printf FILE "$tailhtml[$i]\n";
-    }
-    printf FILE "<?\n";
-}
-
+    for ($i = 0; $i < @code; $i++) {
+	($type, $line) = split (" ", $code[$i], 2);
+	if ($type eq "PHP") {
+	    printf FILE "$line\n";
+	}
+	if ($type eq "HTML") {
+	    printf FILE "?> $line <?\n";
+	}
+    }
+}
+
+# generate a table header cell (<th> </th>) for each field (show != none)
 sub write_table_header {
 
@@ -184,25 +182,24 @@
 }
 
+# generate a WHERE test for each field (field != *)
 sub write_table_restrict {
 
-    for ($i = 0; $i < @restrict; $i++) {
-	$value = $restrict[$i];
-	printf FILE "\$value = \$_GET['$value'];\n";
-	printf FILE "if (\$value) {\n";
-	printf FILE "  if (\$WHERE) {\n";
-	printf FILE "    \$WHERE = \$WHERE . \" AND $value = '\$value'\";\n";
-	printf FILE "  } else {\n";
-	printf FILE "    \$WHERE = \"$value = '\$value'\";\n";
-	printf FILE "  }\n";
-	printf FILE "}\n";
+    if ($WHERE) {
+	printf FILE "\$WHERE = \"$WHERE\";\n";
+    }	
+    for ($i = 0; $i < @field; $i++) {
+	$value = $field[$i];
+	if ($value eq "*") { next; }
+	printf FILE "\$WHERE = check_restrict ('$value', \$WHERE);\n";
     }
 }
 
 sub write_table_data {
-    my ($i);
+    my ($i, $Nrow);
     my ($label, $value, $string);
 
     for ($i = 0; $i < @field; $i++) {
 	($label, $value, $string) = &parse_label ($show[$i]);
+	$Nrow = $count[$i];
 
 	# create the link variable if this entry should be linked
@@ -211,5 +208,5 @@
 	if (($label eq "value") && !$link[$i]) { 
 	    # print value without link or image
-	    if (! $value) { $value = "\$row[$i]"; }
+	    if (! $value && ($field[$i] ne "*")) { $value = "\$row[$Nrow]"; }
 	    print FILE "  echo \"<td class=\\\"list\\\"> $value </td>\\n\";\n";
 	    next;
@@ -222,5 +219,5 @@
 	    if ($extras[$i]) { &parse_extras ($extras[$i]); } 
 	    # print the actual table cell line with the link...
-	    if (! $value) { $value = "\$row[$i]"; }
+	    if (! $value && ($field[$i] ne "*")) { $value = "\$row[$Nrow]"; }
 	    printf FILE "  echo \"<td class=\\\"list\\\"><a href=\\\"\$link\\\"> $value </a></td>\\n\";\n";
 	    next;
@@ -246,19 +243,58 @@
 
 sub write_table_query {
-
+    my ($i);
     for ($i = 0; $i < @field; $i++) {
 	if ($show[$i] eq "none")  { next; }
-	printf FILE "echo \"<td class=\\\"list\\\"> <input type=\\\"text\\\" name=\\\"$field[$i]\\\"> </td>\\n\";\n";
-    }
-}
-
-sub define_query_fields {
-
-    $FIELDS = "$field[0]";
-    for ($i = 1; $i < @field; $i++) {
-	$FIELDS = "$FIELDS,$field[$i]";
-    }
- 
+	if ($field[$i] eq "*")  { 
+	    # * fields create an empty cell 
+	    printf FILE "echo \"<td> &nbsp; </td>\\n\";\n";
+	} else {
+	    printf FILE "write_query_row ('$field[$i]');\n";
+	}
+    }
+}
+
+sub define_fields_string {
+    my (@array) = @_;
+    my ($i, $FIELDS);
+
+    $FIELDS = "$array[0]";
+    for ($i = 1; $i < @array; $i++) {
+	# skip * fields (not a valid query element
+	if ($array[$i] eq "*") { next; }
+	$FIELDS = "$FIELDS,$array[$i]";
+    }
     set_keypair ("FIELDS", $FIELDS);
+}
+
+sub define_fields_count {
+    my ($i, $Nrow);
+
+    @count = ();
+
+    $Nrow = 0;
+    for ($i = 0; $i < @field; $i++) {
+	# skip * fields (not a valid query element
+	if ($field[$i] eq "*") { 
+	    $count[$i] = -1;
+	} else {
+	    $count[$i] = $Nrow;
+	    $Nrow ++;
+	}
+    }
+}
+
+sub define_where_string {
+    my (@array) = @_;
+    my ($i, $FIELDS);
+
+    if (@array == 0) { return; }
+
+    $WHERE = "$array[0]";
+    for ($i = 1; $i < @array; $i++) {
+	$WHERE = "$WHERE AND $array[$i]";
+    }
+    
+    set_keypair ("WHERE", $WHERE);
 }
 
@@ -283,5 +319,5 @@
     my ($string) = $_[0];
     my ($label, $value, $outline);
-    my ($N, $i);
+    my ($Nrow, $i);
 
     # unless we replace the value with the db row element, return the original string
@@ -297,6 +333,8 @@
 	  MATCH_LABEL:
 	    for ($i = 0; $i < @field; $i++) {
+		if ($field[$i] eq "*") { next; }
 		if ($value =~ m|^\$$field[$i]|) {
-		    $value = "\$row[$i]";
+		    $Nrow = $count[$i];
+		    $value = "\$row[$Nrow]";
 		    last MATCH_LABEL;
 		}
Index: trunk/ippMonitor/raw/DetrendSteps.php
===================================================================
--- trunk/ippMonitor/raw/DetrendSteps.php	(revision 9003)
+++ trunk/ippMonitor/raw/DetrendSteps.php	(revision 9008)
@@ -8,5 +8,12 @@
 
 // document body
-echo "Detrend Image Creation Steps<br>\n";
+echo "Detrend Image Creation<br>\n
+
+The pages in this section allow you to examine the master detrend
+images and the processing steps involved in their creation.  You may
+search through the detrend images which have been accepted by
+the detrend analysis system by selecting the Master Detrend Images tab.
+
+";
 
 menu_end();
Index: trunk/ippMonitor/raw/ipp.detrend.dat
===================================================================
--- trunk/ippMonitor/raw/ipp.detrend.dat	(revision 9003)
+++ trunk/ippMonitor/raw/ipp.detrend.dat	(revision 9008)
@@ -23,4 +23,5 @@
 
 menutop   | menutop      | plain   | &nbsp;                       | 
+menulink  | menuselect 	 | link    | Master Detrend Images        | masterDetrendImages.php
 menulink  | menuselect 	 | link    | Det Run                      | detRun.php                    
 menulink  | menuselect 	 | link    | Det Run Summary              | detRunSummary.php             
Index: trunk/ippMonitor/raw/ipp.php
===================================================================
--- trunk/ippMonitor/raw/ipp.php	(revision 9003)
+++ trunk/ippMonitor/raw/ipp.php	(revision 9008)
@@ -19,5 +19,6 @@
   // connect to the database
   require_once('DB.php');
-  $db = DB::connect("mysql://ipp:ipp@localhost/ipp");
+#  $db = DB::connect("mysql://ipp:ipp@localhost/ipp");
+  $db = DB::connect("mysql://ipp:ipp@localhost/detrend");
   if (DB::iserror($db)) {
     echo "<b>error accessing database</b><br>\n";
@@ -176,4 +177,49 @@
 }
 
+function check_restrict ($key, $where) {
+  // echo "key: $key<br>\n";
+  if ($_SERVER[REQUEST_METHOD] == 'GET') { 
+    $value = $_GET[$key]; 
+    // echo "using GET<br>\n";
+  } else {
+    $value = $_POST[$key];
+    // echo "using POST<br>\n";
+  }
+  // echo "value: $value<br>\n";
+  if ($value) {
+    if ($where) {
+      $where = $where . " AND $key = '$value'";
+      // echo "where 1: $where<br>\n";
+    } else {
+      $where = "$key = '$value'";
+      // echo "where 2: $where<br>\n";
+    }
+  }
+  return $where;
+}
+
+function write_query_row ($key) {
+  $value = $_POST[$key];
+  if (($_SERVER[REQUEST_METHOD] == 'POST') && $value) { 
+    echo "<td class=\"list\"> <input type=\"text\" name=\"$key\" value=\"$value\"> </td>\n";
+  } else {
+    echo "<td class=\"list\"> <input type=\"text\" name=\"$key\"> </td>\n";
+  }
+}
+
+// expect image supplied with key=name
+function insert_image ($key) {
+
+  if ($_SERVER[REQUEST_METHOD] == 'GET') { 
+    $name = $_GET[$key]; 
+  } else {
+    $name = $_POST[$key]; 
+  }
+
+  if ($name) {
+    echo "<img src=\"$name\">\n";
+  }
+}
+
 // $myPage = $_SERVER[SCRIPT_NAME] . "?pass=$pass";
 
