function lookup(id) {
	return document.getElementById(id);
}

function isIE() {
	return navigator.appName.indexOf("Internet Explorer") >= 0;
}

function getSelection(selector) {
   for (var i = 0; i < selector.options.length; i++) {
  		if (selector.options[i].selected) {
  			return selector.options[i].value;
  		}
  	}
}

function setSelection(selector, value) {
   for (var i = 0; i < selector.options.length; i++) {
  		if (selector.options[i].value == value) {
  			selector.options[i].selected = true;
  			break;
  		}
  	}
}

function getRadioChoice(radioGroup) {
	for (var i = 0; i < radioGroup.length; i++) {
		if (radioGroup[i].checked) {
			return radioGroup[i].value;
		}
	}
	return null;
}

function setRadioChoice(radioGroup, value) {
	for (var i = 0; i < radioGroup.length; i++) {
		if (radioGroup[i].value == value) {
			radioGroup[i].checked = true;
			break;
		}
	}
}
  
function clearForm(f) {
  	if (f.childNodes.length > 0) {
  		f.removeChild(f.childNodes[0]);
  	}
}

function createLabel(div, label) {
	var l = document.createTextNode(label);
	div.appendChild(l);
}

function createText(div, name) {
	var t;
	if (isIE()) {
		t = document.createElement("<INPUT type='text' name='" + name + "'>"); 
	} else {
		t = document.createElement('INPUT'); 
	  	t.type = 'text';
	  	t.name = name;
	}
  	div.appendChild(t);
}

function createTextArea(div, name, r, c) {
	var t;
	if (isIE()) {
		t = document.createElement("<TEXTAREA name='" + name + "' rows='" + r + "' cols='" + c + "'>"); 
	} else {
		t = document.createElement('TEXTAREA'); 
	  	t.name = name;
  		t.rows = r;
	  	t.cols = c;
	}
  	div.appendChild(t);
}

function createRadio(div, name, value, sel) {
	var r;
	if (isIE()) {
		var ch = sel ? "checked" : "";
		r = document.createElement("<INPUT type='radio' name='" + name + "' value='" + value + "' " + ch + ">");
	} else {
	  	r = document.createElement('INPUT'); 
  		r.type = 'radio';
	  	r.name = name;
	  	r.value = value;
  		r.checked = sel;
  	}
  	div.appendChild(r);
}

function createCheckbox(div, name, label) {
	var c;
	if (isIE()) {
		c = document.createElement("<INPUT type='checkbox' name='" + name + "' value='" + label + "'>");
	} else {
		c = document.createElement('INPUT');
		c.type = 'checkbox';
		c.name = name;
		c.value = label;
	}
	div.appendChild(c);
	createLabel(div, label);
}

function createCombo(div, name, values, labels) {
	var sel
	if (isIE()) {
		sel = document.createElement("<SELECT name='" + name + "'>");
	  	for (var i = 0; i < values.length; i++) {
		  	var opt = document.createElement("<OPTION value='" + values[i] + "'>");
		  	var lab = document.createTextNode(labels[i]);
		  	opt.appendChild(lab);
		  	sel.appendChild(opt);
		}
	} else {
		sel = document.createElement('SELECT');
	  	sel.name = name;
	  	for (var i = 0; i < values.length; i++) {
		  	var opt = document.createElement('OPTION');
		  	opt.value = values[i];
		  	var lab = document.createTextNode(labels[i]);
		  	opt.appendChild(lab);
		  	sel.appendChild(opt);
		}
	}
  	div.appendChild(sel);
}

function createRunButton(div, method) {
	var b;
	b = document.createElement('INPUT');
	b.type = 'button';
	b.value = 'Run';
	b.onclick = method;
	div.appendChild(b);
}

function createBreak(div) {
	div.appendChild(document.createElement('BR'));
	div.appendChild(document.createElement('BR'));
}

function buildLabel(label) {
	return document.createTextNode(label);
}

function buildText(name) {
	var t;
	if (isIE()) {
		t = document.createElement("<INPUT type='text' name='" + name + "'>"); 
	} else {
		t = document.createElement('INPUT'); 
	  	t.type = 'text';
	  	t.name = name;
	}
  	return t;
}

