/**
 * @author backer
 * 作者：Backer 2006-10-25
 * 基础tab类
 * 简化标签的定义等属性
*/

function Tabs(tabvar,tabslist,cntt_id,curr_style,def_style,currid){
	this.tabvar = tabvar ;//自身变量
	this.mainElement = cntt_id ;//内容元素id
	this.tabs = null;//标签数组
	this.tabnum = 0 ;//标签总数目
	this.deep = 0 ;//点击对象和控制样式对象层级关系
	this.useproxy = false ; //是否使用代理
	this.proxy = null; //设置跨域代理
	this._event = 'onmouseover';
	
	if(!currid){
		currid = 0 ;
	}
	this.curr_id = currid ;//当前标签id
	
	var tabs_arr = new Array();
	var tab_arr = new Array();
	var tabid_arr = tabslist.split(",");
	for(i=0;i<tabid_arr.length;i++){
		tab_arr = new Array(tabid_arr[i],curr_style,def_style,null);
		this.tabnum = tabs_arr.push(tab_arr);
	}
	tabs_arr[this.curr_id][3] = $(this.mainElement).innerHTML ;
	this.tabs = tabs_arr ;
	this.content = null ;
	
};
Tabs.prototype.doClick = function(e){
	var evt = e||event;
	var src_ele = null ;
	var srcEle = evt.srcElement ? evt.srcElement : evt.target ;
	if(this.deep==0){
		src_ele = srcEle;
	}else if(this.deep==1){
		src_ele = srcEle.parentNode;
	}else if(this.deep==2){
		src_ele = srcEle.parentNode.parentNode;
	}else if(this.deep==3){
		src_ele = srcEle.parentNode.parentNode.parentNode;
	}
	var src_id = src_ele.id ;
	for(var i=0;i<this.tabnum;i++){
		if(this.tabs[i][0]==src_id){
			src_ele.className = this.tabs[i][1] ;
			this.curr_id = i
			this.doMakeContent(i);
		}else
			$(this.tabs[i][0]).className = this.tabs[i][2];
	}
	//alert(this.curr_id)
};

Tabs.prototype.doMakeContent = function(num){
	var varent = this.tabvar ;
	var content_string = this.content[num].str ;
		switch(this.content[num].type){
		case 'string':
			if(!this.tabs[num][3]){
				//alert(this.content[num].type);
				this.tabs[num][3] = content_string ;
				}
				this.innerContent(num);
			break ;
		case 'element':
			
			break ;
		case 'ajax':
			if(!this.tabs[num][3]){
				if(this.useproxy){
					$Ajax('get',content_string,true,__callback,this.proxy,"");
				}else{
					Ajax('get',content_string,true,__callback);
				}
			}else{
				this.innerContent(num);
			}
			break ;
		}
	function __callback(x){
		var r = x.responseText ;
		var parent = eval(varent);
		//alert(parent.curr_id);
		parent.tabs[parent.curr_id][3] = r;
		parent.innerContent(parent.curr_id);
	};
};



//最后插入内容的方法
Tabs.prototype.innerContent = function(num){
	$(this.mainElement).innerHTML = this.tabs[num][3];
};

// Tabs.prototype.GetBack = function(x){
// 	var r = x.responseText ;
// 	alert(this.tabs)
// 	this.tabs[this.curr_id][3] = r ;
// 	this.innerContent(this.curr_id);
// };


//[{str:'http://www.1895s.com',type:'string/element/ajax'},{}]
Tabs.prototype.setContent = function(obj){
	if(obj){
		this.content = obj ;
	}
};


//接受事件的对象在tab标签的深度 dom层级
Tabs.prototype.setDeep = function(num){
	this.deep = num ;
};


//接受事件类型
Tabs.prototype.setEvent = function(evestr){
	this._event = evestr ;
}

//设置是否启用代理跨域请求
Tabs.prototype.setProxy = function(useproxy,proxyhttp){
	this.useproxy = useproxy ;
	this.proxy = proxyhttp ;
};

Tabs.prototype.Render = function(){
	var src_ele = null ;
	var varent = this.tabvar ;
 	for(var i=0;i<this.tabnum;i++){
 		if(this.deep==0){
			src_ele = $(this.tabs[i][0]);
		}else if(this.deep==1){
			src_ele = $(this.tabs[i][0]).childNodes[0];
		}else if(this.deep==2){
			src_ele = $(this.tabs[i][0]).childNodes[0].childNodes[0];
		}else if(this.deep==3){
			src_ele = $(this.tabs[i][0]).childNodes[0].childNodes[0].childNodes[0];
		}
 		//alert(this.tabs[i][0]);
		switch(this._event){
		case 'onmouseover':
			src_ele.onmouseover = function(event){eval(varent).doClick(event);};
			break;
		case 'onclick':
			src_ele.onclick = function(event){eval(varent).doClick(event);};
			break;
		default :
			src_ele.onmouseover = function(event){eval(varent).doClick(event);};
			break;
		}
 	}
 };
