var ajax = new Array();
var blocco;
var pag;
var scrollaLista = false;


//################################################################################################################################################
//################################################################################################################################################
//funzione per istanziare l'oggetto ajax
//cross browser
//controlla prima se e' Firefox o un browser che rispetta gli standard
//se fallisce tenta con altri sistemi tra cui quelli di windows

function ajaxFunction(){
	
	blocco = document.getElementById('blocco');
	try{// Firefox, Opera 8.0+, Safari
		tmp= new XMLHttpRequest();
		ajax.push(tmp);
	}catch (e){// Internet Explorer
		try{
			tmp = new ActiveXObject("Msxml2.XMLHTTP");
			ajax.push(tmp);
		}catch (e){
			try{
				tmp = new ActiveXObject("Microsoft.XMLHTTP");
				ajax.push(tmp);
			}catch (e){
				alert("Il tuo browser non supporta AJAX!");
				return false;
			}
		}
	}
}

//################################################################################################################################################
//################################################################################################################################################

function loadListaUsato(pageNews,ord){
	loadListaUsa(pageNews,'usato',ord);
}

function loadListaUsaRicerca(pageNews,ord,key,marca,prezzo,anno,km,cilin,motorizz){
//loadListaUsatoRicerca(pageNews,ord,getKey,marca,prezzo,anno,km,cilin,motorizz){
	//loadListaUsaRic(pageNews,'usato');
	//loadListaUsaRic(pageNews,'usato',ord,key,'mercedes','23.400','2006','10.840','2000','benzina');
	loadListaUsaRic(pageNews,'usato',ord,key,marca,prezzo,anno,km,cilin,motorizz);
}

function loadListaNews(pageNews){
	 loadLista(pageNews,'news');
}

function loadListaKmZero(pageNews,sezione){
	 loadListaZero(pageNews,'kmZero',sezione);
}

function loadListaPromozione(pageNews){
	 loadLista(pageNews,'promozione');
}

function loadListaServAss(pageNews){
	 loadLista(pageNews,'serviziAssistenza');
}

function loadLista(pageNews,tipo){
	var elemento = document.createElement('DIV');
	listaNewsInterno = document.getElementById('bloccoLista_'+tipo+'_Interno');
	listaNewsInterno.appendChild(elemento);
	
	if(pageNews == undefined){
		pageNews = 1;
	}
	
	loadAjax(tipo,'lista.php',elemento,'page',pageNews);
	
	if(listaNewsInterno.style.width) {
		listaNewsInterno.style.width = (163 * pageNews) +"px";
	}else{
		listaNewsInterno.style.width = 163 +"px"; 
	}
}

function loadListaZero(pageNews,tipo,sezione){
	var elemento = document.createElement('DIV');
	listaNewsInterno = document.getElementById('bloccoLista_'+tipo+'_Interno');
	listaNewsInterno.appendChild(elemento);
	
	if(pageNews == undefined){
		pageNews = 1;
	}
	
	loadAjax(tipo,'lista.php',elemento,'page',pageNews,'sez='+sezione);
	
	if(listaNewsInterno.style.width) {
		listaNewsInterno.style.width = (606 * pageNews) +"px";
	}else{
		listaNewsInterno.style.width = 606 +"px"; 
	}
}

function loadListaUsa(pageNews,tipo,ord){
	var elemento = document.createElement('DIV');
	listaNewsInterno = document.getElementById('bloccoLista_'+tipo+'_Interno');
	listaNewsInterno.appendChild(elemento);
	
	if(pageNews == undefined){
		pageNews = 1;
	}
	
	loadAjax(tipo,'lista.php',elemento,'page',pageNews,'o='+ord);
	
	if(listaNewsInterno.style.width) {
		listaNewsInterno.style.width = (606 * pageNews) +"px";
	}else{
		listaNewsInterno.style.width = 606 +"px"; 
	}
}

function loadListaUsaRic(pageNews,tipo,order,key,marca,prezzo,anno,km,cilin,motorizz){
	var elemento = document.createElement('DIV');
	listaNewsInterno = document.getElementById('bloccoLista_ricerca_Interno');
	listaNewsInterno.appendChild(elemento);
	
	if(pageNews == undefined){
		pageNews = 1;
	}
	
	//loadAjax(tipo,'listaRicerca.php',elemento,'page',pageNews);
	//loadAjax(tipo,'listaRicerca.php?o='+order+'&key='+key+'&',elemento,'page',pageNews);
	loadAjax(tipo,'listaRicerca.php',elemento,'page',pageNews,'o='+order+'&key='+key+'&m='+marca+'&p='+prezzo+'&a='+anno+'&km='+km+'&c='+cilin+'&mo='+motorizz);
	
	if(listaNewsInterno.style.width) {
		listaNewsInterno.style.width = (606 * pageNews) +"px";
	}else{
		listaNewsInterno.style.width = 606 +"px"; 
	}
}

