function Resize(clientId,type)
{
	var oContainer = document.getElementById(clientId);
	if (oContainer)
	{
		if (type != 'hor')
		{
			var windowheight;
			if (window.innerHeight)
			{
				windowheight = window.innerHeight;
			}
			else
			{
				windowheight = document.body.clientHeight;
			}
			
			var bottomMargin = GetBottomMargin(oContainer);
			var newHeight;
			
			if (document.forms[0] && document.forms.length >= 1)
			{
				var overlapSize = document.forms[0].offsetHeight - (windowheight - bottomMargin);
				if (overlapSize < oContainer.offsetHeight)
				{
					newHeight = oContainer.offsetHeight - overlapSize;
					if (newHeight >= 0)
					{
						oContainer.style.height = newHeight;
					}
				}
			}
			else
			{
				newHeight = windowheight - oContainer.offsetTop - bottomMargin;
				if (newHeight >= 0 && oContainer.offsetTop < windowheight)
				{
					oContainer.style.height = newHeight;
				}
			}
		}
		
		if (type != 'ver')
		{
			window.setTimeout("HorResize('"+clientId+"','"+type+"')",5,'jscript');
		}
	}
}

function HorResize(clientId,type)
{
	var oContainer = document.getElementById(clientId);
	if (oContainer)
	{
		var windowwidth;
		if (window.innerWidth)
		{
			windowwidth = window.innerWidth;
		}
		else
		{
			windowwidth = document.body.clientWidth;
		}
		//horizontal resize
		var padding = GetRightMargin(oContainer);
		if (navigator.userAgent.indexOf('Safari')!=-1)
		{
			if (windowwidth - oContainer.offsetLeft - document.body.offsetLeft - padding > 0) 
			{ 
				oContainer.style.width = windowwidth - oContainer.offsetLeft - document.body.offsetLeft -  padding; 
			} 
		}
		else
		{
			if (windowwidth - oContainer.offsetLeft - padding > 0)
			{
				oContainer.style.width = windowwidth - oContainer.offsetLeft - padding;
			}
		}
	}
}

function GetPadding(padding)
{
	if (padding.indexOf('px')>0)
	{
		padding = parseInt(padding.substr(0,padding.length-2));	
	}
	else
	{
		padding = parseInt(padding);
	}
	if (!padding)
	{
		padding = 0;
	}
	return padding;
}

function GetRightMargin(oObject)
{
	var margin = 0;
	if (oObject.parentNode)
	{
		if (oObject.parentNode.tagName == 'TD')
		{
			row = oObject.parentNode.parentNode;
			//currentIndex = oObject.parentNode.cellIndex;
			var currentIndex = -1; 
			for (var j = 0; j < row.cells.length; j++) 
			{ 
				if (oObject.parentNode == row.cells[j]) 
				{ 
					currentIndex = j; 
				} 
			} 
			for (var i = currentIndex+1; i < row.cells.length; i++)
			{
				margin += row.cells[i].offsetWidth;
			}
		}
		if (window.getComputedStyle)
		{
			try
			{
				var compStyle = window.getComputedStyle(oObject.parentNode,null);
			} catch(e) {}; 
			if (compStyle)
			{
				var styleVar = compStyle.getPropertyValue("padding-right");
			}
		}
		else if (oObject.parentNode.currentStyle)
		{
			var styleVar = oObject.parentNode.currentStyle.paddingRight;
		}
		else if (oObject.parentNode.style)
		{
			var styleVar = oObject.parentNode.style.getPropertyValue("padding-right");
		}		
		if (styleVar)
		{
			margin += GetPadding(styleVar);
		}
		margin += GetRightMargin(oObject.parentNode);
	}
	return margin;
}

function GetBottomMargin(oObject)
{
	var margin = 0;
	if (oObject.parentNode)
	{
		if (oObject.parentNode.tagName == 'TR')
		{
			table = oObject.parentNode.parentNode;
			currentIndex = oObject.parentNode.rowIndex;
			for (var i = currentIndex+1; i < table.rows.length; i++)
			{
				margin += table.rows[i].offsetHeight;
			}
		}
		if (window.getComputedStyle)
		{
			try
			{
				var compStyle = window.getComputedStyle(oObject.parentNode,null);
			} catch(e) {}; 

			if (compStyle)
			{
				var styleVar = compStyle.getPropertyValue("padding-bottom");
			}
		}
		else if (oObject.parentNode.currentStyle)
		{
			var styleVar = oObject.parentNode.currentStyle.paddingBottom;
		}
		else if (oObject.parentNode.style)
		{
			var styleVar = oObject.parentNode.style.getPropertyValue("padding-bottom");
		}	
		if (styleVar)
		{
			margin += GetPadding(styleVar);
		}


		margin += GetBottomMargin(oObject.parentNode);
	}
	return margin;
}

