function Initialize()
{
	collapseMachtigingen();
	collapseBands();
	collapseDetails();
	addBandToggle();
	addDetailBandToggle();
}

function collapseMachtigingen()
{
	var machtigingen = getElementsByClassName(document, 'div', 'bandenplan_container');
	for(var i=0; i<machtigingen.length; i++)
	{
		machtigingen[i].style.display = 'none';
		addEvent(machtigingen[i].previousSibling, 'click', _addtoggle);
	}
}

function collapseBands()
{
	var bands = getElementsByClassName(document, 'div', 'banden');
	for(var i=0; i<bands.length; i++)
	{
		bands[i].style.display = 'none';
	}
}

function collapseDetails()
{
	var details = getElementsByClassName(document, 'div', 'ribbondetails_container');
	var details_tables = getElementsByClassName(document, 'table', 'bandplan_detailplan');
	
	for(var i=0; i<details.length; i++)
	{
		details[i].style.display = 'none';
	}
	for(var i=0; i<details_tables.length; i++)
	{
		details_tables[i].style.display = 'none';
	}
	
}

function addBandToggle()
{
	var bandindiv = getElementsByClassName(document, 'div', 'band');
	for(var i=0; i<bandindiv.length; i++)
	{
		for(var j=0; j<bandindiv[i].childNodes.length; j++)
		{
			addEvent(bandindiv[i].childNodes[j], 'mouseover', _show_description);
			addEvent(bandindiv[i].childNodes[j], 'click', _show_detail_band);
		}
	}
}

function addDetailBandToggle()
{
	var banddetailindiv = getElementsByClassName(document, 'div', 'band_detail');
	for(var i=0; i<banddetailindiv.length; i++)
	{
		for(var j=0; j<banddetailindiv[i].childNodes.length; j++)
		{
			addEvent(banddetailindiv[i].childNodes[j], 'mouseover', _show_detail_table);
		}
	}
}

function _addtoggle(ev, obj)
{
	var machtigingen = getElementsByClassName(document, 'div', 'bandenplan_container');
	
	for(var i=0; i<machtigingen.length; i++)
	{
		if(machtigingen[i].id == this.id && machtigingen[i].style.display == 'none')
		{
			machtigingen[i].style.display = 'block';
		}
		else if(machtigingen[i].id == this.id && machtigingen[i].style.display == 'block')
		{
			machtigingen[i].style.display = 'none';
		}
		addEvent(machtigingen[i].previousSibling, 'click', _addtoggle);		
	}
}

function _show_description(ev, obj)
{
	var currentBand = this.parentNode.parentNode;
	var bands = getElementsByClassName(currentBand, 'div', 'banden');
	
	for(var i=0; i<bands.length; i++)
	{
		if(bands[i].id == this.id)
		{
			bands[i].style.display='block';
		}
		else
		{
			bands[i].style.display='none';
		}
	}
}

function _show_detail_band(ev, obj)
{
	var details = getElementsByClassName(document, 'div', 'ribbondetails_container');
	var details_tables = getElementsByClassName(document, 'table', 'bandplan_detailplan');
	for(var i=0; i<details.length; i++)
	{
		if(details[i].id == this.id)
		{
			details[i].style.display = 'block';
		}
		else
		{
			details[i].style.display = 'none';
		}
	}
	
	for(var i=0; i<details_tables.length; i++)
	{
		if(details_tables[i].id == this.id)
		{
			details_tables[i].style.display = 'none';
		}
		else
		{
			details_tables[i].style.display = 'none';
		}
	}
}

function _show_detail_table(ev, obj)
{
	var details_tables = getElementsByClassName(document, 'table', 'bandplan_detailplan');
	
	for(var i=0; i<details_tables.length; i++)
	{
		var details_tables_rows = details_tables[i].getElementsByTagName('tr');
		
		for(var j=0; j<details_tables_rows.length; j++)
		{
			if(details_tables_rows[j].id != '')
			{
				for(var k=0; k<details_tables_rows[j].childNodes.length; k++)
				{
					if(details_tables_rows[j].childNodes[k].childNodes[0].nodeName == 'DIV')
					{
						var div = details_tables_rows[j].childNodes[k].childNodes[0];
						
						if(details_tables_rows[j].id == this.id)
						{
							div.style.display = 'block';
						}
						else
						{
							div.style.display = 'none';
						}
					}					
				}
			}

			if(details_tables[i].id == this.parentNode.parentNode.id)
			{
				details_tables[i].style.display = 'block';
			}
			else
			{
				details_tables[i].style.display = 'hidden';
			}		
		}
		
		
	}
}

function getElementsByClassName(oElm, strTagName, oClassNames){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	var arrRegExpClassNames = new Array();
	if(typeof oClassNames == "object"){
		for(var i=0; i<oClassNames.length; i++){
			arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames[i].replace(/\-/g, "\\-") + "(\\s|$)"));
		}
	}
	else{
		arrRegExpClassNames.push(new RegExp("(^|\\s)" + oClassNames.replace(/\-/g, "\\-") + "(\\s|$)"));
	}
	var oElement;
	var bMatchesAll;
	for(var j=0; j<arrElements.length; j++){
		oElement = arrElements[j];
		bMatchesAll = true;
		for(var k=0; k<arrRegExpClassNames.length; k++){
			if(!arrRegExpClassNames[k].test(oElement.className)){
				bMatchesAll = false;
				break;
			}
		}
		if(bMatchesAll){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}
