Index: Default/upnpinfo.html
===================================================================
--- Default/upnpinfo.html	(revision 10427)
+++ Default/upnpinfo.html	(working copy)
@@ -1,62 +0,0 @@
-[% pagetitle = 'SongInfo' %]
-[% pageicon = 'SongInfo' %]
-[% PROCESS pageheader.html %] 
-
-<div id="songInfoHeader">
-<a href="status_header.html?p0=playlist&p1=play&p2=[% itemobj.url | uri %]&player=[% player | uri %]" target="status">[% "PLAY_THIS_SONG" | string %]</a>
-<br>
-<a href="status_header.html?p0=playlist&p1=add&p2=[% itemobj.url | uri %]&player=[% player | uri %]" target="status">[% FILTER nbsp; "ADD_THIS_SONG_TO_PLAYLIST" | string; END %]</a>
-</div>
-<div class="songInfo">
-	<ul>
-		
-		[% IF itemobj.albumArtURI %]
-			<li><div class="songInfoTitle"></div>
-				<div class="songInfoText"><img src="[% itemobj.albumArtURI %]" /></div>
-			</li>
-		[% END %]
-		
-		<li><div class="songInfoTitle">[% "TITLE" | string; "COLON" | string %]</div>
-			<div class="songInfoText">[% itemobj.title | html %]</div>
-		</li>
-		
-		[% IF itemobj.artist %] 
-			<li><div class="songInfoTitle">[% "ARTIST" | string; "COLON" | string %]</div>
-				<div class="songInfoText">[% itemobj.artist | html %]</div>
-			</li>
-		[% END %]
-		
-		[% IF itemobj.album %] 
-			<li><div class="songInfoTitle">[% "ALBUM" | string; "COLON" | string %]</div>
-				<div class="songInfoText">[% itemobj.album | html %]</div>
-			</li>
-		[% END %]
-		
-		[% IF itemobj.genre %] 
-			<li><div class="songInfoTitle">[% "GENRE" | string; "COLON" | string %]</div>
-				<div class="songInfoText">[% itemobj.genre | html %]</div>
-			</li>
-		[% END %]
-		
-		[% IF itemobj.duration %] 
-			<li><div class="songInfoTitle">[% "LENGTH" | string; "COLON" | string %]</div>
-				<div class="songInfoText">[% itemobj.duration | html %]</div>
-			</li>
-		[% END %]
-		
-		[% IF itemobj.url %]
-			<li><div class="songInfoTitle">[% "URL" | string; "COLON" | string %]</div>
-				<div class="songInfoText"><a href="[% itemobj.url %]" target="_new">[% itemobj.url | html %]</a></div>
-			</li>
-		[% END %]
-		
-		[% IF itemobj.blurbText %]
-			<li><div class="songInfoTitle">[% "COMMENT" | string; "COLON" | string %]</div>
-				<div class="songInfoText">[% itemobj.blurbText | html_line_break %]</div>
-			</li>
-		[% END %]
-	
-	</ul>
-</div>
-
-[% PROCESS pagefooter.html %]
\ No newline at end of file
Index: Moser/cmdwrappers
===================================================================
--- Moser/cmdwrappers	(revision 10427)
+++ Moser/cmdwrappers	(working copy)
@@ -144,19 +144,33 @@
 [%- END %]
 
 [% BLOCK browsecontrols -%]
-    [% WRAPPER playlink   %][% PROCESS cmdHRef cmdType = "play"   %][% END %]
-    [% WRAPPER insertlink %][% PROCESS cmdHRef cmdType = "insert" %][% END %]
-    [% WRAPPER addlink    %][% PROCESS cmdHRef cmdType = "add"    %][% END %]
-    [% WRAPPER removelink %][% PROCESS cmdHRef cmdType = "remove" %][% END %]
+    [% IF showplayall %]
+        [% WRAPPER playlink noTarget = 1 %]href="[% playallhref %]"[% END %]
+        [% WRAPPER addlink  noTarget = 1 %]href="[% addallhref %]"[% END %]
+    [% ELSIF showdescend && href %]
+        [% WRAPPER descendlink %][% href %][% END %]
+        [% IF showplay %]
+            [% WRAPPER playlink %][% PROCESS cmdHRef cmdType='play' %][% END %]
+            [% WRAPPER addlink  %][% PROCESS cmdHRef cmdType='add'  %][% END %]
+        [% END %]
+    [% ELSE %]
+        [% WRAPPER playlink   %][% PROCESS cmdHRef cmdType = "play"   %][% END %]
+        [% WRAPPER insertlink %][% PROCESS cmdHRef cmdType = "insert" %][% END %]
+        [% WRAPPER addlink    %][% PROCESS cmdHRef cmdType = "add"    %][% END %]
+        [% WRAPPER removelink %][% PROCESS cmdHRef cmdType = "remove" %][% END %]
+    [% END %]
 [%- END %]
 
 [% BLOCK trackinfo -%]
