if(typeof(campton) == "undefined")
	var campton = {};

campton.tabsView = function(o){
	var obj = (typeof(o) == "string" ? getObject(o):o);
	var tabs = [];
	
	var activeTabIndex =0;
	var cssSelected = "selected";
	
	var init = function(o,index){

	    if(typeof index=="undefined"){
	       index=0;
	     }
	     
		if(o == null) return;
		var tabs = getTabs(o,index);
		for(var i=0; i<tabs.length; i++){
			var tab = tabs[i];
			YAHOO.util.Event.removeListener(tab.label, "click");
			YAHOO.util.Event.addListener(tab.label, "click", onClick, {tab:tab, index:i});
			if(tabs[i].active == true){
				activeTabIndex = i;
			}
		}
	}
	var getTabs = function(o,index){
		if(tabs.length == 0){
			var t = getNode(o, "UL")[0]; //title of tabs
			var c = getNode(o, "DIV")[0]; //content of tabs
			if(t==null||c==null) return; //no ul tag of title or no div tag of content;
			var labels = getNode(t, "LI");
			var contents = getNode(c, "DIV");
			if(labels==null||contents==null) return;
			if(labels.length != contents.length) return;
			for(var i=0; i<labels.length; i++){
			    if(index==i)labels[i].className=cssSelected;
			    else labels[i].className="";
				var active = (index==i);
				var tab = {label:labels[i],content:contents[i], active:active};
				tabs.push(tab);
			}
		}
		return tabs;
	}
	var getNode = function(o, tagName){
		if(o == null || tagName == null || tagName == "") return;
		var ls = [];
		for(var i=0; i<o.childNodes.length; i++){
			if(o.childNodes[i].tagName == tagName)
				ls.push(o.childNodes[i]);
		};
		return ls;
	}
	var onClick = function(evt, obj){
		var tab = obj.tab;
		var index = obj.index;
		if(index == activeTabIndex) return;
		tab.label.className = cssSelected;
		tab.label.title = "active";
		tab.content.style.display = "block";
		tabs[activeTabIndex].label.className = "";
		tabs[activeTabIndex].label.title = "";
		tabs[activeTabIndex].content.style.display = "none";
		activeTabIndex = index;
	}
	
	if(typeof(obj) == "object") init(obj);
}