home *** CD-ROM | disk | FTP | other *** search
/ PC Professionell 1998 November / PCpro_1998_11.ISO / software / Lotus / NETOBJ / T2.Z / FormHandlerComp.nfx (.txt) < prev    next >
Encoding:
Java Class File  |  1998-03-09  |  10.0 KB  |  716 lines

  1. public class FormHandlerComp extends ComponentApp {
  2.    DMessageBox msg = new DMessageBox();
  3.    // $FF: renamed from: db DMessageBox
  4.    DMessageBox field_0 = new DMessageBox();
  5.    // $FF: renamed from: d DMessageBox
  6.    DMessageBox field_1 = new DMessageBox();
  7.    int cpSuccessURL;
  8.    int cpErrorURL;
  9.    String StorageDirConst = "assets/webdata";
  10.    String CgiBinDirConst = "assets/cgi-bin";
  11.    String PCAbsolutePathConst = "C:\\webdata\\";
  12.    String useremail = "name@domain.com";
  13.    String SubmitName = "Submit";
  14.    String outputFile = "webinfo.txt";
  15.    String UnixWindows = "Windows";
  16.    String PerlPath = "/usr/bin/perl";
  17.    String storageDir = "assets/webdata";
  18.    String cpCgiBinDir = "assets/cgi-bin";
  19.    String PCAbsolutePath;
  20.    // $FF: renamed from: am DAssetManager
  21.    DAssetManager field_2;
  22.    DDrawFormButton cdp;
  23.    int ImageID;
  24.    int perlScriptID;
  25.    String codeBase;
  26.    static final int MAXASSET = 50;
  27.    boolean published;
  28.    boolean[] cpReqField;
  29.    int reqFieldCount;
  30.    int[] assetControl;
  31.    int assetCount;
  32.    int tAssetCount;
  33.    int actionCGIAsset;
  34.    IDRect rect;
  35.  
  36.    private String getMacRelativeToRoot(String var1) {
  37.       String var2 = new String("::");
  38.       int var3 = var1.length();
  39.       if (var3 == 0) {
  40.          return "";
  41.       } else {
  42.          String var4 = var1.substring(var3 - 1, var3);
  43.          if (var4.compareTo("/") == 0) {
  44.             var1 = var1.substring(0, var3 - 1);
  45.             var3 = var1.length();
  46.          }
  47.  
  48.          for(int var5 = 0; var5 < var3; ++var5) {
  49.             if (var1.substring(var5, var5 + 1).compareTo(":") == 0) {
  50.                var2 = var2 + ":";
  51.             }
  52.          }
  53.  
  54.          return var2;
  55.       }
  56.    }
  57.  
  58.    public FormHandlerComp() {
  59.       this.PCAbsolutePath = this.PCAbsolutePathConst;
  60.    }
  61.  
  62.    public String PropertyListener(String var1, String var2, int var3, int var4, IDInspector var5) {
  63.       if (var3 == 1) {
  64.          if (var1.compareTo("Button Name") == 0) {
  65.             return this.SubmitName;
  66.          }
  67.  
  68.          if (var1.compareTo("Success URL") == 0) {
  69.             return Integer.toString(this.cpSuccessURL);
  70.          }
  71.  
  72.          if (var1.compareTo("Error URL") == 0) {
  73.             return Integer.toString(this.cpErrorURL);
  74.          }
  75.  
  76.          if (var1.compareTo("Output File") == 0) {
  77.             return this.outputFile;
  78.          }
  79.  
  80.          if (var1.compareTo("Publish to") == 0) {
  81.             if (this.UnixWindows == null) {
  82.                this.UnixWindows = "Windows";
  83.             }
  84.  
  85.             if (this.UnixWindows.compareTo("Windows") == 0) {
  86.                return "0";
  87.             }
  88.  
  89.             if (this.UnixWindows.compareTo("Unix") == 0) {
  90.                return "1";
  91.             }
  92.  
  93.             if (this.UnixWindows.compareTo("Mac") == 0) {
  94.                return "2";
  95.             }
  96.  
  97.             if (this.UnixWindows.compareTo("Email") == 0) {
  98.                return "3";
  99.             }
  100.          } else {
  101.             if (var1.compareTo("Perl Path for Unix") == 0) {
  102.                return this.PerlPath;
  103.             }
  104.  
  105.             if (var1.compareTo("Email") == 0) {
  106.                if (this.useremail == null) {
  107.                   this.useremail = "name@domain.com";
  108.                }
  109.  
  110.                return this.useremail;
  111.             }
  112.  
  113.             if (var1.compareTo("CGI-Bin Directory") == 0) {
  114.                if (this.cpCgiBinDir == null) {
  115.                   this.cpCgiBinDir = "assets/cgi-bin";
  116.                }
  117.  
  118.                return this.cpCgiBinDir;
  119.             }
  120.  
  121.             if (var1.compareTo("Storage Directory") == 0) {
  122.                if (this.storageDir == null) {
  123.                   this.storageDir = "assets/webdata";
  124.                }
  125.  
  126.                return this.storageDir;
  127.             }
  128.  
  129.             if (var1.compareTo("Abs. Storage Dir") == 0) {
  130.                if (this.PCAbsolutePath == null) {
  131.                   this.PCAbsolutePathConst = "C:\\webdata\\";
  132.                   this.PCAbsolutePath = this.PCAbsolutePath;
  133.                }
  134.  
  135.                return this.PCAbsolutePath;
  136.             }
  137.          }
  138.  
  139.          for(int var6 = 0; var6 < this.countElementsOnSameLayoutAsButton(); ++var6) {
  140.             if (var1.compareTo(this.getFieldName(var6)) == 0) {
  141.                if (!this.cpReqField[var6]) {
  142.                   return "1";
  143.                }
  144.  
  145.                return "0";
  146.             }
  147.          }
  148.       } else {
  149.          if (var1.compareTo("Button Name") == 0) {
  150.             this.SubmitName = var2;
  151.             this.cdp.setText(this.SubmitName);
  152.          } else if (var1.compareTo("Success URL") == 0) {
  153.             this.cpSuccessURL = Integer.parseInt(var2, 10);
  154.          } else if (var1.compareTo("Error URL") == 0) {
  155.             this.cpErrorURL = Integer.parseInt(var2, 10);
  156.          } else if (var1.compareTo("Output File") == 0) {
  157.             this.outputFile = var2;
  158.          } else if (var1.compareTo("Publish to") == 0) {
  159.             if (var2.compareTo("0") == 0) {
  160.                this.UnixWindows = "Windows";
  161.             } else if (var2.compareTo("1") == 0) {
  162.                this.UnixWindows = "Unix";
  163.             } else if (var2.compareTo("2") == 0) {
  164.                this.UnixWindows = "Mac";
  165.             } else if (var2.compareTo("3") == 0) {
  166.                this.UnixWindows = "Email";
  167.             }
  168.          } else if (var1.compareTo("Perl Path for Unix") == 0) {
  169.             this.PerlPath = var2;
  170.          } else if (var1.compareTo("Email") == 0) {
  171.             this.useremail = var2;
  172.          } else if (var1.compareTo("CGI-Bin Directory") == 0) {
  173.             this.cpCgiBinDir = this.StripPrefixes(var2);
  174.             if (this.cpCgiBinDir.compareTo(var2) != 0) {
  175.                this.field_0.Warning("This property does not allow the following\r\n" + "strings to precede the filename:\r\n" + "       (1)  ../ \r\n" + "       (2)  ./ \r\n" + "       (3)  / \r\n" + "If present, they are automatically removed.\r\n");
  176.             }
  177.          } else if (var1.compareTo("Storage Directory") == 0) {
  178.             this.storageDir = this.StripPrefixes(var2);
  179.             if (this.storageDir.compareTo(var2) != 0) {
  180.                this.field_0.Warning("This property does not allow the following\r\n" + "strings to precede the filename:\r\n" + "       (1)  ../ \r\n" + "       (2)  ./ \r\n" + "       (3)  / \r\n" + "If present, they are automatically removed.\r\n");
  181.             }
  182.          } else if (var1.compareTo("Abs. Storage Dir") == 0) {
  183.             int var8 = var2.length();
  184.             if (var2.substring(var8 - 1, var8).compareTo("\\") != 0) {
  185.                this.PCAbsolutePath = var2 + "\\";
  186.             } else {
  187.                this.PCAbsolutePath = var2;
  188.             }
  189.          }
  190.  
  191.          for(int var9 = 0; var9 < this.countElementsOnSameLayoutAsButton(); ++var9) {
  192.             if (var1.compareTo(this.getFieldName(var9)) == 0) {
  193.                if (var2.compareTo("0") == 0) {
  194.                   this.cpReqField[var9] = true;
  195.                } else {
  196.                   this.cpReqField[var9] = false;
  197.                }
  198.             }
  199.          }
  200.       }
  201.  
  202.       if (var5 != null) {
  203.          var5.OnPropertyChanged(-1);
  204.       }
  205.  
  206.       return "";
  207.    }
  208.  
  209.    int max(int var1, int var2) {
  210.       return var1 > var2 ? var1 : var2;
  211.    }
  212.  
  213.    public void onCopy() {
  214.       this.SubmitName = new String(this.SubmitName);
  215.       this.outputFile = new String(this.outputFile);
  216.       this.PerlPath = new String(this.PerlPath);
  217.       this.storageDir = new String(this.storageDir);
  218.       this.codeBase = new String(this.codeBase);
  219.       this.rect = this.cdp.getObjectRect();
  220.       this.cdp = new DDrawFormButton();
  221.       boolean[] var1 = new boolean[this.reqFieldCount];
  222.  
  223.       for(int var2 = 0; var2 < this.reqFieldCount; ++var2) {
  224.          var1[var2] = this.cpReqField[var2];
  225.       }
  226.  
  227.       this.cpReqField = var1;
  228.  
  229.       for(this.tAssetCount = 0; this.tAssetCount < this.assetCount; ++this.tAssetCount) {
  230.          this.field_2.CopyAsset(this.assetControl[this.tAssetCount]);
  231.       }
  232.  
  233.    }
  234.  
  235.    private String getRelativeToRoot(String var1) {
  236.       String var2 = new String();
  237.       int var3 = var1.length();
  238.       if (var3 == 0) {
  239.          return null;
  240.       } else {
  241.          String var4 = var1.substring(0, 2);
  242.          if (var4.compareTo("./") == 0) {
  243.             var1 = var1.substring(2, var3 - 1);
  244.          }
  245.  
  246.          var3 = var1.length();
  247.  
  248.          for(int var5 = 0; var5 < var3; ++var5) {
  249.             if (var1.substring(var5, var5 + 1).compareTo("/") == 0) {
  250.                var2 = var2 + "../";
  251.             }
  252.          }
  253.  
  254.          var3 = var2.length();
  255.          String var9 = var2.substring(var3 - 1, var3);
  256.          if (var9.compareTo("/") != 0) {
  257.             var2 = var2 + "/";
  258.          }
  259.  
  260.          return var2;
  261.       }
  262.    }
  263.  
  264.    String cleanPath(String var1, int var2, int var3) {
  265.       String var4 = this.field_2.GetAssetLocation(var2, var3, 1);
  266.       String var5 = "./";
  267.       if (var5.compareTo(var4.substring(0, 2)) == 0) {
  268.          var4 = var4.substring(2);
  269.       }
  270.  
  271.       for(String var8 = "../"; var8.compareTo(var4.substring(0, 3)) == 0; var4 = var4.substring(3)) {
  272.       }
  273.  
  274.       String var6 = this.getRelativeToRoot(var4);
  275.       return var6 + var1;
  276.    }
  277.  
  278.    private String unixToWinPath(String var1) {
  279.       String var2 = "";
  280.       int var4 = var1.length();
  281.  
  282.       for(int var5 = 0; var5 < var4; ++var5) {
  283.          String var3 = var1.substring(var5, var5 + 1);
  284.          if (var3.compareTo("/") == 0) {
  285.             var2 = var2 + "\\";
  286.          } else {
  287.             var2 = var2 + var3;
  288.          }
  289.       }
  290.  
  291.       return var2;
  292.    }
  293.  
  294.    String getFieldName(int var1) {
  295.       int var2 = var1 + 1;
  296.       return "Required field " + var2;
  297.    }
  298.  
  299.    int countElementsOnSameLayoutAsButton() {
  300.       IDLayout var1 = this.cdp.getLayout();
  301.       int var2 = 1;
  302.       int var4 = 0;
  303.  
  304.       while(true) {
  305.          String var5 = new String() + var2;
  306.          if (!var1.IsElementName(var5)) {
  307.             --var2;
  308.             if (this.cpReqField == null) {
  309.                this.cpReqField = new boolean[var2];
  310.  
  311.                for(int var9 = 0; var9 < var2; ++var9) {
  312.                   this.cpReqField[var9] = false;
  313.                }
  314.  
  315.                this.reqFieldCount = var2;
  316.                return var2;
  317.             } else {
  318.                int var10 = this.min(this.reqFieldCount, var2);
  319.                boolean[] var3 = this.cpReqField;
  320.                this.cpReqField = new boolean[var2];
  321.  
  322.                for(var4 = 0; var4 < var10; ++var4) {
  323.                   this.cpReqField[var4] = var3[var4];
  324.                }
  325.  
  326.                if (this.reqFieldCount != this.max(this.reqFieldCount, var2)) {
  327.                   while(var4 < this.max(this.reqFieldCount, var2)) {
  328.                      this.cpReqField[var4] = false;
  329.                      ++var4;
  330.                   }
  331.                }
  332.  
  333.                this.reqFieldCount = var2;
  334.                return var2;
  335.             }
  336.          }
  337.  
  338.          ++var2;
  339.       }
  340.    }
  341.  
  342.    public String onInstall(DAssetManager var1, String var2) {
  343.       this.field_2 = var1;
  344.       this.codeBase = var2;
  345.       return "Form Handler";
  346.    }
  347.  
  348.    protected void finalize() {
  349.       if (this.published) {
  350.          for(this.tAssetCount = 0; this.tAssetCount < this.assetCount; ++this.tAssetCount) {
  351.             this.field_2.RemoveAsset(this.assetControl[this.tAssetCount]);
  352.          }
  353.       }
  354.  
  355.    }
  356.  
  357.    public void onPublish(DAssetManager var1, int var2) {
  358.       boolean var3 = false;
  359.       this.field_2 = var1;
  360.       if (this.UnixWindows == null) {
  361.          this.UnixWindows = "Windows";
  362.       }
  363.  
  364.       if (this.useremail == null) {
  365.          this.useremail = "name@domain.com";
  366.       }
  367.  
  368.       if (this.cpCgiBinDir == null) {
  369.          this.cpCgiBinDir = "assets/cgi-bin";
  370.       }
  371.  
  372.       if (this.storageDir == null) {
  373.          this.storageDir = "assets/webdata";
  374.       }
  375.  
  376.       if (this.PCAbsolutePathConst == null) {
  377.          this.PCAbsolutePathConst = "C:\\webdata\\";
  378.          this.PCAbsolutePath = this.PCAbsolutePathConst;
  379.       }
  380.  
  381.       this.codeBase = this.cdp.getCodeBase();
  382.       String var4 = this.codeBase;
  383.       IDLayout var5 = this.cdp.getLayout();
  384.       String var6 = "";
  385.       this.countElementsOnSameLayoutAsButton();
  386.       DFile var7 = new DFile();
  387.       DFile var8 = new DFile();
  388.       DFile var9 = new DFile();
  389.       String var10 = var9.GetPathChar();
  390.       String var11 = "";
  391.       if (this.published) {
  392.          for(this.tAssetCount = 0; this.tAssetCount < this.assetCount; ++this.tAssetCount) {
  393.             var1.RemoveAsset(this.assetControl[this.tAssetCount]);
  394.          }
  395.       }
  396.  
  397.       this.assetCount = 0;
  398.       this.published = true;
  399.       if (this.UnixWindows.compareTo("Windows") == 0) {
  400.          this.actionCGIAsset = var1.AddAsset(var4 + "Forms" + var10 + "cgi-bin-NT" + var10 + "Forms-Handler.cgi", "CGI\u0000", this.cpCgiBinDir);
  401.          this.assetControl[this.assetCount] = this.actionCGIAsset;
  402.          var1.SetPublishAssetMode(this.assetControl[this.assetCount++], 453);
  403.          this.field_2.GetAssetRelativeLocation(this.actionCGIAsset, var2, 0);
  404.          this.assetControl[this.assetCount] = var1.AddAsset(var4 + "Forms" + var10 + "cgi-bin-NT" + var10 + "Buf.dll", "CGI\u0000", this.cpCgiBinDir);
  405.          var1.SetPublishAssetMode(this.assetControl[this.assetCount++], 453);
  406.          var11 = var4 + "Forms" + var10 + "cgi-bin-NT" + var10 + "Forms-Handler.cgi";
  407.          this.cdp.setHTMLBefore(this.ComposeHiddenInputTags(var2, this.actionCGIAsset));
  408.          var7.Open(var4 + "Forms" + var10 + "cgi-bin" + var10 + "config", 4097);
  409.          var7.WriteString(this.PCAbsolutePath, -1);
  410.          var7.Close();
  411.          this.assetControl[this.assetCount] = var1.AddAsset(var4 + "Forms" + var10 + "cgi-bin" + var10 + "config", "CGI\u0000", this.cpCgiBinDir);
  412.          ++this.assetCount;
  413.       } else if (this.UnixWindows.compareTo("Mac") == 0) {
  414.          this.actionCGIAsset = this.field_2.AddAsset(var4 + "Forms" + var10 + "cgi-bin-mac" + var10 + "Forms-Handler.cgi", "CGI\u0000", this.cpCgiBinDir);
  415.          var1.GetAssetRelativeLocation(this.actionCGIAsset, var2, 0);
  416.          this.assetControl[this.assetCount] = this.actionCGIAsset;
  417.          var1.SetPublishAssetMode(this.assetControl[this.assetCount++], 453);
  418.          int var12 = this.assetControl[this.assetCount] = this.field_2.AddAsset(this.storageDir, "SubDir\u0000", "");
  419.          var1.SetPublishAssetMode(this.assetControl[this.assetCount++], 453);
  420.          var11 = var4 + "Forms" + var10 + "cgi-bin-mac" + var10 + "Forms-Handler.cgi";
  421.          this.cdp.setHTMLBefore(this.ComposeHiddenInputTags(var2, this.actionCGIAsset));
  422.          var7.Open(var4 + "Forms" + var10 + "cgi-bin" + var10 + "MAC_form.cfg", 4097);
  423.          var7.WriteString("$STORAGEDIR=\"" + this.getMacRelativeToRoot(this.Unix2MacPath(this.cpCgiBinDir)) + this.Unix2MacPath(this.storageDir) + ":\";", -1);
  424.          this.assetControl[this.assetCount] = var1.AddAsset(var4 + "Forms" + var10 + "cgi-bin" + var10 + "MAC_form.cfg", "CGI\u0000", this.cpCgiBinDir);
  425.          var1.SetPublishAssetMode(this.assetControl[this.assetCount++], 453);
  426.          var7.Close();
  427.       } else if (this.UnixWindows.compareTo("Unix") == 0) {
  428.          this.assetControl[this.assetCount] = var1.AddAsset(this.storageDir + var10 + "", "SubDir\u0000", "");
  429.          int var10000 = this.assetControl[this.assetCount];
  430.          var1.SetPublishAssetMode(this.assetControl[this.assetCount++], 475);
  431.          this.actionCGIAsset = var1.AddAsset(var4 + "Forms" + var10 + "cgi-bin" + var10 + "Forms-Handler.cgi", "CGI\u0000", this.cpCgiBinDir);
  432.          var6 = this.field_2.GetAssetRelativeLocation(this.actionCGIAsset, var2, 0);
  433.          this.assetControl[this.assetCount] = this.actionCGIAsset;
  434.          var1.SetPublishAssetMode(this.assetControl[this.assetCount++], 493);
  435.          var11 = var4 + "Forms" + var10 + "cgi-bin" + var10 + "Forms-Handler.cgi";
  436.          var8.Open(var4 + "Forms" + var10 + "cgi-bin-Unix" + var10 + "Forms-Handler.cgi", 0);
  437.          var7.Open(var4 + "Forms" + var10 + "cgi-bin" + var10 + "Forms-Handler.cgi", 4097);
  438.          var7.WriteString("#!" + this.PerlPath + "\n", -1);
  439.          var7.WriteString("$STORAGEDIR=\"" + this.getRelativeToRoot(var6) + this.storageDir + "/\";", -1);
  440.          var7.WriteString(var8.ReadString(10000), -1);
  441.          var7.Close();
  442.          var8.Close();
  443.          this.cdp.setHTMLBefore(this.ComposeHiddenInputTags(var2, this.actionCGIAsset));
  444.       }
  445.  
  446.       if (this.UnixWindows.compareTo("Email") == 0) {
  447.          var6 = "mailto:" + this.useremail;
  448.          var5.setFormAction(var6 + "\" ENCTYPE=\"Text/Plain");
  449.       } else {
  450.          var5.setFormAction(var11);
  451.       }
  452.  
  453.    }
  454.  
  455.    public void onDrop(IDLayout var1, IDRect var2, int var3) {
  456.       if (var3 == 1) {
  457.          this.assetControl = new int[50];
  458.          int var4 = 0;
  459.  
  460.          do {
  461.             this.assetControl[var4] = 0;
  462.             ++var4;
  463.          } while(var4 < 50);
  464.  
  465.          new DFile();
  466.          this.useremail = "name@domain.com";
  467.          this.SubmitName = "Submit";
  468.          this.outputFile = "webinfo.txt";
  469.          this.UnixWindows = "Windows";
  470.          this.PerlPath = "/usr/bin/perl";
  471.          this.storageDir = "assets/webdata";
  472.          this.cpCgiBinDir = "assets/cgi-bin";
  473.          this.cdp = new DDrawFormButton();
  474.          this.cdp.setText(this.SubmitName);
  475.          this.cdp.SetPositionRect(var2.getLeft(), var2.getTop(), var2.getRight(), var2.getBottom());
  476.          var1.AddObject(this.cdp);
  477.       }
  478.  
  479.       if (var3 == 3) {
  480.       }
  481.  
  482.       if (var3 == 0) {
  483.       }
  484.  
  485.       if (var3 == 4) {
  486.       }
  487.  
  488.    }
  489.  
  490.    boolean isExternal(String var1) {
  491.       for(int var3 = 0; var3 < var1.length() - 1; ++var3) {
  492.          String var2 = var1.substring(var3, var3 + 1);
  493.          if (var2.compareTo("/") == 0 && var1.substring(var3 + 1, var3 + 2).compareTo("/") == 0) {
  494.             return true;
  495.          }
  496.       }
  497.  
  498.       return false;
  499.    }
  500.  
  501.    int min(int var1, int var2) {
  502.       return var1 < var2 ? var1 : var2;
  503.    }
  504.  
  505.    private String getNTRelativeToRoot(String var1) {
  506.       String var2 = new String();
  507.       int var3 = var1.length();
  508.       if (var3 == 0) {
  509.          return null;
  510.       } else {
  511.          String var4 = var1.substring(0, 2);
  512.          if (var4.compareTo("./") == 0) {
  513.             var1 = var1.substring(2, var3 - 1);
  514.          }
  515.  
  516.          var3 = var1.length();
  517.  
  518.          for(int var5 = 0; var5 < var3; ++var5) {
  519.             if (var1.substring(var5, var5 + 1).compareTo("/") == 0) {
  520.                var2 = var2 + "..\\";
  521.             }
  522.          }
  523.  
  524.          var3 = var2.length();
  525.          String var9 = var2.substring(var3 - 1, var3);
  526.          if (var9.compareTo("\\") != 0) {
  527.             var2 = var2 + "\\";
  528.          }
  529.  
  530.          return var2;
  531.       }
  532.    }
  533.  
  534.    public void onInspect(CStringArray var1, CStringArray var2) {
  535.       var1.Set("Button Name");
  536.       var2.Set("String\u0000");
  537.       var1.Set("Publish to");
  538.       var2.Set("Set(Windows|Unix|Mac|Email)");
  539.       if (this.UnixWindows.compareTo("Email") == 0) {
  540.          var1.Set("Email");
  541.          var2.Set("String\u0000");
  542.       }
  543.  
  544.       if (this.UnixWindows.compareTo("Email") != 0) {
  545.          var1.Set("Success URL");
  546.          var2.Set("Link\u0000");
  547.          var1.Set("Error URL");
  548.          var2.Set("Link\u0000");
  549.          var1.Set("Output File");
  550.          var2.Set("String\u0000");
  551.       }
  552.  
  553.       if (this.UnixWindows.compareTo("Unix") == 0) {
  554.          var1.Set("Perl Path for Unix");
  555.          var2.Set("String\u0000");
  556.       }
  557.  
  558.       if (this.UnixWindows.compareTo("Email") != 0) {
  559.          var1.Set("CGI-Bin Directory");
  560.          var2.Set("String\u0000");
  561.       } else {
  562.          if (this.CgiBinDirConst == null) {
  563.             this.CgiBinDirConst = "assets/cgi-bin";
  564.          }
  565.  
  566.          this.cpCgiBinDir = this.CgiBinDirConst;
  567.       }
  568.  
  569.       if (this.UnixWindows.compareTo("Email") != 0) {
  570.          if (this.UnixWindows.compareTo("Windows") == 0) {
  571.             var1.Set("Abs. Storage Dir");
  572.          } else {
  573.             var1.Set("Storage Directory");
  574.          }
  575.  
  576.          var2.Set("String\u0000");
  577.       }
  578.  
  579.       if (this.StorageDirConst == null) {
  580.          this.StorageDirConst = "assets/webdata";
  581.          this.storageDir = this.StorageDirConst;
  582.       }
  583.  
  584.       if (this.PCAbsolutePathConst == null) {
  585.          this.PCAbsolutePathConst = "C:\\webdata\\";
  586.          this.PCAbsolutePath = this.PCAbsolutePathConst;
  587.       }
  588.  
  589.       int var3 = this.countElementsOnSameLayoutAsButton();
  590.  
  591.       for(int var4 = 0; var4 < var3; ++var4) {
  592.          var1.Set(this.getFieldName(var4));
  593.          var2.Set("Set(True|False)");
  594.       }
  595.  
  596.    }
  597.  
  598.    String ComposeHiddenInputTags(int var1, int var2) {
  599.       String var3 = this.field_2.GetAssetLocation(this.cpSuccessURL, var1, 1);
  600.       String var4 = this.field_2.GetAssetLocation(this.cpErrorURL, var1, 1);
  601.       new DMessageBox();
  602.       String var5 = "./";
  603.       if (var5.compareTo(var3.substring(0, 2)) == 0) {
  604.          var3 = var3.substring(2);
  605.       }
  606.  
  607.       if (var5.compareTo(var4.substring(0, 2)) == 0) {
  608.          var4 = var4.substring(2);
  609.       }
  610.  
  611.       String var6;
  612.       for(var5 = "../"; var5.compareTo(var3.substring(0, 3)) == 0; var3 = var6) {
  613.          var6 = var3.substring(3);
  614.       }
  615.  
  616.       while(var5.compareTo(var4.substring(0, 3)) == 0) {
  617.          var6 = var4.substring(3);
  618.          var4 = var6;
  619.       }
  620.  
  621.       boolean var8 = this.isExternal(var3);
  622.       boolean var9 = this.isExternal(var4);
  623.       String var7;
  624.       if (var8) {
  625.          var7 = "<INPUT TYPE=\"HIDDEN\" NAME=\"success\" VALUE=\"" + var3 + "\">\n";
  626.       } else {
  627.          var7 = "<INPUT TYPE=\"HIDDEN\" NAME=\"success\" VALUE=\"" + this.cleanPath(var3, var2, var1) + "\">\n";
  628.       }
  629.  
  630.       if (var9) {
  631.          var7 = var7 + "<INPUT TYPE=\"HIDDEN\" NAME=\"error\" VALUE=\"" + var4 + "\">\n";
  632.       } else {
  633.          var7 = var7 + "<INPUT TYPE=\"HIDDEN\" NAME=\"error\" VALUE=\"" + this.cleanPath(var4, var2, var1) + "\">\n";
  634.       }
  635.  
  636.       var7 = var7 + "<INPUT TYPE=\"HIDDEN\" NAME=\"fields\" VALUE=\"" + this.reqFieldCount + "\">\n";
  637.       var7 = var7 + "<INPUT TYPE=\"HIDDEN\" NAME=\"filename\" VALUE=\"" + this.outputFile + "\">\n";
  638.  
  639.       for(int var11 = 0; var11 < this.reqFieldCount; ++var11) {
  640.          if (this.cpReqField[var11]) {
  641.             int var10 = var11 + 1;
  642.             var7 = var7 + "<INPUT TYPE=\"HIDDEN\" NAME=\"" + var10 + "a\" VALUE=\"TRUE\">\n";
  643.          }
  644.       }
  645.  
  646.       return var7;
  647.    }
  648.  
  649.    protected String Unix2MacPath(String var1) {
  650.       String var2 = "";
  651.       String var3 = "";
  652.       byte var4 = 0;
  653.       if (var1.length() >= 2 && var1.substring(0, 2).compareTo("./") == 0) {
  654.          var1 = var1.substring(2, var1.length());
  655.       }
  656.  
  657.       if (var1.substring(0, 1) == "/") {
  658.          var1 = var1.substring(1, var1.length());
  659.       }
  660.  
  661.       for(int var5 = 0; var5 < var1.length(); ++var5) {
  662.          var3 = var1.substring(var5, var5 + 1);
  663.          if (var3.compareTo(".") == 0) {
  664.             if (var4 == 0) {
  665.                var4 = 1;
  666.             } else if (var4 == 1) {
  667.                var4 = 2;
  668.             }
  669.          } else if (var3.compareTo("/") == 0) {
  670.             if (var4 == 2 || var4 == 0) {
  671.                var2 = var2 + ":";
  672.                var4 = 0;
  673.             }
  674.          } else {
  675.             var2 = var2 + var3;
  676.          }
  677.       }
  678.  
  679.       if (var2.substring(0, 1).compareTo(".") == 0) {
  680.          var2 = ":" + var2;
  681.       }
  682.  
  683.       return var2;
  684.    }
  685.  
  686.    public String StripPrefixes(String var1) {
  687.       String var2 = "";
  688.       int var3 = 0;
  689.       if (var1.substring(0, 1).compareTo("/") == 0) {
  690.          var2 = "/";
  691.       } else if (var1.substring(0, 2).compareTo("./") == 0) {
  692.          var2 = "./";
  693.       } else if (var1.substring(0, 3).compareTo("../") == 0) {
  694.          var2 = "../";
  695.       }
  696.  
  697.       var3 = var2.length();
  698.       if (var3 == 0) {
  699.          return var1;
  700.       } else {
  701.          for(; var2.compareTo(var1.substring(0, var3)) == 0; var3 = var2.length()) {
  702.             var1 = var1.substring(var3);
  703.             if (var1.substring(0, 1).compareTo("/") == 0) {
  704.                var2 = "/";
  705.             } else if (var1.substring(0, 2).compareTo("./") == 0) {
  706.                var2 = "./";
  707.             } else if (var1.substring(0, 3).compareTo("../") == 0) {
  708.                var2 = "../";
  709.             }
  710.          }
  711.  
  712.          return var1;
  713.       }
  714.    }
  715. }
  716.