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() {}

