var browser=new CBrowserToolkit();

/*** definizione MenuItem ***/
function MenuItem(id,titolo) {
	this.id=id;
	this.titolo=titolo;
	this.children=new Array();
	this.appendChild=appendChild;
	function appendChild(mnuItem) {
		//quella ciofeca di IE5 non ha il metodo push per gli array (?)
		//quindi:
		//this.children.push(mnuItem);
		//diventa:
		this.children[this.children.length]=mnuItem;
	}
}
var root=new MenuItem(0,'');

/*var categoryExpanded="categoryExpanded"+"Storico";
var categoryCollapsed="categoryCollapsed"+"Storico";
var roomSel="roomSel"+"Storico";
var roomUnsel="roomUnsel"+"Storico";

var categoria;

categoria=new MenuItem(1,'categoria1');
categoria.appendChild(new MenuItem(1,'stanza1'));
categoria.appendChild(new MenuItem(2,'stanza2'));
categoria.appendChild(new MenuItem(3,'stanza3'));
root.appendChild(categoria);
categoria=new MenuItem(2,'categoria2');
categoria.appendChild(new MenuItem(1,'stanza4'));
categoria.appendChild(new MenuItem(2,'stanza5'));
categoria.appendChild(new MenuItem(3,'stanza6'));
root.appendChild(categoria);
categoria=new MenuItem(3,'categoria3');
categoria.appendChild(new MenuItem(1,'stanza7'));
categoria.appendChild(new MenuItem(2,'stanza8'));
categoria.appendChild(new MenuItem(3,'stanza9'));
root.appendChild(categoria);*/

function addEventDHTML(obj,event,value) {
	if(browser.BrowserName==_cbMICROSOFT) {
		obj[event]=new Function(value);
	}
	else {
		obj.setAttribute(event,value);
	}
}
function makejsFunction(cat,stz,idTable) {
	if(stz==-1) {
		if(categoryOnLink=='') 
			jsFunc="showMenu('"+idTable+"','"+cat+"','"+stz+"')";
		else
			jsFunc=categoryOnLink.replace(/\%id/,cat);
	}
	else {
		jsFunc=roomOnLink.replace(/\%id/,stz);
		//jsFunc="document.location.href='area.php?idStanza="+stz+"'";
	}
	return jsFunc;
}
function addElementDHTML(table,height,align,valign,style,text,link) {
	var newRow=document.createElement('tr');
	var newCell=document.createElement('td');
	//newCell.appendChild(link);
	newCell.appendChild(document.createTextNode(text));
	addEventDHTML(newCell,'onclick',link);
	newCell.setAttribute('height',height);
	newCell.setAttribute('align',align);
	newCell.setAttribute('valign',valign);
	newCell.className=style;
	newRow.appendChild(newCell);
	table.appendChild(newRow);
}
function addElementIE5(table,height,align,valign,style,text,link) {
	var newRow=table.insertRow();
	var newCell=newRow.insertCell();
	//**** bisogna provare con il 5
	addEventDHTML(newCell,'onclick',link);
	newCell.setAttribute('height',height);
	newCell.setAttribute('align',align);
	newCell.setAttribute('valign',valign);
	newCell.setAttribute('className',style);
	newCell.innerText=text;
}
function showMenu(idTable,cat,stz) {
	var table=document.getElementById(idTable);
	if(!table) {
		alert('showMenu: non esiste nessuna table con id '+idTable);
		return;
	}
	
	// modifica per funzionare anche con ie > 6:
	if((browser.BrowserName==_cbMICROSOFT && browser.Major>=6)) {
		/* ogni browser ha i suoi problemi :(
		** se ho internet explorer devo inserire i nuovi child non nella table ma in un tBody
		** questo andrebbe bene anche a Mozilla, se non fosse che Moz non crea un tBody di default
		** quindi
		*/
		table=table.tBodies[0];
	}
	//pulizia table :)
	while (table.childNodes.length > 0) table.removeChild(table.childNodes[0]);
	var CategoryStyle;
	var categoria;
	for(ix=0;ix<root.children.length;ix++) {
		categoria=root.children[ix];
		CategoryStyle=categoria.id==cat?categoryExpanded:categoryCollapsed;
		if((browser.BrowserName==_cbNETSCAPE && browser.Major==5) || (browser.BrowserName==_cbMICROSOFT && browser.Major>=6)) {
			//W il DHTML
			addElementDHTML(table,'20','left','middle',CategoryStyle,categoria.titolo,makejsFunction(categoria.id,-1,idTable));
		}
		else if(browser.BrowserName==_cbMICROSOFT && browser.Major==5) {
			addElementIE5(table,'20','left','middle',CategoryStyle,categoria.titolo,makejsFunction(categoria.id,-1,idTable));
		}
		if(categoria.id==cat) {
			var RoomStyle;
			var stanza;
			//mostro anche i figli
			for(jx=0;jx<categoria.children.length;jx++) {
				stanza=categoria.children[jx];
				RoomStyle=stanza.id==stz?roomSel:roomUnsel;
				if((browser.BrowserName==_cbNETSCAPE && browser.Major==5) || (browser.BrowserName==_cbMICROSOFT && browser.Major>=6)) {
					//W il DHTML
					addElementDHTML(table,'20','left','middle',RoomStyle,stanza.titolo,makejsFunction(categoria.id,stanza.id,idTable));
				}
				else if(browser.BrowserName==_cbMICROSOFT && browser.Major==5) {
					addElementIE5(table,'20','left','middle',RoomStyle,stanza.titolo,makejsFunction(categoria.id,stanza.id,idTable));
				}
			}
		}
	}
}
