//////////////////////////////
// per BARRA (quando presente)  //
//////////////////////////////
var oldpage = 0;
var topage = 0;
var oldposition = 0;
var maxsteps = 100;
var pageDistance = Math.floor( maxsteps / Number($("#items > .tabitem").size() - 1 ) );
var i = 0; 
var changedBySliding = false
			

function movePageRel(span){
	 topage += span;
	 movePageAbs(topage)    
}

function movePageAbs(mypage){
	topage = mypage; 
	//non devo sforare il numero massimo di pagine esistenti
	 topage = Math.min(topage, Number($("#items > .tabitem").size() - 1 ));
	 //non devo andare sotto zero
	 topage = Math.max(topage, 0 );
	 if(oldpage != topage){
		 position = topage * pageDistance;
		 $("#flowpanes").data("scrollable").seekTo( topage ,500);
		 $(":range").data("rangeinput").setValue( position );        
		 
		 oldpage = topage;
		 oldposition = position;
	 }
}

$(function() {
	
	//la variabile pagePath e' definita in !head.tpl.php
	

	////////////////
	// ARCO FLASH //
	////////////////
	//controllo se flash e' installato
	flashembed( 'flash',  {
				src: pagePath + 'swf/golden-moustache.swf',
				allowfullscreen: false,
				
				expressInstall: pagePath + 'swf/expressinstall.swf',
				wmode: "transparent",
				onFail: function() {
					$('#flash').hide();
				}
		} );
	
	//////////////
	// MENU     //
	//////////////
	
	$('a.menulink').hover(function(e){
		$(this).clearQueue().animate( {
				opacity : 0.3 
			}, 500
		);
	},function(e){
		$(this).clearQueue().animate( {
				opacity : 1
			}, 500
		);
	});

	//////////////////////////////	
	// BARRA (quando presente)  //
	//////////////////////////////
	
	pageDistance = Math.floor( maxsteps / Number($("#items > .tabitem").size() - 1 ) );

	$(":range").rangeinput({
		// slide the DIV along with the range using jQuery's css() method
		onSlide: function(ev, positionNow){            
			//salto qualche ciclo per non sovraccaricare troppo l'animazione
			i++;
			if(i < 10){ 
				return true;
			}
			i = 0;
			
			distanceFactor = 4/5;
			//controllo in che verso sto andando
		   //	if(Math.abs(positionNow - oldposition) > 1){
				if(positionNow >= oldposition){
					topage = Math.floor((positionNow + pageDistance*distanceFactor)/pageDistance);
				}else{
					topage = Math.ceil((positionNow - pageDistance*distanceFactor)/pageDistance);
				}
			//}
				
			//non devo sforare il numero massimo di pagine esistenti
			topage = Math.min(topage, Number($("#items > .tabitem").size() - 1 ));
			//non devo andare sotto zero
			topage = Math.max(topage, 0 );
			
			oldposition = positionNow;            
			if(oldpage != topage){
				oldpage = topage;
				changedBySliding = true;
				$("#flowpanes").data("scrollable").seekTo(topage,500);
			}
		},

		// this is called when the slider is clicked. we animate the DIV
		change: function(e, positionNow) {   
			if(changedBySliding){
				changedBySliding = false;
			}else{
				if(positionNow > oldposition){
					topage = Math.floor((positionNow + pageDistance)/pageDistance);
				}else if (positionNow < oldposition){
					topage = Math.ceil((positionNow - pageDistance)/pageDistance);
				} 
				//non devo sforare il numero massimo di pagine esistenti
				topage = Math.min(topage, Number($("#items > .tabitem").size() - 1 ));
				//non devo andare sotto zero
				topage = Math.max(topage, 0 );
				
				if(oldpage != topage){
					oldpage = topage;
					$("#flowpanes").data("scrollable").seekTo(topage,500);
				}  
			}
			$(":range").data("rangeinput").setValue(topage * pageDistance );
			oldposition = oldpage * pageDistance;
		},

		// disable drag handle animation when when slider is clicked
		speed: 0

	});

	
	////////////////////////////////////////////////////
	// rendo scrollabile i pannelli (quando presenti) //
	////////////////////////////////////////////////////
	$("#flowpanes").scrollable({ circular: false, mousewheel: false }).navigator();	
	
	////////////////////////////////////////////////////
	// rendo attivi i pulsanti freccia (quando presenti) //
	////////////////////////////////////////////////////
	$("#left_arrow").click(function(){
		movePageRel(-1);
	})
	$("#right_arrow").click(function(){
		movePageRel(+1)	
	})

	////////////////////////////////////////////////////
	// rendo attivi i link in roots (quando presenti) //
	////////////////////////////////////////////////////
   $(".maschiostylelink").click(function(e){
	 var pageid = $(this).attr('pageid');
	 movePageAbs(pageid);     
	 e.preventDefault();
   });

	////////////////////////////////////////////////////
	// animo i sottomenu dei prodotti                      //
	////////////////////////////////////////////////////
	$(".slidetogglebis > .titlebis").each(function(){
		$(this).click(function () {
			var slide = $(this).parent().find(".prodotti_listbis");
			$(".prodotti_listbis").not(slide).slideUp()
			slide.slideToggle("slow");
		});
	});
	$(".prodotti_listbis").not('#active_list').slideUp(0);
	
	////////////////////////////////////////////////////
	// animo i menu dei prodotti                      //
	////////////////////////////////////////////////////
	$(".slidetoggle > .title").each(function(){
		$(this).click(function () {
			var slide = $(this).parent().find(".prodotti_list");
			$(".prodotti_list").not(slide).slideUp()
			slide.slideToggle("slow");
		});
	});
	$(".prodotti_list").not('#active_list').slideUp(0);
	
});

