// http://www.harrymaugans.com/2007/03/06/how-to-create-an-animated-sliding-collapsible-div-with-javascript-and-css/

var timerlen = 5;
var slideAniLen = 750;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

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);

        endHeight[objname] = parseInt(obj[objname].style.height);
        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";  - original code
		obj[objname].style.height = endHeight[objname] + "%";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}

// http://www.harrymaugans.com/2007/03/24/one-click-toggle-for-sliding-animated-div/

function toggleSlide(objname){
	var button = objname + "Button";
	var content = objname + "Content";
  if(document.getElementById(content).style.display == "none"){
    // div is hidden, so let's slide down
    slidedown(content);
	document.getElementById(button).value=" Hide ";
  }else{
    // div is not hidden, so slide up
    slideup(content);
	document.getElementById(button).value=" Click Here ";
  }
}

// Function used internally by the toggleSlideCushion function below
function toggleSlideCushionInsert(chosen){
	var i=2;
	while (i<=12) {
		if (chosen == i) {
			document.getElementById(i + "SeatButton").style.display = "none";
		} else {
			if (document.getElementById(i + "SeatButton")) {
				document.getElementById(i + "SeatButton").style.display = "block";
				slideup(i + "SeatContent");
			}
		}
		i++;
		i++;
	}		
}

// Function to slide up and down the various cushion options and to hide the "Click Here" buttons when visible
function toggleSlideCushion(objname){
	var button = objname + "SeatButton";
	var content = objname + "SeatContent";
	if(document.getElementById(content).style.display == "none"){
		// div is hidden, so let's slide down
		slidedown(content);
		document.getElementById(button).style.display = "none";
		toggleSlideCushionInsert(objname);
		document.getElementById("noOfSeats").innerHTML  = objname;
	} else {
		// div is not hidden, so slide up
		toggleSlideCushionInsert(objname);
		document.getElementById("noOfSeats").innerHTML  = objname;
	}
}

// Function to slide up and down the various accessories and to hide the "Click Here" buttons when visible
function toggleSlideAcc(objname){
	var button = objname + "Button";
	var content = objname + "Content";
	if (objname == "parasols") {
		slidedown(content);
		document.getElementById('parasolsCell').height = 70;
		document.getElementById(button).style.display = "none";
	} else if (document.getElementById("parasolsButton")) {
		document.getElementById("parasolsButton").style.display = "block";
		document.getElementById('parasolsCell').height = 93;
		slideup ("parasolsContent");
	}
	
	if (objname == "parasol-bases") {
		slidedown(content);
		document.getElementById('parasol-basesCell').height = 30;
		document.getElementById(button).style.display = "none";
	} else if (document.getElementById("parasol-basesButton")) {
		document.getElementById("parasol-basesButton").style.display = "block";
		document.getElementById('parasol-basesCell').height = 70;
		slideup ("parasol-basesContent");
	}
	
	if (objname == "lazy-susans") {
		slidedown(content);
		document.getElementById('lazy-susansCell').height = 30;
		document.getElementById(button).style.display = "none";
	} else if (document.getElementById("lazy-susansButton")) {
		document.getElementById("lazy-susansButton").style.display = "block";
		document.getElementById('lazy-susansCell').height = 70;
		slideup ("lazy-susansContent");
	}
	
	if (objname == "teak-care") {
		slidedown(content);
		document.getElementById('teak-careCell').height = 30;
		document.getElementById(button).style.display = "none";
	} else if (document.getElementById("teak-careButton")) {
		document.getElementById("teak-careButton").style.display = "block";
		document.getElementById('teak-careCell').height = 70;
		slideup ("teak-careContent");
	}
}
