sysDebug("processing gsosMenu");

var _menudesc;
var _menufunction;

function _buildItem(idname,name,icon)
{
var str2 = '<table border='+showBorder+'><tr><td align=center><a href="javascript:sysChangeImg(' 
   		 + "'" +name
		 + "','gif"+icon+"');javascript:executeItem('"
		 + name + "'" 
		 + ');"  onMouseOver="sysChangeImg('
		 + "'" + idname + "','gif"+icon+"selected');"
		 + '" onMouseOut="sysChangeImg('
   		 + "'" + idname + "','gif"+icon+"');"
		 + '">';
   str2+='<IMG src="pic/'+icon+'.gif" name="' +idname+ '" border='+showBorder+'></A></td><tr><td align=center><font class=sysfont>'+name+'</font></td></tr></table>';
   return str2;
}

function gsosAddDisk(name,icon)
{
	
	sysDebug("adddisk:"+name);

	var str2 = '<p align=right>' + _buildItem("disk"+name,name,icon) + "</p>";
	
	document.write(str2);
}

// ********************************************************

function gsosAddMenuBar(str,func)
{
	_menudesc = str;
	_menufunction = func ;
 	
 	// default icons
 	
	gsosPreloadPic("apple","apple_s");
	gsosPreloadPic("folder","folder_s");
	gsosPreloadPic("close","close_s");
	gsosPreloadPic("application","application_s");
	gsosPreloadPic("foldersystem","folder_s");
	gsosPreloadPic("disk","disk_s");
	gsosPreloadPic("readme","readme_s");
	gsosPreloadPic("file","file_s");
	
	_BuildMenuBar();
	_AddWindowSystem();

}

// ********************************************************

function gsosPreloadPic(str,strselected)
{
	eval("gif"+str+"= new Image");
	eval("gif"+str+".src = 'pic/"+str+".gif'");
	if (strselected)
	{
		eval("gif"+str+"selected = new Image");
		eval("gif"+str+"selected.src = 'pic/"+strselected+".gif'");
	}
}
	



// ************************************************

var lastMenuActivated=null;
var currentMenuItem=null;

function selectMenuItem(str)
{
	sysDebug("selectMenuItem:"+str);
	sysSetColor(str,"white","black");	
	currentMenuItem=str;	
}

function unselectMenuItem(str)
{
	sysDebug("unselectMenuItem:"+str);
	sysSetColor(str,"black","white");	
	currentMenuItem=null;
}

function activateMenu(str)
{
	sysDebug("activateMenu:"+str);
	selectMenu(str,1);
	sysSetVisibility("menu","visible");
	
}

function deactivateMenu()
{
	if (!lastMenuActivated)return;

	if ( currentMenuItem )
	{
		if (currentMenuItem=="About...")
		{
			var		win = gsosAddWindow("About&nbsp;this&nbsp;Apple&nbsp;IIgs",-1,-1,1,400,0);
			if (win)
			{
				gsosAddWindowHTML(win,"<table border="+showBorder+"><tr><td><img src='pic/gsicon.gif'></td>");
				gsosAddWindowHTML(win,"<td>System Software 6.0.1<br>Copyright Apple Computer, Inc. 1983-1993</td></tr>");
				gsosAddWindowHTML(win,'<tr><td colspan=2 height=2 WIDTH=100% STYLE="background:url(' +"'pic/trait.gif'" +');"></TD></TR>');
				gsosAddWindowHTML(win,"<tr><td colspan=2><center>HTML Version, (c)opyright <strong><a href='http://www.freetoolsassociation.fr.st'>FTA</A></strong> 2001,2002</center></td></tr></table>");
				gsosActivateWindow(win);

				
			}
		}		
		else
			//executeItem(currentMenuItem);
			_menufunction(currentMenuItem);
	}

	sysDebug("deactivateMenu:"+lastMenuActivated);
	disableMenu(lastMenuActivated);
	sysSetVisibility("menu","hidden");
	lastMenuActivated=null;
}
	
function disableMenu(str)
{
	if (!str)
		return;
	sysDebug("disableMenu:"+str);
	if (str=="@apple@")
		sysChangeBackground("@apple@","gifapple");
	else
		sysSetColor(str,"black","white");	
	
}

var _nbitem=0;

