/**
 * Le contenu main au minimum = #sidebar
 * @return
 */
function mainFx() {
	var main	= $( 'main' );
	var right	= $( 'sidebar' );
	
	if( null === main || null === right ) {
		return;
	}
	
	var mainH	= main.getHeight();
	var rightH 	= right.getHeight();
	
	if( rightH > mainH ){
		main.setStyle({
			height : rightH + 'px'
		});
	}
}


/**
 * Ajout de class css aux widgets
 * 
 * @return
 */
function sidebarLi() {
	/**
	 * Design des widgets
	 */
	var widgets = $$( '#sidebar li.widget' );
	var nbrWidgets = widgets.size();
	
	for( var w=0; w < nbrWidgets; w++ ){
		if( 0 === w ){ $(widgets[0]).addClassName( 'first');}
		if( nbrWidgets-1 === w ){ $(widgets[w]).addClassName( 'last');}
		
		if( 0 === w % 2){ 
			$(widgets[w]).addClassName( 'even');
		} else {
			$(widgets[w]).addClassName( 'odd');
		}
	}
	
	/**
	 * Traitement des titres de widgets vide
	 */
	$$( '#sidebar .widgettitle' ).each( function( title ){
		if( '' === title.innerHTML.strip() || '&nbsp;' === title.innerHTML.strip() ) {
			$(title).remove();
		}
	});
		
}

/**
 * Gestion du champ de recherche de l'en-tête
 * @return
 */
function searchHeader() {
	var defaultWord = 'Recherche...';
	var hs = $( 'hs' );
	if( null === hs ){return;}
	
	if( '' === $F( hs ).strip() ) {
		hs.value = defaultWord;
	}
	
	// Observation
	hs.observe( 'focus', function(e){
		if( defaultWord === $F( hs ).strip() ) {
			hs.clear();
		}
		hs.select();
	});
	
	hs.observe( 'blur', function(e){
		if( '' === $F( hs ).strip() ) {
			hs.value = defaultWord;
		}
	});
}
 
function fbForm() {
	var fbLink = $( 'mail-link' );
	var fbForm = $( 'fb-form' );
	
	fbForm.target = "popupwindow";
	
	if( null === fbLink || null === fbForm ) {
		return;
	}
	
	fbForm.hide();
	var fbFormIsHided = true;
	
	fbLink.observe( 'click', function(e){
		e.stop();
		
		if( fbFormIsHided ) {
			new Effect.Parallel([
				new Effect.BlindDown( fbForm, { sync: true}),
				new Effect.Opacity( fbForm, { sync: true, from: 0, to: 1 }) 
			], { 
				duration: 0.5
			});
			
			fbFormIsHided = false;
		} else {
			new Effect.Parallel([
 				new Effect.BlindUp( fbForm, { sync: true}),
 				new Effect.Opacity( fbForm, { sync: true, from: 1, to: 0 }) 
 			], { 
 				duration: 0.5
 			});
			
			fbFormIsHided = true;
		}
	});		
}


/* Lance les actions lorsque l'arbre du DOM est chargé */
document.observe("dom:loaded", function(e) {
	fbForm();
	
	searchHeader();
	
	sidebarLi();
	mainFx();
});

/**
 * Gestion de la bar de recherche
 * @return
 */
function searchBar() {
	var bar = $( 'search-bar' );
	if( null === bar ){return;}
	
	bar.hide(); // Cache la bar automatiquement
	
	var hs = $( 'hs' );
	
	var minOffset = hs.positionedOffset().top;
	var maxOffset = hs.getHeight() + hs.positionedOffset().top;
	
	if( document.viewport.getScrollOffsets().top < minOffset ) {
		bar.setStyle({
			display: 'none'
		});
	}
		
	if( document.viewport.getScrollOffsets().top >= maxOffset ) {
		// ie
		var minusWidth = 17;
		if ( navigator.appVersion.match( 'MSIE' ) ) {
			minusWidth = 0;
		}
		
		bar.setOpacity(0.75);
		bar.setStyle({
			display: 'block',
			position: 'absolute',
			width: document.viewport.getWidth() - minusWidth + 'px',
			left:0,
			top:document.viewport.getScrollOffsets().top + 'px'
		});
	}
}
Event.observe( window, 'scroll', searchBar );
Event.observe( window, 'resize', searchBar );