var expire_counter = 60*30;
var reset_opener = false;
var resetReport = false;
var openWin;

function closeTimerAlert()
{
        try
        {
		if (openWin)
		{
			openWin.close();
		}
        }
        catch(e) { }

	return false;
}

function Down()
{ 

	try
	{
		if (top.opener && (self.report_id.value) && (!top.opener.reportId) && (!reset_opener) && (top.opener.expire_counter < 0))
		{
			top.opener.expire_counter = (60*30);
			top.opener.Down();
			expire_counter = -1;
			resetReport = true;
		}
	}
	catch(e)
	{}

	// if this window is a popup window from another window
	// then kill the timer in the window below and only leave one active timer (in the current / active window)

	if ((!resetReport) && top.opener && top.opener.expire_counter)
	{
		if (reset_opener)
		{
			top.opener.expire_counter = (60*30);
			top.opener.Down();
		}
		else
		{
			top.opener.expire_counter = -1;
			
			try
			{
				top.opener.opener.expire_counter = -1;
			}
			catch(e)
			{}
		}
	}

	expire_counter--;      
	//self.status = expire_counter;

	if (expire_counter == 0)
	{
		var save_changes = 0;
		
		try
                {
                	var elem = document.forms[0].elements;

                	for (i = 0; i < elem.length; i++)
                	{
                        	try
                        	{
                                	elem[i].blur();
                                	elem[i].focus();
                                	i=elem.length;
                        	}
                        	catch(e)
                        	{}
                	}
                	//alert(formStatus);

        	}
        	catch(e)
        	{}

		try
		{
			if (formStatus == true)
			{
				save_changes = 1;	
			}

		}
		catch(e)
		{}

		var openWin = window.open("/kb_alert/timeout_alert.php"+"?save_changes="+save_changes, "timeOut", 'width=300,height=160,top=100,left=50' );
		if (openWin)
		{
			try
			{
				openWin.focus();
			}
			catch(e)
			{}
		}

	}
	else if (expire_counter > 0)
	{
		down = setTimeout("Down()", 1000);
	}
}

function resetTimer()
{
	top.opener.reportId = "";

	if ((self.opener.expire_counter < 0))
	{	
        	reset_opener=true;
		Down();
	}

        try
        {
		if (openWin)
		{
			openWin.close();
		}
        }
        catch(e) { }
}


