var clrz_NavList = new Class({
	options : {
		containerID:'podcast',
		ulclass : '.list li',
		prevclass:'.prev a',
		nextclass:'.next a',
		cat:10,
		webservice:'/?page_id=170&getList',
		transition:Fx.Transitions.Quart.easeInOut,
		duration:350,
		delay:200
	
	},
	
	initialize :function(options){
			
		this.setOptions(options);
		
	if(!$(this.options.containerID))
		return;
		
		this.list = $$('#'+this.options.containerID+' '+this.options.ulclass);
		this.btnPrev = $$('#'+this.options.containerID+' '+this.options.prevclass); 
		this.btnNext = $$('#'+this.options.containerID+' '+this.options.nextclass);
		
		this.size = this.list.length;
		this.page = 1;
		this.lisFx = [];
		
		var myclass = this;
		
		this.btnPrev.addEvent('click',function(e){ new Event(e).stop(); if(myclass.page>1) {myclass.page = myclass.page-1;  myclass.launch();} });
		this.btnNext.addEvent('click',function(e){ new Event(e).stop(); myclass.page = myclass.page+1;  myclass.launch(); });
		
		
		this.setup();
		
	},
	
	
	setup:function(){
		var myclass = this;
		/*console.log(this.list);*/
		
		var liFx = [];
		
		
		this.list.each(function(el,i){
			
				liFx[i] = new Fx.Styles(el, {transition:myclass.options.transition,duration:myclass.options.duration,wait:false});
				
				
				
			});
		
		
		this.liFx = liFx;	
		
		
		
		
	},
	launch:function(){
		
		var myclass = this;
		
		var args = Object.toQueryString({page: this.page,cat:this.options.cat,perpage:this.size});

			new Ajax( this.options.webservice, {method: 'post',data:args,evalResponse:'evalResponse',onLoad:function(){ myclass.fireEvent('onLoad'); },onComplete:function()
					{
							myclass.goInject(response);
						
					}
		}).request();

		
		
	},
	goInject:function(listing){
		
		var myclass = this;
		
		if(listing.length==0)
		{
			myclass.page = myclass.page-1;
		return;
		}
		
		
		
		var delay = 0;
		var nb=0;
		this.list.each(function(el,i){
				
			
			function trans (){
				
				var tests = $defined(listing[i]);
					if(tests)
					{
					
						nb=nb+1;
					
					myclass.liFx[i].start(myclass.options.start1).chain(function(){ myclass.fireEvent('onPreEachComplete',[el,listing,i]);   myclass.liFx[i].start(myclass.options.back1).chain(function()
						{
							 
							 myclass.fireEvent('onEachComplete',[el,listing,i]); 
						 	
						 
						 });  
						 
						 }); 
					}
					else
					{
					myclass.liFx[i].start(myclass.options.start2).chain(function(){  myclass.liFx[i].start(myclass.options.back2); }); 
 
					
					}
				}
			trans.delay(delay,trans);
			delay=delay+myclass.options.delay;
			
			
		});
		
		 	myclass.fireEvent('onComplete','',(delay+(myclass.options.duration*listing.length-1))); 
		
		
	}
	
	
});
clrz_NavList.implement(new Events, new Options);