Diff for /rat/client/Attic/code.html between versions 1.5 and 1.15

version 1.5, 2000/06/28 03:41:48 version 1.15, 2001/03/05 08:30:31
Line 9  Resource Assembly Tool Line 9  Resource Assembly Tool
 1/7,1/8,1/10,1/14,1/15,1/16,1/21,1/22,1/29,1/30,1/31,  1/7,1/8,1/10,1/14,1/15,1/16,1/21,1/22,1/29,1/30,1/31,
 2/2,2/3,2/10,2/12,2/13,2/14,2/15,2/17,2/18,2/19,2/20,2/21,2/22,  2/2,2/3,2/10,2/12,2/13,2/14,2/15,2/17,2/18,2/19,2/20,2/21,2/22,
 5/2,5/3,5/4,5/5,5/6,5/8,5/9,5/13,5/18,5/20,5/22,5/24,5/25,  5/2,5/3,5/4,5/5,5/6,5/8,5/9,5/13,5/18,5/20,5/22,5/24,5/25,
 6/7,6/8,6/9,6/10,6/12,6/15  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,
 Gerd Kortemeyer with Scott Harrison  01/17/01,03/03,03/05 Gerd Kortemeyer with Scott Harrison
 -->  -->
   
   
Line 30  var colmap5=new Array(); Line 30  var colmap5=new Array();
 var colmap6=new Array();  var colmap6=new Array();
 var obj=new Array();  var obj=new Array();
 var objcont=new Array();  var objcont=new Array();
   var objparms=new Array();
 var objlinks=new Array();  var objlinks=new Array();
 var rowcont=new Array();  var rowcont=new Array();
 var rowtype=new Array();  var rowtype=new Array();
Line 47  var notclear=0; Line 48  var notclear=0;
 var linkmode=0;  var linkmode=0;
 var lastinfo='';  var lastinfo='';
 var graphdef='no';  var graphdef='no';
   var mode='';
 var mainrun=0;  var mainrun=0;
 var tablemode=0;  var tablemode=0;
 var mostrecent=0;  var mostrecent=0;
Line 55  var zscale=3; Line 57  var zscale=3;
 var disrows=0;  var disrows=0;
 var discols=0;  var discols=0;
   
   var finishdone=0;
   var tim=0;
   var funny='|';
   var reqaction='';
   var canceltim;
   
   var expense=0;
   
 var data1=new Array(1024);  var data1=new Array(1024);
 var data2=new Array(1024);  var data2=new Array(1024);
 var data3=new Array(1024);  var data3=new Array(1024);