//################################################################################################################################################
//################################################################################################################################################
	
//funzione per caricare la pagina e sostituirla alla 
//pagina che si sta visualizzando

function loadPage(page,variabile,valore){
	if(variabile == undefined){
		get = "";
	}else{
		get = "?"+variabile+"="+valore;
	}
	
	page = page+".php"+get;
	
	if(ajax.length == 0){
		ajaxLoadLista();
	}
	var ajaxTmp = ajax.pop();
	ajaxTmp.open("get",page,true);
	
	ajaxTmp.onreadystatechange = function() {
		if(ajaxTmp.readyState === 4) {
			if(ajaxTmp.status == 200){			
				//testo ricevuto dalla pagina richiamata dal metodo send di ajax
				blocco.innerHTML = ajaxTmp.responseText;
				
				switch(pagina){
					case "news":
					loadListaNews();
					loadCorpoNews();
					effettoScrollNormal('bloccoLista','paginazione','listaNewsBack','listaNewsFoward', document.getElementById('numeroPagination').innerHTML,163,loadListaNews);
					break;
					
					case "promozioni":
					loadListaPromozione();
					loadCorpoPromozione();
					effettoScroll('bloccoLista','paginazione','listaNewsBack','listaNewsFoward', document.getElementById('numeroPagination').innerHTML,163,loadListaPromozione);
					break;
					
					case "serviziAssistenza":
					loadListaServAss();
					loadCorpoServAss();
					effettoScroll('bloccoLista','paginazione','listaNewsBack','listaNewsFoward', document.getElementById('numeroPagination').innerHTML,163,loadListaServAss);
					break;
					
					case "kmZero":
					loadListaKmZero();
					effettoScrollZero('bloccoListaUsato','paginazione','listaNewsBack','listaNewsFoward', document.getElementById('numeroPagination').innerHTML,163,loadListaKmZero);
					break;
					
					case "usato":
					loadListaUsato();
					effettoScroll('bloccoCorpo','paginazione','listaUsatoBack','listaUsatoFoward',document.getElementById('numeroPagination').innerHTML,606,loadListaUsato);
					break;
					}
				
				
			}else
				alert("Operazione fallita, errore numero " + ajax.status);
		}
	}
	//invia la richiesta al server passandogli eventualmente qualche variabile
	ajaxTmp.send(null);
}

//################################################################################################################################################
//################################################################################################################################################
function effettoScroll(elem,elementoCont,prev,next,numPag,pixel,funzione,param1,key,marca,prezzo,anno,km,cilin,motorizz){

	var oggetto = new oggettoScroll(elem,elementoCont,prev,next,numPag,pixel,funzione);

	$(oggetto.prev).addEvent('click', function(event){
		event = new Event(event).stop();
		if(oggetto.pagina>1){
			oggetto.pagina--;
			oggetto.scroll.scrollTo((oggetto.pagina-1)*oggetto.pixel,0);
			oggetto.elemCont.innerHTML = oggetto.pagina+" di ";
		}
	});
	
	$(oggetto.next).addEvent('click', function(event){
		event = new Event(event).stop();
		if(oggetto.pagina < oggetto.numeroPagine){
			if(oggetto.funzione && (oggetto.pagina+1) > oggetto.pagineCaricate){
				funzione(oggetto.pagina +1,param1,key,marca,prezzo,anno,km,cilin,motorizz);
				oggetto.pagineCaricate++;
			}
			oggetto.scroll.scrollTo((oggetto.pagina)*oggetto.pixel,0);
			oggetto.pagina++;
			oggetto.elemCont.innerHTML = oggetto.pagina + " di ";
		}
	});
}

function effettoScrollZero(elem,elementoCont,prev,next,numPag,pixel,funzione,sezione){

	var oggetto = new oggettoScroll(elem,elementoCont,prev,next,numPag,pixel,funzione);

	$(oggetto.prev).addEvent('click', function(event){
		event = new Event(event).stop();
		if(oggetto.pagina>1){
			oggetto.pagina--;
			oggetto.scroll.scrollTo((oggetto.pagina-1)*oggetto.pixel,0);
			oggetto.elemCont.innerHTML = oggetto.pagina+" di ";
		}
	});
	
	$(oggetto.next).addEvent('click', function(event){
		event = new Event(event).stop();
		if(oggetto.pagina < oggetto.numeroPagine){
			if(oggetto.funzione && (oggetto.pagina+1) > oggetto.pagineCaricate){
				funzione(oggetto.pagina +1,sezione);
				oggetto.pagineCaricate++;
			}
			oggetto.scroll.scrollTo((oggetto.pagina)*oggetto.pixel,0);
			oggetto.pagina++;
			oggetto.elemCont.innerHTML = oggetto.pagina + " di ";
		}
	});
}

