///--- mette in pausa per i millisecondi passati
function pausecomp(millis)
{
var date = new Date();
var curDate = null;

do { curDate = new Date(); }
while(curDate-date < millis);
} 
//-----------------------------------------------------------------------------------
/* funzione per caricare pagine in ajax con passaggio variabili in POST
 * sistassi per richiamare lo script:
 * javascript:ajax_post('pagina_da_chiamare','id_del_div','nome_var1#val_var1#nome_var2#val_var2#nome_var3#val_var3')
 * Nota:
 * la pagina da chiamare può essere anche senza la este ".php" 
 * in quanto la aggiunge da se lo script
 */
//-----------------------------------------------------------------------------------
function ajax_post(pag,iddiv,param,loaderonoff){
//-----------------------------------------------------------------------------------
var pag=pag.replace(/".php"/g,"");  //--- sicurezza formattazione pagina passata
 	pag=pag.replace(/"."/g,"");     //--- evito link esterni anche se già bloccato da ajax
	pag=pag+".php";
	//-------------------------------------------------------------------------------
var len=param.length;   		//--- grandezza stringa passata
var pos=param.search(/#/);      //--- controlla se c'è da splittare i dati
var par_post="";
//alert("PARAM:"+param+"\nPOS:"+pos+"\nLEN:"+len)
if(len>=1){
          if(pos>=1)
		  {
		  var array_param=param.split("#");
		  var a_len=array_param.length; 
       		   for(x=0; x<=(a_len-2); x++)
          	   		{
               		//alert(unescape("\nX:"+x+"\n"+array_param[(x)]+"\n"+array_param[(x+1)]));
					par_post += array_param[(x)] + "="+encodeURIComponent(array_param[(x+1)])+"&";
					x++;
               		}
		  }//------- fine splitta	
		  else
		  {
           //------- un solo parametro passato per default lo chiama ajax
		  par_post= "ajax" + "="+encodeURIComponent(param)+"&";
		  }
} //--- fine param non vuoto
par_post=par_post.substr(0,(par_post.length-1)); //--- toglie l'ultimo carattera
//-------------------------------------- †††S?-------------------
//---
if (window.ActiveXObject){
	var ajax = new ActiveXObject("Microsoft.XMLHTTP"); // codice per  IExplore
 	}
 	else
  	{
	var ajax = new XMLHttpRequest(); // codice per  altri browser
}
//--------------------------------------------------------
    //var ajax;
    // 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)
       // ajax = 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 {
                ajax = new ActiveXObject(IEXMLHttpRequestNames[i]);
                creato = true;
            } catch (e) { }
        }
    }
    
    // Se è stato possibile creare l'oggetto lo restituisce altrimenti
    // da come risultato null
//--------------------------------------------------------
var tipDiv = document.getElementById(iddiv); //ottiene il div
var loadDiv = document.getElementById("ajax_loader"); //ottiene il div
var gifDiv = document.getElementById("ajax_gif"); //ottiene il div
if(loaderonoff==1){
//var scrtop=document.body.scrollTop;
var scrtop=window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;;
var hscr=screen.availHeight;
        loadDiv.style.top = "0px";
	loadDiv.style.height = (scrtop+hscr)+"px";
	//loadDiv.style.marginTop = scrtop+"px";
	gifDiv.style.marginTop=(scrtop+100)+"px";
	loadDiv.style.display="block";
//alert(document.documentElement.scrollTop+" scr:"+scrtop+" hscr:"+hscr);	
}
/*loadDiv.innerHTML = "Loading...";*/
//---------------
ajax.open("POST",pag,true);
ajax.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=UTF-8');
ajax.setRequestHeader('Content-length',par_post.length);


//---------------------------------
ajax.onreadystatechange = function () {
    if (ajax.readyState == 4) {
        if( ajax.status == 200 ){ // controllo che la richiesta sia avvenuta con successo
             var resp = ajax.responseText; //prende i dati
			 var tipDiv = document.getElementById(iddiv); //ottiene il div
			 var loadDiv = document.getElementById("ajax_loader"); //ottiene il div
			 //pausecom †††S?p(2000);
			 loadDiv.style.display="none";
			 tipDiv.innerHTML = resp; //imposta il contenuto
			 //ahahEvalJS(iddiv);
			 myEvalJS(iddiv);
	   				  } else {
             var tipDiv = document.getElementById(iddiv); //ottiene il div
             var error = 'Errore la richiesta ajax non &egrave; avvenuta con successo' ;
             tipDiv.innerHTML = error ; //imposta il contenuto di errore
       						 }
    }
}
//---------------------------------
ajax.send(par_post);
//ajax.setRequestHeader('Connection', 'close');
}
//---------------------
function ahahEvalJS(elementId) {
	var scripts = document.getElementById(elementId).getElementsByTagName('script');
	var code;
	for (var i = 0; i < scripts.length; i++) {
		code =	scripts[i].innerHTML ? scripts[i].innerHTML : 
			scripts[i].text ? scripts[i].text : 
			scripts[i].textContent;
		try {
			eval(code);
		} catch(e) {
			alert(e);
		}
	}
	alert('script:'+scripts.value)
}
function myEvalJS(elementId){
if(document.getElementById('idJS') == null){}else
{
	var code = document.getElementById('idJS').innerHTML;
	if(code!="")
	{
		try {
			eval(code);
			document.getElementById('idJS').innerHTML="";
		} catch(e) {
			alert(e);
		}
	}
	//alert('script:'+code)
}	
}


