
function getRequestObject() 
{
	var oRequest = null;
	/*@cc_on 
	@if (@_jscript_version >= 5) 
		try { oRequest = new ActiveXObject('Msxml2.XMLHTTP'); } 
		catch (e) { try { oRequest = new ActiveXObject('Microsoft.XMLHTTP'); } catch (E) { oRequest = null; } } 
	@else 
		this.xmlhttp = null; 
	@end @*/ 
	if (!oRequest && typeof XMLHttpRequest != 'undefined') { try { oRequest = new XMLHttpRequest(); } catch (e) { oRequest = null; } }
	return oRequest;
}

var bRequestInProgress = false;
var oRequest = getRequestObject();

if (document.getElementById)
{
	var cc = document.getElementById('client_container');
	var tc = document.getElementById('temp_container');	
}

function loadClient(sURL)
{
	if (oRequest && document.getElementById)
	{
		if (bRequestInProgress) return;		
		bRequestInProgress = true;
		oRequest.open('GET', sURL, true);
		oRequest.onreadystatechange = function()
		{ 
			if (oRequest.readyState == 4) 
			{
				if (oRequest.status == 200) // REQUEST SUCCEEDED
				{
					tc.innerHTML = oRequest.responseText;
					if (tc.offsetHeight && tc.offsetHeight != 0)
					{
						// MAKE SURE AN INITAL HEIGHT IS SET
						if (!cc.style.height)
							cc.style.height = cc.offsetHeight + 'px';
						
						var oldHeight = cc.offsetHeight;
						var newHeight = tc.offsetHeight;							
						
						if (oldHeight == newHeight) // IF DIVS HAVE SAME HEIGHT, REPLACE TEXT
						{
							cc.innerHTML = tc.innerHTML;
						}
						else // ELSE RUN ANIMATION
						{
							if (oldHeight > newHeight)
								shrinkDiv(newHeight);
							else
								growDiv(newHeight);
						}
					}
					else
						location.href = sURL;
				}
				else // REQUEST FAILED
					location.href = sURL;
				bRequestInProgress = false;
			} 
		} 
		oRequest.send(null);
		return false;
	}
	else
		return true;
}

var growTimer = 0;
var shrinkTimer = 0;
function clearTimers()
{
	if (growTimer) clearTimeout(growTimer);
	if (shrinkTimer) clearTimeout(shrinkTimer);		
}
function growDiv(newHeight)
{
	clearTimers();
	var currentHeight = parseInt(cc.style.height);
	if (currentHeight < newHeight)
	{
		var diff = newHeight - currentHeight;
		var step = parseInt(diff/3 + 1);
		cc.style.height = currentHeight + step + 'px';
		growTimer = setTimeout('growDiv(' + newHeight + ');', 1);
	}
	else
	{
		cc.innerHTML = tc.innerHTML;
	}
}
function shrinkDiv(newHeight)
{
	clearTimers();
	var currentHeight = parseInt(cc.style.height);
	if (tc.innerHTML != cc.innerHTML)
	{
		cc.innerHTML = tc.innerHTML;
	}
	if (currentHeight > newHeight)
	{
		var diff = currentHeight - newHeight;
		var step = parseInt(diff/3 + 1);
		cc.style.height = currentHeight - step + 'px';
		shrinkTimer = setTimeout('shrinkDiv(' + newHeight + ');', 1);
	}
}
