
























function toggledisplay(id,action,override)
{
var output=document.getElementById("output");
var div=document.getElementById(id);
var sign=document.getElementById(id+"sign");
if (typeof override == 'undefined')
	override = true;


if (div) 
	if (sign) 
	{
		if (!(sign.innerHTML.indexOf('*')==-1))
		{
//			output.innerHTML = output.innerHTML + "FOUND OPEN for " + id + "<br>";
			
			if (override == false)
			{ // Expandinging the list
//				output.innerHTML = output.innerHTML + "FOUND override == falsefor " + id + "<br>";
				sign.innerHTML = "(+)";
			}
		}
		else
		if (typeof action != 'undefined') 
			if (action.length>0)
				sign.innerHTML = action;
		
		if (sign.innerHTML.indexOf('+')==-1)
		{ // Collapsing the list
			sign.innerHTML = "(+)";
			sign.alt = "Expand";
			div.style.display = "none";
//			toggleChildren(id,'-');
		}
		else
		{ // Expandinging the list
			sign.innerHTML = "(-)";
			sign.alt = "Colapse";
			div.style.display = "";
		}
	}
}

function toggledisplayicons(id,action,icon1,icon2)
{
var div=document.getElementById(id);
var sign=document.getElementById(id+"sign");

if (div) 
	if (sign) 
	{
		if (action.length<1) //Passed in action is blank so read the signs to determine how to toggle
		{
			if (sign.src.indexOf(icon2)==-1) // Then it contains Icon1
				action = '-';
			else
				action = '+';
		}
		
		if (action.indexOf('+')==-1)
		{ // Collapsing the list
			sign.src = "/Templates/SUNY/graphics/icons/"+icon2;
			sign.alt = "Expand";
			div.style.display = "none";
		}
		else
		{ // Expandinging the list
			sign.src = "/Templates/SUNY/graphics/icons/"+icon1;
			sign.alt = "Colapse";
			div.style.display = "";
		}
	}
}




function toggleChildren(id,action,override)
{
//var output=document.getElementById("OUTPUT");
var div=document.getElementById(id);
var nodetype = 1;
var tagname = 'DIV';
var localaction = "";
if (typeof action != 'undefined')
	localaction = action;
if (typeof override == 'undefined')
	override = true;

if (div) 
	if (div.childNodes.length > 0)
		for (var i = 0; i < div.childNodes.length; i++) 
			if (div.childNodes[i].nodeType==nodetype)
				if (div.childNodes[i].nodeName==tagname)
				{
					toggledisplay(div.childNodes[i].id,localaction,override)
					toggleChildren(div.childNodes[i].id,localaction,override)
				}
}


function toggleChildrenicons(id,action,icon1,icon2)
{
var div=document.getElementById(id);
var nodetype = 1;
var tagname = 'DIV';
if (div) 
	if (div.childNodes.length > 0)
		for (var i = 0; i < div.childNodes.length; i++) 
			if (div.childNodes[i].nodeType==nodetype)
				if (div.childNodes[i].nodeName==tagname)
				{
					toggledisplayicons(div.childNodes[i].id,action,icon1,icon2)
					toggleChildrenicons(div.childNodes[i].id,action,icon1,icon2)
				}
}


// This function appends and entry to a list using the "," delimiter
function addToList(list,value)

{ 
	if (value.length > 0)
		if (list.length > 0) 
			return list+','+value;
		else
			return value;
	else
		return list;
}




function readCookies(id)
{
//	var output=document.getElementById("OUTPUT");
	var idx = document.URL.indexOf('?');

	var ca = document.cookie.split('; ');

	if (!document.cookie)
	  if (idx != -1) 
	    ca = document.URL.substring(idx+1,document.URL.length).split('&');
	var foundcookie = false;
	date = new Date();
	date.setTime(date.getTime()+(7*24*60*60*1000));


	for (var i = 0; i < ca.length;i++)
	{
		var c = ca[i];
		if (c.indexOf(id) == 0)
		{
			foundcookie = true;
			toggleChildren(id,'-',true);
			var idsToExpand = c.substring(c.indexOf('=')+1).split(',');
			for (var j = 0; j < idsToExpand.length;j++)
				toggledisplay(idsToExpand[j],'+');
		}
			
	}
	return foundcookie;
}

function readCookiesicons(id,icon1,icon2)
{
//	var output=document.getElementById("OUTPUT");
	var ca = document.cookie.split('; ');
	date = new Date();
	date.setTime(date.getTime()+(7*24*60*60*1000));

	for (var i = 0; i < ca.length;i++)
	{
		var c = ca[i];
		if (c.indexOf(id) == 0)
		{
			var idsToExpand = c.substring(c.indexOf('=')+1).split(',');
			for (var j = 0; j < idsToExpand.length;j++)
				toggledisplayicons(idsToExpand[j],'+',icon1,icon2);
		}
			
	}
}



function returnExpandedIds(id)
{
var sign=document.getElementById(id+"sign");
var div=document.getElementById(id);
var nodetype = 1;
var tagname = 'DIV';
var expandedIds = '';

if (div.childNodes.length > 0)
	for (var i = 0; i < div.childNodes.length; i++) 
		if (div.childNodes[i].nodeType==nodetype)
			if (div.childNodes[i].nodeName==tagname)
				expandedIds = addToList(expandedIds,returnExpandedIds(div.childNodes[i].id));

if (div.style.display.indexOf('none')==-1)
	expandedIds = addToList(expandedIds,id);

return expandedIds;

}


function appendlink(id,menuid)
{
	var link=document.getElementById(id+"link");
	var idx = link.href.indexOf('?');
	if (idx != -1) 
	{
	    var ca = link.href.substring(idx+1,link.href.length).split('&');
		link.href = link.href.substring(0,idx);                          //Remove existing query section from href
		nextseperator = "?";
		for (var i = 0; i < ca.length;i++)
		{
			var c = ca[i];
			if (c.indexOf(menuid) == -1)
			{
				link.href = link.href + nextseperator + c;
				nextseperator = "&";
			}
		}
		link.href = link.href + nextseperator + menuid + "=" + returnExpandedIds(menuid);
	}
	else
		link.href = link.href + "?" + menuid + "=" + returnExpandedIds(menuid);
}



function savestatewithlink(id,days,hours,minutes,linkid)
{

savestate(id,days,hours,minutes);

if ( !document.cookie )
	appendlink(linkid,id);

}



function savestate(id,days,hours,minutes)
{
	
//var output=document.getElementById("OUTPUT");
var div=document.getElementById(id);
var expiration=(days*24*60*60*1000)+(hours*60*60*1000) + (minutes*60*1000);
var nodetype = 1;
var tagname = 'DIV';
var cookievalue = '';
var expire = '';
if (div) 
	if (div.childNodes.length > 0)
		for (var i = 0; i < div.childNodes.length; i++) 
			if (div.childNodes[i].nodeType==nodetype)
				if (div.childNodes[i].nodeName==tagname)
					cookievalue = addToList(cookievalue,returnExpandedIds(div.childNodes[i].id));
	
date = new Date();
date.setTime(date.getTime()+expiration);
//output.innerHTML = expiration+"TEST";

if (expiration>0)
	expire = '; expires=' + date.toGMTString();


document.cookie=id+'='+cookievalue+ expire +'; path=/';
}
