﻿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;
	}
}

function expandCollapseIt(img, id, expandImg, collapseImg) {
	var objStyle = getStyleObject(id);
	var obj = getObject(id);
	if (objStyle) {
		toggleLayer(id);
		if (objStyle.display == 'none') {
			img.src = expandImg;
		}
		else {
			img.src = collapseImg;
		}
	}
}

function getObjectLeft(id) {
	var obj = null, xPos = 0
	obj = getObject(id);

	if (obj.offsetParent) {
		xPos = obj.offsetLeft
		while (obj = obj.offsetParent) {
			xPos += obj.offsetLeft
		}
	}
	return xPos;
}

function getObjectTop(id) {
	var obj = null, yPos = 0
	obj = getObject(id);
				
	if (obj) {
		if (obj.offsetParent) {
			yPos = obj.offsetTop
			while (obj = obj.offsetParent) {
				yPos += obj.offsetTop
			}
		}
	}
	return yPos;
}

function getIeBody(){
	return (document.compatMode != "BackCompat") ? document.documentElement : document.body;
}

function showMask() {
	var ie = document.all;
	var other = document.getElementById && !document.all;

	var mask = getStyleObject('mask');
	var body = getObject('body');
	var containerHeight = 0, containerWidth = 0
	var pageYOffset = other ? 0 : parseInt(getIeBody().scrollTop);
	var winHeight = other ? window.innerHeight : getIeBody().clientHeight + pageYOffset;
	var winWidth = other ? window.innerWidth : getIeBody().scrollLeft + getIeBody().clientWidth;
	if (body) {
		containerHeight = body.offsetHeight + (other ? 11 : 0);
		containerWidth = body.offsetWidth;
	}
//	alert('window - height = ' + winHeight + ' - width = ' + winWidth + ' - container - height = ' + containerHeight + ' - width = ' + containerWidth);
	if (mask) {
		mask.height = (winHeight > containerHeight ? winHeight : containerHeight) + "px";
		mask.width = (winWidth > containerWidth ? winWidth : containerWidth) + "px";
		switchLayer2('mask', 1);
	}
}

function hideMask() {
	var mask = getStyleObject('mask');
	if (mask) {
		mask.height = '';
		mask.width = '';
		switchLayer2('mask', 0);
	}
}

function resizeMask() {
	var mask = getStyleObject('mask');
	if (mask.visibility == 'visible') {
		showMask();
	}
}

window.onresize = function() {resizeMask()};