//	Copyright © Coretomic, 2005

var curScreenDim;
var idTimeOut;

function updateTemplates() {
	if (templates) {
		for (var i = 0; i < templates.length; i++) {
			checkAppearance(templates[i]);
		}
	}
	if (is.opera) {
		idTimeOut = setTimeout("isScreenDimChange()", 1000);
	}
}

function checkAppearance(baseName) {
	var i = 0;
	var j = 0;
	var blockId = baseName + "-" + i + "-" + j;
	var elt = getElt(blockId);
	while (elt) {
		var rowWidth = 0;
		var disappearWidth = 0;
		var cellsWidth = new Array();
		while (elt) {
			if ((elt.className != 'canDisappear' || !isEmpty(blockId)) && elt.width.indexOf('%') != -1) {
				rowWidth += 1 * elt.width.replace('%', '');
				cellsWidth[elt.id] = getEltWidth(elt);
			}
			else {
				disappearWidth += getEltWidth(elt);
			}
			j++;
			blockId = baseName + "-" + i + "-" + j;
			elt = getElt(blockId);
		}
		j = 0;
		blockId = baseName + "-" + i + "-" + j;
		elt = getElt(blockId);
		while (elt) {
			if (elt.className == 'canDisappear' && isEmpty(blockId)) {
//				elt.className = 'disappear';
				elt.style.display = 'none';
//				setEltWidth(elt, 0);
//				elt.width = '0%';
			}
			else if (elt.width.indexOf('%') != -1) {
				var width = 1 * elt.width.replace('%', '') / rowWidth * 100;
				setEltWidth(elt, cellsWidth[elt.id] + disappearWidth * width / 100);
				elt.width = width + '%';
			}

			j++;
			blockId = baseName + "-" + i + "-" + j;
			elt = getElt(blockId);
		}
/*
		j = 0;
		blockId = baseName + "-" + i + "-" + j;
		elt = getElt(blockId);
		while (elt) {
			if (elt.className != 'disappear' && elt.width.indexOf('%') != -1) {
				var width = 1 * elt.width.replace('%', '') / rowWidth * 100;
				setEltWidth(elt, elt.clientWidth + disappearWidth * width / 100);
				elt.width = width + '%';
				//fnShowProps(elt, elt.id);
				alert(elt.id);
				alert(getEltWidth(elt));
				alert(elt.className);
				alert(elt.width);
			}
			j++;
			blockId = baseName + "-" + i + "-" + j;
			elt = getElt(blockId);
		}
*/
		i++;
		j = 0;
		blockId = baseName + "-" + i + "-" + j;
		elt = getElt(blockId);
	}
}

function isEmpty(baseName) {
	var i = 0;
	var j = 0;
	var blockId = baseName + "-" + i + "-" + j;
	var elt = getElt(blockId);
	var baseElt = getElt(baseName);
	if (!elt) {
		var childElement = baseElt.firstChild;
		if (baseElt.innerHTML.length == 0 || (childElement && childElement.tagName == 'DIV' && childElement.className == 'canDisappear' && childElement.innerHTML.length == 0)) {
			return true;
		}
		else {
			return false;
		}
	}
	else {
		var empty = true;
		while (elt) {
			while (elt) {
				empty &= isEmpty(blockId);
				j++;
				blockId = baseName + "-" + i + "-" + j;
				elt = getElt(blockId);
			}
			i++;
			j = 0;
			blockId = baseName + "-" + i + "-" + j;
			elt = getElt(blockId);
		}
		return empty;
	}
}

function isScreenDimChange() {
	tempScreenDim = getCurrentWinWidth();
	clearTimeout(idTimeOut);
	if (curScreenDim != tempScreenDim) {
		curScreenDim = tempScreenDim;
		idTimeOut = setTimeout("checkAppearance('t')", 1000);
	}
	else
		idTimeOut = setTimeout("isScreenDimChange()", 1000);
}

heightBlocks = new Array();
graphicalBlocks = new Array();
grBorderPos = 'in';
realBiggestHeight = 0;
winWidth = 0;
countPlace = 0;

function fnShowProps(obj, objName) {
	var result = "";
	j = 0;
	for (var i in obj) {// обращение к свойствам объекта по индексу
		//alert(objName + "." + i + " = " + obj[i]);
		result += objName + "." + i + " = " + obj[i] + " ";
		j++;
		if (j == 5) {
			j = 0;
			result += "\n";
		}
	}
	alert(result);
}

function placeBlocks() {
	if (winWidth != getCurrentWinWidth()) {
		realBiggestHeight = 0;
		winWidth = getCurrentWinWidth();
	}
	setHeight();
	if (countPlace == 1) {
		setHeight();
	}
	setGrBorders();
}

