var xmlHttp = getXmlHttpObject();
var xmlHttp_negozi = getXmlHttpObject();
var xmlHttp_prodotti = getXmlHttpObject();
var xmlHttp_categorie_prodotti = getXmlHttpObject();
var xmlHttp_news = getXmlHttpObject();

var regione_selezionata = 0;
var provincia_selezionata = 0;
var comune_selezionato = 0;
var categoria_selezionata = 0;

function setSelected(re,pr,co,ca)
{
	regione_selezionata = re;
	provincia_selezionata = pr;
	comune_selezionato = co;
	categoria_selezionata = ca;
}
function loadList(tb, id)
{
	xmlHttp.open('GET', 'caricatore_select.php?table='+tb+'&id='+id+"&random=" + Math.random(), true);
	xmlHttp.onreadystatechange = state_changed;
	xmlHttp.send(null);
}
function addOption(select, value, text, selected) 
{
	 //Aggiunge un elemento ad una select
	 var option = document.createElement("option");
	 option.value = value,
	 option.text = text;
	 option.selected = selected;
	 try {
	 select.add(option, null);
	 } catch(e) {
	 //Per Internet Explorer
	 select.add(option);
	 }
 }
 function getSelected(select) 
 {
 	//ritorna il valore dell'elemento selezionato
 	return select.options[select.selectedIndex].value;
 }
