/*===========================================
				ManageColumns
	Written by	:	Ben Daley
	For			:	Netbyte Internet Ltd
	Date		:	15/06/2007
	Version		:	1.0
===========================================*/

var ManageColumns = {
	columns: [],
	
	// constructor
	create: function()
	{
		if(!arguments.length)
		{
			alert('You need to pass an arguments obj with an array of columns');
			return;
		}
		else
		{
			this.columns = arguments[0]['columns'];
			
			ManageColumns.sizeColumns();			
		}
	},
	
	getAvailableHeight: function()
	{
		var winWidth, winHeight, d=document, c, h, f, n, t, s, availableHeight;
		
		c = d.getElementById('container');
		h = d.getElementById('header');
		f = d.getElementById('footer');
		n = d.getElementById('navContainer');
		t = d.getElementById('columns');
		
		
		t.style.marginTop = n.offsetHeight + 'px';
		
		if (typeof window.innerWidth!='undefined') 
		{
			winWidth = window.innerWidth;
			winHeight = window.innerHeight;
		} 
		else if ( d.documentElement && typeof d.documentElement.clientWidth!='undefined' && d.documentElement.clientWidth!=0 )
		{
			winWidth = d.documentElement.clientWidth;
			winHeight = d.documentElement.clientHeight;
		} 
		else if ( d.body && typeof d.body.clientWidth!='undefined')
		{
			winWidth = d.body.clientWidth;
			winHeight = d.body.clientHeight;
		}
		
		
		
		if(winHeight > (c.offsetHeight + f.offsetHeight))
		{
			availableHeight = winHeight - (h.offsetHeight + f.offsetHeight + n.offsetHeight);
		}
		else
		{
			availableHeight = 0;
		}
		
		return(availableHeight);
	},
	
	resetColumns: function()
	{
		var cols = ManageColumns.columns;
			
		// reset heights
		for (var i=0; i < cols.length; i++)
		{
			try
			{
				cols[i].style.height = null;
			}catch(e)
			{
				cols[i].style.height = 'auto';
			}
		}
	},
	
	sizeColumns: function()
	{
		if (document.getElementById)
		{
			var cols = ManageColumns.columns;
			
			ManageColumns.resetColumns();
	
			var maxHeight = ManageColumns.getAvailableHeight();
			
			for (var i = 0; i < cols.length; i++)
			{
				if (cols[i].offsetHeight > maxHeight)
				{
					maxHeight = cols[i].offsetHeight;
				}
				
			}
			for (var i = 0; i < cols.length; i++)
			{
				try
				{
					cols[i].style.height = maxHeight + 'px';
				}catch(e)
				{
					cols[i].style.height = maxHeight + 'px';
				}
				
				if (cols[i].offsetHeight > maxHeight)
				{
					cols[i].style.height = (maxHeight - (cols[i].offsetHeight - maxHeight)) + 'px';
				}
			}
		}
	}
}