//	Intervallo tra una transizione e la sucessiva
var intervallo_transizione = 3000;
var durata_transizione = 1;
var active_image = 0;
var next_image = 0;
var intervallo = null;


function start_slideshow(){
	//	Carico la prima immagine
	var imgPreloader = new Image;
	imgPreloader.onload=function(){
		//	L'immagine è stata caricata in memoria
		document.getElementById(slide_items[0][0]).src = slide_items[0][1];
		Effect.Appear(slide_items[0][0], {duration:durata_transizione, from:0.0, to:1.0})
	}
	imgPreloader.src = slide_items[0][1];

	//	Ora faccio partire lo slideshow
	intervallo = setInterval("SlideShow()", intervallo_transizione);
}

function SlideShow() {
	clearInterval(intervallo);
	next_image++;
	if(next_image == slide_items.length) next_image = 0;
	var imgPreloader = new Image;
	imgPreloader.onload=function(){
		//	L'immagine è stata caricata in memoria
		document.getElementById(slide_items[next_image][0]).src = slide_items[next_image][1];

		Effect.Fade(slide_items[active_image][0], { duration:1, from:1.0, to:0.0 });
	    Effect.Appear(slide_items[next_image][0], { duration:1, from:0.0, to:1.0 });
	    active_image = next_image;

	    intervallo = setInterval("SlideShow()", intervallo_transizione);
	}
	imgPreloader.src = slide_items[next_image][1];

}


function location_handler(field_id, tipo){

	//	Assemblo l'url per la richiesta
	switch(tipo){
		case 'R':
			var location_id = document.getElementById(field_id+'_regione_id').value;
			break;
		case 'P':
			var location_id = document.getElementById(field_id+'_provincia_id').value;
			break;
	}
	location_tipo = tipo;

	//	Elimino le tendine figlie
	switch(tipo){
		case 'R':
			//	Elimino le tendine di provincia, comune e i separatori
			if(document.getElementById(field_id+'_provincia_id')){
				document.getElementById(field_id).removeChild(document.getElementById(field_id+'_provincia_id'));
			}
			if(document.getElementById(field_id+'_comune_id')){
				document.getElementById(field_id).removeChild(document.getElementById(field_id+'_comune_id'));
			}
			if(document.getElementById(field_id+'_sep_1')){
				document.getElementById(field_id).removeChild(document.getElementById(field_id+'_sep_1'));
			}
			if(document.getElementById(field_id+'_sep_2')){
				document.getElementById(field_id).removeChild(document.getElementById(field_id+'_sep_1'));
			}
			break;
		case 'P':
			//	Elimino le tendine di comune e il separatore
			if(document.getElementById(field_id+'_comune_id')){
				document.getElementById(field_id).removeChild(document.getElementById(field_id+'_comune_id'));
			}
			if(document.getElementById(field_id+'_sep_2')){
				document.getElementById(field_id).removeChild(document.getElementById(field_id+'_sep_1'));
			}
			break;
	}

	//	Se l'ID è uguale a zero non devo cercare i figli
	if(location_id==0){
		return null;
	}

	var url = absolute_uri+"ajax/location_handler.php?location_id="+location_id;
	//hack for IE caching
	url = url + "&time=" + new Date().getTime();
	var request = ajaxCreateRequest();
	request.open("GET",url,true);
	request.onreadystatechange = function(){
		if (request.readyState == 4){
			var result = request.responseText;
			if(result.length>0){
				//	Ho trovato dei figli, carico l'XML
				if (window.ActiveXObject){
					//	code for Internet Explorer
					var doc=new ActiveXObject("Microsoft.XMLDOM");
					doc.async="false";
					doc.loadXML(result);
				}else{
					// code for Mozilla, Firefox, Opera, etc.
					var parser=new DOMParser();
					var doc=parser.parseFromString(result,"text/xml");
				}
				//	Creo la tendina per ospitare i figli
				var select_location = document.createElement("select");
				//select_location.setAttribute('style', 'margin-left:10px;');
				switch(tipo){
					case 'R':
						select_location.id = field_id+'_provincia_id';
						select_location.name = field_id+'_provincia_id';
//						select_location.setAttribute("onChange", "location_handler('"+field_id+"', 'P')");
//						select_location.setAttribute("onchange", "alert(1)");
						break;
					case 'P':
						select_location.id = field_id+'_comune_id';
						select_location.name = field_id+'_comune_id';
						break;
				}
				//	Aggiungo il primo figlio vuoto
				var option = document.createElement("option");
				option.value = 0;
				var optionText = document.createTextNode('::::::::::');
				option.appendChild(optionText);
				select_location.appendChild(option);
				//	Aggiungo i figli alla tendina
				var locations = doc.getElementsByTagName("location");
				for(var i=0; i<locations.length; i++){
					var option = document.createElement("option");
					option.value = locations[i].getAttribute('id');
					var optionText = document.createTextNode(locations[i].childNodes[0].data);
					option.appendChild(optionText);
					select_location.appendChild(option);
				}

				//	Scrivo la tendina nella pagina
				document.getElementById(field_id).appendChild(select_location);


				if(tipo=='R'){
					document.getElementById(field_id+'_provincia_id').style.marginLeft = '10px';
					document.getElementById(field_id+'_provincia_id').onchange = function(){
						location_handler(field_id, 'P');
					}
				}else{
					document.getElementById(field_id+'_comune_id').style.marginLeft = '10px';
				}
			}
		}
	}
	request.send(null);
}





function ajaxCreateRequest(){
	try{
		var request = new XMLHttpRequest();
	}catch (trymicrosoft){
		try{
			var request = new ActiveXObject("Msxml2.XMLHTTP");
		}catch (othermicrosoft){
			try{
				var request = new ActiveXObject("Microsoft.XMLHTTP");
			}catch (failed){
				var request = null;
			}
		}
	}
	if (request == null){
		alert("Error creating request object!");
	}else{
		return request;
	}
}

