var JVTabPedon = new Class({
	options:{		
	},
	initialize:function(options){
		this.setOptions(options);
		this.container = $(this.options.container);
		this.tabTitles = $ES('ul.tabs_title li',this.options.container);
		this.panel = $ES('div.jv_tabs_panel',this.options.container)[0];		
		this.tabPanels = $ES('div.jv_tabs_panel .jv_pedon_content',this.options.container);
		this.effectType = this.options.effectType;
		this.currentTab = 0;
		this.fx = new Fx.Elements(this.tabPanels, {duration:this.options.duration});
		this.firstLoad();		
	},
	firstLoad:function(){
		switch(this.effectType){
			case "scroll_tb":
				this.initScrollTopBottom();
			break;
			case "scroll_lr":
				this.initScrollLeftRight();
			break;
			case "jv_news2":
				this.initJVNews2();
			break;
			case "fade":
				this.initJVFade();
			break;
		}	
	},
	initJVFade:function(){
		this.tabPanels.each(function(item,i){
			if(i!=0){
				item.setStyle('opacity',0);
				item.setStyle('display','block');
			} else {
				item.setStyle('opacity',1);
				item.setStyle('display','block');
			}
			this.tabTitles[i].addEvent(this.options.eventType,function(){
				this.changeTabFade(i);
			}.bind(this));
		}.bind(this));	
		this.panel.setStyle('height',this.tabPanels[0].offsetHeight);		
	},
	changeTabFade:function(i){
		if(this.currentTab != i ){
			this.fx.stop();
			var obj = {};
			this.tabPanels.each(function(item,j){
				if(i!=j){
					this.tabTitles[j].removeClass('active');
					obj[j] = {'opacity':0 }; 
				} else {
					this.tabTitles[i].addClass('active');
					obj[j] = {'opacity':1};
					this.panel.setStyle('height',this.tabPanels[j].offsetHeight);
				}
			}.bind(this));
			this.fx.start(obj);
			this.currentTab = i;
		} 
	},
	initJVNews2:function(){
		this.tabPanels[0].setStyle('display','');
		this.panel.setStyle('height',this.tabPanels[0].offsetHeight);
		this.tabTitles.each(function(item,i){
			item.addEvent(this.options.eventType,function(){this.changeTabJVNews2(i);}.bind(this));
		}.bind(this));
	},
	changeTabJVNews2:function(i){
		if(this.currentTab != i){					
			this.tabPanels.each(function(item,j){
				if(j!=i){
					this.tabPanels[j].setStyle('display','none');	
					this.tabTitles[j].removeClass('active');					
				} else {										
					this.tabTitles[i].addClass('active');
					this.tabPanels[i].setStyle('display','');						
					this.panel.setStyle('height',this.tabPanels[i].offsetHeight+5);				
				}							
			}.bind(this));		
			this.currentTab = i;
		}
	},
	initScrollLeftRight:function(){
		var left_width = 0;
		this.tabPanels.each(function(item,i){
			item.setStyles('display:block;left:'+left_width+'px;top:0px');				
			left_width += item.offsetWidth; 			
			this.tabTitles[i].addEvent(this.options.eventType,function(){this.changeTabScrollLr(i);}.bind(this));
		}.bind(this));
		this.panel.setStyle('height',this.tabPanels[0].offsetHeight);
	},
	changeTabScrollLr:function(i){
		if(this.currentTab != i){
			var obj = {};
			this.fx.stop();
			var offset = this.tabPanels[i].offsetLeft.toInt();			
			this.tabPanels.each(function(item,j){
				if(j!=i){
					this.tabTitles[j].removeClass('active');					
				} else {										
					this.tabTitles[i].addClass('active');						
					this.panel.setStyle('height',this.tabPanels[i].offsetHeight+5);				
				}
				obj[j] = {'left':[item.offsetLeft.toInt(), item.offsetLeft.toInt()- offset]};				
			}.bind(this));		
			this.fx.start(obj);
			this.currentTab = i;
		}
	},
	initScrollTopBottom:function(){
		var top_height = 0;			
		this.tabPanels.each(function(item,i){
			item.setStyles('display:block;left:0px;top:'+top_height+'px');				
			top_height += item.offsetHeight; 
			this.tabTitles[i].addEvent(this.options.eventType,function(){this.changeTabScrollTb(i);}.bind(this));
		}.bind(this));
		this.panel.setStyle('height',this.tabPanels[0].offsetHeight);
	},
	changeTabScrollTb:function(i){	
		if(this.currentTab != i){
			var obj = {};
			this.fx.stop();
			var offset = this.tabPanels[i].offsetTop.toInt();			
			this.tabPanels.each(function(item,j){
				if(j!=i){
					this.tabTitles[j].removeClass('active');					
				} else {										
					this.tabTitles[i].addClass('active');						
					this.panel.setStyle('height',this.tabPanels[i].offsetHeight+5);				
				}
				obj[j] = {'top':[item.offsetTop.toInt(), item.offsetTop.toInt()- offset]};				
			}.bind(this));		
			this.fx.start(obj);
			this.currentTab = i;
		}
	}
});
JVTabPedon.implement(new Events);
JVTabPedon.implement(new Options);
