/*FUNZIONI AJAX*/

function caricaElementoScheda(pagina, params, div, el_loading, tipo_visualizzazione, funzione, parametri_aggiuntivi) {	
	xmlhttp=GetxmlhttpObject();
	
	if (xmlhttp==null) {
  		alert ("Browser does not support HTTP Request");
  		return;
  	}
  	
	url= pagina;
	xmlhttp.onreadystatechange=function() {stateChanged(div, el_loading, pagina, tipo_visualizzazione, xmlhttp, funzione, parametri_aggiuntivi)};

	xmlhttp.open("POST",url,true);
	xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp.setRequestHeader("Content-length", params.length);
	xmlhttp.setRequestHeader("Connection", "close");
	xmlhttp.send(params);
}

function caricaElementoTelecomando(pagina, params, div, el_loading, tipo_visualizzazione, funzione, parametri_aggiuntivi) {
	
	xmlhttp2=GetxmlhttpObject();
	
	if (xmlhttp2==null) {
  		alert ("Browser does not support HTTP Request");
  		return;
  	}
  	
	url= pagina;
	xmlhttp2.onreadystatechange=function() {stateChanged(div, el_loading, pagina, tipo_visualizzazione, xmlhttp2, funzione, parametri_aggiuntivi)};
																												
	xmlhttp2.open("POST",url,true);																				
	xmlhttp2.setRequestHeader("Content-type", "application/x-www-form-urlencoded");								
	xmlhttp2.setRequestHeader("Content-length", params.length);													
	xmlhttp2.setRequestHeader("Connection", "close");															
	xmlhttp2.send(params);																						
}																												
																												
function caricaElementoPercorso(pagina, params, div, el_loading, tipo_visualizzazione, funzione, parametri_aggiuntivi) {						
	xmlhttp3=GetxmlhttpObject();																				
																												
	if (xmlhttp3==null) {																						
  		alert ("Browser does not support HTTP Request");														
  		return;																									
  	}																											
																												
	url= pagina;
	xmlhttp3.onreadystatechange=function() {stateChanged(div, el_loading, pagina, tipo_visualizzazione, xmlhttp3, funzione, parametri_aggiuntivi)};

	xmlhttp3.open("POST",url,true);
	xmlhttp3.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp3.setRequestHeader("Content-length", params.length);
	xmlhttp3.setRequestHeader("Connection", "close");
	xmlhttp3.send(params);
}

function caricaVisorePercorso(pagina, params, div, el_loading, tipo_visualizzazione, funzione, parametri_aggiuntivi) {						
	xmlhttp4=GetxmlhttpObject();																				
																												
	if (xmlhttp4==null) {																						
  		alert ("Browser does not support HTTP Request");														
  		return;																									
  	}																											
																												
	url= pagina;
	xmlhttp4.onreadystatechange=function() {stateChanged(div, el_loading, pagina, tipo_visualizzazione, xmlhttp4, funzione, parametri_aggiuntivi)};

	xmlhttp4.open("POST",url,true);
	xmlhttp4.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp4.setRequestHeader("Content-length", params.length);
	xmlhttp4.setRequestHeader("Connection", "close");
	xmlhttp4.send(params);
}

function caricaTabPercorso(pagina, params, div, el_loading, tipo_visualizzazione, funzione, parametri_aggiuntivi) {						
	xmlhttp5=GetxmlhttpObject();																				
																												
	if (xmlhttp5==null) {																						
  		alert ("Browser does not support HTTP Request");														
  		return;																									
  	}																											
																												
	url= pagina;
	xmlhttp5.onreadystatechange=function() {stateChanged(div, el_loading, pagina, tipo_visualizzazione, xmlhttp5, funzione, parametri_aggiuntivi)};

	xmlhttp5.open("POST",url,true);
	xmlhttp5.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp5.setRequestHeader("Content-length", params.length);
	xmlhttp5.setRequestHeader("Connection", "close");
	xmlhttp5.send(params);
}

function caricaVisoreCustomPercorso(pagina, params, div, el_loading, tipo_visualizzazione, funzione, parametri_aggiuntivi) {
	xmlhttp6=GetxmlhttpObject();																				
																												
	if (xmlhttp6==null) {																						
  		alert ("Browser does not support HTTP Request");														
  		return;																									
  	}																											
																												
	url= pagina;
	xmlhttp6.onreadystatechange=function() {stateChanged(div, el_loading, pagina, tipo_visualizzazione, xmlhttp6, funzione, parametri_aggiuntivi)};

	xmlhttp6.open("POST",url,true);
	xmlhttp6.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp6.setRequestHeader("Content-length", params.length);
	xmlhttp6.setRequestHeader("Connection", "close");
	xmlhttp6.send(params);
}

