<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>Quickstart/.gitattributes</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/backwards_alert.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/backwards_alert.inc</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/click_for_message.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/click_for_message.inc</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/is_a_z.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/is_a_z.inc</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_1_1.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_1_2.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_1_3.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_1_4.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_1_5.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_1_6.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_1_7.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_1_8.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_1_9.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_2_1.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_2_2.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_2_3.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_2_4.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_2_5.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_3_1.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_3_2.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_3_3.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_4_1.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_4_2.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_4_3.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_5_1.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_5_2.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_5_3.erl</filename>
    </added>
    <added>
      <filename>Quickstart/src/nbe/web_nbe_template.erl</filename>
    </added>
    <added>
      <filename>Quickstart/wwwroot/css/SyntaxHighlighter.css</filename>
    </added>
    <added>
      <filename>Quickstart/wwwroot/css/nbe.css</filename>
    </added>
    <added>
      <filename>Quickstart/wwwroot/css/talk.css</filename>
    </added>
    <added>
      <filename>Quickstart/wwwroot/flash/clipboard.swf</filename>
    </added>
    <added>
      <filename>Quickstart/wwwroot/js/shBrushErlang.js</filename>
    </added>
    <added>
      <filename>Quickstart/wwwroot/js/shCore.js</filename>
    </added>
    <added>
      <filename>Quickstart/wwwroot/nbe.html</filename>
    </added>
    <added>
      <filename>Quickstart/wwwroot/nbe_bindings.html</filename>
    </added>
    <added>
      <filename>src/elements/forms/element_label.erl</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -1,3 +1,6 @@
+2009-05-02
+- Added changes and bugfixes by Tom McNulty.
+
 2009-04-05
 - Added a templateroot setting in .app file, courtesy of Ville Koivula.
 </diff>
      <filename>CHANGELOG</filename>
    </modified>
    <modified>
      <diff>@@ -192,7 +192,7 @@
 							&lt;key&gt;filename&lt;/key&gt;
 							&lt;string&gt;src/actions/action_jquery_effect.erl&lt;/string&gt;
 							&lt;key&gt;lastUsed&lt;/key&gt;
-							&lt;date&gt;2009-03-29T12:22:58Z&lt;/date&gt;
+							&lt;date&gt;2009-05-03T14:20:47Z&lt;/date&gt;
 						&lt;/dict&gt;
 						&lt;dict&gt;
 							&lt;key&gt;filename&lt;/key&gt;
@@ -489,6 +489,8 @@
 								&lt;dict&gt;
 									&lt;key&gt;filename&lt;/key&gt;
 									&lt;string&gt;src/elements/layout/element_windex.erl&lt;/string&gt;
+									&lt;key&gt;lastUsed&lt;/key&gt;
+									&lt;date&gt;2009-05-03T14:13:19Z&lt;/date&gt;
 								&lt;/dict&gt;
 							&lt;/array&gt;
 							&lt;key&gt;name&lt;/key&gt;
@@ -781,7 +783,7 @@
 							&lt;key&gt;filename&lt;/key&gt;
 							&lt;string&gt;src/lib/wf_tags.erl&lt;/string&gt;
 							&lt;key&gt;lastUsed&lt;/key&gt;
-							&lt;date&gt;2009-03-29T12:18:24Z&lt;/date&gt;
+							&lt;date&gt;2009-05-03T14:39:43Z&lt;/date&gt;
 						&lt;/dict&gt;
 						&lt;dict&gt;
 							&lt;key&gt;filename&lt;/key&gt;
@@ -1360,6 +1362,10 @@
 	&lt;key&gt;showFileHierarchyDrawer&lt;/key&gt;
 	&lt;true/&gt;
 	&lt;key&gt;windowFrame&lt;/key&gt;
+&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD:Nitrogen.tmproj
 	&lt;string&gt;{{285, 0}, {928, 778}}&lt;/string&gt;
+=======
+	&lt;string&gt;{{287, 0}, {928, 778}}&lt;/string&gt;
+&gt;&gt;&gt;&gt;&gt;&gt;&gt; 19b6f15aecead6e0cb0d1de9317551bf1ef735ab:Nitrogen.tmproj
 &lt;/dict&gt;
 &lt;/plist&gt;</diff>
      <filename>Nitrogen.tmproj</filename>
    </modified>
    <modified>
      <diff>@@ -198,6 +198,6 @@
 		&lt;/dict&gt;
 	&lt;/dict&gt;
 	&lt;key&gt;windowFrame&lt;/key&gt;
-	&lt;string&gt;{{204, 0}, {1013, 778}}&lt;/string&gt;
+	&lt;string&gt;{{203, 0}, {1002, 778}}&lt;/string&gt;
 &lt;/dict&gt;
 &lt;/plist&gt;</diff>
      <filename>Quickstart/Quickstart.tmproj</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,7 @@
 &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
 &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
 &lt;head&gt;
+&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
 &lt;title&gt;Nitrogen - [[[page:title()]]]&lt;/title&gt;
 &lt;script src='/nitrogen/jquery.js' type='text/javascript' charset='utf-8'&gt;&lt;/script&gt;
 &lt;script src='/nitrogen/jquery-ui.js' type='text/javascript' charset='utf-8'&gt;&lt;/script&gt;</diff>
      <filename>Quickstart/wwwroot/onecolumn.html</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,7 @@
 &lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot; &quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
 &lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
 &lt;head&gt;
