
var d;

function blocks_getHeight(el) 
{
	if (!el) 
		return "1em";
	//d.innerHTML = d.innerHTML + 'Point 1.1<br>';
	if (el.style.lineHeight) 
		return el.style.lineHeight;
	//d.innerHTML = d.innerHTML + 'Point 1.2<br>';
	if (document.defaultView) 
		return document.defaultView.getComputedStyle(el, null).getPropertyValue('line-height');
	//d.innerHTML = d.innerHTML + 'Point 1.3<br>';
	if (el.currentStyle.lineHeight) 
		return el.currentStyle.lineHeight;
	//d.innerHTML = d.innerHTML + 'Point 1.4<br>';
	return "1em";
}

function blocks_getSize(el) 
{
	if (!el) 
		return "1em";
	if (el.style.fontSize) 
		return el.style.fontSize;
	if (document.defaultView) 
		return document.defaultView.getComputedStyle(el, null).getPropertyValue('font-size');
	if (el.currentStyle.fontSize) 
		return el.currentStyle.fontSize;
	return "1em";
}

function blocks_getSuffix(s) {
	var suf = s.substring(s.length-2, s.length);
	if ((suf == 'px') || (suf == 'pt') || (suf == 'em'))
		return suf;
	else
		return 'em'
		}

function blocks_resize(e, deep) {
	if (!e) return;
	if ((e.nodeType == 1) && (e.tagName != 'BR')) {
		fs = blocks_getSize(e);
		//d.innerHTML = d.innerHTML + 'Point 3.2<br>';
		lh = blocks_getHeight(e);
		if (lh == 'normal')
			lh = '1em';
		//d.innerHTML = d.innerHTML + 'Point 3.3<br>';
		//d.innerHTML = d.innerHTML + 'fontSize(' + fs + '): ' + e.style.fontSize + '<br>';
		//d.innerHTML = d.innerHTML + 'lineHeight(' + lh + '): ' + e.style.lineHeight + '<br>';
		//d.innerHTML = d.innerHTML + 'Point 3.4<br>';
		
		var fss = blocks_getSuffix(fs);
		var fsf = parseFloat(fs);
		
		if (
			((fss == 'em') && (fsf > 0.5)) ||
			((fss == 'px') && (fsf > 5)) ||
			((fss == 'pt') && (fsf > 5))) {
			
			e.style.fontSize   = "" + (parseFloat(fs) * 0.90) + blocks_getSuffix(fs);
			//d.innerHTML = d.innerHTML + 'Point 3.5<br>';
			e.style.lineHeight = "" + (parseFloat(lh) * 0.90) + blocks_getSuffix(lh);
			
			//d.innerHTML = d.innerHTML + 'fontSize(' + fs + '): ' + e.style.fontSize + '<br>';
			//d.innerHTML = d.innerHTML + 'lineHeight(' + lh + '): ' + e.style.lineHeight + '<br>';
			
		}
		
		//d.innerHTML = d.innerHTML + 'Point 3.6<br>';
		
		
	}    
	blocks_resize(e.firstChild, 1);
	if (deep == 1)
		blocks_resize(e.nextSibling); 
}

function blocks_fixbox(ids)
{
	
	//d = document.getElementById("id0_inside");
	//d.innerHTML = d.innerHTML + 'Point 1<br>';
	var index = 0;
	while (index < ids.length) {
		var id = ids[index];
		if (id == '')
			return;
		var outside = document.getElementById(id + "_outside");
		var inside  = document.getElementById(id + "_inside");
		if ((!outside) && (!inside)) return;	
		var outsideHeight = parseFloat(outside.style.height);
		var insideHeight = inside.offsetHeight;
		if ((!outsideHeight) && (!insideHeight)) return;
		var count = 0;
		//d.innerHTML = d.innerHTML + 'Point 2<br>';
		while ((insideHeight > outsideHeight) && (count < 5)) {
			blocks_resize(inside, 0);
			insideHeight = inside.offsetHeight;
			//d.innerHTML = d.innerHTML + 'insideHeight: ' + insideHeight + '<br>';
			count++;
		}
		//d.innerHTML = d.innerHTML + 'Point 3<br>';
		index++;
	}
}

function blocks_growparent (id)
{
	var maxsize = 0;
	var p = document.getElementById(id);
	var e = p.firstChild;
	while (e) {
		b = e.offsetTop + e.offsetHeight;
		if (maxsize < b) {
			maxsize = b;
		}
		e = e.nextSibling;
	}
	var h = parseFloat(p.style.height);
	if (h < maxsize) {
		p.style.height = maxsize + 'px';
	}
}
