function ajaxInsertFieldArray(url,tagToChange,tagToInsert,music,funzioneDaEseguire){
var xmlHttpReq
xmlHttpReq=new XMLHttpRequest();
var n;
var originalClass=tagToChange.className.split("ajax")[0]
tagToChange.className=originalClass + " ajaxN";
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
n=isResultCorrect(xmlHttpReq.responseText);
if(n>=0){
tagToChange.className=originalClass;
arrayRisultati=xmlHttpReq.responseText.split("ç")
for(var i=0;i<arrayRisultati.length-1;i++){
tagToInsert[i].innerHTML=xmlHttpReq.responseText.split("ç")[i];
}

if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
}else{
alert("-Errore di caricamento-\n"+displayError(xmlHttpReq.responseText.split("ç")[1]));
playMusic(music);
}
}
}
}

function ajaxIterator(arrayURL,seqElm,indice,risultato,funzioneDaEseguire,richiedietichetta,arrayURLetichette,fdesempre){
var xmlHttpReq
if(seqElm!=null)
    seqElm[indice].innerHTML=""
xmlHttpReq=new XMLHttpRequest();
url=arrayURL[indice];
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
var corretto=isResultCorrect(xmlHttpReq.responseText)
if (corretto>=0){

if (richiedietichetta!="true")
{
if(seqElm!=null)
    seqElm[indice].innerHTML="Ok"
indice++;
if(indice>=arrayURL.length){
if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
}else{
if(fdesempre!=null)
    eval(fdesempre)
ajaxIterator(arrayURL,seqElm,indice,risultato,funzioneDaEseguire,richiedietichetta,arrayURLetichette,fdesempre)
}
}else{
if(fdesempre!=null)
    eval(fdesempre)
xmlHttpReq=new XMLHttpRequest();
xmlHttpReq.open("GET", arrayURLetichette[indice], true);
xmlHttpReq.send('')
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
if(seqElm!=null)
    seqElm[indice].innerHTML=xmlHttpReq.responseText.split('ç')[0]
indice++;
if(indice>=arrayURL.length){
if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
}else{
if(fdesempre!=null)
    eval(fdesempre)
ajaxIterator(arrayURL,seqElm,indice,risultato,funzioneDaEseguire,richiedietichetta,arrayURLetichette,fdesempre)
}
}
}
}
}else{
alert("-Errore di aggiornamento-\n"+displayError(xmlHttpReq.responseText.split("ç")[1]));
if(risultato!=null)
    risultato[0]=false;
indice++;
if(indice>=arrayURL.length){
if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
}else{
if(fdesempre!=null)
    eval(fdesempre)
ajaxIterator(arrayURL,seqElm,indice,risultato,funzioneDaEseguire,richiedietichetta,arrayURLetichette,fdesempre)
}
}
}
}
}

function ajaxReply(url,funzioneDaEseguire,elthis){
var xmlHttpReq
xmlHttpReq=new XMLHttpRequest();
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
var corretto=isResultCorrect(xmlHttpReq.responseText)
if (corretto>=0){
if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
}else{
alert("-Errore di aggiornamento-\n"+displayError(xmlHttpReq.responseText.split("ç")[1]));
}
}
}
}

function ajaxSimplAlert(url,corr,err,funzioneDaEseguire,elthis,elthis2,chkclr,okmusic,funzioneDaEseguireNo,noalert,xml,funzioneDaEseguirePre){
if(funzioneDaEseguirePre!=null){
	eval(funzioneDaEseguirePre)
}
	var tsdf=new Date().getTime();
	var tsdfi=url.search(/\?/i)
	if(tsdfi>=0){
		url=url+"&tsdf="+tsdf
	}else{
		url=url+"?tsdf="+tsdf
	}
var xmlHttpReq

var originalClass
if(chkclr!=null){
originalClass=chkclr.className.split("ajax")[0]
chkclr.className=originalClass+" ajaxA";
}

xmlHttpReq=new XMLHttpRequest();
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
	var valore
	var corretto
	if(xml){
		valore=xmlHttpReq.responseText
		corretto=1
	}else{
		valore=xmlHttpReq.responseText.split("ç")[0]
		corretto=isResultCorrect(xmlHttpReq.responseText)
	}
if (corretto>=0){
if(chkclr!=null){
chkclr.className=originalClass+" ajaxS";
}
if(corr!=null)
alert(corr+xmlHttpReq.responseText.split("ç")[0])
if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
if(okmusic!=null)
    playMusic("oksound");
}else{
if(noalert==null){
if(err==null)
	err=""
alert(err+displayError(xmlHttpReq.responseText.split("ç")[1]));
}
if(chkclr!=null){
chkclr.className=originalClass+" ajaxE";
}
if(funzioneDaEseguireNo!=null)
eval(funzioneDaEseguireNo)
}
}
}
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null)
}


