﻿var bwIE60 = (navigator.appVersion.indexOf("MSIE 6.0") != -1) ? "True" : "False";
var bwIE70 = (navigator.appVersion.indexOf("MSIE 7.0") != -1) ? "True" : "False";

function workAroundHtmlTableWebPartZones(tableCellIDs)
{
	for ( var i = 0; i < tableCellIDs.length; i++ )
	{
		var tableCell = document.getElementById(tableCellIDs[i]);
		if ( tableCell == null || !tableCell.hasChildNodes() )
			continue;
	
		var webPartZone = tableCell.childNodes[0];
		if ( webPartZone == null )
			continue;
	
		webPartZone.width = tableCell.width;
	}
}

function expandButton_OnClick(expandButton, textExpand, textCollapse, expandButtonFieldClientID)
{
	var expandButtonField = document.getElementById(expandButtonFieldClientID);
	if (expandButtonField == null)
		return;

	var expanded = expandButtonField.value == "1";

	expandCell(expandButton, !expanded);

	expandButton.innerText = expanded ? textExpand : textCollapse;
	expandButtonField.value = expanded ? "0" : "1";
}

function expandCell(expandButton, expand)
{
	var tableCellCurrent = expandButton.parentElement;
	var tableRow = expandButton.parentElement;
	var table = expandButton.parentElement;

	while (table.tagName != "TABLE" && tableRow != null)
	{
		if (tableCellCurrent.tagName != "TD")
		{
			tableCellCurrent = table;
		}
		if (tableRow.tagName != "TR")
		{
			tableRow = table;
		}
		table = table.parentElement;
	}
	
	if (tableCellCurrent == null || tableRow == null || table == null)
		return;

	var display = expand ? "none" : "table-cell";
	
	for ( var i = 0; i < tableRow.childNodes.length; i++ )
	{
		var tableCellToHide = tableRow.childNodes[i];
		if (tableCellToHide.tagName == "TD")
		{
			if (display == "table-cell" && (bwIE60 == "True" || bwIE70 == "True"))
			{
				tableCellToHide.style.display = "block";
			}
			else
			{
				tableCellToHide.style.display = display;
			}
		}
	}

	if (tableCellCurrent.tagName == "TD")
	{
		if (bwIE60 == "True" || bwIE70 == "True")
		{
			tableCellCurrent.style.display = "block";
		}
		else
		{
			tableCellCurrent.style.display = "table-cell";
		}
		tableCellCurrent.style.overflow = "visible";
		var tableWidth = expand ? table.width : tableCellCurrent.width;
		for (var i = 0; i < tableCellCurrent.childNodes.length; i++)
		{
			var webPartZone = tableCellCurrent.childNodes[i];
			if (webPartZone.tagName == "SPAN" && webPartZone.id != expandButton.id)
			{
				webPartZone.style.width = tableWidth + "px";
				break;
			}
		}
	}
}
