<!--
// File: ajax.js
// Description: Funções básicas do timer de notificação
// Author: Joel Larocca
//         Rogério Ramos
// Date: 08/jun/2006
// Version: 1.0
// Copyright: Kankei Software e Consultoria Ltda. - http://www.kankei.com.br

KankeiAjax= function()
    {
    };


KankeiAjax.tmrID= 0;
KankeiAjax.onInterval= function() {};
KankeiAjax.onError= function(errorData) {};
KankeiAjax.onNotification= KankeiAgendaDefaultNotification; 
    
KankeiAjax.start_interval= function()
    {
        KankeiAjax.interval();
	    KankeiAjax.tmrID = setInterval( KankeiAjax.interval, 30000 );
    };

KankeiAjax.stop_interval= function()
    {
	    clearInterval( KankeiAjax.tmrID );
    };

KankeiAjax.interval= function()
    {
        try
        {
            KankeiAjax.onInterval();
            sendAJAX("ajax.aspx","action=notification",KankeiAjax.receiveNotifications);
        }
        catch (excep)
        {
            KankeiAjax.onError(excep);
        }
    };

KankeiAjax.receiveNotifications= function(data)
    {
        if( data == "erro" )
        {
            KankeiAjax.onError(data);
        } else
        {
            KankeiAjax.onNotification(data);
	    }
    };
    
function KankeiAgendaDefaultNotification(data)
{
    if( data.length > 0 )
    {
        var url='avisos.aspx';
        window.open(url,'KankeiWebNotifyWindow',
            'toolbar=no,location=no,status=no,menubar=no,width=400,height=230,scrollbars=no,resizable=yes');
    }
}
			
// Funções básicas do AJAX

function sendAJAX(page,parameters,returnFunction)
{
		var req = newXMLHttpRequest();
		var handlerFunction = getReadyStateHandler(req, returnFunction);
		req.onreadystatechange = handlerFunction;
		req.open("POST", page, true);
		req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
		if( parameters.length > 0 )
		{
			req.send(parameters);
		}
}		


function newXMLHttpRequest() 
{
	var xmlreq = false;
	if (window.XMLHttpRequest) 
	{
		// Create XMLHttpRequest object in non-Microsoft browsers
		xmlreq = new XMLHttpRequest();

	} 
	else if (window.ActiveXObject) 
	{
		// Create XMLHttpRequest via MS ActiveX
		try 
		{
		// Try to create XMLHttpRequest in later versions
		// of Internet Explorer
		xmlreq = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e1) 
		{
			// Failed to create required ActiveXObject
			try 
			{
				// Try version supported by older versions
				// of Internet Explorer

				xmlreq = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e2)
			{
				// Unable to create an XMLHttpRequest with ActiveX
			}
		}
	}
	return xmlreq;
}

function getReadyStateHandler(req, responseXmlHandler)
{
	return function () 
	{
		if (req.readyState == 4) 
		{
			if (req.status == 200)
			{
				responseXmlHandler(req.responseText);
			} else
			{
			    KankeiAjax.onError(req);
			}
		}
	}
}

//-->
