version 1.4, 2000/06/08 16:19:50
|
version 1.10, 2000/08/02 15:27:10
|
Line 9 Resource Assembly Tool
|
Line 9 Resource Assembly Tool
|
1/7,1/8,1/10,1/14,1/15,1/16,1/21,1/22,1/29,1/30,1/31, |
1/7,1/8,1/10,1/14,1/15,1/16,1/21,1/22,1/29,1/30,1/31, |
2/2,2/3,2/10,2/12,2/13,2/14,2/15,2/17,2/18,2/19,2/20,2/21,2/22, |
2/2,2/3,2/10,2/12,2/13,2/14,2/15,2/17,2/18,2/19,2/20,2/21,2/22, |
5/2,5/3,5/4,5/5,5/6,5/8,5/9,5/13,5/18,5/20,5/22,5/24,5/25, |
5/2,5/3,5/4,5/5,5/6,5/8,5/9,5/13,5/18,5/20,5/22,5/24,5/25, |
6/7,6/8 |
6/7,6/8,6/9,6/10,6/12,6/15,7/4,7/26,7/28,7/31 |
Gerd Kortemeyer with Scott Harrison |
Gerd Kortemeyer with Scott Harrison |
--> |
--> |
|
|
Line 21 var row=new Array();
|
Line 21 var row=new Array();
|
var maxrow=-1; |
var maxrow=-1; |
var col=new Array(); |
var col=new Array(); |
var maxcol=-1; |
var maxcol=-1; |
var lastempty=-2; |
|
var colmap=new Array(); |
var colmap=new Array(); |
var colmap2=new Array(); |
var colmap2=new Array(); |
var colmap3=new Array(); |
var colmap3=new Array(); |
Line 47 var notclear=0;
|
Line 47 var notclear=0;
|
var linkmode=0; |
var linkmode=0; |
var lastinfo=''; |
var lastinfo=''; |
var graphdef='no'; |
var graphdef='no'; |
|
var mode=''; |
var mainrun=0; |
var mainrun=0; |
var tablemode=0; |
var tablemode=0; |
var mostrecent=0; |
var mostrecent=0; |
Line 55 var zscale=3;
|
Line 56 var zscale=3;
|
var disrows=0; |
var disrows=0; |
var discols=0; |
var discols=0; |
|
|
|
var finishdone=0; |
|
var tim=0; |
|
var funny='|'; |
|
var reqaction=''; |
|
var canceltim; |
|
|
|
var expense=0; |
|
|
var data1=new Array(1024); |
var data1=new Array(1024); |
var data2=new Array(1024); |
var data2=new Array(1024); |
var data3=new Array(1024); |
var data3=new Array(1024); |
var data4=new Array(1024); |
var data4=new Array(1024); |
var data5=new Array(1024); |
var data5=new Array(1024); |
|
|
|
var inf; |
|
|
// ------------------------------------------------ Insert a row into the table |
// ------------------------------------------------ Insert a row into the table |
|
|
function insertrow(j,ex1,ex2) { |
function insertrow(j,ex1,ex2) { |
var kj; |
var kj; |
stored=0; |
stored=0; |
|
expense++; expense++; |
objects1=''; |
objects1=''; |
objects2=''; |
objects2=''; |
for (kj=0;kj<=maxrow;kj++) { |
for (kj=0;kj<=maxrow;kj++) { |
Line 212 function insertcol(j) {
|
Line 223 function insertcol(j) {
|
if ( col[kj]>j ) { col[kj]++; } |
if ( col[kj]>j ) { col[kj]++; } |
} |
} |
maxcol++; |
maxcol++; |
|
expense++; expense++; |
col[maxcol]=j+1; |
col[maxcol]=j+1; |
} |
} |
|
|
Line 414 function insertport (obj1,d,inout,linkob
|
Line 426 function insertport (obj1,d,inout,linkob
|
|
|
function addobj(kjid,objs) { |
function addobj(kjid,objs) { |
stored=0; |
stored=0; |
|
expense++; |
if (rowcont[kjid]!='') { rowcont[kjid]+=':'; } |
if (rowcont[kjid]!='') { rowcont[kjid]+=':'; } |
rowcont[kjid]+=obj.length; |
rowcont[kjid]+=obj.length; |
obj[obj.length]=objs; |
obj[obj.length]=objs; |
Line 482 function cleanup () {
|
Line 495 function cleanup () {
|
var j,kj,i; |
var j,kj,i; |
disrows=0; |
disrows=0; |
discols=0; |
discols=0; |
|
var emptyspots=0; |
if (lastempty!=obj.length) { |
|
insertrow(maxrow); |
|
insertcol(maxcol); |
|
addobj(maxrow,'e&'+maxcol); |
|
lastempty=obj.length; |
|
} |
|
|
|
for (kj=0;kj<=maxcol;kj++) { data1[kj]=0; } |
for (kj=0;kj<=maxcol;kj++) { data1[kj]=0; } |
for (kj=0;kj<=maxrow;kj++) { |
for (kj=0;kj<=maxrow;kj++) { |
Line 512 function cleanup () {
|
Line 519 function cleanup () {
|
} |
} |
if (obj[colmap[j]].substring(0,2)=='b&') { |
if (obj[colmap[j]].substring(0,2)=='b&') { |
data1[j]=2; |
data1[j]=2; |
|
if (colmap[maxcol]==0) { emptyspots++; } |
rowtype[kj]=2; |
rowtype[kj]=2; |
} |
} |
} |
} |
Line 526 function cleanup () {
|
Line 534 function cleanup () {
|
if (rowtype[j]==2) { disrows+=3; } |
if (rowtype[j]==2) { disrows+=3; } |
if (rowtype[j]==1) { disrows+=1; } |
if (rowtype[j]==1) { disrows+=1; } |
} |
} |
|
if (emptyspots==0) { |
|
insertrow(maxrow); |
|
insertcol(maxcol); |
|
addobj(maxrow,'e&'+maxcol); |
|
discols++; |
|
disrows++; |
|
rowtype[maxrow]=2; |
|
coltype[maxcol]=2; |
|
} |
|
|
} |
} |
|
|
// -------------------------------------------- Delete a condition from a block |
// -------------------------------------------- Delete a condition from a block |
Line 614 function dellink (linknr) {
|
Line 632 function dellink (linknr) {
|
// Links obj1 with obj2, creates new objlink, marks all elements with number |
// Links obj1 with obj2, creates new objlink, marks all elements with number |
|
|
function joinres (obj1,obj2,cond) { |
function joinres (obj1,obj2,cond) { |
var k; var kr; var outcol; var incol; var d; |
|
stored=0; |
stored=0; |
|
var minexpense; |
|
var best; |
|
|
|
expense=0; |
|
tryjoin(obj1,obj2,cond,1,1); |
|
minexpense=expense; |
|
best=0; |
|
finishload(); |
|
|
|
expense=0; |
|
tryjoin(obj1,obj2,cond,1,-1); |
|
if (expense<minexpense) { |
|
best=1; |
|
minexpense=expense; |
|
} |
|
finishload(); |
|
|
|
expense=0; |
|
tryjoin(obj1,obj2,cond,-1,1); |
|
if (expense<minexpense) { |
|
best=2; |
|
minexpense=expense; |
|
} |
|
finishload(); |
|
|
|
expense=0; |
|
tryjoin(obj1,obj2,cond,-1,-1); |
|
if (expense<minexpense) { |
|
best=3; |
|
minexpense=expense; |
|
} |
|
|
|
|
|
if (best==0) { |
|
finishload(); |
|
tryjoin(obj1,obj2,cond,1,1); |
|
} |
|
if (best==1) { |
|
finishload(); |
|
tryjoin(obj1,obj2,cond,1,-1); |
|
} |
|
if (best==2) { |
|
finishload(); |
|
tryjoin(obj1,obj2,cond,-1,1); |
|
} |
|
} |
|
|
|
|
|
function tryjoin(obj1,obj2,cond,d1,d2) { |
|
var k; var kr; var outcol; var incol; var d; |
|
|
dest=objlinks.length; |
dest=objlinks.length; |
objlinks[dest]=obj1+':'+obj2+':'+cond; |
objlinks[dest]=obj1+':'+obj2+':'+cond; |
data3=obj[obj1].split('&'); |
|
sum=0; |
outcol=insertport(obj1,d1,2,dest); |
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; |
|
outcol=insertport(obj1,d,2,dest); |
|
insertcond(obj1,outcol,cond); |
insertcond(obj1,outcol,cond); |
incol=insertport(obj2,-d,1,dest); |
incol=insertport(obj2,d2,1,dest); |
if (row[inrow]==(row[outrow]+1)) { |
if (row[inrow]==(row[outrow]+1)) { |
insertrow(row[outrow],-1,-1); |
insertrow(row[outrow],-1,-1); |
} |
} |
Line 853 function drawcell (rtype,ctype,what,cm,o
|
Line 913 function drawcell (rtype,ctype,what,cm,o
|
('<img border=0 width='+cw[ctype]+' height='+rh[rtype] |
('<img border=0 width='+cw[ctype]+' height='+rh[rtype] |
+' src="condition.gif">'); |
+' src="condition.gif">'); |
} else { |
} else { |
parent.mapout.document.write |
if (what=='rs:') { |
('<img border=0 width='+cw[ctype]+' height='+rh[rtype]+' src="' |
parent.mapout.document.write |
+rtype+'.'+ctype+'.'+what+'.gif">'); |
('<img border=0 width='+cw[ctype]+' height='+rh[rtype] |
|
+' src="start.gif">'); |
|
} else { |
|
if (what=='rf:') { |
|
parent.mapout.document.write |
|
('<img border=0 width='+cw[ctype]+' height='+rh[rtype] |
|
+' src="finish.gif">'); |
|
} else { |
|
parent.mapout.document.write |
|
('<img border=0 width='+cw[ctype]+' height='+rh[rtype] |
|
+' src="'+rtype+'.'+ctype+'.'+what+'.gif">'); |
|
} |
|
} |
} |
} |
} |
} |
if (obj1!='') { |
if (obj1!='') { |
Line 887 function rescolor (ext,typ) {
|
Line 959 function rescolor (ext,typ) {
|
if (ext=='true') { bc='55'; } else { bc='99'; } |
if (ext=='true') { bc='55'; } else { bc='99'; } |
if (typ=='mandatory') { rc='FF'; } else { rc='BB'; } |
if (typ=='mandatory') { rc='FF'; } else { rc='BB'; } |
if (typ=='optional') { gc='BB'; } else { gc='FF'; } |
if (typ=='optional') { gc='BB'; } else { gc='FF'; } |
if ((typ=='start') || (typ=='end')) { rc='AA'; gc='AA'; bc='FF'; } |
if ((typ=='start') || (typ=='finish')) { rc='AA'; gc='AA'; bc='FF'; } |
return '#'+rc+gc+bc; |
return '#'+rc+gc+bc; |
} |
} |
|
|
Line 902 function condcolor(typ) {
|
Line 974 function condcolor(typ) {
|
// ----------------------------------------------------------------- Draw a row |
// ----------------------------------------------------------------- Draw a row |
|
|
function drawrow (jid) { |
function drawrow (jid) { |
var j; var jk; var k; var ck; |
var j; var jk; var k; var ck; var rtype; |
var objd1=new Array(); |
var objd1=new Array(); |
var objd2=new Array(); |
var objd2=new Array(); |
var notempty=new Array(); |
var notempty=new Array(); |
Line 921 if (rowtype[jid]!=0) {
|
Line 993 if (rowtype[jid]!=0) {
|
data3=obj[data2[jk]].split('&'); |
data3=obj[data2[jk]].split('&'); |
if (data3[0]=='b') { |
if (data3[0]=='b') { |
data1=objcont[data2[jk]].split(':'); |
data1=objcont[data2[jk]].split(':'); |
|
rtype=data1[3]; |
ck=rescolor(data1[2],data1[3]); |
ck=rescolor(data1[2],data1[3]); |
left=maxcol; |
left=maxcol; |
leftin=maxcol; |
leftin=maxcol; |
Line 958 if (rowtype[jid]!=0) {
|
Line 1031 if (rowtype[jid]!=0) {
|
} |
} |
for (k=left;k<=right;k++) { notempty[k]=1; colmap5[k]=ck; } |
for (k=left;k<=right;k++) { notempty[k]=1; colmap5[k]=ck; } |
middle=Math.round((left+right)/2); |
middle=Math.round((left+right)/2); |
colmap[middle]='r:'; |
if (rtype=='start') { |
|
colmap[middle]='rs:'; |
|
} else { |
|
if (rtype=='finish') { |
|
colmap[middle]='rf:'; |
|
} else { |
|
colmap[middle]='r:'; |
|
} |
|
} |
objd1[middle]+='r&'+data2[jk]; |
objd1[middle]+='r&'+data2[jk]; |
|
|
if (rightin>middle) { |
if (rightin>middle) { |
Line 1077 if (rowtype[jid]!=0) {
|
Line 1158 if (rowtype[jid]!=0) {
|
} |
} |
if (rowtype[jid]==2) { |
if (rowtype[jid]==2) { |
parent.mapout.document.writeln('</tr>'); |
parent.mapout.document.writeln('</tr>'); |
parent.mapout.document.writeln('<tr height=30>'); |
parent.mapout.document.writeln('<tr height='+rh[1]+'>'); |
for (k=0;k<=maxcol;k++) { |
for (k=0;k<=maxcol;k++) { |
drawcell(1,coltype[rcol[k]],colmap2[k],colmap5[k],objd2[k],jid,k, |
drawcell(1,coltype[rcol[k]],colmap2[k],colmap5[k],objd2[k],jid,k, |
notempty[k]); |
notempty[k]); |
} |
} |
parent.mapout.document.writeln('</tr>'); |
parent.mapout.document.writeln('</tr>'); |
parent.mapout.document.writeln('<tr height=30>'); |
parent.mapout.document.writeln('<tr height='+rh[1]+'>'); |
for (k=0;k<=maxcol;k++) { |
for (k=0;k<=maxcol;k++) { |
drawcell(1,coltype[rcol[k]],colmap3[k],colmap6[k],objd2[k],jid,k, |
drawcell(1,coltype[rcol[k]],colmap3[k],colmap6[k],objd2[k],jid,k, |
notempty[k]); |
notempty[k]); |
Line 1125 function draw () {
|
Line 1206 function draw () {
|
parent.mapout.document.writeln( |
parent.mapout.document.writeln( |
'<table cellpadding=0 cellspacing=0 border=0 rows=' |
'<table cellpadding=0 cellspacing=0 border=0 rows=' |
+disrows+' cols='+discols+'>'); |
+disrows+' cols='+discols+'>'); |
for (kr=0;kr<=maxrow;kr++) { |
for (kr=0;kr<=maxrow;kr++) { |
message("Generating Output Row "+kr); |
message("Generating Output Row "+kr); |
drawrow(rrow[kr]); |
drawrow(rrow[kr]); |
} |
} |
Line 1153 function draw () {
|
Line 1234 function draw () {
|
|
|
function infoclear() { |
function infoclear() { |
if (notclear!=1) { |
if (notclear!=1) { |
var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; |
infcheck(); |
var inf=open("","infout",options); |
|
inf.document.clear(); |
inf.document.clear(); |
inf.document.writeln |
inf.document.writeln |
('<html><body bgcolor="#FFFFFF"><table><tr><td>'+ |
('<html><body bgcolor="#FFFFFF"><table><tr><td>'+ |
Line 1189 function infoclear() {
|
Line 1269 function infoclear() {
|
} |
} |
} |
} |
|
|
|
// ------------------------------------------------------------ Open inf window |
|
|
|
function infopen() { |
|
var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; |
|
inf=open("","infout",options); |
|
} |
|
|
|
// -------------------------------------------------------- Do inf status check |
|
|
|
function infcheck() { |
|
if (inf.closed) { |
|
infopen(); |
|
} |
|
} |
|
|
// --------------------------------------------------- Prints out resource info |
// --------------------------------------------------- Prints out resource info |
|
|
function info(infostr) { |
function info(infostr) { |
if ((editmode!=1) && (infostr!=lastinfo)) { |
if ((editmode!=1) && (infostr!=lastinfo)) { |
notclear=1; |
notclear=1; |
var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; |
infcheck(); |
var inf=open("","infout",options); |
|
inf.document.clear(); |
inf.document.clear(); |
inf.document.writeln( |
inf.document.writeln( |
'<html><body bgcolor="#FFFFFF">'+ |
'<html><body bgcolor="#FFFFFF">'+ |
Line 1225 function info(infostr) {
|
Line 1319 function info(infostr) {
|
data2=objcont[data1[1]].split(':'); |
data2=objcont[data1[1]].split(':'); |
inf.document.write('<b>'); |
inf.document.write('<b>'); |
if (data2[2]=='true') { inf.document.write('External '); } |
if (data2[2]=='true') { inf.document.write('External '); } |
inf.document.write('Resource'); |
if (data2[3]=='start') { |
|
inf.document.writeln('<b>Start</b>'); |
|
} else { |
|
if (data2[3]=='finish') { |
|
inf.document.writeln('<b>Finish</b>'); |
|
} else { |
|
inf.document.writeln('<b>Resource</b>'); |
|
} |
|
} |
if (data2[3]=='mandatory') { |
if (data2[3]=='mandatory') { |
inf.document.write(' (Mandatory)'); |
inf.document.write(' (Mandatory)'); |
} |
} |
Line 1285 function insertreslink(infostr) {
|
Line 1387 function insertreslink(infostr) {
|
var tobj; |
var tobj; |
var nobj; |
var nobj; |
var cobj; |
var cobj; |
|
var cid; |
|
var rid; |
data1=infostr.split('&'); |
data1=infostr.split('&'); |
data2=obj[data1[0]].split('&'); |
data2=obj[data1[0]].split('&'); |
lnr=data2[data2.length-2]; |
lnr=data2[data2.length-2]; |
Line 1306 function insertreslink(infostr) {
|
Line 1410 function insertreslink(infostr) {
|
joinres(nobj,tobj,0); |
joinres(nobj,tobj,0); |
} |
} |
|
|
|
// -------------------------------------------- Insert resource after condition |
|
|
|
function insertcondlink(cid,lnr) { |
|
var fobj; |
|
var tobj; |
|
var nobj; |
|
var cobj; |
|
data3=objlinks[lnr].split(':'); |
|
fobj=data3[0]; |
|
tobj=data3[1]; |
|
cobj=data3[2]; |
|
rid=(obj[fobj].split('&'))[1]; |
|
insertrow(row[rid]); |
|
dellink(lnr); |
|
newresource(maxrow,cid,'','','false','normal'); |
|
nobj=obj.length-1; |
|
joinres(fobj,nobj,cobj); |
|
joinres(nobj,tobj,0); |
|
} |
|
|
// ---------------------------------------------------- Handles "click to edit" |
// ---------------------------------------------------- Handles "click to edit" |
|
|
function handler(infostr) { |
function handler(infostr) { |
var k; |
var k; |
editmode=1; |
editmode=1; |
notclear=1; |
notclear=1; |
var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; |
infcheck(); |
var inf=open("","infout",options); |
|
inf.document.clear(); |
inf.document.clear(); |
inf.document.writeln( |
inf.document.writeln( |
'<html><body bgcolor="#FFFFFF">'+ |
'<html><body bgcolor="#FFFFFF">'+ |
Line 1366 function handler(infostr) {
|
Line 1489 function handler(infostr) {
|
'<a href="javascript:opener.notclear=0;opener.infoclear();' |
'<a href="javascript:opener.notclear=0;opener.infoclear();' |
+'opener.dellink('+data1[3]+');opener.editmode=0;opener.draw(' |
+'opener.dellink('+data1[3]+');opener.editmode=0;opener.draw(' |
+');">Delete Link</a>'); |
+');">Delete Link</a>'); |
|
|
|
inf.document.writeln('<br><a href="javascript:'+ |
|
'opener.insertcondlink('+data1[1]+','+data1[3]+');'+ |
|
'opener.editmode=0;opener.notclear=0;opener.infoclear();opener.draw(' |
|
+');">Insert Resource Into Link</a>'); |
|
|
|
|
} else { |
} else { |
if (data1[0]=='r') { |
if (data1[0]=='r') { |
if (linkmode!=0) { |
if (linkmode!=0) { |
Line 1376 function handler(infostr) {
|
Line 1506 function handler(infostr) {
|
inf.document.writeln('<b>Linked Resources</b>'); |
inf.document.writeln('<b>Linked Resources</b>'); |
draw(); |
draw(); |
} else { |
} else { |
inf.document.writeln('<b>Resource</b>'); |
|
data2=objcont[data1[1]].split(':'); |
data2=objcont[data1[1]].split(':'); |
|
if (data2[3]=='start') { |
|
inf.document.writeln('<b>Start</b>'); |
|
} else { |
|
if (data2[3]=='finish') { |
|
inf.document.writeln('<b>Finish</b>'); |
|
} else { |
|
inf.document.writeln('<b>Resource</b>'); |
|
} |
|
} |
inf.document.write( |
inf.document.write( |
'<form name=resinfo><table><tr><td>Title:</td><td>' |
'<form name=resinfo><table><tr><td>Title:</td><td>' |
+'<input type=text name=t size=30 value="' |
+'<input type=text name=t size=30 value="' |
+data2[0]+'"></td></tr><tr><td>URL:</td><td>' |
+data2[0]+'"><input type=hidden name=h value='+data2[3]+'></td></tr>'); |
|
if ((data2[3]!='start') && (data2[3]!='finish')) { |
|
inf.document.write('<tr><td>URL:</td><td>' |
+'<input type=text name=u size=30 value="'+data2[1]+'"></td></tr>' |
+'<input type=text name=u size=30 value="'+data2[1]+'"></td></tr>' |
+'<tr><td>External:</td><td><input type=checkbox name=e'); |
+'<tr><td>External:</td><td><input type=checkbox name=e'); |
if (data2[2]=='true') { inf.document.write(' checked'); } |
if (data2[2]=='true') { inf.document.write(' checked'); } |
inf.document.write('></td></tr>' |
inf.document.write('></td></tr>' |
+'<tr><td colspan=2><input type=hidden name=h value='+data2[3] |
+'<tr><td colspan=2>' |
+'><input type=radio name=y value=normal '+ |
+'<input type=radio name=y value=normal '+ |
'onClick="self.document.forms.resinfo.elements.h.value='+"'normal'"+'"'); |
'onClick="self.document.forms.resinfo.elements.h.value='+"'normal'"+'"'); |
if (data2[3]=='normal') { inf.document.write(' checked'); } |
if (data2[3]=='normal') { inf.document.write(' checked'); } |
inf.document.write( |
inf.document.write( |
Line 1398 function handler(infostr) {
|
Line 1538 function handler(infostr) {
|
'> Mandatory <input type=radio name=y value=optional '+ |
'> Mandatory <input type=radio name=y value=optional '+ |
'onClick="self.document.forms.resinfo.elements.h.value='+"'optional'"+'"'); |
'onClick="self.document.forms.resinfo.elements.h.value='+"'optional'"+'"'); |
if (data2[3]=='optional') { inf.document.write(' checked'); } |
if (data2[3]=='optional') { inf.document.write(' checked'); } |
inf.document.write('> Optional</td></tr>' |
inf.document.write('> Optional</td></tr>'); |
+'<tr><td colspan=2><a href="javascript:opener.editmode=0;' |
} else { |
|
inf.document.write( |
|
'<tr><td><input type=hidden name=e value=false>' |
|
+'<input type=hidden name=u value=""></td></tr>'); |
|
} |
|
inf.document.writeln( |
|
'<tr><td colspan=2><a href="javascript:opener.editmode=0;' |
+'opener.notclear=0;opener.objcont['+data1[1] |
+'opener.notclear=0;opener.objcont['+data1[1] |
+']=opener.escape(self.document.forms.resinfo.elements.t.value)+'+"':'" |
+']=opener.escape(self.document.forms.resinfo.elements.t.value)+'+"':'" |
+'+opener.escape(self.document.forms.resinfo.elements.u.value)+'+"':'" |
+'+opener.escape(self.document.forms.resinfo.elements.u.value)+'+"':'" |
Line 1409 function handler(infostr) {
|
Line 1555 function handler(infostr) {
|
+'<b>Change to above values</b></a> ' |
+'<b>Change to above values</b></a> ' |
+' <a href="javascript:self.document.forms.resinfo.reset()">Reset</a>' |
+' <a href="javascript:self.document.forms.resinfo.reset()">Reset</a>' |
+'</td></tr></table>'); |
+'</td></tr></table>'); |
|
if ((data2[3]!='start') && (data2[3]!='finish')) { |
inf.document.writeln( |
inf.document.writeln( |
'<a href="javascript:opener.notclear=0;opener.infoclear();' |
'<a href="javascript:opener.notclear=0;opener.infoclear();' |
+'opener.delres('+data1[1]+',0);opener.editmode=0;opener.draw(' |
+'opener.delres('+data1[1]+',0);opener.editmode=0;opener.draw(' |
Line 1417 function handler(infostr) {
|
Line 1564 function handler(infostr) {
|
'<br><a href="javascript:opener.notclear=0;opener.infoclear();' |
'<br><a href="javascript:opener.notclear=0;opener.infoclear();' |
+'opener.delres('+data1[1]+',1);opener.editmode=0;opener.draw(' |
+'opener.delres('+data1[1]+',1);opener.editmode=0;opener.draw(' |
+');">Delete Resource (preserving links)</a>'); |
+');">Delete Resource (preserving links)</a>'); |
|
} |
|
if (data2[3]!='finish') { |
inf.document.writeln( |
inf.document.writeln( |
'<br><a href="javascript:opener.editmode=0;opener.notclear=0;' |
'<br><a href="javascript:opener.editmode=0;opener.notclear=0;' |
+'opener.linkmode='+data1[1]+';' |
+'opener.linkmode='+data1[1]+';' |
+'opener.infoclear();">Link Resource</a>'); |
+'opener.infoclear();">Link Resource</a>'); |
|
} |
} |
} |
} else { |
} else { |
linkmode=0; |
linkmode=0; |
Line 1457 function empty(rid,k) {
|
Line 1607 function empty(rid,k) {
|
editmode=1; |
editmode=1; |
notclear=1; |
notclear=1; |
linkmode=0; |
linkmode=0; |
var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; |
infcheck(); |
var inf=open("","infout",options); |
|
inf.document.clear(); |
inf.document.clear(); |
inf.document.writeln( |
inf.document.writeln( |
'<html><body bgcolor="#FFFFFF">'+ |
'<html><body bgcolor="#FFFFFF">'+ |
Line 1523 function save() {
|
Line 1672 function save() {
|
var k; |
var k; |
if (graphdef=='yes') { |
if (graphdef=='yes') { |
parent.server.document.forms.storage.output.value='graphdef<:>yes'; |
parent.server.document.forms.storage.output.value='graphdef<:>yes'; |
for (k=0;k<obj.length;k++) { |
for (k=1;k<obj.length;k++) { |
parent.server.document.forms.storage.output.value+= |
parent.server.document.forms.storage.output.value+= |
'<&>obj<:>'+k+'<:>'+obj[k]; |
'<&>obj<:>'+k+'<:>'+obj[k]; |
} |
} |
Line 1593 function graphreset() {
|
Line 1742 function graphreset() {
|
insertcol(-1); |
insertcol(-1); |
|
|
objcont[0]=''; |
objcont[0]=''; |
objcont[1]='Start::false:start:res' |
if (((objcont[1]==undefined)&&(objcont[2]==undefined)) || |
objcont[2]='Finish::false:end:res'; |
((objcont[1]=='')&&(objcont[2]==''))) { |
objlinks[0]=''; |
objcont[1]='Start::false:start:res' |
objlinks[1]='1:2:0'; |
objcont[2]='Finish::false:finish:res'; |
|
objlinks[0]=''; |
|
objlinks[1]='1:2:0'; |
|
} |
|
|
graphdef='no'; |
graphdef='no'; |
|
|
Line 1633 function tabledraw() {
|
Line 1785 function tabledraw() {
|
var cck; |
var cck; |
var condid; |
var condid; |
var sortstr=sortobjs(); |
var sortstr=sortobjs(); |
insrestab(1,-1,-1); |
insrestab(1,-1,-1,''); |
if (sortstr!='') { |
if (sortstr!='') { |
objsorted=sortstr.split('&'); |
objsorted=sortstr.split('&'); |
for (k=0;k<objsorted.length;k++) { |
for (k=0;k<objsorted.length;k++) { |
Line 1659 function tabledraw() {
|
Line 1811 function tabledraw() {
|
+'"><form name=r'+i+' method=post>'); |
+'"><form name=r'+i+' method=post>'); |
data2=obj[i].split('&'); |
data2=obj[i].split('&'); |
parent.mapout.document.write('<table bgcolor="#CCCCCC">'); |
parent.mapout.document.write('<table bgcolor="#CCCCCC">'); |
|
if (data1[3]=='start') { |
|
parent.mapout.document.writeln('<tr><td><b>Start</b></td></tr>'); |
|
} |
|
if (data1[3]=='finish') { |
|
parent.mapout.document.writeln('<tr><td><b>Finish</b></td></tr>'); |
|
} |
parent.mapout.document.write( |
parent.mapout.document.write( |
'<tr><td>Title:</td><td><input type=text name=t size=50 value="' |
'<tr><td>Title:</td><td><input type=text name=t size=50 value="' |
+data1[0]+'"></td></tr>'); |
+data1[0]+'"><input type=hidden name=h value='+data1[3] |
|
+'></td></tr>'); |
|
if ((data1[3]!='start') && (data1[3]!='finish')) { |
parent.mapout.document.write( |
parent.mapout.document.write( |
'<tr><td>URL:</td><td><input type=text name=u size=50 value="' |
'<tr><td>URL:</td><td><input type=text name=u size=50 value="' |
+data1[1]+'"></td></tr>' |
+data1[1]+'"></td></tr>' |
+'<tr><td>External:</td><td><input type=checkbox name=e'); |
+'<tr><td>External:</td><td><input type=checkbox name=e'); |
if (data1[2]=='true') { parent.mapout.document.write(' checked'); } |
if (data1[2]=='true') { parent.mapout.document.write(' checked'); } |
parent.mapout.document.write('></td></tr>' |
parent.mapout.document.write('></td></tr>' |
+'<tr><td colspan=2><input type=hidden name=h value='+data1[3] |
+'<tr><td colspan=2><input type=radio name=y value=normal '+ |
+'><input type=radio name=y value=normal '+ |
|
'onClick="parent.mapout.document.forms.r'+i+'.elements.h.value='+ |
'onClick="parent.mapout.document.forms.r'+i+'.elements.h.value='+ |
"'normal'"+'"'); |
"'normal'"+'"'); |
if (data1[3]=='normal') { parent.mapout.document.write(' checked'); } |
if (data1[3]=='normal') { parent.mapout.document.write(' checked'); } |
Line 1683 function tabledraw() {
|
Line 1842 function tabledraw() {
|
'onClick="parent.mapout.document.forms.r'+i+'.elements.h.value='+ |
'onClick="parent.mapout.document.forms.r'+i+'.elements.h.value='+ |
"'optional'"+'"'); |
"'optional'"+'"'); |
if (data1[3]=='optional') { parent.mapout.document.write(' checked'); } |
if (data1[3]=='optional') { parent.mapout.document.write(' checked'); } |
parent.mapout.document.write('> Optional</td></tr>' |
parent.mapout.document.write('> Optional</td></tr>'); |
+'<tr><td colspan=2><a href="javascript:parent.code.objcont['+i |
} else { |
|
parent.mapout.document.write( |
|
'<tr><td><input type=hidden name=u value="">' |
|
+'<input type=hidden name=e value=false></td></tr>'); |
|
} |
|
parent.mapout.document.write( |
|
'<tr><td colspan=2><a href="javascript:parent.code.objcont['+i |
+']=parent.code.escape(parent.mapout.document.forms.r'+i |
+']=parent.code.escape(parent.mapout.document.forms.r'+i |
+'.elements.t.value)+'+"':'" |
+'.elements.t.value)+'+"':'" |
+'+parent.code.escape(parent.mapout.document.forms.r'+i |
+'+parent.code.escape(parent.mapout.document.forms.r'+i |
Line 1694 function tabledraw() {
|
Line 1859 function tabledraw() {
|
+';parent.code.draw();">' |
+';parent.code.draw();">' |
+'<b>Change to above values</b></a> ' |
+'<b>Change to above values</b></a> ' |
+' <a href="javascript:parent.mapout.document.forms.r'+i |
+' <a href="javascript:parent.mapout.document.forms.r'+i |
+'.reset()">Reset</a></td></tr><tr><td colspan=2>' |
+'.reset()">Reset</a></td></tr><tr><td colspan=2>'); |
+'<A href="javascript:parent.code.notclear=0;parent.code.infoclear();' |
if ((data1[3]!='start') && (data1[3]!='finish')) { |
|
parent.mapout.document.writeln( |
|
'<A href="javascript:parent.code.notclear=0;parent.code.infoclear();' |
+'parent.code.delres('+i+',0);parent.code.editmode=0;parent.code.draw();">' |
+'parent.code.delres('+i+',0);parent.code.editmode=0;parent.code.draw();">' |
+'Delete Resource (cutting links)</A><br>' |
+'Delete Resource (cutting links)</A><br>' |
+'<A href="javascript:parent.code.notclear=0;parent.code.infoclear();' |
+'<A href="javascript:parent.code.notclear=0;parent.code.infoclear();' |
+'parent.code.delres('+i+',1);parent.code.editmode=0;parent.code.draw();">' |
+'parent.code.delres('+i+',1);parent.code.editmode=0;parent.code.draw();">' |
+'Delete Resource (preserving links)</A><br>' |
+'Delete Resource (preserving links)</A><br>'); |
+'<a href="javascript:parent.code.linkmode='+i+ |
} |
|
if (data1[3]!='finish') { |
|
parent.mapout.document.writeln( |
|
'<a href="javascript:parent.code.linkmode='+i+ |
';parent.code.notclear=0;parent.code.infoclear();">'+ |
';parent.code.notclear=0;parent.code.infoclear();">'+ |
'Link resource</a></td></tr>'); |
'Link resource</a></td></tr>'); |
|
} |
parent.mapout.document.writeln('<tr><td colspan=2><table><tr>'); |
parent.mapout.document.writeln('<tr><td colspan=2><table><tr>'); |
for (j=2;j<data2.length;j++) { |
for (j=2;j<data2.length;j++) { |
data4=data2[j].split(':'); |
data4=data2[j].split(':'); |
Line 1752 function tabledraw() {
|
Line 1922 function tabledraw() {
|
} |
} |
parent.mapout.document.writeln( |
parent.mapout.document.writeln( |
'</tr></table></td></tr></table></form>'); |
'</tr></table></td></tr></table></form>'); |
insrestab(rrow[data2[1]],i,nr); |
insrestab(rrow[data2[1]],i,nr,data1[3]); |
|
|
} |
} |
} |
} |
Line 1760 function tabledraw() {
|
Line 1930 function tabledraw() {
|
|
|
// ----------------------------------------------------- Insert Resource Output |
// ----------------------------------------------------- Insert Resource Output |
|
|
function insrestab(irow,be,af) { |
function insrestab(irow,be,af,typ) { |
parent.mapout.document.writeln('<tr><td colspan=2>'+ |
parent.mapout.document.writeln('<tr><td colspan=2>'+ |
'<table><tr><td><a href="javascript:parent.code.insertrow(' |
'<table><tr><td><a href="javascript:parent.code.insertrow(' |
+irow+');parent.code.newresource(parent.code.maxrow,'+rcol[1] |
+irow+');parent.code.newresource(parent.code.maxrow,'+rcol[1] |
+",'','','false','normal');parent.code.mostrecent=parent.code.obj.length-1;" |
+",'','','false','normal');parent.code.mostrecent=parent.code.obj.length-1;" |
+'parent.code.draw();">' |
+'parent.code.draw();">' |
+'Insert resource</a></td><td>'); |
+'Insert resource</a></td><td>'); |
if (be!=-1) { |
if ((be!=-1) && (typ!='finish')) { |
parent.mapout.document.writeln( |
parent.mapout.document.writeln( |
'<a href="javascript:parent.code.insertrow(' |
'<a href="javascript:parent.code.insertrow(' |
+irow+');parent.code.newresource(parent.code.maxrow,'+rcol[0] |
+irow+');parent.code.newresource(parent.code.maxrow,'+rcol[0] |
Line 1776 function insrestab(irow,be,af) {
|
Line 1946 function insrestab(irow,be,af) {
|
+'parent.code.draw();">' |
+'parent.code.draw();">' |
+'Insert resource linked to from above</a><br>'); |
+'Insert resource linked to from above</a><br>'); |
} |
} |
if ((be!=-1) && (af!=-1)) { |
if ((be!=-1) && (af!=-1) && (typ!='finish')) { |
parent.mapout.document.writeln( |
parent.mapout.document.writeln( |
'<a href="javascript:parent.code.insertrow(' |
'<a href="javascript:parent.code.insertrow(' |
+irow+');parent.code.newresource(parent.code.maxrow,'+rcol[0] |
+irow+');parent.code.newresource(parent.code.maxrow,'+rcol[0] |
Line 1832 function simpletabledraw() {
|
Line 2002 function simpletabledraw() {
|
+'">'); |
+'">'); |
data2=obj[i].split('&'); |
data2=obj[i].split('&'); |
parent.mapout.document.write('<table>'); |
parent.mapout.document.write('<table>'); |
|
if (data1[3]=='start') { |
|
parent.mapout.document.writeln('<tr><td><b>Start</b></td></tr>'); |
|
} |
|
if (data1[3]=='finish') { |
|
parent.mapout.document.writeln('<tr><td><b>Finish</b></td></tr>'); |
|
} |
parent.mapout.document.write( |
parent.mapout.document.write( |
'<tr><td>Title:</td><td>'+data1[0]+'</td></tr>'); |
'<tr><td>Title:</td><td>'+data1[0]+'</td></tr>'); |
parent.mapout.document.write( |
parent.mapout.document.write( |
Line 1883 function simpletabledraw() {
|
Line 2059 function simpletabledraw() {
|
// ---------------------------------- Sort objects to straighten graph or table |
// ---------------------------------- Sort objects to straighten graph or table |
|
|
function sortobjs() { |
function sortobjs() { |
message("Sorting Resources"); |
message("Sorting Resources: "+funny); |
var k; |
var k; |
var ij; |
var ij; |
var dol; |
var dol; |
Line 1901 function sortobjs() {
|
Line 2077 function sortobjs() {
|
} |
} |
if (objsort.length==0) { return ''; } |
if (objsort.length==0) { return ''; } |
for (k=1;k<objlinks.length;k++) { |
for (k=1;k<objlinks.length;k++) { |
|
wheelswitch(); |
|
message("Sorting Resources: "+funny); |
if (objlinks[k]!='') { |
if (objlinks[k]!='') { |
sortthis=1; |
sortthis=1; |
data1=objlinks[k].split(':'); |
data1=objlinks[k].split(':'); |
Line 1910 function sortobjs() {
|
Line 2088 function sortobjs() {
|
kj=j; |
kj=j; |
} |
} |
} |
} |
objsort[kj]+=':'+data1[1]; |
if (kj!=-1) { objsort[kj]+=':'+data1[1]; } |
} |
} |
} |
} |
if (sortthis!=0) { |
if (sortthis!=0) { |
for (k=0;k<objsort.length;k++) { |
for (k=0;k<objsort.length;k++) { |
|
wheelswitch(); |
|
message("Sorting Resources: "+funny); |
for (j=0;j<objsort.length;j++) { |
for (j=0;j<objsort.length;j++) { |
if (k!=j) { |
if (k!=j) { |
data1=objsort[k].split(':'); |
data1=objsort[k].split(':'); |
data2=objsort[j].split(':'); |
data2=objsort[j].split(':'); |
dol=data1.length; |
dol=data1.length; |
dtl=data2.length; |
dtl=data2.length; |
for (kj=1;kj<dol;kj++) { |
if (dol+dtl<200) { |
|
for (kj=1;kj<dol;kj++) { |
if (data1[kj]==data2[0]) { |
if (data1[kj]==data2[0]) { |
for (ij=1;ij<dtl;ij++) { |
for (ij=1;ij<dtl;ij++) { |
data1[data1.length]=data2[ij]; |
data1[data1.length]=data2[ij]; |
} |
} |
} |
} |
} |
} |
for (kj=1;kj<dtl;kj++) { |
for (kj=1;kj<dtl;kj++) { |
if (data2[kj]==data1[0]) { |
if (data2[kj]==data1[0]) { |
for (ij=1;ij<dol;ij++) { |
for (ij=1;ij<dol;ij++) { |
data2[data2.length]=data1[ij]; |
data2[data2.length]=data1[ij]; |
} |
} |
} |
} |
|
} |
|
objsort[k]=data1.join(':'); |
|
objsort[j]=data2.join(':'); |
} |
} |
objsort[k]=data1.join(':'); |
|
objsort[j]=data2.join(':'); |
|
} |
} |
} |
} |
} |
} |
|
message("Sorting Resources: finishing up."); |
return objsort.sort(rescompare).join('&'); |
return objsort.sort(rescompare).join('&'); |
} else { |
} else { |
return objsort.join('&'); |
return objsort.join('&'); |
Line 1971 function graphopt() {
|
Line 2154 function graphopt() {
|
thiscolmax++; |
thiscolmax++; |
} else { |
} else { |
rowcont[rowcont.length]=thisnewobj; |
rowcont[rowcont.length]=thisnewobj; |
if (thiscolmax>allcolmax) { allcolmax=thiscolmax; } |
|
thiscolmax=1; |
thiscolmax=1; |
} |
} |
kj=rowcont.length-1; |
kj=rowcont.length-1; |
obj[thisnewobj]='b&'+kj+'&'+thiscolmax+':0:0:0'; |
obj[thisnewobj]='b&'+kj+'&'+thiscolmax+':0:0:0'; |
|
if (thiscolmax>allcolmax) { allcolmax=thiscolmax; } |
} |
} |
for (k=0;k<obj.length;k++) { |
for (k=0;k<obj.length;k++) { |
if (!obj[k]) { obj[k]=''; } |
if (!obj[k]) { obj[k]=''; } |
Line 2021 function condense() {
|
Line 2204 function condense() {
|
} |
} |
} |
} |
} |
} |
lastempty=-2; |
|
} |
} |
|
|
// ---------------------------------------------------- Load from hidden fields |
// ---------------------------------------------------- Load from hidden fields |
|
|
function load() { |
function load() { |
message("Loading"); |
message("Loading"); |
|
schedule('load'); |
|
checkdef(); |
|
} |
|
|
|
function finishload() { |
var k; |
var k; |
for (k=0;k<objcont.length;k++) { objcont[k]=''; } |
for (k=0;k<objcont.length;k++) { objcont[k]=''; } |
objcont.length=0; |
objcont.length=0; |
Line 2054 function load() {
|
Line 2241 function load() {
|
if (data2[0]=='rowcont') { rowcont[data2[1]]=data2[2]; } |
if (data2[0]=='rowcont') { rowcont[data2[1]]=data2[2]; } |
if (data2[0]=='row') { row[data2[1]]=1*data2[2]; } |
if (data2[0]=='row') { row[data2[1]]=1*data2[2]; } |
if (data2[0]=='col') { col[data2[1]]=1*data2[2]; } |
if (data2[0]=='col') { col[data2[1]]=1*data2[2]; } |
|
if (data2[0]=='mode') { mode=data2[1]; } |
if (data2[0]=='tablemode') { tablemode=1*data2[1]; } |
if (data2[0]=='tablemode') { tablemode=1*data2[1]; } |
if (data2[0]=='zscale') { zscale=1*data2[1]; } |
if (data2[0]=='zscale') { zscale=1*data2[1]; } |
} |
} |
} |
} |
|
if (graphdef=='yes') { |
|
for (k=1;k<=maxrow;k++) { |
|
if (rowcont[k]==undefined) { rowcont[k]=''; } |
|
} |
|
} |
} |
} |
|
|
// -------------------------------------------------------------- Undo function |
// -------------------------------------------------------------- Undo function |
Line 2067 function undo() {
|
Line 2260 function undo() {
|
undopointer--; |
undopointer--; |
parent.server.document.forms.storage.output.value |
parent.server.document.forms.storage.output.value |
=undostack[undopointer]; |
=undostack[undopointer]; |
load(); |
finishload(); |
undopointer--; |
undopointer--; |
draw(); |
draw(); |
stored=0; |
stored=0; |
Line 2083 function redo() {
|
Line 2276 function redo() {
|
undopointer++; |
undopointer++; |
parent.server.document.forms.storage.output.value |
parent.server.document.forms.storage.output.value |
=undostack[undopointer]; |
=undostack[undopointer]; |
load(); |
finishload(); |
undopointer--; |
undopointer--; |
draw(); |
draw(); |
stored=0; |
stored=0; |
Line 2101 function revert() {
|
Line 2294 function revert() {
|
} |
} |
} |
} |
|
|
|
// ---------------------------------------------------------------- Wheelswitch |
|
|
|
function wheelswitch() { |
|
if (funny=='|') { |
|
funny='/'; |
|
} else { |
|
if (funny=='/') { |
|
funny='-'; |
|
} else { |
|
if (funny=='-') { |
|
funny='\\'; |
|
} else { |
|
if (funny=='\\') { funny='|'; } |
|
} |
|
} |
|
} |
|
} |
|
|
|
// --------------------------------------------- Checks if server frame defined |
|
|
|
function checkdef() { |
|
if (parent.server.document.forms.storage.output.value!=undefined) { |
|
srvloaded(); |
|
} |
|
if ((finishdone==0) && (tim==0)) { setTimeout('checkdef()',100); } |
|
} |
|
|
|
// ---------------------------------------------------------- The wait function |
|
|
|
function wait() { |
|
if ((finishdone==1) || (tim==1)) { |
|
if (tim==0) { |
|
clearTimeout(canceltim); |
|
if (reqaction=='save') { finishsave(); } |
|
if (reqaction=='load') { finishload(); draw(); } |
|
} else { |
|
alert("Server Communication Timed Out."); |
|
} |
|
} else { |
|
wheelswitch(); |
|
message('Waiting for server reply: '+funny); |
|
setTimeout('wait();',100); |
|
} |
|
} |
|
|
|
// ---------------------------------------------------------- Schedule function |
|
|
|
function schedule(action) { |
|
reqaction=action; |
|
tim=0; |
|
finishdone=0; |
|
canceltim=setTimeout('tim=1;',20000) |
|
wait(); |
|
} |
|
|
// -------------------------------------------------------------- Store changes |
// -------------------------------------------------------------- Store changes |
|
|
function storechange() { |
function storechange() { |
|
var k; |
parent.server.document.forms.storage.submit(); |
parent.server.document.forms.storage.submit(); |
|
schedule('save'); |
|
} |
|
|
|
function finishsave() { |
|
finishload(); |
|
draw(); |
stored=1; |
stored=1; |
alert("Stored changes"); |
} |
|
|
|
// --------------------------------------- Gets called when submission finished |
|
|
|
function srvloaded() { |
|
finishdone=1; |
|
message("Server replied."); |
} |
} |
|
|
// ---------------------------------------------------------------- Toggle Mode |
// ---------------------------------------------------------------- Toggle Mode |
Line 2131 function togglemode() {
|
Line 2392 function togglemode() {
|
function main() { |
function main() { |
|
|
if (mainrun==0) { |
if (mainrun==0) { |
|
infopen(); |
|
infoclear(); |
load(); |
load(); |
draw(); |
|
stored=1; |
stored=1; |
mainrun=1; |
mainrun=1; |
} |
} |
Line 2142 function main() {
|
Line 2404 function main() {
|
// ------------------------------------------------------------- Save on leave? |
// ------------------------------------------------------------- Save on leave? |
|
|
function leave() { |
function leave() { |
|
if (!inf.closed) { |
|
inf.close(); |
|
} |
if (stored==0) { |
if (stored==0) { |
if (confirm('Store changes?')) { |
if (confirm('Store changes?')) { |
storechange(); |
storechange(); |