home *** CD-ROM | disk | FTP | other *** search
/ Chip 2000 June / CHIPCD_6_2000.iso / software / trial / atlas / 00_system / script / regfun.js < prev   
Encoding:
JavaScript  |  1995-05-21  |  3.5 KB  |  122 lines

  1. //<script language=javascript>
  2. // **********************************************************************
  3. // The hIdaho Frameset. Copyright (C) 1996 Bill Dortch, hIdaho Design.
  4. // Permission is granted to use and modify the hIdaho Frameset code,
  5. // provided this notice is retained.
  6. // **********************************************************************
  7. //    ╬.╦Φ≥ΓΦφσφΩε: 16.10.98
  8. //    
  9.  
  10. var debug = false;
  11. var amTopFrameset = true; // ┬±≥αφεΓΦ≥Φ ÷σ Σε │±≥ΦφΦ Σδ  πεδεΓφεπε frameset
  12. var thisFrame = (amTopFrameset) ? null : self.name;
  13. var maxFuncs = 32;
  14.  
  15.  
  16. function makeArray (size) {
  17.   this.length = size;
  18.   for (var i = 1; i <= size; i++)
  19.     this[i] = null;
  20.   return this;
  21. }
  22. var funcs = new makeArray ((amTopFrameset) ? maxFuncs : 0);
  23.  
  24.  
  25. function makeFunc (frame, func) {
  26.   this.frame = frame;
  27.   this.func = func;
  28.   return this;
  29. }
  30.  
  31. function addFunction (frame, func) {
  32.   for (var i = 1; i <= funcs.length; i++)
  33.     if (funcs[i] == null) {
  34.       funcs[i] = new makeFunc (frame, func);
  35.       return true;
  36.     }
  37.   return false;
  38. }
  39.  
  40. function findFunction (func) {
  41.   for (var i = 1; i <= funcs.length; i++)
  42.     if (funcs[i] != null)
  43.       if (funcs[i].func == func)
  44.         return funcs[i];
  45.   return null;
  46. }
  47.  
  48.  
  49. function Register (frame, func) {
  50.   if (debug) alert (thisFrame + ": Register(" + frame + "," + func + ")");
  51.   if (Register.arguments.length < 2)
  52.     return false;
  53.   if (!amTopFrameset)
  54.     return parent.Register (thisFrame + "." + frame, func);
  55.   if (findFunction (func) != null)
  56.     return false;
  57.   return addFunction (frame, func);
  58. }
  59.  
  60. function UnRegister (func) {
  61.   if (debug) alert (thisFrame + ": UnRegister(" + func + ")");
  62.   if (UnRegister.arguments.length == 0)
  63.     return false;
  64.   if (!amTopFrameset)
  65.     return parent.UnRegister (func);
  66.   for (var i = 1; i <= funcs.length; i++)
  67.     if (funcs[i] != null)
  68.       if (funcs[i].func == func) {
  69.         funcs[i] = null;
  70.         return true;
  71.       }
  72.   return false;
  73. }
  74.  
  75. function UnRegisterFrame (frame) {
  76.   if (debug) alert (thisFrame + ": UnRegisterFrame(" + frame + ")");
  77.   if (UnRegisterFrame.arguments.length == 0)
  78.     return false;
  79.   if (!amTopFrameset)
  80.     return parent.UnRegisterFrame (thisFrame + "." + frame);
  81.   for (var i = 1; i <= funcs.length; i++)
  82.     if (funcs[i] != null)
  83.       if (funcs[i].frame == frame) {
  84.         funcs[i] = null;
  85.       }
  86.   return true;
  87. }
  88.  
  89. function IsRegistered (func) {
  90.   if (debug) alert (thisFrame + ": IsRegistered(" + func + ")");
  91.   if (IsRegistered.arguments.length == 0)
  92.     return false;
  93.   if (!amTopFrameset)
  94.     return parent.IsRegistered (func);
  95.   if (findFunction (func) == null)
  96.     return false;
  97.   return true;
  98. }
  99.  
  100. function Exec (func) {
  101.   var argv = Exec.arguments;
  102.   if (argv.length == 0)
  103.     return null;
  104.   var arglist = new makeArray(argv.length);
  105.   for (var i = 0; i < argv.length; i++)
  106.     arglist[i+1] = argv[i];
  107.   var argstr = "";
  108.   for (i = ((amTopFrameset) ? 2 : 1); i <= argv.length; i++)
  109.     argstr += "arglist[" + i + "]" + ((i < argv.length) ? "," : "");
  110.   if (!amTopFrameset)
  111.     return eval ("parent.Exec(" + argstr + ")");
  112.   var funcobj = findFunction (func);
  113.   if (funcobj == null)
  114.     return null;
  115.   return eval("self." + ((funcobj.frame == null) ? "" : (funcobj.frame + "."))+ funcobj.func + "(" + argstr + ")");
  116. }
  117.  
  118. // **********************************************************************
  119. // End of hIdaho Frameset code.
  120. // **********************************************************************
  121. // end script</script>
  122.