// библиотечка для визуальной работы с объектами

// позиционирование объекта
function viewMoveTo(o, x, y) {
	var objs = objsTakeStyle(o);

	if (objs) {
		if (isCSS) {
			var unit = (typeof(objs.left) == "string") ? "px" : 0;
			if (objs.left) { objs.left = x + unit; }
			if (objs.top ) { objs.top  = y + unit; }
		} else
		if (isNN4) {
			objs.moveTo(x, y);
		}
	}
}

// установка размеров объекта
function viewSizeTo(o, w, h) {
	var objs = objsTakeStyle(o);

	if (objs) {
		if (isCSS) {
			var unit = (typeof objs.width == "string") ? "px" : 0;
			objs.width  = w + unit;
			objs.height = h + unit;
		}
	}
}

// сдвиг объекта на заданный вектор
function viewMoveBy(o, dX, dY) {
	var objs = objsTakeStyle(o);

	if (objs) {
		if (isCSS) {
			var unit = (typeof objs.left == "string") ? "px" : 0;
			objs.left = objsTakeLeft(o) + dX + unit;
			objs.top  = objsTakeTop(o)  + dY + unit;
		} else
		if (isNN4) {
			objs.moveBy(x, y);
		}
	}
}

// установка zIndex обхекта
function viewMakeZIdx(o, zI) {
	var objs = objsTakeStyle(o);

	if (objs) {	objs.zIndex = zI; }
}

// установка видимости объекта
function viewObjsShow(o) {
	var objs = objsTakeStyle(o);

	if (objs) {	objs.visibility = "visible"; }
}

// скрытие объекта
function viewObjsHide(o) {
	var objs = objsTakeStyle(o);

	if (objs) {	objs.visibility = "hidden"; }
}

// центрирование одного объекта относительно другого
function viewCntrOnElem(baseID, elemID) {
	if (isW3C) {
		var base = document.getElementById(baseID);
		var elem = document.getElementById(elemID);

		var offR = baseElem;
		var offL = 0;
		var offT = 0;

		while (offR) {
			offL += offR.offsetLeft;
			offT += offR.offsetTop;
			offR  = offR.offsetParent;
		}

		if (navigator.userAgent.indexOf("Mac") != -1 && typeof document.body.leftMargin != "undefined") {
			offL += document.body.leftMargin;
			offT += document.body.topMargin;
		}

		elem.style.left = offL + parseInt(base.offsetWidth  / 2) - parseInt(elem.offsetWidth  / 2) + "px";
		elem.style.top  = offT + parseInt(base.offsetHeight / 2) - parseInt(elem.offsetHeight / 2) + "px";
	}
}

// центрирование объекта относительно окна браузера
function viewCntrOnWindow(elemID) {
	var objs = objsTakeThis(elemID);
	var scrX = 0;
	var scrY = 0;

	if (document.body && typeof document.body.scrollTop != "undefined") {
		scrX += document.body.scrollLeft;
		scrY += document.body.scrollTop;
		if (document.body.parentNode && typeof document.body.parentNode.scrollTop != "undefined") {
			scrX += document.body.parentNode.scrollLeft;
			scrY += document.body.parentNode.scrollTop;
		}
	} else
	if (typeof window.pageXOffset != "undefined") {
		scrX += window.pageXOffset;
		scrY += window.pageYOffset;
	}

	var x = Math.round((objsTakeInsideWidth()  / 2) - (objsTakeWidth(elemID)  / 2)) + scrX;
	var y = Math.round((objsTakeInsideHeight() / 2) - (objsTakeHeight(elemID) / 2)) + scrY;

	viewMoveTo(objs, x, y);
}