function effettoScrollNormal(elem,elementoCont,prev,next,numPag,pixel,funzione){

	var oggetto = new oggettoScroll(elem,elementoCont,prev,next,numPag,pixel,funzione);

	$(oggetto.prev).addEvent('click', function(event){
		event = new Event(event).stop();
		if(oggetto.pagina>1){
			oggetto.pagina--;
			oggetto.scroll.scrollTo((oggetto.pagina-1)*oggetto.pixel,0);
			oggetto.elemCont.innerHTML=oggetto.pagina+" di ";
		}
	});
	
	$(oggetto.next).addEvent('click', function(event){
		event = new Event(event).stop();
		if(oggetto.pagina < oggetto.numeroPagine){
			if(oggetto.funzione && (oggetto.pagina+1) > oggetto.pagineCaricate){
				funzione(oggetto.pagina +1);
				oggetto.pagineCaricate++;
			}
			oggetto.scroll.scrollTo((oggetto.pagina)*oggetto.pixel,0);
			oggetto.pagina++;
			oggetto.elemCont.innerHTML = oggetto.pagina + " di ";
		}
	});
}
//################################################################################################################################################
//################################################################################################################################################

//funzione che esegue una richiesta ajax alla pagina specificata
//e sostituisce il contenuto del blocco dato 
//passando eventualmente un valore ad una variabile data

function loadAjax(sezione,page,blocco,variabile,valore,append){
	
	if(append == undefined){ app = ""; }else{
			append = "&"+append;
		}
	
	if(variabile == undefined){
		get = "";
	}else{
		get = "?"+variabile+"="+valore;
	}
	
	page = page+get+append;
	
	if(ajax.length == 0){
		ajaxFunction();
	}
	
	var ajaxTmp = ajax.pop();
	ajaxTmp.open("get",sezione+"/"+page,true);
	
	ajaxTmp.onreadystatechange = function() {
		if(ajaxTmp.readyState === 4) {
			if(ajaxTmp.status == 200){			
				//testo ricevuto dalla pagina richiamata dal metodo send di ajax
				blocco.innerHTML = ajaxTmp.responseText;
				
				switch(sezione){
					case "news":
							regola = new RegExp('news/blocco.php');
				
							if(regola.test(sezione+"/"+page)){
								num = document.getElementById('blocco_testo_scorrevole').getElementsByTagName('DIV');
							
								if(num.length > 1){
									elem = document.getElementById('link_scrol');
									effettoScroll('blocco_testo_news','numero_testo','precedente','successivo', num.length,245);
								}
							}
					break;
					
					case "promozione":
					
								regola = new RegExp('promozione/blocco.php');
							
							if(regola.test(sezione+"/"+page)){
								num = document.getElementById('blocco_testo_scorrevolePromo').getElementsByTagName('DIV');
							
								if(num.length > 1){
									elem = document.getElementById('link_scrol');
									effettoScroll('blocco_testo_Promo','numero_testo','precedente','successivo', num.length,325);
								}
							}
					break;
					
					case "serviziAssistenza":
					
								regola = new RegExp('serviziAssistenza/blocco.php');
							
							if(regola.test(sezione+"/"+page)){
								num = document.getElementById('blocco_testo_scorrevoleServAss').getElementsByTagName('DIV');
							
								if(num.length > 1){
									elem = document.getElementById('link_scrol');
									effettoScroll('blocco_testo_servAss','numero_testo','precedente','successivo', num.length,360);
								}
							}
					break;
					
					/*case "usato":
					
						regola = new RegExp('usato/lista.php');
						
						if(regola.test(sezione+"/"+page)){
							elem = document.getElementById('blocco_scorrevoleUsato').getElementByTagName('DIV');
							
							if(num.length > 1){
								elem = document.getElementById('link_scrol');
								effettoScroll('blocco_testo','numero_test','precedente','successivo',num.length,606);
								}
							}
					break;*/
					}

			}else
				alert("Operazione fallita, errore numero " + ajax.status);
		}
	}
	//invia la richiesta al server passandogli eventualmente qualche variabile
	ajaxTmp.send(null);
}

//################################################################################################################################################
//################################################################################################################################################

function loadCorpoNews(identificativo){
	if(identificativo == undefined){
		loadAjax('news','blocco.php',document.getElementById('bloccoCorpo'));
	}else{
		loadAjax('news','blocco.php',document.getElementById('bloccoCorpo'),'id',identificativo);	
	}
}

function loadCorpoPromozione(identificativo){
	if(identificativo == undefined){
		loadAjax('promozione','blocco.php',document.getElementById('bloccoCorpo'));
	}else{
		loadAjax('promozione','blocco.php',document.getElementById('bloccoCorpo'),'id',identificativo);	
	}
}

function loadCorpoServAss(identificativo){
	if(identificativo == undefined){
		loadAjax('serviziAssistenza','blocco.php',document.getElementById('bloccoCorpo'));
	}else{
		loadAjax('serviziAssistenza','blocco.php',document.getElementById('bloccoCorpo'),'id',identificativo);	
	}
}

//################################################################################################################################################
//################################################################################################################################################