function setHeight() {
	biggestHeight = 0;
	minBottomElt = 0;
	for (i = 0; i < heightBlocks.length; i++) {
		elt = getElt(heightBlocks[i]);
		if (elt) {
//				alert(elt.id);
			height = getEltFullHeight(elt);
//				alert('height = ' + height);
			topElt = getEltPageTop(elt);
//				alert('topElt = ' + topElt);
			bottomElt = topElt + height;
//				alert('bottomElt = ' + bottomElt);
			if (i == 0) {
				biggestHeight = bottomElt;
				minBottomElt = bottomElt;
			}
			if (topElt < minBottomElt) {
				if (bottomElt > biggestHeight) {
					biggestHeight = bottomElt;
//						alert('biggestHeight = ' + biggestHeight);
				}
				if (bottomElt < minBottomElt) {
					minBottomElt = bottomElt;
				}
			}
		}
	}
	if (realBiggestHeight == 0) {
		realBiggestHeight = biggestHeight;
	}
//		alert('set');
	for (i = 0; i < heightBlocks.length; i++) {
		eltName = heightBlocks[i];
		lastIndex = heightBlocks[i].lastIndexOf('img');
		if (lastIndex == heightBlocks[i].length - 3) {
			eltName = eltName.substring(0, lastIndex);
		}
		elt = getElt(eltName);
		if (elt) {
//				alert(elt.id);
			topElt = getEltPageTop(elt);
//				alert('topElt = ' + topElt);

			if (topElt < minBottomElt) {
				heightElt = realBiggestHeight - topElt;
//					alert('heightElt = ' + heightElt);
				realHeightElt = getEltFullHeight(elt);
//					alert('realHeightElt = ' + realHeightElt);
//					alert(realHeightElt == heightElt);
				if (realHeightElt > heightElt) {
					setEltHeight(elt, 2 * heightElt - realHeightElt);
//						alert('setEltHeight (realHeightElt > ) = ' + (2 * heightElt - realHeightElt));
				}
				if (heightElt < 0) {
					heightElt = 0;
				}
				if (heightElt > realHeightElt) {
//					alert('setEltHeight (heightElt > ) = ' + heightElt);
					setEltHeight(elt, heightElt);
				}
			}
		}
	}
	countPlace++;
}

function setGrBorders() {
	for (i = 0; i < graphicalBlocks.length; i++) {
		placeBorders(graphicalBlocks[i], grBorderPos);
	}
}

