﻿var _xhrRequest = "";
//24/01/2011
//var _xhrTimeout = setTimeout("ajaxTimeout();", 5000);
var _xhrTimeout = setTimeout("ajaxTimeout();", 3600000);
var _xmlhttp;
		
if (window.XMLHttpRequest) 
{
    // If IE7, Mozilla, Safari, and so on: Use native object.
    _xmlhttp = new XMLHttpRequest();
}
else
{
    if (window.ActiveXObject) 
    {
         // ...Otherwise, use the ActiveX control for IE5.x and IE6.
         try { _xmlhttp = new ActiveXObject('Msxml2.XMLHTTP.5.0') } catch(e) {}    
         try { _xmlhttp = new ActiveXObject("MSXML3.XMLHTTP") }catch(e){}   
         try { _xmlhttp = new ActiveXObject("MSXML2.XMLHTTP.3.0") }catch(e){}   
         try { _xmlhttp = new ActiveXObject("Msxml2.XMLHTTP") }catch(e){}   
         try { _xmlhttp = new ActiveXObject("Microsoft.XMLHTTP") }catch(e){}  
     
    }
}


// *****************************************************************************************************
// Método para establecer TimeOut en las llamadas sincronas del objeto XMLHttpRequest
//******************************************************************************************************

function ajaxTimeout()
{
    _xmlhttp.abort();
}


// *****************************************************************************************************
// Método para iniciar una conexión asincrona con el objeto XMLHttpRequest
//******************************************************************************************************

function xmlRead(url)
{				
	if(_xmlhttp)	
	{				
		_xmlhttp.onreadystatechange = processReqChange;				
		_xmlhttp.open("GET", url, true);		
		_xmlhttp.send();	
	}
}

		
// *****************************************************************************************************
// Método que obtiene el código de estado de una transmisión asíncrona
//******************************************************************************************************

function processReqChange()
{				
	if (_xmlhttp.readyState == 4) 
	{	
		if (_xmlhttp.status == 200) 
		{	
		    clearTimeout(_xhrTimeout);   
			if (_xmlhttp.responseText.length > 0)
			{			
	            var s_Respuesta = _xmlhttp.responseText;
	            var i_Index = s_Respuesta.indexOf("DATOS");
	            var s_XML = s_Respuesta.substring(i_Index - 1, s_Respuesta.length);
	
	            // Se ha completado la transferencia... 
	            envioTerminado(ParseaXML(s_XML, "RESPONSE"));
			}
		} 
		else 
		{
		    // La transferencia ha devuelto un error...
			envioTerminado('ERROR: ' + _xmlhttp.responseText);		
		}
	}
}


// *****************************************************************************************************
// Parsea el XML recibido, devolviendo el valor del nodo dado en el parámetro 'ps_Tag'
//******************************************************************************************************

function ParseaXML(ps_XML, ps_Tag)
{
	var o_XMLDoc; 
	var o_List;
	var s_XPath;
	var s_Mensaje;

	try
	{
		o_XMLDoc = new ActiveXObject("Microsoft.XMLDOM");
		o_XMLDoc.loadXML(ps_XML);
		
		s_XPath = "/DATOS/" + ps_Tag;
		o_List = o_XMLDoc.documentElement.selectNodes(s_XPath);
		if (o_List.Length != 0) 
		{
			s_Mensaje = o_List.item(0).nodeTypedValue;		
			return s_Mensaje;
		}
		else
			return "";				
	}	
	catch (e)
	{
		return "";
	}		
}

// *****************************************************************************************************
//  Traducción palabras de forma síncrona
// *****************************************************************************************************

function getWord(Key)
{					
    var s_LAN = window.document.getElementById("LAN");
	return getResource(Key, s_LAN.value); 
}


//******************************************************************************************************
//  Traducción palabras de forma asíncrona, pasándole el Elemento (Utilizar para una única traducción)
// *****************************************************************************************************

function getWordAsync(Key, Element)
{
    var url = "../Utiles/Servidor.aspx?s_Opcion=getWord&Valor=" + Key;										
				
	_xmlhttp.open("POST", url, true);				
    _xmlhttp.onreadystatechange = function xmlhttpComplete()
    {
        if (_xmlhttp.readyState == 4) 
	    {	
		    if (_xmlhttp.status == 200) 
		    {	
			    if (_xmlhttp.responseText.length > 0)
			    {			
	                var s_Respuesta = _xmlhttp.responseText;
	                var i_Index = s_Respuesta.indexOf("DATOS");
	                var s_XML = s_Respuesta.substring(i_Index - 1, s_Respuesta.length);
		
	                Element.innerText = ParseaXML(s_XML, "RESPONSE");
			    }
		    } 
	    }
    } 
                	
	_xmlhttp.send();
}


// *****************************************************************************************************
//  Guardar la dirección MAC del usuario logado en la aplicación
// *****************************************************************************************************

function TestNetWork(ps_MAC, ps_MachineName)
{            
    var url = "Pages/Utiles/Servidor.aspx?Opt=NetWork&MAC=" + ps_MAC + "&Machine=" + ps_MachineName;
 
	_xmlhttp.open("POST", url, false);		
	_xmlhttp.send();	
	
	var s_Respuesta = _xmlhttp.responseText;
	var i_Index = s_Respuesta.indexOf("DATOS");
	var s_XML = s_Respuesta.substring(i_Index - 1, s_Respuesta.length);
	
	s_Respuesta = ParseaXML(s_XML, "RESPONSE");
	
	return s_Respuesta;	
}

// *****************************************************************************************************
//  Guardar el precio del producto del panel de líneas de pedido
// *****************************************************************************************************

function ChangePrice(ps_IdProducto, ps_Precio)
{            
    var url = "../Utiles/Servidor.aspx?Opt=CambiarPrecio&Id=" + ps_IdProducto + "&Precio=" + ps_Precio;
 
	_xmlhttp.open("POST", url, false);		
	_xmlhttp.send();	
	
	var s_Respuesta = _xmlhttp.responseText;
	var i_Index = s_Respuesta.indexOf("DATOS");
	var s_XML = s_Respuesta.substring(i_Index - 1, s_Respuesta.length);
	
	s_Respuesta = ParseaXML(s_XML, "RESPONSE");
	
	return s_Respuesta;	
}













