//****************************************************************************
//
//  Tecnologia Luna - FrameWork AJAX sviluppato e distribuito da Luca Vignali
//  Utilizzare e redistribuire questo codice secondo i Termini e le
//  condizioni riportate sul sito www.lunajs.com.
//	Tutti i diritti sono riservati
//  Info da php : helpluna(); o http://www.lunajs.com
//
//****************************************************************************

//********** CONFIGURAZIONE ************//
var attendereCaricamento = false; // settare su true se si vuole bloccare le richieste fino a quando i dati non sono arrivati a destinazione con successo
var id_caricamento_default = null; // nome dell'elemento di default dove far comparire il testo del caricamento
var html_caricamento_default = null; // il codice html da inserire nell'elemento di default o in quello indicato nella funzione settaCaricamento()
var segnala_caricamento = false; // se impostato su true, ogni chiamata  luna() seguirā l'introduzione del codice HTML del loading nellāelemento indicato
//********** FINE CONFIGURAZIONE *******//
function settaCaricamento(id,html) {
	if (segnala_caricamento) {
		id = (id)?id:id_caricamento_default;
		html = (html)?html:html_caricamento_default;
		$update(id,html);
	}
};
function fineCaricamento(id,html) {
	if (segnala_caricamento) {
		id = (id)?id:id_caricamento_default;
		html = (html)?html:html_caricamento_default;
		$update(id,"");
	}
};

