%%
%% 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-2018  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'.
