
//_____[ CALENDAR ]_____\\

var calendar = 
{
	hours: null,
	instruction: null,
	lecture: null,
	lib100: null,
	other: null,
	training: null,
	toggles: [],
	
	assignElements: function()
	{
		calendar.hours = document.getElementById('hours_toggle');
		calendar.instruction = document.getElementById('instruction_toggle');
		calendar.lecture = document.getElementById('lecture_toggle');
		calendar.lib100 = document.getElementById('lib100_toggle');
		calendar.training = document.getElementById('training_toggle');
		calendar.other = document.getElementById('other_toggle');
		calendar.toggles.push(calendar.hours);
		calendar.toggles.push(calendar.instruction);
		calendar.toggles.push(calendar.lecture);
		calendar.toggles.push(calendar.lib100);
		calendar.toggles.push(calendar.training);
		calendar.toggles.push(calendar.other);
		
	},
	
	assignListeners: function()
	{
		for(var i = 0; i < calendar.toggles.length; i++)
		{
			calendar.toggles[i].onclick = function()
			{
				calendar.toggle(this);
				calendar.setToggleCookie();
			}
		}
	},
	
	toggle: function(n)
	{
		var events = document.getElementsByClassName(n.value);
		for(var i = 0; i < events.length; i++)
		{
			var d = events[i];
			d.style.display = (d.style.display == 'none') ? 'block' : 'none';	
		}
	},
	
	setToggleCookie: function()
	{
		var c = '', v = '';
		for(var i = 0; i < calendar.toggles.length; i++)
		{
			v = (calendar.toggles[i].checked == true) ? 1 : 0;
			c = c + i + ':' + v + ';';
		}
		cookie.create('zsr_events_calendar',c,1);
	},
	
	setToggleState: function()
	{
		var c = cookie.get('zsr_events_calendar');
		c = (c) ? c.split(';') : null;
		for(var i = 0; i < calendar.toggles.length; i++)
		{
			calendar.toggles[i].checked = (c) ? (c[i] && c[i].split(':')[1] == 1) ? true : false : true;
			if(calendar.toggles[i].checked == false)
			{
				calendar.toggle(calendar.toggles[i]);
			}
		}
	},
	
	init: function()
	{
		toggles.init();
		calendar.assignElements();
		calendar.setToggleState();
		calendar.assignListeners();
	}
}
addLoadEvent(calendar.init);

//_____[ TOGGLES ]_____\\

var toggles = 
{
	types:
	[
		['Hours','hours'],
		['Instruction','instruction'],
		['LIB100','lib100'],
		['Library Lecture Series','lecture'],
		['Technology Training','training'],
		['Other','other']
	],
	
	makeInput: function(type)
	{
		/*
		var s = document.createElement('span');
		var i = document.createElement('input');
		var l = document.createElement('label');
		var sp = document.createTextNode(' ');
		var txt = document.createTextNode(type[0]);
		var id = type[1] + '_toggle';
		i.setAttribute('type','checkbox');
		i.setAttribute('id',id);
		i.setAttribute('value',type[1]);
		i.checked = true;
		l.setAttribute('for',id);
		l.appendChild(txt);
		s.appendChild(i);
		s.appendChild(sp);
		s.appendChild(l);
		*/
		var s = '<span id="' + type[1] + '_toggle_container"><input type="checkbox" id="' + type[1] + '_toggle" value="' + type[1] + '" checked="checked" /> <label for="' + type[1] + '_toggle">' + type[0] + '</label></span>';
		return s;
	},
	
	build: function()
	{
		var d = document.createElement('div');
		d.setAttribute('id','toggles');
		for(var i = 0; i < toggles.types.length; i++)
		{
			// removed to make labels work in IE : 2008-01-18
			// d.appendChild(toggles.makeInput(toggles.types[i]));
			d.innerHTML += toggles.makeInput(toggles.types[i]);
		}
		return d;
	},
	
	init: function()
	{
		var nav = document.getElementById('nav');
		var container = toggles.build();
		document.body.insertBefore(container,nav.nextSibling);
	}
}

//_____[ getElementsByClassName ]_____\\

document.getElementsByClassName = function(name)
{
	var results = new Array();
	var a = document.getElementsByTagName("*");
	for(var i=0; i<a.length; i++)
	{
		if(a[i].className.indexOf(name) != -1)
		{
			results[results.length] = a[i];
		}
	}
	return results;
};