
// This is for building the accordian sidebar and it's functionality

// variable for building the side bar
var path;

// variables for sidebar functionality
var timeID;
var boxHeight = 310;	// If you change this variable you must also change it in leftsidebar.php line 22 or it will load incorrectly
var intervalClose;
var intervalShow;
var speed = 10;
var dist = 20;
var cutoff = 0;
var pause = 300;
var closingHeight;
var openingHeight = 0;
var done = true;

var liArr = new Array();
var divArr = new Array();
var myDiv;
var myLi;


function start(){
	var hiddenDivPath = document.getElementById('hide');
	path = hiddenDivPath.className;
	sidebarAttributeSetup();
}


if(navigator.appName.indexOf("Microsoft Internet Explorer") != -1)
	window.attachEvent("onload", start);
else
	window.addEventListener("load", start, false);

/*
	function that initializes all the variables for the open close, attributes of the sidebar
*/
function sidebarAttributeSetup(){
	var div = document.getElementsByTagName('div');
	var li = document.getElementsByTagName('li');
	var x = 0;
	// populating the arrays with the right elements ie.. the elements in the accordian sidebar
	for(var i = 0; i < div.length; i++){
		if(containsClassName(div[i].className, 'hidden')){
			divArr[x] = div[i];
			x++;
		}
	}
	x=0;
	for(var i = 0; i < li.length; i++){
		if(li[i].className == 'drawer' || li[i].className == 'selected'){
			liArr[x] = li[i];
			x++;
		}
	}
	x=0;

	timeID = new Array();
	
	/*for(var i = 0; i < divArr.length; i++){
		if(containsClassName(divArr[i].className, path)){
			liArr[i].className = 'selected';
			divArr[i].style.height = boxHeight + "px";
		}
	}*/
	
}

/*
	containsClassName: Breaks the paramaters up by white space and checks to see if 
	any token from stringTwo can be found in String One.
	@param arg1: class name of tag
	@param arg2: class name we're checking for
*/
function containsClassName(stringOne, stringTwo){
	var stringArray = stringOne.split(" ");
	var stringArrayTwo = stringTwo.split(" ");
	for(var i = 0; i < stringArray.length; i++){
		for(var x = 0; x < stringArrayTwo.length; x++){
			if(stringArray[i] == stringArrayTwo[x]){
				return true;
			}
		}
	}
	return false;
}

function begin(divID){
	myDiv = document.getElementById(divID);
	if(myDiv.style.height != (boxHeight + "px") && done)
		timeID[divID] = setTimeout (function() {toggle(divID);}, pause);
}

function toggle(divID){
if(done == true){
	done = false;
	myLi = document.getElementById(divID + 'li');
	var closeDivArr = new Array();
	var x = 0;
	
	myLi.className = 'selected';
	
	
	for(var i = 0; i < liArr.length; i++){
		if(liArr[i] != myLi){
			liArr[i].className = 'drawer';
		}
	}
	for(var i = 0; i < divArr.length; i++){
		if(myDiv != divArr[i]){
			if (divArr[i].style.height != 0 + "px"){
				closeDivArr[x] = divArr[i].id;
				x++;
			}
		}
	}
	show(divID, closeDivArr);
}
}

function stopit(divID){
	clearTimeout(timeID[divID]);
}

function show(divID, closeDivArr){
	var temp = document.getElementById(divID);
	openingHeight = temp.offsetHeight;
	if(openingHeight < boxHeight){
		intervalShow = setInterval(function() {openDiv(divID, closeDivArr)}, speed);
	}
}

function openDiv(divID, closeDivArr){
	for(var i = 0; i < closeDivArr.length; i++){
		if(closeDivArr[i] != null){
			closeDiv(closeDivArr[i]);
		}
	}
	var openingDiv = document.getElementById(divID);
	openingHeight += dist;
	openingDiv.style.height = openingHeight + "px";
	if(openingHeight >= boxHeight){
		clearInterval(intervalShow);
		done = true;
		openingDiv.style.height = boxHeight + "px";
	}
}

function closeDiv(divID){
	var closingDiv = document.getElementById(divID);
	closingHeight = closingDiv.offsetHeight;
	if(closingHeight > cutoff){
		closingHeight -= dist;
		if(closingHeight > 0)
			closingDiv.style.height = closingHeight + "px";
		else
			closingDiv.style.height = cutoff + "px";
	}
}

function toggleSimple(div_id){
	var hidden = document.getElementById(div_id);
	if(hidden){
		if(hidden.className == "no_see"){
			hidden.className = "";
		}
		else if(hidden.className == ""){
			hidden.className = "no_see";
		}
	}
}