// global vars
images_path = 'modules/mod_gk_fcs_30/images/';
news_amount = 0;
news_table = [];
link_table = [];
actual_news = 1;
bao = {};
news_width = $E('.gk_fcs_news_container_main').getStyle('width');
news_height = $E('.gk_fcs_news_container_main').getStyle('height');
animation_actually = false;

// ANIMATION PACK START
animation_pack_conf = {
	anims : [],
	link : function(i){
		link_table[i].toggleClass('link_active');
	},
	anim_1 : {
		first_news_display : 'block',
		rest_news_display : 'block',
		news_float : 'left',
		icon : images_path+'anim_pack/anim-btn-1.gif',
		next : function(){
			if(actual_news == news_amount){
				link_table[actual_news].toggleClass('link_active');
				actual_news = 1;
				ef = new Fx.Scroll($('fcs3_overflown'));
				ef.toElement(news_table[1] );
				link_table[actual_news].toggleClass('link_active');
			}
			else{
				link_table[actual_news].toggleClass('link_active');
				actual_news++;
				ef = new Fx.Scroll($('fcs3_overflown'));
				ef.toElement(news_table[actual_news] );
				link_table[actual_news].toggleClass('link_active');
			}
		},
		prev : function(){
			if(actual_news == 1){
				link_table[actual_news].toggleClass('link_active');
				actual_news = news_amount;
				ef = new Fx.Scroll($('fcs3_overflown'));
				ef.toElement(news_table[news_amount] );
				link_table[actual_news].toggleClass('link_active');
			}
			else{
				link_table[actual_news].toggleClass('link_active');
				actual_news--;
				ef = new Fx.Scroll($('fcs3_overflown'));
				ef.toElement(news_table[actual_news] );
				link_table[actual_news].toggleClass('link_active');
			}
		},
		news : function(num){
			link_table[actual_news].toggleClass('link_active');
			actual_news = num;
			ef = new Fx.Scroll($('fcs3_overflown'));
			ef.toElement(news_table[num] );
			link_table[num].toggleClass('link_active');
		}
	},
	anim_2 : {
		first_news_display : 'block',
		rest_news_display : 'block',
		news_float : '',
		icon : images_path+'anim_pack/anim-btn-2.gif',
		next : function(){
			if(actual_news == news_amount){
				link_table[actual_news].toggleClass('link_active');
				actual_news = 1;
				ef = new Fx.Scroll($('fcs3_overflown'));
				ef.toElement(news_table[1] );
				link_table[actual_news].toggleClass('link_active');
			}
			else{
				link_table[actual_news].toggleClass('link_active');
				actual_news++;
				ef = new Fx.Scroll($('fcs3_overflown'));
				ef.toElement(news_table[actual_news] );
				link_table[actual_news].toggleClass('link_active');
			}
		},
		prev : function(){
			if(actual_news == 1){
				link_table[actual_news].toggleClass('link_active');
				actual_news = news_amount;
				ef = new Fx.Scroll($('fcs3_overflown'));
				ef.toElement(news_table[news_amount] );
				link_table[actual_news].toggleClass('link_active');
			}
			else{
				link_table[actual_news].toggleClass('link_active');
				actual_news--;
				ef = new Fx.Scroll($('fcs3_overflown'));
				ef.toElement(news_table[actual_news] );
				link_table[actual_news].toggleClass('link_active');
			}
		},
		news : function(num){
			link_table[actual_news].toggleClass('link_active');
			actual_news = num;
			ef = new Fx.Scroll($('fcs3_overflown'));
			ef.toElement(news_table[num] );
			link_table[num].toggleClass('link_active');
		}	
	},
	anim_3 : {
		first_news_display : 'block',
		rest_news_display : 'block',
		news_float : 'left',
		icon : images_path+'anim_pack/anim-btn-3.gif',
		next : function(){
			if(actual_news == news_amount){
				animation_pack_conf.link(actual_news);actual_news = 1;
				ef = new Fx.Scroll($('fcs3_overflown'),{duration: 1});
				ef1 = new Fx.Style(news_table[news_amount],'opacity');
				ef2 = new Fx.Style(news_table[1],'opacity');
				ef2.set(0);
				ef1.start(1,0);
				(function(){ef.toElement(news_table[1]);ef2.start(0,1);}).delay(500);
				(function(){ef1.set(1);}).delay(1000);
				animation_pack_conf.link(actual_news);
			}
			else{
				animation_pack_conf.link(actual_news);actual_news++;
				ef = new Fx.Scroll($('fcs3_overflown'),{duration: 1});
				ef1 = new Fx.Style(news_table[actual_news-1],'opacity');
				ef2 = new Fx.Style(news_table[actual_news],'opacity');
				ef2.set(0);
				ef1.start(1,0);
				(function(){ef.toElement(news_table[actual_news]);ef2.start(0,1);}).delay(500);
				(function(){ef1.set(1);}).delay(1000);
				animation_pack_conf.link(actual_news)
			}
		},
		prev : function(){
			if(actual_news == 1){
				animation_pack_conf.link(actual_news);actual_news = news_amount;
				ef = new Fx.Scroll($('fcs3_overflown'),{duration: 1});
				ef1 = new Fx.Style(news_table[1],'opacity');
				ef2 = new Fx.Style(news_table[news_amount],'opacity');
				ef2.set(0);
				ef1.start(1,0);
				(function(){ef.toElement(news_table[news_amount]);ef2.start(0,1);}).delay(500);
				(function(){ef1.set(1);}).delay(1000);
				animation_pack_conf.link(actual_news);
			}
			else{
				animation_pack_conf.link(actual_news);actual_news--;
				ef = new Fx.Scroll($('fcs3_overflown'),{duration: 1});
				ef1 = new Fx.Style(news_table[actual_news+1],'opacity');
				ef2 = new Fx.Style(news_table[actual_news],'opacity');
				ef2.set(0);
				ef1.start(1,0);
				(function(){ef.toElement(news_table[actual_news]);ef2.start(0,1);}).delay(500);
				(function(){ef1.set(1);}).delay(1000);
				animation_pack_conf.link(actual_news);
			}
		},
		news : function(num){
			if(actual_news !== num){
				animation_pack_conf.link(actual_news);actual_news = num;
				ef = new Fx.Scroll($('fcs3_overflown'),{duration: 1});
				(num !== 1) ? ef1 = new Fx.Style(news_table[num-1],'opacity') : ef1 = new Fx.Style(news_table[news_amount-1],'opacity');
				ef2 = new Fx.Style(news_table[num],'opacity');
				ef2.set(0);
				ef1.start(1,0);
				(function(){ef.toElement(news_table[num]);ef2.start(0,1);}).delay(500);
				(function(){ef1.set(1);}).delay(1000);
				animation_pack_conf.link(num);
			}
		}	
	}
}

