Index: openacs-4/packages/acs-templating/tcl/date-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/date-procs.tcl,v
diff -u -r1.14.2.1 -r1.14.2.2
--- openacs-4/packages/acs-templating/tcl/date-procs.tcl	5 Mar 2003 14:57:37 -0000	1.14.2.1
+++ openacs-4/packages/acs-templating/tcl/date-procs.tcl	15 Apr 2003 15:44:18 -0000	1.14.2.2
@@ -400,7 +400,7 @@
     Get the default ranges for all the numeric fields of a Date object
 } {
   switch $what {
-    year        { return [list 2000 2010 1 ] }
+    year        { return [list 2002 2012 1 ] }
     month       { return [list 1 12 1] }
     day         { return [list 1 31 1] }
     hours       { return [list 0 23 1] }
Index: openacs-4/packages/acs-templating/tcl/element-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/element-procs.tcl,v
diff -u -r1.9.2.6 -r1.9.2.7
--- openacs-4/packages/acs-templating/tcl/element-procs.tcl	20 Mar 2003 16:39:39 -0000	1.9.2.6
+++ openacs-4/packages/acs-templating/tcl/element-procs.tcl	15 Apr 2003 15:44:18 -0000	1.9.2.7
@@ -99,6 +99,9 @@
                       1 or 0, and message is to be displayed to the user when 
                       the validation step fails.
 
+    @option sign      specify for a hidden widget that its value should be
+                      signed
+
     @option help_text Text displayed with the element 
 
     @option help      Display helpful hints (date widget only?)
@@ -179,7 +182,23 @@
     if { [llength $opts(values)] || ! [info exists opts(value)] } {
       set opts(value) [lindex $opts(values) 0]
     }
+  } 
+
+  if { [string equal $opts(widget) hidden] 
+       && [info exists opts(sign)] 
+       && $opts(sign)
+   } { 
+      if {[info exists opts(value)] } {
+          set val $opts(value)
+      } else { 
+          set val {}
+      }
+      template::element::create $opts(form_id) $opts(id):sig \
+          -datatype text \
+          -widget hidden \
+          -value [ad_sign $val]
   }
+
 }
 
 ad_proc -public template::element::set_properties { form_id element_id args } {
@@ -199,6 +218,22 @@
 
   template::util::get_opts $args
 
+    if { [string equal $opts(widget) hidden] 
+         && [info exists opts(sign)] 
+         && $opts(sign) 
+         && [info exists opts(value)] } {
+        if { [template::element::exists $form_id $element_id:sig] } {
+            template::element::set_properties $form_id $element_id:sig \
+                -value [ad_sign $opts(value)]
+
+        } else {
+            template::element::create $opts(form_id) $opts(id):sig \
+                -datatype text \
+                -widget hidden \
+                -value [ad_sign $opts(value)]
+        }
+    }
+
   copy_value_to_values_if_defined
 }
 
Index: openacs-4/packages/acs-templating/tcl/query-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/query-procs.tcl,v
diff -u -r1.11.2.2 -r1.11.2.3
--- openacs-4/packages/acs-templating/tcl/query-procs.tcl	7 Mar 2003 00:45:28 -0000	1.11.2.2
+++ openacs-4/packages/acs-templating/tcl/query-procs.tcl	15 Apr 2003 15:44:18 -0000	1.11.2.3
@@ -696,7 +696,7 @@
     size {
       upvar $multirow_level_up $name:rowcount rowcount
       if { [template::util::is_nil rowcount] } {
-        error "malformed multirow datasource - $name"
+          return 0
       }
       return $rowcount
     }
Index: openacs-4/packages/acs-templating/tcl/widget-procs.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/acs-templating/tcl/widget-procs.tcl,v
diff -u -r1.14.2.6 -r1.14.2.7
--- openacs-4/packages/acs-templating/tcl/widget-procs.tcl	20 Mar 2003 16:31:14 -0000	1.14.2.6
+++ openacs-4/packages/acs-templating/tcl/widget-procs.tcl	15 Apr 2003 15:44:18 -0000	1.14.2.7
@@ -55,7 +55,7 @@
     # include an extra hidden element to indicate that the 
     # value is being selected as opposed to entered
 
-    set output "<input type=\"hidden\" name=\"$element(id):select\" value=\"t\" />"
+    set output "\n<input type=\"hidden\" name=\"$element(id):select\" value=\"t\" />"
     append output [select element $tag_attributes]
 
   }
@@ -130,9 +130,9 @@
   upvar $element_reference element
 
   if { [info exists element(value)] } {
-    return $element(value)
+      return "$element(value)[input hidden element $tag_attributes]"
   } else {
-    return ""
+      return [input hidden element $tag_attributes]
   }
 }
 
@@ -304,16 +304,20 @@
     append output ">\n"
   
     foreach option $options_list {
-  
+
       set label [lindex $option 0]
       set value [lindex $option 1]
-  
-      append output "  <option value=\"[template::util::quote_html $value]\" "
-  
+
+      if {![string equal $label $value]} {
+        append output " <option value=\"[template::util::quote_html $value]\""
+      } else { 
+        append output " <option"
+      }
+        
       if { [info exists values($value)] } {
-        append output "selected=\"selected\""
+        append output " selected=\"selected\""
       }
-  
+
       append output ">$label</option>\n"
     }