// ö
var iElementsRemoved, iElementCounter, objHead;
var objContainer, arElement, arAxis, objText, objContent, objItem, objCSS;
var objTable, strSummary, strHeaders, strScope, strAbbr, strAxis, objRedundant, objHeader;
var iTableCounter, arHeader, strOutput;

if (!document.getElementById('JuicysStudioStyleSheet'))
{
	objHead = document.getElementsByTagName('head');
	objCSS = objHead[0].appendChild(document.createElement('link'));

	objCSS.id = 'JuicysStudioStyleSheet';
	objCSS.rel = 'stylesheet';
	objCSS.href = 'http://juicystudio.com/services/css/tableinspector.css';
	objCSS.type = 'text/css';

	objTable = document.getElementsByTagName('table');

	for(iTableCounter=0; iTableCounter<objTable.length; iTableCounter++)
	{
		strSummary = objTable[iTableCounter].getAttribute('summary');
		if (strSummary)
		{
			objContainer = document.createElement('div');

			objContainer.className = 'juicystudiohighlightmeta';

			arElement = document.createElement('strong');
			objText = document.createTextNode('Summary: ' + strSummary);

			arElement.appendChild(objText);

			objContainer.appendChild(arElement);

			try
			{
				objTable[iTableCounter].parentNode.insertBefore(objContainer, objTable[iTableCounter]);
			}
			catch (err)
			{
				document.body.insertBefore(objContainer, objTable[iTableCounter]);
			}
		}

		arElement = objTable[iTableCounter].getElementsByTagName('*');

		for (iElementCounter=0; iElementCounter<arElement.length; iElementCounter++)
		{
			if (arElement[iElementCounter].tagName.toLowerCase() == 'td' || arElement[iElementCounter].tagName.toLowerCase() == 'th')
			{

				strHeaders = arElement[iElementCounter].getAttribute('headers');
				if (strHeaders)
				{
					objContainer = document.createElement('div');
					objContainer.className = 'juicystudiohighlightmeta';

					objContent = document.createElement('strong');
					objText = document.createTextNode('Headers');
					objContent.appendChild(objText);
					objContainer.appendChild(objContent);

					objContent = document.createElement('ul');

					arHeader = strHeaders.split(/\s/);

					for (var i=0; i< arHeader.length; i++)
					{
						objHeader = document.getElementById(arHeader[i]);
						strOutput = '';
						serialiseNode(objHeader);

						objItem = document.createElement('li');

						objText = document.createTextNode(strOutput);
						objItem.appendChild(objText);
						objContent.appendChild(objItem);
					}

					objContainer.appendChild(objContent);
					arElement[iElementCounter].appendChild(objContainer);
				}

				strScope = arElement[iElementCounter].getAttribute('scope');
				if (strScope)
				{
					objContainer = document.createElement('div');
					objContainer.className = 'juicystudiohighlightmeta';

					objContent = document.createElement('strong');
					if (strScope.toLowerCase() == 'col')
					{
						strScope = 'column';
					}
					else if (strScope.toLowerCase() == 'colgroup')
					{
						strScope = 'column group';
					}
					else if (strScope.toLowerCase() == 'rowgroup')
					{
						strScope = 'row group';
					}
					objText = document.createTextNode('Heading for this ' + strScope);
					objContent.appendChild(objText);
					objContainer.appendChild(objContent);

					arElement[iElementCounter].appendChild(objContainer);
				}

				strAbbr = arElement[iElementCounter].getAttribute('abbr');
				if (strAbbr)
				{
					objContainer = document.createElement('div');
					objContainer.className = 'juicystudiohighlightmeta';

					objContent = document.createElement('strong');
					objText = document.createTextNode('Abbreviation: ' + strAbbr);
					objContent.appendChild(objText);
					objContainer.appendChild(objContent);

					arElement[iElementCounter].appendChild(objContainer);
				}

				strAxis = arElement[iElementCounter].getAttribute('axis');
				if (strAxis)
				{
					objContainer = document.createElement('div');
					objContainer.className = 'juicystudiohighlightmeta';

					objContent = document.createElement('strong');
					objText = document.createTextNode('Conceptual Axis');
					objContent.appendChild(objText);
					objContainer.appendChild(objContent);

					objContent = document.createElement('ul');
					objContainer.appendChild(objContent);

					arAxis = strAxis.split(',');

					for (var iAxis=0; iAxis<arAxis.length; iAxis++)
					{
						objText = arAxis[iAxis];
						objContent = document.createElement('li');

						objText = document.createTextNode(objText);
						objContent.appendChild(objText);
						objContainer.appendChild(objContent);
					}
					arElement[iElementCounter].appendChild(objContainer);
				}
			}
		}
	}
}
else
{
	do
	{
		iElementsRemoved = 0;
		objRedundant = document.getElementsByTagName('div');

		for (iElementCounter=0; iElementCounter<objRedundant.length; iElementCounter++)
		{
			if (objRedundant[iElementCounter].className == 'juicystudiohighlightmeta')
			{
				objRedundant[iElementCounter].parentNode.removeChild(objRedundant[iElementCounter]);
				iElementsRemoved++;
			}
		}
	} while (iElementsRemoved > 0);

	objHead = document.getElementsByTagName('head');
	if (objHead)
	{
		objHead[0].removeChild(document.getElementById('JuicysStudioStyleSheet'));
	}
}

function serialiseNode(objNode)
{
	var strClass = '';

	if (objNode.nodeType == 3 && objNode.data)
	{
		strOutput += objNode.data;
	}
	else if (objNode.nodeType == 1 && objNode.getAttribute('alt'))
	{
		strOutput += objNode.getAttribute('alt');
	}

	objNode = objNode.firstChild;

	if (objNode && objNode.className)
	{
		strClass = objNode.className;
	}

	while (objNode && strClass != 'juicystudiohighlightmeta')
	{
		serialiseNode(objNode);
		objNode = objNode.nextSibling;
	}
}