// Created by XaraMenu
// Modified to change d to xm_d and p to xm_p to avoid conflicts with other JS code (4/10/05)
// Modified to allow for "active" tabs (4/10/05)
// Modified to fix hover issues with Netscape and Firefox (4/10/05)
// Modified to allow for custom widths and offsets via OLP arrays (4/12/05)

var imageloc = '../800/';

if (pagewidth > 777) {imageloc = '../1024/1024_'; }

var ma=new Array();
var mx=new Array();
var my=new Array();
var mc=new Array();
var mpos=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 xm_d=document;
var NS7=(!xm_d.all&&xm_d.getElementById);var NS4=(!xm_d.getElementById);
var IE5=(!NS4&&!NS7&&(navigator.userAgent.indexOf('MSIE 5.0')!=-1||navigator.userAgent.indexOf('MSIE 5.2')!=-1));
var IE5p5=(!NS4&&!NS7&&navigator.userAgent.indexOf('MSIE 5.5')!=-1);
var NS6=(NS7&&navigator.userAgent.indexOf('Netscape6')!=-1);
var SAF=navigator.userAgent.indexOf('Safari')!=-1;
xm_p=navigator.userAgent.indexOf('Opera');
if(xm_p>-1){xm_p=navigator.userAgent.charAt(xm_p+6);if(xm_p>6)NS7=1;else NS4=1;}
var ifr=(!NS7&&!NS4&&!IE5&&!IE5p5);
var quirk=(xm_d.compatMode&&xm_d.compatMode=="BackCompat")||IE5||IE5p5;

function startMainMenu(file,h,w,dir,space,align){
	if(w>0)menuw=w;
	main=dir;
	if(main==1||main==2)xm_d.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)xm_d.write("<tr style='line-height:1px'><td"+al+">");
		xm_d.write("<img src=\""+imageloc+file+"\" border=\"0\"");
		if(h>0)xm_d.write(" height=\""+h+"\"");
		if(w>0)xm_d.write(" width=\""+w+"\"");
		xm_d.write(" />");
		if(main==1||main==2)xm_d.write("</td>");
		if(main==1)xm_d.write("</tr>");
		if(main==3)xm_d.write("<br />");
	}
}

function endMainMenu(file,h,w){
	if(file!=""){
		if(main==1)xm_d.write("<tr>");
		if(main==1||main==2)xm_d.write("<td"+al+">");
		xm_d.write("<img src=\""+imageloc+file+"\" border=\"0\"");
		if(h>0)xm_d.write(" height=\""+h+"\"");
		if(w>0)xm_d.write(" width=\""+w+"\"");
		xm_d.write(" />");
		if(main==1||main==2)xm_d.write("</td></tr>");
	}
	if(main==1||main==2)xm_d.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)xm_d.write("<tr>");
	if(main==1||main==2)xm_d.write("<td"+al+">");
	xm_d.write("<a ");
	if(url!=""||!isgraphic){
		if(typeof(clx)!="undefined"){
			url="?"+clx;tar="";
			alt="Click to edit";
		}
		xm_d.write("href=\""+url+"\" ");
	}
	if(tar!="")xm_d.write("target=\""+tar+"\" ");
	xm_d.write("onmouseout=\"");
	if(dir>0)xm_d.write("tidyMenu(event);");
	xm_d.write("\" onmouseover=\"");
	if(dir>0)xm_d.write("openMenu(event, '"+name+"',"+dir+","+bc+","+fc+");");
	if(state>1&&isgraphic){
		xm_d[name+"_over"]=new Image();
		xm_d[name+"_over"].src=imageloc+name+"_over"+ext;
		xm_d.write("setGraphic(event, '"+imageloc+name+"_over"+ext+"');");
		if (state > 2) { name = name + '_active'; }
	}
	xm_d.write("return false;\"");
	if(!isgraphic)xm_d.write(" class=\""+s+"\" style=\"width:"+(w>0?w:menuw)+"px\"");
	xm_d.write(">");
	if(isgraphic){
		xm_d.write("<img src=\""+imageloc+name+ext+"\" border=\"0\"");
		if(h>0)xm_d.write(" height=\""+h+"\"");
		if(w>0)xm_d.write(" width=\""+w+"\"");
		if(alt!="")xm_d.write(" alt=\""+alt+"\"");
		xm_d.write(" />");
	}else{
		xm_d.write("&nbsp;"+ext+"&nbsp;");
	}
	xm_d.write("</a>");
	if(main==1||main==2)xm_d.write("</td>");
	if(main==1)xm_d.write("</tr>");
	if(main==3)xm_d.write("<br />");
}

