// JavaScript Document
// Definisco il margine inferiore massimo e minimo per l'header
var MaxHeaderMrgHt = 80;
var MinHeaderMrgHt = 10;

// Definisco il margine superiore massimo e minimo per il footer
var MaxFooterMrgHt = 80;
var MinFooterMrgHt = 10;

// Posizionamento al caricamento della pagina
jQuery(document).ready(SetBarPosition);

// Posizionamento al ridimensionamento della finestra 
jQuery(window).resize(SetBarPosition);

// Funzione che calcola la posizione delle barre header e footer in base alla dimensione della finestra.
function SetBarPosition() {
	var LogoHt = jQuery('#LogoCividina').height(); // Altezza dell'immagine del logo
	var FooterImgHt = jQuery('#ImgFooter').height(); // Altezza dell'immagine del footer
	var WindowHt = jQuery(window).height(); // Altezza iniziale della finestra
	var BoxHt = jQuery('.box_contenuto').height(); // Altezza del contenitore
	
	// Se esiste la riga di navigazione la aggiungo alla dimensione del box
	if(jQuery('.navigazione').length) {
		var NavHt = jQuery('.navigazione').height(); // Altezza della barra di navigazione
		BoxHt += NavHt;
	}
	
	// Calcolo lo spazio disponibile per l'header e footer: ([Altezza Finestra] -[Altezza Contenitore]) / 2
	var BarHt = parseInt((WindowHt-BoxHt)/2);
	
	// In base all'altezza disponibile calcolo il margine inferiore per l'header: ([Spazio disponibile] - [Altezza Logo]) / 2 ... 
	var HeaderBottomMrg = parseInt((BarHt-LogoHt)/2);
	
	// ... e il margine superiore per il footer: ([Spazio disponibile] - [Altezza Immagine Footer]) / 2
	var FooterTopMrg = parseInt((BarHt-FooterImgHt)/2);
	
	//HEADER: se il margine è inferiore al minimo imposto il minimo come valore
	HeaderBottomMrg = (HeaderBottomMrg < MinHeaderMrgHt?MinHeaderMrgHt:HeaderBottomMrg);
	
	//HEADER: se il margine è superiore al massimo imposto il massimo come valore
	HeaderBottomMrg = (HeaderBottomMrg > MaxHeaderMrgHt?MaxHeaderMrgHt:HeaderBottomMrg);
	
	//FOOTER: se il margine è inferiore al minimo imposto il minimo come valore
	FooterTopMrg = (FooterTopMrg < MinFooterMrgHt?MinFooterMrgHt:FooterTopMrg);
	
	//FOOTER: se il margine è superiore al massimo imposto il massimo come valore
	FooterTopMrg = (FooterTopMrg > MaxFooterMrgHt?MaxFooterMrgHt:FooterTopMrg);

	// Posizionamento dell'header
	jQuery('.logo_home').css('margin-bottom',HeaderBottomMrg + 'px');
	
	// Posizionamento del footer
	jQuery('.footer').css('margin-top',FooterTopMrg + 'px');

	//jQuery('#debug').append('&nbsp;' + MinHeaderMrgHt + '&nbsp;' + HeaderBottomMrg + '&nbsp;' + MaxHeaderMrgHt + '<br />');	
}

// Funzioni per l'avanzamento a scrolling
var step = 130;
var speed = 700;
function Avanti() {
	var _objPosition = jQuery("#scroller").position();
	var curLeft = _objPosition.left;
	var Margin
	if(curLeft > -340) {
		//alert(curLeft);
		curLeft -= step;
		
		RemoveHandlers();	
		jQuery("#scroller").animate({left:curLeft + "px"},speed,'linear',RestoreHandlers);
	}
}

function Indietro() {
	var _objPosition = jQuery("#scroller").position();
	var curLeft = _objPosition.left;
	//alert(curLeft);
	if(curLeft < 0) {
		RemoveHandlers();	
		curLeft += step;
		jQuery("#scroller").animate({left:curLeft + "px"},speed,'linear',RestoreHandlers);
	}
}

// Funzione che blocca gli eventi per le immagini di scroll
function RemoveHandlers() {
	// Blocco l'azione di un eventuale click prima della fine dell'animazione
	jQuery('#imgFwd').unbind('click', Avanti);
	jQuery('#imgBack').unbind('click', Indietro);
}

// Funzione che ripristina gli eventi per le immagini di scroll
function RestoreHandlers() {
	// Ripristino gli eventi
	jQuery('#imgFwd').bind('click', Avanti);
	
	
	var _objPosition = jQuery("#scroller").position();
	var curLeft = _objPosition.left;
		
	// Controllo se devo nascondere i pulsanti: Pulsante indietro
	if(curLeft >= 0) {
		jQuery("#imgBack").hide(); 
	} else {
		jQuery("#imgBack").show();
		jQuery('#imgBack').bind('click', Indietro);
	}
	
	// Controllo se devo nascondere i pulsanti: Pulsante avanti
	if(curLeft <= -130) {
		jQuery("#imgFwd").hide(); 
	} else {
		jQuery("#imgFwd").show();
		jQuery('#imgFwd').bind('click', Avanti);
	}
}

// Funzione richiamata dal timeout per il rollover delle miniature
var checkCambio = false; // Variabile di controllo
var objTimeOut = null; // Oggetto timeout
var tempoTimeOut = 1000; // Tempo di timeout in ms
function CambiaMiniatura() {
	if(checkCambio)
		MM_swapImgRestore();
}
