Thanks SambaNeko, you are a legend
finnaly got ny head around it 
can i ask 1 more question,
each row has a button which should create a consecutive row which is not necessarily the last row on the table so i used the live() function
i tried this .appendto('table.timesheet #row1') but it creates the new row on the right outside the table range
HTML Code:
<script type="text/javascript">
$(document).ready(function(){
$("#add,.add").live('click',function(){ //.add is created dynamically but it doesnt work while #id a button on the dom and it works
var ix=$('tr.tsrow').length;
ix++;
$('#row1').clone().attr('id','row'+ix)
.find('.calendar').attr('id','date-'+ix).end()
.find('.clock').first().attr('id','start-'+ix).end().end()
.find('.clock').last().attr('id','finish-'+ix).end().end()
.find('select').attr('id','jobs-'+ix).end()
.find('.line').attr('id','deleteadd-'+ix)
.find('img:first').attr('id',ix).end()
.find('img:last').attr('id',ix).end()
.end()
.appendTo('table.timesheet');
});
});
</script>