Diff for /rat/client/Attic/code.html between versions 1.40 and 1.52

version 1.40, 2001/07/04 18:19:53 version 1.52, 2002/05/11 01:30:28
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,8/6,8/7,10/16 Scott Harrison
   03/01/02 Matthew Hall
 -->  -->
   
   
Line 95  var parmflag=-1; // 1 means currently op Line 124  var parmflag=-1; // 1 means currently op
                  // -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 120  function insertrow(j,ex1,ex2) { Line 149  function insertrow(j,ex1,ex2) {
    objects=objects1+':'+objects2;     objects=objects1+':'+objects2;
    data1=objects.split(':');     data1=objects.split(':');
    for (kj=0;kj<data1.length;kj++) {     for (kj=0;kj<data1.length;kj++) {
      if ((data1[kj]!='') && (data1[kj]!=undefined)) {       if ((data1[kj]!='') && (typeof(data1[kj])!="undefined")) {
        thisisobj=obj[data1[kj]];         thisisobj=obj[data1[kj]];
        thisobjtype=thisisobj.split('&')[0];         thisobjtype=thisisobj.split('&')[0];
        if (thisobjtype=='v') {         if (thisobjtype=='v') {
Line 161  function insertrow(j,ex1,ex2) { Line 190  function insertrow(j,ex1,ex2) {
                    }                     }
                 }                  }
              }               }
              if ((newobj!='') && (newobj!=undefined)) {               if ((newobj!='') && (typeof(newobj)!="undefined")) {
                 thisobjcol=newobj.split('&')[1];                  thisobjcol=newobj.split('&')[1];
                 if (colcover.indexOf(':'+thisobjcol+':',0)==-1) {                  if (colcover.indexOf(':'+thisobjcol+':',0)==-1) {
                    colcover+=thisobjcol+':';                       colcover+=thisobjcol+':';  
Line 187  function insertrow(j,ex1,ex2) { Line 216  function insertrow(j,ex1,ex2) {
                    }                     }
                 }                  }
              }               }
              if ((newobj!='') && (newobj!=undefined)) {               if ((newobj!='') && (typeof(newobj)!="undefined")) {
                 thisobjcol=newobj.split('&')[1];                  thisobjcol=newobj.split('&')[1];
                 if (colcover.indexOf(':'+thisobjcol+':',0)==-1) {                  if (colcover.indexOf(':'+thisobjcol+':',0)==-1) {
                    colcover+=thisobjcol+':';                       colcover+=thisobjcol+':';  
Line 206  function insertrow(j,ex1,ex2) { Line 235  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 217  function newcondition(content,type) { Line 245  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 226  function newresource(rid,cid,text,url,ex Line 253  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 243  function insertcond(obj1,portnr,cond) { Line 269  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 256  function insertcol(j) { Line 281  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 264  function findrow(jid) { Line 288  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 279  function findcol(jid) { Line 302  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;
  for (j=0;j<=maxcol;j++) { colmap[j]=0; }   for (j=0;j<=maxcol;j++) { colmap[j]=0; }
  if ((rowcont[jid]!='') && (rowcont[jid]!=undefined)) {   if ((rowcont[jid]!='') && (typeof(rowcont[jid])!="undefined")) {
    data2=rowcont[jid].split(':');     data2=rowcont[jid].split(':');
    for (j=0;j<data2.length;j++) {     for (j=0;j<data2.length;j++) {
       data3=obj[data2[j]].split('&');        data3=obj[data2[j]].split('&');
Line 325  function maprow (jid,obj1,ign) { Line 347  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 371  function comingthru (jid,kid,dkid) { Line 392  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 403  function insertport (obj1,d,inout,linkob Line 421  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 450  function insertport (obj1,d,inout,linkob Line 467  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++;
    if ((rowcont[kjid]!='') && (rowcont[kjid]!=undefined)) {      if ((rowcont[kjid]!='') && (typeof(rowcont[kjid])!="undefined")) { 
       rowcont[kjid]+=':';         rowcont[kjid]+=':'; 
    }     }
    rowcont[kjid]+=obj.length;     rowcont[kjid]+=obj.length;
Line 464  function addobj(kjid,objs) { Line 480  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 491  function horizontal(hrid,hoffs,hfcol,htc Line 506  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 501  function horizontal(hrid,hoffs,hfcol,htc Line 515  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 510  function delobj(obj1) { Line 523  function delobj(obj1) {
       rowcont[k]='';        rowcont[k]='';
       for (k2=0;k2<data4.length;k2++) {        for (k2=0;k2<data4.length;k2++) {
          if (data4[k2]!=obj1) {           if (data4[k2]!=obj1) {
             if ((rowcont[k]!='') && (rowcont[k]!=undefined)) {               if ((rowcont[k]!='') && (typeof(rowcont[k])!="undefined")) { 
                rowcont[k]+=':';                  rowcont[k]+=':'; 
             }               } 
             rowcont[k]+=data4[k2];               rowcont[k]+=data4[k2]; 
Line 521  function delobj(obj1) { Line 534  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 532  function cleanup () { Line 544  function cleanup () {
    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++) {
      rowtype[kj]=0;       rowtype[kj]=0;
      if ((rowcont[kj]!='') && (rowcont[kj]!=undefined)) {       if ((rowcont[kj]!='') && (typeof(rowcont[kj])!="undefined")) {
        data2=rowcont[kj].split(':');         data2=rowcont[kj].split(':');
        for (j=0;j<data2.length;j++) {         for (j=0;j<data2.length;j++) {
          if (obj[data2[j]].substring(0,2)=='e&') {           if (obj[data2[j]].substring(0,2)=='e&') {
Line 575  function cleanup () { Line 587  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 599  function delcond(obj1,colid) { Line 609  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 621  function crecond(obj1,colid,condtext,con Line 630  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;
   if ((objlinks[linknr]!='') && (objlinks[linknr]!=undefined)) {    if ((objlinks[linknr]!='') && (typeof(objlinks[linknr])!="undefined")) {
    data3=objlinks[linknr].split(':');     data3=objlinks[linknr].split(':');
    obj1=data3[0];     obj1=data3[0];
    obj2=data3[1];     obj2=data3[1];
Line 648  function dellink (linknr) { Line 656  function dellink (linknr) {
       }        }
    }     }
    for (k=0;k<obj.length;k++) {     for (k=0;k<obj.length;k++) {
      if ((obj[k]!='') && (obj[k]!=undefined)) {       if ((obj[k]!='') && (typeof(obj[k])!="undefined")) {
        data3=obj[k].split('&');         data3=obj[k].split('&');
        if (((data3[0]=='v') || (data3[0]=='h')) &&          if (((data3[0]=='v') || (data3[0]=='h')) && 
            (data3[data3.length-2]==linknr)) {             (data3[data3.length-2]==linknr)) {
Line 662  function dellink (linknr) { Line 670  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 697  function joinres (obj1,obj2,cond) { Line 704  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 710  function joinres (obj1,obj2,cond) { Line 716  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 812  function tryjoin(obj1,obj2,cond,d1,d2) { Line 816  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 860  function delres (obj1,recon) { Line 863  function delres (obj1,recon) {
                if (inobjs[k2]==infromobj[k]) {                 if (inobjs[k2]==infromobj[k]) {
                   if (inwithcon[k]!=0) {                    if (inwithcon[k]!=0) {
                      if ((inobjscond[k2]!='') &&                       if ((inobjscond[k2]!='') &&
                          (inobjscond[k2]!=undefined)) {                            (typeof(inobjscond[k2])!="undefined")) { 
                          inobjscond[k2]+='||';                            inobjscond[k2]+='||'; 
                      }                       }
                      inobjscond[k2]+=                       inobjscond[k2]+=
Line 889  function delres (obj1,recon) { Line 892  function delres (obj1,recon) {
                if (outobjs[k2]==outtoobj[k]) {                 if (outobjs[k2]==outtoobj[k]) {
                  if (outwithcon[k]!=0) {                   if (outwithcon[k]!=0) {
                      if ((outobjscond[k2]!='') &&                       if ((outobjscond[k2]!='') &&
                          (outobjscond[k2]!=undefined)) {                            (typeof(outobjscond[k2])!="undefined")) { 
                          outobjscond[k2]+='||';                            outobjscond[k2]+='||'; 
                      }                       }
                      outobjscond[k2]+=                       outobjscond[k2]+=
Line 913  function delres (obj1,recon) { Line 916  function delres (obj1,recon) {
   
       for (k=0;k<inobjs.length;k++) {        for (k=0;k<inobjs.length;k++) {
           cond='';            cond='';
           if ((inobjscond[k]!='') && (inobjscond[k]!=undefined)) {             if ((inobjscond[k]!='') && (typeof(inobjscond[k])!="undefined")) { 
              cond='('+inobjscond[k]+')';                cond='('+inobjscond[k]+')'; 
           }            }
           for (k2=0;k2<outobjs.length;k2++) {            for (k2=0;k2<outobjs.length;k2++) {
               thiscond=cond;                thiscond=cond;
               if ((outobjscond[k2]!='') && (outobjscond[k2]!=undefined)) {                if ((outobjscond[k2]!='') && (typeof(outobjscond[k2])!="undefined")) {
                  if ((thiscond!='') && (thiscond!=undefined)) {                    if ((thiscond!='') && (typeof(thiscond)!="undefined")) { 
                     thiscond+='&&';                       thiscond+='&&'; 
                  }                   }
                  thiscond+='('+outobjscond[k2]+')';                   thiscond+='('+outobjscond[k2]+')';
               }                }
               condnr=0;                condnr=0;
               if ((thiscond!='') && (thiscond!=undefined)) {                 if ((thiscond!='') && (typeof(thiscond)!="undefined")) { 
                  condnr=newcondition(thiscond,'normal');                    condnr=newcondition(thiscond,'normal'); 
               }                }
               save();                 save(); 
Line 936  function delres (obj1,recon) { Line 939  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 949  function drawcell (rtype,ctype,what,cm,o Line 951  function drawcell (rtype,ctype,what,cm,o
  if ((what=='') && (ne==0)) { cm="#DDDDDD"; }   if ((what=='') && (ne==0)) { cm="#DDDDDD"; }
  if (ctype!=0) {   if (ctype!=0) {
    parent.mapout.document.write('<td bgcolor='+cm+' width='+cw[ctype]+'>');     parent.mapout.document.write('<td bgcolor='+cm+' width='+cw[ctype]+'>');
    if ((what!='') && (what!=undefined)) {     if ((what!='') && (typeof(what)!="undefined")) {
      if ((obj1!='') && (obj1!=undefined)) {       if ((obj1!='') && (typeof(obj1)!="undefined")) {
        objref="'"+obj1+"'";         objref="'"+obj1+"'";
        parent.mapout.document.write         parent.mapout.document.write
         ('<a href="javascript:parent.code.handler('+objref          ('<a href="javascript:parent.code.handler('+objref
Line 959  function drawcell (rtype,ctype,what,cm,o Line 961  function drawcell (rtype,ctype,what,cm,o
      if (what=='r:') {       if (what=='r:') {
         mime='';          mime='';
         objnum=(obj1.split('&'))[1];          objnum=(obj1.split('&'))[1];
         if (objcont[objnum]!=undefined) {          if (typeof(objcont[objnum])!="undefined") {
             urlparts=objcont[objnum].split(':');              urlparts=objcont[objnum].split(':');
             url=urlparts[1];              url=urlparts[1];
             ext=urlparts[2];              ext=urlparts[2];
             urlparts=url.split('.');              urlparts=url.split('.');
             mime=urlparts[urlparts.length-1];              mime=urlparts[urlparts.length-1];
             if (mime==undefined) { mime=''; }              if (typeof(mime)=="undefined") { mime=''; }
         }          }
         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='';
         objnum=(obj1.split('&'))[1];          objnum=(obj1.split('&'))[1];
         if (objcont[objnum]!=undefined) {          if (typeof(objcont[objnum])!="undefined") {
             urlparts=objcont[objnum].split(':');              urlparts=objcont[objnum].split(':');
             url=urlparts[1];              url=urlparts[1];
             ext=urlparts[2];              ext=urlparts[2];
             urlparts=url.split('.');              urlparts=url.split('.');
             mime=urlparts[urlparts.length-1];              mime=urlparts[urlparts.length-1];
             if (mime==undefined) { mime=''; }              if (typeof(mime)=="undefined") { mime=''; }
         }          }
               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:') {
         mime='';          mime='';
         objnum=(obj1.split('&'))[1];          objnum=(obj1.split('&'))[1];
         if (objcont[objnum]!=undefined) {          if (typeof(objcont[objnum])!="undefined") {
             urlparts=objcont[objnum].split(':');              urlparts=objcont[objnum].split(':');
             url=urlparts[1];              url=urlparts[1];
             ext=urlparts[2];              ext=urlparts[2];
             urlparts=url.split('.');              urlparts=url.split('.');
             mime=urlparts[urlparts.length-1];              mime=urlparts[urlparts.length-1];
             if (mime==undefined) { mime=''; }              if (typeof(mime)=="undefined") { mime=''; }
         }          }
                 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">');
              }               }
            }             }
         }          }
      }       }
      if ((obj1!='') && (obj1!=undefined)) {       if ((obj1!='') && (typeof(obj1)!="undefined")) {
        parent.mapout.document.write('</a>');         parent.mapout.document.write('</a>');
      }       }
    } else {     } else {
Line 1069  function drawcell (rtype,ctype,what,cm,o Line 1071  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 1087  function rescolor (ext,typ) { Line 1088  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 1095  function condcolor(typ) { Line 1095  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 1110  if (rowtype[jid]!=0) { Line 1109  if (rowtype[jid]!=0) {
  }   }
   
  parent.mapout.document.writeln('<tr height='+rh[rowtype[jid]]+'>');   parent.mapout.document.writeln('<tr height='+rh[rowtype[jid]]+'>');
  if ((rowcont[jid]!='') && (rowcont[jid]!=undefined)) {   if ((rowcont[jid]!='') && (typeof(rowcont[jid])!="undefined")) {
    data2=rowcont[jid].split(':');     data2=rowcont[jid].split(':');
    for (jk=0;jk<data2.length;jk++) {     for (jk=0;jk<data2.length;jk++) {
       data3=obj[data2[jk]].split('&');        data3=obj[data2[jk]].split('&');
Line 1167  if (rowtype[jid]!=0) { Line 1166  if (rowtype[jid]!=0) {
   
          if (rightin>middle) {           if (rightin>middle) {
             for (k=middle+1;k<rightin;k++) {               for (k=middle+1;k<rightin;k++) { 
                if ((colmap4[k]!='') && (colmap4[k]!=undefined)) {                 if ((colmap4[k]!='') && (typeof(colmap4[k])!="undefined")) {
                   colmap[k]='rlt';                     colmap[k]='rlt'; 
                } else {                 } else {
                   colmap[k]='rl';                    colmap[k]='rl';
Line 1177  if (rowtype[jid]!=0) { Line 1176  if (rowtype[jid]!=0) {
          }           }
          if (leftin<middle) {           if (leftin<middle) {
             for (k=middle-1;k>leftin;k--) {               for (k=middle-1;k>leftin;k--) { 
                if ((colmap4[k]!='') && (colmap4[k]!=undefined)) {                 if ((colmap4[k]!='') && (typeof(colmap4[k])!="undefined")) {
                   colmap[k]='lrt';                     colmap[k]='lrt'; 
                } else {                 } else {
                   colmap[k]='lr';                    colmap[k]='lr';
Line 1197  if (rowtype[jid]!=0) { Line 1196  if (rowtype[jid]!=0) {
             if (rightout<middle)  { colmap2[middle]='tl'; }              if (rightout<middle)  { colmap2[middle]='tl'; }
             if (rightout==middle) { colmap2[middle]='tdl'; }              if (rightout==middle) { colmap2[middle]='tdl'; }
             if (rightout>middle)  {               if (rightout>middle)  { 
               if ((colmap3[middle]!='') && (colmap3[middle]!=undefined)) {                if ((colmap3[middle]!='') && (typeof(colmap3[middle])!="undefined")) {
                  colmap2[middle]='rtdl';                    colmap2[middle]='rtdl'; 
               } else {                } else {
                  colmap2[middle]='rtl';                   colmap2[middle]='rtl';
Line 1206  if (rowtype[jid]!=0) { Line 1205  if (rowtype[jid]!=0) {
          }           }
          if (leftout<middle) {           if (leftout<middle) {
             for (k=middle-1;k>leftout;k--) {               for (k=middle-1;k>leftout;k--) { 
                if ((colmap3[k]!='') && (colmap3[k]!=undefined)) {                 if ((colmap3[k]!='') && (typeof(colmap3[k])!="undefined")) {
                   colmap2[k]='rld';                     colmap2[k]='rld'; 
                } else {                 } else {
                   colmap2[k]='rl';                    colmap2[k]='rl';
Line 1216  if (rowtype[jid]!=0) { Line 1215  if (rowtype[jid]!=0) {
          }           }
          if (rightout>middle) {           if (rightout>middle) {
             for (k=middle+1;k<rightout;k++) {               for (k=middle+1;k<rightout;k++) { 
                if ((colmap3[k]!='') && (colmap3[k]!=undefined)) {                 if ((colmap3[k]!='') && (typeof(colmap3[k])!="undefined")) {
                   colmap2[k]='lrd';                     colmap2[k]='lrd'; 
                } else {                 } else {
                   colmap2[k]='lr';                    colmap2[k]='lr';
Line 1299  if (rowtype[jid]!=0) { Line 1298  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 1354  function draw () { Line 1351  function draw () {
 }  }
   
 // --------------------------------------------------------- Clears info window  // --------------------------------------------------------- Clears info window
   
 function infoclear() {  function infoclear() {
  if (notclear!=1) {   if (notclear!=1) {
   infcheck();    infcheck();
Line 1402  function infoclear() { Line 1398  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 1417  function infcheck() { Line 1411  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 1429  function info(infostr) { Line 1422  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 1457  function info(infostr) { Line 1450  function info(infostr) {
         ext=data2[2];          ext=data2[2];
         urlparts=url.split('.');          urlparts=url.split('.');
         mime=urlparts[urlparts.length-1];          mime=urlparts[urlparts.length-1];
         if (mime==undefined) { mime=''; }          if (typeof(mime)=="undefined") { mime=''; }
         if (ext=='true') { mime=''; }          if (ext=='true') { mime=''; }
         if (mime!='') {          if (mime!='') {
            inf.document.write             inf.document.write
Line 1510  function info(infostr) { Line 1503  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 1518  function escape(instring) { Line 1510  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='&#58;'; }        if (thischar==':') { thischar='&#58;'; }
       if (thischar=='"') { thischar='&#34;'; }        if (thischar=='"') { thischar='&#34;'; }// "
       if (thischar=="'") { thischar='&#39;'; }        if (thischar=="'") { thischar='&#39;'; }
       if (thischar==',') { thischar='&#44;'; }        if (thischar==',') { thischar='&#44;'; }
       outstring+=thischar;        outstring+=thischar;
Line 1527  function escape(instring) { Line 1519  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 1560  function insertreslink(infostr) { Line 1551  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 1581  function insertcondlink(cid,lnr) { Line 1571  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 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 1595  function idxclose() {
 }  }
   
 // ------------------------------------------------------- Closes search window  // ------------------------------------------------------- Closes search window
   
 function srchclose() {  function srchclose() {
   if (srch && !srch.closed) {    if (srch && !srch.closed) {
     srchflag=0;      srchflag=0;
Line 1621  function srchclose() { Line 1603  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 1630  function parmclose() { Line 1611  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 search window  // --------------------------------------------------------- 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 1650  function idxcheck(mode) {
 }  }
   
 // ---------------------------------------------------- Handles "click to edit"  // ---------------------------------------------------- Handles "click to edit"
   
 function handler(infostr) {  function handler(infostr) {
   var k;    var k;
   editmode=1;    editmode=1;
Line 1683  function handler(infostr) { Line 1658  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 1737  function handler(infostr) { Line 1712  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 1845  function handler(infostr) { Line 1818  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 1858  function empty(rid,k) { Line 1830  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 1868  function empty(rid,k) { Line 1840  function empty(rid,k) {
           +');">Insert resource</a>');            +');">Insert resource</a>');
   
   if ((mostrecent!=0) && (objcont[mostrecent]!='') &&     if ((mostrecent!=0) && (objcont[mostrecent]!='') && 
                          (objcont[mostrecent]!=undefined)) {                           (typeof(objcont[mostrecent])!="undefined")) {
   
         inf.document.writeln('<br><a href="javascript:opener.newresource('+          inf.document.writeln('<br><a href="javascript:opener.newresource('+
           rid+','+cid+",'','','false','normal');"+            rid+','+cid+",'','','false','normal');"+
Line 1915  function empty(rid,k) { Line 1887  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 1974  function save() { Line 1945  function save() {
 }  }
   
 // ----------------------------------------------- Reset all layout information  // ----------------------------------------------- Reset all layout information
   
 function graphreset() {  function graphreset() {
   
    var k;     var k;
Line 1997  function graphreset() { Line 1967  function graphreset() {
   
    objcont[0]='';     objcont[0]='';
    objlinks[0]='';     objlinks[0]='';
    if (((objcont[1]==undefined)&&(objcont[2]==undefined)) ||     if (((typeof(objcont[1])=="undefined")&&(typeof(objcont[2])=="undefined")) ||
        ((objcont[1]=='')&&(objcont[2]==''))) {          ((objcont[1]=='')&&(objcont[2]==''))) { 
       objcont[1]='Start::false:start:res'        objcont[1]='Start::false:start:res'
       objcont[2]='Finish::false:finish:res';        objcont[2]='Finish::false:finish:res';
Line 2007  function graphreset() { Line 1977  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 2024  function rescompare(a,b) { Line 1993  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 2038  function tabledraw() { Line 2006  function tabledraw() {
   var condid;    var condid;
   var url='';    var url='';
   var mime='';    var mime='';
     var ext='';
   var urlparts=new Array;    var urlparts=new Array;
   var sortstr=sortobjs();    var sortstr=sortobjs();
  insrestab(1,-1,-1,'');   insrestab(1,-1,-1,'');
  if ((sortstr!='') && (sortstr!=undefined)) {   if ((sortstr!='') && (typeof(sortstr)!="undefined")) {
   objsorted=sortstr.split('&');    objsorted=sortstr.split('&');
   for (k=0;k<objsorted.length;k++) {    for (k=0;k<objsorted.length;k++) {
      i=(objsorted[k].split(':'))[0];       i=(objsorted[k].split(':'))[0];
Line 2059  function tabledraw() { Line 2028  function tabledraw() {
        ck=rescolor(data1[2],data1[3]);         ck=rescolor(data1[2],data1[3]);
         parent.mapout.document.write('<tr><td bgcolor="'+ck+'">');          parent.mapout.document.write('<tr><td bgcolor="'+ck+'">');
         url=data1[1];          url=data1[1];
           ext=data1[2];
         urlparts=url.split('.');          urlparts=url.split('.');
         mime=urlparts[urlparts.length-1];          mime=urlparts[urlparts.length-1];
         if (mime==undefined) { mime=''; }          if (typeof(mime)=="undefined") { mime=''; }
         if (mime!='') {          if ((mime!='') && (ext!='true')) {
            parent.mapout.document.write             parent.mapout.document.write
            ('<a target="preview" align="right" href="'+url+'.meta'+             ('<a target="preview" align="right" href="'+url+'.meta'+
            '"><img src="'+iconpath+'meta.gif"></a><p>'+             '"><img src="'+iconpath+'meta.gif"></a><p>'+
Line 2199  function tabledraw() { Line 2169  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 2241  function insrestab(irow,be,af,typ) { Line 2210  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 2253  function simpletabledraw() { Line 2222  function simpletabledraw() {
   var nr;    var nr;
   var ck;    var ck;
   var cck;    var cck;
     var mime;
     var ext;
     var url;
     var urlparts=new Array;
   var condid;    var condid;
   var sortstr=sortobjs();    var sortstr=sortobjs();
  if ((sortstr!='') && (sortstr!=undefined)) {   if ((sortstr!='') && (typeof(sortstr)!="undefined")) {
   objsorted=sortstr.split('&');    objsorted=sortstr.split('&');
   for (k=0;k<objsorted.length;k++) {    for (k=0;k<objsorted.length;k++) {
      i=(objsorted[k].split(':'))[0];       i=(objsorted[k].split(':'))[0];
Line 2273  function simpletabledraw() { Line 2246  function simpletabledraw() {
        ck=rescolor(data1[2],data1[3]);         ck=rescolor(data1[2],data1[3]);
         parent.mapout.document.write('<tr><td bgcolor="'+ck+'">');          parent.mapout.document.write('<tr><td bgcolor="'+ck+'">');
         url=data1[1];          url=data1[1];
           ext=data1[2];
         urlparts=url.split('.');          urlparts=url.split('.');
         mime=urlparts[urlparts.length-1];          mime=urlparts[urlparts.length-1];
         if (mime==undefined) { mime=''; }          if (typeof(mime)=="undefined") { mime=''; }
         if (mime!='') {          if ((mime!='') && (ext!='true')) {
            parent.mapout.document.write             parent.mapout.document.write
            ('<a target="preview" align="right" href="'+url+'.meta'+             ('<a target="preview" align="right" href="'+url+'.meta'+
            '"><img src="'+iconpath+'meta.gif"></a><p>'+             '"><img src="'+iconpath+'meta.gif"></a><p>'+
Line 2342  function simpletabledraw() { Line 2316  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 2364  function sortobjs() { Line 2337  function sortobjs() {
    for (k=1;k<objlinks.length;k++) {     for (k=1;k<objlinks.length;k++) {
      wheelswitch();       wheelswitch();
      message("Sorting Resources: "+funny);       message("Sorting Resources: "+funny);
      if ((objlinks[k]!=undefined) && (objlinks[k]!='')) {       if ((typeof(objlinks[k])!="undefined") && (objlinks[k]!='')) {
       sortthis=1;        sortthis=1;
       data1=objlinks[k].split(':');        data1=objlinks[k].split(':');
       kj=-1;        kj=-1;
Line 2415  function sortobjs() { Line 2388  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 2480  function graphopt() { Line 2451  function graphopt() {
 }  }
   
 // ----------------------------------------------------------- Remove e-objects  // ----------------------------------------------------------- Remove e-objects
   
 function condense() {  function condense() {
    message("Condensing");     message("Condensing");
    var j;     var j;
    for (j=0;j<=maxrow;j++) {     for (j=0;j<=maxrow;j++) {
      if ((rowcont[j]!='') && (rowcont[j]!=undefined)) {       if ((rowcont[j]!='') && (typeof(rowcont[j])!="undefined")) {
       data1=rowcont[j].split(':');        data1=rowcont[j].split(':');
       rowcont[j]='';        rowcont[j]='';
       for (k=0;k<data1.length;k++) {        for (k=0;k<data1.length;k++) {
          if (obj[data1[k]].substring(0,2)!='e&') {           if (obj[data1[k]].substring(0,2)!='e&') {
             if ((rowcont[j]!='') && (rowcont[j]!=undefined)) {               if ((rowcont[j]!='') && (typeof(rowcont[j])!="undefined")) { 
                rowcont[j]+=':';                  rowcont[j]+=':'; 
             }              }
             rowcont[j]+=data1[k];              rowcont[j]+=data1[k];
Line 2501  function condense() { Line 2471  function condense() {
 }  }
   
 // ---------------------------------------------------- Load from hidden fields  // ---------------------------------------------------- Load from hidden fields
   
 function load() {  function load() {
    message("Loading");     message("Loading");
    schedule('load');     schedule('load');
Line 2520  function finishload() { Line 2489  function finishload() {
    lastinfo='';     lastinfo='';
    graphreset();     graphreset();
    var inputstr=parent.server.document.forms.storage.output.value;     var inputstr=parent.server.document.forms.storage.output.value;
    if ((inputstr!='') && (inputstr!=undefined)) {     if ((inputstr!='') && (typeof(inputstr)!="undefined")) {
    data1=inputstr.split('<&>');     data1=inputstr.split('<&>');
    var k;     var k;
    for (k=0;k<data1.length;k++) {     for (k=0;k<data1.length;k++) {
        data2=data1[k].split('<:>');         data2=data1[k].split('&colon;').join('&#58;').split('<:>');
        if (data2[0]=='graphdef') { graphdef=data2[1]; }         if (data2[0]=='graphdef') { graphdef=data2[1]; }
        if (data2[0]=='maxcol') { maxcol=1*data2[1]; }         if (data2[0]=='maxcol') { maxcol=1*data2[1]; }
        if (data2[0]=='maxrow') { maxrow=1*data2[1]; }         if (data2[0]=='maxrow') { maxrow=1*data2[1]; }
Line 2532  function finishload() { Line 2501  function finishload() {
        if (data2[0]=='objcont') { objcont[data2[1]]=data2[2]; }         if (data2[0]=='objcont') { objcont[data2[1]]=data2[2]; }
        if (data2[0]=='objlinks') { objlinks[data2[1]]=data2[2]; }         if (data2[0]=='objlinks') { objlinks[data2[1]]=data2[2]; }
        if (data2[0]=='objparms') {         if (data2[0]=='objparms') {
           if (objparms[data2[1]]==undefined) {            if (typeof(objparms[data2[1]])=="undefined") {
              objparms[data2[1]]=data2[2];               objparms[data2[1]]=data2[2];
           } else {            } else {
              objparms[data2[1]]+=':'+data2[2];               objparms[data2[1]]+=':'+data2[2];
Line 2548  function finishload() { Line 2517  function finishload() {
   }    }
   if (graphdef=='yes') {    if (graphdef=='yes') {
      for (k=1;k<=maxrow;k++) {       for (k=1;k<=maxrow;k++) {
         if (rowcont[k]==undefined) { rowcont[k]=''; }          if (typeof(rowcont[k])=="undefined") { rowcont[k]=''; }
      }       }
   }    }
 }  }
   
 // -------------------------------------------------------------- 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 2565  function setparms(resid) { Line 2533  function setparms(resid) {
 }  }
   
 // -------------------------------------------------------------- Undo function  // -------------------------------------------------------------- Undo function
   
 function undo() {  function undo() {
    if (undopointer>1) {     if (undopointer>1) {
       undopointer--;        undopointer--;
Line 2581  function undo() { Line 2548  function undo() {
 }  }
   
 // -------------------------------------------------------------- Redo function  // -------------------------------------------------------------- Redo function
   
 function redo() {  function redo() {
    if (undopointer<undostack.length-1) {     if (undopointer<undostack.length-1) {
       undopointer++;        undopointer++;
Line 2597  function redo() { Line 2563  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 2606  function revert() { Line 2571  function revert() {
 }  }
   
 // ---------------------------------------------------------------- Wheelswitch  // ---------------------------------------------------------------- Wheelswitch
   
 function wheelswitch() {  function wheelswitch() {
    if (funny=='|') {      if (funny=='|') { 
       funny='/';         funny='/'; 
Line 2624  function wheelswitch() { Line 2588  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 2633  function checkdef() { Line 2596  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 2651  function wait() { Line 2613  function wait() {
 }  }
   
 // ---------------------------------------------------------- Schedule function  // ---------------------------------------------------------- Schedule function
   
 function schedule(action) {  function schedule(action) {
    reqaction=action;     reqaction=action;
    tim=0;     tim=0;
Line 2662  function schedule(action) { Line 2623  function schedule(action) {
 }  }
   
 // ----------------------------------------------------- launch indexer browser  // ----------------------------------------------------- launch indexer browser
   
 function groupsearch() {  function groupsearch() {
    alert('not yet implemented');     srchcheck('groupsearch');
 }  }
   
 function groupimport() {  function groupimport() {
Line 2672  function groupimport() { Line 2632  function groupimport() {
 }  }
   
 // -------------------------------------------------------------- Store changes  // -------------------------------------------------------------- Store changes
   
 function storechange() {  function storechange() {
    var k;     var k;
    parent.flag=0;     parent.flag=0;
Line 2687  function finishsave() { Line 2646  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 2711  function togglemode() { Line 2668  function togglemode() {
 }  }
   
 // -------------------------------------------------------- Main program onLoad  // -------------------------------------------------------- Main program onLoad
   
 function main() {  function main() {
   
    if (mainrun==0) {     if (mainrun==0) {
       infopen();        infopen();
       infoclear();        infoclear();
Line 2721  function main() { Line 2676  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 2741  function leave() { Line 2694  function leave() {
 </script>  </script>
 </head>  </head>
   
 <body bgcolor="#FFFFFF" onLoad="main();" onUnload="leave();">  <body bgcolor="#FFFFFF" onUnload="leave();">
 <a href="javascript:togglemode();">Toggle Display Mode</a>  <table border=0><tr><td bgcolor="#aaaaaa">
 <a href="javascript:if (zscale>1) { zscale--; draw();}">Zoom Out</a>  <table border=0><tr>
 <a href="javascript:if (zscale<3) { zscale++; draw();}">Zoom In</a>  <td bgcolor="#ffffcc"><a href="javascript:togglemode();"><b>T</b>oggle display</a>&nbsp;</td>
 <a href="javascript:condense();draw();">Condense</a>  <td bgcolor="#ffffcc"><a href="javascript:if (zscale>1) { zscale--; draw();}"><b>Z</b>oom out</a>&nbsp;</td>
 <a href="javascript:graphopt();draw();">Straighten</a>  <td bgcolor="#ffffcc"><a href="javascript:if (zscale<3) { zscale++; draw();}"><b>Z</b>oom in</a>&nbsp;</td>
 <a href="javascript:revert();">Revert</a>  <td bgcolor="#ffffcc"><a href="javascript:condense();draw();"><b>C</b>ondense</a>&nbsp;</td>
 <a href="javascript:undo();">Undo</a>  <td bgcolor="#ffffcc"><a href="javascript:graphopt();draw();"><b>S</b>traighten</a>&nbsp;</td>
 <a href="javascript:redo();">Redo</a>  <td bgcolor="#ffffcc"><a href="javascript:revert();"><b>R</b>evert</a>&nbsp;</td>
 <a href="javascript:groupsearch();">Group Search</a>  <td bgcolor="#ffffcc"><a href="javascript:undo();"><b>U</b>ndo</a>&nbsp;</td>
 <a href="javascript:groupimport();">Group Import</a>  <td bgcolor="#ffffcc"><a href="javascript:redo();"><b>R</b>edo</a>&nbsp;</td>
 <a href="javascript:storechange();">Save Map</a>  <td bgcolor="#ffffcc"><a href="javascript:groupsearch();"><b>G</b>roup search</a>&nbsp;</td>
   <td bgcolor="#ffffcc"><a href="javascript:groupimport();"><b>G</b>roup import</a>&nbsp;</td>
   <td bgcolor="#ffffcc"><a href="javascript:graphdef='no';save();storechange();"><b>S</b>ave map</a>&nbsp;</td>
   <td bgcolor="#ccffcc"><a href="javascript:storechange();"><b>S</b>ave map and layout</a>&nbsp;</td>
   </tr></table>
   </td></tr></table>
   <script>
   main();
   </script>
 </body>  </body>
 </html>  </html>

Removed from v.1.40  
changed lines
  Added in v.1.52


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>