﻿/* ================================================================ 
This copyright notice must be untouched at all times.

The original version of this scriptt and the associated (x)html
is available at http://www.stunicholls.com/menu/pro_slidedrop_1.html
Copyright (c) 2005-2008 Stu Nicholls. All rights reserved.
This script and the associated (x)html may be modified in any 
way to fit your requirements.
=================================================================== */
var getEls = new Array();
var getListElts = new Array();
var offsetHeights = new Array();
getEls[0] = document.getElementById('li_1');
getEls[1] = document.getElementById('li_2');
getEls[2] = document.getElementById('li_3');
getEls[3] = document.getElementById('li_4');
getEls[4] = document.getElementById('li_5');
getEls[5] = document.getElementById('li_6');

getListElts[0] = document.getElementById('ul_1');
getListElts[1] = document.getElementById('ul_2');
getListElts[2] = document.getElementById('ul_3');
getListElts[3] = document.getElementById('ul_4');
getListElts[4] = document.getElementById('ul_5');
getListElts[5] = document.getElementById('ul_6');

offsetHeights[0] = 120;
offsetHeights[1] = 188;
offsetHeights[2] = 100;
offsetHeights[3] = 188;
offsetHeights[4] = 100;
offsetHeights[5] = 188;


var getAgn = getEls;

var eNextOH = 0;

function doDropDown(menuEl)
{
	for (var z=0; z<getAgn.length; z++)
	{
		if (menuEl.id != getAgn[z].id)
		{
		    getAgn[z].className="";
		}
		else
		{
		    eNextOH = offsetHeights[z];
		}
	}
	if (menuEl.className == "")
	{
	    menuEl.className = 'clicked';
	}
	ulId = menuEl.id.replace("li", "ul");
	eLeft = menuEl.offsetLeft;

	document.getElementById(ulId).style.left = eLeft + "px";

    if (menuEl.className=='clicked')
    {
    slideOut();
    menuEl.className="shrink";
    }
    else
    {
        contractOnce (eNextOH,-1,ulId)
        menuEl.className="";
    }

    slideIn();
}

function expand(cY, fY, subY)
{
    cY=cY+2;
    if (cY <= fY)
    {
        document.getElementById(subY).style.height = cY + "px";
        setTimeout ("expand("+cY+","+fY+",'"+subY+"')", 10);
    }
    slideIn();
}

function contract(cZ, fZ, subZ)
{
    cZ=cZ-4;
    if (cZ >= fZ)
    {
        document.getElementById(subZ).style.height = cZ + "px";
        setTimeout ("contract("+cZ+","+fZ+",'"+subZ+"')", 10);
    }
    slideOut();
}

function contractOnce(cW, fW, subW)
{
    cW=cW-4;
    if (cW >= fW)
    {
        document.getElementById(subW).style.height = cW + "px";
        setTimeout("contractOnce("+cW+","+fW+",'"+subW+"')", 10);
    }
}

function slideOut()
{
	startPos = parseInt(document.getElementById(ulId).offsetHeight);
	if (startPos == 0)
	{
	    expand (0,eNextOH+1,ulId)
	}
}
function slideIn()
{
    for (var t=0; t<getListElts.length; t++)
    {
        if (ulId != getListElts[t].id && getListElts[t].style.height > 0 + "px")
        {
            currentHeightt = parseInt(getListElts[t].style.height);
            eNextt = document.getElementById(getListElts[t].id).firstChild;
            while (eNextt.nodeType!=1) {eNextt = eNextt.nextSibling;}
            if (currentHeightt == parseInt(eNextt.offsetHeight))
            {
                thisSubt = getListElts[t].id;
                contract (currentHeightt,-1,thisSubt);
            }
	    }
    }
}

