//Javascript document

var fieldSetParentNodes = new Array();
var fieldSetParentNodesFieldSets = new Array();

makeFieldSetMinimizables();

function makeFieldSetMinimizables()
{
	var fieldSetsInCurrentDocument = document.getElementsByTagName('fieldset');
	for(var i=0; i<fieldSetsInCurrentDocument.length; i++)
	{
		var fieldSetParentNode = fieldSetsInCurrentDocument[i].parentNode;
		var fieldSetId = jQuery.inArray(fieldSetParentNode, fieldSetParentNodes);
		if(fieldSetId == -1)
		{
			fieldSetParentNodes[fieldSetParentNodes.length] = fieldSetParentNode;
			fieldSetId = fieldSetParentNodes.length-1;
			fieldSetParentNodesFieldSets[fieldSetId] = new Array();
		}
		fieldSetParentNodesFieldSets[fieldSetId][fieldSetParentNodesFieldSets[fieldSetId].length] = fieldSetsInCurrentDocument[i];
	}
	for(var i=0; i<fieldSetParentNodes.length; i++)
	{
		if(fieldSetParentNodesFieldSets[i].length < 2) continue;
		for(var j=0; j<fieldSetParentNodesFieldSets[i].length; j++)
		{
			var fieldSet = fieldSetParentNodesFieldSets[i][j];
			if(fieldSet.childNodes.length == 0) continue;
			if($(fieldSet).hasClass("noCollapse")) continue;

			var legendChild = fieldSet.getElementsByTagName('LEGEND');
			if(legendChild.length == 0) continue;
			legendChild = legendChild[0];
							
			var minimize_anchor = document.createElement('A');
			minimize_anchor.innerHTML = legendChild.innerHTML;
			minimize_anchor.className = 'MINIMIZEFIELDSETAUTOGENERATEDANCHOR';
			minimize_anchor.href = 'javascript:void(0)';
			minimize_anchor.onclick = function(options) {
											var legend = this.parentNode;
											var fieldSet = legend.parentNode;
											
											var minimizing = true;
											var minimizing_checked = false;	

											for(var x=0; x<fieldSet.childNodes.length; x++)
											{
												var childNode = fieldSet.childNodes[x];
												var childNodeTagName = childNode.tagName;
												if( childNodeTagName == 'undefined' || childNodeTagName == undefined) childNodeTagName = null;
												if( childNodeTagName == null) continue;
												var childNodeClassName = childNode.className;
												if( childNodeClassName == 'undefined' || childNodeClassName == undefined) childNodeClassName = null;
												
												if(childNodeTagName.toUpperCase() == 'LEGEND') continue;
												if(childNodeTagName.toUpperCase() == 'DIV' && childNodeClassName == 'help') continue;

												if(this != childNode)
												{
													if(!minimizing_checked)
														minimizing = childNode.style.display != 'none';
													if(minimizing && options == 'onlyMaximize') return;
													childNode.style.display = (!minimizing ? '' : 'none');
												} 
											}

											var minize_span = null;
											for(var x=0; x<this.childNodes.length; x++)
											{
												var childNode = this.childNodes[x];
												var childNodeTagName = childNode.tagName;
												if(childNodeTagName == null || childNodeTagName == 'undefined' || childNodeTagName == undefined) continue;
												if(childNodeTagName.toUpperCase() == 'SPAN' && childNode.rel == 'MINIMIZEFIELDSETAUTOGENERATEDANCHOR' )
												{
													minize_span = childNode;
													break;
												}
											}
											if(minize_span != null) minize_span.innerHTML = (minimizing ? '[+]' : '[-]');
										};

			var minize_span = document.createElement('SPAN');
			minize_span.className = 'MINIMIZEFIELDSETAUTOGENERATEDANCHOR';
			minize_span.rel = 'MINIMIZEFIELDSETAUTOGENERATEDANCHOR';
			minize_span.innerHTML = '[-]';
			minimize_anchor.insertBefore(minize_span,minimize_anchor.childNodes[0]);
										
			var newLegendChild = document.createElement('LEGEND');
			newLegendChild.appendChild(minimize_anchor);
			
			fieldSet.removeChild(legendChild);
			if(fieldSet.childNodes.length == 0)
				fieldSet.appendChild(newLegendChild);
			else
				fieldSet.insertBefore(newLegendChild,fieldSet.childNodes[0]);
			if(!$(fieldSet).hasClass("noAutoCollapse") && $(fieldSet).find("div.error-message").length == 0 ) minimize_anchor.onclick();
		}			
	}
}
