var defaultBodyBAckground='#FFFFFF';

function getVisibleBackgroundColor(obj)
{
  if(obj==null) { return defaultBodyBAckground; }
  if(obj.style && obj.style.backgroundColor!='' && obj.style.backgroundColor!='none')
  { return obj.style.backgroundColor; }
  var bgColorByStylesheet=getBackgroundColorFromStyleSheetFor(obj);
  if(bgColorByStylesheet!=null) { return bgColorByStylesheet; }
  if(obj.bgColor && obj.bgColor!='') { return obj.bgColor; }
  return getVisibleBackgroundColor(obj.parentNode);
}
  
function getBackgroundColorFromStyleSheetFor(obj)
{
  var returnColor=null;
  for(i=0 ; i<document.styleSheets.length ; i++)
  {
	var ss=document.styleSheets[i];
	var length=0;
	if(ss.cssRules) { length=ss.cssRules.length; }
	else { length=ss.rules.length; }

	for(j=0 ; j<length ; j++)
	{
	  var cssr=null;
	  if(ss.cssRules) { cssr=ss.cssRules[j]; }
	  else { cssr=ss.rules[j]; }
	  var selector=cssr.selectorText;
	  switch(selector.charAt(0))
	  {
		case '#' :
		 if(obj.id!=null
			&& obj.id!=''
			&& obj.id.toUpperCase()==selector.substr(1).toUpperCase())
		 {
		   if(cssr.style.backgroundColor!=null
			  && cssr.style.backgroundColor!='none'
			  && cssr.style.backgroundColor!='')
		   { returnColor=cssr.style.backgroundColor; }
		  }
		  break;
		case '.' :
		  if(obj.className!=null
			&& obj.className!=''
			&& obj.className.toUpperCase()==selector.substr(1).toUpperCase())
		  {
		    if(cssr.style.backgroundColor!=null
			  && cssr.style.backgroundColor!='none'
			  && cssr.style.backgroundColor!='')
			{ returnColor=cssr.style.backgroundColor; }
		  }
		  break;
		default :
		  if(obj.tagName.toUpperCase()==selector.toUpperCase())
		  {
		    if(cssr.style.backgroundColor!=null
			   && cssr.style.backgroundColor!='none'
			   && cssr.style.backgroundColor!='')
			{ returnColor=cssr.style.backgroundColor; }
		   }
		   break;
	  }
    }
  }
  return returnColor;
}
