xtab<-function(x,caption='Table X.', file=stdout(), width='"100%"', cornername='', dec=rep(1,ncol(x))){
  nc<-ncol(x)
  lin<-paste('<table width=',width,'>', sep='')
  lin<-c(lin,sub('$','</td></tr>',sub('\\. |\\.$','.</b> ',
         sub('^', paste('<tr><td colspan=',nc+1,'><b>',sep=''), caption))))
  hr<-paste('<tr><td colspan=',nc+1,'><hr noshade></td></tr>', sep='')
  lin<-c(lin,hr)
  cnames<-colnames(x)
  cnames<-paste(sub('$','</b></td>',sub('^','<td align=right><b>',cnames)), collapse='\t')
  lin<-c(lin,paste('<tr>',paste('<td align=left><b>',cornername,'</b></td>',sep=''),cnames,'</tr>'))
  lin<-c(lin,hr)
  rnames<-sub('$','</b></td>',sub('^','<tr> <td align=left><b>',rownames(x)))
  #x<-sapply(1:ncol(x),function(i)sub('NA','  ',format(round(x[,i],dec[i]))))
  x<-sapply(1:ncol(x),function(i)sub('NA','  ',formatC(round(x[,i],dec[i]),digits=dec[i], format='f')))
  for(i in 1:nrow(x)){
    thisline<-paste(rnames[i],paste(sub('$','</td>',sub('^','<td align=right>',x[i,])), collapse='\t'),'</tr>', sep='')
    lin<-c(lin,thisline)
  }
  lin<-c(lin,hr)
  lin<-c(lin,'</table><br>\n')
  writeLines(lin,con=file)
}

plotcounter<-1
tit.list<-list()

setcap<-function(title="", caption=""){  
  tit.list[length(tit.list)+1]<<-paste("# Title",plotcounter,"\n")
  tit.list[length(tit.list)+1]<<-paste(title,"\n")
  tit.list[length(tit.list)+1]<<-paste("# Caption",plotcounter,"\n")
  tit.list[length(tit.list)+1]<<-paste(caption,"\n")
  plotcounter<<-plotcounter+1
}

include_anim <- function(filename, height=700, width=700) {
	newname <- sub("html", "htm", filename)
    file.rename(filename, newname)
    writeLines(paste('<object data="', normalizePath(newname), '" height="', height, '" width="', width, '"></object>', sep=''), filename )
	NULL
}
