File:
[LON-CAPA] /
rat /
client /
rat.html
Revision
1.2:
download - view:
text,
annotated -
select for diffs
Wed Nov 17 21:53:43 1999 UTC (24 years, 10 months ago) by
harris41
Branches:
MAIN
CVS tags:
HEAD
I did a lot of debugging work involving resolving global variable conflicts
as well as a few logic fixes. Also, I added/prototyped abilities to link
resources, view resource information, and remove resources from the RAT
web interface. Another major success was removing a significant problem
related to compatibility between OS's and browser versions relevant
to javascript (a lot of erratic behavior and bus errors was going on).
To do: the code still needs a fair amount of cleaning and need to implement
the underlying storage scheme for files (.page, .course, .section, etc).
<html>
<!--
The LearningOnline Network
Resource Assembly Tool
7/23,7/24,7/26,
8/11,8/14,8/18,8/19,8/20,8/21,8/22,8/25,8/26,8/28,8/30,8/31,
9/1,9/2,9/4,9/5,9/6 Gerd Kortemeyer with Scott Harrison
11/10 Scott Harrison
-->
<head>
<script language="JavaScript">
var row=new Array(); var maxrow=-1; var rowtype=new Array();
var col=new Array(); var maxcol=-1; var coltype=new Array();
var rowcont=new Array();
var colmap=new Array();
var colmap2=new Array(); var colmap3=new Array(); var colmap4=new Array(); var colmap5=new Array();
var obj=new Array(); var maxobj=-1;
var rcol=new Array(); var rrow=new Array();
var cw=new Array(); var rh=new Array();
var data1=new Array(1024); var data2=new Array(1024); var data3=new Array(1024); var data4=new Array(1024);
// ----------------------------------------- Functions to switch between images
function ssws(doc,i,j) {
var name='s'+i+'_'+j;
doc.document[name].src='insrow.gif';
}
function sswe(doc,i,j) {
var name='s'+i+'_'+j;
doc.document[name].src='sempty.gif';
}
function sswet(doc,i,j) {
var name='s'+i+'_'+j;
doc.document[name].src='std.gif';
}
function csws(doc,i,j) {
var name='c'+i+'_'+j;
doc.document[name].src='inscond.gif';
}
function cswe(doc,i,j) {
var name='c'+i+'_'+j;
doc.document[name].src='sctd.gif';
}
function isws(doc,i,j) {
var name='i'+i+'_'+j;
doc.document[name].src='inscol.gif';
}
function iswel(doc,i,j) {
var name='i'+i+'_'+j;
doc.document[name].src='sld.gif';
}
function iswed(doc,i,j) {
var name='i'+i+'_'+j;
doc.document[name].src='std.gif';
}
function iswedt(doc,i,j) {
var name='i'+i+'_'+j;
doc.document[name].src='stdl.gif';
}
function isweb(doc,i,j) {
var name='i'+i+'_'+j;
doc.document[name].src='sempty.gif';
}
function bsws(doc,i,j) {
var name='b'+i+'_'+j;
doc.document[name].src='insres.gif';
}
function bswe(doc,i,j) {
var name='b'+i+'_'+j;
doc.document[name].src='bempty.gif';
}
function bswet(doc,i,j) {
var name='b'+i+'_'+j;
doc.document[name].src='btd.gif';
}
// Insert a resource
function insertresource(i,j) {
var cols=tr[i].split(":");
cols[j]='r'+i+j;
tr[i]=cols.join(':');
// This is only a test
joinres(tti,ttj,i,j,'nodraw');
draw('edit');
}
// Insert a condition
function insertcondition(i,j) {
var cols=tc[i].split(":");
cols[j]='r'+i+j;
tc[i]=cols.join(':');
draw('edit');
}
// ------------------------------------------------ Insert a row into the table
function insertrow(j,size,ex1,ex2) {
objects1='';
objects2='';
for (kj=0;kj<=maxrow;kj++) {
if ( row[kj]==j ) { objects1=rowcont[kj]; }
if ( row[kj]==j+1 ) { objects2=rowcont[kj]; }
if ( row[kj]>j ) { row[kj]++; }
}
maxrow++;
row[maxrow]=j+1;
rowtype[maxrow]=size;
rowcont[maxrow]=':';
colcover=':'+ex1+':'+ex2+':';
objects=objects1+':'+objects2;
data1=objects.split(':');
for (kj=0;kj<data1.length;kj++) {
if (data1[kj]!='') {
thisisobj=obj[data1[kj]];
thisobjtype=thisisobj.split('&')[0];
if (thisobjtype=='v') {
if (rowcont[maxrow].indexOf(':'+data1[kj]+':',0)==-1) {
thisobjcol=thisisobj.split('&')[1];
if (colcover.indexOf(':'+thisobjcol+':',0)==-1) {
colcover+=thisobjcol+':';
rowcont[maxrow]+=data1[kj]+':';
}
}
}
if (thisobjtype=='h') {
updown=thisisobj.split('&')[4];
leftupdown=updown.split(':')[0];
rightupdown=updown.split(':')[1];
thisobjdest=thisisobj.split('&')[3];
thisobjtofrom=thisisobj.split('&')[2];
thisobjfrom=thisobjtofrom.split(':')[0];
thisobjto=thisobjtofrom.split(':')[1];
thisobjdir=col[thisobjto]-col[thisobjfrom];
thisobjrow=row[thisisobj.split('&')[1]];
topbottom=thisobjrow-j-1;
newobj='';
if (leftupdown==-1) {
if (topbottom<0) {
if (thisobjdir<0) {
newobj='v&'+thisobjto+'&'+thisobjdest+'&-1';
} else {
newobj='v&'+thisobjfrom+'&'+thisobjdest+'&1';
}
}
} else {
if (topbottom>0) {
if (thisobjdir<0) {
newobj='v&'+thisobjto+'&'+thisobjdest+'&1';
} else {
newobj='v&'+thisobjfrom+'&'+thisobjdest+'&-1';
}
}
}
if (newobj!='') {
thisobjcol=newobj.split('&')[1];
if (colcover.indexOf(':'+thisobjcol+':',0)==-1) {
colcover+=thisobjcol+':';
rowcont[maxrow]+=obj.length+':';
obj[obj.length]=newobj;
}
}
newobj='';
if (rightupdown==-1) {
if (topbottom<0) {
if (thisobjdir<0) {
newobj='v&'+thisobjfrom+'&'+thisobjdest+'&1';
} else {
newobj='v&'+thisobjto+'&'+thisobjdest+'&-1';
}
}
} else {
if (topbottom>0) {
if (thisobjdir<0) {
newobj='v&'+thisobjfrom+'&'+thisobjdest+'&-1';
} else {
newobj='v&'+thisobjto+'&'+thisobjdest+'&1';
}
}
}
if (newobj!='') {
thisobjcol=newobj.split('&')[1];
if (colcover.indexOf(':'+thisobjcol+':',0)==-1) {
colcover+=thisobjcol+':';
rowcont[maxrow]+=obj.length+':';
obj[obj.length]=newobj;
}
}
}
}
}
if (rowcont[maxrow]!=':') {
rowcont[maxrow]=rowcont[maxrow].substring(1,rowcont[maxrow].length-1);
} else {
rowcont[maxrow]='';
}
}
// --------------------------------------------- Insert a column into the table
function insertcol(j,size) {
for (kj=0;kj<=maxcol;kj++) {
if ( col[kj]>j ) { col[kj]++; }
}
maxcol++;
col[maxcol]=j+1;
coltype[maxcol]=size;
}
// --------------------------------------------------------------- Find the row
function findrow(jid) {
for (j=0;j<=maxrow;j++) { if (row[j]==jid) { return j; } }
return -1;
}
// --------------------------------------------------------------- Find the col
function findcol(jid) {
for (j=0;j<=maxcol;j++) { if (col[j]==jid) { return j; } }
return -1;
}
// -------------------------------------------------------------- Map out a row
//
// b&rowID&colID:inObj:outObj:outCond&...
// h&rowID&incolID:outcolID&inObj:outObj&inupdown:outupdown
// v&colID&inObj:outObj&updown
//
// returns middle (col number of middle of obj1)
// sets colmap (map of cols with object numbers)
function maprow (jid,obj1,ign) {
middle=-1;
for (j=0;j<=maxcol;j++) { colmap[j]=0; }
if (rowcont[jid]!='') {
data2=rowcont[jid].split(':');
for (j=0;j<data2.length;j++) {
data3=obj[data2[j]].split('&');
if (data3[0]=='b') {
left=maxcol;
right=0;
for (k=2;k<data3.length;k++) {
thiscol=col[data3[k].split(':')[0]];
if (thiscol<left) { left=thiscol; }
if (thiscol>right) { right=thiscol; }
}
}
if (data3[0]=='h') {
data4=data3[2].split(':');
if (col[data4[1]]>col[data4[0]]) {
left=col[data4[0]];
right=col[data4[1]];
} else {
right=col[data4[0]];
left=col[data4[1]];
}
}
if (data3[0]=='v') { left=col[data3[1]]; right=left; }
if (data2[j]==obj1) { middle=Math.round((left+right)/2); }
if ((data3[0]!='h') || (ign!=1)) {
for (k=left;k<=right;k++) { colmap[k]=data2[j]; }
} else {
colmap[left]=data2[j];
colmap[right]=data2[j];
}
}
}
return middle;
}
// --------------------------------------------------------- Find hole in a row
// jid: rowID
// kid: colID, find point close to this
// dkid: destination colID
// returns colID
function comingthru (jid,kid,dkid) {
maprow(jid,-1,1);
knum=col[kid];
if (colmap[knum]==0) { return kid; }
right=-1;
for (k=knum+1;(k<colmap.length) && (right==-1);k++) {
if ((right==-1) && (colmap[k]!=colmap[knum])) { right=k; }
}
left=-1;
for (k=knum-1;(k>=0) && (left==-1);k--) {
if ((left==-1) && (colmap[k]!=colmap[knum])) { left=k; }
}
kup=-1;
// if ((left==-1) && (right==-1)) { right=colmap.length; }
dknum=col[dkid];
dleft=left-dknum;
dright=right-dknum;
if (dleft<0) { dleft=-dleft; }
if (dright<0) { dright=-dright; }
if ((dright<=dleft) && (right!=-1)) { kup=right; }
if ((dright>=dleft) && (left!=-1)) { kup=left; }
if (colmap[kup]==0) { return findcol(kup); }
if (kup==right) { kup--; }
insertcol(kup,1);
return maxcol;
}
// ----------------------------------------------------- Insert port into block
// obj1: object number
// d: direction from middle (>0: right, <0 left)
// inout: in or out port (1: in, 2: out)
// linkobj: object that the link goes to/comes from
// sets incol,inrow or outcol,outrow
function insertport (obj1,d,inout,linkobj) {
data1=obj[obj1].split('&');
middle=maprow(data1[1],obj1,0);
if (inout==1) {
inrow=data1[1];
} else {
outrow=data1[1];
}
if (d>0) {
for (k=middle;(colmap[k]==obj1) && (k<colmap.length);k++) { data3[k]=0; }
} else {
for (k=middle;(colmap[k]==obj1) && (k>=0);k--) { data3[k]=0; }
}
for (k=2;k<data1.length;k++) {
data2=data1[k].split(':');
data3[col[data2[0]]]=data2[inout];
}
port=-1;
if (d>0) {
for (k=middle;(colmap[k]==obj1) && (k<colmap.length);k++) {
if ((data3[k]==0) && (colmap[k]==obj1) && (port==-1)) { port=k; }
}
} else {
for (k=middle;(colmap[k]==obj1) && (k>=0);k--) {
if ((data3[k]==0) && (colmap[k]==obj1) && (port==-1)) { port=k; }
}
}
if (port==-1) {
if (colmap[k]==0) {
port=k;
if (inout==1) {
data1[data1.length]=findcol(port)+":"+linkobj+":0:0";
} else {
data1[data1.length]=findcol(port)+":0:"+linkobj+":0";
}
} else {
if (d>0) {
insertcol(k-1,2);
port=k;
} else {
insertcol(k,2);
port=k+1;
}
if (inout==1) {
data1[data1.length]=maxcol+":"+linkobj+":0:0";
} else {
data1[data1.length]=maxcol+":0:"+linkobj+":0";
}
}
} else {
portfound=-1;
for (k=2;k<data1.length;k++) {
data2=data1[k].split(':');
if (col[data2[0]]==port) {
data2[inout]=linkobj;
data1[k]=data2.join(':');
portfound=1;
}
}
if (portfound==-1) {
if (inout==1) {
data1[data1.length]=findcol(port)+":"+linkobj+":0:0";
} else {
data1[data1.length]=findcol(port)+":0:"+linkobj+":0";
}
}
}
if (inout==1) {
incol=findcol(port);
coltype[incol]=2;
} else {
outcol=findcol(port);
coltype[outcol]=2;
}
obj[obj1]=data1.join('&');
}
// ---------------------------- Make a new object and add it to the row content
function addobj(kjid,objs) {
if (rowcont[kjid]!='') { rowcont[kjid]+=':'; }
rowcont[kjid]+=obj.length;
obj[obj.length]=objs;
}
// ---------------------------------------- Make horizontal connection for hrid
// hoffs=-1: this line goes on top of hrid
function horizontal(hrid,hoffs,hfcol,htcol,hdest,hends) {
hcrid=-1;
if (hoffs==-1) {
hbrid=findrow(row[hrid]-1);
} else {
hbrid=findrow(row[hrid]+1);
}
if (hbrid!=-1) {
maprow(hbrid,-1,0);
hcrid=hbrid;
if (col[hfcol]>col[htcol]) { left=col[htcol]; right=col[hfcol]; }
else { right=col[htcol]; left=col[hfcol]; }
if (colmap[left]!=0) {
hcrid=-1;
} else {
if (colmap[right]!=0) {
hcrid=-1;
} else {
for (kh=left+1;kh<right;kh++) {
if (colmap[kh]!=0) {
if (obj[colmap[kh]].split('&')[0]!='v') { hcrid=-1; }
}
}
}
}
}
if (hcrid==-1) {
insertrow(row[hrid]+hoffs,1,hfcol,htcol);
addobj(maxrow,'h&'+maxrow+'&'+hfcol+':'+htcol+'&'+hdest+'&'+hends);
} else {
addobj(hcrid,'h&'+hcrid+'&'+hfcol+':'+htcol+'&'+hdest+'&'+hends);
}
}
// ----------------------------------------------------------- Join two objects
// Links obj1 with obj2
function joinres (obj1,obj2) {
data3=obj[obj1].split('&');
sum=0;
for (k=2;k<data3.length;k++) { sum+=col[data3[k].split(':')[0]]; }
outmiddle=sum/(data3.length-2);
data3=obj[obj2].split('&');
sum=0;
for (k=2;k<data3.length;k++) { sum+=col[data3[k].split(':')[0]]; }
inmiddle=sum/(data3.length-2);
d=inmiddle-outmiddle;
insertport(obj1,d,2,obj2);
insertport(obj2,-d,1,obj1);
dest=obj1+':'+obj2;
if (row[inrow]<row[outrow]) {
updown=1;
tcol=comingthru(inrow,incol,outcol);
horizontal(inrow,-1,tcol,incol,dest,'-1:-1');
addobj(inrow,'v&'+tcol+'&'+dest+'&1');
incol=tcol;
tcol=comingthru(outrow,outcol,incol);
horizontal(outrow,0,outcol,tcol,dest,'1:1');
addobj(outrow,'v&'+tcol+'&'+dest+'&1');
outcol=tcol;
} else {
updown=-1;
}
if (inrow==outrow) {
tcol=comingthru(inrow,incol,outcol);
horizontal(inrow,-1,tcol,incol,dest,'-1:-1');
addobj(inrow,'v&'+tcol+'&'+dest+'&1');
horizontal(outrow,0,outcol,tcol,dest,'1:1');
} else {
if (updown==-1) {
for (kr=row[outrow]+1;kr<row[inrow];kr++) {
rid=findrow(kr);
ncol=comingthru(rid,outcol,incol);
if (ncol!=outcol) {
insertrow(k-1,1,outcol,ncol);
if (col[ncol]>col[incol]) {
addobj(maxrow,'h&'+maxrow+'&'+outcol+':'+ncol+'&'+dest+'&-1:1');
} else {
addobj(maxrow,'h&'+maxrow+'&'+outcol+':'+ncol+'&'+dest+'&1:-1');
}
}
addobj(rid,'v&'+ncol+'&'+dest+'&-1');
outcol=ncol;
}
if (incol!=outcol) {
insertrow(row[inrow]-1,1,outcol,incol);
if (col[outcol]>col[incol]) {
addobj(maxrow,'h&'+maxrow+'&'+outcol+':'+incol+'&'+dest+'&-1:1');
} else {
addobj(maxrow,'h&'+maxrow+'&'+outcol+':'+incol+'&'+dest+'&1:-1');
}
}
} else {
for (kr=row[outrow]-1;kr>row[inrow];kr--) {
rid=findrow(kr);
ncol=comingthru(rid,outcol,incol);
if (ncol!=outcol) {
insertrow(k,1,outcol,ncol);
if (col[outcol]>col[ncol]) {
addobj(maxrow,'h&'+maxrow+'&'+outcol+':'+ncol+'&'+dest+'&1:-1');
} else {
addobj(maxrow,'h&'+maxrow+'&'+outcol+':'+ncol+'&'+dest+'&-1:1');
}
}
addobj(rid,'v&'+ncol+'&'+dest+'&1');
outcol=ncol;
}
if (incol!=outcol) {
insertrow(row[inrow],1,outcol,incol);
if (col[outcol]>col[incol]) {
addobj(maxrow,'h&'+maxrow+'&'+outcol+':'+incol+'&'+dest+'&1:-1');
} else {
addobj(maxrow,'h&'+maxrow+'&'+outcol+':'+incol+'&'+dest+'&-1:1');
}
}
}
}
}
// -------------------------------------------------------------- Draw an entry
function drawcell (rtype,ctype,what,cm,mode2) {
doc.document.write('<td width='+cw[ctype]+'>');
if (what!='') {
if (cm!=0) {
if (what.substring(0,2)=='r:') {
doc.document.write(what);
} else {
doc.document.write('<img src="'+rtype+'.'+ctype+'.'+what+'.gif">');
}
} else {
doc.document.write('<img src="'+rtype+'.'+ctype+'.'+what+'.gif">');
}
}
doc.document.write('</td>');
}
// ----------------------------------------------------------------- Draw a row
function drawrow (jid,mode2) {
for (j=0;j<=maxcol;j++) {
colmap[j]=''; colmap2[j]=''; colmap3[j]=''; colmap4[j]=''; colmap5[j]='';
}
doc.document.writeln('<tr height='+rh[rowtype[jid]]+'>');
if (rowcont[jid]!='') {
data2=rowcont[jid].split(':');
for (jk=0;jk<data2.length;jk++) {
data3=obj[data2[jk]].split('&');
if (data3[0]=='b') {
left=maxcol;
leftin=maxcol;
leftout=maxcol;
right=0;
rightin=0;
rightout=0;
for (k=2;k<data3.length;k++) {
data1=data3[k].split(':');
thiscol=col[data1[0]];
if (thiscol<left) { left=thiscol; }
if (thiscol>right) { right=thiscol; }
if (data1[1]!=0) {
if (thiscol<leftin) { leftin=thiscol; }
if (thiscol>rightin) { rightin=thiscol; }
colmap4[thiscol]=data1[1];
}
if (data1[2]!=0) {
if (thiscol<leftout) { leftout=thiscol; }
if (thiscol>rightout) { rightout=thiscol; }
if (data1[3]!=0) {
colmap3[thiscol]='r:'+data1[3];
colmap5[thiscol]=2;
} else {
colmap3[thiscol]='ctd';
}
}
}
middle=Math.round((left+right)/2);
colmap[middle]='r:'+data2[jk];
colmap5[middle]=1;
if (rightin>middle) {
for (k=middle+1;k<rightin;k++) {
if (colmap4[k]!='') {
colmap[k]='rlt';
} else {
colmap[k]='rl';
}
}
colmap[rightin]='tl';
}
if (leftin<middle) {
for (k=middle-1;k>leftin;k--) {
if (colmap4[k]!='') {
colmap[k]='lrt';
} else {
colmap[k]='lr';
}
}
colmap[leftin]='tr';
}
if (leftout>middle) {
if (colmap3[leftout]!='') {
colmap2[middle]='tr';
}
}
if (leftout==middle) {
if (rightout==middle) { colmap2[middle]='td'; }
if (rightout>middle) { colmap2[middle]='rtd'; }
}
if (leftout<middle) {
if (rightout<middle) { colmap2[middle]='tl'; }
if (rightout==middle) { colmap2[middle]='tdl'; }
if (rightout>middle) {
if (colmap3[middle]!='') {
colmap2[middle]='rtdl';
} else {
colmap2[middle]='rtl';
}
}
}
if (leftout<middle) {
for (k=middle-1;k>leftout;k--) {
if (colmap3[k]!='') {
colmap2[k]='rld';
} else {
colmap2[k]='rl';
}
}
colmap2[leftout]='rd';
}
if (rightout>middle) {
for (k=middle+1;k<rightout;k++) {
if (colmap3[k]!='') {
colmap2[k]='lrd';
} else {
colmap2[k]='lr';
}
}
colmap2[rightout]='ld';
}
}
if (data3[0]=='h') {
data4=data3[2].split(':');
if (col[data4[1]]>col[data4[0]]) {
left=col[data4[0]];
right=col[data4[1]];
thisarrow='lr';
} else {
right=col[data4[0]];
left=col[data4[1]];
thisarrow='rl';
}
if (data3[4].split(':')[0]==1) {
colmap[left]='tr';
} else {
colmap[left]='rd'; colmap2[left]='utd'; colmap3[left]='utd';
}
for (k=left+1;k<right;k++) {
if (colmap[k]=='') {
colmap[k]=thisarrow;
} else {
colmap[k]='tdrl';
}
}
if (data3[4].split(':')[1]==1) {
colmap[right]='tl';
} else {
colmap[right]='ld'; colmap2[right]='utd'; colmap3[right]='utd';
}
}
if (data3[0]=='v') {
left=col[data3[1]];
if (colmap[left]=='') {
if (data3[3]==1) { colmap[left]='dt'; } else { colmap[left]='td'; }
} else {
colmap[left]='tdrl';
}
colmap2[left]='utd'; colmap3[left]='utd';
}
}
rtype=rowtype[jid];
for (k=0;k<=maxcol;k++) {
drawcell(rtype,coltype[rcol[k]],colmap[k],colmap5[k],mode2);
}
if (rowtype[jid]==2) {
doc.document.writeln('</tr><tr>');
for (k=0;k<=maxcol;k++) {
drawcell(1,coltype[rcol[k]],colmap2[k],colmap5[k],mode2);
}
doc.document.writeln('</tr><tr>');
for (k=0;k<=maxcol;k++) {
drawcell(1,coltype[rcol[k]],colmap3[k],colmap5[k],mode2);
}
}
}
doc.document.writeln('</tr>');
}
// ------------------------------------------------------------- Draw the table
function draw (mode,mode2) {
if (mode=='debug') {
var options="scrollbars=1,resizable=1,menubar=0,width=200,height=300";
deb=open("","debout",options);
deb.document.clear();
deb.document.writeln('<html><body bgcolor="#FFFFFF">');
for (k=0;k<obj.length;k++) { deb.document.writeln(k+' - '+obj[k]+'<br>'); }
deb.document.writeln('<hr>Cols: '+col+'<hr>Rows: '+row+'<hr>');
for (kr=0;kr<=maxrow;kr++) {
kid=findrow(kr);
maprow(kid,-1,0);
deb.document.writeln(kid+' : '+colmap+' '+rowcont[kid]+"<br>");
}
deb.document.writeln('</body></html>');
deb.document.close();
}
for (k=0;k<=maxrow;k++) { rrow[row[k]]=k; }
for (k=0;k<=maxcol;k++) { rcol[col[k]]=k; }
rh[1]=30;
rh[2]=60;
cw[1]=30;
cw[2]=60;
var options="scrollbars=1,resizable=1,menubar=0,width=200,height=300";
doc=open("","mapout",options);
doc.document.clear();
doc.document.writeln('<html><body bgcolor="#AAFFAA">');
doc.document.writeln('<table cellpadding=0 cellspacing=0 border=0>');
for (kr=0;kr<=maxrow;kr++) { drawrow(rrow[kr],mode2); }
doc.document.writeln('</table>');
doc.document.writeln('</body></html>');
doc.document.close();
}
function main() {
row[0]=0;
row[1]=1;
row[2]=2;
rowcont[0]='5:4';
rowtype[0]=2;
rowcont[1]='3';
rowtype[1]=2;
rowcont[2]='7';
rowtype[2]=2;
insertcol(0,1);
insertcol(0,1);
insertcol(0,1);
insertcol(0,1);
insertcol(0,1);
insertcol(0,1);
insertcol(0,1);
insertcol(0,1);
insertcol(0,1);
insertcol(0,1);
insertcol(0,1);
insertcol(0,1);
insertcol(0,1);
swap=col[8];
col[8]=col[3];
col[3]=swap;
swap=col[6];
col[6]=col[4];
col[4]=swap;
maxrow=2;
obj[3]='b&1&4:0:0:0';
coltype[4]=2;
obj[4]='b&0&8:0:0:0';
coltype[8]=2;
obj[5]='b&0&2:0:0:0';
coltype[2]=2;
obj[7]='b&2&5:0:0:0';
coltype[5]=2;
joinres(7,4);
joinres(4,7);
joinres(7,5);
joinres(5,7);
joinres(7,7);
joinres(4,5);
joinres(5,5);
joinres(3,4);
joinres(3,7);
joinres(5,3);
joinres(7,3);
joinres(4,3);
draw('debug','edit');
}
</script>
</head>
<! body onLoad="main()">
<body>
Welcome to the Resource Assembly Tool.<P>Your browser must be javascript enabled to use this tool. Enjoy!
</body>
</html>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>