var ptrab_status = false;
var ptrab_rut_field1 = null;
var ptrab_rut_field2 = null;
var ptrab_isa_field = null;
var ptrab_accept_func = null;
var ptrab_reject_func = null;
var ptrab_timeout_func = null;
var ptrab_url = '';
var ptrab_last_rut = '';
var ptrab_last_dvrut = '';
var ptrab_last_isa = '';
var ptrab_last_answer = false;

function ptrab_Iniciar( url, field_rut, field_dvrut, field_isa, accept_func, reject_func, timeout_func )
{
	ptrab_url = url;

	ptrab_rut_field1 = document.getElementsByName(field_rut).item(0);
	ptrab_rut_field2 = document.getElementsByName(field_dvrut).item(0);
	ptrab_isa_field = document.getElementsByName(field_isa).item(0);

	ptrab_accept_func = accept_func;
	ptrab_reject_func = reject_func;
	ptrab_timeout_func = timeout_func;
}

function ptrab_Reject( error )
{
	ptrab_last_answer = false;
	eval( ptrab_reject_func + '("' + error + '")'  );
}

function ptrab_Accept( datos_trab )
{
	ptrab_last_answer = true;
	eval( ptrab_accept_func + '("' + datos_trab + '")' );
}

function ptrab_TimeOut()
{
	ptrab_last_answer = false;
	eval( ptrab_timeout_func );
}

function ptrab_Evaluar()
{
	var rut = escape(ptrab_rut_field1.value);
	var dvrut = escape(ptrab_rut_field2.value);
	var isa = escape(ptrab_isa_field.options[ptrab_isa_field.selectedIndex].value);

	if( Rut( rut, dvrut) ) 
		ptrab_Preguntar(rut, dvrut, isa);
	else
		ptrab_Reject('El RUT ingresado no es válido.');

	return true;
}

function ptrab_Preguntar(rut, dvrut, isa)
{
	ptrab_status = true;

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

	if(xmlHttp)
	{
		setTimeout('ptrab_Callback()', 45000);

    	xmlHttp.open("GET", ptrab_url + "mod_rut=" + rut + "&mod_dvrut=" + dvrut + "&mod_asegurador=" + isa, true);
    
    	// What do we do when the response comes back?
		xmlHttp.onreadystatechange = function()
		{
			if (xmlHttp.readyState == 4 && xmlHttp.responseText && ptrab_status)
			{
				ptrab_status = false;
				eval(xmlHttp.responseText);
			}
		};

		xmlHttp.send(null);
	}
}

function ptrab_Callback()
{
	if(ptrab_status)
	{
		ptrab_status = false;

		if(xmlHttp)
			xmlHttp.abort();

		ptrab_TimeOut();
	}
}


