function readTable() { var rows = new Array(); var trs=document.getElementById("kellytable").rows; // the table parts for (var i=0; i0 & !isNonblank(str.charAt(0))) str=str.substr(1,str.length-1); while (str.length>0 & !isNonblank(str.charAt(str.length-1))) str=str.substr(0,str.length-1); return str; } function isNonblank(str) { var re = new RegExp("[A-Za-z0-9]+"); var m = re.test(str); return m; } function fromString(str,colsep,rowsep) { str = cleanString(str); if (str.length==0) return null; var rowstrs = str.split(rowsep); var rows = new Array(); for (var i=0; incol) rows[i].pop(); } rows[0][0]=""; if (ncol<2) return null; if (rows.length<3) return null; return rows; } function writeTable(rows) { var t=document.getElementById("kellytable"); var th=t.createTHead(); var tb=t.tBodies[0]; var cg1=document.getElementById("firstcolgroup"); var cgp=cg1.parentNode; while (true) { var cg=cg1.nextSibling; if (!cg) break; if (cg.nodeName=="THEAD") break; cgp.removeChild(cg); } var thn=createHeader(rows); var tbn=createBody(rows); var cgn=createColgroup(rows); cgp.insertBefore(cgn,cg); th.parentNode.replaceChild(thn,th); tb.parentNode.replaceChild(tbn,tb); } function createColgroup(rows) { var n=rows[0].length-1; var cg=document.createElement("COLGROUP"); for (var i=0; i