var Slide_Arr = new Array();
var btns_arr = new Array();
var frames_count = current_frame = prev_frame = 0;
var ISerror = false;
var ISEffect = '';
var ISExa = true;
var ISRunning = false;

	function ImageSlide(ul_id, btns_cont){
		if( ul_id!=undefined && $(ul_id)!=undefined && btns_cont!=undefined && $(btns_cont)!=undefined  ){
			Slide_Arr = $(ul_id).getElementsByTagName('li');
			for(i=0; i<Slide_Arr.length; i++){
				if(i!=0){Slide_Arr[i].style.display = 'none';}
			}
			btns_arr = $(btns_cont).getElementsByTagName('span');
			frames_count = Slide_Arr.length -1;
			prev_frame = frames_count;
			ISerror = false;
			ISRunning = true;
		}else{
			ISerror = true;
		}
	}

	function ImageSlideNext(auto){
		if( !ISerror ){
			prev_frame = current_frame;
			if( current_frame == frames_count ){
				current_frame = 0;
			}else{
				current_frame++;
			}
			ImageSlideExecStop();
			ImageSlideExec();
			ImageSlideStop();
		}
	}

	function ImageSlidePrev(){
		if( !ISerror ){
			prev_frame = current_frame;
			if( current_frame == 0 ){
				current_frame = frames_count;
			}else{
				current_frame--;
			}
			ImageSlideExecStop();
			ImageSlideExec();
			ImageSlideStop();
		}
	}

	function ImageSlideFrame(frame_id){
		if( !ISerror ){
			if( frame_id!=undefined && frame_id-1!=current_frame ){
				prev_frame = current_frame;
				frame_id = frame_id - 1;
				current_frame = frame_id;
				ImageSlideExecStop();
				ImageSlideExec();
				ImageSlideStop();
			}
		}
	}

	function ImageSlideExec(){
		if( !ISerror ){
			ISerror = true;
			ISEffect = new Effect.Appear(Slide_Arr[current_frame], {
				duration: 0.5,
				afterFinish: function(){
					unsetactivetofs();
					btns_arr[current_frame].className='active';
				}
			});
			ISEffect = new Effect.Fade(Slide_Arr[prev_frame], {
				delay: 0.5,
				duration: 0.3,
				afterFinish: function(){
					ImageSlideCE();
				}
			});
		}
	}

	function ImageSlideExecStop(){
		if(ISEffect){
			ISEffect.cancel();
		}
	}

	function ImageSlideCE(){
		ISerror = false;
	}

	function ImageSlideStart(){
		if(Slide_Arr.length>1){
			slideInterval = setInterval("ImageSlideNext()", 5000);
		}
	}

	function ImageSlideStop(){
		clearInterval(slideInterval);
		ISExa = false;
		slideInterval = setInterval("ImageSlideNext()", 5000);
	}
	
	function ImageSlideFreeze(){
		if (ISRunning) {
			clearInterval(slideInterval);
		}
	}

	function ImageSlideUnFreeze(){
		if (ISRunning) {
			ImageSlideStart();
		}
	}
	
document.observe('dom:loaded', function(){
	ImageSlide('slider', 'numz');
	ImageSlideStart();
});