function ajaxSimplAlertConfirm(url,corr,err,funzioneDaEseguire,elthis,elthis2,chkclr,url2){
var xmlHttpReq

var originalClass
if(chkclr!=null){
originalClass=chkclr.className.split("ajax")[0]
chkclr.className=originalClass+" ajaxA";
}

xmlHttpReq=new XMLHttpRequest();
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
var corretto=isResultCorrect(xmlHttpReq.responseText)
if (corretto>=0){
if(chkclr!=null){
chkclr.className=originalClass+" ajaxS";
}
if(corr!=null)
alert(corr+xmlHttpReq.responseText.split("ç")[0])
if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
}else{
if(url2!=null && isResultAlertRRConf(xmlHttpReq.responseText)>=0){
var txtalrt=xmlHttpReq.responseText.split("ç")[1]
if(confirm(txtalrt.substring(1,lastcharConf(txtalrt))+"\nConfermi?")){
ajaxSimplAlertConfirm(url+url2,corr,err,funzioneDaEseguire,elthis,elthis2,chkclr)
}
}else{
alert(err+displayError(xmlHttpReq.responseText.split("ç")[1]));
}

if(chkclr!=null){
chkclr.className=originalClass+" ajaxE";
}
}
}
}
}




var ts=0;

function ajaxInsertInTag(url,tagToChange,ajx,funzioneDaEseguire,elthis,sigalert,preFDA,funzErrata){
	var tsdf=new Date().getTime();
	var tsdfi=url.search(/\?/i)
	if(tsdfi>=0){
		url=url+"&tsdf="+tsdf
	}else{
		url=url+"?tsdf="+tsdf
	}
var xmlHttpReq = false;
try{
xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (err){
try{
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}catch (err2){}
}
if(!xmlHttpReq && window.XMLHttpRequest){
xmlHttpReq=new XMLHttpRequest();
}

var originalClass
if(elthis!=null){
originalClass=elthis.className.split("ajax")[0]
elthis.className=originalClass+" ajaxA";
}

xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
if(url.search("ts=")>0){
    tsr=url.split("ts=")[1].split("&")[0]*1
    if(tsr>ts){
        ts=tsr
    }else{
        return false
    }
}


if(elthis!=null){
var corretto=isResultCorrect(xmlHttpReq.responseText)
if (corretto>=0){
elthis.className=originalClass+" ajaxS";
elthis.title="";
}else{
elthis.className=originalClass + " ajaxE";
elthis.title=("-Errore di aggiornamento-\n"+displayError(xmlHttpReq.responseText.split("ç")[1]));
if(sigalert!=null)
alert("-Errore di aggiornamento-\n"+displayError(xmlHttpReq.responseText.split("ç")[1]))
}
}

var newtext=xmlHttpReq.responseText
if(preFDA!=null)
   eval(preFDA)

if (ajx==null || ajx==false){
    tagToChange.innerHTML=newtext
    if(funzioneDaEseguire!=null)
       eval(funzioneDaEseguire)	
}else{
tagToChange.innerHTML=xmlHttpReq.responseText.split("ç")[0]
var corretto=isResultCorrect(xmlHttpReq.responseText)
if (corretto>=0){
    if(funzioneDaEseguire!=null)
       eval(funzioneDaEseguire)
}else{
    if(funzErrata!=null)
       eval(funzErrata)
}
}
}
}
}






