jQuery.fn.slideMenu = function(){
	//formatto il menu e aggiungo il testo back
	var viewport_width = $('#slidemenu_viewport').width();
	var menublock_number = $('.slidemenu_block').length;
	var menucolumns_width = viewport_width * menublock_number;
	var slidemenu_columns_pos = '-' + ((menublock_number-1) * viewport_width) + 'px';
	var max_height = 0;
	var slidemenu_transition_time = 1000;
	var slidemenu_interval = 7000;
	var slidemenu_interval_id = 0;
	trace('sm = ' + slidemenu_columns_pos);
	
	//imposto gli stili e gli elementi dinamici dinamici
	$('.slidemenu_block').each(function(i){
		
		//aggiungo il tasto back
		if(i>0){
			$(this).find('ul').before('<div class="slidemenu_level_action slidemenu_back">back</div>');	
		}else{
			$(this).find('ul').before('<div class="slidemenu_level_action">&nbsp;</div>');	
		}
		
		var w = i * viewport_width;
		$(this).css('left', w + 'px');
		$(this).attr('tgt_pos', '-' + (w - viewport_width) + 'px');
		max_height = ($(this).height() > max_height)?$(this).height():max_height;
		
	});
	$('#slidemenu_viewport').css('height', max_height + 'px');
	$('#slidemenu_columns').css('width', menucolumns_width + "px").css('left', slidemenu_columns_pos);
	
	//assegno l'azione al tasto back
	$('.slidemenu_back').click(function(){
		var tgt_pos = $(this).parents('.slidemenu_block').attr('tgt_pos');
		//animo il menu
		$('#slidemenu_columns').animate({
			left: tgt_pos
		}, slidemenu_transition_time);
		//faccio partire il l'intervallo per ripristinare la posizione originale del menu
		clearInterval(slidemenu_interval_id);
		slidemenu_interval_id = setInterval(reset_menu, slidemenu_interval + slidemenu_transition_time);
	});
	
	function reset_menu(){
		$('#slidemenu_columns').animate({
			left: slidemenu_columns_pos
		}, slidemenu_transition_time);
	}
	function trace(m){
		//console.log(m)
	}
};