/******************************************************************************
<tr class="moreinfo" evalinfo moreinfo="formatInfo(unformatted_content);"> //formatInfo returns html string
<tr class="moreinfo" moreinfo="html_content_string">
 *****************************************************************************/
var moreInfoInitialized = false;
var moreInfoSep = null;
function initMoreInfo()
{
	if(!document.getElementById)return;
	var head = document.getElementsByTagName("head")[0];
	if(!head)return;
	var css = document.createElement('link');
	css.type = 'text/css';
	css.rel = 'stylesheet';
	css.href = '/css/site/moreinfo.css';
	//cssNode.media = 'screen';
	head.appendChild(css);
	var tr = document.getElementsByTagName("TR");
	for(var i=0;i<tr.length;i++)
	{
		var tmp=" "+tr[i].className+" ";
		if(tmp.indexOf(" moreinfo ")>=0)
		{
			for(var j=0; j<tr[i].cells.length;j++)
			{
				tr[i].cells[j].onclick=function(){toggleInfo(this);};
			}
			if(j>0) { tr[i].cells[0].className += " moreinfoicon"; };
		}
	}
	tmp = document.createElement("TD");
	tmp.className = "moreinfo_sep";
	tmp.innerHTML = "&nbsp;";
	moreInfoSep = document.createElement("TR");
	moreInfoSep.appendChild(tmp);
	moreInfoSep.cell = tmp;
	moreInfoInitialized = true;
}
if(window.addEventListener){window.addEventListener('load',initMoreInfo,false);}else if(window.attachEvent){window.attachEvent('onload',initMoreInfo);}
function smoothV(el)
{
	var cH = parseInt(el.style.height);
	var tH = (el.mode=="open")?parseInt(el.trueHeight):1;
	var diff = (el.mode=="open")?tH-cH:cH-tH;
	if(diff>el.step)
	{
		el.style.height = (el.mode=="open"?cH+el.step:cH-el.step)+"px";
		if(el.transtimer)clearTimeout(el.transtimer);
		el.transtimer=setTimeout(function(){smoothV(el)}, 25);
	}
	else
	{
		el.style.height = tH+"px";
		if(el.mode!="open")
		{
			el.inforow.parentNode.removeChild(el.inforow);
			el.sep.parentNode.removeChild(el.sep);
		}
	}
}
function toggleInfo(oldcell)
{
	if(!moreInfoInitialized)return;
	var oldrow = oldcell.parentNode;
	var tbody = oldrow.parentNode;
	oldcell = oldrow.cells[0];
	oldrow.className = oldrow.className.replace(/(?:^| )moreinfoopen?(?=$| )/g,"");
	if(oldrow.infodiv)
	{
		if (oldrow.infodiv.mode=="open")
		{
			oldrow.infodiv.mode = "close";
			smoothV(oldrow.infodiv);
			return;
		}
		else
		{
			oldrow.infodiv.mode = "open";
			oldrow.className += " moreinfoopen";
			if(oldrow==tbody.lastChild)
			{
				tbody.appendChild(oldrow.infodiv.inforow);
				tbody.appendChild(oldrow.infodiv.sep);
			}
			else
			{
				tbody.insertBefore(oldrow.infodiv.sep,oldrow.nextSibling);
				tbody.insertBefore(oldrow.infodiv.inforow,oldrow.nextSibling);
			}
			smoothV(oldrow.infodiv);
			return;
		}
	}
	var info = oldrow.getAttribute("moreinfo");
	if (!info) return;
	oldrow.className += " moreinfoopen";
	info = (oldrow.getAttribute("evalinfo")||oldrow.getAttribute("evalinfo")=="")?eval(info):info;
	var table = tbody.parentNode;
	var newrow = document.createElement("TR");
	var newcell = document.createElement("TD");
	var newdiv = document.createElement("DIV");
	newrow.appendChild(newcell);
	newcell.colSpan = oldrow.cells.length;
	newcell.className = "moreinfo";
	newdiv.innerHTML = info;

	// measure height
	newdiv.style.position = "absolute";
	newdiv.style.top = "0px";
	newdiv.style.left = "-"+(parseInt(table.offsetWidth)*2)+"px";
	newdiv.style.width = table.offsetWidth+"px";
	document.body.appendChild(newdiv);
	newdiv.trueHeight = newdiv.offsetHeight;
	newcell.appendChild(newdiv);
	newdiv.style.position = "static";
	newdiv.style.top = "auto";
	newdiv.style.left = "auto";
	newdiv.style.width = "auto";

	newdiv.style.overflow = "hidden";
	newdiv.style.height = "1px";
	newdiv.sep = moreInfoSep.cloneNode(true);
	newdiv.sep.firstChild.colSpan = newcell.colSpan;
	if(oldrow==tbody.lastChild)
	{
		tbody.appendChild(newrow);
		tbody.appendChild(newdiv.sep);
	}
	else
	{
		tbody.insertBefore(newdiv.sep,oldrow.nextSibling);
		tbody.insertBefore(newrow,oldrow.nextSibling);
	}
	oldrow.infodiv = newdiv;
	newdiv.inforow = newrow;
	newdiv.iconcell = oldcell;
	newdiv.step = 20;
	newdiv.mode = "open";
	smoothV(newdiv);
}