function ajaxInsertInTagCTRL(url,tagToChange,errorTagToChange,callerTag,funzioneDaEseguire){
var xmlHttpReq
xmlHttpReq=new XMLHttpRequest();
var originalClass=""
if(callerTag!=null){
originalClass=callerTag.className.split("ajax")[0]
callerTag.className=originalClass+" ajaxA";
}
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
var corretto=isResultCorrect(xmlHttpReq.responseText)
if (corretto>=0){
if(callerTag!=null){
callerTag.className=originalClass;}
tagToChange.innerHTML=xmlHttpReq.responseText.split("ç")[0].replace(/xscript/g,'script')
if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
if(errorTagToChange!=null){
errorTagToChange.innerHTML="";
}
}else{
if(callerTag!=null)
callerTag.className=originalClass+" ajaxE";
if(errorTagToChange!=null){
errorTagToChange.innerHTML=("-Errore di aggiornamento-\n"+displayError(xmlHttpReq.responseText.split("ç")[1]));
}

}
}
}
}

var numInvii=0
var numArrivi=0
var arrivoMaggiore=-1
function oggXmlHttpReq (myReq, numInvio) {
this.myReq = myReq;
this.numInvio = numInvio;
}
function ajaxInsertInTagCTRLsyn(url,tagToChange,errorTagToChange,callerTag){
var xmlHttpReq
xmlHttpReq=new XMLHttpRequest();
var originalClass
if(callerTag!=null){
originalClass=callerTag.className.split("ajax")[0]
callerTag.className=originalClass+" ajaxA";
}
var myOgg=new oggXmlHttpReq (xmlHttpReq, numInvii++)
myOgg.myReq.open("GET", url, true);
myOgg.myReq.send(null)
myOgg.myReq.onreadystatechange = function() {
if(myOgg.myReq.readyState == 4 && myOgg.myReq.status == 200) {
numArrivi++;
var corretto=isResultCorrect(myOgg.myReq.responseText)
if (corretto>=0){
if(callerTag!=null){
callerTag.className=originalClass;}
if(arrivoMaggiore<myOgg.numInvio){
arrivoMaggiore=myOgg.numInvio
tagToChange.innerHTML=xmlHttpReq.responseText.split("ç")[0]
}else{
tagToChange.innerHTML=xmlHttpReq.responseText.split("ç")[0].split("<!--riga-->")[1]

}
}else{
if(callerTag!=null)
callerTag.className=originalClass+" ajaxE";
if(errorTagToChange!=null)
errorTagToChange.innerHTML=displayError(xmlHttpReq.responseText.split("ç")[1]);

}
}
}
}



function ajaxSimpl(url,funzioneDaEseguire,elthis,elthis2){
var xmlHttpReq = false;
try{
xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (err){
try{
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}catch (err2){}
}
if(!xmlHttpReq && window.XMLHttpRequest){
xmlHttpReq=new XMLHttpRequest();
}
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {

if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
}
}
}







function ajaxUpdateFieldWithColorOk(url,tagToChange,music,funzioneDaEseguire,elthis,elthis2,elthis3,funzioneDaEseguireNo){
	var tsdf=new Date().getTime();
	var tsdfi=url.search(/\?/i)
	if(tsdfi>=0){
		url=url+"&tsdf="+tsdf
	}else{
		url=url+"?tsdf="+tsdf
	}
var xmlHttpReq
xmlHttpReq=new XMLHttpRequest();
var originalClass=tagToChange.className.split("ajax")[0]
tagToChange.className=originalClass+" ajaxA";
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
var valore=xmlHttpReq.responseText.split("ç")[0]
var corretto=isResultCorrect(xmlHttpReq.responseText)
if (corretto>=0){
tagToChange.className=originalClass+" ajaxS";
tagToChange.title="";
if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
}else{
if(funzioneDaEseguireNo!=null)
eval(funzioneDaEseguireNo)
tagToChange.className=originalClass + " ajaxE";
tagToChange.title=("-Errore di aggiornamento-\n"+displayError(xmlHttpReq.responseText.split("ç")[1]));

}
}
}
}







