function ntab2_register(id, def)
{
    var obj = document.getElementById(id);
	if (!obj || !obj.hasChildNodes())
	{
		alert('ERROR: the object was not defined for #' + id + '#');
		return;
	}

	// get head & body object
	var head = null;
	var body = null;
	for (var i = 0; i < obj.childNodes.length; i++)
	{
		var node = obj.childNodes[i];
		if (node.tagName == 'DIV')
		{
			if (node.className == 'ntab2-head')
				head = node;
			else if (node.className == 'ntab2-body')
				body = node;
		}
	}
	if (!head) { alert('ERROR: head elements was not found for #' + id + '#'); return; }
	if (!body) { alert('ERROR: body elements was not found for #' + id + '#'); return; }

	// set action & default
	var items = head.getElementsByTagName('LI');
	var datas = body.getElementsByTagName('DL');
	if (items.length == 0) { alert('ERROR: empty set for head elements on #' + id + '#'); return; }
	if (items.length != datas.length)
	{
		alert('ERROR: not equal between body.length and head.length for #' + id + '#');
		return;
	}
	
	var total = items.length;
	if (typeof def == 'undefined') def = 0;
	else def = parseInt(def)%total;
	if (def < 0) def += total;	
	for (var i = 0; i < total; i++)
	{
		datas[i].style.display = (i == def ? '' : 'none');
		items[i].className = (i == def ? 'current' : '');
		items[i].onmouseover = function() {	
			for (var k = 0; k < total; k++)
			{
				datas[k].style.display = (this == items[k] ? '' : 'none');
				items[k].className = (this == items[k] ? 'current' : '');
			}
		}
	}
}


function ntab3_register(id, de)
{
    var obj = document.getElementById(id);
	if (!obj || !obj.hasChildNodes())
	{
		alert('ERROR: the object was not defined for #' + id + '#');
		return;
	}

	// get head & body object
	var head = null;
	var body = null;
	for (var j = 0; j < obj.childNodes.length; j++)
	{
		var node = obj.childNodes[j];
		if (node.tagName == 'DIV')
		{
			if (node.className == 'ntab3-head')
				head = node;
			else if (node.className == 'ntab3-body')
				body = node;
		}
	}
	if (!head) { alert('ERROR: head elements was not found for #' + id + '#'); return; }
	if (!body) { alert('ERROR: body elements was not found for #' + id + '#'); return; }

	// set action & default
	var items = head.getElementsByTagName('LI');
	var datas = body.getElementsByTagName('DL');
	if (items.length == 0) { alert('ERROR: empty set for head elements on #' + id + '#'); return; }
	if (items.length != datas.length)
	{
		alert('ERROR: not equal between body.length and head.length for #' + id + '#');
		return;
	}
	
	var total = items.length;
	if (typeof de == 'undefined') de = 0;
	else de = parseInt(de)%total;
	if (de < 0) de += total;	
	for (var j = 0; j < total; j++)
	{
		datas[j].style.display = (j == de ? '' : 'none');
		items[j].className = (j == de ? 'current' : '');
		items[j].onmouseover = function() {	
			for (var k = 0; k < total; k++)
			{
				datas[k].style.display = (this == items[k] ? '' : 'none');
				items[k].className = (this == items[k] ? 'current' : '');
			}
		}
	}
}

function ntab0_register(id, deA)
{
    var obj = document.getElementById(id);
	if (!obj || !obj.hasChildNodes())
	{
		alert('ERROR: the object was not defined for #' + id + '#');
		return;
	}

	// get head & body object
	var head = null;
	var body = null;
	for (var j = 0; j < obj.childNodes.length; j++)
	{
		var node = obj.childNodes[j];
		if (node.tagName == 'DIV')
		{
			if (node.className == 'ntab0-head')
				head = node;
			else if (node.className == 'ntab0-body')
				body = node;
		}
	}
	if (!head) { alert('ERROR: head elements was not found for #' + id + '#'); return; }
	if (!body) { alert('ERROR: body elements was not found for #' + id + '#'); return; }

	// set action & default
	var items = head.getElementsByTagName('LI');
	var datas = body.getElementsByTagName('DL');
	if (items.length == 0) { alert('ERROR: empty set for head elements on #' + id + '#'); return; }
	if (items.length != datas.length)
	{
		alert('ERROR: not equal between body.length and head.length for #' + id + '#');
		return;
	}
	
	var total = items.length;
	if (typeof deA == 'undefined') deA = 0;
	else deA = parseInt(deA)%total;
	if (deA < 0) deA += total;	
	for (var j = 0; j < total; j++)
	{
		datas[j].style.display = (j == deA ? '' : 'none');
		items[j].className = (j == deA ? 'current' : '');
		items[j].onmouseover = function() {	
			for (var k = 0; k < total; k++)
			{
				datas[k].style.display = (this == items[k] ? '' : 'none');
				items[k].className = (this == items[k] ? 'current' : '');
			}
		}
	}
}