-<span class="songtitle"><a [% PROCESS songinfoItemHRef %][% IF item.currentsong %] id="currentsong"[% END %] target="browser">[% item.title | html %]</a></span>
-[% IF item.album %]
-  [%- "FROM" | string -%] <span class="album"><a [% PROCESS albumItemHRef %] target="browser">[% item.itemobj.album.title | html %]</a></span>
+[% IF item.infohref %]
+   <span class="songtitle"><a [% item.infohref %] target="browser">[% ( item.text || item.title ) | html %]</a></span>
+[% ELSE %]<span class="songtitle"><a [% PROCESS songinfoItemHRef %][% IF item.currentsong %] id="currentsong"[% END %] target="browser">[% item.title | html %]</a></span>
+  [% IF item.album %]
+    [%- "FROM" | string -%] <span class="album"><a [% PROCESS albumItemHRef %] target="browser">[% item.itemobj.album.title | html %]</a></span>
+  [%- END %]
+  [% IF item.includeArtist; PROCESS artistsAsHTML.html itemobj = item.itemobj; END %]
+[% END %]
 [%- END %]
-[% IF item.includeArtist; PROCESS artistsAsHTML.html itemobj = item.itemobj; END %]
-[%- END %]
 
 [% BLOCK iteminfo -%]
 [%- IF item.descend -%]
Index: Moser/browsedb.html
===================================================================
--- Moser/browsedb.html	(revision 10427)
+++ Moser/browsedb.html	(working copy)
@@ -27,7 +27,14 @@
           itemobj = item.itemobj
           attributes = item.attributes
           mixerlinks = item.mixerlinks
