(function($) {
	$.extend($.fx.step,{
		backgroundPosition: function(fx) {
			if (fx.state === 0 && typeof fx.end == 'string') {
				var start = $.curCSS(fx.elem,'backgroundPosition');
				start = toArray(start);
				fx.start = [start[0],start[2]];
				var end = toArray(fx.end);
				fx.end = [end[0],end[2]];
				fx.unit = [end[1],end[3]];
			}
			var nowPosX = [];
			nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
			nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];
			fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];

		   function toArray(strg){
			   strg = strg.replace(/left|top/g,'0px');
			   strg = strg.replace(/right|bottom/g,'100%');
			   strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
			   var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
			   return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
		   }
		}
	});
})(jQuery);



function apriPagina(pag,file){

	$('.page').css({
		bottom: -410,
		opacity: 0.5
	});

	$(pag).animate({
		bottom: 30,
		opacity: 1
	}, 100, "linear").animate({
		bottom: (file=='home' ? 30 : 0),
		opacity: 1
	}, {'duration':400, 'easing':'easeOutQuad' });	
}

function setAjaxUrl(url){
	var loc = location.href;
	
	if(loc.match(/\#\//)){
		loc = loc.match(/(.*)\#\//);
		loc = loc[1] + '#/' + url;
	}else{
		loc += '#/' + url;
	}

	location.href = loc;
}

function getAjaxUrl(){
	var loc = location.href;
	
	if(loc.match(/\#\//)){
		loc = loc.match(/.*\#\/(.*)/);
		return loc[1];
	}else{
		return false;	
	}
}

function navigateAjaxUrl(root,url){
	var loc = root + url;
	location.href = loc;
}

function loadPage(page,query){
	if(page=='club'){
		location.href = "club.php";
	}else{

		var box = $('#page_'+page);
	
		if(!box.size() || page=='home' || page=='catalogo'){
			
			if(page=='home' || page=='catalogo')
				$('#page_'+page).remove();
				
			$.ajax({
				url: 'templates/'+page+'.php'+(query?'?'+query:''),
				cache: false,
				async: false,
				success: function(html){
					$('#page_catalogo_old').empty();
					$('#sitewindow').append(html);
					box = $('#page_'+page);
				}
			});
	
		}
	
		return box;
		
	}
}

function cliccaMenu(menuitem){
	menuitem = $(menuitem);
	$('#menu a.menu[id!='+menuitem.attr('id')+']').removeClass('sel').trigger('mouseleave');
	menuitem.addClass('sel').trigger('mouseenter');
}

function mountAjaxMenu(page){
	$('#menu a.menu').click(function(e){
								
		e.preventDefault();
		
		var apri = $(this).attr('id').match(/menu_link_(.*)/);
			apri = apri[1];
		var query = $(this).attr('rel');
		var vecchia = $('#page_'+pagina);
		var nuova = null;
		
		
		setAjaxUrl($(this).attr('href'));

		if(pagina == apri){
			if(apri=='catalogo'){
				vecchia.attr('id', vecchia.attr('id')+'_old');
			}else{
				return;
			}
		} 
		
		cliccaMenu($(this));
		
		nuova = loadPage(apri, query);
		
		vecchia.css('z-index', 100);
		nuova.css('z-index', 1);
		
		if(apri == 'home'){
			
			nuova.css({
				bottom: 30,
				opacity: 1
			});
			
			$('#logo').animate({
				top: 0
			}, {'duration':600, 'easing':'easeInOutQuad'});
			$('#bandierine').animate({
				top: 17
			}, {'duration':600, 'easing':'easeInOutQuad'});
			
			$('#menu').animate({
				bottom: 40
			}, {'duration':600, 'easing':'easeInOutQuad'});
			
			vecchia.animate({
					bottom: -410,
					opacity: 0.1
			}, 600, 'easeInCubic', function(){
				listaCategorie('apri');
			});
		
		}else{
			
			if(pagina == 'home')
				listaCategorie('chiudi');
			
			$('#logo').animate({
				top: -25
			}, {'duration':500, 'easing':'easeInOutQuad'});
			$('#bandierine').animate({
				top: 0
			}, {'duration':600, 'easing':'easeInOutQuad'});
			
			$('#menu').animate({
				bottom: 20
			}, {'duration':500, 'easing':'easeInOutQuad'});
			
			vecchia.animate({
					bottom: -20,
					opacity: 0.8
			}, {'duration':100, 'easing':'linear'})
			.animate({
					bottom: 500,
					opacity: 0.1
			}, 250, "linear", function(){
				apriPagina(nuova);
				$('#page_catalogo_old').remove();
			});
		}
		
		pagina = apri;
	});
	
	$('#menu a.menucat').click(function(e){
		
		e.preventDefault();
		
		var cnum = $(this).attr('id').match(/cat_link_(.*)/)[1];
		
		$('#menu_link_catalogo').attr({
			rel: 'c='+cnum,
			href: 'catalogo.php?c='+cnum
		});
		
		$('#menu_link_catalogo').trigger('click');
	});
	
	$('#menu a.menu').mouseenter(function(){
			var xpos = parseInt( jQuery.browser.msie ? $(this).css('background-position-x') : $(this).css('background-position'));
			
			if(jQuery.browser.msie){
				$(this).css('background-position', xpos+"px -27px");
			}else{
				$(this).stop().animate({
					backgroundPosition: "("+xpos+"px -27px)"
				},{duration:120});					
			}
			
			if($(this).attr('id') == 'menu_link_catalogo')
				$('#menu_catalogo').fadeIn(300);
				
	}).mouseleave(function(){
		
		if($(this).hasClass('sel'))
			return;
		
		var xpos = parseInt( jQuery.browser.msie ? $(this).css('background-position-x') : $(this).css('background-position')); //var xpos = parseInt($(this).css('background-position'));
		
		if(jQuery.browser.msie){
			$(this).css('background-position', xpos+"px 0");
		}else{
			$(this).stop().animate({
				backgroundPosition:"("+xpos+"px 0)"
			}, {duration:120});					
		}
		
		
		
		if($(this).attr('id') == 'menu_link_catalogo'){
			setTimeout(function(){
				if(!catalogo)
					$('#menu_catalogo').fadeOut(300);
			},400);
		}
			
	});
	
	$('#menu_catalogo').mouseenter(function(){
		catalogo = true;
	}).mouseleave(function(){
		catalogo = false;
		$('#menu_link_catalogo').trigger('mouseleave');
	});
	
}

function listaCategorie(op){
	
	if(op=='apri'){
		
		if($('#categorie').hasClass('kwicks')) return;
		$('#categorie').addClass('kwicks');
		
		$('#categorie li').fadeTo(0,0);
	
		$('#categorie li').each(function(){
			var num = $(this).attr('id').match(/cat_(.*)/);
			
			$(this).fadeTo( 200 + (num[1] * 100), 0, function(){
				$(this).fadeTo(500, 1, function(){
					
					if(num[1] == 7){
						$('#categorie').kwicks({
							max: 250,
							spacing: 10,
							duration: 400
						});	
					}
				});
			});
		});
		
		$('#categorie li a span').css('opacity', 0.8);
		
		$('#categorie li a').mouseenter(function(){
			$(this).children().stop().animate({
				top: 0
			}, 500, 'easeInOutQuad');
		});
		
		$('#categorie li a').mouseleave(function(){
			$(this).children().stop().animate({
				top: -40
			}, 200, 'easeInQuad');										 
		});
		
		$('#categorie li a').click(function(e){
			
			e.preventDefault();
			
			var cnum = $(this).attr('id').match(/cat_link_(.*)/)[1];
			
			$('#menu_link_catalogo').attr({
				rel: 'c='+cnum,
				href: 'catalogo.php?c='+cnum
			});
			
			$('#menu_link_catalogo').trigger('click');
		});
		
		
	}else{
		
		/*if(!$('#categorie').hasClass('kwicks')) return;
		$('#categorie').removeClass('kwicks');
		
		$('#categorie li').fadeTo(1,0);
	
		$('#categorie li').each(function(){
			var num = $(this).attr('id').match(/cat_(.*)/);
			
			$(this).fadeTo( (num[1] * 100), 1, function(){
				$(this).fadeTo(300, 0);
			});
		});*/
		
		$('#categorie li').fadeOut(200);
	}		
}

function spostaCatalogo(to,dir){
	
	var catout = $('#catalogo_outer');
	var catin = $('#catalogo_inner');
	
	if(!to.size()) return;
	
	/*if(selitem == to){
		catin.css('left','50%');		
	}*/
	
	if(dir=='dx'){
		
		var num = to.prevAll().size();
		var offset = ( num > 2 ? 45 : ( num > 1 ? 90 : ( num > 0 ? 162 : 0 ) ) );

		catout.scrollTo('+='+offset+'px', 300, {easing:'easeInOutQuad'});
	}else{
		var num = to.siblings().size() - to.nextAll().size(); 
		var offset = ( num > 2 ? 45 : ( num > 1 ? 90 : ( num > 0 ? 45 : 162 ) ) );

		catout.scrollTo('-='+offset+'px', 300, {easing:'easeInOutQuad'});
	}
	
	selitem = to;
	
	var selSx1 = selitem.prev();
	var selSx2 = selSx1.prev();
	var selDx1 = selitem.next();
	var selDx2 = selDx1.next();

	var nosel = $('#catalogo_inner .item[id!='+selSx2.attr('id')+'][id!='+selSx1.attr('id')+'][id!='+selitem.attr('id')+'][id!='+selDx1.attr('id')+'][id!='+selDx2.attr('id')+']');
	
	$('#catalogo_inner .item').removeClass('selezionato');
	
	nosel.animate({
		height: 50,
		marginTop: 255,
		width: 45
	}, 300, 'linear');
	
	$('#'+selSx2.attr('id')+', #'+selDx2.attr('id')).animate({
		height: 100,
		marginTop: 205,
		width: 90
	}, 300, 'linear');
	
	$('#'+selSx1.attr('id')+', #'+selDx1.attr('id')).animate({
		height: 180,
		marginTop: 125,
		width: 162
	}, 300, 'linear');
	
	selitem.animate({
		height: 307,
		marginTop: 0,
		width: 280
	}, 300, 'linear');
	
	selitem.addClass('selezionato');
	
}

















