var psuc_status = false;
var psuc_url = '';
var psuc_rut_field1 = null;
var psuc_rut_field2 = null;
var psuc_resp_func = null;
var psuc_timeout_func = null;
var psuc_last_rut = '';
var psuc_last_dvrut = '';

function psuc_Iniciar( url, field_rut, field_dvrut, resp_func, timeout_func, auto )
{
	psuc_url = url;

	psuc_rut_field1 = field_rut;
	psuc_rut_field2 = field_dvrut;

	psuc_resp_func = resp_func;
	psuc_timeout_func = timeout_func;

	if(auto)
		setTimeout("psuc_mainLoop()", 100);
}

function psuc_mainLoop()
{
	if(psuc_rut_field1 && psuc_rut_field2)
	{
		var rut = escape(psuc_rut_field1.value);
		var dvrut = escape(psuc_rut_field2.value);

		if(rut != psuc_last_rut && dvrut != psuc_last_dvrut)
		{
			psuc_last_rut = rut;
			psuc_last_dvrut = dvrut;

			if( Rut( rut, dvrut) )
				psuc_Preguntar(rut, dvrut);
			else
				psuc_Response('');
		}
	}

	setTimeout("psuc_mainLoop()", 100);
}

function psuc_Response( datos_suc )
{
	eval( psuc_resp_func + '("' + escape(datos_suc) + '")' );
}

function psuc_TimeOut()
{
	eval( psuc_timeout_func + "()" );
}

function psuc_Evaluar()
{
	var rut = escape(psuc_rut_field1.value);
	var dvrut = escape(psuc_rut_field2.value);

	if( Rut( rut, dvrut) ) 
		psuc_Preguntar(rut, dvrut);
	else
		psuc_Response('');

	return true;
}

function psuc_Preguntar(rut, dvrut)
{
	psuc_status = true;

	if(xmlHttp && xmlHttp.readyState != 0)
		xmlHttp.abort()
  
	xmlHttp = getXMLHTTP();

	if(xmlHttp)
	{
		setTimeout('psuc_Callback()', 10000);
    	xmlHttp.open("GET", psuc_url + "mod_rut=" + rut + "&mod_dvrut=" + dvrut, true);

		xmlHttp.onreadystatechange = function()
		{
			if(xmlHttp.responseText && xmlHttp.readyState == 4 && psuc_status)
			{
				eval(xmlHttp.responseText);
				psuc_status = false;
			}
		};

		xmlHttp.send(null);
	}
}

function psuc_Callback()
{
	if(psuc_status)
	{
		psuc_status = false;

		if(xmlHttp)
			xmlHttp.abort();

		psuc_TimeOut();
	}
}


