function GetXMLHttpRequest() {
    var obj;
    // Dichiariamo una variabile che indica se l'oggetto è stato creato
    // o meno dato che si procederà per tentativi
    var creato = false;
    try {
        // Crea l'oggetto XMLHttpRequest (funziona con Firefox, Mozilla, 
        // Opera, Safari e Internet Explorer dalla 7)
        obj = new XMLHttpRequest();
        creato = true;
    } catch (e) {
        // Per le versioni precedenti alla 7 di IE si procede tentando di
        // creare l'oggetto ActiveX XMLHttpRequest, che assume nomi diversi
        // a seconda delle versioni
        var IEXMLHttpRequestNames = new Array("Microsoft.XmlHttp", "MSXML4.XmlHttp", "MSXML3.XmlHttp",
            "MSXML2.XmlHttp", "MSXML.XmlHttp");
        
        for (var i = 0; i < IEXMLHttpRequestNames .length; i++) {
            try {
                obj = new ActiveXObject(IEXMLHttpRequestNames[i]);
                creato = true;
            } catch (e) { }
        }
    }
    
    // Se è stato possibile creare l'oggetto lo restituisce altrimenti
    // da come risultato null
    if (creato) {
        return obj;
    } else {
        return null;    
    }
}
// Funzione richiamata quando si clicca su un link del menu, richiede al
// server e mostra i dati in questione
function ajaxGet(page,tar,noWait,iload) {
//alert(page);
			//onload_callback=false;
    var request = GetXMLHttpRequest()
    if (request == null) return true;
    request.open("GET", page, false);
    request.send(null);
    if(request.status == 200) {
       if (!iload) document.getElementById(tar).innerHTML = request.responseText;
		 else window.parent.document.getElementById(tar).innerHTML = request.responseText;
		 code=getCode(request.responseText);
		 if (code) eval(code);
    } else {
        //alert("Si è verificato un errore: \n" + request.status + " - " + request.statusText);
		  if (!iload)  document.getElementById(tar).innerHTML = "<code>Error loading '" + page + "' into '" + tar + "': \n" + request.status + " - " + request.statusText + "</code";
		  else window.parent.document.getElementById(tar).innerHTML = "<code>Error loading '" + page + "' into '" + tar + "': \n" + request.status + " - " + request.statusText + "</code";
    }
    return false;
}
function tinyMceCallback(source,tar) {
document.getElementById(tar).value=tinyMCE.getContent(source);
}
function getCode(page) {
	trt=false
	starting='<script type="text/javascript">';
	ending='</script>';
	start=page.search(starting);
	end=page.search(ending);
	if (start!=-1 && end!=-1) {
	//alert(start+" "+end);
		trt=page.slice(start+starting.length,end);
	//alert(trt);
	}
	
	return trt;
}


//##################################################################################
//## FORM SUBMIT WITH AJAX                                                        ##
//## @Author: Simone Rodriguez aka Pukos <http://www.SimoneRodriguez.com>         ##
//## @Version: 1.2                                                                ##
//## @Released: 28/08/2007                                                        ##
//## @License: GNU/GPL v. 2 <http://www.gnu.org/copyleft/gpl.html>                ##
//##################################################################################


function ajaxPost(strURL,formname,responsediv,responsemsg) {
	var xmlHttpReq = false;
	var self = this;
	// Xhr per Mozilla/Safari/Ie7
	if (window.XMLHttpRequest) {
		self.xmlHttpReq = new XMLHttpRequest();
	}
	// per tutte le altre versioni di IE
	else if (window.ActiveXObject) {
		self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	}
	self.xmlHttpReq.open('POST', strURL, false);
	self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	self.xmlHttpReq.send(getquerystring(formname));
		if (self.xmlHttpReq.status == 200) {
			// Quando pronta, visualizzo la risposta del form
			updatepage(self.xmlHttpReq.responseText,responsediv);
				 code=getCode(self.xmlHttpReq.responseText);
		 if (code) eval(code);
} else {
			// In attesa della risposta del form visualizzo il msg di attesa
			updatepage(responsemsg,responsediv);
		}
	return false;
}

function getquerystring(formname) {
    var form = document.forms[formname];
	var qstr = "";

    function GetElemValue(name, value) {
		 
        qstr += (qstr.length > 0 ? "&" : "")
            + escape(name).replace(/\+/g, "%2B") + "="
          	+ value.replace('&',escape('&'));
			 //  + escape(value ? value : "").replace(/\+/g, "%2B");
			//+ escape(value ? value : "").replace(/\n/g, "%0D");
    }
	
	var elemArray = form.elements;
    for (var i = 0; i < elemArray.length; i++) {
			var element = elemArray[i];
			var elemType = element.type.toUpperCase();
			var elemName = element.name;
			if (elemName) {
				if (elemType == "TEXT"
				|| elemType == "TEXTAREA"
				|| elemType == "PASSWORD"
				|| elemType == "BUTTON"
				|| elemType == "RESET"
				|| elemType == "SUBMIT"
				|| elemType == "FILE"
				|| elemType == "IMAGE"
				|| elemType == "HIDDEN")
				GetElemValue(elemName, element.value);
				else if (elemType == "CHECKBOX" && element.checked)
				GetElemValue(elemName, 
				element.value ? element.value : "On");
				else if (elemType == "RADIO" && element.checked)
				GetElemValue(elemName, element.value);
				else if (elemType.indexOf("SELECT") != -1)
				for (var j = 0; j < element.options.length; j++) {
					var option = element.options[j];
					if (option.selected)
					GetElemValue(elemName,
					option.value ? option.value : option.text);
				}
			}
    }
    return qstr;
}
function updatepage(str,responsediv){
		 code=getCode(str);
		 if (code) eval(code);

    document.getElementById(responsediv).innerHTML = str;
}