  function ToggleSection(divID, linkElement, toggle, addLineSpacing) {
     if(document.getElementById(divID).style.display != 'none') {
        document.getElementById(divID).style.display = 'none';
        linkElement.innerHTML = '...' + (addLineSpacing ? '' : '<br /><br />');
        linkElement.style.fontWeight = 700;
        linkElement.title = 'This section is hidden;  click to restore it';
     } else {
        document.getElementById(divID).style.display = 'block';
        linkElement.innerHTML = '[hide]';
        linkElement.style.fontWeight = 100;
        linkElement.title = 'Click to hide this list';
     }

     if(toggle == 1)
        CreateCookie(divID, document.getElementById(divID).style.display, 365);
  }

function SetSidebarState() {
	SetListDisplayState('categoryList', 'categoryToggler');
	SetListDisplayState('archiveList', 'archiveToggler');
	SetListDisplayState('metaLinkList', 'metaLinkToggler');
	SetListDisplayState('tagCloud', 'tagCloudToggler');

	if(1 == 2) {
		var foldableCategories = new Array(2);
		foldableCategories[0] = "Gear";
		foldableCategories[1] = "Genre";
		foldableCategories[2] = "Tip";
		
		var allListItems = document.getElementsByTagName("li");
		for(var i = 0; i < allListItems.length; i++)
			for(var a = 0; a < foldableCategories.length; a++)
				if(allListItems[i].className.indexOf("cat-item") > -1)
					if(allListItems[i].childNodes[0].innerHTML != null)
						if(allListItems[i].childNodes[0].innerHTML.indexOf(foldableCategories[a]) > -1) {
							var span = document.createElement("span")
							var text = document.createTextNode(" [hide]");
							span.appendChild(text);
							span.className = "toggler";
							span.setAttribute("onClick", "ToggleSection(cat_" + foldableCategories[a].replace(' ', '_') + ", this, 1);");
							allListItems[i].insertBefore(span, allListItems[i].childNodes[1]);
						}

	}
	
	HighlightUsedCategories();
	SetTrackbackVisibility();
}

function SetListDisplayState(cookieName, listElementID) {
	var cv = ReadCookie(cookieName);
	if(cv != "" && cv != null && cv != document.getElementById(cookieName).style.display)
		ToggleSection(cookieName, document.getElementById(listElementID))
}


function HighlightUsedCategories() {
	var temp = "";
	var allSpans = document.getElementsByTagName("span");

	for(var i = 0; i < allSpans.length; i++)
		if(allSpans[i].className == "postmetadata") {
			var catLinks = allSpans[i].getElementsByTagName("a");
			for(var a = 0; a < catLinks.length; a++)
				if(catLinks[a].innerHTML)
					temp += catLinks[a].innerHTML + ", ";
		}

	// Now update the tree
	var catLinks2 = document.getElementById("categoryList").getElementsByTagName("a");
	for(var b = 0; b < catLinks2.length; b++)
		if(temp.indexOf(catLinks2[b].innerHTML) > -1) {
			//if(document.location != "http://blog.forrestcroce.com/")
				catLinks2[b].className = "selectedCategory";
			//else
				catLinks2[b].style.color = "purple";
		}
}

function SetTrackbackVisibility() {
	var trackbacks = document.getElementById("trackbackList");
	if(trackbacks)
		if(trackbacks.childNodes.length > 1)
			document.getElementById("trackbackComments").style.display = "block";
		else
			document.getElementById("trackbackComments").style.display = "none";
}

  function ReadCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
  }

  function CreateCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
  }
