﻿var m_xmlhttp = null;
var m_nCheckCacheInterval = null;
var m_strCreated = null;
var m_nTimeoutID = null;
var m_strPageSearch = null;
var m_divXML = null;
var m_divWait = null;

function Init( nCheckCacheInterval, strCreated, nTimeout )
{
	m_nCheckCacheInterval = nCheckCacheInterval;
	m_strCreated = strCreated;
	m_strPageSearch = window.location.search.substring( 1 );
	
	m_divXML = document.getElementById( "divXML" );
	m_divWait = document.getElementById( "divWait" );	
	
	if( window.XMLHttpRequest ) // code for Mozilla, etc & IE 7.0.
		m_xmlhttp = new XMLHttpRequest();	
	else if( window.ActiveXObject ) // code for IE 6.0
		try 
		{
			m_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} 
		catch(e) 
		{
			m_xmlhttp = null; //security block etc
		}	
	
	m_nTimeoutID = window.setTimeout( "checkCache(null)", nTimeout );
}

function toggleStop(nPlatformTag, nStopNo, nEnable)
{
    if (m_nTimeoutID != null)
    {
        window.clearTimeout(m_nTimeoutID);
        m_nTimeoutID = null;
    }

    checkCache("PlatformTag=" + nPlatformTag + "&StopNo=" + nStopNo + "&EnableCmd=" + nEnable)
}

function checkCache( strParms )
{
	m_nTimeoutID = null;
	
	if( m_xmlhttp == null )
		alert( "XMLHttpRequest object not created." );
	else
	{
		if( strParms == null )
			strParms = m_strPageSearch + "&CheckCache=" + m_strCreated;
		
		try 
		{
		    m_xmlhttp.open("POST", window.location.pathname, true);
			m_xmlhttp.onreadystatechange = checkCacheResponse;
			m_xmlhttp.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
			m_xmlhttp.send( strParms );
		}
		catch(e) 
		{
			alert(e);
		}
	}
}

function checkCacheResponse()
{
	if( m_xmlhttp.readyState != 4 ) // Complete
		return;
		
	var nTimeout = m_nCheckCacheInterval;
	var bOK = false;

	try 
	{
		if( m_xmlhttp.status == 200 ) // OK response
			bOK = true;
	}
	catch(e) {}

	if( bOK )
	{
		//alert( m_xmlhttp.responseXML + " - " + m_xmlhttp.responseText );
		var oRoot = m_xmlhttp.responseXML.documentElement;
		if( oRoot.hasChildNodes() )
		{
			m_strCreated = oRoot.getAttribute("Created");
			nTimeout = oRoot.getAttribute("Timeout");
						
			m_divXML.innerHTML = m_xmlhttp.responseText;
			
			m_divXML.style.display = "block";
			m_divWait.style.display = "none";				
			toggleDisplay();	
		}
	}
	else
	{
		m_divXML.style.display = "none";
		m_divWait.style.display = "block";
	}

	m_nTimeoutID = window.setTimeout( "checkCache(null)", nTimeout );
}

function toggleDisplay()
{
	var nOffsetWidth = document.body.offsetWidth;
	var oDiv0 = document.getElementById("divColumn");
	var oDiv1 = document.getElementById("divTable");
	if( oDiv0 != null && oDiv1 != null )
	{
		var oCols = oDiv1.getElementsByTagName("table").item(0).getElementsByTagName("col");
		var nBreakWidth = 0.0;
		for( var nItem = 0; nItem < oCols.length; nItem++ )
		{
			nBreakWidth += oCols.item(nItem).width * 0.75;
		};
		
		var oStyle0 = oDiv0.style;
		var oStyle1 = oDiv1.style;
	
		if( nOffsetWidth >= nBreakWidth && oStyle0.display == "block" )
		{
			oStyle0.display = "none";
			oStyle1.display = "block";
		}
		else if( nOffsetWidth < nBreakWidth && oStyle0.display == "none" )
		{
			oStyle1.display = "none";
			oStyle0.display = "block";
		}
	}
}