version 1.43, 2001/07/25 03:10:15
|
version 1.57, 2002/05/24 18:08:39
|
Line 3
|
Line 3
|
<!-- |
<!-- |
The LearningOnline Network |
The LearningOnline Network |
Resource Assembly Tool |
Resource Assembly Tool |
|
// |
|
// $Id$ |
|
// |
|
// Copyright Michigan State University Board of Trustees |
|
// |
|
// This file is part of the LearningOnline Network with CAPA (LON-CAPA). |
|
// |
|
// LON-CAPA is free software; you can redistribute it and/or modify |
|
// it under the terms of the GNU General Public License as published by |
|
// the Free Software Foundation; either version 2 of the License, or |
|
// (at your option) any later version. |
|
// |
|
// LON-CAPA is distributed in the hope that it will be useful, |
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
// GNU General Public License for more details. |
|
// |
|
// You should have received a copy of the GNU General Public License |
|
// along with LON-CAPA; if not, write to the Free Software |
|
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
|
// |
|
// /home/httpd/html/adm/gpl.txt |
|
// |
|
// http://www.lon-capa.org/ |
|
// |
|
YEAR 2000 |
7/23,7/24,7/26, |
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, |
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, |
9/1,9/2,9/4,9/5,9/6, |
Line 10 Resource Assembly Tool
|
Line 36 Resource Assembly Tool
|
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/9,6/10,6/12,6/15,7/4,7/26,7/28,7/31,8/5,8/19,8/24, |
6/7,6/8,6/9,6/10,6/12,6/15,7/4,7/26,7/28,7/31,8/5,8/19,8/24, |
|
YEAR 2001 |
01/17/01,03/03,03/05 Gerd Kortemeyer with Scott Harrison |
01/17/01,03/03,03/05 Gerd Kortemeyer with Scott Harrison |
March/April 01 Scott Harrison |
March/April 01 Scott Harrison |
04/20 Gerd Kortemeyer |
04/20 Gerd Kortemeyer |
04/30 Scott Harrison |
04/30 Scott Harrison |
05/31 Scott Harrison |
05/31 Scott Harrison |
06/11,06/25,06/27,06/28,06/29,07/04 Gerd Kortemeyer |
06/11,06/25,06/27,06/28,06/29,07/04 Gerd Kortemeyer |
07/24 Scott Harrison |
07/24,8/6,8/7,10/16 Scott Harrison |
|
03/01/02 Matthew Hall |
--> |
--> |
|
|
|
|
Line 90 var idxflag=-1; // 1 means currently ope
|
Line 118 var idxflag=-1; // 1 means currently ope
|
// -1 means never yet opened/defined |
// -1 means never yet opened/defined |
var idxmode=''; |
var idxmode=''; |
|
|
|
var copydx; |
|
var copydxflag=-1; // 1 means currently open |
|
// 0 means closed (but has been open) |
|
// -1 means never yet opened/defined |
|
var copydxmode=''; |
|
|
var parm; |
var parm; |
var parmflag=-1; // 1 means currently open |
var parmflag=-1; // 1 means currently open |
// 0 means closed (but has been open) |
// 0 means closed (but has been open) |
// -1 means never yet opened/defined |
// -1 means never yet opened/defined |
|
|
var iconpath='/adm/lonIcons/'; |
var iconpath='/adm/lonIcons/'; |
|
var raticons='/adm/rat/'; |
|
|
function testfunction() { |
function testfunction() { |
inf.document.forms.resinfo.elements.t.value="ABC"; |
inf.document.forms.resinfo.elements.t.value="ABC"; |
} |
} |
|
|
// ------------------------------------------------ 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; |
Line 207 function insertrow(j,ex1,ex2) {
|
Line 241 function insertrow(j,ex1,ex2) {
|
} |
} |
|
|
// --------------------------------------------- Creates a new condition object |
// --------------------------------------------- Creates a new condition object |
|
|
function newcondition(content,type) { |
function newcondition(content,type) { |
var ko; |
var ko; |
stored=0; |
stored=0; |
Line 218 function newcondition(content,type) {
|
Line 251 function newcondition(content,type) {
|
} |
} |
|
|
// ---------------------------------------------- Creates a new resource object |
// ---------------------------------------------- Creates a new resource object |
|
|
function newresource(rid,cid,text,url,ext,type) { |
function newresource(rid,cid,text,url,ext,type) { |
stored=0; |
stored=0; |
objcont[addobj(rid,'b&'+rid+'&'+cid+':0:0:0')]= |
objcont[addobj(rid,'b&'+rid+'&'+cid+':0:0:0')]= |
Line 227 function newresource(rid,cid,text,url,ex
|
Line 259 function newresource(rid,cid,text,url,ex
|
|
|
|
|
// -------------------------------- Insert a condition into a port of an object |
// -------------------------------- Insert a condition into a port of an object |
|
|
function insertcond(obj1,portnr,cond) { |
function insertcond(obj1,portnr,cond) { |
var k; |
var k; |
stored=0; |
stored=0; |
Line 244 function insertcond(obj1,portnr,cond) {
|
Line 275 function insertcond(obj1,portnr,cond) {
|
|
|
// --------------------------------------------- Insert a column into the table |
// --------------------------------------------- Insert a column into the table |
// Inserts a new table column after table column j |
// Inserts a new table column after table column j |
|
|
function insertcol(j) { |
function insertcol(j) { |
var kj; |
var kj; |
stored=0; |
stored=0; |
Line 257 function insertcol(j) {
|
Line 287 function insertcol(j) {
|
} |
} |
|
|
// --------------------------------------------------------------- Find the row |
// --------------------------------------------------------------- Find the row |
|
|
function findrow(jid) { |
function findrow(jid) { |
var j; |
var j; |
for (j=0;j<=maxrow;j++) { if (row[j]==jid) { return j; } } |
for (j=0;j<=maxrow;j++) { if (row[j]==jid) { return j; } } |
Line 265 function findrow(jid) {
|
Line 294 function findrow(jid) {
|
} |
} |
|
|
// --------------------------------------------------------------- Find the col |
// --------------------------------------------------------------- Find the col |
|
|
function findcol(jid) { |
function findcol(jid) { |
var j; |
var j; |
for (j=0;j<=maxcol;j++) { if (col[j]==jid) { return j; } } |
for (j=0;j<=maxcol;j++) { if (col[j]==jid) { return j; } } |
Line 280 function findcol(jid) {
|
Line 308 function findcol(jid) {
|
// |
// |
// returns middle (col number of middle of obj1) |
// returns middle (col number of middle of obj1) |
// sets colmap (map of cols with object numbers) |
// sets colmap (map of cols with object numbers) |
|
|
function maprow (jid,obj1,ign) { |
function maprow (jid,obj1,ign) { |
var j; var k; var left; var right; var middle; |
var j; var k; var left; var right; var middle; |
middle=-1; |
middle=-1; |
Line 326 function maprow (jid,obj1,ign) {
|
Line 353 function maprow (jid,obj1,ign) {
|
// kid: colID, find point close to this |
// kid: colID, find point close to this |
// dkid: destination colID |
// dkid: destination colID |
// returns colID |
// returns colID |
|
|
function comingthru (jid,kid,dkid) { |
function comingthru (jid,kid,dkid) { |
var k; |
var k; |
maprow(jid,-1,1); |
maprow(jid,-1,1); |
Line 372 function comingthru (jid,kid,dkid) {
|
Line 398 function comingthru (jid,kid,dkid) {
|
// linkobj: object that the link goes to/comes from |
// linkobj: object that the link goes to/comes from |
// sets inrow or outrow |
// sets inrow or outrow |
// return column |
// return column |
|
|
|
|
function insertport (obj1,d,inout,linkobj) { |
function insertport (obj1,d,inout,linkobj) { |
|
|
var k; var port; var revport; |
var k; var port; var revport; |
stored=0; |
stored=0; |
data1=obj[obj1].split('&'); |
data1=obj[obj1].split('&'); |
Line 404 function insertport (obj1,d,inout,linkob
|
Line 427 function insertport (obj1,d,inout,linkob
|
if ((data3[k]==0) && (colmap[k]==obj1) && (port==-1)) { port=k; } |
if ((data3[k]==0) && (colmap[k]==obj1) && (port==-1)) { port=k; } |
} |
} |
} |
} |
|
|
if (port==-1) { |
if (port==-1) { |
if (colmap[k]==0) { |
if (colmap[k]==0) { |
revport=findcol(k); |
revport=findcol(k); |
Line 451 function insertport (obj1,d,inout,linkob
|
Line 473 function insertport (obj1,d,inout,linkob
|
|
|
// ---------------------------- Make a new object and add it to the row content |
// ---------------------------- Make a new object and add it to the row content |
// returns object number of generated object |
// returns object number of generated object |
|
|
function addobj(kjid,objs) { |
function addobj(kjid,objs) { |
stored=0; |
stored=0; |
expense++; |
expense++; |
Line 465 function addobj(kjid,objs) {
|
Line 486 function addobj(kjid,objs) {
|
|
|
// ---------------------------------------- Make horizontal connection for hrid |
// ---------------------------------------- Make horizontal connection for hrid |
// hoffs=-1: this line goes on top of hrid |
// hoffs=-1: this line goes on top of hrid |
|
|
function horizontal(hrid,hoffs,hfcol,htcol,hdest,hends) { |
function horizontal(hrid,hoffs,hfcol,htcol,hdest,hends) { |
hcrid=-1; |
hcrid=-1; |
if (hoffs==-1) { |
if (hoffs==-1) { |
Line 492 function horizontal(hrid,hoffs,hfcol,htc
|
Line 512 function horizontal(hrid,hoffs,hfcol,htc
|
} |
} |
} |
} |
} |
} |
|
|
if (hcrid==-1) { |
if (hcrid==-1) { |
insertrow(row[hrid]+hoffs,hfcol,htcol); |
insertrow(row[hrid]+hoffs,hfcol,htcol); |
addobj(maxrow,'h&'+maxrow+'&'+hfcol+':'+htcol+'&'+hdest+'&'+hends); |
addobj(maxrow,'h&'+maxrow+'&'+hfcol+':'+htcol+'&'+hdest+'&'+hends); |
Line 502 function horizontal(hrid,hoffs,hfcol,htc
|
Line 521 function horizontal(hrid,hoffs,hfcol,htc
|
} |
} |
|
|
// --------------------------------------- Deletes all references to object obj |
// --------------------------------------- Deletes all references to object obj |
|
|
function delobj(obj1) { |
function delobj(obj1) { |
var k; |
var k; |
stored=0; |
stored=0; |
Line 522 function delobj(obj1) {
|
Line 540 function delobj(obj1) {
|
} |
} |
|
|
// --------------------------------------------------------- Garbage collection |
// --------------------------------------------------------- Garbage collection |
|
|
function cleanup () { |
function cleanup () { |
message("Garbage Collection"); |
message("Garbage Collection"); |
var j,kj,i; |
var j,kj,i; |
Line 576 function cleanup () {
|
Line 593 function cleanup () {
|
rowtype[maxrow]=2; |
rowtype[maxrow]=2; |
coltype[maxcol]=2; |
coltype[maxcol]=2; |
} |
} |
|
|
} |
} |
|
|
// -------------------------------------------- Delete a condition from a block |
// -------------------------------------------- Delete a condition from a block |
|
|
function delcond(obj1,colid) { |
function delcond(obj1,colid) { |
var k; |
var k; |
stored=0; |
stored=0; |
Line 600 function delcond(obj1,colid) {
|
Line 615 function delcond(obj1,colid) {
|
} |
} |
|
|
// ----------------------------------------- Creates a new condition in a block |
// ----------------------------------------- Creates a new condition in a block |
|
|
function crecond(obj1,colid,condtext,condtype) { |
function crecond(obj1,colid,condtext,condtype) { |
var k; |
var k; |
data3=obj[obj1].split('&'); |
data3=obj[obj1].split('&'); |
Line 622 function crecond(obj1,colid,condtext,con
|
Line 636 function crecond(obj1,colid,condtext,con
|
// deletes the link linknr |
// deletes the link linknr |
// h&rowID&incolID:outcolID&inObj:outObj&inupdown:outupdown |
// h&rowID&incolID:outcolID&inObj:outObj&inupdown:outupdown |
// v&colID&inObj:outObj&updown |
// v&colID&inObj:outObj&updown |
|
|
function dellink (linknr) { |
function dellink (linknr) { |
var k; var obj1; var obj2; |
var k; var obj1; var obj2; |
stored=0; |
stored=0; |
Line 663 function dellink (linknr) {
|
Line 676 function dellink (linknr) {
|
|
|
// ----------------------------------------------------------- Join two objects |
// ----------------------------------------------------------- Join two objects |
// 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) { |
stored=0; |
stored=0; |
var minexpense; |
var minexpense; |
Line 698 function joinres (obj1,obj2,cond) {
|
Line 710 function joinres (obj1,obj2,cond) {
|
minexpense=expense; |
minexpense=expense; |
} |
} |
|
|
|
|
if (best==0) { |
if (best==0) { |
finishload(); |
finishload(); |
tryjoin(obj1,obj2,cond,1,1); |
tryjoin(obj1,obj2,cond,1,1); |
Line 711 function joinres (obj1,obj2,cond) {
|
Line 722 function joinres (obj1,obj2,cond) {
|
finishload(); |
finishload(); |
tryjoin(obj1,obj2,cond,-1,1); |
tryjoin(obj1,obj2,cond,-1,1); |
} |
} |
|
|
} |
} |
|
|
|
|
function tryjoin(obj1,obj2,cond,d1,d2) { |
function tryjoin(obj1,obj2,cond,d1,d2) { |
var k; var kr; var outcol; var incol; var d; var dest; |
var k; var kr; var outcol; var incol; var d; var dest; |
|
|
Line 813 function tryjoin(obj1,obj2,cond,d1,d2) {
|
Line 822 function tryjoin(obj1,obj2,cond,d1,d2) {
|
// ---------------------------------------------------------- Delete a resource |
// ---------------------------------------------------------- Delete a resource |
// Deletes resource obj1 |
// Deletes resource obj1 |
// Reconnects resources going thru this one if recon=1 |
// Reconnects resources going thru this one if recon=1 |
|
|
function delres (obj1,recon) { |
function delres (obj1,recon) { |
var infromobj=new Array(); |
var infromobj=new Array(); |
var inwithcon=new Array(); |
var inwithcon=new Array(); |
Line 937 function delres (obj1,recon) {
|
Line 945 function delres (obj1,recon) {
|
} |
} |
|
|
// -------------------------------------------------------------- Draw an entry |
// -------------------------------------------------------------- Draw an entry |
|
|
function drawcell (rtype,ctype,what,cm,obj1,ej,ek,ne) { |
function drawcell (rtype,ctype,what,cm,obj1,ej,ek,ne) { |
var bgcolor; |
var bgcolor; |
var url=''; |
var url=''; |
Line 970 function drawcell (rtype,ctype,what,cm,o
|
Line 977 function drawcell (rtype,ctype,what,cm,o
|
} |
} |
parent.mapout.document.write |
parent.mapout.document.write |
('<img border=0 width='+cw[ctype]+' height='+rh[1] |
('<img border=0 width='+cw[ctype]+' height='+rh[1] |
+' src="resource.gif">'); |
+' src="'+raticons+'resource.gif">'); |
if ((mime!='') && (ext!='true')) { |
if ((mime!='') && (ext!='true')) { |
parent.mapout.document.write |
parent.mapout.document.write |
('<br><img border=0 src="left.gif"></a><a target="preview" href="'+ |
('<br><img border=0 src="'+raticons+'left.gif"></a><a target="preview" href="'+ |
url+'.meta"><img border=0 src="'+iconpath+ |
url+'.meta"><img border=0 src="'+iconpath+ |
'meta.gif"><a target="preview" href="'+url+ |
'meta.gif"><a target="preview" href="'+url+ |
'"><img border=0 src="'+iconpath+mime+'.gif">'+ |
'"><img border=0 src="'+iconpath+mime+'.gif">'+ |
'<img border=0 src="right.gif">'); |
'<img border=0 src="'+raticons+'right.gif">'); |
} else { |
} else { |
parent.mapout.document.write |
parent.mapout.document.write |
('<br><img border=0 src="middle.gif">'); |
('<br><img border=0 src="'+raticons+'middle.gif">'); |
} |
} |
parent.mapout.document.write |
parent.mapout.document.write |
('<br><img border=0 src="bottom.gif">'); |
('<br><img border=0 src="'+raticons+'bottom.gif">'); |
} else { |
} else { |
if (what=='c:') { |
if (what=='c:') { |
parent.mapout.document.write |
parent.mapout.document.write |
('<img border=0 width='+cw[ctype]+' height='+rh[rtype] |
('<img border=0 width='+cw[ctype]+' height='+rh[rtype] |
+' src="condition.gif">'); |
+' src="'+raticons+'condition.gif">'); |
} else { |
} else { |
if (what=='rs:') { |
if (what=='rs:') { |
mime=''; |
mime=''; |
Line 1003 function drawcell (rtype,ctype,what,cm,o
|
Line 1010 function drawcell (rtype,ctype,what,cm,o
|
} |
} |
parent.mapout.document.write |
parent.mapout.document.write |
('<img border=0 width='+cw[ctype]+' height='+rh[1] |
('<img border=0 width='+cw[ctype]+' height='+rh[1] |
+' src="start.gif">'); |
+' src="'+raticons+'start.gif">'); |
if ((mime!='') && (ext!='true')) { |
if ((mime!='') && (ext!='true')) { |
parent.mapout.document.write |
parent.mapout.document.write |
('<br><img border=0 src="left.gif"></a><a target="preview" href="'+ |
('<br><img border=0 src="'+raticons+'left.gif"></a><a target="preview" href="'+ |
url+'.meta"><img border=0 src="'+iconpath+ |
url+'.meta"><img border=0 src="'+iconpath+ |
'meta.gif"><a target="preview" href="'+url+ |
'meta.gif"><a target="preview" href="'+url+ |
'"><img border=0 src="'+iconpath+mime+'.gif">'+ |
'"><img border=0 src="'+iconpath+mime+'.gif">'+ |
'<img border=0 src="right.gif">'); |
'<img border=0 src="'+raticons+'right.gif">'); |
} else { |
} else { |
parent.mapout.document.write |
parent.mapout.document.write |
('<br><img border=0 src="middle.gif">'); |
('<br><img border=0 src="'+raticons+'middle.gif">'); |
} |
} |
parent.mapout.document.write |
parent.mapout.document.write |
('<br><img border=0 src="bottom.gif">'); |
('<br><img border=0 src="'+raticons+'bottom.gif">'); |
|
|
} else { |
} else { |
if (what=='rf:') { |
if (what=='rf:') { |
Line 1032 function drawcell (rtype,ctype,what,cm,o
|
Line 1039 function drawcell (rtype,ctype,what,cm,o
|
} |
} |
parent.mapout.document.write |
parent.mapout.document.write |
('<img border=0 width='+cw[ctype]+' height='+rh[1] |
('<img border=0 width='+cw[ctype]+' height='+rh[1] |
+' src="finish.gif">'); |
+' src="'+raticons+'finish.gif">'); |
if ((mime!='') && (ext!='true')) { |
if ((mime!='') && (ext!='true')) { |
parent.mapout.document.write |
parent.mapout.document.write |
('<br><img border=0 src="left.gif"></a><a target="preview" href="'+ |
('<br><img border=0 src="'+raticons+'left.gif"></a><a target="preview" href="'+ |
url+'.meta"><img border=0 src="'+iconpath+ |
url+'.meta"><img border=0 src="'+iconpath+ |
'meta.gif"><a target="preview" href="'+url+ |
'meta.gif"><a target="preview" href="'+url+ |
'"><img border=0 src="'+iconpath+mime+'.gif">'+ |
'"><img border=0 src="'+iconpath+mime+'.gif">'+ |
'<img border=0 src="right.gif">'); |
'<img border=0 src="'+raticons+'right.gif">'); |
} else { |
} else { |
parent.mapout.document.write |
parent.mapout.document.write |
('<br><img border=0 src="middle.gif">'); |
('<br><img border=0 src="'+raticons+'middle.gif">'); |
} |
} |
parent.mapout.document.write |
parent.mapout.document.write |
('<br><img border=0 src="bottom.gif">'); |
('<br><img border=0 src="'+raticons+'bottom.gif">'); |
} else { |
} else { |
parent.mapout.document.write |
parent.mapout.document.write |
('<img border=0 width='+cw[ctype]+' height='+rh[rtype] |
('<img border=0 width='+cw[ctype]+' height='+rh[rtype] |
+' src="'+rtype+'.'+ctype+'.'+what+'.gif">'); |
+' src="'+raticons+rtype+'.'+ctype+'.'+what+'.gif">'); |
} |
} |
} |
} |
} |
} |
Line 1070 function drawcell (rtype,ctype,what,cm,o
|
Line 1077 function drawcell (rtype,ctype,what,cm,o
|
parent.mapout.document.write |
parent.mapout.document.write |
( |
( |
'<img border=0 width='+cw[ctype]+' height='+rh[rtype] |
'<img border=0 width='+cw[ctype]+' height='+rh[rtype] |
+' src="'+rtype+'.'+ctype+'.empty.gif"></a>'); |
+' src="'+raticons+rtype+'.'+ctype+'.empty.gif"></a>'); |
} |
} |
parent.mapout.document.write('</td>'); |
parent.mapout.document.write('</td>'); |
} |
} |
} |
} |
|
|
// --------------------------------------------------------- Color of resources |
// --------------------------------------------------------- Color of resources |
|
|
function rescolor (ext,typ) { |
function rescolor (ext,typ) { |
var rc; var gc; var bc; |
var rc; var gc; var bc; |
if (ext=='true') { bc='55'; } else { bc='99'; } |
if (ext=='true') { bc='55'; } else { bc='99'; } |
Line 1088 function rescolor (ext,typ) {
|
Line 1094 function rescolor (ext,typ) {
|
} |
} |
|
|
// -------------------------------------------------------- Color of conditions |
// -------------------------------------------------------- Color of conditions |
|
|
function condcolor(typ) { |
function condcolor(typ) { |
if (typ=='stop') { return '#EEAAAA'; } |
if (typ=='stop') { return '#EEAAAA'; } |
if (typ=='force') { return '#AAAAEE'; } |
if (typ=='force') { return '#AAAAEE'; } |
Line 1096 function condcolor(typ) {
|
Line 1101 function condcolor(typ) {
|
} |
} |
|
|
// ----------------------------------------------------------------- Draw a row |
// ----------------------------------------------------------------- Draw a row |
|
|
function drawrow (jid) { |
function drawrow (jid) { |
var j; var jk; var k; var ck; var rtype; |
var j; var jk; var k; var ck; var rtype; |
var objd1=new Array(); |
var objd1=new Array(); |
Line 1300 if (rowtype[jid]!=0) {
|
Line 1304 if (rowtype[jid]!=0) {
|
} |
} |
|
|
// -------------------------------------------------------------- Print message |
// -------------------------------------------------------------- Print message |
|
|
function message(txt) { |
function message(txt) { |
parent.window.status=txt; |
parent.window.status=txt; |
} |
} |
|
|
// ------------------------------------------------------------- Draw the table |
// ------------------------------------------------------------- Draw the table |
|
|
function draw () { |
function draw () { |
var k; var kr; |
var k; var kr; |
|
|
Line 1355 function draw () {
|
Line 1357 function draw () {
|
} |
} |
|
|
// --------------------------------------------------------- Clears info window |
// --------------------------------------------------------- Clears info window |
|
|
function infoclear() { |
function infoclear() { |
if (notclear!=1) { |
if (notclear!=1) { |
infcheck(); |
infcheck(); |
Line 1403 function infoclear() {
|
Line 1404 function infoclear() {
|
} |
} |
|
|
// ------------------------------------------------------------ Open inf window |
// ------------------------------------------------------------ Open inf window |
|
|
function infopen() { |
function infopen() { |
var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; |
var options="scrollbars=1,resizable=1,menubar=0,width=400,height=300"; |
inf=open("","infout",options); |
inf=open("","infout",options); |
} |
} |
|
|
// -------------------------------------------------------- Do inf status check |
// -------------------------------------------------------- Do inf status check |
|
|
function infcheck() { |
function infcheck() { |
if (inf.closed) { |
if (inf.closed) { |
infopen(); |
infopen(); |
Line 1418 function infcheck() {
|
Line 1417 function infcheck() {
|
} |
} |
|
|
// --------------------------------------------------- Prints out resource info |
// --------------------------------------------------- Prints out resource info |
|
|
function info(infostr) { |
function info(infostr) { |
var mime=''; |
var mime=''; |
var ext; |
var ext; |
Line 1430 function info(infostr) {
|
Line 1428 function info(infostr) {
|
inf.document.clear(); |
inf.document.clear(); |
inf.document.writeln( |
inf.document.writeln( |
'<html><body bgcolor="#FFFFFF">'+ |
'<html><body bgcolor="#FFFFFF">'+ |
'<table><tr><td width=32><img src="info.gif"></td><td bgcolor="#AAFFAA">'); |
'<table><tr><td width=32><img src="'+raticons+'info.gif"></td><td bgcolor="#AAFFAA">'); |
data1=infostr.split('&'); |
data1=infostr.split('&'); |
if (data1[0]=='c') { |
if (data1[0]=='c') { |
inf.document.write('<b>Condition ('); |
inf.document.write('<b>Condition ('); |
Line 1511 function info(infostr) {
|
Line 1509 function info(infostr) {
|
} |
} |
|
|
// ------------------------------------------------ "Escapes" out special chars |
// ------------------------------------------------ "Escapes" out special chars |
|
|
function escape(instring) { |
function escape(instring) { |
var outstring=''; |
var outstring=''; |
var thischar; |
var thischar; |
Line 1519 function escape(instring) {
|
Line 1516 function escape(instring) {
|
for (k=0;k<instring.length;k++) { |
for (k=0;k<instring.length;k++) { |
thischar=instring.charAt(k); |
thischar=instring.charAt(k); |
if (thischar==':') { thischar=':'; } |
if (thischar==':') { thischar=':'; } |
if (thischar=='"') { thischar='"'; } |
if (thischar=='"') { thischar='"'; }// " |
if (thischar=="'") { thischar='''; } |
if (thischar=="'") { thischar='''; } |
if (thischar==',') { thischar=','; } |
if (thischar==',') { thischar=','; } |
outstring+=thischar; |
outstring+=thischar; |
Line 1528 function escape(instring) {
|
Line 1525 function escape(instring) {
|
} |
} |
|
|
// -------------------------------------------------- Insert resource into link |
// -------------------------------------------------- Insert resource into link |
|
|
function insertreslink(infostr) { |
function insertreslink(infostr) { |
var lnr; |
var lnr; |
var fobj; |
var fobj; |
Line 1561 function insertreslink(infostr) {
|
Line 1557 function insertreslink(infostr) {
|
} |
} |
|
|
// -------------------------------------------- Insert resource after condition |
// -------------------------------------------- Insert resource after condition |
|
|
function insertcondlink(cid,lnr) { |
function insertcondlink(cid,lnr) { |
var fobj; |
var fobj; |
var tobj; |
var tobj; |
Line 1582 function insertcondlink(cid,lnr) {
|
Line 1577 function insertcondlink(cid,lnr) {
|
joinres(nobj,tobj,0); |
joinres(nobj,tobj,0); |
} |
} |
|
|
|
|
|
|
|
|
// ------------------------------------------------------ Clears indexer window |
// ------------------------------------------------------ Clears indexer window |
|
|
function idxclear() { |
function idxclear() { |
idx.document.clear(); |
idx.document.clear(); |
} |
} |
|
|
|
// --------------------------------------------------------- Clears copy window |
|
function copydxclear() { |
|
copydx.document.clear(); |
|
} |
// ------------------------------------------------------- Clears search window |
// ------------------------------------------------------- Clears search window |
|
|
function srchclear() { |
function srchclear() { |
srch.document.clear(); |
srch.document.clear(); |
} |
} |
|
|
// --------------------------------------------------------- Clears parm window |
// --------------------------------------------------------- Clears parm window |
|
|
function parmclear() { |
function parmclear() { |
parm.document.clear(); |
parm.document.clear(); |
} |
} |
|
|
// ------------------------------------------------------ Closes indexer window |
// ------------------------------------------------------ Closes indexer window |
|
|
function idxclose() { |
function idxclose() { |
if (idx && !idx.closed) { |
if (idx && !idx.closed) { |
idxflag=0; |
idxflag=0; |
Line 1612 function idxclose() {
|
Line 1604 function idxclose() {
|
} |
} |
} |
} |
|
|
// ------------------------------------------------------- Closes search window |
// --------------------------------------------------------- Closes copy window |
|
function copydxclose() { |
|
if (copydx && !copydx.closed) { |
|
copydxflag=0; |
|
copydx.close(); |
|
} |
|
} |
|
|
|
// ------------------------------------------------------- Closes search window |
function srchclose() { |
function srchclose() { |
if (srch && !srch.closed) { |
if (srch && !srch.closed) { |
srchflag=0; |
srchflag=0; |
Line 1622 function srchclose() {
|
Line 1621 function srchclose() {
|
} |
} |
|
|
// ------------------------------------------------------- Closes search window |
// ------------------------------------------------------- Closes search window |
|
|
function parmclose() { |
function parmclose() { |
if (parm && !parm.closed) { |
if (parm && !parm.closed) { |
parmflag=0; |
parmflag=0; |
Line 1631 function parmclose() {
|
Line 1629 function parmclose() {
|
} |
} |
|
|
// -------------------------------------------------------- Open indexer window |
// -------------------------------------------------------- Open indexer window |
|
|
function idxopen(mode) { |
function idxopen(mode) { |
var options="scrollbars=1,resizable=1,menubar=0"; |
var options="scrollbars=1,resizable=1,menubar=0"; |
idxmode=mode; |
idxmode=mode; |
idxflag=1; |
idxflag=1; |
idx=open("/res?catalogmode="+mode,"idxout",options); |
idx=open("/res/?launch=1&mode=rat&catalogmode="+mode,"idxout",options); |
idx.focus(); |
idx.focus(); |
} |
} |
|
// ------------------------------------------------- Open browser to select map |
|
var editbrowser; |
|
function openbrowser(formname,elementname,only,omit) { |
|
var url = '/res/?'; |
|
if (editbrowser == null) { |
|
url += 'launch=1&'; |
|
} |
|
url += 'catalogmode=interactive&'; |
|
url += 'mode=edit&'; |
|
url += 'form=' + formname + '&'; |
|
if (only != null) { |
|
url += 'only=' + only + '&'; |
|
} |
|
if (omit != null) { |
|
url += 'omit=' + omit + '&'; |
|
} |
|
url += 'element=' + elementname + ''; |
|
var title = 'Browser'; |
|
var options = 'scrollbars=1,resizable=1,menubar=0'; |
|
options += ',width=700,height=600'; |
|
editbrowser = copydx.open(url,title,options,'1'); |
|
editbrowser.focus(); |
|
} |
|
// ----------------------------------------------------------- Open copy window |
|
function copydxopen(mode) { |
|
var options="scrollbars=1,resizable=1,menubar=0"; |
|
copydxmode=mode; |
|
copydxflag=1; |
|
copydx=open("",'copydxout',options); |
|
copydx.document.clear(''); |
|
copydx.document.writeln( |
|
'<html><body bgcolor="#FFFFFF"><h1>Group Copy from Map</h1>'+ |
|
'<form name="mapload"><input type=text size=40 name=importmap>'+ |
|
'<input type=button onClick="javascript:opener.openbrowser'+ |
|
"('mapload','importmap','sequence,page','')"+ |
|
'" value="Browse"><input type=button value="Load Map" '+ |
|
'onClick="window.location=document.mapload.importmap.value+'+ |
|
"'?launch=1&forceselect=1'"+'"></form>'); |
|
|
// --------------------------------------------------------- Open search window |
copydx.document.writeln('</body></html>'); |
|
copydx.focus(); |
|
} |
|
|
|
// --------------------------------------------------------- Open search window |
function srchopen(mode) { |
function srchopen(mode) { |
var options="scrollbars=1,resizable=1,menubar=0"; |
var options="scrollbars=1,resizable=1,menubar=0"; |
srchmode=mode; |
srchmode=mode; |
srchflag=1; |
srchflag=1; |
srch=open("/adm/searchcat?catalogmode=interactive","srchout",options); |
srch=open("/adm/searchcat?launch=1&mode=rat&catalogmode="+mode,"srchout",options); |
srch.focus(); |
srch.focus(); |
} |
} |
|
|
// -------------------------------------------- Interface function to searching |
// -------------------------------------------- Interface function to searching |
|
|
function search() { |
function search() { |
alert("Searching not yet implemented"); |
alert("Searching not yet implemented"); |
} |
} |
|
|
// ------------------------------------------------------- Do srch status check |
// ------------------------------------------------------- Do srch status check |
|
|
function srchcheck(mode) { |
function srchcheck(mode) { |
if (!srch || srch.closed || srchmode!=mode) { |
if (!srch || srch.closed || srchmode!=mode) { |
srchopen(); |
srchopen(mode); |
} |
} |
srch.focus(); |
srch.focus(); |
} |
} |
|
|
// -------------------------------------------------------- Do idx status check |
// -------------------------------------------------------- Do idx status check |
|
|
function idxcheck(mode) { |
function idxcheck(mode) { |
if (!idx || idx.closed || idxmode!=mode) { |
if (!idx || idx.closed || idxmode!=mode) { |
idxopen(mode); |
idxopen(mode); |
Line 1674 function idxcheck(mode) {
|
Line 1709 function idxcheck(mode) {
|
idx.focus(); |
idx.focus(); |
} |
} |
|
|
// ---------------------------------------------------- Handles "click to edit" |
// -------------------------------------------------------- Do idx status check |
|
function copydxcheck(mode) { |
|
if (!copydx || copydx.closed || copydxmode!=mode) { |
|
copydxopen(mode); |
|
} |
|
copydx.focus(); |
|
} |
|
|
|
// ---------------------------------------------------- Handles "click to edit" |
function handler(infostr) { |
function handler(infostr) { |
var k; |
var k; |
editmode=1; |
editmode=1; |
Line 1684 function handler(infostr) {
|
Line 1726 function handler(infostr) {
|
inf.document.clear(); |
inf.document.clear(); |
inf.document.writeln( |
inf.document.writeln( |
'<html><body bgcolor="#FFFFFF">'+ |
'<html><body bgcolor="#FFFFFF">'+ |
'<table><tr><td width=32><img src="edit.gif"></td><td bgcolor="#AAFFAA">'); |
'<table><tr><td width=32><img src="'+raticons+'edit.gif"></td><td bgcolor="#AAFFAA">'); |
data1=infostr.split('&'); |
data1=infostr.split('&'); |
if (data1[0]=='c') { |
if (data1[0]=='c') { |
inf.document.writeln('<b>Condition</b><hr>'); |
inf.document.writeln('<b>Condition</b><hr>'); |
Line 1738 function handler(infostr) {
|
Line 1780 function handler(infostr) {
|
'opener.insertcondlink('+data1[1]+','+data1[3]+');'+ |
'opener.insertcondlink('+data1[1]+','+data1[3]+');'+ |
'opener.editmode=0;opener.notclear=0;opener.infoclear();opener.draw(' |
'opener.editmode=0;opener.notclear=0;opener.infoclear();opener.draw(' |
+');">Insert Resource Into Link</a>'); |
+');">Insert Resource Into Link</a>'); |
|
|
|
|
} else { |
} else { |
if (data1[0]=='r') { |
if (data1[0]=='r') { |
if (linkmode!=0) { |
if (linkmode!=0) { |
Line 1846 function handler(infostr) {
|
Line 1886 function handler(infostr) {
|
} |
} |
|
|
// ----------------------------------------------------- Clicks on empty fields |
// ----------------------------------------------------- Clicks on empty fields |
|
|
function empty(rid,k) { |
function empty(rid,k) { |
var cid=findcol(k); |
var cid=findcol(k); |
var lcol=k-1; |
var lcol=k-1; |
Line 1859 function empty(rid,k) {
|
Line 1898 function empty(rid,k) {
|
inf.document.clear(); |
inf.document.clear(); |
inf.document.writeln( |
inf.document.writeln( |
'<html><body bgcolor="#FFFFFF">'+ |
'<html><body bgcolor="#FFFFFF">'+ |
'<table><tr><td width=32><img src="edit.gif"></td><td bgcolor="#AAFFAA">'+ |
'<table><tr><td width=32><img src="'+raticons+'edit.gif"></td><td bgcolor="#AAFFAA">'+ |
'<b>Empty Field</b><hr>'); |
'<b>Empty Field</b><hr>'); |
|
|
inf.document.writeln('<br><a href="javascript:opener.newresource('+ |
inf.document.writeln('<br><a href="javascript:opener.newresource('+ |
Line 1916 function empty(rid,k) {
|
Line 1955 function empty(rid,k) {
|
} |
} |
|
|
// ---------------------------------------------------- Save into hidden fields |
// ---------------------------------------------------- Save into hidden fields |
|
|
function save() { |
function save() { |
var k; |
var k; |
if (graphdef=='yes') { |
if (graphdef=='yes') { |
Line 1975 function save() {
|
Line 2013 function save() {
|
} |
} |
|
|
// ----------------------------------------------- Reset all layout information |
// ----------------------------------------------- Reset all layout information |
|
|
function graphreset() { |
function graphreset() { |
|
|
var k; |
var k; |
Line 2008 function graphreset() {
|
Line 2045 function graphreset() {
|
} |
} |
|
|
// --------------------- Compare two resources with each other for "straighten" |
// --------------------- Compare two resources with each other for "straighten" |
|
|
function rescompare(a,b) { |
function rescompare(a,b) { |
data1=a.split(':'); |
data1=a.split(':'); |
data2=b.split(':'); |
data2=b.split(':'); |
Line 2017 function rescompare(a,b) {
|
Line 2053 function rescompare(a,b) {
|
for (k=1;k<data1.length;k++) { |
for (k=1;k<data1.length;k++) { |
if (data1[k]==data2[0]) { rvalue--; } |
if (data1[k]==data2[0]) { rvalue--; } |
} |
} |
for (k=1;k<data3.length;k++) { |
for (k=1;k<data2.length;k++) { |
if (data2[k]==data1[0]) { rvalue++; } |
if (data2[k]==data1[0]) { rvalue++; } |
} |
} |
if (rvalue==0) { rvalue=data2.length-data1.length; } |
if (rvalue==0) { rvalue=data2.length-data1.length; } |
Line 2025 function rescompare(a,b) {
|
Line 2061 function rescompare(a,b) {
|
} |
} |
|
|
// -------------------------------------------- Draw the table instead of graph |
// -------------------------------------------- Draw the table instead of graph |
|
|
function tabledraw() { |
function tabledraw() { |
var objsorted=new Array(); |
var objsorted=new Array(); |
var robjs=new Array(); |
var robjs=new Array(); |
Line 2202 function tabledraw() {
|
Line 2237 function tabledraw() {
|
} |
} |
|
|
// ----------------------------------------------------- Insert Resource Output |
// ----------------------------------------------------- Insert Resource Output |
|
|
function insrestab(irow,be,af,typ) { |
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(' |
Line 2244 function insrestab(irow,be,af,typ) {
|
Line 2278 function insrestab(irow,be,af,typ) {
|
} |
} |
parent.mapout.document.writeln('</td></tr></table></tr>'); |
parent.mapout.document.writeln('</td></tr></table></tr>'); |
} |
} |
// ---------------------------------------- Draw simple table instead of graph |
|
|
|
|
// ---------------------------------------- Draw simple table instead of graph |
function simpletabledraw() { |
function simpletabledraw() { |
var objsorted=new Array(); |
var objsorted=new Array(); |
var robjs=new Array(); |
var robjs=new Array(); |
Line 2350 function simpletabledraw() {
|
Line 2384 function simpletabledraw() {
|
} |
} |
|
|
// ---------------------------------- Sort objects to straighten graph or table |
// ---------------------------------- Sort objects to straighten graph or table |
|
|
function sortobjs() { |
function sortobjs() { |
message("Sorting Resources: "+funny); |
message("Sorting Resources: "+funny); |
var k; |
var k; |
Line 2423 function sortobjs() {
|
Line 2456 function sortobjs() {
|
} |
} |
|
|
// ----------------------------------------------------------- Straighten graph |
// ----------------------------------------------------------- Straighten graph |
|
|
function graphopt() { |
function graphopt() { |
var k; |
var k; |
var kj; |
var kj; |
var ij; |
var ij; |
|
|
var objsorted=new Array(); |
var objsorted=new Array(); |
condense(); |
condense(); |
graphreset(); |
graphreset(); |
Line 2488 function graphopt() {
|
Line 2519 function graphopt() {
|
} |
} |
|
|
// ----------------------------------------------------------- Remove e-objects |
// ----------------------------------------------------------- Remove e-objects |
|
|
function condense() { |
function condense() { |
message("Condensing"); |
message("Condensing"); |
var j; |
var j; |
Line 2509 function condense() {
|
Line 2539 function condense() {
|
} |
} |
|
|
// ---------------------------------------------------- Load from hidden fields |
// ---------------------------------------------------- Load from hidden fields |
|
|
function load() { |
function load() { |
message("Loading"); |
message("Loading"); |
schedule('load'); |
schedule('load'); |
Line 2562 function finishload() {
|
Line 2591 function finishload() {
|
} |
} |
|
|
// -------------------------------------------------------------- Parameter set |
// -------------------------------------------------------------- Parameter set |
|
|
function setparms(resid) { |
function setparms(resid) { |
var options="scrollbars=1,resizable=1,menubar=0"; |
var options="scrollbars=1,resizable=1,menubar=0"; |
parmflag=1; |
parmflag=1; |
Line 2573 function setparms(resid) {
|
Line 2601 function setparms(resid) {
|
} |
} |
|
|
// -------------------------------------------------------------- Undo function |
// -------------------------------------------------------------- Undo function |
|
|
function undo() { |
function undo() { |
if (undopointer>1) { |
if (undopointer>1) { |
undopointer--; |
undopointer--; |
Line 2589 function undo() {
|
Line 2616 function undo() {
|
} |
} |
|
|
// -------------------------------------------------------------- Redo function |
// -------------------------------------------------------------- Redo function |
|
|
function redo() { |
function redo() { |
if (undopointer<undostack.length-1) { |
if (undopointer<undostack.length-1) { |
undopointer++; |
undopointer++; |
Line 2605 function redo() {
|
Line 2631 function redo() {
|
} |
} |
|
|
// ------------------------------------------------------------ Revert function |
// ------------------------------------------------------------ Revert function |
|
|
function revert() { |
function revert() { |
if (confirm("Revert to beginning of edit session?")) { |
if (confirm("Revert to beginning of edit session?")) { |
undopointer=2; |
undopointer=2; |
Line 2614 function revert() {
|
Line 2639 function revert() {
|
} |
} |
|
|
// ---------------------------------------------------------------- Wheelswitch |
// ---------------------------------------------------------------- Wheelswitch |
|
|
function wheelswitch() { |
function wheelswitch() { |
if (funny=='|') { |
if (funny=='|') { |
funny='/'; |
funny='/'; |
Line 2632 function wheelswitch() {
|
Line 2656 function wheelswitch() {
|
} |
} |
|
|
// --------------------------------------------- Checks if server frame defined |
// --------------------------------------------- Checks if server frame defined |
|
|
function checkdef() { |
function checkdef() { |
if (parent.flag==1) { |
if (parent.flag==1) { |
srvloaded(); |
srvloaded(); |
Line 2641 function checkdef() {
|
Line 2664 function checkdef() {
|
} |
} |
|
|
// ---------------------------------------------------------- The wait function |
// ---------------------------------------------------------- The wait function |
|
|
function wait() { |
function wait() { |
if ((finishdone==1) || (tim==1)) { |
if ((finishdone==1) || (tim==1)) { |
if (tim==0) { |
if (tim==0) { |
Line 2659 function wait() {
|
Line 2681 function wait() {
|
} |
} |
|
|
// ---------------------------------------------------------- Schedule function |
// ---------------------------------------------------------- Schedule function |
|
|
function schedule(action) { |
function schedule(action) { |
reqaction=action; |
reqaction=action; |
tim=0; |
tim=0; |
Line 2670 function schedule(action) {
|
Line 2691 function schedule(action) {
|
} |
} |
|
|
// ----------------------------------------------------- launch indexer browser |
// ----------------------------------------------------- launch indexer browser |
|
|
function groupsearch() { |
function groupsearch() { |
alert('not yet implemented'); |
srchcheck('groupsearch'); |
} |
} |
|
|
function groupimport() { |
function groupimport() { |
idxcheck('groupimport'); |
idxcheck('groupimport'); |
} |
} |
|
|
// -------------------------------------------------------------- Store changes |
function groupcopy() { |
|
copydxcheck('groupsec'); |
|
} |
|
|
|
// -------------------------------------------------------------- Store changes |
function storechange() { |
function storechange() { |
var k; |
var k; |
parent.flag=0; |
parent.flag=0; |
Line 2695 function finishsave() {
|
Line 2718 function finishsave() {
|
} |
} |
|
|
// --------------------------------------- Gets called when submission finished |
// --------------------------------------- Gets called when submission finished |
|
|
function srvloaded() { |
function srvloaded() { |
finishdone=1; |
finishdone=1; |
message("Server replied."); |
message("Server replied."); |
} |
} |
|
|
// ---------------------------------------------------------------- Toggle Mode |
// ---------------------------------------------------------------- Toggle Mode |
|
|
function togglemode() { |
function togglemode() { |
if (tablemode==0) { |
if (tablemode==0) { |
tablemode=1; |
tablemode=1; |
Line 2719 function togglemode() {
|
Line 2740 function togglemode() {
|
} |
} |
|
|
// -------------------------------------------------------- Main program onLoad |
// -------------------------------------------------------- Main program onLoad |
|
|
function main() { |
function main() { |
|
|
if (mainrun==0) { |
if (mainrun==0) { |
infopen(); |
infopen(); |
infoclear(); |
infoclear(); |
Line 2729 function main() {
|
Line 2748 function main() {
|
stored=1; |
stored=1; |
mainrun=1; |
mainrun=1; |
} |
} |
|
|
} |
} |
|
|
// ---------------------------------------------------------- Close the window? |
// ---------------------------------------------------------- Close the window? |
|
|
function leave() { |
function leave() { |
if (!inf.closed) { |
if (!inf.closed) { |
inf.close(); |
inf.close(); |
Line 2742 function leave() {
|
Line 2759 function leave() {
|
srchclose(); |
srchclose(); |
} |
} |
if (idx && !idx.closed) { |
if (idx && !idx.closed) { |
srchclose(); |
idxclose(); |
|
} |
|
if (copydx && !copydx.closed) { |
|
copydxclose(); |
} |
} |
} |
} |
|
|
Line 2762 function leave() {
|
Line 2782 function leave() {
|
<td bgcolor="#ffffcc"><a href="javascript:redo();"><b>R</b>edo</a> </td> |
<td bgcolor="#ffffcc"><a href="javascript:redo();"><b>R</b>edo</a> </td> |
<td bgcolor="#ffffcc"><a href="javascript:groupsearch();"><b>G</b>roup search</a> </td> |
<td bgcolor="#ffffcc"><a href="javascript:groupsearch();"><b>G</b>roup search</a> </td> |
<td bgcolor="#ffffcc"><a href="javascript:groupimport();"><b>G</b>roup import</a> </td> |
<td bgcolor="#ffffcc"><a href="javascript:groupimport();"><b>G</b>roup import</a> </td> |
<td bgcolor="#ffcccc"><a href="javascript:storechange();"><b>S</b>ave map</a> </td> |
<td bgcolor="#ffffcc"><a href="javascript:groupcopy();"><b>G</b>roup copy</a> </td> |
|
<td bgcolor="#ffffcc"><a href="javascript:graphdef='no';save();storechange();"><b>S</b>ave map</a> </td> |
|
<td bgcolor="#ccffcc"><a href="javascript:storechange();"><b>S</b>ave map and layout</a> </td> |
</tr></table> |
</tr></table> |
</td></tr></table> |
</td></tr></table> |
<script> |
<script> |