/**
 * YJNF4 - news flash display
 * @version		1.0.0
 * @MooTools version 1.1
 * @Copyright Youjoomla LLC
 * @author		Constantin Boiangiu <info [at] constantinb.com>
 */

var YJNF4 = new Class({
	initialize: function(options) {
		this.options = Object.extend({
			overallContainer: null,
			slicesClass: null,
			slicesContainer: null
		}, options || {});
		
		this.start();
		
	},
	
	start: function(){
		
		this.currentSlice = 0;
		this.overalContainer = $(this.options.overallContainer);
		this.startSlices();
		
	},
	
	startSlices: function(){
		
		this.slices = this.overalContainer.getElements(this.options.slicesClass);
		this.setNav();
		
		this.cntEff = new Fx.Styles($(this.options.slicesContainer), {wait:false, duration:200});
		this.slices[0].setStyle('display','block');	
	},
	
	setNav: function(){
		
		var totalSlices = this.slices.length;
		if( totalSlices == 1 ) return;
		
		var linksContainer = new Element('div').set({ 'class' : 'pag_holder' }).
								//setStyles({'display':'block','position':'relative','clear':'both','text-align':'center','width':'auto'}).
								injectInside(this.overalContainer);
		
		this.slices.each(function(slice, i){
			
			var n = i+1;
			var display = new Element('span').set({ 'class' : 'pagination_yjn' }).setHTML(n);
			
			this.slices[i]['fx'] = new Fx.Styles(slice, {duration: 400, transition: Fx.Transitions.linear, wait:false});
			
			if( i == this.currentSlice )
				display.addClass('pagination_yjn_on');
						
			new Element('a').
				injectInside(linksContainer).
				adopt(display).
				addEvent('click', function(event){
					new Event(event).stop();
					if( i==this.currentSlice ) return;
					this.changeSlice(i);
				}.bind(this));
		}.bind(this))	
		
		this.spans = linksContainer.getElements('span.pagination_yjn');

		
	},
	
	changeSlice: function(slice){
		
		this.spans.removeClass('pagination_yjn_on');
		this.spans[slice].addClass('pagination_yjn_on');
		
		var fromH = this.slices[this.currentSlice].getSize();
		
		this.slices[this.currentSlice].setStyles({'display':'none','opacity':0.2});
		this.slices[slice].setStyles({'display':'block'});
		
		var toH = this.slices[slice].getSize();
		
		this.slices[slice]['fx'].start({
			'opacity':[0.2,1]
		});		
		this.cntEff.start({ 'height':[ fromH.size['y'],  toH.size['y'] ] });
		this.currentSlice = slice;
		
	}
	
});

/*
//------------------------------------------------------
Compressed script version
//------------------------------------------------------
var YJNF4=new Class({initialize:function(A){this.options=Object.extend({overallContainer:null,slicesClass:null,slicesContainer:null},A||{});this.start()},start:function(){this.currentSlice=0;this.overalContainer=$(this.options.overallContainer);this.startSlices()},startSlices:function(){this.slices=this.overalContainer.getElements(this.options.slicesClass);this.setNav();this.cntEff=new Fx.Styles($(this.options.slicesContainer),{wait:false,duration:200});this.slices[0].setStyle("display","block")},setNav:function(){var A=this.slices.length;if(A==1){return}var B=new Element("div").setStyles({display:"block",position:"relative",clear:"both"}).injectInside(this.overalContainer);this.slices.each(function(E,C){var F=C+1;var D=new Element("span").set({"class":"pagination_yjn"}).setHTML(F);this.slices[C]["fx"]=new Fx.Styles(E,{duration:400,transition:Fx.Transitions.linear,wait:false});if(C==this.currentSlice){D.addClass("pagination_yjn_on")}new Element("a").injectInside(B).adopt(D).addEvent("click",function(G){new Event(G).stop();if(C==this.currentSlice){return}this.changeSlice(C)}.bind(this))}.bind(this));this.spans=B.getElements("span.pagination_yjn")},changeSlice:function(C){this.spans.removeClass("pagination_yjn_on");this.spans[C].addClass("pagination_yjn_on");var B=this.slices[this.currentSlice].getSize();this.slices[this.currentSlice].setStyles({display:"none",opacity:0.2});this.slices[C].setStyles({display:"block"});var A=this.slices[C].getSize();this.slices[C]["fx"].start({opacity:[0.2,1]});this.cntEff.start({height:[B.size.y,A.size.y]});this.currentSlice=C}});
*/
