jQuery.fn.accessNews = function(settings) {
	settings = jQuery.extend({
        newsHeadline: "",
        newsSpeed: "normal",
		overblockWidth: 0
    }, settings);
    return this.each(function(i) {       
        aNewsSlider.init(settings,this);
    });
};

var aNewsSlider = {
	countLeft: 0,
	countLeft2: 0,
	animating: false,
	overblockWidth: 538,	
	isOverAnimating: false, // идентификатор что была анимация при наведении
	mouseInsideOvers: false,
	mouseInsideOversState: false,
	indexStart1:0, // 2loop
	indexEnd1:0,
	indexStart2:0,
	indexEnd2:0,
	
    init: function(s,p) {
    
		
		if( s.overblockWidth > 0 ) 
			aNewsSlider.overblockWidth = s.overblockWidth;
		
		itemLength = jQuery(".over-block",p).length;
		newsContainerWidth = itemLength * aNewsSlider.overblockWidth;
		jQuery(".overflow",p).css("width" , newsContainerWidth);		
		aNewsSlider.indexEnd1 = itemLength - 1;
		aNewsSlider.indexEnd2 = itemLength - 1;
	
		jQuery(".right-arrow",p).click( function() {
			
			// rollover_fix
			jQuery(".overflow",p).stop();
			aNewsSlider.isOverAnimating = false;
			var mat = parseInt( jQuery(".overflow",p).css("left") );
			mat = mat % aNewsSlider.overblockWidth;
			
			if (aNewsSlider.animating == true) {
				return false;
			}
			
			itemLength = jQuery(".over-block",p).length + 1;
			newsContainerWidth = itemLength * aNewsSlider.overblockWidth;
			jQuery(".overflow",p).css("width" , newsContainerWidth);
			
			animateLeft = parseInt(jQuery(".overflow",p).css("left")) - aNewsSlider.overblockWidth + Math.abs(mat) - 1;
			
			if (Math.abs(animateLeft) >  newsContainerWidth - aNewsSlider.overblockWidth*2) {
				jQuery(".overflow",p).append( '<div class="over-block">'+ jQuery(".over-block",p)[aNewsSlider.indexStart1+aNewsSlider.countLeft2].innerHTML +'</div>');
				aNewsSlider.countLeft2++;
			} ///animateLeft = -1;
			
			if (aNewsSlider.animating == false) {
				aNewsSlider.animating = true;
				jQuery(".overflow",p).animate({left: animateLeft}, s.newsSpeed, function() {
					jQuery(this).css("left",animateLeft);
				});
				aNewsSlider.restoreAnimating();//aNewsSlider.animating = false;
			}
			
			return false;
		});
		
		
		
        jQuery(".left-arrow").click(function() {
				// rollover_fix
				jQuery(".overflow",p).stop();
				aNewsSlider.isOverAnimating = false;
				var mat = parseInt( jQuery(".overflow",p).css("left") );
				mat = mat % aNewsSlider.overblockWidth;			
				
				if (aNewsSlider.animating == true) {return false;}
				
				itemLength = jQuery(".over-block",p).length + 1;
				
				newsContainerWidth = itemLength * aNewsSlider.overblockWidth;
				
				jQuery(".overflow",p).css("width" , newsContainerWidth);
				
				animateLeft = parseInt(jQuery(".overflow",p).css("left")) + aNewsSlider.overblockWidth + Math.abs(mat) -1;
							
				if( animateLeft > -1 ) {
					animateLeft = -1;
					jQuery(".overflow",p).css("left","-" + aNewsSlider.overblockWidth + "px")

					jQuery(".overflow",p).html( '<div class="over-block">'+jQuery(".over-block",p)[aNewsSlider.indexEnd1].innerHTML + '</div>' + jQuery(".overflow",p).html());					
					aNewsSlider.indexStart1++;
					
					//animateLeft = -newsContainerWidth + aNewsSlider.overblockWidth*3 - 1;					
				}
				//if ((animateLeft + parseInt(jQuery(".overflow",p).css("width"))) <= parseInt(jQuery(".overflow",p).css("width"))) {
				// jQuery(".next",p).css("display","block");
				if (aNewsSlider.animating == false) {
						aNewsSlider.animating = true;  
						jQuery(".overflow",p).animate({left: animateLeft}, s.newsSpeed, function() {
							jQuery(this).css("left",animateLeft);
							if (parseInt(jQuery(".overflow",p).css("left")) >= 0) {
								jQuery(".prev",p).css("display","none");
							}
						});
						//aNewsSlider.animating = false;
						aNewsSlider.restoreAnimating();
						return false;
				}
             //}
            return false;
        });	

    },
	
	restoreAnimating: function() {
		window.setTimeout('aNewsSlider.animating = false;', 200);
	}

};

function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}
function f_scrollLeft() {
	return f_filterResults (
		window.pageXOffset ? window.pageXOffset : 0,
		document.documentElement ? document.documentElement.scrollLeft : 0,
		document.body ? document.body.scrollLeft : 0
	);
}
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}
