/*******************************************************
Desc: Holds small javascript helper functions
*******************************************************/

	var original		= [];
	var rowCount;

	function show (id)
	{
		obj = document.getElementById(id); 
		obj.style.display = "block";
		obj.style.visibility = "visible";
	}

	function hide (id)
	{
		obj = document.getElementById(id); 
		obj.style.display = "none";
		obj.style.visibility = "hidden";
	}

	function ToggleDisplay(id)
	{
		obj = document.getElementById(id);
		if (obj.style.display == "none")
		{
			obj.style.display = "block";
		}
		else
		{
			obj.style.display = "none";
		}
	}

	function shrink (id)
	{
		obj = document.getElementById(id); 
		
		if(obj.style.height > '121px')
		{
			if(obj.offsetHeight - 100 > 121)
				obj.style.height = obj.offsetHeight - 100 + 'px';
			else
				obj.style.height = 121 + 'px';
		}
		else
			obj.style.height = 121 + 'px';
	}

	function expand (id)
	{
		obj = document.getElementById(id); 
		
		if(obj.style.height < '425px')
			obj.style.height = obj.offsetHeight + 100 + 'px';
	}

	

	function addSemester()
	{
		var selectDiv = document.createElement('div');
		var divP    = document.createElement('p');
		var selects = document.getElementById('selectClone').innerHTML;

		divP.innerHTML = 'Semester: '+selects;

		selectDiv.appendChild(divP);

		document.getElementById('semesters').appendChild(selectDiv);
	}

	function setTimeSelects(obj, k)
	{
		obj[0].name = 'start['+k+'][hour]';
		obj[1].name = 'start['+k+'][minute]';
		obj[2].name = 'start['+k+'][meridiem]';
		obj[3].name = 'end['+k+'][hour]';
		obj[4].name = 'end['+k+'][minute]';
		obj[5].name = 'end['+k+'][meridiem]';
	}

	function setDayChecks(obj, k)
	{
		for(var i = 0; i < obj.length; i++)
			obj[i].name = 'days['+k+']['+i+']';
	}

	function renameTimeFields()
	{
		var rows = document.getElementById('classes').getElementsByTagName('table');

		if(rows.length > 0)
			rowCount = rows.length;
		else
			rowCount = 0;

		for(var i = 0; i < rowCount; i++)
		{
			setTimeSelects(rows[i].getElementsByTagName('select'), i);
			setDayChecks(rows[i].getElementsByTagName('input'), i);
		}
	}

	function addClassTime()
	{
		var selectDiv = document.createElement('div');
		var divP    = document.createElement('p');
		var selects = document.getElementById('selectClone').innerHTML;

		divP.innerHTML = '<strong>Time:</strong> ' + selects;

		selectDiv.appendChild(divP);
		selectDiv.className = "timesheet";
		document.getElementById('classes').appendChild(selectDiv);
	}

	function removeMe(element)
	{
		parentDiv = element.parentNode;
		parentDiv.parentNode.removeChild(parentDiv);
	}

/* Menu Functions */
	function openCategory(id) 
	{
		var element = document.getElementById('level2-'+id);
		if (element != null && element.style.display != 'none')
		{
			closeCategory(id);
			currentCatOpen=1;
			return;
		}
		if (element != null)
		{
			show('level2-'+id);
			currentCatOpen = id;
			document.getElementById('expander-'+id).src='http://cs.millersville.edu/~csweb/lib/img/icons_bullets/sl_minus.gif';
			return;
		}
		http_request = makePOSTRequest();
		
		if(http_request)
		{
			var str = '';
				
			str = 'action=open&id=' + id;
			append = true;
			writeto_id = 'link-' + id;
			
			sendData('menu', str);
		}
		document.getElementById('expander-'+id).src='http://cs.millersville.edu/~csweb/lib/img/icons_bullets/sl_minus.gif';
		currentCatOpen = id;
	}

	function closeCategory(id)
	{
		hide('level2-'+id);
		document.getElementById('expander-'+id).src='http://cs.millersville.edu/~csweb/lib/img/icons_bullets/sl_plus.gif';
	}
/* End Menu Functions */
	
	function setDefTimeRow(id)
	{
		var el = document.getElementById(id);
		original[id] = el.innerHTML;
	}
	
	function resetTimeRow(id, hide)
	{
		var el = document.getElementById(id);

		el.innerHTML = original[id];
		
		if(hide == 1)
			showHideTimeEdit(id);
	}
	
	function showHideTimeEdit(id)
	{
		var el = document.getElementById(id);
		setDefTimeRow(id);
		
		if(el.style.display == 'none')
		{
			document.getElementById(id+'_link').style.visibility = 'hidden';
			el.style.display = 'block';
		}
		else
		{
			document.getElementById(id+'_link').style.visibility = 'visible';
			el.style.display = 'none';
		}
	}
	
	function setDefProfileImg(id)
	{
		var el = document.getElementById(id);
		original[id] = el.innerHTML;
	}
	
	function showHideProfileImgForm(id)
	{
		var el = document.getElementById(id);
		setDefProfileImg(id);
		
		if(el.style.display == 'none')
		{
			el.style.display = 'block';
		}
		else
		{
			el.style.display = 'none';
		}
	}
	
	function resetProfileImgForm(id)
	{
		var el = document.getElementById(id);

		el.innerHTML = original[id];
		
		showHideProfileImgForm(id);
	}

	function togglePageForm (showForm)
	{
		if (showForm)
		{
			hide("pageinfo");
			show("pageform");
		}
		else
		{
			hide("pageform");
			show("pageinfo");
		}
	}

	function toggleBlockForm (id, showForm)
	{
		if (showForm)
		{
			hide('block-' + id);
			show('blockform-' + id);
		}
		else
		{
			hide('blockform-' + id);
			show('block-' + id);
		}
	}

	/*function addAssignment()
	{
		var selectDiv = document.createElement('div');
		var divP    = document.createElement('p');

		divP.innerHTML = document.getElementById('selectClone').innerHTML;

		selectDiv.appendChild(divP);

		document.getElementById('assignments').appendChild(selectDiv);
	}*/

/*****************************************************
Func: loadTemplate()
Desc: Get the hours entered by user and send the data to POST.
*****************************************************/

	function loadTemplate(div, original, template, course, professor, can_add, can_edit, can_delete) 
	{
		http_request = makePOSTRequest();
		
		if(http_request)
		{
			var str = '';
			var myForm = document.semester_edit;
			
			str += 'a=' + div + '&';
			str += 'original=' + original + '&';
			str += 'template=' + template + '&';
			str += 'can_add=' + can_add + '&';
			str += 'can_edit=' + can_edit + '&';
			str += 'can_delete=' + can_delete;
				
			str = str.substr(0, str.length - 1);
			writeto_id = div + '_holder';
			
			sendData('classes', str);
		}
	}
