function getObjectPosition(id, name) {
	var obj = null, pos = null;
	name = name.toLowerCase();
	obj = getObject(id);
	if (obj) pos = 0;
	while (obj) {
		switch (name) {
			case 'left' :
				pos += obj.offsetLeft;
				break;
			case 'top' :
				pos += obj.offsetTop;
				break;
		}
		obj = obj.offsetParent;
	}
	return pos;
}

function scrollToObject(id) {
	var obj = null, left = 0, top = 0;
	obj = getObject(id);
	if (obj) {
		left = getObjectPosition(id, 'left');
		top = getObjectPosition(id, 'top');
		if (left != null && top != null) {
			window.scrollTo(obj.offsetLeft, obj.offsetTop);
		}
	}
}

function switchLayer(div_id, visibility) {
	var style_sheet = getStyleObject(div_id);
	if (style_sheet) {
		if (visibility == 0)
			changeObjectVisibility(div_id, "hidden");
		else
			changeObjectVisibility(div_id, "visible");
	}
}

function switchLayer2(div_id, visibility) {
	var style_sheet = getStyleObject(div_id);
	if (style_sheet) {
		if (visibility == 0) {
			changeObjectVisibility(div_id, "hidden");
			changeObjectDisplay(div_id, "none");
		}
		else {
			changeObjectVisibility(div_id, "visible");
			changeObjectDisplay(div_id, "block");
		}
	}
}

function switchAllLayers(id, visibility, handleDisplayStyle) {
	if (handleDisplayStyle == null) handleDisplayStyle = true;
	if (document.getElementsByName && document.getElementsByName(id)) {
		var ids = document.getElementsByName(id);
		for(var i=0; i < ids.length; i++) {
			if (visibility == 0) {
				ids[i].style.visibility = "hidden";
				if (handleDisplayStyle) {
					ids[i].style.display = "none";
				}
			}
			else {
				ids[i].style.visibility = "visible";
				if (handleDisplayStyle) {
					ids[i].style.display = "block";
				}
			}
		}
	}
}

function getStyleObject(objectId) {
	// checkW3C DOM, then MSIE 4, then NN 4.
	if(document.getElementById && document.getElementById(objectId)) {
		return document.getElementById(objectId).style;
	}
	else if (document.all && document.all(objectId)) {  
		return document.all(objectId).style;
	} 
	else if (document.layers && document.layers[objectId]) { 
		return document.layers[objectId];
	}
	else {
		return false;
	}
}

function changeObjectVisibility(objectId, newVisibility)
{
	// first get the object's stylesheet
	var styleObject = getStyleObject(objectId);

	// then if we find a stylesheet, set its visibility
	// as requested
	if (styleObject) {
		styleObject.visibility = newVisibility;
		return true;
	}
	else {
		return false;
	}
}

function changeObjectDisplay(objectId, newDisplay)
{
	// first get the object's stylesheet
	var styleObject = getStyleObject(objectId);

	// then if we find a stylesheet, set its display
	// as requested
	if (styleObject) {
		styleObject.display = newDisplay;
		return true;
	}
	else {
		return false;
	}
}

function toggleLayer(layerName) { 
	// first get the object's stylesheet
	var styleObject = getStyleObject(layerName);

	if (styleObject) {
		if (styleObject.display == 'none') {
			styleObject.display = 'block';
			styleObject.visibility = 'visible';
		}
		else {
			styleObject.display = 'none';
			styleObject.visibility = 'hidden';
		}
		return true;
	}
	else {
		return false;
	}
}

function getObject(objectId) {
	// checkW3C DOM, then MSIE 4, then NN 4.
	if(document.getElementById && document.getElementById(objectId)) {
		return document.getElementById(objectId);
	}
	else if (document.all && document.all(objectId)) {  
		return document.all(objectId);
	} 
	else if (document.layers && document.layers[objectId]) { 
		return document.layers[objectId];
	}
	else {
		return false;
	}
}
