A ver que os parece esta solución....
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Documento sin título</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script language="JavaScript" type="text/JavaScript">
//Matriz donde se guarga el catalogo dse servicios
var mservicios=new Array();
var totalpressupost=0;
var totaltemps=0;
//Matriz donde se guarda las características de un servicio
var mservicio=new Array(3);
mservicio[0]="Servicio 1";
mservicio[1]=25.18;
mservicio[2]=33;
mservicios[0]=mservicio;
var mservicio=new Array(3);
mservicio[0]="Servicio 2";
mservicio[1]=18;
mservicio[2]=23;
mservicios[1]=mservicio;
var mservicio=new Array(3);
mservicio[0]="Servicio 3";
mservicio[1]=29;
mservicio[2]=13;
mservicios[2]=mservicio;
var mservicio=new Array(3);
mservicio[0]="Servicio 4";
mservicio[1]=50;
mservicio[2]=60;
mservicios[3]=mservicio;
//Asi tantos servicios como se quiera
function fcataleg(){
var codiHtml="<table width='80%' border='1' cellspacing='0' cellpadding='0'>";
codiHtml+="<tr><td><strong>Servicio</strong></td><td align='right'><strong>Precio</strong></td><td align='right'><strong>Tiempo</strong></td><td> </td><tr>";
for(i=0;i<mservicios.length;i++){
codiHtml+="<tr>"
+ "<td>" + mservicios[i][0] + "</td>"
+ "<td align='right'>" + mservicios[i][1] + "</td>"
+ "<td align='right'>" + mservicios[i][2] + "</td>"
+ "<td align='center'><input name=serv_'" + i + "' type='checkbox' id='serv_" + i + "' value='' onChange='fpressupost()' ></td>"
+ "</tr>";
}
codiHtml+="</table>";
document.getElementById("cataleg").innerHTML=codiHtml;
}
function fpressupost(){
totalpressupost=0;
totaltemps=0;
for(i=0;i<mservicios.length;i++){
if(document.getElementById("serv_"+i).checked){
totalpressupost+=mservicios[i][1];
totaltemps+=mservicios[i][2];
}
}
document.getElementById("pressupost").innerHTML="Total " + totalpressupost + " € (" + totaltemps + " minutos)";
}
</script>
</head>
<body onLoad="fcataleg()">
<span id="cataleg"></span><br>
<br>
<span id="pressupost">Total 0 € (0 minutos)</span>
</body>
</html>
Quim