function caricaTabCustomPercorso(pagina, params, div, el_loading, tipo_visualizzazione, funzione, parametri_aggiuntivi) {						
	xmlhttp7=GetxmlhttpObject();																				
																												
	if (xmlhttp7==null) {																						
  		alert ("Browser does not support HTTP Request");														
  		return;																									
  	}																											
																												
	url= pagina;
	xmlhttp7.onreadystatechange=function() {stateChanged(div, el_loading, pagina, tipo_visualizzazione, xmlhttp7, funzione, parametri_aggiuntivi)};

	xmlhttp7.open("POST",url,true);
	xmlhttp7.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp7.setRequestHeader("Content-length", params.length);
	xmlhttp7.setRequestHeader("Connection", "close");
	xmlhttp7.send(params);
}

function caricaVisoreMultimedia(pagina, params, div, el_loading, tipo_visualizzazione, funzione, parametri_aggiuntivi) {
	xmlhttp7=GetxmlhttpObject();																				
																												
	if (xmlhttp7==null) {																						
  		alert ("Browser does not support HTTP Request");														
  		return;																									
  	}																											
																												
	url= pagina;
	xmlhttp7.onreadystatechange=function() {stateChanged(div, el_loading, pagina, tipo_visualizzazione, xmlhttp7, funzione, parametri_aggiuntivi)};

	xmlhttp7.open("POST",url,true);
	xmlhttp7.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp7.setRequestHeader("Content-length", params.length);
	xmlhttp7.setRequestHeader("Connection", "close");
	xmlhttp7.send(params);
}

function aggiornaSessione(pagina, params, div, el_loading, tipo_visualizzazione, funzione, parametri_aggiuntivi) {
	xmlhttp8=GetxmlhttpObject();																				
																												
	if (xmlhttp8==null) {																						
  		alert ("Browser does not support HTTP Request");														
  		return;																									
  	}																											
																												
	url= pagina;
	xmlhttp8.onreadystatechange=function() {stateChanged(div, el_loading, pagina, tipo_visualizzazione, xmlhttp8, funzione, parametri_aggiuntivi)};

	xmlhttp8.open("POST",url,true);
	xmlhttp8.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	xmlhttp8.setRequestHeader("Content-length", params.length);
	xmlhttp8.setRequestHeader("Connection", "close");
	xmlhttp8.send(params);
}

function stateChanged(div, el_loading, pagina, tipo_visualizzazione, oggettoRequest, funzione, parametri_aggiuntivi) {
	if (oggettoRequest.readyState==4) {	
		disabilitaLoading();
		if(tipo_visualizzazione=="aggiungi") {
			var testo_attuale = document.getElementById(div).innerHTML;
			document.getElementById(div).innerHTML = testo_attuale+oggettoRequest.responseText;
			ahahEvalJS(div);
			if(funzione!="") {
				//console.log("entrato");
				//console.log(eval(funzione)+(parametri_aggiuntivi));
				eval(funzione+"("+parametri_aggiuntivi+");");
			}
		}
		else if(tipo_visualizzazione=="hidden") {
			//console.log("entrato");
		}
		else {
			var testo_attuale = "";
			document.getElementById(div).innerHTML = testo_attuale+oggettoRequest.responseText;
			ahahEvalJS(div);
			if(funzione!="") {
				//console.log("entrato");
				//console.log(eval(funzione)+(parametri_aggiuntivi));
				eval(funzione+"("+parametri_aggiuntivi+");");
			}
		}
		
		return false;
	} 
}

function GetxmlhttpObject() {

	if(window.XMLHttpRequest && !(window.ActiveXObject)) {
		try {
			return new XMLHttpRequest();
    	} 
    	catch(e) {
			return false;
    	}
		// branch for IE/Windows ActiveX version
	} 
	else if(window.ActiveXObject) {
   		try {
   			return new ActiveXObject("Msxml2.xmlhttp");
 	 	} 
 	 	catch(e) {
	    	try {
    			return new ActiveXObject("Microsoft.xmlhttp");
    		} 
    		catch(e) {
      			return false;
    		}
		}
	}  
}

function ahahEvalJS(elementId) {
    var scripts = document.getElementById(elementId).getElementsByTagName('script');
    var code;
    for (var i = 0; i < scripts.length; i++) {
    	//console.log(scripts[i].text);
        code = scripts[i].innerHTML ? scripts[i].innerHTML : 
            scripts[i].text ? scripts[i].text : 
            scripts[i].textContent;
        try {
            eval(code);
        } catch(e) {
            alert(e);
        }
    }
}
//Effettua l'inserimento, nel contenitore indicato, il div con il loading
//	parametri: 
//		contenitore - id del contenitore dove inserire il loading
//		el_loading - stringa performattata(in file header.php) con il div che contiene il loading
function abilitaLoading(contenitore, el_loading) {
	var contenuto = document.getElementById(contenitore).innerHTML;
	document.getElementById(contenitore).innerHTML = el_loading+contenuto;
}

//Effettua la cancellazione del loading
function disabilitaLoading() {
	if(document.getElementById("loading_div")) {
		var elem_load = document.getElementById("loading_div");
		elem_load.parentNode.removeChild(elem_load);
	}
}