function ajaxUpdateField(url,tagToChange,music,funzioneDaEseguire){
var xmlHttpReq
xmlHttpReq=new XMLHttpRequest();
var originalClass=tagToChange.className.split("ajax")[0]
tagToChange.className=originalClass+" ajaxA";
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
var corretto=isResultCorrect(xmlHttpReq.responseText)
if (corretto>=0){
tagToChange.className=originalClass + " ajaxS";;
tagToChange.title="";
if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
}else{
tagToChange.className=originalClass + " ajaxN";
tagToChange.title=("-Errore di aggiornamento-\n"+displayError(xmlHttpReq.responseText.split("ç")[1]));

}
}
}
}


function ajaxInsertField(url,tagToChange,tagToInsert,music,funzioneDaEseguire,notajax){
	var tsdf=new Date().getTime();
	var tsdfi=url.search(/\?/i)
	if(tsdfi>=0){
		url=url+"&tsdf="+tsdf
	}else{
		url=url+"?tsdf="+tsdf
	}

var xmlHttpReq
xmlHttpReq=new XMLHttpRequest();
var n;
var originalClass=tagToChange.className.split("ajax")[0]
tagToChange.className=originalClass + " ajaxN";
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
n=isResultCorrect(xmlHttpReq.responseText);
if(n>=0 || notajax){
tagToChange.className=originalClass;

tagToInsert.innerHTML=xmlHttpReq.responseText.split("ç")[0];
if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
}else{
alert("-Errore di caricamento-\n"+displayError(xmlHttpReq.responseText.split("ç")[1]));
playMusic(music);
}
}
}
}

function isResultCorrect(res){
var n=res.length;
while(n>=0 && (res.charAt(n-1)=="\n" || res.charAt(n-1)==" ")){
n--;
}
if(n>=0 && res.charAt(n-1)!="0")
return -1;
else
return n-1;
}

function displayError(res){
var n=res.length;
while(n>=0 && (res.charAt(n-1)=="\n" || res.charAt(n-1)==" ")){
n--;
}
if(n>=0)
n--
if(n>=0){
while(n>=0 && (res.charAt(n-1)=="\n" || res.charAt(n-1)==" ")){
n--;
}
}
return res.substring(0,n);
}




function ajaxUpdateFieldRefresh(url,tagToChange,url2,tagToInsert,music,funzioneDaEseguire){

var xmlHttpReq
xmlHttpReq=new XMLHttpRequest();
var originalClass=tagToChange.className.split("ajax")[0]
tagToChange.className=originalClass + " ajaxN";
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
var corretto=isResultCorrect(xmlHttpReq.responseText)
if (corretto>=0){
tagToChange.className=originalClass;
ajaxInsertField(url2,tagToChange,tagToInsert,music,funzioneDaEseguire)
tagToChange.title=""
}
else{
tagToChange.className=originalClass + " ajaxE";
tagToChange.title=("-Errore di aggiornamento-\n"+displayError(xmlHttpReq.responseText.split("ç")[1]));
playMusic(music);
}
}
}
}


function playMusic(nm) { 
return false
if(nm==null)
    soundManager.play('errsound',{volume:20});
else
    soundManager.play(nm,{volume:20});

}


function ajaxUpdateFieldTitle(url,tagToChange,music){
var xmlHttpReq
xmlHttpReq=new XMLHttpRequest();
var originalClass=tagToChange.className.split("ajax")[0]
tagToChange.className=originalClass+" ajaxN";
xmlHttpReq.open("GET", url, true);

xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
var corretto=isResultCorrect(xmlHttpReq.responseText)
if (corretto>=0){
tagToChange.className=originalClass;
tagToChange.title=displayError(xmlHttpReq.responseText);
}else{
tagToChange.title="-Errore di aggiornamento-"+displayError(xmlHttpReq.responseText.split("ç")[1]);
playMusic(music);
}
}
}
}




