Been working on this over the last week, on and off after getting in from work. Comments welcome. :cheers: