var Navigation = function() {
	var me = this;
	var args = arguments;
	
	var self = {
		c: {
			navItems: '#intermediaire_compte_profil .rub1, #intermediaire_compte_pass .rub1, #intermediaire_compte_carnet .rub1, #intermediaire_compte_commandes .rub1, #intermediaire_compte_historique .rub1, #intermediaire_media_projets .rub1, #intermediaire_media_creas .rub1, #intermediaire_media_contenus .rub1, #intermediaire_media_pilotes .rub1, #intermediaire_produits_1 .rub1, #intermediaire_produits_2 .rub1, #intermediaire_produits_3 .rub1, #intermediaire_produits_4 .rub1, #intermediaire_produits_5 .rub1, #intermediaire_produits_6 .rub1, #intermediaire_produits_7 .rub1, #intermediaire_produits_8 .rub1, #intermediaire_produits_9 .rub1, #intermediaire_produits_10 .rub1, #intermediaire_produits_11 .rub1, #intermediaire_produits_12 .rub1, #intermediaire_produits_13 .rub1, #intermediaire_produits_14 .rub1, #intermediaire_produits_15 .rub1, #intermediaire_produits_16 .rub1, #intermediaire_produits_17 .rub1, #intermediaire_produits_18 .rub1, #intermediaire_produits_19 .rub1, #intermediaire_produits_20 .rub1, #intermediaire_produits_21 .rub1, #intermediaire_affiches .rub1, #intermediaire_cartes .rub1, #intermediaire_crea .rub1, #intermediaire_dossiers .rub1, #intermediaire_flyer .rub1, #intermediaire_mail .rub1, #intermediaire_plaquettes .rub1, #intermediaire_fiches .rub1, #intermediaire_cd .rub1, #intermediaire_num .rub1, #intermediaire_simple .rub1, #prod_config_compte .rub1, #prod_config_devis .rub1, #prod_config_annonces .rub1, #prod_config_prev_affiches .rub1, #prod_config_prev_cartes .rub1, #prod_config_prev_cd .rub1, #prod_config_prev_crea .rub1, #prod_config_prev_dossiers .rub1, #prod_config_prev_fiches .rub1, #prod_config_prev_flyer .rub1, #prod_config_prev_mail .rub1, #prod_config_prev_num .rub1, #prod_config_prev_plaquettes .rub1, #prod_config_autre .rub1, #prod_config_devis_fiche .rub1, #prod_config_affiches .rub1, #prod_config_cartes .rub1, #prod_config_cd .rub1, #prod_config_crea .rub1, #prod_config_dossiers .rub1, #prod_config_fiches .rub1, #prod_config_flyer .rub1, #prod_config_mail .rub1, #prod_config_num .rub1, #prod_config_plaquettes .rub1',
			
			navSpeed: ($.browser.safari ? 600 : 350),
			
			snOpeningSpeed: ($.browser.safari ? 400 : 250),
			snOpeningTimeout: 150,
			
			snClosingSpeed: function() {
				if (self.subnavHovered()) return 123450; return 150; 			
			},
			snClosingTimeout: 700 
		},
		
		init: function() {
			$(' ', this.c.navItems).css({
					'opacity': 0
				});
			
			this.initHoverFades();
		},
		
		subnavHovered: function() {
			var hovered = false;
			$(self.c.navItems).each(function() {
				if (this.hovered) hovered = true;
			});
			return hovered;
		},
		
		initHoverFades: function() {
			$('#intermediaire_compte_profil .main, #intermediaire_compte_pass .main, #intermediaire_compte_carnet .main, #intermediaire_compte_commandes .main, #intermediaire_compte_historique .main, #intermediaire_media_projets .main, #intermediaire_media_creas .main, #intermediaire_media_contenus .main, #intermediaire_media_pilotes .main, #intermediaire_produits_1 .main, #intermediaire_produits_2 .main, #intermediaire_produits_3 .main, #intermediaire_produits_4 .main, #intermediaire_produits_5 .main, #intermediaire_produits_6 .main, #intermediaire_produits_7 .main, #intermediaire_produits_8 .main, #intermediaire_produits_9 .main, #intermediaire_produits_10 .main, #intermediaire_produits_11 .main, #intermediaire_produits_12 .main, #intermediaire_produits_13 .main, #intermediaire_produits_14 .main, #intermediaire_produits_15 .main, #intermediaire_produits_16 .main, #intermediaire_produits_17 .main, #intermediaire_produits_18 .main, #intermediaire_produits_19 .main, #intermediaire_produits_20 .main, #intermediaire_produits_21 .main, #intermediaire_affiches .main, #intermediaire_cartes .main, #intermediaire_crea .main, #intermediaire_dossiers .main, #intermediaire_flyer .main, #intermediaire_mail .main, #intermediaire_plaquettes .main, #intermediaire_fiches .main, #intermediaire_cd .main, #intermediaire_num .main, #intermediaire_simple .main, #prod_config_compte .main, #prod_config_devis .main, #prod_config_annonces .main, #prod_config_prev_affiches .main, #prod_config_prev_cartes .main, #prod_config_prev_cd .main, #prod_config_prev_crea .main, #prod_config_prev_dossiers .main, #prod_config_prev_fiches .main, #prod_config_prev_flyer .main, #prod_config_prev_mail .main, #prod_config_prev_num .main, #prod_config_prev_plaquettes .main, #prod_config_autre .main, #prod_config_devis_fiche .main, #prod_config_affiches .main, #prod_config_cartes .main, #prod_config_cd .main, #prod_config_crea .main, #prod_config_dossiers .main, #prod_config_fiches .main, #prod_config_flyer .main, #prod_config_mail .main, #prod_config_num .main, #prod_config_plaquettes .main').append('<span class="hover"></span>');
			
			$('#intermediaire_compte_profil .hover, #intermediaire_compte_pass .hover, #intermediaire_compte_carnet .hover, #intermediaire_compte_commandes .hover, #intermediaire_compte_historique .hover, #intermediaire_media_projets .hover, #intermediaire_media_creas .hover, #intermediaire_media_contenus .hover, #intermediaire_media_pilotes .hover, #intermediaire_produits_1 .hover, #intermediaire_produits_2 .hover, #intermediaire_produits_3 .hover, #intermediaire_produits_4 .hover, #intermediaire_produits_5 .hover, #intermediaire_produits_6 .hover, #intermediaire_produits_7 .hover, #intermediaire_produits_8 .hover, #intermediaire_produits_9 .hover, #intermediaire_produits_10 .hover, #intermediaire_produits_11 .hover, #intermediaire_produits_12 .hover, #intermediaire_produits_13 .hover, #intermediaire_produits_14 .hover, #intermediaire_produits_15 .hover, #intermediaire_produits_16 .hover, #intermediaire_produits_17 .hover, #intermediaire_produits_18 .hover, #intermediaire_produits_19 .hover, #intermediaire_produits_20 .hover, #intermediaire_produits_21 .hover, #intermediaire_affiches .hover, #intermediaire_cartes .hover, #intermediaire_crea .hover, #intermediaire_dossiers .hover, #intermediaire_flyer .hover, #intermediaire_mail .hover, #intermediaire_plaquettes .hover, #intermediaire_fiches .hover, #intermediaire_cd .hover, #intermediaire_num .hover, #intermediaire_simple .hover, #prod_config_compte .hover, #prod_config_devis .hover, #prod_config_annonces .hover, #prod_config_devis_fiche .hover, #prod_config_prev_affiches .hover, #prod_config_prev_cartes .hover, #prod_config_prev_cd .hover, #prod_config_prev_crea .hover, #prod_config_prev_dossiers .hover, #prod_config_prev_fiches .hover, #prod_config_prev_flyer .hover, #prod_config_prev_mail .hover, #prod_config_prev_num .hover, #prod_config_prev_plaquettes .hover, #prod_config_autre .hover, #prod_config_affiches .hover, #prod_config_cartes .hover, #prod_config_cd .hover, #prod_config_crea .hover, #prod_config_dossiers .hover, #prod_config_fiches .hover, #prod_config_flyer .hover, #prod_config_mail .hover, #prod_config_num .hover, #prod_config_plaquettes .hover').css('opacity', 0);
			
			$('#intermediaire_compte_profil .main, #intermediaire_compte_pass .main, #intermediaire_compte_carnet .main, #intermediaire_compte_commandes .main, #intermediaire_compte_historique .main, #intermediaire_media_projets .main, #intermediaire_media_creas .main, #intermediaire_media_contenus .main, #intermediaire_media_pilotes .main, #intermediaire_produits_1 .main, #intermediaire_produits_2 .main, #intermediaire_produits_3 .main, #intermediaire_produits_4 .main, #intermediaire_produits_5 .main, #intermediaire_produits_6 .main, #intermediaire_produits_7 .main, #intermediaire_produits_8 .main, #intermediaire_produits_9 .main, #intermediaire_produits_10 .main, #intermediaire_produits_11 .main, #intermediaire_produits_12 .main, #intermediaire_produits_13 .main, #intermediaire_produits_14 .main, #intermediaire_produits_15 .main, #intermediaire_produits_16 .main, #intermediaire_produits_17 .main, #intermediaire_produits_18 .main, #intermediaire_produits_19 .main, #intermediaire_produits_20 .main, #intermediaire_produits_21 .main, #intermediaire_affiches .main, #intermediaire_cartes .main, #intermediaire_crea .main, #intermediaire_dossiers .main, #intermediaire_flyer .main, #intermediaire_mail .main, #intermediaire_plaquettes .main, #intermediaire_fiches .main, #intermediaire_cd .main, #intermediaire_num .main, #intermediaire_simple .main, #prod_config_compte .main, #prod_config_devis .main, #prod_config_annonces .main, #prod_config_prev_affiches .main, #prod_config_prev_cartes .main, #prod_config_prev_cd .main, #prod_config_prev_crea .main, #prod_config_prev_dossiers .main, #prod_config_prev_fiches .main, #prod_config_prev_flyer .main, #prod_config_prev_mail .main, #prod_config_prev_num .main, #prod_config_prev_plaquettes .main, #prod_config_autre .main, #prod_config_devis_fiche .main, #prod_config_affiches .main, #prod_config_cartes .main, #prod_config_cd .main, #prod_config_crea .main, #prod_config_dossiers .main, #prod_config_fiches .main, #prod_config_flyer .main, #prod_config_mail .main, #prod_config_num .main, #prod_config_plaquettes .main').hover(function() {

				self.fadeNavIn.apply(this);
			}, function() {
				var el = this;
				
				setTimeout(function() {
					if (!el.open) self.fadeNavOut.apply(el);
				}, 10);
			});
		},
		
		fadeNavIn: function() {
			$('.hover', this).stop().animate({
				'opacity': 1
			}, self.c.navSpeed);
		},

		fadeSubnavIn: function() {
			var el = this;
			$('', this)
				.stop()
				.css('display', 'block')
				.animate({
					'top': '58px',
					'opacity': 1
				}, self.c.snOpeningSpeed, function() { el.open = true; });
		},

		fadeNavOut: function() {
			$('.hover', this).stop().animate({
				'opacity': 0
			}, self.c.navSpeed);
		
		},

		fadeSubnavOut: function() {
			$('', this)
				.stop()
				.animate({
					'opacity': 0
				}, self.c.snClosingSpeed(), function() { $(this).css({'top': '58px', 'display': 'none'}); });
		},
		
		initSubmenus: function() {
			$(this.c.navItems).hover(function() {
				$(self.c.navItems).not(this).each(function() {
					self.fadeNavOut.apply(this);
					self.fadeSubnavOut.apply(this);
				});
				
				this.hovered = true;
				if ($('', this).length == 0) return;
		
				var el = this;
				
				self.fadeNavIn.apply(el);

				clearTimeout(el.level1);
				
				el.level1 = setTimeout(function() {						
					self.fadeSubnavIn.apply(el);
				}, self.c.snOpeningTimeout);
				
				
			}, function() {
				this.hovered = false;
				if ($('', this).length == 0) return;
				var el = this;
				
				clearTimeout(el.level1);
				if (!el.open) self.fadeNavOut.apply(el);

				el.level1 = setTimeout(function() {
					el.open = false;

					self.fadeSubnavOut.apply(el);
					self.fadeNavOut.apply(el);

				}, self.c.snClosingTimeout);


			});
		}
		
	};
	
	self.init.apply(self);
	return self;
};


$(function(){
	new Navigation();
});