function startSubmenu(name,style,sw){
	var depth=name.split("_").length+1000;
	if(NS4)return;
	if(sw>0)menuw=sw;
	
	// Need number for menu offset and width arrays	
	var menunum = name.substring(name.length - 2);
	if (menunum.substring(0,1) == 'c') { menunum = name.substring(name.length - 1); }
		
	// Manual tweaks for dropdown width 
	if (tabsub_ar[menunum] !=0) { menuw=tabsub_ar[menunum]; }

	xm_d.write("<div id=\""+name+"\" class=\""+style+"\"  style=\"z-index:"+depth+";width:"+(menuw+(NS7?bd*2:0))+"px\">");
}

function endSubmenu(name){
	if(NS4)return;
	xm_d.write("</div>");
	if(!NS7)xm_d.getElementById(name).onmouseout=tidyMenu;
}

function submenuItem(text,url,tar,s){
	if(NS4)return;
	if(text.charAt(0)=='<') {
		xm_d.write(text);
	} else {
		if(text=="---") {
			xm_d.write("<div class=\""+s+"\" style=\"width:"+menuw+"px\"><center><img src=\"../images/blank.gif\" height=\"8\" width=\""+(menuw-6-(2*bd))+"\" border=0/></center></div>");
		} else {
			xm_d.write("<a ");
			if(url!="")xm_d.write("href=\""+url+"\" ");
			if(tar!="")xm_d.write("target=\""+tar+"\" ");
			xm_d.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,dx,dy;

	// Need number for menu offset and width arrays	
	var menunum = id.substring(id.length - 2);
	if (menunum.substring(0,1) == 'c') { menunum = id.substring(id.length - 1); }
	
	var bwidth;
	if(gd==0||mal==0){
		var xm_p=xm_d.getElementById(id);
		gx=0;gy=0;
		while(xm_p&&xm_p.offsetParent){
			xm_p=xm_p.offsetParent;
			gx+=xm_p.offsetLeft;
			gy+=xm_p.offsetTop;
		}
		if(xm_p)gd=1;
	}
		
	if(mal>0){
		el=xm_d.getElementById(ma[mal-1]);
		if(mx[mal-1]!=el.offsetLeft||my[mal-1]!=el.offsetTop){
			el.style.left=mx[mal-1]+"px";
			el.style.top=my[mal-1]+"px";
		}
		tidyMenu(event);
	}
	if(mal>1)pos=mpos[mal-1];
	if(NS7){
		bwidth=window.innerWidth;
		var xm_p=event.target;
		if(xm_p.nodeName!="A"&&xm_p.nodeName!="IMG"&&xm_p.parentNode.nodeName=="A")xm_p=xm_p.parentNode;
		dx=xm_p.offsetWidth;
		dy=xm_p.offsetHeight;
		if(mal==0){
			x=xm_p.x;
			y=xm_p.y;
			if(typeof(xm_p.x)=="undefined"||(!NS6&&!SAF)){
				x=xm_p.offsetLeft;
				y=xm_p.offsetTop;
				while(!NS6&&xm_p.parentNode.nodeName!="BODY"){
					xm_p=xm_p.parentNode;
					if(xm_p.nodeName=="TD"||xm_p.nodeName=="TABLE"){
						x+=xm_p.offsetLeft;
						y+=xm_p.offsetTop;
					}
				}
			}
		} else {
			el=xm_d.getElementById(ma[mal-1]);
			
			x=el.offsetLeft-4; // Added -4 to avoid hover problems in Firefox/Netscape
			// Special cases fixes for hover problems with Firefox/Netscape
			// Adjust for any menus that pop up to the left instead of the right
			//if (id=='xm_c2_1') { x=el.offsetLeft+4; } 
			
			y=el.offsetTop+xm_p.offsetTop;
			//if(NS6)y=xm_p.offsetTop; // Added to solve Netscape 6 bug
		}
		if(pos!=3)x-=bd;
		if(pos==3&&mal>0)x+=bd;
	} else { 
		bwidth=document.body.clientWidth;
		
		// Note: added offset array calculation
		x=event.clientX-event.offsetX-xm_d.body.clientLeft-gx-tabsuboffset_ar[menunum];
		
		y=event.clientY-event.offsetY-xm_d.body.clientTop-gy;
		dx=event.srcElement.offsetWidth;
		dy=event.srcElement.offsetHeight;
		if(!quirk){
			x+=xm_d.documentElement.scrollLeft-2;
			y+=xm_d.documentElement.scrollTop-2;
		} else { 
			x+=xm_d.body.scrollLeft;
			y+=xm_d.body.scrollTop;
		}
		if(mal>0){
			y-=bd;
			if(pos!=3)x-=2*bd;
		}
	}
	el=xm_d.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;
			if(x+gx+el.offsetWidth>bwidth){
				x-=dx;
				pos=3;
			}
		} 
		if(pos==2){
			y+=dy;
			el.style.left=x+"px";
			el.style.top=y-el.offsetHeight+"px";
			nspeed=el.offsetHeight/frames;
		}
		if(pos==3){
			x-=el.offsetWidth;
			el.style.left=x+el.offsetWidth+"px";
			el.style.top=y+"px";
			nspeed=el.offsetWidth/frames;
			if(x+gx<0){
				x+=el.offsetWidth;
				pos=1;
				x+=dx;
				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;
		mpos[mal]=pos;
		if(NS7){
			var xm_p=event.target;
			if(xm_p.nodeName!="A"&&xm_p.parentNode.nodeName=="A")xm_p=xm_p.parentNode;
			mc[mal]=xm_p.style;
			if(!NS6&&mal>0){
				mc[mal].backgroundColor="#"+bc.toString(16);
				mc[mal].color="#"+fc.toString(16);
			}
			el.onmouseout=tidyMenu;
		} else { 
			mc[mal]=event.srcElement.style;
			if(mal>0){
				mc[mal].backgroundColor=bc;
				mc[mal].color=fc;
			}
		}
		mal++;
	}
	if(ifr&&el&&frames==0&&(typeof(tr)=="undefined"||tr=="")){
		var xm_p=xm_d.getElementById(id+"i");
		if(xm_p){
			xm_p.style.top=y+"px";
			xm_p.style.left=x+"px";
			xm_p.style.width=el.style.width;
			xm_p.style.height=el.offsetHeight+"px";
			xm_p.style.display="block";
		} else {
			ifr="<iframe id=\""+id+"i\" style=\"position:absolute;left:"+x+"px;width:"+el.style.width+";height:"+el.offsetHeight+"px;top:"+y+"px;z-index:998;display:block;\" scrolling=\"no\" frameborder=\"0\"></iframe>";
			el.insertAdjacentHTML('beforeBegin',ifr);
		}
	}
}

function overMenu(x,y){
	x-=gx;
	y-=gy;
	for(i=mal-1;i>=0;i--){
		var el=xm_d.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 {
		var x=event.clientX-xm_d.body.clientLeft;
		var y=event.clientY-xm_d.body.clientTop;
		if(!quirk){
			x+=xm_d.documentElement.scrollLeft-2;
			y+=xm_d.documentElement.scrollTop-2;
		} else { 
			x+=xm_d.body.scrollLeft;
			y+=xm_d.body.scrollTop;
		}
		t=overMenu(x,y);
	}
	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=xm_d.getElementById(ma[i]);
			el.style.visibility="hidden";
			mc[i].backgroundColor="";
			mc[i].color="";
			if(ifr){
				var xm_p=xm_d.getElementById(ma[i]+"i");
				if(xm_p)xm_p.style.display="none";
			}
		} 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=xm_d.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)";
}
