/****************************************************
* 					Pixart.it				  		*
*****************************************************
* @file	 			jquery.slideBox.js				*
* @descrizione	 	Classe jQuery Slide Box			*
* @copyright 		Copyright (c) 2010, Pixart SRL	*
****************************************************/

// Chiamata per la trasformazione di un oggetto in uno Slide Box
jQuery.fn.slideBox = function(opt){
	// Impostazione delle opzioni di default
	if(opt==null) opt = {};
	if(opt.slide_top_height==null) opt.slide_top_height = 100;
	if(opt.slide_bottom_height==null) opt.slide_bottom_height = 94;
	if(opt.slide_round_corr==null) opt.slide_round_corr = 8;
	if(opt.slide_shadow_corr==null) opt.slide_shadow_corr = 4;
	var slide_menu = $(this);
	
	// Impostare il posizionamento a relatvo nei css a tutti lo slide-menu
	
	// Calcolo del numero di figli (Slide Box)
	var size = $(this).children('div').size();
	// Impostazione dell'altezza del top div di ogni pannello dell'oggettoopt.slide_shadow_corr
	$(this).find('.slide-top').css({
		'height':opt.slide_top_height+'px'
	});
	// Impostazione dell'altezza del bottom div di ogni pannello dell'oggetto
	$(this).find('.slide-bottom').css({
		'height':opt.slide_bottom_height+'px'
	});
	// Scorrimento di tutti i pannelli presenti nell'oggetto
	$(this).children('div').each(function(){
		// Applicazione del trick per le immagini '.png' su Explorer 6
		$(this).addClass('pngFix');
		// Impostazione della posizione e dello z-index in base al numero di pannelli rimasti
		$(this).css({
			// Settare il posizionamendo degli slide-panel sul css
			left:0,
			'z-index':(size - $(this).prevAll('div').size())
		});	
		// Impostazione della distanza dal bordo alto dell'oggetto
		if($(this).prevAll('div').size()==0){
			$(this).css({
				'top': 0
			});
			$(this).find('.slide-top').css({
				'height':opt.slide_top_height + 1 +'px'
			});
			$(this).find('.slide-bottom').css({
				'height':opt.slide_bottom_height - opt.slide_round_corr - 1 +'px'
			});
		}else{
			if($(this).prevAll('div').size()==1){
				$(this).css({
					'top': (parseInt($(this).prev().css('top')) + opt.slide_bottom_height - 2 * opt.slide_round_corr - opt.slide_shadow_corr - 1)+ 'px'
				});
			}else{
				$(this).css({
					'top': (parseInt($(this).prev().css('top')) + opt.slide_bottom_height - opt.slide_round_corr - opt.slide_shadow_corr)+ 'px'
				});
			}
		}
		// Scorrimento di tutti i div bottom presenti nel pannello corrente (uno solo)
		$(this).find('.slide-bottom').each(function(){
			// Impostazione delle chiamate sul passaggio del mouse
			$(this).mouseover(function(){
				// Applico l'effetto 'slideUp' a tutti i pannelli precedenti
				$(this).parent().prevAll('div').each(function(){
					$(this).find('.slide-top').slideUp();
				});
				// Applico l'effetto 'slideDown' al pannello corrente
				$(this).parent().find('.slide-top').slideDown();
				// Applico l'effetto 'slideDown' a tutti i pannelli successivi
				$(this).parent().nextAll('div').each(function(){
					$(this).find('.slide-top').slideDown();
				});
			});
		});
	});
	
	// Visualizzazione del menu
	$(this).show();
};

/****************************************************/