function state_changed() 
 {
	 if(xmlHttp.readyState == 4) 
	 {
		 //Stato OK
		 if (xmlHttp.status == 200) 
		 {
			 var resp = xmlHttp.responseText;
			 if(resp) 
			 {
				var values = resp.split('[#]');
				var listId = values.shift();		
				if(listId == "cap")
				 {
					var pair = values[0].split('[@]');
					document.getElementById(listId).value = pair[1];
				 }
				 else
				 {
					var select = document.getElementById(listId);
				 
					//svuota elementi precedenti
					while (select.options.length) {
						select.remove(0);
					}
				
					 var limit = values.length;
					 for(i=0; i < limit; i++) 
					 {
						var pair = values[i].split('[@]');
						if(listId == "regione" && regione_selezionata == pair[0])
							addOption(select, pair[0], pair[1],true);
						else if(listId == "provincia" && provincia_selezionata == pair[0])
							addOption(select, pair[0], pair[1],true);
						else if(listId == "comune" && comune_selezionato == pair[0])
							addOption(select, pair[0], pair[1],true);
						else if(listId == "prodotti_categoria" && categoria_selezionata == pair[0])
							addOption(select, pair[0], pair[1],true);
						else
							addOption(select, pair[0], pair[1],false);
					 } 
					 if(listId == "regione") 
						loadList('provincia', getSelected(select))
					 else if(listId == "provincia")
						loadList('comune', getSelected(select))
					 else if(listId == "comune")
						loadList('cap', getSelected(select))
				 }
			 }
		 } 
		 else 
		 {
			alert(xmlHttp.responseText);
		 }
 	}
 }//funzione per abilitare Ajax, la chiamata è diversa a seconda del browser
 function getXmlHttpObject()
 {
 	var xmlHttp=null;
 	try
	 {
		//Firefox e Opera
		xmlHttp=new XMLHttpRequest();
	 }
	 catch(e)
	 {
		//Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
		xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	 }
 	return xmlHttp;
 } 
 function negozi_changed(tb, id, pg) 
 {
	 if(xmlHttp_negozi.readyState == 4) 
		 {
			 //Stato OK
			 if (xmlHttp_negozi.status == 200) 
			 {
				 var resp = xmlHttp_negozi.responseText;
				 if(resp) 
				 {
					
					var data = resp.split('[$$]');
					var negozi = data[0].split('[#]');
					var lista_negozi = document.getElementById('lista_negozi');
					while(lista_negozi.firstChild) lista_negozi.removeChild(lista_negozi.firstChild);
	
					var corpo_paginatore = document.getElementById('corpo_paginatore');
					while(corpo_paginatore.firstChild) corpo_paginatore.removeChild(corpo_paginatore.firstChild);
	
					var numero_negozi = negozi.length;
					var numero_pagine = data[1];
					var pair = negozi[0].split('[@]');
					
					if(pair[0] != '')
					{
						for(i=0; i<numero_negozi; i++)
						{
							pair = negozi[i].split('[@]');
							var nuovo_negozio = document.createElement('li');
							var telefono = '';
							var fax = '';
							var email = '';
							var web = '';
							if(pair[6] != '')
							{
								telefono = '<br />Tel. '+pair[6];	
								if(pair[7] != '')
									fax = ' - Fax '+pair[7];
							}
							else
								fax = '<br />Fax '+pair[7];
							
							if(pair[8] != '')
							{
								email = '<br/><a class="contatti" href="mailto:'+pair[8]+'">'+pair[8]+'</a>';
								if(pair[9] != '')
									web = '&nbsp<a class="contatti" target="_blank" href="'+pair[9]+'">'+pair[9]+'</a>';
							}
							else
								web = '<br /><a class="contatti" target="_blank" href="'+pair[9]+'">'+pair[9]+'</a>';
								
							if(pair[10] == 1)
								nuovo_negozio.innerHTML = '<a class="lista_negozi" target="_blank" href="'+pair[9]+'">'+pair[1]+'</a><br />'+pair[2]+'<br />'+pair[4]+' - '+pair[3]+' ('+pair[5]+')'+telefono+fax+email+web
							else if(pair[10] == 0 && pair[11] == 1)
								nuovo_negozio.innerHTML = '<a class="lista_negozi" href="?negozi-negozio-'+pair[0]+'|'+pair[12]+'|'+pair[13]+'">'+pair[1]+'</a><br />'+pair[2]+'<br />'+pair[4]+' - '+pair[3]+' ('+pair[5]+')'+telefono+fax+email+web
							else if(pair[10] == 0 && pair[11] == 0)
								nuovo_negozio.innerHTML = '<a class="lista_negozi">'+pair[1]+'</a><br />'+pair[2]+'<br />'+pair[4]+' - '+pair[3]+' ('+pair[5]+')'+telefono+fax+email+web
							
							lista_negozi.appendChild(nuovo_negozio);
						}
						if(numero_pagine > 1)
						{
							var paginatore = document.createElement('div');
							paginatore.setAttribute('id','paginatore');
							corpo_paginatore.appendChild(paginatore);	
							
							var testo_paginatore = document.createElement('a');
							testo_paginatore.setAttribute('class','paginatore');
							testo_paginatore.innerHTML = 'pagina:';
							paginatore.appendChild(testo_paginatore);
							if(pg>1)
							{
								var pagina = pg-1;
								var pagina_precedente = document.createElement('a');
								pagina_precedente.setAttribute('class','paginatore');
								pagina_precedente.setAttribute('href','javascript:negozi_cerca(\''+tb+'\','+id+','+pagina+')');
								pagina_precedente.innerHTML = '&laquo;';
								paginatore.appendChild(pagina_precedente);
							}
		
							for(i=1;  i<=numero_pagine && i<=10; i++)
							{
								var nuova_pagina = document.createElement('a');
								var span_pagine = Math.floor((pg-1)/10)
		
								var pagina = span_pagine *10 + i;
								if(pg == pagina)
								{
									nuova_pagina.setAttribute('class','paginatore_corrente');
								}
								else
								{
									nuova_pagina.setAttribute('class','paginatore');
									nuova_pagina.setAttribute('href','javascript:negozi_cerca(\''+tb+'\','+id+','+pagina+')');
								}
								nuova_pagina.innerHTML = pagina;
								paginatore.appendChild(nuova_pagina);
		
							}
							if(numero_pagine>10 && (pg+10<numero_pagine))
							{
								var pagina = pg+1;
								var pagina_precedente = document.createElement('a');
								pagina_precedente.setAttribute('class','paginatore');
								pagina_precedente.setAttribute('href','javascript:negozi_cerca(\''+tb+'\','+id+','+pagina+')');
								pagina_precedente.innerHTML = '&raquo;';
								paginatore.appendChild(pagina_precedente);
							}
						}
					}
					else
					{
						var nessun_negozio = document.createElement('li');
						nessun_negozio.setAttribute('class','nessun_risultato');
						nessun_negozio.innerHTML = 'nessun negozio corrispondente ai criteri selezionati';
						lista_negozi.appendChild(nessun_negozio);
							
					}
				 }
			 } 
			 else 
			 {
				alert(xmlHttp_negozi.responseText);
			 }
		}
 }
  function categorie_prodotti_changed(tb, id, pg) 
 {
	 if(xmlHttp_categorie_prodotti.readyState == 4) 
		 {
			 //Stato OK
			 if (xmlHttp_categorie_prodotti.status == 200) 
			 {
				 var resp = xmlHttp_categorie_prodotti.responseText;
				 if(resp) 
				 {
					
					var data = resp.split('[$$]');
					var categorie = data[0].split('[#]');
					var lista_categorie = document.getElementById('lista_categorie_prodotti');
					while(lista_categorie.firstChild) lista_categorie.removeChild(lista_categorie.firstChild);
	
					var corpo_paginatore = document.getElementById('corpo_paginatore');
					while(corpo_paginatore.firstChild) corpo_paginatore.removeChild(corpo_paginatore.firstChild);
	
					var numero_categorie = categorie.length;
					var numero_pagine = data[1];
					var pair = categorie[0].split('[@]');
					
					if(pair[0] != '')
					{
						
						for(i=0; i<numero_categorie; i++)
						{
							pair = categorie[i].split('[@]');
							var nuova_categoria = document.createElement('div');
							nuova_categoria.setAttribute('id','categoria_prodotto');
							var nuova_categoria_img = document.createElement('div');
							nuova_categoria_img.setAttribute('id','categoria_prodotto_img');
							var nuova_categoria_text = document.createElement('div');
							nuova_categoria_text.setAttribute('id','categoria_prodotto_testo');
							
							nuova_categoria_img.innerHTML = '<a class="lista_categorie_prodotti" href="?catalogo-categoria-'+pair[0]+'"><img id="lista_categorie_prodotti" src="'+pair[3]+'"></a>';
							nuova_categoria_text.innerHTML = '<a class="lista_categorie_prodotti" href="?catalogo-categoria-'+pair[0]+'">'+pair[1]+'</a>';
							
							nuova_categoria.appendChild(nuova_categoria_img);
							nuova_categoria.appendChild(nuova_categoria_text);
							
							
	
							
							lista_categorie.appendChild(nuova_categoria);
						}
						if(numero_pagine > 1)
						{
							var paginatore = document.createElement('div');
							paginatore.setAttribute('id','paginatore');
							corpo_paginatore.appendChild(paginatore);	
							
							var testo_paginatore = document.createElement('a');
							testo_paginatore.setAttribute('class','paginatore');
							testo_paginatore.innerHTML = 'pagina:';
							paginatore.appendChild(testo_paginatore);
							if(pg>1)
							{
								var pagina = pg-1;
								var pagina_precedente = document.createElement('a');
								pagina_precedente.setAttribute('class','paginatore');
								pagina_precedente.setAttribute('href','javascript:categorie_prodotti_cerca(\''+tb+'\','+id+','+pagina+')');
								pagina_precedente.innerHTML = '&laquo;';
								paginatore.appendChild(pagina_precedente);
							}
		
							for(i=1; i<=numero_pagine && i<=10; i++)
							{
								var nuova_pagina = document.createElement('a');
								var span_pagine = Math.floor((pg-1)/10)
		
								var pagina = span_pagine *10 + i;
								if(pg == pagina)
								{
									nuova_pagina.setAttribute('class','paginatore_corrente');
								}
								else
								{
									nuova_pagina.setAttribute('class','paginatore');
									nuova_pagina.setAttribute('href','javascript:categorie_prodotti_cerca(\''+tb+'\','+id+','+pagina+')');
								}
								nuova_pagina.innerHTML = pagina;
								paginatore.appendChild(nuova_pagina);
		
							}
							if(numero_pagine>10 && (pg+10<numero_pagine))
							{
								var pagina = pg+1;
								var pagina_precedente = document.createElement('a');
								pagina_precedente.setAttribute('class','paginatore');
								pagina_precedente.setAttribute('href','javascript:categorie_prodotti_cerca(\''+tb+'\','+id+','+pagina+')');
								pagina_precedente.innerHTML = '&raquo;';
								paginatore.appendChild(pagina_precedente);
							}
						}
					}
					else
					{
						var nessuna_categoria = document.createElement('div');
						nessuna_categoria.setAttribute('class','nessun_risultato');
						nessuna_categoria.setAttribute('id','lista_categorie_prodotti');
						nessuna_categoria.innerHTML = 'nessuna categoria di prodotti presente';
						lista_categorie.appendChild(nessuna_categoria);
							
					}
				 }
			 } 
			 else 
			 {
				alert(xmlHttp_categorie_prodotti.responseText);
			 }
		}
 }