var RichiestaLuna = null;
function lunaREQ(func) {
  var xmlhttp = null;
  try {
    xmlhttp = new XMLHttpRequest();
  } catch(e) {
    try {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
  }
  xmlhttp.onreadystatechange = func;
  return xmlhttp;
}

function alcambiamento() {
	if (RichiestaLuna.readyState == 4 && RichiestaLuna.status == 200) {
		var XMLdoc = RichiestaLuna.responseXML;
		var el = XMLdoc.getElementsByTagName("data");
		var attributo = "";
		var valore = "";
		var tmp_el = "";
		for(var i=0;i<el.length;i++) {
			attributo = el[i].getAttribute("targ");
			tmp_el = $(attributo);	
			tmp_el.innerHTML = decoding_s(el[i].childNodes[0].nodeValue);
		}
		// ricerca delle richieste  valutative
		ele = XMLdoc.getElementsByTagName("ev");
		for(var j=0;j<ele.length;j++) {
			evalut = decoding_s(ele[j].childNodes[0].nodeValue);
			eval(evalut);
		}
	// reset della richiesta
	RichiestaLuna = null;
	fineCaricamento();
	}
};
function encoding_a(t) {
	t = encodeURI(t);
	t = t.replace(/&/g, "%26");
return t;
}
function decoding_a(t) {
return decodeURI(t);
}
function decoding_s(t) {
return unescape(t);
}

function $(id_elemento) {
var elemento;
if(document.getElementById){
elemento = document.getElementById(id_elemento);
} else if(document.all) {
elemento = document.all[id_elemento];

} else {
alert("metodo non valido");
return false;
}
return elemento;
};
$update = function(el,html,input) {
	if(input) {
		$(el).value = html;
	} else {
		$(el).innerHTML = html;
	}
return;
}
function $S(id_elemento) {
	return $(id_elemento).style;
}
function $nascondi(id_elemento,auto) {
	if (auto) {
		if($S(id_elemento)['display']=="none") {
			$S(id_elemento)['display']="block";
		} else {
		$S(id_elemento)['display']="none";
		}
	} else {
	$S(id_elemento)['display']="none";
	}
return;
}
function $visualizza(id_elemento,auto) {
	if (auto) {
		if($S(id_elemento)['display']=="none") {
			$S(id_elemento)['display']="block";
		} else {
		$S(id_elemento)['display']="none";
		}
	} else {
	$S(id_elemento)['display']="block";
	}
return;
}


function $abilita(id_elemento,auto) {
	if (auto) {
		if($(id_elemento).dislabed) {
			$(id_elemento).dislabed = false;
		} else {
		$(id_elemento).dislabed = true;
		}
	} else {
	$(id_elemento).dislabed = false;
	}
	return;
}
function $disabilita(id_elemento,auto) {
		if (auto) {
		if($(id_elemento).dislabed) {
			$(id_elemento).dislabed = false;
		} else {
		$(id_elemento).dislabed = true;
		}
	} else {
	$(id_elemento).dislabed = true;
	}
	return;
}
function $HTML(id_elemento) {
	return $(id_elemento).innerHTML;
}


function ckform(id_form) {
var fr = $(id_form);
var ritorno = "";
// caso del form
if (fr.tagName == "FORM") {
for(var i=0;i<fr.length;i++) {
selObj = fr[i];
//***********
if (selObj.type == "text") {
ritorno += selObj.name+"="+encoding_a(selObj.value)+"&";
} else if (selObj.type == "textarea") {
ritorno += selObj.name+"="+encoding_a(selObj.value)+"&";
} else if (selObj.type == "hidden") {
ritorno += selObj.name+"="+encoding_a(selObj.value)+"&";
} else if (selObj.type == "password") {
ritorno += selObj.name+"="+encoding_a(selObj.value)+"&";
} else if(selObj.type == "select-one") {
ritorno += selObj.name+"="+encoding_a(selObj.options[selObj.selectedIndex].value)+"<&>";
} else if(selObj.type == "select-multiple") {
//****
ritorno += selObj.name+"=";
for (var j = 0; j < selObj.options.length; j++) {
if (selObj.options[j].selected) {

ritorno += encoding_a(selObj.options[j].value)+"|";
}
} 
ritorno +="&";
//*****

} else if(selObj.type == "radio" && selObj.checked) {
ritorno += selObj.name+"="+encoding_a(selObj.value)+"&";
} else if(selObj.type == "checkbox" && selObj.checked) {
ritorno += selObj.name+"="+encoding_a(selObj.value)+"&";
}
//-------------
}
} else if((fr.type == "text")||(fr.type == "select-one")||(fr.type == "select-multiple")||(fr.type == "radio")||(fr.type == "textarea")||(fr.type == "hidden")||(fr.type == "checkbox")) {
ritorno = recupera_dati(id_form);
} else {
ritorno =id_form+"="+encoding_a(fr.innerHTML)+"&";
}

return ritorno;

}

function recupera_dati(id) {
	return $(id).name+"="+encoding_a($(id).value);
	
}
function $L(el) {
	return $(el).length;
}
function $T(el,r,c,html) {
	if(html) {
return $(el).rows[r].cells[c].innerHTML;
	} else {
		return $(el).rows[r].cells[c];
	}
}
function $C(classe) {
  var all = document.all ? document.all : document.getElementsByTagName('*');
  var elementi = new Array();
  for (var e = 0; e < all.length; e++)
  if (all[e].className == classe)
  elementi[elementi.length] = all[e];
  return elementi;
}
function luna(url,dati,cache) {
	if (RichiestaLuna && attendereCaricamento) {
		// non succede nulla		
	} else {
		// se la proprietā segnala_caricamento ė true setta il caricamento
		settaCaricamento();
		RichiestaLuna = lunaREQ(alcambiamento);
		if(dati) {
			var datiR = url+ckform(dati);
			if (cache) {
				datiR = datiR+"&nocache="+Math.random();
			}
		} else {
			var datiR = url;
		}
		RichiestaLuna.open("GET",datiR);
		RichiestaLuna.send(null);
	}
}

function $SEO() {
	var a = document.getElementsByTagName("a");
	for (var i=0;i<a.length;i++) {
		var tmpa = a[i].rel.split(':');
		if(tmpa[0] == "luna"){
			tmpa[0] = "javascript";
			tmpa = tmpa.join(':');
			a[i].onmouseout="window.status=null";
			a[i].onmouseover="window.status='"+a[i].href+"'";
			a[i].href = tmpa;
			a[i].onclick='return false';
			
		}
	}
}
function $V(ele) {
	var el = $(ele);
	if (el.type=="select-one") {
	return el.options[el.selectedIndex].value; 
	} else if (el.type=="textarea" || el.type=="hidden" || el.type=="password"|| el.type=="text") {
	return el.value; 
	}  else if (el.type=="radio" && el.checked) {
	return el.value; 
	} else if (el.type=="checkbox" && el.checked) {
	return el.value; 
	} else {
		return el.innerHTML;
	}
}
function $parent(el) {
	return el.parentNode;
}
	