jQuery.fn.accessNews = function(settings) {
	settings = jQuery.extend({
        newsHeadline: "",
        newsSpeed: "slow",
		overblockWidth: 0
    }, settings);
    return this.each(function(i) {       
        aNewsSlider.init(settings,this);
    });
};
var aNewsSlider = {
    countLeft: 0,
	countLeft2: 0,
    animating: false,
	overblockWidth: 332,	
	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(".overflow",p).mousemove( function(e){		   
		     //alert('cb_');
		    //var overPP = (e.clientX- (f_clientWidth()-970)/2 > aNewsSlider.overblockWidth + 30);
		   	if( aNewsSlider.mouseInsideOvers /*&& overPP == aNewsSlider.mouseInsideOversState*/) return;					  
			
			//jQuery(".overflow",p).stop();
			//aNewsSlider.isOverAnimating = false;			
			//if(overPP){				
				//jQuery(".right-arrow",p).mouseover();
				
				if( !aNewsSlider.isOverAnimating )
				{
					itemLength = jQuery(".over-block",p).length;
			        newsContainerWidth = itemLength * aNewsSlider.overblockWidth;			
					jQuery(".overflow",p).css("width" , newsContainerWidth);				
								
					// speed fix
					var totalNeedOver = ( (newsContainerWidth - Math.abs( parseInt( jQuery(".overflow",p).css("left"))) ) / newsContainerWidth) * itemLength*1.5;					
					
					animateLeft = 2*aNewsSlider.overblockWidth - newsContainerWidth - 1;
					if( Math.abs(  parseInt( jQuery(".overflow",p).css("left"))  ) >= Math.abs(animateLeft) ){
						 
						 
						for( i=0;i<itemLength;i++ )
						if( p.id != 'scroll2' ) {					
							jQuery(".overflow",p).append( '<div class="over-block">'+ jQuery(".over-block",p)[aNewsSlider.indexStart2+aNewsSlider.countLeft].innerHTML +'</div>');
							aNewsSlider.countLeft++;
						} else {
							jQuery(".overflow",p).append( '<div class="over-block">'+ jQuery(".over-block",p)[aNewsSlider.indexStart1+aNewsSlider.countLeft2].innerHTML +'</div>');
							aNewsSlider.countLeft2++;
						}			
						
						itemLength = jQuery(".over-block",p).length;
			        	newsContainerWidth = itemLength * aNewsSlider.overblockWidth;
						jQuery(".overflow",p).css("width" , newsContainerWidth);
						animateLeft = 2*aNewsSlider.overblockWidth - newsContainerWidth - 1;						
						// speed fix
						var totalNeedOver = ( (newsContainerWidth - Math.abs( parseInt( jQuery(".overflow",p).css("left"))) ) / newsContainerWidth) * itemLength*1.6;
												
					} ///animateLeft = -1;				
					
					jQuery(".overflow",p).animate({left: animateLeft},4000*totalNeedOver, "linear", function() {
						jQuery(this).css("left",animateLeft);
						aNewsSlider.isOverAnimating = aNewsSlider.mouseInsideOvers = false;
						jQuery(".overflow",p).mousemove();						
					});					
					
					aNewsSlider.isOverAnimating = true;
				}
				
			//}
			//else{
			//	jQuery(".left-arrow",p).mouseover();				
			//}
			aNewsSlider.mouseInsideOvers = true;
			//aNewsSlider.mouseInsideOversState = overPP;
		});
		
		jQuery(".overflow",p).bind("mouseleave", function(e){		   
			aNewsSlider.mouseInsideOvers = false;
			jQuery(".right-arrow",p).mouseout();						   
		});
		
		
		
	
		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){				
				if( p.id != 'scroll2' ) {					
					jQuery(".overflow",p).append( '<div class="over-block">'+ jQuery(".over-block",p)[aNewsSlider.indexStart2+aNewsSlider.countLeft].innerHTML +'</div>');
					aNewsSlider.countLeft++;
				} else {
					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(".right-arrow",p).mouseover( function() {				
			/*if( !aNewsSlider.isOverAnimating )
			{
				itemLength = jQuery(".over-block",p).length;
				newsContainerWidth = itemLength * aNewsSlider.overblockWidth;
				
				animateLeft = 2*aNewsSlider.overblockWidth - newsContainerWidth - 1;
				
				jQuery(".overflow",p).animate({left: animateLeft},1900*itemLength, "linear", function() {
					jQuery(this).css("left",animateLeft);
				});
				
				aNewsSlider.isOverAnimating = true;
			}*/
		});	
		jQuery(".right-arrow",p).mouseout( function() {			
			if( aNewsSlider.isOverAnimating ) {
				jQuery(".overflow",p).stop();
				aNewsSlider.isOverAnimating = false;			
			}
		});	
		
		
		
		
		
        jQuery(".left-arrow",p).click(function() {
											   
				itemLength = jQuery(".over-block",p).length + 1;
	        	newsContainerWidth = itemLength * aNewsSlider.overblockWidth;
				
				// 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;
				}
				
                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")
					
					if( p.id != 'scroll2' ) {
						jQuery(".overflow",p).html( '<div class="over-block">'+jQuery(".over-block",p)[aNewsSlider.indexEnd2].innerHTML + '</div>' + jQuery(".overflow",p).html());					
						aNewsSlider.indexStart2++;					
					}
					else {
						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;
        });	
		
		/*
		jQuery(".left-arrow",p).mouseover( function() {				
			if( !aNewsSlider.isOverAnimating ) 
			{
				itemLength = jQuery(".over-block",p).length;
				animateLeft = -1;
				
				var totalScroll = Math.round( Math.abs(  parseInt(jQuery(".overflow",p).css("left"))  ) / aNewsSlider.overblockWidth ) + 1;
					
				jQuery(".overflow",p).animate({left: animateLeft}, 2200*totalScroll, function() {
					jQuery(this).css("left",animateLeft);
				});				
				aNewsSlider.isOverAnimating = true;
			}
		});	
		jQuery(".left-arrow",p).mouseout( function() {			
			if( aNewsSlider.isOverAnimating ) {
				jQuery(".overflow",p).stop();
				aNewsSlider.isOverAnimating = false;
			}			
		});	
		*/

    },
	
	
	

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

	
	
};









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;
}

