/** 
* Accordion namespace - installs under Allstream namespace facade
*/
var AllstreamAccordion = new function()
{
	//public members
	this.click = click;
	this.open = open;
	//private members
	var	ie6 = !window.XMLHttpRequest;
	//	
	function click(liSel)
	{
		var lia = liSel.parentNode.getElementsByTagName("li");
		for (var i=0;i<lia.length;i++)
		{
			var li  = lia[i];
			var clicked = liSel==li;
			if (clicked)
			{//click on open leaf closes it
				if (liSel == liSel.parentNode.openedChild)
				{
					liSel.parentNode.openedChild = null;
					clicked = false;
				}
				else
				{
					liSel.parentNode.openedChild = liSel;
				}
			}
			var hdr = Allstream.firstChildByClass(li,"accordionHeader");
			if (hdr)
			{
				hdr.style.color = clicked ? Allstream.DarkGray : Allstream.MediumGray;
				hdr.style.marginBottom = clicked ? "7px" : "1px";
			}
			var cls = Allstream.firstChildByClass(li,"accordionClosed");
			if (cls)
			{					
				cls.style.display =  clicked ? "none" : "";
			}
			var opn = Allstream.firstChildByClass(li,"accordionOpen");
			if (opn)
			{			
				opn.style.display =  clicked ? "" : "none";
			}
			var pls = Allstream.firstChildByClass(li,"accordionPlus");
			if (pls)
			{
				pls.style.display =  clicked ? "none" : "";
			}
			var bdy = Allstream.firstChildByClass(li,"accordionBody");
			if (bdy)
			{
				var childTables = bdy.getElementsByTagName("TABLE");
				if (childTables.length>0)
				{
					childTables[0].style.display = clicked ? "" : "none";
				}
				
				var fx;
				if (clicked)
				{
					bdy.style.marginBottom = "20px";
					var destHeight = Math.max(40,Allstream.getHeight(bdy));
					fx = new FX(bdy,{'height':{from: 0,to:destHeight, units: 'px'}},
						0.4, 'easeOut');
				}
				else
				{
					bdy.style.marginBottom =  "1px";
					fx = new FX(bdy,{'height': {to:0,units:'px'}}, 0.4, 'easeOut');
				}
				fx.start();
			}
		}
	} 
	function open(parentNode)
	{
		var accs = CSSHelpers.getElementsByClassName(parentNode, "accordion");
		
		if (accs.length>0)
		{
			var aa = accs[0].getElementsByTagName("a");
			if (aa.length>0)
			{
				var clickedLi;
				var toOpen = CSSHelpers.getElementsByClassName(parentNode, 'toOpen');
				if (toOpen.length > 0) {
					clickedLi = toOpen[0];
				} else {
					clickedLi = aa[0].parentNode;
				} 
				
				var a = CSSHelpers.getElementsByClassName(clickedLi, 'accordionBody');
				if (a.length>0)
				{
					var body = a[0];
					if (body)
					{
						if (body.style.display=="none" || body.offsetHeight==0)
							click(clickedLi);
					}
				}
			}
		}
	}
}
//use allstream namespace as a facade
Allstream.accordionClick = AllstreamAccordion.click;
Allstream.accordionOpen = AllstreamAccordion.open;


