var timerlen = 5;
var slideAniLen = 300;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

var prevMenuID='';
var menuArray = new Array();
menuArray['refind'] = true;
menuArray['refhoriz'] = true;
menuArray['refprod'] = true;
function toggleMenu(currentMenuID)
{
	var h3 = $(currentMenuID).parentNode.getElementsByTagName('h3');
	var h3span = h3[0].getElementsByTagName('span');

	if (menuArray[currentMenuID])
	{

		$('refinemod').className=currentMenuID;
		$(currentMenuID).style.display = 'block';		
		$(currentMenuID).style.height = $(currentMenuID).offsetHeight;
		
		h3span[0].style.backgroundImage = "url('images/openedchev.gif')";
		
		if (prevMenuID != '')
		{
			//slideup(prevMenuID);
			var prevh3 = $(prevMenuID).parentNode.getElementsByTagName('h3');
			var prevh3span = prevh3[0].getElementsByTagName('span');
			if (parseInt($(prevMenuID).style.height) > 0)
			{
	        	endHeight[prevMenuID] = parseInt($(prevMenuID).style.height);
	        }
	        else
	        {
	        	endHeight[prevMenuID] = parseInt($(prevMenuID).offsetHeight);
	        }			
			$(prevMenuID).style.display = 'none';													
			$(prevMenuID).style.height = endHeight[prevMenuID]+'px';
			
			prevh3span[0].style.backgroundImage = "url('images/closedchev.gif')";						
		}
				
		menuArray[currentMenuID] = false;
		//alert($(currentMenuID).outerHTML);
		prevMenuID = currentMenuID;
		return false;
	}

	//don't do anything if prevmenu and currentmenu is the same menu
//	window.status = $(currentMenuID).offsetHeight;
	if (currentMenuID == prevMenuID) 
	{
		//toggle Slide
		  if(document.getElementById(currentMenuID).style.display == "none"){
		    // div is hidden, so let's slide down
			h3span[0].style.backgroundImage = "url('images/openedchev.gif')";		    
		    slidedown(currentMenuID);
		  }else{
		    // div is not hidden, so slide up				    
		    slideup(currentMenuID);
		    h3span[0].style.backgroundImage = "url('images/closedchev.gif')";	
		  }
		
		//toggleSlide(currentMenuID);
	}
	else
	{	
		if($(currentMenuID).style.display == "none")
		{
		    // div is hidden, so let's slide down
		    h3span[0].style.backgroundImage = "url('images/openedchev.gif')";		    
		    slidedown(currentMenuID);
		}
		
		if (prevMenuID != '')
		{
			var prevh3 = $(prevMenuID).parentNode.getElementsByTagName('h3');
			var prevh3span = prevh3[0].getElementsByTagName('span');
			slideup(prevMenuID);
			prevh3span[0].style.backgroundImage = "url('images/closedchev.gif')";
		}
	}	
	prevMenuID = currentMenuID;	
}

function slidedown(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display != "none")
                return; // cannot slide down something that is already visible

        moving[objname] = true;
        dir[objname] = "down";
        startslide(objname);
}

function slideup(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")
                return; // cannot slide up something that is already hidden

        moving[objname] = true;
        dir[objname] = "up";
        startslide(objname);
}

function startslide(objname){

        obj[objname] = document.getElementById(objname);

		if (parseInt(obj[objname].style.height) > 0)
		{
        	endHeight[objname] = parseInt(obj[objname].style.height);
        }
        else
        {
        	endHeight[objname] = parseInt(obj[objname].offsetHeight);
        }
        
        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "down"){
                obj[objname].style.height = "1px";
        }

        obj[objname].style.display = "block";

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){

        var elapsed = (new Date()).getTime() - startTime[objname];
        if (elapsed > slideAniLen)
                endSlide(objname)
        else {
                var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
                if(dir[objname] == "up")
                        d = endHeight[objname] - d;
                obj[objname].style.height = d + "px";
        }

        return;
}

function endSlide(objname){
        clearInterval(timerID[objname]);

        if(dir[objname] == "up")
                obj[objname].style.display = "none";

        obj[objname].style.height = endHeight[objname] + "px";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}

function toggleSlide(objname){
  if(document.getElementById(objname).style.display == "none"){
    // div is hidden, so let's slide down
    slidedown(objname);
  }else{
    // div is not hidden, so slide up
    slideup(objname);
  }
}