-	      odd = item.odd %]
+          odd = item.odd
+          anchor      = item.anchor 
+          showdescend = item.showdescend
+          showplay    = item.showplay
+          showplayall = item.showplayall
+          playallhref = item.playallhref
+          addallhref  = item.addallhref
+          href        = item.href %]
 	   [%- PROCESS iteminfo IF contentwrapper == 'contentitem' -%]
       [%- END %][%# end contentitem wrapper %]
      [%- END %][%# end for browse_items %]
Index: Fishbone/cmdwrappers_Fishbone
===================================================================
--- Fishbone/cmdwrappers_Fishbone	(revision 10427)
+++ Fishbone/cmdwrappers_Fishbone	(working copy)
@@ -56,20 +56,33 @@
 
 [% BLOCK browsecontrols -%]
 	[% width='9' height='11' target='status' %]
-	[%- WRAPPER playlink   -%][%- PROCESS cmdHRef cmdType='play'   -%][%- END %]
-	[%- WRAPPER insertlink -%][%- PROCESS cmdHRef cmdType='insert' -%][%- END %]
-	[%- WRAPPER addlink    -%][%- PROCESS cmdHRef cmdType='add'    -%][%- END %]
-	[%- WRAPPER removelink -%][%- PROCESS cmdHRef cmdType='remove' -%][%- END %]
-	<span class="mixers">[%- FOREACH mixer = mixerlinks.values.sort -%]
-		[%- PROCESS $mixer -%]
-	[%- END %]</span>
+	[% IF showplayall %]
+		[% WRAPPER playlink noTarget = 1 %]href="[% playallhref %]"[% END %]
+		[% WRAPPER addlink  noTarget = 1 %]href="[% addallhref %]"[% END %]
+	[% ELSIF showdescend && href %]
+		[% WRAPPER descendlink %][% href %][% END %]
+		[% IF showplay %]
+			[% WRAPPER playlink %][% PROCESS cmdHRef cmdType='play' %][% END %]
+			[% WRAPPER addlink  %][% PROCESS cmdHRef cmdType='add'  %][% END %]
+		[% END %]
+	[% ELSE %]
+		[%- WRAPPER playlink   -%][%- PROCESS cmdHRef cmdType='play'   -%][%- END %]
+		[%- WRAPPER insertlink -%][%- PROCESS cmdHRef cmdType='insert' -%][%- END %]
+		[%- WRAPPER addlink    -%][%- PROCESS cmdHRef cmdType='add'    -%][%- END %]
+		[%- WRAPPER removelink -%][%- PROCESS cmdHRef cmdType='remove' -%][%- END %]
+		<span class="mixers">[%- FOREACH mixer = mixerlinks.values.sort -%]
+			[%- PROCESS $mixer -%]
+		[%- END %]</span>
+	[% END %]
 [%- END %]
 
 [% BLOCK trackinfo %]
 	[% IF item.currentsong %]
 		<a name="currentsong"></a>
 	[% END %]
-	[% IF item.num || item.num == 0 %]
+	[% IF item.infohref %]
+			<a [% item.infohref %] target="browser">[% ( item.text || item.title ) | html %]</a>
+	[% ELSIF item.num || item.num == 0 %]
 			&nbsp;[% item.num + 1 %].&nbsp;
 			<b><a [% PROCESS songinfoItemHRef %] target="browser">[% item.title | html %]</a></b>
 	[%# browse list items %]
Index: Nokia770/cmdwrappers
===================================================================
--- Nokia770/cmdwrappers	(revision 10427)
+++ Nokia770/cmdwrappers	(working copy)
@@ -133,14 +133,25 @@
 
 [% BLOCK browsecontrols_abbr %]
 	[% width='20' height='20'  %]
-	[% WRAPPER playlink   %][% PROCESS cmdHRef cmdType='play' statusroot = 'status.html'  %][% END %]
-	[%# WRAPPER addlink    %][%# PROCESS cmdHRef cmdType='add'  statusroot = 'playlist.html' %][%# END %]
-<td class = 'listing' align = 'center'>
-<img src="[% webroot %]html/images/add.gif" onClick = 'addItem("[% PROCESS ajaxCmdHRef cmdType='add' %]");' border=0 height="20" alt='Add to playlist' title='Add to playlist'>
-</td>
-       [% FOREACH mixer = mixerlinks.values.sort %]
-               <td class="[% isCurrent ? "listing2" : "listing" %]" align="center">[% PROCESS $mixer %]</td>
-       [% END %]
+	[% IF showplayall %]
+		[% WRAPPER playlink noTarget = 1 %]href="[% playallhref %]"[% END %]
+		[% WRAPPER addlink  noTarget = 1 %]href="[% addallhref %]"[% END %]
+	[% ELSIF showdescend && href %]
+		[% WRAPPER descendlink %][% href %][% END %]
+		[% IF showplay %]
+			[% WRAPPER playlink %][% PROCESS cmdHRef cmdType='play' %][% END %]
+			[% WRAPPER addlink  %][% PROCESS cmdHRef cmdType='add'  %][% END %]
+		[% END %]
+	[% ELSE %]
+		[% WRAPPER playlink   %][% PROCESS cmdHRef cmdType='play' statusroot = 'status.html'  %][% END %]
+		[%# WRAPPER addlink    %][%# PROCESS cmdHRef cmdType='add'  statusroot = 'playlist.html' %][%# END %]
+	<td class = 'listing' align = 'center'>
+	<img src="[% webroot %]html/images/add.gif" onClick = 'addItem("[% PROCESS ajaxCmdHRef cmdType='add' %]");' border=0 height="20" alt='Add to playlist' title='Add to playlist'>
+	</td>
+		   [% FOREACH mixer = mixerlinks.values.sort %]
+				   <td class="[% isCurrent ? "listing2" : "listing" %]" align="center">[% PROCESS $mixer %]</td>
+		   [% END %]
+	[% END %]
 [% END %]
 
 [% BLOCK browsecontrols %]
@@ -166,7 +177,9 @@
 [% END %]
 
 [% BLOCK trackinfo %]
-	[% IF item.num || item.num == 0 %]
+	[% IF item.infohref %]
+			<a [% item.infohref %] target="browser">[% ( item.text || item.title ) | html %]</a>
+	[% ELSIF item.num || item.num == 0 %]
 			<b><a [% PROCESS cmdHRef cmdType = 'jump' num = item.num %] >&nbsp;[% item.num + 1 %].&nbsp;</a>
 			<a [% PROCESS cmdHRef cmdType = 'jump' num = item.num %] >[% item.title | html %]</a></b>
 	[%# browse list items %]
Index: Nokia770/browsedbitems_list.html
===================================================================
--- Nokia770/browsedbitems_list.html	(revision 10427)
+++ Nokia770/browsedbitems_list.html	(working copy)
@@ -9,10 +9,17 @@
 		<table width = '100%' class = 'noborder'>
 		<tr [% IF specialClass %]class = '[% specialClass %]'[% END %]>
 	[% PROCESS browsecontrols_abbr
-		itemobj = item.itemobj
-		attributes = item.attributes
-		odd = item.odd
-		mixerlinks = item.mixerlinks %]
+		itemobj     = item.itemobj
+		attributes  = item.attributes
+		odd         = item.odd
+		mixerlinks  = item.mixerlinks
+		anchor      = item.anchor 
+		showdescend = item.showdescend
+		showplay    = item.showplay
+		showplayall = item.showplayall
+		playallhref = item.playallhref
+		addallhref  = item.addallhref
+		href        = item.href %]
 		</tr>
 		</table>
 	</td>
Index: EN/upnpinfo.html
===================================================================
--- EN/upnpinfo.html	(revision 0)
+++ EN/upnpinfo.html	(revision 0)
@@ -0,0 +1,62 @@
+[% pagetitle = 'SongInfo' %]
+[% pageicon = 'SongInfo' %]
+[% PROCESS pageheader.html %] 
+
+<div id="songInfoHeader">
+<a href="status_header.html?p0=playlist&p1=play&p2=[% itemobj.url | uri %]&player=[% player | uri %]" target="status">[% "PLAY_THIS_SONG" | string %]</a>
+<br>
+<a href="status_header.html?p0=playlist&p1=add&p2=[% itemobj.url | uri %]&player=[% player | uri %]" target="status">[% FILTER nbsp; "ADD_THIS_SONG_TO_PLAYLIST" | string; END %]</a>
+</div>
+<div class="songInfo">
+	<ul>
+		
+		[% IF itemobj.albumArtURI %]
+			<li><div class="songInfoTitle"></div>
+				<div class="songInfoText"><img src="[% itemobj.albumArtURI %]" /></div>
+			</li>
+		[% END %]
+		
+		<li><div class="songInfoTitle">[% "TITLE" | string; "COLON" | string %]</div>
+			<div class="songInfoText">[% itemobj.title | html %]</div>
+		</li>
+		
+		[% IF itemobj.artist %] 
+			<li><div class="songInfoTitle">[% "ARTIST" | string; "COLON" | string %]</div>
+				<div class="songInfoText">[% itemobj.artist | html %]</div>
+			</li>
+		[% END %]
+		
+		[% IF itemobj.album %] 
+			<li><div class="songInfoTitle">[% "ALBUM" | string; "COLON" | string %]</div>
+				<div class="songInfoText">[% itemobj.album | html %]</div>
+			</li>
+		[% END %]
+		
+		[% IF itemobj.genre %] 
+			<li><div class="songInfoTitle">[% "GENRE" | string; "COLON" | string %]</div>
+				<div class="songInfoText">[% itemobj.genre | html %]</div>
+			</li>
+		[% END %]
+		
+		[% IF itemobj.duration %] 
+			<li><div class="songInfoTitle">[% "LENGTH" | string; "COLON" | string %]</div>
+				<div class="songInfoText">[% itemobj.duration | html %]</div>
+			</li>
+		[% END %]
+		
+		[% IF itemobj.url %]
+			<li><div class="songInfoTitle">[% "URL" | string; "COLON" | string %]</div>
+				<div class="songInfoText"><a href="[% itemobj.url %]" target="_new">[% itemobj.url | html %]</a></div>
+			</li>
+		[% END %]
+		
+		[% IF itemobj.blurbText %]
+			<li><div class="songInfoTitle">[% "COMMENT" | string; "COLON" | string %]</div>
+				<div class="songInfoText">[% itemobj.blurbText | html_line_break %]</div>
+			</li>
+		[% END %]
+	
+	</ul>
+</div>
+
+[% PROCESS pagefooter.html %]
\ No newline at end of file
Index: EN/cmdwrappers
===================================================================
--- EN/cmdwrappers	(revision 10427)
+++ EN/cmdwrappers	(working copy)
@@ -192,10 +192,21 @@
 [% BLOCK browsecontrols %]
 	[% SET class = odd ? 'odd" bgcolor="#d0d0d0':'even" bgcolor="#FFFFFF' target='status' %]
 	[% header='1' width='13' height='13' %]
-	[% WRAPPER playlink %][% PROCESS cmdHRef cmdType='play' %][% END %]
-	[% WRAPPER addlink  %][% PROCESS cmdHRef cmdType='add'  %][% END %]
-	[% FOREACH mixer = mixerlinks.values.sort %]
-		[% PROCESS $mixer %]
+	[% IF showplayall %]
+		[% WRAPPER playlink noTarget = 1 %]href="[% playallhref %]"[% END %]
+		[% WRAPPER addlink  noTarget = 1 %]href="[% addallhref %]"[% END %]
+	[% ELSIF showdescend && href %]
+		[% WRAPPER descendlink %][% href %][% END %]
+		[% IF showplay %]
+			[% WRAPPER playlink %][% PROCESS cmdHRef cmdType='play' %][% END %]
+			[% WRAPPER addlink  %][% PROCESS cmdHRef cmdType='add'  %][% END %]
+		[% END %]
+	[% ELSE %]
+		[% WRAPPER playlink %][% PROCESS cmdHRef cmdType='play' %][% END %]
+		[% WRAPPER addlink  %][% PROCESS cmdHRef cmdType='add'  %][% END %]
+		[% FOREACH mixer = mixerlinks.values.sort %]
+			[% PROCESS $mixer %]
+		[% END %]
 	[% END %]
 [% END %]
 
@@ -211,7 +222,9 @@
 [% BLOCK trackinfo %]
 	[% IF item.currentsong %][% item.noHref=1 %]<b>[% END %]
 	
-	[% IF item.num || item.num == 0 %]
+	[% IF item.infohref %]
+			<a [% item.infohref %] target="browser">[% ( item.text || item.title ) | html %]</a>
+	[% ELSIF item.num || item.num == 0 %]
 			[% UNLESS item.noHref %]<a [% PROCESS songinfoItemHRef %] target="browser">[% END %]
 			[% item.title | html %][% UNLESS item.noHref %]</a>[% END %]
 	[%# browse list items %]
Index: Handheld/cmdwrappers_Handheld
===================================================================
--- Handheld/cmdwrappers_Handheld	(revision 10427)
+++ Handheld/cmdwrappers_Handheld	(working copy)
@@ -114,18 +114,33 @@
 
 [% BLOCK browsecontrols %]
 	[% SET width='13' height='13' -%]
-	[% WRAPPER playlink %][% PROCESS cmdHRef cmdType='play' %][% END -%]
-	<td width="1" bgcolor="[% PROCESS oddOrEvenC %]">&nbsp;</td>
-	[% WRAPPER addlink  %][% PROCESS cmdHRef cmdType='add'  %][% END -%]
-	[% FOREACH mixer = mixerlinks.values.sort %]
-		<td width="1" bgcolor="[% PROCESS oddOrEvenC %]">&nbsp;</td><td width="1" bgcolor="[% PROCESS oddOrEvenC %]">[% PROCESS $mixer %]</td>
+	[% IF showplayall %]
+		[% WRAPPER playlink noTarget = 1 %]href="[% playallhref %]"[% END %]
+		<td width="1" bgcolor="[% PROCESS oddOrEvenC %]">&nbsp;</td>
+		[% WRAPPER addlink  noTarget = 1 %]href="[% addallhref %]"[% END %]
+	[% ELSIF showdescend && href %]
+		[% WRAPPER descendlink %][% href %][% END %]
+		[% IF showplay %]
+			[% WRAPPER playlink %][% PROCESS cmdHRef cmdType='play' %][% END %]
+			<td width="1" bgcolor="[% PROCESS oddOrEvenC %]">&nbsp;</td>
+			[% WRAPPER addlink  %][% PROCESS cmdHRef cmdType='add'  %][% END %]
+		[% END %]
+	[% ELSE %]
+		[% WRAPPER playlink %][% PROCESS cmdHRef cmdType='play' %][% END -%]
+		<td width="1" bgcolor="[% PROCESS oddOrEvenC %]">&nbsp;</td>
+		[% WRAPPER addlink  %][% PROCESS cmdHRef cmdType='add'  %][% END -%]
+		[% FOREACH mixer = mixerlinks.values.sort %]
+			<td width="1" bgcolor="[% PROCESS oddOrEvenC %]">&nbsp;</td><td width="1" bgcolor="[% PROCESS oddOrEvenC %]">[% PROCESS $mixer %]</td>
+		[% END %]
 	[% END %]
 [% END %]
 
 [% BLOCK trackinfo %]
 	
 	[%# current playlist items %]
-	[% IF item.num || item.num == 0 %]
+	[% IF item.infohref %]
+		<a [% item.infohref %]>[% ( item.text || item.title ) | html %]</a>
+	[% ELSIF item.num || item.num == 0 %]
 		<a name=[% item.num %]>
 		<a [% PROCESS cmdHRef cmdType = 'jump' num = item.num %]>[% item.num + 1 %].</a>&nbsp;
 		<a [% PROCESS songinfoItemHRef %]>[% item.title %]</a>