function placeBorders(eltId, side) {
	if (is.gecko) {
		isGesko = 1;
	}
	else {
		isGesko = 0;
	}
	baseElt = getElt(eltId);
	if (baseElt) {
		widthBaseElt = getEltWidth(baseElt);
		topBaseElt = getEltPageTop(baseElt);
		heightBaseElt = realBiggestHeight - topBaseElt;
		leftBaseElt = getEltPageLeft(baseElt);
	// top
		// top left
		borEltId = eltId + '-tl';
		borderEltTL = getElt(borEltId);
		if (borderEltTL) {
//			borderEltTL.style.display = 'block';
			showElt(borderEltTL);
			if (side == 'in') {
				topBorElt = topBaseElt + 1 + isGesko * 1;
				leftBorElt = leftBaseElt + 1;
				moveEltTo(borderEltTL, leftBorElt, topBorElt);
			}
			else if (side == 'out') {
				topBorElt = topBaseElt - getEltHeight(borderEltTL) ;
				leftBorElt = leftBaseElt - getEltWidth(borderEltTL) + 1;
				moveEltTo(borderEltTL, leftBorElt, topBorElt);
			}
		}

		// top right
		borEltId = eltId + '-tr';
		borderEltTR = getElt(borEltId);
		if (borderEltTR) {
//			borderEltTR.style.display = 'block';
			showElt(borderEltTR);
			if (side == 'in') {
				topBorElt = topBaseElt + 1 + isGesko * 1;
				leftBorElt = leftBaseElt + widthBaseElt - getEltWidth(borderEltTR) + 1;
				moveEltTo(borderEltTR, leftBorElt, topBorElt);
			}
			else if (side == 'out') {
				topBorElt = topBaseElt - getEltHeight(borderEltTR) + 1;
				leftBorElt = leftBaseElt + widthBaseElt;
				moveEltTo(borderEltTR, leftBorElt, topBorElt);
			}
		}

		// top center
		borEltId = eltId + '-tc';
		borderEltTC = getElt(borEltId);
		if (borderEltTC) {
//			borderEltTC.style.display = 'block';
			showElt(borderEltTC);
			if (side == 'in') {
				widthElt = widthBaseElt - getEltWidth(borderEltTL) - getEltWidth(borderEltTR);
				if (widthElt < 0) widthElt = 0;
				setEltWidth(borderEltTC, widthElt);
				topBorElt = topBaseElt + isGesko * 1;
				leftBorElt = leftBaseElt + getEltWidth(borderEltTL);
				moveEltTo(borderEltTC, leftBorElt, topBorElt);
			}
			else if (side == 'out') {
				setEltWidth(borderEltTC, widthBaseElt);
				topBorElt = topBaseElt - getEltHeight(borderEltTC) + 1;
				leftBorElt = leftBaseElt;
				moveEltTo(borderEltTC, leftBorElt, topBorElt);
			}
		}

	// bottom
		// bottom left
		borEltId = eltId + '-bl';
		borderEltBL = getElt(borEltId);
		if (borderEltBL) {
//			borderEltBL.style.display = 'block';
			showElt(borderEltBL);
			if (side == 'in') {
				topBorElt = topBaseElt + heightBaseElt - getEltHeight(borderEltBL) + 1 + isGesko * 1;
				leftBorElt = leftBaseElt + 1;
				moveEltTo(borderEltBL, leftBorElt, topBorElt);
			}
			else if (side == 'out') {
				topBorElt = topBaseElt + heightBaseElt + 1;
				leftBorElt = leftBaseElt - getEltWidth(borderEltBL) + 1;
				moveEltTo(borderEltBL, leftBorElt, topBorElt);
			}
		}

		// botom right
		borEltId = eltId + '-br';
		borderEltBR = getElt(borEltId);
		if (borderEltBR) {
//			borderEltBR.style.display = 'block';
			showElt(borderEltBR);
			if (side == 'in') {
				topBorElt = topBaseElt + heightBaseElt - getEltHeight(borderEltBR) + 1 + isGesko * 1;
				leftBorElt = leftBaseElt + widthBaseElt - getEltWidth(borderEltBR) + 1;
				moveEltTo(borderEltBR, leftBorElt, topBorElt);
			}
			else if (side == 'out') {
				topBorElt = topBaseElt + heightBaseElt + 1;
				leftBorElt = leftBaseElt + widthBaseElt;
				moveEltTo(borderEltBR, leftBorElt, topBorElt);
			}
		}

		// bottom center
		borEltId = eltId + '-bc';
		borderEltBC = getElt(borEltId);
		if (borderEltBC) {
//			borderEltBC.style.display = 'block';
			showElt(borderEltBC);
			if (side == 'in') {
				widthElt = widthBaseElt - getEltWidth(borderEltBL) - getEltWidth(borderEltBR);
				if (widthElt < 0) widthElt = 0;
				setEltWidth(borderEltBC, widthElt);
				topBorElt = topBaseElt + heightBaseElt - getEltHeight(borderEltBC) + 1 + isGesko * 1;
				leftBorElt = leftBaseElt + getEltWidth(borderEltBL);
				moveEltTo(borderEltBC, leftBorElt, topBorElt);
			}
			else if (side == 'out') {
				setEltWidth(borderEltBC, widthBaseElt);
				topBorElt = topBaseElt + heightBaseElt + 1;
				leftBorElt = leftBaseElt;
				moveEltTo(borderEltBC, leftBorElt, topBorElt);
			}
		}

	// center
		// center left
		borEltId = eltId + '-cl';
		borderEltCL = getElt(borEltId);
		if (borderEltCL) {
//			borderEltCL.style.display = 'block';
			showElt(borderEltCL);
			if (side == 'in') {
				heightElt = heightBaseElt - getEltHeight(borderEltTL) - getEltHeight(borderEltBL) + 11;
				if (heightElt < 0) {
					heightElt = 0;
				}
				setEltHeight(borderEltCL, heightElt);
				topBorElt = topBaseElt + getEltHeight(borderEltTL) + 1 + isGesko * 1;
				leftBorElt = leftBaseElt + 1;
				moveEltTo(borderEltCL, leftBorElt, topBorElt);
			}
			else if (side == 'out') {
				setEltHeight(borderEltCL, heightBaseElt);
				topBorElt = topBaseElt + 1;
				leftBorElt = leftBaseElt - getEltWidth(borderEltCL) + 1;
				moveEltTo(borderEltCL, leftBorElt, topBorElt);
			}
		}

		// center right
		borEltId = eltId + '-cr';
		borderEltCR = getElt(borEltId);
		if (borderEltCR) {
//			borderEltCR.style.display = 'block';
			showElt(borderEltCR);
			if (side == 'in') {
				heightElt = heightBaseElt - getEltHeight(borderEltTR) - getEltHeight(borderEltBR) + 11;
				if (heightElt < 0) {
					heightElt = 0;
				}
				setEltHeight(borderEltCR, heightElt);
				topBorElt = topBaseElt + getEltHeight(borderEltTR) + 1 + isGesko * 1;
				leftBorElt = leftBaseElt + widthBaseElt - getEltWidth(borderEltCR) + 1;
				moveEltTo(borderEltCR, leftBorElt, topBorElt);
			}
			else if (side == 'out') {
				setEltHeight(borderEltCR, heightBaseElt);
				topBorElt = topBaseElt + 1;
				leftBorElt = leftBaseElt + widthBaseElt;
				moveEltTo(borderEltCR, leftBorElt, topBorElt);
			}
		}
	}
}