function prodotti_changed(tb, id, pg) 
{
 if(xmlHttp_prodotti.readyState == 4) 
	 {
		 //Stato OK
		 if (xmlHttp_prodotti.status == 200) 
		 {
			 var resp = xmlHttp_prodotti.responseText;
			 if(resp) 
			 {
				
				var data = resp.split('[$$]');
				var prodotti = data[0].split('[#]');
				var lista_prodotti = document.getElementById('lista_prodotti');
				while(lista_prodotti.firstChild) lista_prodotti.removeChild(lista_prodotti.firstChild);

				var corpo_paginatore = document.getElementById('corpo_paginatore');
				while(corpo_paginatore.firstChild) corpo_paginatore.removeChild(corpo_paginatore.firstChild);

				var numero_prodotti = prodotti.length;
				var numero_pagine = data[1];
				var pair = prodotti[0].split('[@]');
				
				if(pair[0] != '')
				{

					
					for(i=0; i<numero_prodotti; i++)
					{
						pair = prodotti[i].split('[@]');
						var nuovo_prodotto = document.createElement('li');
						//var nuovo_prodotto = document.createElement('div');
						nuovo_prodotto.setAttribute('id','categoria_prodotto');
						var nuovo_prodotto_img = document.createElement('div');
						nuovo_prodotto_img.setAttribute('id','prodotto_img');
						var nuovo_prodotto_text = document.createElement('div');
						nuovo_prodotto_text.setAttribute('id','prodotto_testo');
						
						nuovo_prodotto_img.innerHTML = '<a class="lista_prodotti" target="_blank" href="'+pair[6]+'" title="'+pair[4]+'"><img id="lista_prodotti" src="'+pair[5]+'"></a>';
						nuovo_prodotto_text.innerHTML = '<h2>'+pair[1]+'</h2><br />'+pair[4];
						
						nuovo_prodotto.appendChild(nuovo_prodotto_img);
						nuovo_prodotto.appendChild(nuovo_prodotto_text);
						
						lista_prodotti.appendChild(nuovo_prodotto);
					}
					$('#lista_prodotti a').lightBox();
					if(numero_pagine > 1)
					{
						var paginatore = document.createElement('div');
						paginatore.setAttribute('id','paginatore');
						corpo_paginatore.appendChild(paginatore);	
						
						var testo_paginatore = document.createElement('a');
						testo_paginatore.setAttribute('class','paginatore');
						testo_paginatore.innerHTML = 'pagina:';
						paginatore.appendChild(testo_paginatore);
						if(pg>1)
						{
							var pagina = pg-1;
							var pagina_precedente = document.createElement('a');
							pagina_precedente.setAttribute('class','paginatore');
							pagina_precedente.setAttribute('href','javascript:prodotti_cerca(\''+tb+'\','+id+','+pagina+')');
							pagina_precedente.innerHTML = '&laquo;';
							paginatore.appendChild(pagina_precedente);
						}
	
						for(i=1;  i<=numero_pagine && i<=10; i++)
						{
							var nuova_pagina = document.createElement('a');
							var span_pagine = Math.floor((pg-1)/10)
	
							var pagina = span_pagine *10 + i;
							if(pg == pagina)
							{
								nuova_pagina.setAttribute('class','paginatore_corrente');
							}
							else
							{
								nuova_pagina.setAttribute('class','paginatore');
								nuova_pagina.setAttribute('href','javascript:prodotti_cerca(\''+tb+'\','+id+','+pagina+')');
							}
							nuova_pagina.innerHTML = pagina;
							paginatore.appendChild(nuova_pagina);
	
						}
						if(numero_pagine>10 && (pg+10<numero_pagine))
						{
							var pagina = pg+1;
							var pagina_precedente = document.createElement('a');
							pagina_precedente.setAttribute('class','paginatore');
							pagina_precedente.setAttribute('href','javascript:prodotti_cerca(\''+tb+'\','+id+','+pagina+')');
							pagina_precedente.innerHTML = '&raquo;';
							paginatore.appendChild(pagina_precedente);
						}
					}
				}
				else
				{
					var nessun_prodotto = document.createElement('li');
					nessun_prodotto.setAttribute('class','nessun_risultato');
					nessun_prodotto.innerHTML = 'nessun prodotto corrispondente ai criteri selezionati';
					lista_prodotti.appendChild(nessun_prodotto);
						
				}
			 }
		 } 
		 else 
		 {
			alert(xmlHttp_prodotti.responseText);
		 }
	}
}
function news_changed(tb, id, pg) 
{
 if(xmlHttp_news.readyState == 4) 
	 {
		 //Stato OK
		 if (xmlHttp_news.status == 200) 
		 {
			 var resp = xmlHttp_news.responseText;
			 if(resp) 
			 {
				
				var data = resp.split('[$$]');
				var news = data[0].split('[#]');
				var lista_news = document.getElementById('lista_news');
				while(lista_news.firstChild) lista_news.removeChild(lista_news.firstChild);

				var corpo_paginatore = document.getElementById('corpo_paginatore');
				while(corpo_paginatore.firstChild) corpo_paginatore.removeChild(corpo_paginatore.firstChild);

				var numero_news = news.length;
				var numero_pagine = data[1];
				var pair = news[0].split('[@]');
				
				if(pair[0] != '')
				{
					for(i=0; i<numero_news; i++)
					{
						pair = news[i].split('[@]');
						var nuova_news = document.createElement('li');
						var nuova_news_contenitore = document.createElement('div');
						var nuova_news_contenuto = document.createElement('div');
						
						nuova_news.setAttribute('id','news');
						nuova_news_contenuto.setAttribute('id','news_record');
						nuova_news_contenitore.setAttribute('id','news_record_contenitore');
						
						
						nuova_news_contenuto.innerHTML = '<a class="lista_news" href="?news-news-'+pair[0]+'|'+pair[5]+'" title="'+pair[1]+'">'+pair[1]+'</a><br />'+pair[2];
						nuova_news_contenitore.innerHTML = pair[3];
						
						nuova_news.appendChild(nuova_news_contenitore);
						
						nuova_news.appendChild(nuova_news_contenuto);
						lista_news.appendChild(nuova_news);
					}

					if(numero_pagine > 1)
					{
						var paginatore = document.createElement('div');
						paginatore.setAttribute('id','paginatore');
						corpo_paginatore.appendChild(paginatore);	
						
						var testo_paginatore = document.createElement('a');
						testo_paginatore.setAttribute('class','paginatore');
						testo_paginatore.innerHTML = 'pagina:';
						paginatore.appendChild(testo_paginatore);
						if(pg>1)
						{
							var pagina = pg-1;
							var pagina_precedente = document.createElement('a');
							pagina_precedente.setAttribute('class','paginatore');
							pagina_precedente.setAttribute('href','javascript:news_cerca(\''+tb+'\','+id+','+pagina+')');
							pagina_precedente.innerHTML = '&laquo;';
							paginatore.appendChild(pagina_precedente);
						}
	
						for(i=1;  i<=numero_pagine && i<=10; i++)
						{
							var nuova_pagina = document.createElement('a');
							var span_pagine = Math.floor((pg-1)/10)
	
							var pagina = span_pagine *10 + i;
							if(pg == pagina)
							{
								nuova_pagina.setAttribute('class','paginatore_corrente');
							}
							else
							{
								nuova_pagina.setAttribute('class','paginatore');
								nuova_pagina.setAttribute('href','javascript:news_cerca(\''+tb+'\','+id+','+pagina+')');
							}
							nuova_pagina.innerHTML = pagina;
							paginatore.appendChild(nuova_pagina);
	
						}
						if(numero_pagine>10 && (pg+10<numero_pagine))
						{
							var pagina = pg+1;
							var pagina_precedente = document.createElement('a');
							pagina_precedente.setAttribute('class','paginatore');
							pagina_precedente.setAttribute('href','javascript:news_cerca(\''+tb+'\','+id+','+pagina+')');
							pagina_precedente.innerHTML = '&raquo;';
							paginatore.appendChild(pagina_precedente);
						}
					}
				}
				else
				{
					var nessuna_news = document.createElement('li');
					nessuna_news.setAttribute('class','nessun_risultato');
					nessuna_news.innerHTML = 'nessuna news presente';
					lista_news.appendChild(nessuna_news);
						
				}
			 }
		 } 
		 else 
		 {
			alert(xmlHttp_prodotti.responseText);
		 }
	}
}


