// JavaScript Document
// Der er så meget, der går direkte på designet af kalenderen, så det bliver en større
// historie at gøre den generel

function swopInitCalendar() // udføres ved load
{
	var swopAreas = getElementsByAttribute("class", "swopAreaCalendar");
	if (swopAreas)
	{
		for (var i = 0; i < swopAreas.length; i++)
		{
			var swopArea = swopAreas[i];
			var trs = swopArea.getElementsByTagName("tr");
			if (trs)
			{
				for (var ii=1; ii<trs.length; ii++)  // nb starter ved 1 da captions også er en row
				{
					var tr = trs[ii];
					attachEventListener(tr, 'click', swopCalendar); // eventhandler her 
				}
			}
		}
	}
}


swopCalendar = function(e)
{
	
	var target = typeof e.target != 'undefined' ? e.target : window.event.srcElement;
	
	while (target.nodeName.toUpperCase() != 'TR')
	{
		target = target.parentNode; // kravler op til tr-elementet
	}
	var index = target.id;
	var hiddenId = "hide" + index;
	var hiddenDiv = document.getElementById(hiddenId);
	if (hiddenDiv)
	{
		var calendarBody = document.getElementById("calendarBody");
		if (calendarBody)
		{
			while (calendarBody.firstChild)
			{
				calendarBody.removeChild(calendarBody.firstChild);
			}
			var values = hiddenDiv.getElementsByTagName("div");
			if (values)
			{
				for (var i = 0; i < values.length; i++)
				{
					var fieldName = values[i].className;
					fieldValue = values[i].innerHTML;
					if (fieldValue != '')
					{
						displayFieldCalendar(calendarBody, fieldName, fieldValue);
					}
				}
			}
		}
	}
	
	swopHighlightCalendar(target);
}

swopHighlightCalendar = function(element)
{
	var areas = document.getElementsByTagName("div");
	if (areas)
	{
		for (var i = 0; i < areas.length; i++)
		{
			if (areas[i].className.indexOf("swopAreaCalendar") != -1)  
			{
				var swopArea = areas[i];
				var trs = swopArea.getElementsByTagName("tr");
				if (trs)
				{
					for (var ii = 1; ii < trs.length; ii++)  // starter med 1 da captions også er en row
					{
						var tr = trs[ii];
						tr.className = tr.className.replace(/ ?highlight/g, ''); 
					}
				}
			}
		}
	}
	
	element.className += (element.className=='' ? '' : ' ') + 'highlight';
	
}

displayFieldCalendar = function(parent, fieldName, fieldValue)
{
	
	if (fieldName == "photo")
	{
			
		var img = document.createElement("img");
		img.src = fieldValue;
		img.width = 160;
		img.id = fieldName;
		parent.appendChild(img);
	}
	else 
	{
		if (fieldName == "name")
		{
			var newDiv = document.createElement("h1");
		}
		else
		{
			var newDiv = document.createElement("div");
		}
		newDiv.innerHTML = fieldValue;
		newDiv.id = fieldName;
		newDiv.className = "textFloat";
		parent.appendChild(newDiv);
	}
	
}
addLoadListener(swopInitCalendar);