/*
	1 - récupérer la taille du navigateur
	2 - récupérer la liste des éléments enfants du navigateur
	3 - calculer la taille occupée par les enfants du navigateur
	4 - ajuster taille First ou LastTabSpacer en fonction de la class TabAlign du navigateur
	5 - pour chaque onglet : installer handlers mouseover mouseout et click

*/

var Navigator = new Class(

	{

		initialize : function(nav) {

			this.navUsedSize = 0 ;
			var navChilds = nav.getChildren() ;
			
			navChilds.each(
				function(child) {
					this.navUsedSize += child.offsetWidth ;
				},
				this
			) ;
			
			var navAlignClass = nav.hasClass('Left') ? 'Left' : nav.hasClass('Center') ? 'Center' : nav.hasClass('Right') ? 'Right' : '' ;
			
			switch(navAlignClass) {
			
				case 'Left' :
					
					var spacer ;
					spacer = nav.getElement('.TabSpacer.Last') ;
					spacer.setStyle('width', nav.offsetWidth - this.navUsedSize + spacer.offsetWidth) ;
					
				break ;
				
				case 'Center' :
				
					var spacer1 = nav.getElement('.TabSpacer.First') ;
					var spacer2 = nav.getElement('.TabSpacer.Last') ;
					var fill1 = Math.round((nav.offsetWidth - this.navUsedSize) / 2) ;
					spacer1.setStyle('width', fill1 + spacer1.offsetWidth) ;
					this.navUsedSize += fill1 ;
					spacer2.setStyle('width', nav.offsetWidth - this.navUsedSize + spacer2.offsetWidth) ;

				break ;

				case 'Right' :
				
					var spacer ;
					spacer = nav.getElement('.TabSpacer.First') ;
					spacer.setStyle('width', nav.offsetWidth - this.navUsedSize + spacer.offsetWidth) ;

				break ;

				default :
				
				break ;
				
			}
			
			nav.getElements('.Tab').each(
			
				function(tab) {
				
					if(!tab.hasClass('Active')) {
					
						tab.addEvents(
						
							{
							
								'mouseover' : function(tab) {
								
									tab.addClass('Over') ;
									
								}.pass([tab]),
								'mouseout' : function(tab) {
								
									tab.removeClass('Over') ;
								
								}.pass([tab])
							
							}
							
						) ;
						
					}
					
				}
				
			) ;
			
		}
		
	}

) ;

var navigators = [] ;

function launchNavigators() {

	$$('.TabNav').each(
		
		function(nav, navigators) {
		
			this[nav.getProperty('id')] = new Navigator(nav) ;
		
		}
		
	) ;
	
}