Line 68  var inf; Line 78  var inf;
 function insertrow(j,ex1,ex2) {  function insertrow(j,ex1,ex2) {
    var kj;     var kj;
    stored=0;     stored=0;
      expense++; expense++;
    objects1='';     objects1='';
    objects2='';     objects2='';
    for (kj=0;kj<=maxrow;kj++) {     for (kj=0;kj<=maxrow;kj++) {
Line 82  function insertrow(j,ex1,ex2) { Line 93  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]!='') {       if ((data1[kj]!='') && (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 123  function insertrow(j,ex1,ex2) { Line 134  function insertrow(j,ex1,ex2) {
                    }                     }
                 }                  }
              }               }
              if (newobj!='') {               if ((newobj!='') && (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 149  function insertrow(j,ex1,ex2) { Line 160  function insertrow(j,ex1,ex2) {
                    }                     }
                 }                  }
              }               }
              if (newobj!='') {               if ((newobj!='') && (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 213  function insertcol(j) { Line 224  function insertcol(j) {
       if ( col[kj]>j ) { col[kj]++; }         if ( col[kj]>j ) { col[kj]++; } 
    }     }
    maxcol++;     maxcol++;
      expense++; expense++;
    col[maxcol]=j+1;     col[maxcol]=j+1;
 }  }
             
Line 245  function maprow (jid,obj1,ign) { Line 257  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]!='') {   if ((rowcont[jid]!='') && (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 336  function comingthru (jid,kid,dkid) { Line 348  function comingthru (jid,kid,dkid) {
   
 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 415  function insertport (obj1,d,inout,linkob Line 426  function insertport (obj1,d,inout,linkob
     
 function addobj(kjid,objs) {  function addobj(kjid,objs) {
    stored=0;     stored=0;
    if (rowcont[kjid]!='') { rowcont[kjid]+=':'; }     expense++;
      if ((rowcont[kjid]!='') && (rowcont[kjid]!=undefined)) { 
         rowcont[kjid]+=':'; 
      }
    rowcont[kjid]+=obj.length;     rowcont[kjid]+=obj.length;
    obj[obj.length]=objs;     obj[obj.length]=objs;
    return obj.length-1;     return obj.length-1;
Line 469  function delobj(obj1) { Line 483  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]+=':'; }               if ((rowcont[k]!='') && (rowcont[k]!=undefined)) { 
                  rowcont[k]+=':'; 
               } 
             rowcont[k]+=data4[k2];               rowcont[k]+=data4[k2]; 
          }           }
       }        }
    }     }
      obj[obj1]='';
 }  }
   
 // --------------------------------------------------------- Garbage collection  // --------------------------------------------------------- Garbage collection
Line 488  function cleanup () { Line 505  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]!='') {       if ((rowcont[kj]!='') && (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 581  function crecond(obj1,colid,condtext,con Line 598  function crecond(obj1,colid,condtext,con
 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]!='') {    if ((objlinks[linknr]!='') && (objlinks[linknr]!=undefined)) {
    data3=objlinks[linknr].split(':');     data3=objlinks[linknr].split(':');
    obj1=data3[0];     obj1=data3[0];
    obj2=data3[1];     obj2=data3[1];
Line 604  function dellink (linknr) { Line 621  function dellink (linknr) {
       }        }
    }     }
    for (k=0;k<obj.length;k++) {     for (k=0;k<obj.length;k++) {
      if (obj[k]!='') {       if ((obj[k]!='') && (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 620  function dellink (linknr) { Line 637  function dellink (linknr) {
 // Links obj1 with obj2, creates new objlink, marks all elements with number  // Links obj1 with obj2, creates new objlink, marks all elements with number
   
 function joinres (obj1,obj2,cond) {  function joinres (obj1,obj2,cond) {
    var k; var kr; var outcol; var incol; var d;  
    stored=0;     stored=0;
      var minexpense;
      var best;
   
      expense=0;
      tryjoin(obj1,obj2,cond,1,1);
      minexpense=expense;
      best=0;
      finishload();
   
      expense=0;
      tryjoin(obj1,obj2,cond,1,-1);
      if (expense<minexpense) {
         best=1;
         minexpense=expense;
      }
      finishload();
   
      expense=0;
      tryjoin(obj1,obj2,cond,-1,1);
      if (expense<minexpense) {
         best=2;
         minexpense=expense;
      }
      finishload();
   
      expense=0;
      tryjoin(obj1,obj2,cond,-1,-1);
      if (expense<minexpense) {
         best=3;
         minexpense=expense;
      }
   
   
      if (best==0) {
         finishload();
         tryjoin(obj1,obj2,cond,1,1);
      }
      if (best==1) {
         finishload();
         tryjoin(obj1,obj2,cond,1,-1);
      }
      if (best==2) {
         finishload();
         tryjoin(obj1,obj2,cond,-1,1);
      }
   
   }
   
   
   function tryjoin(obj1,obj2,cond,d1,d2) {
      var k; var kr; var outcol; var incol; var d; var dest;
   
    dest=objlinks.length;     dest=objlinks.length;
    objlinks[dest]=obj1+':'+obj2+':'+cond;     objlinks[dest]=obj1+':'+obj2+':'+cond;
    data3=obj[obj1].split('&');  
    sum=0;     outcol=insertport(obj1,d1,2,dest);
    for (k=2;k<data3.length;k++) { sum+=col[data3[k].split(':')[0]]; }  
    outmiddle=sum/(data3.length-2);  
    data3=obj[obj2].split('&');  
    sum=0;  
    for (k=2;k<data3.length;k++) { sum+=col[data3[k].split(':')[0]]; }  
    inmiddle=sum/(data3.length-2);  
    d=inmiddle-outmiddle;  
    outcol=insertport(obj1,d,2,dest);  
    insertcond(obj1,outcol,cond);     insertcond(obj1,outcol,cond);
    incol=insertport(obj2,-d,1,dest);     incol=insertport(obj2,d2,1,dest);
    if (row[inrow]==(row[outrow]+1)) {     if (row[inrow]==(row[outrow]+1)) {
       insertrow(row[outrow],-1,-1);        insertrow(row[outrow],-1,-1);
    }     }
Line 772  function delres (obj1,recon) { Line 832  function delres (obj1,recon) {
             for (k2=0;k2<inobjs.length;k2++) {              for (k2=0;k2<inobjs.length;k2++) {
                if (inobjs[k2]==infromobj[k]) {                 if (inobjs[k2]==infromobj[k]) {
                   if (inwithcon[k]!=0) {                    if (inwithcon[k]!=0) {
                      if (inobjscond[k2]!='') { inobjscond[k2]+='||'; }                       if ((inobjscond[k2]!='') &&
                            (inobjscond[k2]!=undefined)) { 
                            inobjscond[k2]+='||'; 
                        }
                      inobjscond[k2]+=                       inobjscond[k2]+=
                       '('+(objcont[inwithcon[k]].split(':'))[0]+')';                        '('+(objcont[inwithcon[k]].split(':'))[0]+')';
                    }                     }
Line 798  function delres (obj1,recon) { Line 861  function delres (obj1,recon) {
             for (k2=0;k2<outobjs.length;k2++) {              for (k2=0;k2<outobjs.length;k2++) {
                if (outobjs[k2]==outtoobj[k]) {                 if (outobjs[k2]==outtoobj[k]) {
                  if (outwithcon[k]!=0) {                   if (outwithcon[k]!=0) {
                      if (outobjscond[k2]!='') { outobjscond[k2]+='||'; }                       if ((outobjscond[k2]!='') &&
                            (outobjscond[k2]!=undefined)) { 
                            outobjscond[k2]+='||'; 
                        }
                      outobjscond[k2]+=                       outobjscond[k2]+=
                       '('+(objcont[outwithcon[k]].split(':'))[0]+')';                        '('+(objcont[outwithcon[k]].split(':'))[0]+')';
                   }                    }
Line 820  function delres (obj1,recon) { Line 886  function delres (obj1,recon) {
   
       for (k=0;k<inobjs.length;k++) {        for (k=0;k<inobjs.length;k++) {
           cond='';            cond='';
           if (inobjscond[k]!='') { cond='('+inobjscond[k]+')'; }            if ((inobjscond[k]!='') && (inobjscond[k]!=undefined)) { 
                cond='('+inobjscond[k]+')'; 
             }
           for (k2=0;k2<outobjs.length;k2++) {            for (k2=0;k2<outobjs.length;k2++) {
               thiscond=cond;                thiscond=cond;
               if (outobjscond[k2]!='') {                if ((outobjscond[k2]!='') && (outobjscond[k2]!=undefined)) {
                  if (thiscond!='') { thiscond+='&&'; }                   if ((thiscond!='') && (thiscond!=undefined)) { 
                       thiscond+='&&'; 
                    }
                  thiscond+='('+outobjscond[k2]+')';                   thiscond+='('+outobjscond[k2]+')';
               }                }
               condnr=0;                condnr=0;
               if (thiscond!='') { condnr=newcondition(thiscond,'normal'); }                 if ((thiscond!='') && (thiscond!=undefined)) { 
                    condnr=newcondition(thiscond,'normal'); 
                 }
                 save(); 
               joinres(inobjs[k],outobjs[k2],condnr);                joinres(inobjs[k],outobjs[k2],condnr);
           }            }
       }        }
Line 842  function drawcell (rtype,ctype,what,cm,o Line 915  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!='') {     if ((what!='') && (what!=undefined)) {
      if (obj1!='') {       if ((obj1!='') && (obj1!=undefined)) {
        obj1="'"+obj1+"'";         obj1="'"+obj1+"'";
        parent.mapout.document.write         parent.mapout.document.write
         ('<a href="javascript:parent.code.handler('+obj1          ('<a href="javascript:parent.code.handler('+obj1
Line 876  function drawcell (rtype,ctype,what,cm,o Line 949  function drawcell (rtype,ctype,what,cm,o
            }             }
         }          }
      }       }
      if (obj1!='') {       if ((obj1!='') && (obj1!=undefined)) {
        parent.mapout.document.write('</a>');         parent.mapout.document.write('</a>');
      }       }
    } else {     } else {
Line 933  if (rowtype[jid]!=0) { Line 1006  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]!='') {   if ((rowcont[jid]!='') && (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 990  if (rowtype[jid]!=0) { Line 1063  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]!='') {                 if ((colmap4[k]!='') && (colmap4[k]!=undefined)) {
                   colmap[k]='rlt';                     colmap[k]='rlt'; 
                } else {                 } else {
                   colmap[k]='rl';                    colmap[k]='rl';
Line 1000  if (rowtype[jid]!=0) { Line 1073  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]!='') {                 if ((colmap4[k]!='') && (colmap4[k]!=undefined)) {
                   colmap[k]='lrt';                     colmap[k]='lrt'; 
                } else {                 } else {
                   colmap[k]='lr';                    colmap[k]='lr';
Line 1020  if (rowtype[jid]!=0) { Line 1093  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]!='') {                if ((colmap3[middle]!='') && (colmap3[middle]!=undefined)) {
                  colmap2[middle]='rtdl';                    colmap2[middle]='rtdl'; 
               } else {                } else {
                  colmap2[middle]='rtl';                   colmap2[middle]='rtl';
Line 1029  if (rowtype[jid]!=0) { Line 1102  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]!='') {                 if ((colmap3[k]!='') && (colmap3[k]!=undefined)) {
                   colmap2[k]='rld';                     colmap2[k]='rld'; 
                } else {                 } else {
                   colmap2[k]='rl';                    colmap2[k]='rl';
Line 1039  if (rowtype[jid]!=0) { Line 1112  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]!='') {                 if ((colmap3[k]!='') && (colmap3[k]!=undefined)) {
                   colmap2[k]='lrd';                     colmap2[k]='lrd'; 
                } else {                 } else {
                   colmap2[k]='lr';                    colmap2[k]='lr';
Line 1152  function draw () { Line 1225  function draw () {
       parent.mapout.document.writeln(        parent.mapout.document.writeln(
        '<table cellpadding=0 cellspacing=0 border=0 rows='         '<table cellpadding=0 cellspacing=0 border=0 rows='
        +disrows+' cols='+discols+'>');         +disrows+' cols='+discols+'>');
       for (kr=0;kr<=maxrow;kr++) {         for (kr=0;kr<=maxrow;kr++) {
         message("Generating Output Row "+kr);           message("Generating Output Row "+kr); 
         drawrow(rrow[kr]);           drawrow(rrow[kr]); 
       }        }
Line 1352  function insertreslink(infostr) { Line 1425  function insertreslink(infostr) {
    dellink(lnr);     dellink(lnr);
    newresource(rid,cid,'','','false','normal');     newresource(rid,cid,'','','false','normal');
    nobj=obj.length-1;     nobj=obj.length-1;
      save();
    joinres(fobj,nobj,cobj);     joinres(fobj,nobj,cobj);
      save();
    joinres(nobj,tobj,0);     joinres(nobj,tobj,0);
 }  }
   
Line 1372  function insertcondlink(cid,lnr) { Line 1447  function insertcondlink(cid,lnr) {
    dellink(lnr);     dellink(lnr);
    newresource(maxrow,cid,'','','false','normal');     newresource(maxrow,cid,'','','false','normal');
    nobj=obj.length-1;     nobj=obj.length-1;
      save();
    joinres(fobj,nobj,cobj);     joinres(fobj,nobj,cobj);
      save();
    joinres(nobj,tobj,0);     joinres(nobj,tobj,0);
 }  }
   
Line 1517  function handler(infostr) { Line 1594  function handler(infostr) {
          +'opener.linkmode='+data1[1]+';'           +'opener.linkmode='+data1[1]+';'
          +'opener.infoclear();">Link Resource</a>');           +'opener.infoclear();">Link Resource</a>');
     }      }
           inf.document.writeln(
             '<br><a href="javascript:'
            +'opener.setparms('+data1[1]+');'
            +'opener.infoclear();">Set Parameters</a>');
       
       }        }
      } else {       } else {
         linkmode=0;          linkmode=0;
Line 1566  function empty(rid,k) { Line 1648  function empty(rid,k) {
          'opener.editmode=0;opener.notclear=0;opener.infoclear();opener.draw('           'opener.editmode=0;opener.notclear=0;opener.infoclear();opener.draw('
           +');">Insert resource</a>');            +');">Insert resource</a>');
   
   if ((mostrecent!=0) && (objcont[mostrecent]!='')) {    if ((mostrecent!=0) && (objcont[mostrecent]!='') && 
                            (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 1618  function save() { Line 1701  function save() {
   var k;    var k;
   if (graphdef=='yes') {    if (graphdef=='yes') {
    parent.server.document.forms.storage.output.value='graphdef<:>yes';     parent.server.document.forms.storage.output.value='graphdef<:>yes';
    for (k=0;k<obj.length;k++) {     for (k=1;k<obj.length;k++) {
          parent.server.document.forms.storage.output.value+=           parent.server.document.forms.storage.output.value+=
           '<&>obj<:>'+k+'<:>'+obj[k];            '<&>obj<:>'+k+'<:>'+obj[k];
    }     }
Line 1688  function graphreset() { Line 1771  function graphreset() {
    insertcol(-1);     insertcol(-1);
   
    objcont[0]='';     objcont[0]='';
    objcont[1]='Start::false:start:res'  
    objcont[2]='Finish::false:finish:res';  
    objlinks[0]='';     objlinks[0]='';
    objlinks[1]='1:2:0';     if (((objcont[1]==undefined)&&(objcont[2]==undefined)) ||
          ((objcont[1]=='')&&(objcont[2]==''))) { 
         objcont[1]='Start::false:start:res'
         objcont[2]='Finish::false:finish:res';
      }
    graphdef='no';     graphdef='no';
   
 }  }
Line 1729  function tabledraw() { Line 1813  function tabledraw() {
   var condid;    var condid;
   var sortstr=sortobjs();    var sortstr=sortobjs();
  insrestab(1,-1,-1,'');   insrestab(1,-1,-1,'');
  if (sortstr!='') {   if ((sortstr!='') && (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 1816  function tabledraw() { Line 1900  function tabledraw() {
        parent.mapout.document.writeln(         parent.mapout.document.writeln(
         '<a href="javascript:parent.code.linkmode='+i+          '<a href="javascript:parent.code.linkmode='+i+
        ';parent.code.notclear=0;parent.code.infoclear();">'+         ';parent.code.notclear=0;parent.code.infoclear();">'+
        'Link resource</a></td></tr>');         'Link resource</a>');
     }      }
           parent.mapout.document.writeln(
             '<br><a href="javascript:'
            +'parent.code.setparms('+i+');">Set Parameters</a>');
   
         parent.mapout.document.writeln('</td></tr>');
        parent.mapout.document.writeln('<tr><td colspan=2><table><tr>');         parent.mapout.document.writeln('<tr><td colspan=2><table><tr>');
        for (j=2;j<data2.length;j++) {         for (j=2;j<data2.length;j++) {
            data4=data2[j].split(':');             data4=data2[j].split(':');
Line 1885  function insrestab(irow,be,af,typ) { Line 1974  function insrestab(irow,be,af,typ) {
        '<a href="javascript:parent.code.insertrow('         '<a href="javascript:parent.code.insertrow('
        +irow+');parent.code.newresource(parent.code.maxrow,'+rcol[0]         +irow+');parent.code.newresource(parent.code.maxrow,'+rcol[0]
  +",'','','false','normal');parent.code.mostrecent=parent.code.obj.length-1;"   +",'','','false','normal');parent.code.mostrecent=parent.code.obj.length-1;"
          +"parent.code.save();"
        +'parent.code.joinres('+be+',parent.code.mostrecent,0);'         +'parent.code.joinres('+be+',parent.code.mostrecent,0);'
        +'parent.code.draw();">'         +'parent.code.draw();">'
        +'Insert resource linked to from above</a><br>');         +'Insert resource linked to from above</a><br>');
Line 1894  function insrestab(irow,be,af,typ) { Line 1984  function insrestab(irow,be,af,typ) {
        '<a href="javascript:parent.code.insertrow('         '<a href="javascript:parent.code.insertrow('
        +irow+');parent.code.newresource(parent.code.maxrow,'+rcol[0]         +irow+');parent.code.newresource(parent.code.maxrow,'+rcol[0]
  +",'','','false','normal');parent.code.mostrecent=parent.code.obj.length-1;"   +",'','','false','normal');parent.code.mostrecent=parent.code.obj.length-1;"
          +"parent.code.save();"
        +'parent.code.joinres('+be+',parent.code.mostrecent,0);'         +'parent.code.joinres('+be+',parent.code.mostrecent,0);'
          +"parent.code.save();"
        +'parent.code.joinres(parent.code.mostrecent,'+af+',0);'         +'parent.code.joinres(parent.code.mostrecent,'+af+',0);'
        +'parent.code.draw();">'         +'parent.code.draw();">'
        +'Insert resource linked to from above and linking to below</a><br>');         +'Insert resource linked to from above and linking to below</a><br>');
Line 1904  function insrestab(irow,be,af,typ) { Line 1996  function insrestab(irow,be,af,typ) {
        '<a href="javascript:parent.code.insertrow('         '<a href="javascript:parent.code.insertrow('
        +irow+');parent.code.newresource(parent.code.maxrow,'+rcol[0]         +irow+');parent.code.newresource(parent.code.maxrow,'+rcol[0]
  +",'','','false','normal');parent.code.mostrecent=parent.code.obj.length-1;"   +",'','','false','normal');parent.code.mostrecent=parent.code.obj.length-1;"
          +"parent.code.save();"
        +'parent.code.joinres(parent.code.mostrecent,'+af+',0);'         +'parent.code.joinres(parent.code.mostrecent,'+af+',0);'
        +'parent.code.draw();">'         +'parent.code.draw();">'
        +'Insert resource linking to below</a><br>');         +'Insert resource linking to below</a><br>');
Line 1924  function simpletabledraw() { Line 2017  function simpletabledraw() {
   var cck;    var cck;
   var condid;    var condid;
   var sortstr=sortobjs();    var sortstr=sortobjs();
  if (sortstr!='') {   if ((sortstr!='') && (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 2002  function simpletabledraw() { Line 2095  function simpletabledraw() {
 // ---------------------------------- Sort objects to straighten graph or table  // ---------------------------------- Sort objects to straighten graph or table
   
 function sortobjs() {  function sortobjs() {
    message("Sorting Resources");     message("Sorting Resources: "+funny);
    var k;     var k;
    var ij;     var ij;
    var dol;     var dol;
Line 2020  function sortobjs() { Line 2113  function sortobjs() {
    }     }
    if (objsort.length==0) { return ''; }     if (objsort.length==0) { return ''; }
    for (k=1;k<objlinks.length;k++) {     for (k=1;k<objlinks.length;k++) {
      if (objlinks[k]!='') {       wheelswitch();
        message("Sorting Resources: "+funny);
        if ((objlinks[k]!=undefined) && (objlinks[k]!='')) {
       sortthis=1;        sortthis=1;
       data1=objlinks[k].split(':');        data1=objlinks[k].split(':');
       kj=-1;        kj=-1;
Line 2029  function sortobjs() { Line 2124  function sortobjs() {
             kj=j;              kj=j;
          }           }
       }        }
       objsort[kj]+=':'+data1[1];        if (kj!=-1) { objsort[kj]+=':'+data1[1]; }
      }       }
    }     }
    if (sortthis!=0) {     if (sortthis!=0) {
     for (k=0;k<objsort.length;k++) {      for (k=0;k<objsort.length;k++) {
         wheelswitch();
         message("Sorting Resources: "+funny);
       for (j=0;j<objsort.length;j++) {        for (j=0;j<objsort.length;j++) {
         if (k!=j) {          if (k!=j) {
           data1=objsort[k].split(':');            data1=objsort[k].split(':');
           data2=objsort[j].split(':');            data2=objsort[j].split(':');
           dol=data1.length;            dol=data1.length;
           dtl=data2.length;            dtl=data2.length;
           for (kj=1;kj<dol;kj++) {            if (dol+dtl<200) {
              for (kj=1;kj<dol;kj++) {
              if (data1[kj]==data2[0]) {               if (data1[kj]==data2[0]) {
                 for (ij=1;ij<dtl;ij++) {                  for (ij=1;ij<dtl;ij++) {
                    data1[data1.length]=data2[ij];                     data1[data1.length]=data2[ij];
                 }                  }
              }               }
           }             }
           for (kj=1;kj<dtl;kj++) {             for (kj=1;kj<dtl;kj++) {
              if (data2[kj]==data1[0]) {               if (data2[kj]==data1[0]) {
                  for (ij=1;ij<dol;ij++) {                   for (ij=1;ij<dol;ij++) {
                    data2[data2.length]=data1[ij];                      data2[data2.length]=data1[ij];
                 }                   }
             }               }
              }
              objsort[k]=data1.join(':');
              objsort[j]=data2.join(':');
           }            }
           objsort[k]=data1.join(':');  
           objsort[j]=data2.join(':');  
          }           }
       }         } 
    }     }
      message("Sorting Resources: finishing up.");
    return objsort.sort(rescompare).join('&');     return objsort.sort(rescompare).join('&');
   } else {    } else {
    return objsort.join('&');     return objsort.join('&');
Line 2104  function graphopt() { Line 2204  function graphopt() {
       row[k]=k;        row[k]=k;
    }     }
    maxrow=rowcont.length-1;     maxrow=rowcont.length-1;
   
    var oldlinks=new Array();     var oldlinks=new Array();
    for (k=0;k<objlinks.length;k++) { oldlinks[k]=objlinks[k]; }     for (k=0;k<objlinks.length;k++) { 
         oldlinks[k]=objlinks[k]; 
         objlinks[k]='';
      }
    objlinks.length=0;     objlinks.length=0;
    objlinks[0]='';     objlinks[0]='';
      graphdef='yes';
      save();
   
    for (k=0;k<objsorted.length;k++) {     for (k=0;k<objsorted.length;k++) {
       kj=(objsorted[k].split(':'))[0];       wheelswitch();
        message("Connecting Resources: "+funny);
        kj=(objsorted[k].split(':'))[0];
       for (ij=1;ij<oldlinks.length;ij++) {        for (ij=1;ij<oldlinks.length;ij++) {
         if (oldlinks[ij]) {          if (oldlinks[ij]) {
           data1=oldlinks[ij].split(':');            data1=oldlinks[ij].split(':');
           if (data1[0]==kj) {            if (data1[0]==kj) {
              joinres(data1[0],data1[1],data1[2]);               joinres(data1[0],data1[1],data1[2]);
                save();
           }            }
          }           }
       }        }
    }     }
    graphdef='yes';  
 }  }
   
 // ----------------------------------------------------------- Remove e-objects  // ----------------------------------------------------------- Remove e-objects
Line 2129  function condense() { Line 2236  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]!='') {       if ((rowcont[j]!='') && (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]+=':'; }              if ((rowcont[j]!='') && (rowcont[j]!=undefined)) { 
                  rowcont[j]+=':'; 
               }
             rowcont[j]+=data1[k];              rowcont[j]+=data1[k];
          }           }
       }        }
Line 2146  function condense() { Line 2255  function condense() {
   
 function load() {  function load() {
    message("Loading");     message("Loading");
      schedule('load');
      checkdef();
   }
   
   function finishload() {
    var k;     var k;
    for (k=0;k<objcont.length;k++) { objcont[k]=''; }     for (k=0;k<objcont.length;k++) { objcont[k]=''; }
    objcont.length=0;     objcont.length=0;
Line 2158  function load() { Line 2272  function load() {
    lastinfo='';     lastinfo='';
    graphreset();     graphreset();
    var inputstr=parent.server.document.forms.storage.output.value;     var inputstr=parent.server.document.forms.storage.output.value;
    if (inputstr!='') {     if ((inputstr!='') && (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++) {
Line 2172  function load() { Line 2286  function load() {
        if (data2[0]=='rowcont') { rowcont[data2[1]]=data2[2]; }         if (data2[0]=='rowcont') { rowcont[data2[1]]=data2[2]; }
        if (data2[0]=='row') { row[data2[1]]=1*data2[2]; }         if (data2[0]=='row') { row[data2[1]]=1*data2[2]; }
        if (data2[0]=='col') { col[data2[1]]=1*data2[2]; }         if (data2[0]=='col') { col[data2[1]]=1*data2[2]; }
          if (data2[0]=='mode') { mode=data2[1]; }
        if (data2[0]=='tablemode') { tablemode=1*data2[1]; }         if (data2[0]=='tablemode') { tablemode=1*data2[1]; }
        if (data2[0]=='zscale') { zscale=1*data2[1]; }         if (data2[0]=='zscale') { zscale=1*data2[1]; }
    }     }
   }    }
     if (graphdef=='yes') {
        for (k=1;k<=maxrow;k++) {
           if (rowcont[k]==undefined) { rowcont[k]=''; }
        }
     }
   }
   
   // -------------------------------------------------------------- Parameter set
   
   function setparms(resid) {
      alert('Called setparms for '+resid);
 }  }
   
 // -------------------------------------------------------------- Undo function  // -------------------------------------------------------------- Undo function
Line 2185  function undo() { Line 2311  function undo() {
       undopointer--;        undopointer--;
       parent.server.document.forms.storage.output.value        parent.server.document.forms.storage.output.value
        =undostack[undopointer];         =undostack[undopointer];
       load();        finishload();
       undopointer--;        undopointer--;
       draw();        draw();
       stored=0;        stored=0;
Line 2201  function redo() { Line 2327  function redo() {
       undopointer++;        undopointer++;
       parent.server.document.forms.storage.output.value        parent.server.document.forms.storage.output.value
        =undostack[undopointer];         =undostack[undopointer];
       load();        finishload();
       undopointer--;        undopointer--;
       draw();        draw();
       stored=0;        stored=0;
Line 2219  function revert() { Line 2345  function revert() {
    }     }
 }  }
   
   // ---------------------------------------------------------------- Wheelswitch
   
   function wheelswitch() {
      if (funny=='|') { 
         funny='/'; 
      } else {
         if (funny=='/') {
            funny='-';
         } else {
            if (funny=='-') { 
               funny='\\'; 
            } else {
               if (funny=='\\') { funny='|'; }
            }
         }
      } 
   }
   
   // --------------------------------------------- Checks if server frame defined
   
   function checkdef() {
      if (parent.server.document.forms.storage.output.value!=undefined) {
         srvloaded();
      }
      if ((finishdone==0) && (tim==0)) { setTimeout('checkdef()',100); }
   }
   
   // ---------------------------------------------------------- The wait function
   
   function wait() {
      if ((finishdone==1) || (tim==1)) {
         if (tim==0) {
            clearTimeout(canceltim);
            if (reqaction=='save') { finishsave(); }
            if (reqaction=='load') { finishload(); draw(); }
         } else {
            alert("Server Communication Timed Out.");
         }
      } else {
         wheelswitch();
         message('Waiting for server reply: '+funny);
         setTimeout('wait();',100);
      }
   }
   
   // ---------------------------------------------------------- Schedule function
   
   function schedule(action) {
      reqaction=action;
      tim=0;
      finishdone=0;
      canceltim=setTimeout('tim=1;',20000)
      wait();
   }
   
 // -------------------------------------------------------------- Store changes  // -------------------------------------------------------------- Store changes
   
 function storechange() {  function storechange() {
      var k;
    parent.server.document.forms.storage.submit();     parent.server.document.forms.storage.submit();
      schedule('save');
   }
   
   function finishsave() {
      finishload();
      draw();
    stored=1;     stored=1;
    alert("Stored changes");     }
   
   // --------------------------------------- Gets called when submission finished
   
   function srvloaded() {
      finishdone=1;
      message("Server replied.");
 }  }
   
 // ---------------------------------------------------------------- Toggle Mode  // ---------------------------------------------------------------- Toggle Mode
Line 2252  function main() { Line 2446  function main() {
       infopen();        infopen();
       infoclear();        infoclear();
       load();        load();
       draw();  
       stored=1;        stored=1;
       mainrun=1;        mainrun=1;
    }     }
   
 }  }
   
 // ------------------------------------------------------------- Save on leave?  // ---------------------------------------------------------- Close the window?
   
 function leave() {  function leave() {
    if (!inf.closed) {     if (!inf.closed) {
       inf.close();        inf.close();
    }     }
    if (stored==0) {  
       if (confirm('Store changes?')) {  
          storechange();     
       }  
    }  
 }  }
   
 </script>  </script>

Removed from v.1.5  
changed lines
  Added in v.1.15


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