+&lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot; /&gt;
 &lt;title&gt;Nitrogen - [[[page:title()]]]&lt;/title&gt;
 &lt;script src='/nitrogen/jquery.js' type='text/javascript' charset='utf-8'&gt;&lt;/script&gt;
 &lt;script src='/nitrogen/jquery-ui.js' type='text/javascript' charset='utf-8'&gt;&lt;/script&gt;</diff>
      <filename>Quickstart/wwwroot/twocolumn.html</filename>
    </modified>
    <modified>
      <diff>@@ -16,6 +16,7 @@ render_action(_TriggerPath, TargetPath, Record) -&gt;
 	Script = case Record#jquery_effect.type of
 		'show' when Effect==none -&gt; wf:f(&quot;show();&quot;);
 		'hide' when Effect==none -&gt; wf:f(&quot;hide();&quot;);
+		'toggle' when Effect==none -&gt; wf:f(&quot;toggle();&quot;);
 		'appear' -&gt; wf:f(&quot;fadeIn(~p);&quot;, [Speed]);
 		'fade'   -&gt; wf:f(&quot;fadeOut(~p);&quot;, [Speed]);
 		'show'   -&gt; wf:f(&quot;show('~s', ~s, ~p);&quot;,   [Effect, Options, Speed]);</diff>
      <filename>src/actions/action_jquery_effect.erl</filename>
    </modified>
    <modified>
      <diff>@@ -10,18 +10,22 @@ reflect() -&gt; record_info(fields, radiogroup).
 
 render(ControlID, Record) -&gt; 
 	% Set the group to the current ControlID...
