//This is the file that is responsible for sliding navigation items up and down.
//The function to call is toggleSlide(LayerName) where LayerName is the id of the layer you wish to show/hide
//The function automatically determines if the layer should slide up or down
//The first two variables below control the spead and framerate of the animation

var timerlen = 5;
var slideAniLen = 200;

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 lastobj=get_cookie("menu");
if(lastobj == null) lastobj = "";

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);
		obj[objname].style.display = "block";
		endHeight[objname] = parseInt(obj[objname].offsetHeight);
		obj[objname].style.display = "none";
		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 = "auto";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}

function toggleSlide(objname){
	return null;

  if(objname != lastobj){
    slidedown(objname);
    if(lastobj!="") slideup(lastobj);
    lastobj = objname;
    set_cookie_id(objname);
  }
  else{
    slideup(objname);
    lastobj = "";
     set_cookie_id("");
  }
}

function set_cookie_id(id){
 var expiry = new Date("January 1, 3000");
 expiry = expiry.toGMTString();
 document.cookie = "menu="+ id+";path=";
}

function get_cookie(name)
{
  var ca = document.cookie.split(';');
  var nameEQ = name + "=";
  for(var i=0; i < ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1, c.length); //delete spaces
    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
  return null;
}


