//free JavaScripts on http://www.ScriptBreaker.com

var open_close = true // true or false, false = close the previous item_panel first when opening a new one 

var height = 20; // height of the menu headers
var iheight = 15; // height of the menu_items

var bgc = "#FFFFff" // background color of the item
var tc = "#996699" // text color of the item

var over_bgc = "#CCCCCC";
var over_tc = "#FFFFFF";

var subover_bgc = "#CCCCCC";  // 4 new variables to handle the colour of the submenu items
var subover_tc = "#FFFFFF";
var subbgc = "#FFFFFF" ;
var subtc = "#996699" ;

var speed = 0; // time between changing heigth of the item_panel
var steps = 5; // changing heigth in steps of
var timerID = "";
var N = (document.all) ? 0 : 1;
var width = 170


var self_menu = new Array();
function write_menu()
{
    smc = 0; // count the position of the self_menu
    document.write("<div style='position:absolute'>");
    mn = 0;//default 0
    mni = 1; //default 1
    start = -1;//default -1

    for(i=0;i<Link.length;i++)
    {
        la = Link[i].split("|");

        if (la[0] == "0")
        {
            if(start == 0) 
            {
                document.write("</div>");
                h =  csmc * iheight;
                tmn = mn;
                self_menu[smc] = new Array(tmn,h,0,-2);
                smc++;
                mn--;
            }
            csmc = 0;
            document.write("<div class='menu' style='top:"+mn+";height:"+height+"' id='down"+smc+"' onclick='prepare("+smc+","+mni+")'>&nbsp;"+la[1] + "</div>");
            self_menu[smc] = new Array(mn,height,0,mni);
            smc++;
            mni++;
            mn+=height;
            start = 1;
        }
        else if (la[0] == "1")
        {
            if(start == 1) 
            {
                if(N)mn+=2;
                document.write("<div class='item_panel' id='down"+smc+"' style='top:"+mn+"'>");
                start = 0;
            }

            document.write("<a href='"+la[2]+"'");
            if (la[3] != "") document.write(" target='" + la[3] + "' ");
            document.write("><div class='item' id='d"+i+"' style='height:"+iheight);
            if (N) document.write(";width:168");
            document.write("' onmouseover='color(this.id)' onmouseout='uncolor(this.id)'>&nbsp;&nbsp;"+ la[1] + "</div></a>");
            csmc++;
        }


        // New script to add third level of menu (Added by Lee)
        else if (la[0] == "2")
        {
            if(start == 1) 
            {
                if(N)mn+=2;
                document.write("<div class='item_panel' id='down"+smc+"' style='top:"+mn+"'>");
                start = 0;
            }

            document.write("<a href='"+la[2]+"'");
            if (la[3] != "") document.write(" target='" + la[3] + "' ");
            document.write("><div class='subitem' id='d"+i+"' style='height:"+iheight);
            if (N) document.write(";width:168");
            document.write("' onmouseover='colorsub(this.id)' onmouseout='uncolorsub(this.id)'>&nbsp;&nbsp;"+'&nbsp;&nbsp;&nbsp;&nbsp;-'+ la[1] + "</div></a>");
            csmc++;
        }
    }
    if (start == 0) 
    {
        document.write("</div>");
        h =  csmc * iheight;
        tmn = mn + 5; 
        self_menu[smc] = new Array(tmn,h,0,-2);
        name = "down" + (self_menu.length-1);
        obj = document.getElementById(name);
        obj.style.borderBottomColor = "green";
        obj.style.borderBottomWidth = 1;
        obj.style.borderBottomStyle = "solid";
    }
    document.write("</div>");
}


function color(obj)
{
    document.getElementById(obj).style.backgroundColor = over_bgc;
    document.getElementById(obj).style.color = over_tc
}

function uncolor(obj)
{
    document.getElementById(obj).style.backgroundColor = bgc;
    document.getElementById(obj).style.color = tc
}

//New functions added by Lee to colour the new sub menus
function colorsub(obj)
{
    document.getElementById(obj).style.backgroundColor = subover_bgc;
    document.getElementById(obj).style.color = subover_tc
}

function uncolorsub(obj)
{
    document.getElementById(obj).style.backgroundColor = subbgc;
    document.getElementById(obj).style.color = subtc
}

var prevnr = -1;
var prevc = -1;
var vprepare = "stop";
var step = 0;
function prepare(nr,c)
{
    if (open_close)
    {
        if(prevnr == -1)
        {
            if(self_menu[nr+1][2] == 0)
            {
                prevnr = nr;
                prevc = c;
            }
            else
            {
                prevnr = -1;
                prevc = -1;
            }
            step = 0;
            pull_down(nr,c);
        }
        else
        {
            if((step == 0) && (prevnr != -1))
            {
                if (self_menu[nr+1][2] == 1)
                {
                    step = 0;
                    prevnr = -1;
                    prevc = -1;
                    pull_down(nr,c);
                }
                else
                {
                    step = 1;
                    pull_down(prevnr,prevc);
                    prevnr = nr;
                    prevc = c;
                }
            }
            else
            {
                step = 0;
                pull_down(prevnr,prevc);
            }
            }}
            else {pull_down(nr,c);vprepare = "stop"}
        }

        function end_prepare()
        {
            if (step == 1) prepare();
            else {if (timerID != "") clearTimeout(timerID);}
        }

        function pull_down(nr,c)
        {
            if (timerID == "")
            {
                to = self_menu[nr+1][1]
                begin = nr + 2;
                if (timerID != "") clearTimeout(timerID);
                if (self_menu[nr+1][2] == 0)
                {
                    self_menu[nr+1][2] = 1;
                    if(nr == self_menu.length-2) {to++;}
                    epull_down(begin,to,0);
                }
                else
                {
                    to = 0;
                    self_menu[nr+1][2] = 0;
                    name = "down"+(nr+2);
                    open_item = 0;
                    for(i=0;i<nr;i++)
                    {
                        if(self_menu[i][2] == 1) 
                        {open_item += self_menu[i][1];
                        }
                    }
                    if (N == false) {open_item-= (c*1)};
                    if (nr== self_menu.length-2) {val = self_menu[self_menu.length-1][1];to=-1;}
                    else  val = parseInt(document.getElementById(name).style.top) -(open_item)-(c*height);
                    epull_up(begin,to,val);
                }
            }
        }

        function epull_down(nr,to,nowv)
        {
            if((nowv + steps) >= to) {vsteps = to - nowv;}
            else {vsteps = steps;}
            name = "down" + (nr-1);
            obj = document.getElementById(name).style.clip = "rect(0,"+width+","+(nowv+vsteps)+",0)";
            for (i=nr;i<self_menu.length;i++)
            {
                name = "down" + i;
                obj = document.getElementById(name);
                obj.style.top = parseInt(obj.style.top)+vsteps;
            }
            nowv+=vsteps;
            if(nowv < to) timerID = setTimeout("epull_down("+nr+","+to+","+nowv+")",speed);
            else {timerID = "";if(startid != "stop") open_all(); else end_prepare()}
        }

        function epull_up(nr,to,nowv)
        {
            if((nowv-steps) <= to) {vsteps = nowv-to;nowv = 0;if(to == -1) vstep = nowv}
            else {vsteps = steps;}
            name = "down" + (nr-1);
            obj = document.getElementById(name).style.clip = "rect(0,"+width+","+nowv+",0)";
            for (i=nr;i<self_menu.length;i++)
            {
                name = "down" + i;
                obj = document.getElementById(name);
                obj.style.top = parseInt(obj.style.top)-vsteps;
            }
            nowv-=vsteps;
            if(nowv > to) timerID = setTimeout("epull_up("+nr+","+to+","+nowv+")",speed);
            else {timerID = "";end_prepare();}
        }

        var lb = new Array();

        function startup(nr)
        {
            write_menu();
            if(nr)
            {
                if(((nr.indexOf("|") != -1) || (nr.indexOf("all") != -1)) && (open_close == true)) alert("Error: the open_close property can only be used with a maximum of 1 default item.");
                if (nr == "all")
                {
                    j = 0;
                    for(i=0;i<self_menu.length;i++)
                    {
                        if(self_menu[i][3] != -2) {lb[j] = self_menu[i][3];j++;}
                    }
                }
                else
                {
                    lb = nr.split("|");
                }
                open_all();
            }
            else startid = "stop";
        }
        //free JavaScripts on http://www.ScriptBreaker.com
        var startid = 0;
        var open_part = 0;


        function open_all()
        {
            startid = lb[open_part];
            for(i=0;i<self_menu.length;i++)
            {
                if(self_menu[i][3] == startid) 
                {
                    prevnr = i;
                    prevc = startid;
                    pull_down(i,startid);
                    i==self_menu.length;
                    open_part++;}
                }
                if(open_part == lb.length) startid = "stop";

            }


