%%
%% This is file `setcorder.def',
%% generated with the docstrip utility.
%%
%% The original source files were:
%%
%% eforms.dtx  (with options: `copyright,setcorder')
%% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% eForms package,                                      %%
%% Copyright (C) 2002-2021  D. P. Story                 %%
%%   dpstory@uakron.edu                                 %%
%%                                                      %%
%% This program can redistributed and/or modified under %%
%% the terms of the LaTeX Project Public License        %%
%% Distributed from CTAN archives in directory          %%
%% macros/latex/base/lppl.txt; either version 1 of the  %%
%% License, or (at your option) any later version.      %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{insDLJS}{cojs}{eforms: JavaScript to set calculation order}
var debugCalc=false;
ef_setCalcOrder.lastIndex=0;
function ef_setCalcOrder (a) {
  var o1, o2, f;
  while ( a.length > 0) {
    if (a.length > 1) {
      f=a.shift();
      o1=this.getField(f);
      if ( o1 == null ) {
        ef_CalcOrderErr(f);
        continue;
      }
      f = a[0];
      o2=this.getField(f);
      if ( o2 == null ) {
        ef_CalcOrderErr(f);
        a.shift();
        continue;
      }
      if (  o2.calcOrderIndex < o1.calcOrderIndex ) {
        o2.calcOrderIndex=o1.calcOrderIndex+1;
        ef_setCalcOrder.lastIndex=o2.calcOrderIndex;
      }
    } else {
      f=a.shift();
      o1=this.getField(f);
      if ( o1 == null ) {
        ef_CalcOrderErr(f);
        continue;
      }
      o1.calcOrderIndex=ef_setCalcOrder.lastIndex; 
    }
  }
}
function ef_CalcOrderErr(f) {
  console.show(); app.beep(0);
  console.println("calcOrder: the field \""+ f
    + "\" does not exist in this document, skipping it.\n\n"
    + "calcOrder: Check the case sensitive spelling of the field.");
}
var _EfCalcOrder=\efCalcOrder;
ef_setCalcOrder(_EfCalcOrder);
\end{insDLJS}
\endinput
%%
%% End of file `setcorder.def'.