animation_pack_conf.anims = [animation_pack_conf.anim_1,animation_pack_conf.anim_2,animation_pack_conf.anim_3];
// ANIMATION PACK END

// Initialize function
window.addEvent("load",function(){
	margin = $E('.fcs3_options').getSize().size.x;
	$E('.fcs3_options').setStyle('display','none');
	// test cookie
	
	// generating base anim object
	bao = animation_pack_conf.anims[fcs3_animation-1];
	
	// preparing divs
	divs_preparing(bao.first_news_display,bao.rest_news_display,bao.news_float);
	
	// preparing table with links
	document.getElementsBySelector('.gk_fcs_rest_news_pos'+fcs3_type).each(function(element,index){
		link_table[index+1] = element;
		link_table[index+1].addEvent('click',function(event){
			var event = new Event(event);
			event.preventDefault();
		});
		link_table[index+1].addEvent('click',function(){
			bao.news(index+1);
			pause();
		});
	});
	
	// creating panel with buttons
	code1 = '<img src="'+images_path+'previous_button.gif" title="Noticia anterior" alt="&laquo;" class="prev_button" /> <img src="'+images_path+'next_button.gif" title="Noticia siguiente" alt="&raquo;" class="next_button" /><img src="'+images_path+'play_button.gif" title="Continuar pase de noticias" alt="play" class="play_button" /><img src="'+images_path+'pause_button.gif" title="Detener pase de noticias" alt="pause" class="pause_button" /><img src="'+images_path+'tools_button.gif" title="Tipo de animación" alt="tools" class="tools_button" />';
	
	$E('.fcs3_panel').setHTML(code1);
	$E('.next_button').addEvent('click',function(){bao.next();pause();});
	$E('.prev_button').addEvent('click',function(){bao.prev();pause();});
	$E('.tools_button').addEvent('click',function(){tools();});
	$E('.play_button').addEvent('click',function(){play();});
	$E('.pause_button').addEvent('click',function(){pause();});
	
	// if auto animation enabled
	if(fcs3_auto_animation == 1){
		fcs3_timer = (function(){bao.next();}).periodical(fcs3_anim_speed);
		$E('.play_button').setStyle('display','none');
		animation_actually = true;
	}
	else{
		$E('.pause_button').setStyle('display','none');
		animation_actually = false;
	}
	
	
	code2 = 'Tipo de animación: ';
	
	for(i=0;i<animation_pack_conf.anims.length;i++){
		var baoo = animation_pack_conf.anims[i];
		code2 += '<img src="' + baoo.icon + '" class="anim_button" alt="' + i + '" /> ';
	}
	
	$E('.fcs3_options').setHTML(code2);
	
	$$('.fcs3_options img').each(function(element){
		var src = element.src;
		element.addEvent('mouseover',function(){element.src = src.substr(0,((src.length)-1)-3)+'h.gif';});
		element.addEvent('mouseout',function(){element.src = src.substr(0,((src.length)-1)-3)+'.gif';});
	});
	
	$$('.fcs3_panel img').each(function(element){
		var src = element.src;
		element.addEvent('mouseover',function(){element.src = src.substr(0,((src.length)-1)-3)+'-h.gif';});
		element.addEvent('mouseout',function(){element.src = src.substr(0,((src.length)-1)-3)+'.gif';});
	});
	
	$$('.fcs3_options img.anim_button').each(function(element,index){
		element.addEvent('click',function(){
			fcs_animation = index;
			bao = animation_pack_conf.anims[index];
			divs_preparing(bao.first_news_display,bao.rest_news_display,bao.news_float);
			eff = new Fx.Scroll($('fcs3_overflown'),{duration: 0});
			eff.toElement(news_table[actual_news]);
		});
	});
	
	link_table[actual_news].toggleClass('link_active');
	$E('.gk_fcs_news_container_main2').setStyle('width',news_amount * news_width.toInt() + 'px');
});

