/**************************************************/

function ActiveTab(_tab, _content, isAjax, eventType){
	this.tabs = [];
	this.tabs_lis = [];
	this.contents = [];
	this.tabsDiv = document.getElementById(_tab);
	this.contDiv = document.getElementById(_content);
	this.last = -1;
	this.isAjax = isAjax || false;
	this.eventType = eventType || "click";
	this.init(_tab, _content);
	this.timer;
}

ActiveTab.prototype = {
	addEvent: function(){
		var tabs = this.tabs;
		for(var i=0; i<tabs.length; i++){
			tabs[i].flag = i;
			tabs[i].self = this;
			switch(this.eventType){
				case "click":
					tabs[i].onclick = function(){
						this.self.shiftContent(this.flag);
						return false;
					}
					break;
				case "mouseover":
					tabs[i].onmouseover = function(){
						this.self.shiftContent(this.flag);
						return false;
					}
					tabs[i].onclick = function(){
						return false;
					}
					break;
			}
		}
	},
	
	shiftContent: function(current){	
		if(this.last >=0){
			this.tabs_lis[this.last].className = "";
			this.contents[this.last].style.display = "none";
		}
		this.tabs_lis[current].className = "on";
		this.contents[current].style.display = "block";
		if(this.isAjax){
			Ajax.hiddenLoading();
			this.callContent(this.tabs[current].href, this.contents[current]);
		}
		this.last = current;
			
	},
	
	callContent: function(_url, _targetNode){
		var xhr = Ajax.createXHR();
		xhr.open("GET", _url, true);
		xhr.onreadystatechange = function(){
			if(xhr.readyState == 1){
				Ajax.showLoading();
			}
			if(xhr.readyState == 4){
				if(xhr.status == 200){
					_targetNode.innerHTML = xhr.responseText;
					Ajax.hiddenLoading();
				}
			}
		};
		xhr.send(null);
	},
	
	init: function(_tab, _content){
		this.tabs = this.tabsDiv.getElementsByTagName("A");
		this.tabs_lis = this.tabsDiv.getElementsByTagName("li");
		var elems = this.contDiv.childNodes;
		for(var i=0; i<elems.length; i++){
			if(elems[i].nodeType == 1){
				elems[i].style.display = "none";
				this.contents.push(elems[i]);
			}
		}
		this.addEvent();
		this.shiftContent(0);
	},
	
	autoActive: function(_time){
		var self = this;
		this.start(_time);
		this.tabsDiv.onmouseover = this.contDiv.onmouseover = function(){
			self.stop();
		}
		this.tabsDiv.onmouseout = this.contDiv.onmouseout = function(){
			self.start(_time);
		}
	},
	start: function(_time){
		var self = this;
		this.timer = setInterval(function(){
			var current = self.last + 1;
			if(current >= self.tabs.length) current = 0;
			self.shiftContent(current);
		}, _time);
	},
	stop: function(){
		clearInterval(this.timer);
	}
	
}
