jQuery(document).ready(function(){
	jQuery('#newsSlider').newsSlider();
});

(function($){
$.fn.newsSlider = function(params){
	var defaults = {
		posY: 0,
		distance: 0,
		mouseTopArea: 100,
		mouseLowerArea: null,
		isAnimating: false,
		sliderObj: null,
		sliderObjHeight: null,
		sliderCon: null,
		timer: null
	},
	Intialize = function(container){
		defaults.sliderObj = $(container);
		defaults.mouseLowerArea = defaults.sliderObj.height() - defaults.mouseTopArea;
		defaults.sliderCon = defaults.sliderObj.children('.newsContainer');
		defaults.distance = defaults.sliderCon.height() - defaults.sliderObj.height() ;
		defaults.sliderObj.mousemove(function(e){
			defaults.posY = e.pageY - this.offsetTop;
			if(defaults.posY > defaults.mouseTopArea && defaults.posY < defaults.mouseLowerArea){
				StopAnimation();
				defaults.isAnimating = false;
			}
			if(!defaults.isAnimating && (defaults.posY < defaults.mouseTopArea || defaults.posY > defaults.mouseLowerArea))
				Animate();
		});
		
		defaults.sliderObj.bind('mouseleave', function(e){
			StopAnimation();
			defaults.isAnimating = false;
		});
	},
	StopAnimation = function(){
		defaults.sliderCon.stop();
	},
	Animate = function(){
		defaults.isAnimating = true;
		StopAnimation();
		var distance = 0;
		var speed = 0;
		var time;
		var mouseVal = 0;

		var topVal = defaults.sliderCon.css('top');
		topVal = topVal.replace('px','');
		topVal = topVal*1;

		if(defaults.posY < 100){
			speed = 0.38;
			distance = 0-topVal;
			time = defaults.distance/speed;
		}
		else if(defaults.posY > 300){
			speed = -0.38;
			distance = -1*(defaults.distance+topVal);
			time = distance/speed;
		}
		defaults.sliderCon.animate({
			top: '+=' + distance + 'px'
		},time);
	}
	
	return this.each(function(){
		Intialize(this);
	});
}
})(jQuery);

