function getProp(p) { if (this.elementResolved()) return this.elementID[p]; }
function setProp(p,v) { if (this.elementResolved()) this.elementID[p] = v; }

function getElementID() {
 with (this) {
  var val = "";
  if (type == "")
   return;
  else if (type == "Radio")
   val = value;
  else if (document.all)
   elementID = eval("document.all." + name);
  else
   elementID = eval("document." + name);

  if (elementID == null) {
   elementID = resolveElementInDoc(document, name, type, val);

   if (elementID == null && navigator.appName.indexOf('Microsoft') >= 0) elementID = eval(name);
//   if (elementID == null && type != "Plug-In") alert("Could not resolve elementID for " + name + " (" + type + ")");
  }
 }
}

function elementResolved() {
 if (this.elementID == null) this.getElementID();
 return (this.elementID != null);
}

function resolveElementInDoc(doc, name, type, value) {
 elementID = null;
 if (type == "Image" && doc.images) {
  for (var i=0; i < doc.images.length; i++) {
   if (doc.images[i] && doc.images[i].name == name) {
    elementID = doc.images[i];
    return elementID;
   }
  }
 }
 else if (type == "Form")
  elementID = eval("doc." + name);
 else if (type == "Applet")
  elementID = eval("doc.applets." + name);
 else if (type == "Plug-In")
  elementID = eval("doc.embeds." + name);

 if (elementID == null &&
  doc.forms && doc.forms[0] && doc.forms[0].elements) {
  for (var i = 0; i < doc.forms[0].elements.length; i++) {
   if (doc.forms[0].elements[i] && (doc.forms[0].elements[i].name == name) && (type != "Radio" || doc.forms[0].elements[i].value == value)) {
    elementID = doc.forms[0].elements[i];
    return elementID;
   }
  }
 }

 if (elementID == null && doc.layers) {
  for (var i=0; elementID == null && i < doc.layers.length; i++) {
   if (doc.layers[i])
    elementID = resolveElementInDoc(doc.layers[i].document, name, type, value);
  }
 }

 return elementID;
}

function replaceAwithBinC(a,b,c) {
 i = c.indexOf(a);
 aLen = a.length;
 bLen = b.length;
 while (i != -1) {
  c = c.substring(0,i) + b + c.substring(i+aLen, c.length);
  i = c.indexOf(a, i+bLen);
 }
 return c;
}

function trace(theString) {
 var System = java.lang.System;
 System.out.println(theString);
}

function dumpProperties(Obj, ObjName) {
 var result = "";
 for (var i in Obj)
  result += ObjName + "." + i + " = " + Obj[i] + "\n";
 return result;
}

function nullFunc() {}


