/*==============================================================================
Name: 		NewsSlider Engine 
Version: 	1.0
Author:		Martin Donchev
Created: 	March 1, 2009
================================================================================
Copyright (c) 2009 Martin Donchev
==============================================================================*/


function NewsSlider(NewsSliderDOMName,SliderHolder,SliderMovable,SliderLinksHolder,SlideHeight,TotalSlides,PauseInMilliseconds,linkClassName, activelinkClassName) {
	
	
	this.NewsSliderDOMName = NewsSliderDOMName;
	this.SliderHolder = SliderHolder;
	this.SliderMovable = SliderMovable;
	this.SliderLinksHolder = SliderLinksHolder;
	this.TotalSlides = TotalSlides;
	this.Moving = 0;
	this.myInt=0;
	this.SlideHeight=SlideHeight;
	this.PauseInMilliseconds=PauseInMilliseconds;
	CurrentSlide=0;
	this.Links = "";
	
	

	// Putting the links into the holder
	this.Links="";
	for(l=1; l<=this.TotalSlides; l++) {
		if ((l-1)==CurrentSlide) {
			this.Links=this.Links+'<span class="'+activelinkClassName+'">'+l+'</span>';
		} else {
			this.Links=this.Links+'<a href="javascript:void(0);" onclick="javascript:'+NewsSliderDOMName+'.SlideTo('+l+');" class="'+linkClassName+'">'+l+'</a>';
		}
	}
	$(this.SliderLinksHolder).innerHTML=this.Links;
	// End of the links stuff


	
	// Start Sliding
	this.Sliding_Start = function() {
		
		if (this.Moving!=0){
	
			new Effect.Move(this.SliderMovable, {
			  x: 0, y: 0 - this.SlideHeight, mode: 'relative',
			  transition: Effect.Transitions.sinoidal,
			  afterFinish: this.FinishSlide
			});

		}
		
	}
	
	this.FinishSlide = function () {
		
		
		slider_position = $(SliderMovable).positionedOffset();
		
		CurrentSlide = CurrentSlide+1;
		
		razlika = $(SliderMovable).getHeight() - 1*SlideHeight;

		if (slider_position.top<=0 - razlika) {
			$(SliderMovable).setStyle({
			  top: '0px'
			});
			
			CurrentSlide = 0;
		}
		
		// Putting the links into the holder
		Links="";
		for(l=1; l<=TotalSlides; l++) {
			if ((l-1)==CurrentSlide) {
				Links=Links+'<span class="'+activelinkClassName+'">'+l+'</span>';
			} else {
				Links=Links+'<a href="javascript:void(0);" onclick="javascript:'+NewsSliderDOMName+'.SlideTo('+l+');" class="'+linkClassName+'">'+l+'</a>';
			}
		}
		$(SliderLinksHolder).innerHTML=Links;
		// End of the links stuff
		

	}
	
	this.Start = function () {
		
		this.Moving=1;
		this.myInt=setInterval(this.NewsSliderDOMName+'.Sliding_Start()', this.PauseInMilliseconds);
		
		
	}
	
	this.SlideTo = function (TargetSlide) {
		TargetSlide=TargetSlide-1;
		target_position = TargetSlide*this.SlideHeight;
		slider_position = CurrentSlide*SlideHeight;
		
		this.Moving=0;

		new Effect.Move(this.SliderMovable, {
		  x: 0, y: 0-(target_position-slider_position), mode: 'relative',
		  transition: Effect.Transitions.sinoidal,
		  afterFinish: this.FinishSlide
		});
		
		// Setting the current Slide
		CurrentSlide=TargetSlide-1; // minus edno zashtoto imame weche s edno poweche zaradi FinishSlide
		
	}
	

	
} 

