 function changeImage(id,img) {
	var oImg = document.getElementById(id);
	if (oImg) {
		oImg.src = img;
	}
}

function changeStyle(id,styleSelector,value){
	eval("document.getElementById(id).style."+styleSelector+"='"+value+"';");
}

function jsSupportedHTML(html) {
	if (document.getElementById) {
		document.write(html);
	}
}

function getValue(field) {
	var val;
	if (field.type == "text") {
		val = field.value;
	}
	else if (field.type == "select-one") {
		val = field.options[field.options.selectedIndex].value;
	}
	else if (field[0].type == "radio") {
		for (var i = 0; i < field.length; i ++) {
			if (field[i].checked) {
				val = field[i].value;
			}
		}
	}
	return val;
}

function getNumValue(field) {
		return parseFloat(getValue(field));
}

function setValue(field,val) {
	if (field.type == "select-one") {
		for (var v = 0; v < field.options.length; v++) {
			if (field.options[v].value == val) {
				field.selectedIndex = field.options[v].index;
			}
		}
	}
	if (field[0].type == "radio") {
		for (var i = 0; i < field.length; i ++) {
			if (field[i].value == val) {
				field[i].checked = true;
			}
		}
	}
}

function setValueById(id,val){
	if(document.getElementById(id))
		document.getElementById(id).value=val;
}

function zTranslate(theElement, zIndexNew, debug) {
	if (theElement != null) {
		if (zIndexNew=='inFront') {
			theElement.style.zIndex="999";
		} else if (zIndexNew=='behind') {
			theElement.style.zIndex="-999";
		} else if (parseInt(zIndexNew, 10)!=NaN) {
			theElement.style.zIndex=zIndexNew;
		} else {
			return false;
		}
	} else {
		/* error - debug alert message -- COMMENT OUT FOR PRODUCTION!!! */
/*		if (zTranslate.arguments.length==3) {
			alert("bad zTranslate call: "+debug+" & "+zIndexNew);
		} else {
			alert("bad zTranslate call: "+zIndexNew);
		}*/
		return false;
	}
}

function showElement(id) {
	var oDiv = document.getElementById(id);
	if (oDiv) {
		var t = oDiv.tagName;
		oDiv.style.display = (t == 'A' || t == 'SPAN' || t == 'IMG') ? 'inline' : 'block';
	}
}
function showElements() {
	var a = arguments;
	for (var i = 0; i < a.length; i++) {
		if (typeof a[i] == 'string') {
			showElement(a[i]);
		} else {
			for (var j = 0; j < a[i].length; j++) {
				showElements(a[i][j]);
			}
		}
	}
}
function hideElement(id) {
	var oDiv = document.getElementById(id);
	if (oDiv) {
		oDiv.style.display = "none";
	}
}
function hideElements() {
	var a = arguments;
	for (var i = 0; i < a.length; i++) {
		if (typeof a[i] == 'string') {
			hideElement(a[i]);
		} else {
			for (var j = 0; j < a[i].length; j++) {
				hideElements(a[i][j]);
			}
		}
	}
}
function showHideElement(id) {
	var o = document.getElementById(id);
	o.style.display = o.style.display == 'block' ? 'none' : 'block';
	return false;
}

function showOneHideMany(s,h){
//s == the id of the element to show
//h == a string of pipe (|) delimited ids for elements to hide.
	if(arguments.length>2&&arguments[2]==true){
		showElement(s);
		hideElements(h.split('|'));
	}else{
		hideElements(h.split('|'));
		showElement(s);
	}
}

function openElement(id,html) {
	parent.document.getElementById(id).innerHTML = html;
	showElement(id);
} 

function closeElement(id) {
	if (id != "") {
		parent.document.getElementById(id).innerHTML = "";
		hideElement(id);
	}
}

function writeElement(id,html) {
	var oDoc = window.frames[id].document;
	oDoc.open();
	oDoc.write(html);
	oDoc.close();
	showElement(id);
}

function changeCss(sID,sClass) {
	var oEl = document.getElementById(sID);
	if (oEl) {
		oEl.className = sClass;
	}
}

function getElementPosition(elem) {
    var offsetTrail = elem;
    var offsetLeft = 0;
    var offsetTop = 0;
    while (offsetTrail) {
        offsetLeft += offsetTrail.offsetLeft;
        offsetTop += offsetTrail.offsetTop;
        offsetTrail = offsetTrail.offsetParent;
    }
    if (navigator.userAgent.indexOf("Mac") != -1 &&
        typeof document.body.leftMargin != "undefined") {
        offsetLeft += document.body.leftMargin;
        offsetTop += document.body.topMargin;
    }
    return {left:offsetLeft, top:offsetTop};
}

function setElementPosition(layerEl,fixedEl,xOffset,yOffset) {
    layerEl.style.position = "absolute";
    layerEl.style.top = parseFloat(getElementPosition(fixedEl).top + yOffset) + "px";
    layerEl.style.left = parseFloat(getElementPosition(fixedEl).left + xOffset) + "px";
}
function limitChecks(theChecks, limit){
	/*theChecks should be an array of the ids of the checkboxes to limit
	limit is the most that should be checked*/
	var numChecked = 0;
	for(i in theChecks){/*count number of checked boxes*/
		if(document.getElementById(theChecks[i]).checked == true){
			numChecked++;
		}
	}
	for(i in theChecks){/*enable or disable*/
		if (numChecked >= limit){
			if(document.getElementById(theChecks[i]).checked == false){
				document.getElementById(theChecks[i]).disabled = true;
			}
		} else {
			document.getElementById(theChecks[i]).disabled = false;
		}
	}
}

