function make_rounded_border(div)
{
	if(!div) return;
	var color = getBG(div.parentNode);
	if(color == getBG(div)) return;
	make_rounded_top(div, color);
	make_rounded_bottom(div, color);
}

var H = new Array('A', 'B', 'C', 'D', 'E', 'F');
function digitToHex(d)
{
	if(d < 10) return d;
	return H[d - 10];
}

function byteToHex(b)
{
	var ten = b / 16;
	var remain = b % 16;
	return digitToHex(Math.floor(ten)) + digitToHex(remain) + "";
}

function parseColor(c)
{
	if(!c) return 'FFFFFF';
	if(c == 'white') return 'FFFFFF';
	c = c.replace(/rgb\((.+)\)/, '$1');
	c = c.split(/, /);
	c = byteToHex(c[0]) + byteToHex(c[1]) + byteToHex(c[2]);
	return c;
}

function getBG(elt)
{
	var c = getStyle(elt, 'background-color');
	if(!c)
		c = getStyle(elt, 'backgroundColor');
	if(c == 'transparent' && elt.parentNode)
		return getBG(elt.parentNode);
	return parseColor(c);
}

function gen_img_name(pos, color)
{
	if(color != 'FFFFFF') {
		return "/img/corners/" + color + "-" + pos + ".gif";
	} else {
		return "/img/corners/" + pos + ".gif";
	}
}

function make_rounded_top(div, color)
{
	var top = document.createElement("div");
	var img = document.createElement("img");
	
	img.src = gen_img_name("tl", color);
	img.style.display = "block";
	top.appendChild(img);
    top.style.textAlign = "left";
	top.style.backgroundImage = "url(" + gen_img_name("tr", color) + ")";
	top.style.backgroundRepeat = "no-repeat";
	top.style.backgroundPosition = "top right";
	top.style.height = "15px";
	
	div.insertBefore(top, div.firstChild);
}

function make_rounded_bottom(div, color)
{
	var bottom = document.createElement("div");
	var img = document.createElement("img");
	
	img.src = gen_img_name("bl", color);
	img.style.display = "block";
	bottom.appendChild(img);
    bottom.style.textAlign = "left";
	bottom.style.backgroundImage = "url(" + gen_img_name("br", color) + ")";
	bottom.style.backgroundRepeat = "no-repeat";
	bottom.style.backgroundPosition = "bottom right";
	bottom.style.height = "15px";
	
	div.appendChild(bottom);
}

function getStyle(x,styleProp)
{
	var y = null;
	if (x.currentStyle)
		y = x.currentStyle[styleProp];
	else if (window.getComputedStyle)
		y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);
	return y;
}

function offsetLeft(elt)
{
	var left = elt.offsetLeft;
	while(elt.offsetParent) {
		elt = elt.offsetParent;
		left += elt.offsetLeft;
	}
	return left;
}

