/*
 NNS Side Slide plugin v1.1 by NoNo (c) 2011 (http://www.nono-serveur.net)
*/
(function($){$.fn.NNSSideSlide = function(options){
	return this.each(function(){
		jQuery.fx.interval = 50;
		var settings = jQuery.extend({
			finalwidth: '300px',
			position: 'right',
			entertab: false,
			leavetab: false,
			fadespeed: 500
	 	}, options);
		
		var NNSCS = this;
		var NNSFade = settings.fadespeed;
		var slidecurrentstate = 0;
		var slidemoving = false;
		var slidewidth = parseFloat($(NNSCS).css('width'));
		var slidefinalwidth = parseFloat(settings.finalwidth);
		if($(NNSCS).css('top')){
			var starttopposition = parseFloat($(NNSCS).css('top'));
		}else{var starttopposition = 0;}
		var newtopposition = starttopposition;
		
		var startsideposition = parseFloat($(NNSCS).css(settings.position));
		var newsideposition = startsideposition;
		
		if(!settings.entertab && !settings.leavetab){
			$(NNSCS).mouseenter(function(){
				if(!slidemoving){
					slidecurrentstate = 1;
					$(NNSCS).stop().animate({width: slidefinalwidth+'px' },NNSFade);
				}
			}).mouseleave(function(){
				if(!slidemoving){
					$(NNSCS).stop().animate({width: slidewidth+'px' },NNSFade,function(){slidecurrentstate=0;});
				}
			});
		}else{
			if(settings.entertab){
				$(settings.entertab).mouseenter(function(){
					if(!slidemoving){
						slidemoving=true;
						slidecurrentstate = 1;
						$(NNSCS).stop().animate({width: slidefinalwidth+'px' },NNSFade,function(){slidecurrentstate=0;slidemoving=false;});
					}
				});
			}
			
			if(settings.leavetab){
				$(settings.leavetab).mouseleave(function(){
					if(!slidemoving){
						slidemoving=true;
						$(NNSCS).stop().animate({width: slidewidth+'px' },NNSFade,function(){slidecurrentstate=0;slidemoving=false;});
					}
				});
			}
		}
		
		$(window).scroll(function(){
			slidemoving=true;
			
			newsideposition = (startsideposition - parseFloat($(window).scrollLeft()));
			$(NNSCS).css(settings.position , newsideposition+'px');
			
			newtopposition = (parseFloat($(window).scrollTop()) + starttopposition);
			if(slidecurrentstate!=0){
				$(NNSCS).stop().animate({width: slidewidth+'px',top: newtopposition+'px' },NNSFade,function(){slidecurrentstate=0;slidemoving=false;});
			}else{
				$(NNSCS).stop().animate({top: newtopposition+'px' },NNSFade,function(){slidemoving=false;});
			}
		});
	})
};})(jQuery);
