Index: src/main/webapp/newsession.xhtml
===================================================================
--- src/main/webapp/newsession.xhtml	(revision 15)
+++ src/main/webapp/newsession.xhtml	(revision 16)
@@ -29,5 +29,5 @@
 	<br /> Domain/Profile Server:
 	<input type="url" name="url" id="profilesserverurl"
-		value="localhost:8080/profilesserver-1.4.2"
+		value="localhost:8080/profilesserver-1.4.4"
 		pattern=".*:[0-9]+/profilesserver" size="30"
 		onchange="connectDomain()"> </input>
@@ -43,5 +43,5 @@
 		<br /> <b>Participants</b> <br /> Parties Server: <input type="url"
 			name="url" id="partiesserverurl"
-			value="localhost:8080/partiesserver-1.4.2"
+			value="localhost:8080/partiesserver-1.4.4"
 			pattern=".*:[0-9]+/partiesserver" size="30"
 			onchange="connectParties()"> </input> <br /> <br /> <b>Party
@@ -49,19 +49,21 @@
 		</select> <br /> Profile: <select id="profileselection"></select> Filter: <input
 			type="text" id="filter" value="" maxlength="40" /> <br />
-		Parameters: { <input type="text" id="parameters"
-			onchange="updateParameters()" value="" maxlength="100" /> } <br />
-		<br />
+		Parameters: {
+		<textarea id="parameters" rows="2" cols="70"
+			onchange="updateParameters()" value="" />
+		} <br /> <br />
 
 		<div id="cobsetting">
-  			<input type="checkbox" id="advancedCobSettings" onchange="advancedCobSet()" ></input>
-  			Advanced COB settings<br/>
-  			<div id="advancedsettings" style="display:none">
+			<input type="checkbox" id="advancedCobSettings"
+				onchange="advancedCobSet()"></input> Advanced COB settings<br />
+			<div id="advancedsettings" style="display: none">
 				<b>COB party settings</b> <br /> Party : <select
 					id="cobpartyselection">
-				</select> <br /> Profile: <select id="cobprofileselection"></select>
-				Filter: <input type="text" id="cobfilter" value=""
-					maxlength="40" /> <br /> Parameters: { <input
-					type="text" id="cobparameters" onchange="updateCobParameters()"
-					value="" maxlength="100" /> } <br /> <br />
+				</select> <br /> Profile: <select id="cobprofileselection"></select> Filter:
+				<input type="text" id="cobfilter" value="" maxlength="40" /> <br />
+				<!--  -->
+				Parameters: { <textarea  id="cobparameters" rows="2" cols="70"
+					onchange="updateCobParameters()" value="" /> } <br />
+				<br />
 			</div>
 		</div>
@@ -113,4 +115,5 @@
 
 <script type="application/javascript">
+	
 	
 	
@@ -273,8 +276,8 @@
 	 refresh table: copy all parties elements in there.
 	 Typically parties is something like
