////////////////////////////////////////////////////////////////////////////////
// Generic tabs ////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
var _selected_tabs = [];

function make_tabs(container_id, selected_label, callback_function){
	var selectedAnchor = null;
	_selected_tabs[container_id] = null;

	var c = document.getElementById(container_id);

	var titles = document.createElement("div");
	titles.className = "tabs";

	var tabs = getElementsByClassName(c, "div", "tab");
	for(var j = 0; j < tabs.length; j++){
		var tab = tabs[j];

		var label = getElementsByClassName(tab, "div", "tab_label");
		label = label[0];

		var a = document.createElement("a");
		a.innerHTML = label.innerHTML;
		a.href = "javascript:;";
		a.onclick = function(){
			_select_tab(this);
		};
		tab.removeChild(label);

		titles.appendChild(a);

		if(selected_label == a.innerHTML){
			selectedAnchor = a;
		} else if(!selectedAnchor){
			selectedAnchor = a;
		}
	}

	c.insertBefore(titles, c.childNodes[0]);

	// Save the callback function name
	c.tab_change_callback_function = callback_function;

	if(selectedAnchor){
		_select_tab(selectedAnchor);
	} else {
	}
}

function _select_tab(a){
	if(a){
		// index of the tab
		var tabs = a.parentNode.getElementsByTagName("a");
		var index = indexOf(tabs, a);

		var container_id = a.parentNode.parentNode.id;

		if(_selected_tabs[container_id]){
			_deselect_tab(_selected_tabs[container_id]);
		}

		a.className = "selected";
		a.blur();
		var tab = _get_tab_index(a.parentNode.parentNode, index);
		tab.style.display = "block";
		_selected_tabs[container_id] = a;

		var c = Coomsy.$(container_id);
		if(c && c.tab_change_callback_function){
			c.tab_change_callback_function(index);
		}
	}
}

function _deselect_tab(a){
	if(a){
		var tabs = a.parentNode.getElementsByTagName("a");
		var index = indexOf(tabs, a);

		a.className = "";
		var tab = _get_tab_index(a.parentNode.parentNode, index);
		tab.style.display = "none";
	}
}

function _get_tab_index(container, index){
	var tabs = getElementsByClassName(container, "div", "tab_content");
	return tabs[index];
}


////////////////////////////////////////////////////////////////////////////////
// Legacy code /////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
var _current_tab = null;
function select_tab(id){
	var obj = Coomsy.$(id);
	if(obj){
		if(_current_tab){
			_current_tab.style.display = none;
		}
		obj.style.display = "";
		_current_tab = obj;
	}
}

