// menukit.js
// raccolta di funzioni per la gestione di pulsanti singoli e a gruppi
// ultimo aggiornamento 22 - 04 - 2010
// author: Alessio "Lorenen" Mulas & Stefano "Berry White" Pellegrini @SolProject

/*
Questa libreria di funzioni JS consente di gestire l'effetto OnClick su una serie di menu a pulsanti presenti in una pagina
con una sola funzione è possibile gestire l'effetto su varie serie di pulsanti, ognuna funzionerà in modo autonomo. 
Viene gestita sia l'aggiunta di effetti "grafici" che, eventualmente, il caricamento di pagine esterne tramite request html in pieno stile Ajax
il contenuto delle pagine esterne si trova in un file php, con una request viene "travasato" in uno specifico divisore della pagina.

Istruzioni per l'uso
1 - innanzitutto ogni pulsante (di ogni serie) dovrà avere la classe 'selectable'
2 - inoltre ogni serie di pulsanti avrà una sua ulteriore classe: nella versione base 'pulsante1' per il primo menù, 
'pulsante2' per il secondo menù e così via.
3 - al momento in cui un pulsante viene premuto lo script gli 'aggiunge' una classe 'selected' e eventualmente la rimuove da un altro tasto premuto precedentemente e appartenente allo stesso menu,

in pratica per ogni menu esiste una condizione 'selected' a cui vanno date, tramite css, modifiche grafiche o di altro genere

se si vuole usare una sola serie di tasti, ovvero un solo menu, basterà introdurre queste classi nel css: pulsante1, selected1.
Nel caso di due diversi set di pulsante sarà necessario introdurre anche: pulsante2, selected2; e così via in caso di maggior numero di menù.

La funzione gestisce anche il "onMouseOver/onMouseOut", anche questo per "set di pulsanti". ogni volta che si passa sopra il tasto questo guadagna la classe 'over' e questa viene rimossa al momento in cui si esce dal pulsante; allo stesso tempo al passaggio del mouse si perde la classe 'out' e la si guadagna all'uscita.

La classe ha un numero a seconda del set di pulsanti, ci sarà over1, over2 e così via.


Nota:
questa funzione richiede le librerie mootools
*/


//DomReady
window.addEvent('domready', function(){
	clicked();
	hover();
});

var sendLink = new Request.HTML ({
						method: 'post',
						url: 'pages.php',
						update:'basso_content',
						onSuccess: function(){
							clicked();
							hover();
						}
					});		
					
					
function clicked(){
	var persistence=1;
	var group, select, previous, id, name;
	$$('.selectable').each(function(link){ 	
		link.addEvent('click', function(a){

			if (link.hasClass('pulsante1')) {
			//console.log('ha classe pulsante1');
				group='.pulsante1';
				select='selected1';
				previous=(link.hasClass('selected1'));
			} else if (link.hasClass('pulsante2')) {
			//console.log('ha classe pulsante2');			
 				group='.pulsante2';
				select='selected2';  
 				previous=(link.hasClass('selected2'));               
                } 	
	
			$$(group).each(function(old){old.removeClass(select);});
			//if (persistence==1) {link.addClass(select);} else if (!(previous)) {link.addClass(select);}; 
			link.addClass(select);
			a.stop();
			id=link.getProperty('rel');
			name=link.getProperty('name');
			document.title=name;
			sendLink.send({data:'id='+id});				
		});
	});
}

function hover() {
	$$('.selectable').each(function(zelda){
		zelda.addEvents({		
			'mouseover': function(e) {
				if (zelda.hasClass('pulsante1')) {
					zelda.addClass('over1');
					zelda.removeClass('out1');					
				} else if (zelda.hasClass('pulsante2')) {
					zelda.addClass('over2');  
					zelda.removeClass('out2');						
                } 			
			},
			'mouseout': function(e) {
				if (zelda.hasClass('pulsante1')) {
					zelda.removeClass('over1');
					zelda.addClass('out1');					
				} else if (zelda.hasClass('pulsante2')) {
					zelda.removeClass('over2');  
					zelda.addClass('out2');							
                } 					
			}	
		});
	});	 
}