function play(){
	if(animation_actually === false){
		fcs3_timer = (function(){bao.next();}).periodical(fcs3_anim_speed);
		animation_actually = true;
		$E('.pause_button').setStyle('display','block');
		$E('.play_button').setStyle('display','none');
	}
}

function pause(){
	$clear(fcs3_timer);
	animation_actually = false;
	$E('.play_button').setStyle('display','block');
	$E('.pause_button').setStyle('display','none');
}

function tools(){
	var e1 = new Fx.Style($E('.fcs3_options'),'opacity');
	if($E('.fcs3_options').getStyle('display') == 'none'){
		$E('.fcs3_options').setStyle('display','block');
		e1.set(0);
		e1.start(0,1);
	}
	else{
		e1.start(1,0);
		(function(){$E('.fcs3_options').setStyle('display','none');}).delay(500);
	}
}

function divs_preparing(fnd,rnd,nf){
	news_amount = 0;
	
	document.getElementsBySelector('.gk_fcs_news_container').each(function(element){
		// setting news display
		if(news_amount == 0){
			news_table[news_amount+1] = element;
			element.setStyle('display',fnd);
		}
		else{
			news_table[news_amount+1] = element;
			element.setStyle('display',rnd);
		}
		// setting news float
		element.setStyle('float',nf);
		// increase variable
		news_amount++;
	});
}
