function simpleAjaxTabs(o) {
	var self = this;
	this.prefix = 'tabs_' + o.id;
	this.tabList = $i(this.prefix);
	this.contentArea = $i(this.prefix + '_content');
	this.o = o;
	this.tabType = o.tabType ? o.tabType : 'tabs';
	this.a = new simpleAjax( {
		type:'ctn',
		url:o.controller,
		callback:function(r){self.tabCallback(r);},
		parseJS:true
	} );
	if (o.postVars) { this.a.o.postVars = o.postVars; }
}
simpleAjaxTabs.prototype = {
	
	init : function() {
		
		var self = this;
		
		// Cycle through tabs

		if (this.o.tabType == 'radios')
		{

			var tabLinks = $i('radios_'+this.o.id).getElementsByTagName('input');
			var i, tab;
			for(i=0; i<tabLinks.length; i++) {
				
				tab = tabLinks[i];
				
				// Add event to tab
				tab.onclick = function() { self.tabClick(this); }
				
				// If pre-selected, set as selected
				if (tab.checked) {
					this.selectTabByTab( tab );
				}	
				
			}
			
		} else
		{
		
			var tabLinks = this.tabList.getElementsByTagName('a');
			var i, tab;
			for(i=0; i<tabLinks.length; i++) {
				
				tab = tabLinks[i];
				
				// Add event to tab
				tab.onclick = function() { self.tabClick(this); }
				
				// If pre-selected, set as selected
				if (tab.parentNode.className.match('tr_selected')) {
					this.selectTabByTab( tab );
				}
				
				if (i==0) {
					Addclass(tab.parentNode, 'firstTab');	
				}
				
			}
		
		}
		
	},
	
	selectTabByTab : function(tab) {
	
		if (this.selectedTab == tab) { return; }
	
		//--  Display of Tabs
		if (this.selectedTab) {
			if (this.o.tabType == 'tabs') {
				this.selectedTab.checked = false;
			} else {
				Removeclass(this.selectedTab.parentNode, 'tr_selected' );					
			}
			Removeclass(this.selectedContentArea, 'tr_tab_selected');
		}		
	
		this.selectedTab = tab;
		this.selectedTabId = tab.id.replace(this.prefix+'_','');
		this.selectedContentAreaId = this.prefix + '_content_' + this.selectedTabId;
		this.selectedContentArea = $i(this.selectedContentAreaId);
		if (this.o.tabType == 'tabs') {
			this.selectedTab.checked = true;
		} else {
			Addclass(this.selectedTab.parentNode, 'tr_selected' );					
		}
		
		// Create/Show contentArea
		if (!this.selectedContentArea) {
			justLoaded = true;
			this.selectedContentArea = createNodeN('div', {id:this.selectedContentAreaId});
			this.contentArea.appendChild( this.selectedContentArea );
			Addclass( this.selectedContentArea , 'tr_tab_content' );
			
			// Load Tab
			this.loadTabContent();
		}
		Addclass( this.selectedContentArea , 'tr_tab_selected' );
		
		
		// Tab changed event
		if (this.o && this.o.tabChangedEvent) this.o.tabChangedEvent(this);
		
	},
	
	tabClick : function(tab) {
		this.selectTabByTab(tab);
	},
	
	// -- //
	
	loadTabContent : function() {
		var contentArea = this.selectedContentArea;
		var tabId = this.selectedTabId;
		
		this.a.o.ctn = contentArea;
		this.a.send( {tabId:tabId} );
	},
	
	tabCallback : function(r) {
				
	}
	
}