function negozi_cerca(tb, id, pg)
{
	xmlHttp_negozi.open('GET', 'negozi_lista.php?table='+tb+'&id='+id+'&page='+pg+'&random=' + Math.random(), true);
	xmlHttp_negozi.onreadystatechange = function(){ negozi_changed(tb, id, pg); };
	xmlHttp_negozi.send(null);
}
function prodotti_cerca(tb, id, pg)
{	 
	xmlHttp_prodotti.open('GET', 'prodotti_lista.php?table='+tb+'&id='+id+'&page='+pg+'&random=' + Math.random(), true);
	xmlHttp_prodotti.onreadystatechange = function(){ prodotti_changed(tb, id, pg); };
	xmlHttp_prodotti.send(null);
}
function categorie_prodotti_cerca(tb, id, pg)
{
	xmlHttp_categorie_prodotti.open('GET', 'categorie_prodotti_lista.php?table='+tb+'&id='+id+'&page='+pg+'&random=' + Math.random(), true);
	xmlHttp_categorie_prodotti.onreadystatechange = function(){ categorie_prodotti_changed(tb, id, pg); };
	xmlHttp_categorie_prodotti.send(null);
}
function news_cerca(tb, id, pg)
{
	xmlHttp_news.open('GET', 'news_lista.php?table='+tb+'&id='+id+'&page='+pg+'&random=' + Math.random(), true);
	xmlHttp_news.onreadystatechange = function(){ news_changed(tb, id, pg); };
	xmlHttp_news.send(null);
}