function ajaxInsertInTagImg(url,tagToChange,imgOk,imgNo,imgPr,funzioneDaEseguire,elthis,mymusic){
var xmlHttpReq = false;
try{
xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (err){
try{
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}catch (err2){}
}
if(!xmlHttpReq && window.XMLHttpRequest){
xmlHttpReq=new XMLHttpRequest();
}
tagToChange.innerHTML="<img title='Update in corso...' src='"+imgPr+"'>"
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send('')
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
var corretto=isResultCorrect(xmlHttpReq.responseText)
if (corretto>=0){
tagToChange.innerHTML="<img src='"+imgOk+"' title='Update eseguito correttamente'>"
if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
}else{
if(mymusic!=null){
soundManager.play(mymusic)
}
tagToChange.innerHTML="<img src='"+imgNo+"' title='"+displayError(xmlHttpReq.responseText.split("ç")[xmlHttpReq.responseText.split("ç").length-1])+"'>"
}
}
}
}
function ajaxUpdateFieldImgKey(url,tagToChange,immagine,chiave){

var xmlHttpReq = false;
try{
xmlHttpReq = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (err){
try{
xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}catch (err2){}
}
if(!xmlHttpReq && window.XMLHttpRequest){
xmlHttpReq=new XMLHttpRequest();
}

xmlHttpReq.open("GET", url, true);
var elmimg
elmimg=document.getElementById(immagine)
elmimg.src="/IMG/simboli/edit.gif";
elmimg.width=16;
elmimg.height=16;

xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
var corretto=isResultCorrect(xmlHttpReq.responseText)
if (corretto>=0){
elmimg.src="/IMG/simboli/check2.gif"
elmimg.width=16
elmimg.height=16
if(chiave!=null){
chiave.value=xmlHttpReq.responseText.split("ç")[0]
}
}else{
alert("-Errore di aggiornamento-\n\n"+displayError(xmlHttpReq.responseText.split("ç")[1]))
elmimg.src="/IMG/simboli/g001b.gif"
elmimg.width=16
elmimg.height=16
}
}
}
}


function isResultAlertRRConf(res){
if(res.split("ç")[1].substring(0,1)=="!")
return 0;
else
return -1;
}

function lastcharConf(res){
var n=res.length;
while(n>=0 && (res.charAt(n-1)=="\n" || res.charAt(n-1)==" ")){
n--;
}
return n-1;
}


if(typeof soundManager!="undefined"){
	soundManager.onload = function() {
	soundManager.createSound({
	 id:'errsound',
	 url:'/gen/snd/err1.mp3'
	});
    
	soundManager.createSound({
	 id:'oksound',
	 url:'/gen/snd/chimes.mp3'
	}
    );
	}
}

//esegue url e ne inserisce il risultato in tagToInsert
//a differenza della precedente, in caso di risultato corretto il valore passato non è prima della prima ç,
// ma tra la prima e la seconda ç
function ajaxInsertField2(url,tagToChange,tagToInsert,music,funzioneDaEseguire){
    var xmlHttpReq
    xmlHttpReq=new XMLHttpRequest();
        var n;
        var originalClass=tagToChange.className.split("ajax")[0]
        tagToChange.className=originalClass + " ajaxN";
        //url="http://www.intranet.mister-o.it/ris.txt"
        xmlHttpReq.open("GET", url, true);
        xmlHttpReq.send(null)
        xmlHttpReq.onreadystatechange = function() {
              if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
                    n=isResultCorrect(xmlHttpReq.responseText);
                    if(n>=0){
                        tagToChange.className=originalClass;
                        
                        tagToInsert.innerHTML=xmlHttpReq.responseText.split("ç")[1];
                        if(funzioneDaEseguire!=null)
                            eval(funzioneDaEseguire)
                    }else{
                        alert("-Errore di caricamento-\n"+displayError(xmlHttpReq.responseText.split("ç")[1]));
                        playMusic(music);
                    }
              }
        }
}




function ajaxSimplXML(url,funzioneDaEseguire,elthis){
var xmlHttpReq
	

xmlHttpReq=new XMLHttpRequest();
xmlHttpReq.open("GET", url, true);
xmlHttpReq.send(null)
xmlHttpReq.onreadystatechange = function() {
if(xmlHttpReq.readyState == 4 && xmlHttpReq.status == 200) {
	
if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
	
}
}
}
