(function($) {
		  
	$.fn.tabify = function (options) {
		
		var defaults = {
			style		: '',
			callback	: function(){ return false; },
			debug		: false
		};
		
		var options = $.extend(defaults, options);
		
		// Loop on tabified objects
		return this.each(function() {

			function showPanel(panel){
				
				switch (options.style) {
					case 'slide': 
						function fx (e) { $(e).slideToggle('fast'); }
						panels.slideUp();
						break;
					case 'fade':
						panels.fadeOut();
						function fx (e) { $(e).fadeToggle('slow'); }
						break;
					default: 
						panels.hide();
						function fx (e) { $(e).show(); }
						break;
				} 
				fx(panels.filter(panel));
				//alert(panel);//Le soucis sur IE7 semble cenir de là : le selecteur est pourri car toute l'URL ressot dans le ALERT...
				
				//wrapper.addClass('tabHiFi-wrapper');
				//wrapper.css('height',wrapper.height);
			}
			
			function showTab(tab){
				tabs.removeClass('active');
				tab.addClass('active');
			}

			// Define DOM Elts
			var wrapper = $(this);
			var tabs = $(this).find('ul.tabs li');
			var panels = $(this).find('.panel');
			
			// Display first panel
			
			if (tabs.contents('.active').length>0) {
				var defaultActivePanel = '#'+tabs.find('.active').contents('a').attr('href').split('#')[1];
			} else {
				showTab(tabs.eq(0));
				var defaultActivePanel = '#'+tabs.eq(0).contents('a').attr('href').split('#')[1];
			}
			
			showPanel(defaultActivePanel);
			
			$(defaultActivePanel).show();
			// Display panel when tab is clicked
			tabs.contents('a').click(function() {
				if (!$(this).parent().hasClass("active")){
					tabs.target =  '#'+$(this).attr('href').split('#')[1];
					
					
						showTab($(this).parent());
						showPanel(tabs.target);
						options.callback();
					
				}
				return false;
			});
						
			// Go to next Tab 
			if ( wrapper.find('a.nextIntroBloc').length > 0 ) {
				var aGotonext = wrapper.find('a.nextIntroBloc');
				aGotonext.click( function() {
					if (wrapper.find('.tabs li.active').is(':last-child')) {
						var action = tabs.filter(':first').find('a').click();
					} else {
						var action = tabs.filter('.active').next().find('a').click();
					}
					return false;
				});
			}
			initWithAnchor(tabs);
			
		});
		
		function initWithAnchor(tabs){
			var anchor=window.location.hash;
			if(anchor!=''){
				tabs.contents('a[href='+anchor+']').click();
			}
			
		}
	};
})(jQuery);

jQuery.fn.fadeToggle = function(speed, easing, callback) { 
    return this.animate({opacity: 'toggle'}, speed, easing, callback); 
};

