// ©Xara Ltd 2002
var ma=new Array();
var mx=new Array();
var my=new Array();
var mc=new Array();
var mal=0;
var main=0;
var menuw=200;
var psrc=0;
var pname="";
var al="";
var gd=0;
var gx,gy;
var NS7=(!document.all  &&  document.getElementById);
var NS4=(!document.getElementById);
var IE5=(!NS4  &&  !NS7  &&  navigator.userAgent.indexOf('MSIE 5.0') != -1);
if(navigator.userAgent.indexOf('Opera') != -1)
	NS4=1;
var NS6 = (NS7  &&  navigator.userAgent.indexOf('Netscape6') != -1);

//IE5 = 0;
//NS7 = 0;
//NS4 = 0;
//NS6 = 1;

function startMainMenu(file,h,w,dir,space,align) {		// "", 0, 0, 1, 3, 0
	if(w>0)
		menuw=w;
	main=dir;
	if(main==1 || main==2)
		document.write("<table border=\"0\" cellspacing=\""+space+"\" cellpadding=\"0\">");
	if(file!="") {
		al="";
		if(align==1)
			al=" align=\"right\"";
		if(align==2)
			al=" align=\"center\"";
		if(main==1 || main==2) 
			document.write("<tr><td"+al+">");
		document.write("<img src=\""+loc+file+"\" border=\"0\"");
		if(h>0) document.write(" height=\""+h+"\"");
		if(w>0) document.write(" width=\""+w+"\"");document.write(" />");
		if(main==1 || main==2) document.write("</td>");
		if(main==1) document.write("</tr>");
		if(main==3) document.write("<br />");
	}
}

function endMainMenu(file,h,w) {
	if(file!="") {
		if(main==1)
			document.write("<tr>");
		if(main==1 || main==2)
			document.write("<td"+al+">");
		document.write("<img src=\""+loc+file+"\" border=\"0\"");
		if(h>0)
			document.write(" height=\""+h+"\"");
		if(w>0)document.write(" width=\""+w+"\"");
		document.write(" />");
		if(main==1 || main==2)
			document.write("</td></tr>");
	}
	if(main==1 || main==2)
		document.write("</table>");
		
	main=0;
}
	
function mainMenuItem(name,ext,h,w,url,tar,alt,dir,state,s){
	if(NS4 && main==0)
		return;
		
	var isgraphic=ext.charAt(0)==".";
	if(main==1)
		document.write("<tr>");
	if(main==1||main==2)
		document.write("<td"+al+">");
	document.write("<a ");
	if(url!=""||!isgraphic)
		document.write("href=\""+url+"\" ");
	if(tar!="")document.write("target=\""+tar+"\" ");
		document.write("onmouseout=\"");
	if(dir>0)
		document.write("tidyMenu(event);");
	document.write("\" onmouseover=\"");
	if(dir>0)
		document.write("openMenu(event, '"+name+"',"+dir+","+bc+","+fc+");");
	if(state>1 && isgraphic) {
		document[name+"_over"]=new Image();
		document[name+"_over"].src= loc+name+"_over"+ext;
		document.write("setGraphic(event, '"+loc+name+"_over"+ext+"');");
	}
	document.write("return false;\"");
	if(!isgraphic)
		document.write(" class=\""+s+"\" style=\"width:"+(w>0?w:menuw)+"px\"");
	document.write(">");
	if(isgraphic) {
		document.write("<img src=\""+loc+name+ext+"\" border=\"0\"");
		if(h>0) document.write(" height=\""+h+"\"");
		if(w>0) document.write(" width=\""+w+"\"");
		if(alt!="") document.write(" alt=\""+alt+"\"");
		document.write(" />");
	}
	else{
		document.write("&nbsp;"+ext+"&nbsp;");
	}
	document.write("</a>");
	if(main==1 || main==2)
		document.write("</td>");
	if(main==1)document.write("</tr>");
	if(main==3)document.write("<br />");
}

function startSubmenu(name,style,sw)
{
	if(NS4)
		return;
	if(sw>0)
		menuw=sw;
	document.write("<div id=\""+name+"\" class=\""+style+"\"  style=\"width:"+(menuw+(NS7?bd*2:0))+"px\">");
}

function endSubmenu(name)
{
	if(NS4)return;
	document.write("</div>");
	if(!NS7)
		document.getElementById(name).onmouseout=tidyMenu;
}

function submenuItem(text,url,tar,s)
{
	if(NS4)return;
	if(text=="---")
		document.write("<img src=\""+loc+"---.gif\" height=\"1\" width=\""+menuw+"\" />");
	else if(text.charAt(0)=='<')
		document.write(text);
	else{document.write("<a ");
	if(url!="")
		document.write("href=\""+url+"\" ");
	if(tar!="")document.write("target=\""+tar+"\" ");
	document.write("class=\""+s+"\" style=\"width:"+menuw+"px\">&nbsp;"+text+"&nbsp;</a>");}
}

function setGraphic(event,name)
{
	if(NS4)return;
	psrc = (NS7) ? event.target : event.srcElement;
	pname=psrc.src;
		
	if(NS7)
		event.target.src=name;
	else 
		event.srcElement.src=name;
}