-	 [{"uri":"http:130.161.180.1:8080/partiesserver/run/randomparty-1.4.2",
+	 [{"uri":"http:130.161.180.1:8080/partiesserver/run/randomparty-1.4.4",
 		 "capabilities":{"protocols":["SAOP"]},
 		 "description":"places random bids until it can accept an offer with utility >0.6",
-		 "id":"randomparty-1.4.2",
+		 "id":"randomparty-1.4.4",
 		 "partyClass":"geniusweb.exampleparties.randomparty.RandomParty"},
 		 		 ...]
@@ -438,8 +441,11 @@
 			
 			cell1.innerHTML = partyprofiles[pp]["party"]["partyref"];
-			cell2.innerHTML = JSON.stringify(partyprofiles[pp]["party"]["parameters"]);
+			// help browser breaking too large strings 
+			cell2.innerHTML = JSON.stringify(partyprofiles[pp]["party"]["parameters"]).replace(/,/g,", ");
+			cell2.setAttribute("style","overflow-wrap: anywhere;");
 			cell3.innerHTML = partyprofiles[pp]["profile"];
 			cell4.innerHTML = cobpartyprofiles[pp]["party"]["partyref"];
-			cell5.innerHTML = JSON.stringify(cobpartyprofiles[pp]["party"]["parameters"]);
+			cell5.innerHTML = JSON.stringify(cobpartyprofiles[pp]["party"]["parameters"]).replace(/,/g,", ");
+			cell5.setAttribute("style","overflow-wrap: anywhere;");
 			cell6.innerHTML = cobpartyprofiles[pp]["profile"];
 		}
@@ -571,6 +577,6 @@
 	function init() {
 		selectProtocol();
-		document.getElementById("partiesserverurl").value =window.location.hostname+":8080/partiesserver-1.4.2"
-		document.getElementById("profilesserverurl").value =window.location.hostname+":8080/profilesserver-1.4.2"
+		document.getElementById("partiesserverurl").value =window.location.hostname+":8080/partiesserver-1.4.4"
+		document.getElementById("profilesserverurl").value =window.location.hostname+":8080/profilesserver-1.4.4"
 		connectDomain();
 		connectParties();
@@ -585,4 +591,5 @@
 
 
+
 </script>
 
Index: src/main/webapp/newtournament.xhtml
===================================================================
--- src/main/webapp/newtournament.xhtml	(revision 15)
+++ src/main/webapp/newtournament.xhtml	(revision 16)
@@ -87,12 +87,16 @@
 		<!-- party  1 selection -->
 		Party: <select id="partyselection">
-		</select> Parameters: { <input type="text" id="parameters"
-			onchange="getParameters('parameters')" value="" maxlength="100" /> }
-		<br />
+		</select> 
+		<br /> Parameters: {
+		<textarea id="parameters" rows="2" cols="70"
+			onchange="getParameters('parameters')" value="" />
+		} <br />
 		<!-- party 2 selection -->
 		<div class="onlySHAOP">
 			COB: <select id="partyselection2">
-			</select> Parameters: { <input type="text" id="parameters2"
-				onchange="getParameters('parameters2')" value="" maxlength="100" />
+			</select> 
+			<br /> Parameters: {
+			<textarea id="parameters2" rows="2" cols="70"
+				onchange="getParameters('parameters2')" value="" />
 			}
 		</div>
@@ -133,4 +137,5 @@
 
 <script type="application/javascript">
+	
 	
 	
@@ -397,5 +402,6 @@
 				var cell2 = row.insertCell(-1);
 				cell1.innerHTML = party["partyref"];
-				cell2.innerHTML = JSON.stringify(party["parameters"]);
+				cell2.innerHTML = JSON.stringify(party["parameters"]).replace(/,/g,", ");;
+				cell2.setAttribute("style","overflow-wrap: anywhere;");
 				if (col>0) {
 					cell1.className = cell2.className = "onlySHAOP";
@@ -556,6 +562,6 @@
 	*/
 	function init() {
-		document.getElementById("partiesserverurl").value =window.location.hostname+":8080/partiesserver-1.4.2";
-		document.getElementById("profilesserverurl").value =window.location.hostname+":8080/profilesserver-1.4.2";
+		document.getElementById("partiesserverurl").value =window.location.hostname+":8080/partiesserver-1.4.4";
+		document.getElementById("profilesserverurl").value =window.location.hostname+":8080/profilesserver-1.4.4";
 
 		selectProtocol();
@@ -580,4 +586,5 @@
 
 
+
 </script>
 
Index: src/main/webapp/plotlog.xhtml
===================================================================
--- src/main/webapp/plotlog.xhtml	(revision 15)
+++ src/main/webapp/plotlog.xhtml	(revision 16)
@@ -23,4 +23,5 @@
 	<div id="progress">Waiting for log file name</div>
 	<br />
+	<div>Notice, the plotted utilities do not include possible elicitation costs.</div>
 	<div style="width: 100%;">
 		<canvas id="canvas"></canvas>
Index: src/main/webapp/utilstable.xhtml
===================================================================
--- src/main/webapp/utilstable.xhtml	(revision 15)
+++ src/main/webapp/utilstable.xhtml	(revision 16)
@@ -29,5 +29,5 @@
 				<th align="center">run nr</th>
 				<th align="center">accepted bid</th>
-				<th align="center">party utilities</th>
+				<th align="center">party utility - penalty</th>
 			</tr>
 		</thead>
@@ -37,27 +37,25 @@
 
 	</table>
-
-
 </body>
 
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+	
+
+	
 <!-- Script to get/update the  table using the query given in the URL. -->
 <script type="application/javascript">
 	
 	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-	
-
 	
 	
@@ -227,5 +225,10 @@
         	
         	if (result['error']!=null) {
-        		row.insertCell(-1).innerHTML="session failed with error";
+        		var errstr="session failed:";
+        		var err=result['error'];
+        		if ("geniusweb.protocol.ProtocolException" in err) {
+        			errstr=errstr+err["geniusweb.protocol.ProtocolException"]['cause']['message'];
+        		}
+        		row.insertCell(-1).innerHTML=errstr;
         		return;
         	}
@@ -241,9 +244,10 @@
         		var party =  result['participants'][n]
         		var profile =party['profile'];
+            	var penalty=result['penalties'][n];
         		// make short name for readability
         		var partyname = party['party']['partyref'];
         		partyname = partyname.split('/');
         		partyname = partyname[partyname.length-1];
-        		addUtilityCell(row.insertCell(-1), agreedbid, partyname, profile);
+        		addUtilityCell(row.insertCell(-1), agreedbid, partyname, profile,penalty);
         	}
         }
@@ -255,8 +259,12 @@
         @param profileurl the profile url to use for the evaluation of the bid
         @param bid the accepted bid, not null.
-        */
-        function addUtilityCell(cell, agreedbid, partyname, profileurl) {
+        @param penalty costs made by the party, to be subtracted from total util.
+        	typically these are elicitation costs.
+        */
+        function addUtilityCell(cell, agreedbid, partyname, profileurl, penalty) {
         	var util = utility(profiles[profileurl],agreedbid);
-        	cell.innerHTML = Math.round(util*1000000)/1000000 +" :"+partyname;
+        	var rUtil = Math.round(util*1000000)/1000000;
+        	var rPenalty = Math.round( (penalty )*1000000)/1000000 ;
+        	cell.innerHTML = rUtil + "-" + rPenalty + " :"+partyname;
 
         }
