/**
 * @author Bartolotta Gioachino
 * @version 0.3
 */
function MioAjax() {
	// Costruttore della classe
	// istanziamo l'oggetto mioxmlHttp
	var mioxmlHttp;
	// funzione per il richiamo di mioxmlHttpRequest
	// Controlliamo se si usa explorer oppure Mozilla
	function mioCreateXmlHttpReq(handler) {
	    var mioxmlHttp = null;
	    try {
	        mioxmlHttp = new XMLHttpRequest(); /* e.g. Firefox */
	        }
	        catch(e) {
	            try {
	                mioxmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); /* Alcune Versioni di IE */
	            }
	            catch(e) {
	                mioxmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); /* Alcune Versioni di IE */
	            }
	        }
	        mioxmlHttp.onreadystatechange = handler;
	        return mioxmlHttp;
	}
	
	var idDestinazione;
	
    MioAjax.prototype.setDestinazione = function(idDestinazione){
    	this.idDestinazione = idDestinazione;
    } 

    MioAjax.prototype.getDestinazione = function(){
    	return this.idDestinazione;
    } 
        
    MioAjax.prototype.hideLink = function(Event){
    	// Dovremmo cercare di gestire i diversi eventi
    	try{
	    	if(Event.MOUSEOVER==4){
	    		window.status = "";
	    	}
    	}
    	catch(e){
    		e.toString();
    	}
    	return true;
    }
    
    MioAjax.prototype.apriContenuto = function(idDestinazione, pageURL, tipoChiamata, parametri){
    	this.setDestinazione(idDestinazione);
	// function apriContenuto(idDestinazione, pageURL, tipoChiamata, parametri){
	    this.richiesta = function() {
	    	// alert("Status "+ex_request.status);
	    	// alert(idDestinazione);
	        if(ex_request.readyState == 4 && ex_request.status == 200){
	        	// ex_request.setRequestHeader("Content-type","text/html; charset=UTF-8");
	        	// alert(ex_request.getResponseHeader("Content-type"));
	            document.getElementById(idDestinazione).innerHTML = ex_request.responseText;
	        }
	        else{
	            document.getElementById(idDestinazione).innerHTML = '<img src="/jquery/jQpanels/loading.gif" border="0" align="absmiddle"> Loading in progess...';
	        }
	    }
	    
	    this.estraiParametri = function(miei_parametri){
			var el_parametri = "";
		    // alert(miei_parametri.length);
		    
		    if(miei_parametri.length > 0){
		        for(i = 0; i < miei_parametri.length; i++){
		        	// alert(miei_parametri[i]);
		        	if(i == 0){
			            el_parametri += encodeURI(miei_parametri[i]);
		        	}
		        	else{
		        		// alert(miei_parametri.length);
		        		el_parametri += "&"+encodeURI(miei_parametri[i]);
		        	}
		        }
		    }
		    else{
		    	el_parametri = null;
		    }
		    
		    return el_parametri;
	    }

	    // I parametri devono essere inseriti in un array con la sintassi 
	    // parametro=valore 
	    
		// Funzioni di debug
	    // alert(tipoChiamata);
	    // alert(pageURL);
	    
	    var elenco_parametri = this.estraiParametri(parametri);
	    var ex_request = mioCreateXmlHttpReq(this.richiesta);
	    switch(tipoChiamata){
	        case "GET":
	        // Codice pagina get
		    // var elenco_parametri = estraiParametri(parametri);
		    // Avvia la costruzione dell'oggetto mioxmlHttp
	        if(elenco_parametri != null){
	        	// alert(pageURL+"?"+elenco_parametri);
	            ex_request.open("GET", pageURL+"?"+elenco_parametri);
	            // ex_request.setRequestHeader("Content-type", "text/html; charset=ISO-8859-1");
	        }
	        else{
	        	// alert("parametri vale null");
	            ex_request.open("GET", pageURL);
	            // ex_request.setRequestHeader("Content-type","text/html; charset=ISO-8859-1");
	        }
	        ex_request.send(null);
	        break;
	        
	        case "POST":
	        // Codice pagina post
	        ex_request.open('POST', pageURL, true);
      		ex_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=ISO-8859-1");
	      	ex_request.setRequestHeader("Content-length", elenco_parametri.length);
      		ex_request.setRequestHeader("Connection", "close");
      		ex_request.send(elenco_parametri);
	        break;
	    }
	}
	
	MioAjax.prototype.chiudiId = function(idDestinazione){
		document.getElementById(idDestinazione).innerHTML = null;
		document.getElementById(idDestinazione).style.height = "0px";
	}

}