function selectMenu(str,always)
{
	sysDebug("selectMenu:"+str);
	if (!always && !lastMenuActivated)return;
	disableMenu(lastMenuActivated);
	lastMenuActivated=str;
	if (str=="@apple@")
		sysChangeBackground("@apple@","gifappleselected");
	else
		sysSetColor(str,"white","black");	
	var x = sysGetWindowX(str) + sysGetWindowX("toppanel");
	var y = sysGetWindowY(str) + sysGetWindowY("toppanel") + sysGetWindowSizeY("toppanel");
	
	_nbitem=0;
	var it ='<table width=100% border='+showBorder+' cellspacing=0 cellpadding=4 style="cursor:hand;" >';
	if (str=="@apple@")
		it = gsosAddMenuItem(it,"About...");		
	else
		it = buildMenuItem(str,it);
	sysWriteInnerHTML("menudata",it+"</table>");
	sysSetPosition("menu",x+4,y+4);	// shadow size
	sysSetSize("menu",200,_nbitem*10);
	
}

function gsosAddMenuItem(thestr,theitem)
{
	sysDebug("addmenu item:"+theitem);
	
	thestr += '<tr><td width=100% id='+theitem+' ' 
	 	+ 'onMouseOut="unselectMenuItem(' + "'" + theitem + "'" +');"'
	 	+ 'onMouseOver="selectMenuItem(' + "'" + theitem + "'" +');"' 	
	 	+">&nbsp;"+theitem+"</td></tr>";
	_nbitem++;
	return thestr;	
}
		
function gsosAddMenu(str,name,id)
{
	sysDebug("gsosAddMenu:"+name);
	var istr;
	
	istr = '<td id='+name+' ' //+'style="cursor:hand;" '
	 	+ 'onMouseDown="activateMenu(' + "'" + name + "'" +');"'
	 	+ 'onMouseOver="selectMenu(' + "'" + name + "'" +',0);"' ;	
	 		 	
		if (name=="@apple@")
			istr += 'height=24px width=24px style="background-repeat=null; background:url(' + "'pic/apple.gif'" + ');">&nbsp;';
		else
			istr += ">&nbsp;"+name+"&nbsp;";
			
		istr += '</td>';
			
	return str+istr;
}

function _BuildMenuBar()
{
	if (!_menudesc) { sysError("use addmenubar first!"); return ; }

	sysDebug("adding MenuBar!");
	
	str = '<DIV id=toppanel  class=sysfont  style=" background: white; BORDER: 2px solid black; z-index=32010; height=24px">';
	str += '<table cellspacing=0 cellpadding=0 border='+showBorder+' style="cursor:hand;"><tr valign=center cellspacing=10>';
	str = gsosAddMenu(str,"@apple@");
	
	// parse menu bar
	var tmp = _menudesc;
	while(tmp.length)
	{
		var i = tmp.indexOf('[');
		if (i==-1)	{ sysError("missing ["); return ; }
		var it = tmp.substr(0,i);
		str = gsosAddMenu(str,it);
		i = tmp.indexOf(']');
		if (i==-1)	{ sysError("missing ]"); return ; }
		tmp = tmp.substr(i+1,tmp.length);
	}
	
	str += '</tr></table></DIV>';
	document.write(str);
	document.write('<div id="menu" style="position:absolute; visibility=hidden; background: black; BORDER: 2px solid black; z-index=32002;">');
	document.write('<div id="menudata" class=sysfont style="position:relative; left:-4px; top:-8px; background: white; BORDER: 2px solid black; z-index=32001;">');
	document.write('</div></div>');
}

function buildMenuItem(item,str)
{

	// recherche item dans la chaîne
	item +="[";
	
	var i = _menudesc.indexOf(item);
	if (i==-1)	{ sysError("malformed list for "+item); return ; }
	var tmp = _menudesc.substr(i+item.length,_menudesc.length);
	var end = tmp.indexOf("]");
	if (end==-1)	{ sysError("malformed(2) list for "+item); return ; }
	tmp = tmp.substr(0,end);
	while(tmp.length)
	{
	sysDebug(tmp);
		var i = tmp.indexOf('|');
	sysDebug(i);
		if (i==-1)	
		{
			// un seul item!
			str = gsosAddMenuItem( str,tmp );
			break;
		}
		var it = tmp.substr(0,i);
		str = gsosAddMenuItem(str,it);
		tmp = tmp.substr(i+1,tmp.length);
	}
	return str;
}
		
sysDebug("end processign gsosMenu");
