// JavaScript Document

var Archivio = Class.create({

	
		
		
		initialize: function () {				// funzione "costrutture" richiamata da body onload
			this.pagina = 1;
			this.numArticoloPaginaMin = 0;
			this.totNumArticoli = 0;						// setto il numero totale degli articoli ricavato dalla query SQL
			this.sezione = 0;								// setto la sezione ricavata da GET
			this.numeroPagine = 0; 			// setto il numero delle pagine
			this.numArtMin = 0;
				
		},
		
		init: function (num,numpag,sez,numMin,pos) {				// funzione "costrutture" richiamata da body onload
			this.pos = pos;
			this.pagina = 1;
			this.numArticoloPaginaMin = 0;
			this.totNumArticoli = num;						// setto il numero totale degli articoli ricavato dalla query SQL
			this.sezione = sez;								// setto la sezione ricavata da GET
			this.numeroPagine = numpag; 			// setto il numero delle pagine
			this.numArtMin = numMin;
			var temp = this.printMax();						// inizilizzo una variabile temporanea con il numero dell'ultimo articolo
														// modifico la porzione di pagina dove vi e' scritto il numero di articolo, id='imposta'
			var temp2 = this.numArticoloPaginaMin+1;
			if(num >30) {
				$('imposta'+pos).update('<a href="javascript:archivio.get(' + pos + ').previus()"><span style="font-size:120%">&lt;&nbsp;</span></a>'+temp2 + ' - ' + temp  + ' di ' + this.totNumArticoli + '<a href="javascript:archivio.get(' + pos + ').next()">&nbsp;<span style="font-size:120%">&gt;</span></a>');		
			} else {
				$('imposta').innerHTML = "";
			}
		},
		 
		
		first: function () {								// prima pagina
			this.pagina = 1;
			this.numArticoloPaginaMin = 0;
			this.request();
		},
		
		last: function () {								// ultima pagina
			this.pagina = this.numeroPagine;
			this.numArticoloPaginaMin = (this.numeroPagine-1)*30;
			this.request();
		},
				
		next: function () {								// prossima pagina
			if(this.pagina != this.numeroPagine) {
				this.pagina = this.pagina + 1;
				this.numArticoloPaginaMin = this.numArticoloPaginaMin + 30;
				this.request();
			}
			
		},
		
		previus: function () {							// pagina precedente
			if(this.pagina != 1) { 
				this.pagina = this.pagina - 1;
				this.numArticoloPaginaMin = this.numArticoloPaginaMin - 30;
				this.request();
			} 
		},	
		
		request: function () {							// chiamata asincronizzata
			var tempNum = this.numArticoloPaginaMin + this.numArtMin;
														// percorso della pagina che genera la tabella con la nuova serie di articoli
			var url = "../menuLaterale.php?min=" + tempNum + "&max=30" + "&sezione=" + this.sezione;
			new Ajax.Updater('lista'+this.sezione,url,						// chiamata (usando prototype)
						{ 	
							method: 'get',				
							onSuccess:  function (transport) {				// funzione che riceve in parametro la risposta della chiamata asincronizzata
								var temp = this.printMax();
								var temp2 = this.numArticoloPaginaMin+1;
								$('imposta'+this.pos).update('<a href="javascript:archivio.get(' + this.pos + ').previus()"><span style="font-size:120%">&lt;</span>&nbsp;</a>' + temp2 + ' - ' + temp  + ' di ' + this.totNumArticoli + '<a href="javascript:archivio.get(' + this.pos + ').next()">&nbsp;<span style="font-size:120%">&gt;</span></a>'); // aggiorno l'indice
								
			
							}
						}
					);
		},
		

		printMax: function () {							//  restituisce l'ultimo articolo della pagina corrente
			if((this.numArticoloPaginaMin + 30) > this.totNumArticoli) {
				return this.totNumArticoli;
			} else {
				return this.numArticoloPaginaMin + 30;
			}
		}

})