(function ($){

	var defaults = {
		easing: "linear",
		duration: 300,
		onSelected: function (){}
	}
	, settings, bPercBased=(parseFloat(jQuery.fn.jquery) >= 1.2);
	
	jQuery.fn.oldAnimate = jQuery.fn.animate; // No conflict with INTERFACE plugin

	$.accordion = {
		version: "0.3",
		setDefaults: function(options){
			$.extend(defaults, options);
		},
		setSettings: function(options){
			$.extend(settings, options);
		}
	};

	$.fn.accordion = function(options){

		settings = jQuery.extend({}, defaults, options);

		var me = this, bRunning = false;

		$("dd:not(.actif)", me).hide();

		$("dd.actif", me).show();

		$("dt.actif", me).addClass("focus");

		$("dt a", me).hover(function(){

			this.blur();
			if( bRunning ) return false;

			$("dt").removeClass("focus");

			$(this).parent("dt").addClass("focus");

			var visible = $("dd:visible", me),
				height = visible.height(),
				hidden = $(this).parent().next();

			if ( !hidden.is(":visible") ) {
				hidden.show();

				bRunning = true;
				
				
				visible.oldAnimate(
					{height:"hide"},
					{
						step: function(n){
							hidden.height(
								Math.ceil( (bPercBased) ? (height - (height * n)) : (height - n) )
							);
						},
						complete: function(){
							bRunning = false;
						},
						duration: settings.duration,
						easing: settings.easing
					}
				);
			}
			settings.onSelected(this);

			return false;
		}, function() {});

		return me;
	};

})(jQuery);





(function ($){

	var defaults = {
		easing: "linear",
		duration: 500,
		onSelected: function (){}
	}
	, settings, bPercBased=(parseFloat(jQuery.fn.jquery) >= 1.2);
	
	jQuery.fn.oldAnimate = jQuery.fn.animate; // No conflict with INTERFACE plugin

	$.accordion2 = {
		version: "0.3",
		setDefaults: function(options){
			$.extend(defaults, options);
		},
		setSettings: function(options){
			$.extend(settings, options);
		}
	};

	$.fn.accordion2 = function(options){

		settings = jQuery.extend({}, defaults, options);

		var me = this, bRunning = false;

		$("dt:not(:first)", me).hide();
		$("dt:first", me).show();
		$("dd:first", me).addClass("focus");

		/*$("dd a", me).hover(function(){
			if( bRunning ) return false;

			var visible = $("dt:visible", me),
				height = visible.height(),
				hidden = $(this).parent().prev();

			if ( !hidden.is(":visible") ) {
				bRunning = true;
				
				hidden.SlideInUp(settings.duration, function(){ bRunning = false; });
				visible.SlideOutUp(settings.duration);
			}
		}, function(){});*/

		
		
		
		$("dd a", me).hover(function(){

			this.blur();
			if( bRunning ) return false;

			$("dd").removeClass("focus");

			$(this).parent("dd").addClass("focus");

			var visible = $("dt:visible", me),
				height = visible.height(),
				hidden = $(this).parent().prev();

			if ( !hidden.is(":visible") ) {
				hidden.show();

				bRunning = true;
				
				
				visible.oldAnimate(
					{height:"hide"},
					{
						step: function(n){
							hidden.height(
								Math.ceil( (bPercBased) ? (height - (height * n)) : (height - n) )
							);
						},
						complete: function(){
							bRunning = false;
						},
						duration: settings.duration,
						easing: settings.easing
					}
				);
			}
			settings.onSelected(this);

			return false;
		}, function(){});
		
		
		return me;
	};

})(jQuery);
