var tabs = {
	config: {
		count: false,
		tabClass: '.tab',
		paneClass: '.pane',
		active: 'active',
		cur: false,
		curIndex: false, 
		frontend: false,
		pager: false
	},
	
	_init: function() {
		tabs.config.count = $(tabs.config.paneClass).size();
		
		if($(tabs.config.tabClass).parent().hasClass('pager')) {
			tabs.config.pager = true;
		} else {
			tabs.config.pager = false;
		}
		
		if(tabs.config.count > 0 && $(tabs.config.tabClass).size()>0) {		
			this.config.cur = $(tabs.config.tabClass).first().attr('id');;
			this.config.curIndex = parseInt(tabs.config.cur.replace('page_', ''));
			
			tabs.setActive();
			tabs.swapTab();
		}
	},
	
	swapTab: function() {
	
		if(typeof(console) != 'undefined') {console.log(tabs.config.cur);}
		
		if(typeof(tabs.config.cur) == 'string') {
			var newIndex = parseInt(tabs.config.cur.replace('page_', ''));
		} else {
			newIndex = tabs.config.cur;
		}
		
		//tabs.config.curIndex = parseInt(tabs.config.cur.replace('page_', ''));
		tabs.config.curIndex = newIndex;
		
		$(this.config.paneClass+':not(.'+this.config.cur+')').hide();
		$(this.config.paneClass+'.'+this.config.cur).show();
		
		if(tabs.config.curIndex == tabs.config.count) {
			$('.next').addClass('disabled');
		} else {
			$('.next').removeClass('disabled');
		}
		
		if(tabs.config.curIndex == 1) {
			$('.back').addClass('disabled');
		} else {
			$('.back').removeClass('disabled');
		}
		
		animations.resizeMainContent();
		
		if(tabs.config.frontend && tabs.config.pager == false) {
			xajax_updateFrontendAdd(tabs.config.curIndex);
		}
	},
	
	bind: function() {
	
		$(this.config.tabClass).live('click' , function() {
			tools.log('tab');
			tabs.config.cur = $(this).attr('id');
			tabs.setActive();
			tabs.swapTab();
		});
	},
	
	next: function() {
		var curIndex = parseInt(tabs.config.cur.replace('page_', ''));
		if(curIndex < tabs.config.count) {
			var nextIndex = curIndex+1;
			tabs.config.curIndex = nextIndex;
			tabs.config.cur = 'page_'+nextIndex;
			tabs.swapTab();
			tabs.setActive();
		}
	},
	
	prev: function() {
		var curIndex = parseInt(tabs.config.cur.replace('page_', ''));
		if(curIndex > 1) {
			var prevIndex = curIndex-1;
			tabs.config.curIndex = prevIndex;
			tabs.config.cur = 'page_'+prevIndex;
			tabs.swapTab();
			tabs.setActive();
		}
	},
	
	setActive: function() {
		$(this.config.tabClass+'#'+this.config.cur).addClass(this.config.active);
		$(this.config.tabClass+':not(#'+this.config.cur+')').removeClass(this.config.active);
		$(this.config.paneClass+'.'+this.config.cur).addClass(this.config.active);
		$(this.config.paneClass+':not(.'+this.config.cur+')').removeClass(this.config.active);
	}
}
