var atID = new Array();
function autoTabControl(n){
	this.name = n;
	this.tabs = new Array();
	this.selectedTab = null;
	this.selectedTabIndex = null;	
	this.onfocus = null;
	this.onblur = null;
	this.addTab = function(tab,sel,dis){
		this.tabs.push(tab);
		if(sel || this.tabs.length == 1){
			this.selectedTab = tab.name;
			this.selectedTabIndex = this.tabs.length;
		}
	};
	this.findTab = function(tab){
		for(var i = 0;i < this.tabs.length;i++)
			if(this.tabs[i].name == n)
				return this.tabs[i];
		return false;
	};
}
function autoTab(n,s){
	this.name = n;
	this.sourceType = 'html';//opções--> framework:dbGrid,autoForm,richEditor;string;html
	this.disabled 	= false;
}

function addTabControl(n){
	try{
		for(var i = 0;i < atID.length;i++)
			if(atID[i].name == n)
				return false;
		var t = new autoTabControl(n);
		atID.push(t);
		
		return true;
	}catch(e){
		status = e.description;
		status = status + ' - addTabControl';
		return false;
	}
}

function addTab(n,tab,source){
	try{
		var tc = findTabControl(n);
		if(tc){
			var t = new autoTab(tab,source);
			tc.addTab(t,false);
			return true;
		}else{
			return false;
		}
	}catch(e){
		status = e.description;
		status = status + ' - addTab';
		return false;
	}
}

function findTabControl(n){
	for(var i = 0;i < atID.length;i++)
		if(atID[i].name == n)
			return atID[i];
	return false;
}

function at_Over(at,tb,obj){
	try{
		if(obj.className != 'atTabDisabled'){
			var tc = findTabControl(at);
			if(tc){
				var t = tc.findTab(tb);
				obj.className = 'atTabOver';
			}else{
				return false;
			}
		}
	}catch(e){
		status = e.description;
		status = status + ' - atOver';
		return false;
	}
}

function at_Out(at,tb,obj){
	try{
		if(obj.className != 'atTabDisabled'){
			var tc = findTabControl(at);
			if(tc){
				var t = tc.findTab(tb);
				if(tc.selectedTab){
					if(tb == tc.selectedTab)
						obj.className = 'atTabSelected';
					else
						obj.className = 'atTabOut';				
				}else{
					obj.className = 'atTabOut';
				}
			}else{
				return false;
			}
		}
	}catch(e){
		status = e.description;
		status = status + ' - atOut';
		return false;
	}
}

function atTabDisable(at,ixt){
	try{
		var tc = findTabControl(at);
		if(tc){
			if(ixt < tc.tabs.length){
				eval('v'+ at +'_' + tc.tabs[ixt].name).className = 'atTabDisabled';
				eval(at + '_' + tc.tabs[ixt].name).style.display = 'none';
			}
		}
	}catch(e){
		status = e.description;
		status = status + ' - atDisable';
		return false;
	}
}

function atTabEnable(at,ixt){
	try{
		var tc = findTabControl(at);
		if(tc){
			if(ixt < tc.tabs.length){
				if(tc.selectedTab == tc.tabs[ixt].name){
					eval('v'+ at +'_' + tc.tabs[ixt].name).className = 'atTabSelected';
					eval(at + '_' + tc.tabs[ixt].name).style.display = 'block';
				}else{
					eval('v'+ at +'_' + tc.tabs[ixt].name).className = 'atTabOut';
				}
			}
		}
	}catch(e){
		status = e.description;
		status = status + ' - atEnable';
		return false;
	}
}

function atAddTabEvent(at,ixt,e,func){
	try{
		var tc = findTabControl(at);
		if(tc){
			if(ixt < tc.tabs.length){
				switch(e){
					case 'onfocus':
						tc.tabs[ixt].onfocus = func;
						break;
					case 'onblur':
						tc.tabs[ixt].onfocus = func;
						break;
				}
			}
		}
	}catch(e){
		status = e.description;
		status = status + ' - atEvent';
		return false;
	}
}

function atSetTab(at,ixt){
	//try{
		var tc = findTabControl(at);
		if(tc){
			if(ixt < tc.tabs.length){
				if(document.getElementById('v'+ at +'_' + tc.tabs[ixt].name).className != 'atTabDisabled'){
					var t = tc.findTab(tc.tabs[ixt].name);
					if(tc.selectedTab){
						if(tc.tabs[ixt].name != tc.selectedTab){
							document.getElementById('v'+ at +'_' + tc.selectedTab).className = 'atTabOut';
							document.getElementById(at + '_' + tc.selectedTab).style.display = 'none';
							document.getElementById('v'+ at +'_' + tc.tabs[ixt].name).className = 'atTabSelected';
							tc.selectedTab = tc.tabs[ixt].name;
							document.getElementById(at + '_' + tc.selectedTab).style.display = 'block';
							if(tc.tabs[ixt].onfocus != null)
								eval(tc.tabs[ixt].onfocus);
						}else{
							if(tc.tabs[ixt].onblur != null)
								eval(tc.tabs[ixt].onblur);
						}
					}else{
						document.getElementById('v'+ at +'_' + tc.tabs[ixt].name).className = 'atTabSelected';
						tc.selectedTab = tc.tabs[ixt].name;
						document.getElementById(at + '_' + tc.selectedTab).style.display = 'block';
					}
				}
			}
		}else{
			return false;
		}
	//}catch(e){
	//	status = e.description;
	//	status = status + ' - atSetTab';
	//	return false;
	//}	
}

function execTabAction(at,tab,tp,htm,met,params){
	var tc = findTabControl(at);
	if(tc){
		htcloadClass = 'texto_preto_normal';
		//alert(eval(at +'_' + tab).innerHTML);
		htcGet(htm,eval(at +'_' + tab),true,params,'eval('+ at +'_' + tab + ').innerHTML = result','default');
	}else{
		return false;
	}
}

