function MakeLayout(id,minr,maxw,maxr)
{
	if(document.getElementById)
	{
    	SetWidth(id,minr,maxw,maxr);
    	window.onresize=function(){ 
			SetWidth(id,minr,maxw,maxr);
			set3ColContentWidth();
			valignElements();
			prepareFooter();
		}
    }
}

function SetWidth(id,a,b,c)
{
	var w=getBrowserWidth();
	if(w==0) return;
	var el=document.getElementById(id);
	var d=el.style;
	if(w<=a) d.width=a+"px";
	else if(w>=c) d.width=b+"px";
	else
	{
    	var m=(b-a)/(c-a);
    	d.width=parseInt(m*w+a*(1-m))+"px";
    }
}
function getBrowserWidth()
{
	if (window.innerWidth) return window.innerWidth;
	else if (document.documentElement && document.documentElement.clientWidth!=0)
    	return document.documentElement.clientWidth;
	else if (document.body) return document.body.clientWidth;
	return 0;
}
function set3ColContentWidth()
{
	if (document.getElementById("col3LayoutWrapper") && document.getElementById("leftNavArea") && document.getElementById("col3LayoutContentArea"))
	{
		var availableWidth = document.getElementById("liquidContainer").clientWidth - document.getElementById("leftNavArea").clientWidth - 1;
		document.getElementById("col3LayoutContentArea").style.width = availableWidth + "px";
		var col1Width = document.getElementById("marqueeImageArea").clientWidth - document.getElementById("leftNavArea").clientWidth;
		var col2Width = availableWidth - col1Width;
		setCol1Col2Width(document.getElementById("breadcrumbArea"),col1Width,col2Width);
		setCol1Col2Width(document.getElementById("col3LayoutContent"),col1Width,col2Width);
	}
}
function setCol1Col2Width(containerDivObj,col1Width,col2Width)
{
	var colsArray = containerDivObj.childNodes;
	for (i = 0; i < colsArray.length; i++)
	{
		if (colsArray[i].className == "col1")
		{
			colsArray[i].style.width = (col1Width - 10) + "px";
			colsArray[i].style.paddingRight = "10px";
		}
		if (colsArray[i].className == "col2")
		{
			colsArray[i].style.width = col2Width + "px";
			colsArray[i].style.paddingRight = 0;
		}
	}
}
function prepareFooter()
{
	setFooterWidth();
	setFooterColumnHeights();
}
function setFooterWidth()
{
	if (document.getElementById('liquidContainer') && document.getElementById('footerContent'))
	{
		document.getElementById('footerContent').style.width = document.getElementById('liquidContainer').clientWidth + "px";
	}
}
function setFooterColumnHeights()
{
	if (document.getElementById("footer5Cols"))
	{
		var maxHeight = 0;
		var cols = document.getElementById("footer5Cols").childNodes;
		for (i = 0; i < cols.length; i++)
		{
			if (cols[i].nodeType == 1)
			{
				cols[i].style.height = "auto";
			}
		}
		for (i = 0; i < cols.length; i++)
		{
			try 
			{
				if (cols[i].nodeType == 1)
				{
					if (cols[i].clientHeight > maxHeight)
					{
						maxHeight = cols[i].clientHeight;
					}
				}
			}
			catch (e)
			{}
		}
		for (i = 0; i < cols.length; i++)
		{
			if (cols[i].nodeType == 1 && (maxHeight != 0))
			{
				cols[i].style.height = maxHeight + "px";
			}
		}
	}
}
function valignBottomElement(elemToMoveId,elemToTargetId)
{
	if (document.getElementById(elemToMoveId) && document.getElementById(elemToTargetId))
	{
		if (document.getElementById(elemToTargetId).clientHeight > document.getElementById(elemToMoveId).clientHeight)
		{
			var heightDiff = document.getElementById(elemToTargetId).clientHeight - document.getElementById(elemToMoveId).clientHeight;
			document.getElementById(elemToMoveId).style.marginTop = heightDiff + "px";
		}
	}
}
function adjustComponentHeights(containerElem,verticalOffset)
{
	if (!verticalOffset)
	{
		verticalOffset = 0;
	}
	var container = document.getElementById(containerElem);
	if (container)
	{
		
		for (i = 0; i < container.childNodes.length; i++)
		{
			if (container.childNodes[i].nodeType == 1)
			{
				container.childNodes[i].style.height = "auto";
			}
		}
		var maxHeight = container.clientHeight;
		for (i = 0; i < container.childNodes.length; i++)
		{
			if (container.childNodes[i].nodeType == 1)
			{
				container.childNodes[i].style.height = (maxHeight - verticalOffset) + "px";
			}
		}
	}
}
function valignElements()
{
	valignBottomElement("marqueeMsgArea","marqueeImageArea");
	adjustComponentHeights("homeTabs",12);
}
function setContentTdWidths(webPartZoneId)
{
	if (document.getElementById(webPartZoneId))
	{
		var tdArray = getTargetTds(webPartZoneId);
		resizeTargetTds(tdArray);
	}
}
function getTargetTds(webPartZoneId)
{
	// ASSUMPTION: There is a single table inside a web part zone, and the table has only 1 row
	var container = document.getElementById(webPartZoneId);
	var tdArray = [];
	
	for (i = 0; i < container.childNodes.length; i++)
	{
		if (container.childNodes[i].nodeName.toLowerCase() == "table")
		{
			var containerTable = container.childNodes[i];
			for (ii = 0; ii < containerTable.childNodes.length; ii++)
			{
				if (containerTable.childNodes[ii].nodeName.toLowerCase() == "tbody")
				{
					var containerTBody = containerTable.childNodes[ii];
					for (iii = 0; iii < containerTBody.childNodes.length; iii++)
					{
						if (containerTBody.childNodes[iii].nodeName.toLowerCase() == "tr")
						{
							var containerTr = containerTBody.childNodes[iii];
							for (iv = 0; iv < containerTr.childNodes.length; iv++)
							{
								if (containerTr.childNodes[iv].nodeName.toLowerCase() == "td")
								{
									tdArray.push(containerTr.childNodes[iv]);
								}
							}
						}
					}
				}
			}
		}
	}
	return tdArray;
}
function resizeTargetTds(tdArray)
{
	// ASSUMPTION: The largest number of columns in content area is 5
	var colCount = Math.ceil(tdArray.length / 2);
	var spacerWidth;
	var colWidth;
	if (colCount > 0 && colCount < 6)
	{
		if (document.getElementById("wpzone2"))
		{
			switch (colCount)
			{
				case 1:
					spacerWidth = '0%';
					colWidth = '100%';
					break;
				case 2:
					spacerWidth = '6%';
					colWidth = '47%';
					break;
				case 3:
					spacerWidth = '5%';
					colWidth = '30%';
					break;
				case 4:
					spacerWidth = '4%';
					colWidth = '22%';
					break;
				case 5:
					spacerWidth = '2%';
					colWidth = '18%';
					break;
				default:
					spacerWidth = '0%';
					colWidth = '0%';
			}	
		}
		else
		{
			switch (colCount)
			{
				case 1:
					spacerWidth = '0%';
					colWidth = '100%';
					break;
				case 2:
					spacerWidth = '4%';
					colWidth = '46%';
					break;
				case 3:
					spacerWidth = '4%';
					colWidth = '29%';
					break;
				case 4:
					spacerWidth = '3%';
					colWidth = '22%';
					break;
				case 5:
					spacerWidth = '2%';
					colWidth = '18%';
					break;
				default:
					spacerWidth = '0%';
					colWidth = '0%';
			}
		}
		for (i = 0; i < tdArray.length; i++)
		{
			if (i % 2 == 0)
			{
				tdArray[i].style.width = colWidth;
			}
			else
			{
				tdArray[i].style.width = spacerWidth;
			}
			// ASSUMPTION: The last td we want to hide may OR may not be produced by the back-end
			if ((i + 1 == tdArray.length) && (document.getElementById("wpzone2") && (tdArray.length % 2 == 0)))
			{
				tdArray[i].style.display = "none";
			}
		}
	}
}

MakeLayout("liquidContainer",770,1249,1600);