function buildTextArea(name, r, c) {
	var t;
	if (isIE()) {
		t = document.createElement("<TEXTAREA name='" + name + "' rows='" + r + "' cols='" + c + "'>"); 
	} else {
		t = document.createElement('TEXTAREA'); 
	  	t.name = name;
  		t.rows = r;
	  	t.cols = c;
	}
  	return t;
}

function buildRadio(name, value, sel) {
	var r;
	if (isIE()) {
		var ch = sel ? "checked" : "";
		r = document.createElement("<INPUT type='radio' name='" + name + "' value='" + value + "' " + ch + ">");
	} else {
	  	r = document.createElement('INPUT'); 
  		r.type = 'radio';
	  	r.name = name;
	  	r.value = value;
  		r.checked = sel;
  	}
  	return r;
}

function buildCheckbox(name, value) {
	var c;
	if (isIE()) {
		c = document.createElement("<INPUT type='checkbox' name='" + name + "' value='" + label + "'>");
	} else {
		c = document.createElement('INPUT');
		c.type = 'checkbox';
		c.name = name;
		c.value = value;
	}
	return c;
}

function buildCombo(name, values, labels) {
	var sel;
	if (isIE()) {
		sel = document.createElement("<SELECT name='" + name + "'>");
	  	for (var i = 0; i < values.length; i++) {
		  	var opt = document.createElement("<OPTION value='" + values[i] + "'>");
		  	var lab = document.createTextNode(labels[i]);
		  	opt.appendChild(lab);
		  	sel.appendChild(opt);
		}
	} else {
		sel = document.createElement('SELECT');
	  	sel.name = name;
	  	for (var i = 0; i < values.length; i++) {
		  	var opt = document.createElement('OPTION');
		  	opt.value = values[i];
		  	var lab = document.createTextNode(labels[i]);
		  	opt.appendChild(lab);
		  	sel.appendChild(opt);
		}
	}
  	return sel;
}

function buildRunButton(method) {
	var b;
	b = document.createElement('INPUT');
	b.type = 'button';
	b.value = 'Run';
	b.onclick = method;
	return b;
}

function buildButton(label, method) {
	var b;
	b = document.createElement('INPUT');
	b.type = 'button';
	b.value = label;
	b.onclick = method;
	return b;
}

function buildTable() {
	var t;
	if (isIE()) {
		t = document.createElement("<TABLE border='0' width='100%'>");
	} else {
	  	t = document.createElement('TABLE'); 
	  	t.setAttribute('border', '0');
	  	t.setAttribute('width', '100%');
  	}
  	return t;
}

// returns the tbody
function createTable(div, rows) {
	var t = buildTable();
	div.appendChild(t);
	
	var tb = document.createElement('tbody');
	t.appendChild(tb);
	
	for (var i = 0; i < rows; i++) {
		var r = document.createElement('tr');
		tb.appendChild(r);
	}
	
	return tb;
}

function buildRow() {
   return document.createElement("TR");
}

function buildCell(colsp, c1, c2, c3, c4, c5, c6) {
	var c;
	if (isIE()) {
	   if (colsp > 1) {
			c = document.createElement("<TD colspan='" + colsp + "'>");
		}
		else if (colsp == 1) {
			c = document.createElement("<TD>");
		}
		else if (colsp == -1) {
			c = document.createElement("<TD align='right'>");
		}
		else if (colsp < -1) {
			c = document.createElement("<TD colspan='" + (-colspan) + "' align='right'>");
		}
	} else {
	  	c = document.createElement('TD'); 
	  	c.setAttribute('colspan', (colsp < 0) ? (-colsp) : colsp);
	  	c.setAttribute('align', (colsp < 0) ? 'right' : 'left');
  	}
  	if (c1) c.appendChild(c1);
  	if (c2) c.appendChild(c2);
  	if (c3) c.appendChild(c3);
  	if (c4) c.appendChild(c4);
  	if (c5) c.appendChild(c5);
  	if (c6) c.appendChild(c6);
  	return c;
}



