//metti radio e checkbox in uno span con scritto
//     type="colorajax"
function ajaxsubmit(el,fda,chgpar,chgval){
var ricerca=true
var ajaxform=el
while(ricerca){
ajaxform=recuperaTagSuperioreAF(ajaxform,"DIV")
if(ajaxform==false){
ricerca=false
}else{
if(ajaxform.attributes["type"]!=null){
if(ajaxform.attributes["type"].value=="ajaxform"){
ricerca=false;
}else{ajaxform=ajaxform.parentNode}
}else{ajaxform=ajaxform.parentNode}
}
}
if(ajaxform==false)
return false
var url
if(ajaxform.attributes["name"]){
url=ricostruisciURL(ajaxform,ajaxform.attributes["name"].value,chgpar,chgval)
}else{
url=ricostruisciURL(ajaxform,null,chgpar,chgval)
}
if (url==false)
return false

var campoValidato=true
if(el.attributes["chktype"]!=null && el.attributes["chkprop"]!=null)
campoValidato=validateData(el.attributes["chktype"].value,el.attributes["chkprop"].value,el)

var invURL=""
if(campoValidato){
if(el.nodeName=="INPUT" && (el.type=="checkbox" || el.type=="radio")){
if(el.type=="checkbox"){
    if (el.checked)
    invURL=url+"&inpfld="+el.name+"&inpval=1"
    else
    invURL=url+"&inpfld="+el.name+"&inpval=0"
}else{
    invURL=url+"&inpfld="+el.name+"&inpval="+el.value
}
elSPAN=recuperaTagSuperioreAF(el,"SPAN")
if(elSPAN!=false && elSPAN.attributes["type"] && elSPAN.attributes["type"].value=="colorajax"){
el=elSPAN
}
}else
invURL=url+"&inpfld="+el.name+"&inpval="+escape(el.value).replace(/\+/g,"%2B")
ajaxUpdateAF(invURL,el,fda)
}
else
return false
}

function ajaxUpdateAF(url,tagToChange,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=isResultCorrectAF(xmlHttpReq.responseText)
if (corretto>=0){
tagToChange.className=originalClass + " ajaxS";
tagToChange.title="";
if(funzioneDaEseguire!=null)
eval(funzioneDaEseguire)
}else{
tagToChange.className=originalClass + " ajaxE";
tagToChange.title=("-Errore di aggiornamento-\n"+displayErrorAF(xmlHttpReq.responseText.split("ç")[1]));
alert("-Errore di aggiornamento-\n"+displayErrorAF(xmlHttpReq.responseText.split("ç")[1]));
}
}
}
}

function isResultCorrectAF(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 displayErrorAF(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 recuperaTagSuperioreAF(el,tag){
tmp=el;
while(tmp.nodeName!=tag && tmp.nodeName!="#document"){
tmp=tmp.parentNode;
}
if(tmp.nodeName==tag){
return tmp;
}else{
return false;
}
}

function ricostruisciURL(ajaxform,nomeAjaxForm,chgpar,chgval){
var urlBase=""
var urlAttributi=""
var ajaxinput=ajaxform.getElementsByTagName("ajaxinput")
var disabilitato
disabilitato=false
for(var i=0;i<ajaxinput.length;i++){
if(ajaxinput[i].attributes["name"].value!=""){
    if(nomeAjaxForm==null || (ajaxinput[i].attributes["ajaxformname"] && ajaxinput[i].attributes["ajaxformname"].value==nomeAjaxForm)){
                if(ajaxinput[i].attributes["name"].value=='urlbase'){
                    urlBase=ajaxinput[i].attributes["value"].value;
                }else{
                    if(ajaxinput[i].attributes["name"].value==chgpar){
                        urlAttributi=urlAttributi+'&'+chgpar+'='+chgval;
                    }else{
                        urlAttributi=urlAttributi+'&'+ajaxinput[i].attributes["name"].value+'='+ajaxinput[i].attributes["value"].value;
                    }
                    if(ajaxinput[i].attributes["name"].value=="denyupdate" && ajaxinput[i].attributes["value"].value=="1")
                    {
                        disabilitato=true
                    }
                }
    }
}
}
if(disabilitato){
alert("L'update e' stato disabilitato.")
return false;
}else{
if(urlBase!=""){
var url=urlBase+'?'+urlAttributi.substring(1);
return url;
}else{
alert("campo urlBase mancante o assente")
return false;
}
}
}
