this.objXML = null;
this.objTXT = "";

this.div_text = "&nbsp;Attendere";
this.div_background = '#F00';
this.div_color='#FFF';
this.div_top = "2px";
this.div_left = "2px";
this.div_width = "90px";
this.div_heigth = "20px";
this.view = false;
this.dot = 0;

this.div_left_temp = '2px';
this.div_top_temp = '2px'; 


function ajaxProvider()
{
  
}

ajaxProvider.prototype.dotloading = function ()
{
	if(view) 
	{
	   	var punti = '';
		for(i = 0; i<= dot; i++)
		{
			if(i != 0)
				punti += '.';
		}		
		document.getElementById("loading").innerHTML = div_text + punti + '&nbsp;';
		if(dot == 4)
		{
			dot = 0;	
		} else {
			dot++;	
		}		
		setTimeout('ajaxProvider.prototype.dotloading()', 200);
	}
}

ajaxProvider.prototype.viewloading = function(what)
{
	if(what)
	{
		var div = document.createElement("div");
		div.id = "loading";
		div.innerHTML = div_text;
		div.align = "left";
		div.style.display = '';
		div.style.backgroundColor = div_background ;
		div.style.color = div_color;
		div.style.position = 'absolute';
		div.style.zIndex = '101';
		div.style.top = div_top;
		div.style.left = div_left;
		div.style.width = div_width;
		div.style.heigth = div_heigth;
		document.body.appendChild(div);	
		setTimeout('ajaxProvider.prototype.dotloading()', 100);
	} else {
		document.body.removeChild(document.getElementById("loading"));	
		div_left = div_left_temp;
        div_top = div_top_temp;
	}
	view = what;
}

ajaxProvider.prototype.getXMLHttpRequest = function() {
	var XHR = null;
	var browserUtente = navigator.userAgent.toUpperCase();	
 	if(typeof(XMLHttpRequest) === "function" || typeof(XMLHttpRequest) === "object")
  		XHR = new XMLHttpRequest();
 	else if(window.ActiveXObject &&  browserUtente.indexOf("MSIE 4") < 0) 
	{
		if(browserUtente.indexOf("MSIE 5") < 0)
   			XHR = new ActiveXObject("Msxml2.XMLHTTP");
  		else
   			XHR = new ActiveXObject("Microsoft.XMLHTTP");
 	}
 	return XHR;
}


ajaxProvider.prototype.getTxtResponse = function(url, params, funzione)
{
    div_left = div_left_temp;
    div_top = div_top_temp;
	ajaxProvider.prototype.getResponse(url, params, 'TXT', funzione);
}

ajaxProvider.prototype.getTxtResponseWidthCoordinat = function(url, params, funzione, top, left)
{
    div_top = top + "px";
    div_left = left + "px";
	ajaxProvider.prototype.getResponse(url, params, 'TXT', funzione);
}

ajaxProvider.prototype.getXmlDocument = function(url, params, funzione)
{
    div_left = div_left_temp;
    div_top = div_top_temp;
	ajaxProvider.prototype.getResponse(url, params, 'XML', funzione);
}

ajaxProvider.prototype.getXmlDocumentWidthCoordinat = function(url, params, funzione, top, left)
{
    div_top = top + "px";
    div_left = left + "px";
	ajaxProvider.prototype.getResponse(url, params, 'XML', funzione);
}

ajaxProvider.prototype.getResponse = function(url, params, response, funzione)
{
	var req = ajaxProvider.prototype.getXMLHttpRequest();
	ajaxProvider.prototype.viewloading(true);
	req.onreadystatechange = function(){
			if(req.readyState == 4)
			{
				ajaxProvider.prototype.viewloading(false)
				isResponse = true;
				if (req.status == 200) {
					if(response == 'XML')
					{
						ajaxProvider.objXML = req.responseXML;	
						funzione(ajaxProvider.objXML);
					} else {
						ajaxProvider.objTXT = req.responseText;
						funzione(ajaxProvider.objTXT);
					}				
				} else {
					//alert('Error: ' + req.status);
				}
			}			
		};
	
	req.open("post", url + '?'+ params, true);
	req.setRequestHeader("content-type", "application/x-www-form-urlencoded");
	var par = params;
	req.send('');
}