-
-	F = fun(X) -&gt;
-		case is_record(X, radio) of
-			true -&gt; X#radio { name=ControlID };
-			false -&gt; X
-		end
-	end,
-	Body = [F(X) || X &lt;- Record#radiogroup.body],
+	Body = apply_name(ControlID, Record#radiogroup.body),
 	
 	% Render the record...
 	element_panel:render(ControlID, #panel {
 		class=&quot;radiogroup &quot; ++ wf:to_list(Record#radiogroup.class),
 		style=Record#radiogroup.style,
 		body=Body
-	}).
\ No newline at end of file
+	}).
+
+apply_name(Name, Terms) -&gt;
+    [do_apply(Name, X) || X &lt;- Terms].
+
+do_apply(Name, X) when is_record(X, radio) -&gt;
+    X#radio {name = Name};
+do_apply(Name, X) when is_record(X, bind) -&gt;
+    Body2 = apply_name(Name, X#bind.body),
+    X#bind{body = Body2};
+do_apply(_Name, X) -&gt;
+    X.</diff>
      <filename>src/elements/forms/element_radiogroup.erl</filename>
    </modified>
    <modified>
      <diff>@@ -9,9 +9,9 @@
 reflect() -&gt; record_info(fields, h1).
 
 render(ControlID, Record) -&gt; 
-	Content = Record#h1.text,
+	Content = wf:html_encode(Record#h1.text, Record#h1.html_encode),
 	wf_tags:emit_tag(h1, Content, [
 		{id, ControlID},
 		{class, [h1, Record#h1.class]},
 		{style, Record#h1.style}
-	]).
\ No newline at end of file
+	]).</diff>
      <filename>src/elements/heading/element_h1.erl</filename>
    </modified>
    <modified>
      <diff>@@ -9,9 +9,9 @@
 reflect() -&gt; record_info(fields, h2).
 
 render(ControlID, Record) -&gt; 
-	Content = Record#h2.text,
+	Content = wf:html_encode(Record#h2.text, Record#h2.html_encode),
 	wf_tags:emit_tag(h2, Content, [
 		{id, ControlID},
 		{class, [h2, Record#h2.class]},
 		{style, Record#h2.style}
-	]).
\ No newline at end of file
+	]).</diff>
      <filename>src/elements/heading/element_h2.erl</filename>
    </modified>
    <modified>
      <diff>@@ -9,9 +9,9 @@
 reflect() -&gt; record_info(fields, h3).
 
 render(ControlID, Record) -&gt; 
-	Content = Record#h3.text,
+	Content = wf:html_encode(Record#h3.text, Record#h3.html_encode),
 	wf_tags:emit_tag(h3, Content, [
 		{id, ControlID},
 		{class, [h3, Record#h3.class]},
 		{style, Record#h3.style}
-	]).
\ No newline at end of file
+	]).</diff>
      <filename>src/elements/heading/element_h3.erl</filename>
    </modified>
    <modified>
      <diff>@@ -9,9 +9,9 @@
 reflect() -&gt; record_info(fields, h4).
 
 render(ControlID, Record) -&gt; 
-	Content = Record#h4.text,
+	Content = wf:html_encode(Record#h4.text, Record#h4.html_encode),
 	wf_tags:emit_tag(h4, Content, [
 		{id, ControlID},
 		{class, [h4, Record#h4.class]},
 		{style, Record#h4.style}
-	]).
\ No newline at end of file
+	]).</diff>
      <filename>src/elements/heading/element_h4.erl</filename>
    </modified>
    <modified>
      <diff>@@ -8,7 +8,7 @@
 
 reflect() -&gt; record_info(fields, windex).
 
-render(_ControlID, Record) -&gt;
+render(_ControlID, _Record) -&gt;
 	% Prevent loops.
 	case wf:state(template_was_called) of
 		true -&gt; throw(&quot;Calling a template from a template.&quot;);</diff>
      <filename>src/elements/layout/element_windex.erl</filename>
    </modified>
    <modified>
      <diff>@@ -15,7 +15,7 @@ render(ControlID, Record) -&gt;
 		PickledTag
 	]),
 	wf:wire(Script),
-
+	
 	element_panel:render(ControlID, #panel {
 		class=&quot;sortitem &quot; ++ wf:to_list(Record#sortitem.class),
 		style=Record#sortitem.style,</diff>
      <filename>src/elements/other/element_sortitem.erl</filename>
    </modified>
    <modified>
      <diff>@@ -12,13 +12,17 @@
 	html_encode/1, html_encode/2
 ]).
 
+-include (&quot;wf.inc&quot;).
 
 %%% CONVERSION %%%
 
 clean_lower(L) -&gt; string:strip(string:to_lower(to_list(L))).
 
 to_list(undefined) -&gt; [];
-to_list(L) when is_list(L) -&gt; inner_to_list(lists:flatten(L));
+to_list(L) when ?IS_STRING(L) -&gt; L;
+to_list(L) when is_list(L) -&gt;
+    SubLists = [inner_to_list(X) || X &lt;- L],
+    lists:flatten(SubLists);
 to_list(A) -&gt; inner_to_list(A).
 inner_to_list(A) when is_atom(A) -&gt; atom_to_list(A);
 inner_to_list(B) when is_binary(B) -&gt; binary_to_list(B);
@@ -52,7 +56,8 @@ html_encode([H|T]) -&gt;
 		$&lt; -&gt; &quot;&amp;lt;&quot; ++ html_encode(T);
 		$&gt; -&gt; &quot;&amp;gt;&quot; ++ html_encode(T);
 		$&quot; -&gt; &quot;&amp;quot;&quot; ++ html_encode(T);
+		$' -&gt; &quot;&amp;#39;&quot; ++ html_encode(T);
 		$&amp; -&gt; &quot;&amp;amp;&quot; ++ html_encode(T);
 		$\n -&gt; &quot;&lt;br&gt;&quot; ++ html_encode(T);
 		_ -&gt; [H|html_encode(T)]
-	end.
\ No newline at end of file
+	end.</diff>
      <filename>src/lib/wf_convert.erl</filename>
    </modified>
    <modified>
      <diff>@@ -109,7 +109,7 @@ set_header(Key, Value) -&gt;
 
 %%% SOCKETS %%%
 get_socket() -&gt; do(get_socket).
-get_peername() -&gt; inet:peername(get_socket).
+get_peername() -&gt; inet:peername(get_socket()).
 recv_from_socket(Length, Timeout) -&gt; do(recv_from_socket, [Length, Timeout]).
 
 
@@ -170,4 +170,4 @@ build_redirect(Url) -&gt;
 	end.
 
 build_get_redirect(Url) -&gt; wf:f(&quot;&lt;meta http-equiv='refresh' content='0;url=~s' /&gt;&quot;, [Url]).
-build_post_redirect(Url) -&gt; wf:f(&quot;document.location.href=\&quot;~s\&quot;;&quot;, [wf_utils:js_escape(Url)]).
\ No newline at end of file
+build_post_redirect(Url) -&gt; wf:f(&quot;document.location.href=\&quot;~s\&quot;;&quot;, [wf_utils:js_escape(Url)]).</diff>
      <filename>src/lib/wf_platform.erl</filename>
    </modified>
    <modified>
      <diff>@@ -98,6 +98,7 @@ get_headers() -&gt;
     {content_type, F(&quot;content-type&quot;)},
     {content_encoding, F(&quot;content-encoding&quot;)},
     {authorization, F(&quot;authorization&quot;)},
+    {x_forwarded_for, F(&quot;x-forwarded-for&quot;)},
     {transfer_encoding, F(&quot;transfer-encoding&quot;)}
 	].
 </diff>
      <filename>src/lib/wf_platform_mochiweb.erl</filename>
    </modified>
    <modified>
      <diff>@@ -45,7 +45,8 @@ render(Term) when is_tuple(Term) -&gt;
 			% Wire actions and render the control.
 			HtmlID = wf_path:to_html_id(ID),
 			wf:wire(HtmlID, HtmlID, Base#elementbase.actions),
-			lists:flatten([Module:render(HtmlID, Term)]);
+			Terms = Module:render(HtmlID, Term),
+			ensure_rendered(Terms);
 
 		{true, false} -&gt; 
 			% Set the new path...
@@ -54,7 +55,8 @@ render(Term) when is_tuple(Term) -&gt;
 			% Wire actions and render the control.
 			HtmlID = wf_path:to_html_id(wf_path:get_path()),
 			wf:wire(HtmlID, HtmlID, Base#elementbase.actions),
-		 	Html = lists:flatten([Module:render(HtmlID, Term)]),
+		 	Terms = Module:render(HtmlID, Term),
+			Html = ensure_rendered(Terms),
 			
 			% Restore the old path...
 			wf_path:pop_path(),
@@ -63,6 +65,14 @@ render(Term) when is_tuple(Term) -&gt;
 	end,
 	Response.
 	
+ensure_rendered(Terms) -&gt;
+	% Call render if it has not already been called.
+	case wf:is_string(Terms) of
+		true -&gt; Terms;
+		false -&gt; wf:render(Terms)
+	end.
+
+	
 %%% RENDER ACTIONS %%%
 
 render_actions(_, _, undefined) -&gt; [];</diff>
      <filename>src/lib/wf_render.erl</filename>
    </modified>
    <modified>
      <diff>@@ -44,7 +44,6 @@ handle_call({sign_key, Unique}, _From, Map) -&gt;
 handle_call({get_session, Unique}, _From, Map) -&gt;
 	{reply, dict:find(Unique, Map), Map}.
 
-
 handle_cast({remove_session, Unique}, Map) -&gt;
 	{noreply, dict:erase(Unique, Map)};
 
@@ -60,7 +59,6 @@ terminate(_Reason, _State) -&gt;
 code_change(_OldVsn, State, _Extra) -&gt;
 	{ok, State}.
 
-
 session_monitor(ServerPid, SessionPid, Unique) -&gt;
 	Ref = erlang:monitor(process, SessionPid),
 	receive</diff>
      <filename>src/lib/wf_session_server.erl</filename>
    </modified>
    <modified>
      <diff>@@ -43,7 +43,9 @@ state(Key, Value) -&gt;
 	Value.
 
 clear_state() -&gt;
-	put(wf_state, []).
+	put(wf_state, []),
+	wf:state(validators, []).
+
 	
 get_state_script() -&gt;
 	DomState = get(wf_state),</diff>
      <filename>src/lib/wf_state.erl</filename>
    </modified>
    <modified>
      <diff>@@ -27,6 +27,8 @@ emit_tag(TagName, [[], []], Props) -&gt;
 
 emit_tag(TagName, [], Props) when 
 	TagName =/= 'div', 
+	TagName =/= 'span',
+	TagName =/= 'label',
 	TagName =/= 'textarea',
 	TagName =/= 'iframe' -&gt;
     emit_tag(TagName, Props);
@@ -55,12 +57,12 @@ display_property({Prop, V}) when is_atom(Prop) -&gt;
 display_property({_, []}) -&gt; &quot;&quot;;    
     
 display_property({Prop, Value}) when is_integer(Value); is_atom(Value) -&gt;
-	[&quot; &quot;, Prop, &quot;='&quot;, wf:to_list(Value), &quot;'&quot;];
+	[&quot; &quot;, Prop, &quot;=\&quot;&quot;, wf:to_list(Value), &quot;\&quot;&quot;];
     
 display_property({Prop, Value}) when is_binary(Value); ?IS_STRING(Value) -&gt;
-	[&quot; &quot;, Prop, &quot;='&quot;, Value, &quot;'&quot;];
+	[&quot; &quot;, Prop, &quot;=\&quot;&quot;, Value, &quot;\&quot;&quot;];
 
 display_property({Prop, Values}) -&gt;
 	StrValues = [wf:to_list(X) || X &lt;- Values],
-	[&quot; &quot;, Prop, &quot;='&quot;, string:strip(string:join(StrValues, &quot; &quot;)), &quot;'&quot;].
+	[&quot; &quot;, Prop, &quot;=\&quot;&quot;, string:strip(string:join(StrValues, &quot; &quot;)), &quot;\&quot;&quot;].
 </diff>
      <filename>src/lib/wf_tags.erl</filename>
    </modified>
    <modified>
      <diff>@@ -186,6 +186,8 @@ quote_plus(Atom) when is_atom(Atom) -&gt;
     quote_plus(atom_to_list(Atom));
 quote_plus(Int) when is_integer(Int) -&gt;
     quote_plus(integer_to_list(Int));
+quote_plus(Bin) when is_binary(Bin) -&gt; 
+    quote_plus(binary_to_list(Bin));
 quote_plus(String) -&gt;
     quote_plus(String, []).
 </diff>
      <filename>src/lib/wf_utils.erl</filename>
    </modified>
    <modified>
      <diff>@@ -23,7 +23,7 @@ validate(TriggerPath) -&gt;
 			false -&gt; 
 			  false
 		end
-	end,	
+	end,
 	Validators = lists:filter(F1, wf:state(validators)),
 	
 	</diff>
      <filename>src/lib/wf_validation.erl</filename>
    </modified>
    <modified>
      <diff>@@ -130,7 +130,14 @@ get_templateroot() -&gt;
 	
 get_sign_key() -&gt; 
 	case get_env(serving_app(), sign_key) of
-		{ok, Val} -&gt; Val;
+		{ok, randomized} -&gt; 
+		    Key = wf_utils:guid(),     
+		    set_env(serving_app(), sign_key, Key),
+		    Key;
+
+		{ok, Val} -&gt; 
+		    Val;
+
 		_ -&gt; throw(&quot;You must declare a sign_key!&quot;)
 	end.
 
@@ -162,3 +169,10 @@ get_env(undefined, Key) -&gt;
 get_env(App, Key) -&gt; 
 	Value = application:get_env(App, Key),
 	Value.
+
+set_env(undefined, Key, Val) -&gt;
+	{ok, App} = application:get_application(),
+	ok = application:set_env(App, Key, Val);
+
+set_env(App, Key, Val) -&gt;
+	ok = application:set_env(App, Key, Val).</diff>
      <filename>src/nitrogen.erl</filename>
    </modified>
    <modified>
      <diff>@@ -37,7 +37,7 @@ basic_test_() -&gt;
                 new_jquery_effect_1('fade')),
   ?_assertEqual(&quot;Nitrogen.$current_id='';Nitrogen.$current_path='';jQuery(obj('_target_path')).effect('none', { Key1: 'Value1',Key2: 'Value2' }, \&quot;a_speed\&quot;);&quot;,
                 new_jquery_effect_1('effect')),
-  ?_assertEqual(&quot;Nitrogen.$current_id='';Nitrogen.$current_path='';jQuery(obj('_target_path')).toggle('none', { Key1: 'Value1',Key2: 'Value2' }, \&quot;a_speed\&quot;);&quot;,
+  ?_assertEqual(&quot;Nitrogen.$current_id='';Nitrogen.$current_path='';jQuery(obj('_target_path')).toggle();&quot;,
                 new_jquery_effect_1('toggle')),
   ?_assertEqual(&quot;Nitrogen.$current_id='';Nitrogen.$current_path='';jQuery(obj('_target_path')).addClass('a_class', \&quot;a_speed\&quot;);&quot;,
                 new_jquery_effect_1('add_class')),</diff>
      <filename>test/src/actions/action_jquery_effect_test.erl</filename>
    </modified>
    <modified>
      <diff>@@ -18,9 +18,9 @@ new_textarea_3() -&gt;
   lists:flatten(element_textarea:render(&quot;3&quot;,Rec_textarea)).
 
 basic_test_() -&gt;
-  [?_assertEqual(&quot;&lt;textarea id='1' name='1' class='textarea'&gt;&lt;/textarea&gt;&quot;,new_textarea_1()),
-   ?_assertEqual(&quot;&lt;textarea id='2' name='2' class='textarea t_textarea'&gt;&lt;/textarea&gt;&quot;,new_textarea_2()),
-   ?_assertEqual(&quot;&lt;textarea id='3' name='3' class='textarea t_textarea' style='color: cyan;'&gt;TEXT&lt;/textarea&gt;&quot;,new_textarea_3()),
+  [?_assertEqual(&quot;&lt;textarea id=\&quot;1\&quot; name=\&quot;1\&quot; class=\&quot;textarea\&quot;&gt;&lt;/textarea&gt;&quot;,new_textarea_1()),
+   ?_assertEqual(&quot;&lt;textarea id=\&quot;2\&quot; name=\&quot;2\&quot; class=\&quot;textarea t_textarea\&quot;&gt;&lt;/textarea&gt;&quot;,new_textarea_2()),
+   ?_assertEqual(&quot;&lt;textarea id=\&quot;3\&quot; name=\&quot;3\&quot; class=\&quot;textarea t_textarea\&quot; style=\&quot;color: cyan;\&quot;&gt;TEXT&lt;/textarea&gt;&quot;,new_textarea_3()),
    ?_assertEqual([module,id,actions,show_if,class,style,text,html_encode],
 	 element_textarea:reflect())
   ].</diff>
      <filename>test/src/elements/forms/element_textarea_test.erl</filename>
    </modified>
    <modified>
      <diff>@@ -20,9 +20,9 @@ new_br_with_style() -&gt;
   lists:flatten(element_br:render(&quot;3&quot;,Rec_br)).
 
 basic_test_() -&gt;
-  [?_assertEqual(&quot;&lt;br id='1' class='br'/&gt;&quot;,new_br_1()),
-   ?_assertEqual(&quot;&lt;br id='2' class='br t_br'/&gt;&quot;,new_br_2()),
-   ?_assertEqual(&quot;&lt;br id='3' class='br t_br' style='color: cyan;'/&gt;&quot;,new_br_with_style()),
+  [?_assertEqual(&quot;&lt;br id=\&quot;1\&quot; class=\&quot;br\&quot;/&gt;&quot;,new_br_1()),
+   ?_assertEqual(&quot;&lt;br id=\&quot;2\&quot; class=\&quot;br t_br\&quot;/&gt;&quot;,new_br_2()),
+   ?_assertEqual(&quot;&lt;br id=\&quot;3\&quot; class=\&quot;br t_br\&quot; style=\&quot;color: cyan;\&quot;/&gt;&quot;,new_br_with_style()),
    ?_assertEqual([module,id,actions,show_if,class,style],
 	 element_br:reflect())
   ].</diff>
      <filename>test/src/elements/html/element_br_test.erl</filename>
    </modified>
    <modified>
      <diff>@@ -20,9 +20,9 @@ new_hr_3() -&gt;
   lists:flatten(element_hr:render(&quot;3&quot;,Rec_hr)).
 
 basic_test_() -&gt;
-  [?_assertEqual(&quot;&lt;hr size='1' id='1' class='hr'/&gt;&quot;,new_hr_1()),
-   ?_assertEqual(&quot;&lt;hr size='1' id='2' class='hr t_hr'/&gt;&quot;,new_hr_2()),
-   ?_assertEqual(&quot;&lt;hr size='1' id='3' class='hr t_hr' style='color: cyan;'/&gt;&quot;,new_hr_3()),
+  [?_assertEqual(&quot;&lt;hr size=\&quot;1\&quot; id=\&quot;1\&quot; class=\&quot;hr\&quot;/&gt;&quot;,new_hr_1()),
+   ?_assertEqual(&quot;&lt;hr size=\&quot;1\&quot; id=\&quot;2\&quot; class=\&quot;hr t_hr\&quot;/&gt;&quot;,new_hr_2()),
+   ?_assertEqual(&quot;&lt;hr size=\&quot;1\&quot; id=\&quot;3\&quot; class=\&quot;hr t_hr\&quot; style=\&quot;color: cyan;\&quot;/&gt;&quot;,new_hr_3()),
    ?_assertEqual([module,id,actions,show_if,class,style],
 	 element_hr:reflect())
   ].</diff>
      <filename>test/src/elements/html/element_hr_test.erl</filename>
    </modified>
    <modified>
      <diff>@@ -20,9 +20,9 @@ new_image_3() -&gt;
   lists:flatten(element_image:render(&quot;3&quot;,Rec_image)).
 
 basic_test_() -&gt;
-  [?_assertEqual(&quot;&lt;img id='1' class='image'/&gt;&quot;,new_image_1()),
-   ?_assertEqual(&quot;&lt;img id='2' class='image t_image'/&gt;&quot;,new_image_2()),
-   ?_assertEqual(&quot;&lt;img id='3' class='image t_image' style='color: cyan;' src='http://an_image.com/sample/image.jpg'/&gt;&quot;,new_image_3()),
+  [?_assertEqual(&quot;&lt;img id=\&quot;1\&quot; class=\&quot;image\&quot;/&gt;&quot;,new_image_1()),
+   ?_assertEqual(&quot;&lt;img id=\&quot;2\&quot; class=\&quot;image t_image\&quot;/&gt;&quot;,new_image_2()),
+   ?_assertEqual(&quot;&lt;img id=\&quot;3\&quot; class=\&quot;image t_image\&quot; style=\&quot;color: cyan;\&quot; src=\&quot;http://an_image.com/sample/image.jpg\&quot;/&gt;&quot;,new_image_3()),
    ?_assertEqual([module,id,actions,show_if,class,style,image,alt],
 	 element_image:reflect())
   ].</diff>
      <filename>test/src/elements/html/element_image_test.erl</filename>
    </modified>
    <modified>
      <diff>@@ -20,9 +20,9 @@ new_label_3() -&gt;
   lists:flatten(element_label:render(&quot;3&quot;,Rec_label)).
 
 basic_test_() -&gt;
-  [?_assertEqual(&quot;&lt;span id='1' class='label'/&gt;&quot;,new_label_1()),
-   ?_assertEqual(&quot;&lt;span id='2' class='label t_label'/&gt;&quot;,new_label_2()),
-   ?_assertEqual(&quot;&lt;span id='3' class='label t_label' style='color: cyan;'&gt;Username:&lt;/span&gt;&quot;,new_label_3()),
+  [?_assertEqual(&quot;&lt;label id=\&quot;1\&quot; class=\&quot;label\&quot;&gt;&lt;/label&gt;&quot;,new_label_1()),
+   ?_assertEqual(&quot;&lt;label id=\&quot;2\&quot; class=\&quot;label t_label\&quot;&gt;&lt;/label&gt;&quot;,new_label_2()),
+   ?_assertEqual(&quot;&lt;label id=\&quot;3\&quot; class=\&quot;label t_label\&quot; style=\&quot;color: cyan;\&quot;&gt;Username:&lt;/label&gt;&quot;,new_label_3()),
    ?_assertEqual([module,id,actions,show_if,class,style,text,html_encode],
 	 element_label:reflect())
   ].</diff>
      <filename>test/src/elements/html/element_label_test.erl</filename>
    </modified>
    <modified>
      <diff>@@ -28,12 +28,12 @@ new_link_5() -&gt;
   lists:flatten(element_link:render(&quot;5&quot;,Rec_link)).
 
 basic_test_() -&gt;
-  [?_assertEqual(&quot;&lt;a id='1' href='javascript:' class='link'/&gt;&quot;, new_link_1()),
-   ?_assertEqual(&quot;&lt;a id='2' href='javascript:' class='link'/&gt;&quot;, new_link_2()),
-   ?_assertEqual(&quot;&lt;a id='3' href='javascript:' class='link'/&gt;&quot;, new_link_3()),
-   ?_assert(eunit_helper:regexpMatch(&quot;&lt;a id='4' href='javascript:' class='link'&gt;&lt;img id='.*?' class='image' src='/path/to/image.gif'/&gt;&lt;/a&gt;&quot;,
+  [?_assertEqual(&quot;&lt;a id=\&quot;1\&quot; href=\&quot;javascript:\&quot; class=\&quot;link\&quot;/&gt;&quot;, new_link_1()),
+   ?_assertEqual(&quot;&lt;a id=\&quot;2\&quot; href=\&quot;javascript:\&quot; class=\&quot;link\&quot;/&gt;&quot;, new_link_2()),
+   ?_assertEqual(&quot;&lt;a id=\&quot;3\&quot; href=\&quot;javascript:\&quot; class=\&quot;link\&quot;/&gt;&quot;, new_link_3()),
+   ?_assert(eunit_helper:regexpMatch(&quot;&lt;a id=\&quot;4\&quot; href=\&quot;javascript:\&quot; class=\&quot;link\&quot;&gt;&lt;img id=\&quot;.*?\&quot; class=\&quot;image\&quot; src=\&quot;/path/to/image.gif\&quot;/&gt;&lt;/a&gt;&quot;,
                                      new_link_4())),
-   ?_assertEqual(&quot;&lt;a id='5' href='not_javascript' class='link'&gt;LINK&amp;nbsp;TEXTA LINK BODY&lt;/a&gt;&quot;, new_link_5()),
+   ?_assertEqual(&quot;&lt;a id=\&quot;5\&quot; href=\&quot;not_javascript\&quot; class=\&quot;link\&quot;&gt;LINK&amp;nbsp;TEXTA LINK BODY&lt;/a&gt;&quot;, new_link_5()),
    ?_assertEqual([module,id,actions,show_if,class,style,text,body, html_encode,url,postback],
 	 element_link:reflect())
   ].</diff>
      <filename>test/src/elements/html/element_link_test.erl</filename>
    </modified>
    <modified>
      <diff>@@ -33,12 +33,12 @@ new_list_6() -&gt;
 
 basic_test_() -&gt;
   [
-   ?_assertEqual(&quot;&lt;ul id='1' class='list'/&gt;&quot;,new_list_1()),
-   ?_assertEqual(&quot;&lt;ul id='2' class='list t_list'/&gt;&quot;,new_list_2()),
-   ?_assertEqual(&quot;&lt;ul id='3' class='list t_list' style='color: cyan;'&gt;SOME BODY&lt;/ul&gt;&quot;,new_list_3()),
-   ?_assertEqual(&quot;&lt;ol id='4' class='list'/&gt;&quot;,new_list_4()),
-   ?_assertEqual(&quot;&lt;ol id='5' class='list t_list'/&gt;&quot;,new_list_5()),
-   ?_assertEqual(&quot;&lt;ol id='6' class='list t_list' style='color: cyan;'&gt;SOME BODY&lt;/ol&gt;&quot;,new_list_6()),
+   ?_assertEqual(&quot;&lt;ul id=\&quot;1\&quot; class=\&quot;list\&quot;/&gt;&quot;,new_list_1()),
+   ?_assertEqual(&quot;&lt;ul id=\&quot;2\&quot; class=\&quot;list t_list\&quot;/&gt;&quot;,new_list_2()),
+   ?_assertEqual(&quot;&lt;ul id=\&quot;3\&quot; class=\&quot;list t_list\&quot; style=\&quot;color: cyan;\&quot;&gt;SOME BODY&lt;/ul&gt;&quot;,new_list_3()),
+   ?_assertEqual(&quot;&lt;ol id=\&quot;4\&quot; class=\&quot;list\&quot;/&gt;&quot;,new_list_4()),
+   ?_assertEqual(&quot;&lt;ol id=\&quot;5\&quot; class=\&quot;list t_list\&quot;/&gt;&quot;,new_list_5()),
+   ?_assertEqual(&quot;&lt;ol id=\&quot;6\&quot; class=\&quot;list t_list\&quot; style=\&quot;color: cyan;\&quot;&gt;SOME BODY&lt;/ol&gt;&quot;,new_list_6()),
    ?_assertEqual([module,id,actions,show_if,class,style,numbered,body],
 	 element_list:reflect())
   ].</diff>
      <filename>test/src/elements/html/element_list_test.erl</filename>
    </modified>
    <modified>
      <diff>@@ -20,9 +20,9 @@ new_listitem_3() -&gt;
   lists:flatten(element_listitem:render(&quot;3&quot;,Rec_listitem)).
 
 basic_test_() -&gt;
-  [?_assertEqual(&quot;&lt;li id='1' class='listitem'/&gt;&quot;,new_listitem_1()),
-   ?_assertEqual(&quot;&lt;li id='2' class='listitem t_listitem'/&gt;&quot;,new_listitem_2()),
-   ?_assertEqual(&quot;&lt;li id='3' class='listitem t_listitem' style='color: cyan;'&gt;http://an_listitem.com/sample/listitem.jpg&lt;/li&gt;&quot;,new_listitem_3()),
+  [?_assertEqual(&quot;&lt;li id=\&quot;1\&quot; class=\&quot;listitem\&quot;/&gt;&quot;,new_listitem_1()),
+   ?_assertEqual(&quot;&lt;li id=\&quot;2\&quot; class=\&quot;listitem t_listitem\&quot;/&gt;&quot;,new_listitem_2()),
+   ?_assertEqual(&quot;&lt;li id=\&quot;3\&quot; class=\&quot;listitem t_listitem\&quot; style=\&quot;color: cyan;\&quot;&gt;http://an_listitem.com/sample/listitem.jpg&lt;/li&gt;&quot;,new_listitem_3()),
    ?_assertEqual([module,id,actions,show_if,class,style,body,text,html_encode],
 	 element_listitem:reflect())
   ].</diff>
      <filename>test/src/elements/html/element_listitem_test.erl</filename>
    </modified>
    <modified>
      <diff>@@ -20,9 +20,9 @@ new_p_3() -&gt;
   lists:flatten(element_p:render(&quot;3&quot;,Rec_p)).
 
 basic_test_() -&gt;
-  [?_assertEqual(&quot;&lt;p id='1' class='p'/&gt;&quot;,new_p_1()),
-   ?_assertEqual(&quot;&lt;p id='2' class='p t_p'/&gt;&quot;,new_p_2()),
-   ?_assertEqual(&quot;&lt;p id='3' class='p t_p' style='color: cyan;'/&gt;&quot;,new_p_3()),
+  [?_assertEqual(&quot;&lt;p id=\&quot;1\&quot; class=\&quot;p\&quot;/&gt;&quot;,new_p_1()),
+   ?_assertEqual(&quot;&lt;p id=\&quot;2\&quot; class=\&quot;p t_p\&quot;/&gt;&quot;,new_p_2()),
+   ?_assertEqual(&quot;&lt;p id=\&quot;3\&quot; class=\&quot;p t_p\&quot; style=\&quot;color: cyan;\&quot;/&gt;&quot;,new_p_3()),
    ?_assertEqual([module,id,actions,show_if,class,style,body],
 	 element_p:reflect())
   ].</diff>
      <filename>test/src/elements/html/element_p_test.erl</filename>
    </modified>
    <modified>
      <diff>@@ -20,9 +20,9 @@ new_span_3() -&gt;
   lists:flatten(element_span:render(&quot;3&quot;,Rec_span)).
 
 basic_test_() -&gt;
-  [?_assertEqual(&quot;&lt;span id='1'/&gt;&quot;,new_span_1()),
-   ?_assertEqual(&quot;&lt;span id='2' class='t_span'/&gt;&quot;,new_span_2()),
-   ?_assertEqual(&quot;&lt;span id='3' class='t_span' style='color: cyan;'&gt;Some&amp;nbsp;Text&lt;/span&gt;&quot;, new_span_3()),
+  [?_assertEqual(&quot;&lt;span id=\&quot;1\&quot;&gt;&lt;/span&gt;&quot;,new_span_1()),
+   ?_assertEqual(&quot;&lt;span id=\&quot;2\&quot; class=\&quot;t_span\&quot;&gt;&lt;/span&gt;&quot;,new_span_2()),
+   ?_assertEqual(&quot;&lt;span id=\&quot;3\&quot; class=\&quot;t_span\&quot; style=\&quot;color: cyan;\&quot;&gt;Some&amp;nbsp;Text&lt;/span&gt;&quot;, new_span_3()),
    ?_assertEqual([module,id,actions,show_if,class,style,text, html_encode],
 	 element_span:reflect())
   ].</diff>
      <filename>test/src/elements/html/element_span_test.erl</filename>
    </modified>
    <modified>
      <diff>@@ -20,9 +20,9 @@ new_value_3() -&gt;
   lists:flatten(element_value:render(&quot;3&quot;,Rec_value)).
 
 basic_test_() -&gt;
-  [?_assertEqual(&quot;&lt;span id='1' class='value'/&gt;&quot;,new_value_1()),
-   ?_assertEqual(&quot;&lt;span id='2' class='value t_value'/&gt;&quot;,new_value_2()),
-   ?_assertEqual(&quot;&lt;span id='3' class='value t_value' style='color: cyan;'&gt;TEXT&lt;/span&gt;&quot;,new_value_3()),
+  [?_assertEqual(&quot;&lt;span id=\&quot;1\&quot; class=\&quot;value\&quot;&gt;&lt;/span&gt;&quot;,new_value_1()),
+   ?_assertEqual(&quot;&lt;span id=\&quot;2\&quot; class=\&quot;value t_value\&quot;&gt;&lt;/span&gt;&quot;,new_value_2()),
+   ?_assertEqual(&quot;&lt;span id=\&quot;3\&quot; class=\&quot;value t_value\&quot; style=\&quot;color: cyan;\&quot;&gt;TEXT&lt;/span&gt;&quot;,new_value_3()),
    ?_assertEqual([module,id,actions,show_if,class,style,text,html_encode],
 	 element_value:reflect())
   ].</diff>
      <filename>test/src/elements/html/element_value_test.erl</filename>
    </modified>
    <modified>
      <diff>@@ -131,6 +131,7 @@ N.prototype.$validate_and_serialize = function(triggerID) {
 	var s = &quot;&quot;;
 	var is_valid = true;
 	var elements = this.$get_elements_to_serialize();
+
 	for (var i=0; i&lt;elements.length; i++) {
 		element = elements[i];
 		if (element.validator &amp;&amp; (element.validator.trigger.id == triggerID) &amp;&amp; !element.validator.validate()) {
@@ -253,6 +254,7 @@ N.prototype.$do_windex_comet = function(postbackInfo) {
 N.$upload = function(form) {
 	var n = Nitrogen.$lookup(Nitrogen.$current_id);
 	form.domState.value = n.$dom_state;
+	form.action = n.$url;
 	form.submit();
 	form.reset();
 }
@@ -439,6 +441,7 @@ N.$droppable = function(dropObj, dropOptions, dropPostbackInfo) {
 
 N.$sortitem = function(sortItem, sortTag) {
 	sortItem.$sort_tag = sortTag;
+	sortItem.$drag_tag = sortTag;
 }
 
 N.$sortblock = function(sortBlock, sortOptions, sortPostbackInfo) {</diff>
      <filename>www/nitrogen.js</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>src/elements/html/element_label.erl</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>e6116382661529ffd2792e57133004e758fb6178</id>
    </parent>
    <parent>
      <id>19b6f15aecead6e0cb0d1de9317551bf1ef735ab</id>
    </parent>
  </parents>
  <author>
    <name>Rusty Klophaus</name>
    <email>rklophaus@gmail.com</email>
  </author>
  <url>http://github.com/rklophaus/nitrogen/commit/c74522dcd3821e5d201bad7a82c9b7acdf1674eb</url>
  <id>c74522dcd3821e5d201bad7a82c9b7acdf1674eb</id>
  <committed-date>2009-10-02T04:29:09-07:00</committed-date>
  <authored-date>2009-10-02T04:29:09-07:00</authored-date>
  <message>Merge branch 'master' of git@github.com:rklophaus/nitrogen

Conflicts:
	Nitrogen.tmproj</message>
  <tree>e3e2728f83c48035f7eaddc87bab4aecc255d387</tree>
  <committer>
    <name>Rusty Klophaus</name>
    <email>rklophaus@gmail.com</email>
  </committer>
</commit>
