var agt = navigator.userAgent.toLowerCase();
var is_ie5 = (agt.indexOf('msie 5') != -1);
var objRequestXmlHttp = null;
function CreateXmlHttpReq(handler){
	var xmlhttp = null;
	try{
		xmlhttp = new XMLHttpRequest();
		try{
			xmlhttp.overrideMimeType('text/xml');
		}
		catch(e){
			xmlhttp.onreadystatechange  = myhandler
		}
		xmlhttp.onload = handler;
		xmlhttp.onerror = handler;
	}
	catch(e){
		var control = (is_ie5) ? 'Microsoft.XMLHTTP' : 'Msxml2.XMLHTTP';
		xmlhttp = new ActiveXObject(control);
		xmlhttp.onreadystatechange = handler;
	}
	return xmlhttp;
}

function DummyHandler(){
	return true;
}

function AXGetData(url, handler){
	var preload = url.substr(url.lastIndexOf('preload=')+8);
	var a = new Array('placeholder');
	for (var j=2; j<arguments.length; j++){
		a[a.length] = arguments[j];
		if(preload=='single')
			document.getElementById(arguments[j]).innerHTML = '<IMG src="/images/please_wait.gif">';
	}
	var which = arguments[2];
	var myhandler = function() {
		var content = AXRequestOk(which);
		if (content != false){
			a[0] = content;
			try{
				return handler.apply(this, a);
			}			
			catch(e){
				return myDummyApply(handler, a);
			}
		}
	}
	url += (url.indexOf("?") == -1) ? '?' : '&';
	url += 'rand='+ escape(Math.random());	
	which = CreateXmlHttpReq(myhandler);
	which.open("GET", url, true);
	which.send(null);
}

function myDummyApply(funcname, args){
	var e = "funcname(";
	for (var i = 0; i < args.length; i++){
	e += "args["+i+"]";
	if (i+1 != args.length)
		e += ",";
	}
	e += ");"
	return eval(e);
}

function AXRequestOk(which){
	if (which.readyState == 4 && which.status == 200)
		return which.responseText;    
	else
		return false;
}

function AXResponse(text) {    
	if(document.getElementById(arguments[1]))
    document.getElementById(arguments[1]).innerHTML = text;
 	else
    alert('Dati non reindirizzati correttamente.')
}

function AXCreateObjForm(url, handler) {
	var a = new Array('placeholder');
	var objRequestXmlHttp
	for (var j=2; j<arguments.length; j++)
	a[a.length] = arguments[j];
	var myhandler = function() {
		var content = AXRequestOk(objRequestXmlHttp);
		if (content != false) {
			a[0] = content;
			try {
				return handler.apply(this, a);
			} catch(e) {
				return myDummyApply(handler, a);
			}
		}
	}
	url += (url.indexOf("?") == -1) ? '?' : '&';
	url += 'rand='+ escape(Math.random());	
	objRequestXmlHttp = CreateXmlHttpReq(myhandler);
	objRequestXmlHttp.open("GET", url);
	objRequestXmlHttp.send(null);
}

function AXObjForm(text, objform, objelement) {
	if(document.forms[objform].elements[objelement].type.indexOf('select') > -1) {
    arrSelect = text.split("||");
    arrValue = arrSelect[0].split("|");
    arrText = arrSelect[1].split("|");
		len = document.forms[objform].elements[objelement].options.length;
    for(j=0; j<len; j++) {
      document.forms[objform].elements[objelement].options[0] = null;
		}
    for(i=0; i<arrValue.length; i++)       
 			document.forms[objform].elements[objelement].options[document.forms[objform].elements[objelement].options.length] 
= new Option(arrText[i].replace("&quot;","'"), arrValue[i].replace("&quot;","'"));
	}
 	else if(document.forms[objform].elements[objelement].type == 'text' || document.forms[objform].elements[objelement].type == 'hidden') {
 		document.forms[objform].elements[objelement].value = text;
 	}
}