// ©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);

function startMainMenu(file,h,w,dir,space,align) {
    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 mainMenuItem1(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("openMenu1(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 openMenu1(event,id,pos,bc,fc) {
        gx=35;
        gy=0;  
    if(NS4)return;
    var el,x,y;
    if(gd==0) { 
        var p=document.getElementById(id);
        gx=35;
        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;
                        x-=6;
                        
                        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++;
    }
        gx=0;
        gy=0;    
}

function openMenu(event,id,pos,bc,fc) {
           gx=0;
        gy=0;
    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++;
    }
        gx=0;
        gy=0;    
}

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)";
}
