// ************************************************************
// 						Accordion 1.0
//				Base Class Library version 1.2
// ============================================================
// Name: Accordion
// Definition: Accordion Component
// Version: 1.0
// Autor: Neo Consulting
// ************************************************************

var AccordionItems = new Array();
var AccordionSubItems = new Array();
var AccordionStyles = new Array();

function Accordion()
{
	
}

RenderCssStyles = function(_classes)
{
	document.writeln("<style type=\"text/css\" media=\"all\">");
	document.writeln("<!--");
	for(k = 0; k < _classes.length; k++)
	{
		WriteCssClass(_classes[k].name, _classes[k].properties, _classes[k].values);	
	}
	document.writeln("//-->");
	document.writeln("</style>");
}

WriteCssClass = function(_clsname, _properties, _values)
{
	document.writeln("." + _clsname + " {");
	for(j = 0; j < _properties.length; j++)
	{
		document.writeln(_properties[j] + ":" + _values[j] + ";")
	}
	document.writeln("}")
	
}

RenderAccordionItem = function(_id, _label, _action, _rollover, _rollout)
{
	document.writeln("<div id=\"" + _id + "\" onClick=\"" + _action + "\" onMouseOver=\"" + _rollover + "\" onMouseOut=\"" + _rollout + "\" class=\"accordionItemRollOut\">");
	document.writeln("<table class=\"accordionItemTableHeight\"><tr><td><img src=\"images/img_bullet_blanco.gif\" class=\"accordionItemBullet\" align=\"absmiddle\"></td><td class=\"accordionItemText\"><span>" + _label + "</span></td></tr></table>");
	document.writeln("</div>");
}

RenderAccordionSubItem = function(_id, _text, _action, _rollover, _rollout)
{
	document.writeln("<div id=\"" + _id+ "\" onClick=\"" + _action + "\" onMouseOver=\"" + _rollover + "\" onMouseOut=\"" + _rollout + "\" class=\"accordionSubItemRollOut\">");
	document.writeln("<table class=\"accordionSubItemTableHeight\"><tr><td><img src=\"images/img_bullet_gray.gif\" class=\"accordionSubItemBullet\" align=\"absmiddle\"></td><td class=\"accordionSubItemText\"><span>" + _text + "</span></td></tr></table>");
	document.writeln("</div>");
}

RenderAccordionSpacer = function(_index)
{
	document.writeln("<div id=\"accordionSpacer_" + _index + "\" class=\"accordionSpacer\"><img src=\"images/spacer.gif\" width=\"1\" height=\"1\"></div>")
}

CollapseAll = function()
{
	for(n = 0; n < AccordionSubItems.length; n++)
	{
		document.getElementById(AccordionSubItems[n].id).style.visibility = 'hidden';
		document.getElementById(AccordionSubItems[n].id).style.display = 'none';
	}
}

ExpandAll = function()
{
	for(n = 0; n < AccordionSubItems.length; n++)
	{
		document.getElementById(AccordionSubItems[n].id).style.visibility = 'visible';
		document.getElementById(AccordionSubItems[n].id).style.display = '';
	}
}

ExpandGroup = function(_parent)
{
	for(n = 0; n < AccordionSubItems.length; n++)
	{
		if(AccordionSubItems[n].parent == _parent)
		{
			document.getElementById(AccordionSubItems[n].id).style.visibility = 'visible';
			document.getElementById(AccordionSubItems[n].id).style.display = '';
		}
	}
}

CollapseGroup = function(_parent)
{
	for(n = 0; n < AccordionSubItems.length; n++)
	{
		if(AccordionSubItems[n].parent == _parent)
		{
			document.getElementById(AccordionSubItems[n].id).style.visibility = 'hidden';
			document.getElementById(AccordionSubItems[n].id).style.display = 'none';
		}
	}
}

ExpandOrCollapse = function(_parent)
{
	for(n = 0; n < AccordionSubItems.length; n++)
	{
		if(AccordionSubItems[n].parent == _parent)
		{
			if(document.getElementById(AccordionSubItems[n].id).style.visibility == 'visible')
			 {
				document.getElementById(AccordionSubItems[n].id).style.visibility = 'hidden';
				document.getElementById(AccordionSubItems[n].id).style.display = 'none';
			 }
			 else
			 {
				document.getElementById(AccordionSubItems[n].id).style.visibility = 'visible';
				document.getElementById(AccordionSubItems[n].id).style.display = '';
			 }
		}
	}
}

AddCssStyle = function(_obj)
{
	AccordionStyles.push(_obj)
}

InitializeAccordion = function()
{
	for(m = 0; m < AccordionItems.length; m++)
	{
		if(AccordionItems[m].action == "show" && AccordionItems[m].params[0] == "true")
		{
			ExpandGroup(AccordionItems[m].id);
		}
		else if(AccordionItems[m].action == "show" && AccordionItems[m].params[0] == "false")
		{
			CollapseGroup(AccordionItems[m].id);
		}
	}
}

RenderAccordion = function(obj)
{	
	for(j = 0; j < AccordionItems.length; j++)
	{
		RenderAccordionItem(AccordionItems[j].id, AccordionItems[j].label, "OnItemClick(this.id,'" + AccordionItems[j].action + "','" + AccordionItems[j].params + "')", "OnItemRollOver(this.id)", "OnItemRollOut(this.id)");
		
			for(k = 0; k < AccordionSubItems.length; k++)
			{
				if(AccordionSubItems[k].parent == AccordionItems[j].id)
				{
					RenderAccordionSubItem(AccordionSubItems[k].id, AccordionSubItems[k].label, "OnSubItemClick(this.id,'" + AccordionSubItems[k].action + "','" + AccordionSubItems[k].params + "')", "OnSubItemRollOver(this.id)", "OnSubItemRollOut(this.id)");
				}
			}
	}
}

OnItemClick = function(_id, _action, _params)
{
	var params = _params.split(",")
	
	switch(_action)
	{
		case "link":
			window.location.href = params[0];
		break
		
		case "show":
			ExpandOrCollapse(_id);
		break;		
		
		case "exec":
			window.location.href = "javascript:" + params[0] + "('" +params[1] + "','" + params[2] + "')";
		break;
		
	}
}

OnItemRollOver = function(_id)
{
	document.getElementById(_id).className = "accordionItemRollOver";
}

OnItemRollOut = function(_id)
{
	document.getElementById(_id).className = "accordionItemRollOut";
}

OnSubItemClick = function(_id, _action, _params)
{
	var params = _params.split(",")
	switch(_action)
	{
		case "link":
			window.location.href = params[0];
		break
		
		case "show":
			ExpandOrCollapse(_id);
		break;
		
		case "exec":
			window.location.href = "javascript:" + params[0] + "(" +params[1] + ",'" + params[2] + "')";
		break;
	}
}

OnSubItemRollOver = function(_id)
{
	document.getElementById(_id).className = "accordionSubItemRollOver";
}

OnSubItemRollOut = function(_id)
{
	document.getElementById(_id).className = "accordionSubItemRollOut";
}