function openMenu(event,id,pos,bc,fc) 
{
	if(NS4)
		return;
	
	var el,x,y;
	if(gd==0) {
		var p=document.getElementById(id);
		gx=0;
		gy=0;
		while(p && p.parentNode.nodeName!="BODY") {
			p=p.parentNode;
			if(p.nodeName=="DIV" || p.nodeName=="LAYER" || p.nodeName=="SPAN")
				if(p.style.position=="absolute") {
					gx+=p.offsetLeft;
					gy+=p.offsetTop;
				}
			}
		
			if(p)gd=1;
		}
		
		if(mal>0) {
			el=document.getElementById(ma[mal-1]);
			if(mx[mal-1]!=el.offsetLeft || my[mal-1] != el.offsetTop) {
				el.style.left=mx[mal-1];el.style.top=my[mal-1];
			}
			
			tidyMenu(event);
		}
		
		if(NS7) {
			var p=event.target;
			if(p.nodeName!="A" && p.nodeName != "IMG" && p.parentNode.nodeName=="A")
				p=p.parentNode;
			dx=p.offsetWidth;
			dy=p.offsetHeight;
			if(mal==0) {
				x=p.x; 
				y=p.y;
				if(typeof(p.x)=="undefined" || !NS6) { 
					x=p.offsetLeft;y=p.offsetTop;
					while(!NS6&&p.parentNode.nodeName!="BODY") {
						p=p.parentNode;
						if(p.nodeName=="TD"||p.nodeName=="TABLE") {
							x+=p.offsetLeft;
							y+=p.offsetTop;
						}
					}
				}
			}
			else {
				el=document.getElementById(ma[mal-1]);
				x=el.offsetLeft;
				y=el.offsetTop+p.offsetTop;
			}
			
			if(pos!=3)
				x-=bd;
			if(pos==3&&mal>0)
				x+=bd;
		}
		else {
			x=event.clientX-event.offsetX+document.body.scrollLeft-document.body.clientLeft;
			y=event.clientY-event.offsetY+document.body.scrollTop-document.body.clientTop;
			dx=event.srcElement.offsetWidth;
			dy=event.srcElement.offsetHeight;
			if(mal>0) {
				y-=bd;
				if(pos!=3) x-=2*bd;
			}
			x-=gx;
			y-=gy;
		}
		el=document.getElementById(id);
		if(el&&el.style.visibility!="visible") {
			if(pos==1) {
				x+=dx;
				el.style.left=x-el.offsetWidth+"px";el.style.top=y+"px";nspeed=el.offsetWidth/frames;
			}
			else if(pos==2) { 
				y+=dy;el.style.left=x+"px";
				el.style.top=y-el.offsetHeight+"px";
				nspeed=el.offsetHeight/frames;
			}
			else if(pos==3) {
				x-=el.offsetWidth;
				el.style.left=x+el.offsetWidth+"px";
				el.style.top=y+"px";
				nspeed=el.offsetWidth/frames;
			}
			
			mx[mal]=x;
			my[mal]=y;
			
			if(NS7 || IE5 || frames==0) {
				el.style.left=x+"px";el.style.top=y+"px";
			}
			
			if(!IE5)
				clipMenu(mal,el);
			
			el.style.visibility="visible";
			ma[mal]=id;
			
			if(NS7) {
				var p=event.target;
				if(p.nodeName!="A" && p.parentNode.nodeName=="A")
					p=p.parentNode;mc[mal]=p.style;
				el.onmouseout=tidyMenu;
			}
			else {
				mc[mal]=event.srcElement.style;
				if(mal>0){mc[mal].backgroundColor=bc;mc[mal].color=fc;
			}
		}
		
		mal++;
	}
}

function overMenu(x,y)
{
	x-=gx;
	y-=gy;
	for(i=0;i<mal;i++) {
		var el=document.getElementById(ma[i]);
		if(el.offsetLeft+el.offsetWidth > x  &&  el.offsetLeft <= x  &&  el.offsetTop+el.offsetHeight > y  &&  el.offsetTop <= y) 
		{
			return ma[i];
		}
	}
	return "";
}

function tidyMenu(e)
{
	if(NS4) return;
	if(NS7) {
		t=overMenu(e.pageX, e.pageY);
		if(t!=""  &&  (e.target.firstChild == e.relatedTarget  ||  e.target==e.relatedTarget.firstChild))
		return;
	}
	else 
		t=overMenu(event.clientX+document.body.scrollLeft-document.body.clientLeft, event.clientY+document.body.scrollTop-document.body.clientTop);
		
	om=0;
	for(i=0;i<mal;i++) {
		var mail=ma[i].length;
		if(mail>t.length  ||  t.substring(0,mail)!=ma[i]) {
			var el=document.getElementById(ma[i]);
			el.style.visibility="hidden";
			mc[i].backgroundColor="";
			mc[i].color="";
		}
		else {
			ma[om]=ma[i];
			mx[om]=mx[i];
			my[om]=my[i];
			om++;
		}
	}
	
	mal=om;
	if(mal==0 && psrc)
		psrc.src=pname;
}

function animate() 
{
	for(i=0;i<mal;i++) {
		var el=document.getElementById(ma[i]);
		if(el.style.visibility=="visible") {
			if(el.offsetLeft<mx[i])el.style.left=Math.min(el.offsetLeft+nspeed,mx[i])+"px";
			if(el.offsetLeft>mx[i])el.style.left=Math.max(el.offsetLeft-nspeed,mx[i])+"px";
			if(el.offsetTop<my[i])el.style.top=Math.min(el.offsetTop+nspeed,my[i])+"px";clipMenu(i,el);
		}
	}
	if(mal!=0 || frames!=0)
		setTimeout("animate()",50);
}

function clipMenu(i,el)
{
	if(el.offsetLeft>mx[i])
		el.style.clip="rect("+(my[i]-el.offsetTop)+"px "+(el.offsetWidth+(mx[i]-el.offsetLeft))+"px "+el.offsetHeight+"px "+0+"px)";
	else 
		el.style.clip="rect("+(my[i]-el.offsetTop)+"px "+el.offsetWidth+"px "+el.offsetHeight+"px "+(mx[i]-el.offsetLeft)+"px)";
}
