/* 	
	------------------------------------------------------------------------------
	/framework/classes/js/tabcontrol.js
	
 	------------------------------------------------------------------------------
*/

function TabControl(_id) {

	// standard properties
	this.id = _id;	
	this.openTabPageId = "";
	this.onclick = "";
	
	// methods
	this.showTabPage = TabControl_showTabPage;
	this.hideTabPage = TabControl_hideTabPage;
	this.getEventName = TabControl_getEventName;
}


function TabControl_hideTabPage(id) {
	debug.write("hiding tabPage with id " + id);
	if (tabPage = document.getElementById("C_" + this.id + "_" + id)) {
		debug.write("yes");
		tabPage.style.display = "none";
	}
	if (tabButton = document.getElementById("T_" + this.id + "_" + id)) {
		tabButton.className = "";
		//tabButton.style.backgroundColor = "green";
	}
}

function TabControl_showTabPage(id) {
	
	debug.write("showing tabPage with id " + id);
	this.hideTabPage(this.openTabPageId);
	
	if (tabPage = document.getElementById("C_" + this.id + "_" + id)) {
		tabPage.style.display = "block";
	}
	if (tabButton = document.getElementById("T_" + this.id + "_" + id)) {
		tabButton.className = "selected";
		//tabButton.style.backgroundColor = "blue";
	}
	this.openTabPageId = id;
}

function TabControl_addEvent(tabPageButtonId, eventtype, eventhandler) {
	
	tabPageButton = document.getElementById("T_" + tabPageButtonId);
	//alert("checking " + tabPageButtonId + ", element = " + tabPageButton);
	if (tabPageButton) {
		//W3C
		if(tabPageButton.addEventListener) {
			//alert('W3C event added');
			tabPageButton.addEventListener(eventtype, eventhandler, false);
		}
	
		//Microsoft
		else if(tabPageButton.attachEvent){
			//alert("MS event added");
			tabPageButton.attachEvent("on" + eventtype, eventhandler);
		}
	}
}

function TabControl_handle_event(ev) {
	
//	alert("hallo");
	
	var targetElement;
	
	// event bij MS
	if (!ev) var ev = window.event;
	
	// target element W3C
	if (ev.target) targetElement = ev.target;
	// target element MS
	else if (ev.srcElement) targetElement = ev.srcElement;
	
//	alert('Het event (type = ' + ev.type + ') is opgetreden op ' +targetElement);
	
	// framework element opzoeken (T_tabMain_tpSubmissions -> tabMain)
	var ar = targetElement.id.split("_");
	if (ar.length >=2) {
		var frameworkElementId = ar[1]; // de tabMain zelf dus
		var frameworkElement = eval(frameworkElementId);
		// het is vreemd, maar na een onchange van een dropdownbox gebeurt er nog een event, en ik weet niet van wat
		if (frameworkElement == undefined) {
		}
		else {
			
			frameworkElement.showTabPage(ar[2]);
			
			if (this.onclick != "" && ev.type == "click") {
				eventfunction = frameworkElement.getEventName(ev.type);
				eval(eventfunction + "(ev, frameworkElement);");
		
			}
			
		}
	}
}



function TabControl_getEventName(whichevent) {
	return (eval("this.on" + whichevent));
	
}
