var SEPARATOR = "|||";

function ColourCalEntries(ccalitems)
{
	var nodes;
	nodes = document.getElementsByTagName("A");

	for(var i = 0; i < nodes.length; i++)
	{
	    if(nodes[i].innerText.indexOf(SEPARATOR) != -1)
	    {
			var id = UpdateCalendarEntryText(nodes[i]);
			var foundNode = nodes[i];
			var trap = 0;
			var reqNumTDs;
			var period = GetQueryStringValue("CalendarPeriod");
			if(period != null && period.toLowerCase() == "day")
				reqNumTDs = 2;
			else
				reqNumTDs = 1;
			
			var tdCount = 0;
			
			while(tdCount < reqNumTDs)
			{
				foundNode = foundNode.parentNode;
				if(foundNode.nodeName.toLowerCase() == "td")
				{
					tdCount++;
				}
				trap++;
				if(trap > 10)
				{
					break; // don't want to end up in a loop
	            }
			}

			for(var i = 0; i < ccalitems.length; i++)
			{
				if(ccalitems[i][0].toLowerCase() == id.toLowerCase())
				{
					colour = GetCalendarColour(ccalitems[i][1]);
				}
			}

	       if(colour != "")
	          foundNode.style.background = colour;
	    }
	}
}

 function UpdateCalendarEntryText(anchorNode)
 {
	var id;
    var children = anchorNode.childNodes;
    for(var i = 0; i < children.length; i++)
    {

       if(children[i].nodeType == 3 && children[i].nodeValue.indexOf(SEPARATOR) != -1)
       {
          var parts = children[i].nodeValue.split(SEPARATOR);

          id = parts[0];
          children[i].nodeValue = parts[1];          
       }

       else
          UpdateCalendarEntryText(children[i]);
    }
	return id;
 }

 function GetCalendarColour(desc)
 {
    var colour;
    switch(desc.toLowerCase())
    {
		case "appointment":
			colour = "#ffd773";
			break;
		case "birthday":
			colour = "#aa94da";
			break;
		case "blue":
			colour = "#94b1e3";
			break;
		case "business":
			colour = "#769eda";
			break;
		case "green":
			colour = "#95d78d";
			break;
		case "important":
			colour = "#ea8488";
			break;
		case "orange":
			colour = "#f5a065";
			break;
		case "personal":
			colour = "#95d78d";
			break;
		case "purple":
			colour = "#9e86d5";
			break;
		case "red":
			colour = "#e5686f";
			break;
		case "vacation":
			colour = "#aeaeae";
			break;
		case "yellow":
			colour = "#fff968";
			break;

		default:
			colour = "";
    }

    return colour;
 }

function GetQueryStringValue(name)
{
	var qsParams = new Array();
	qsParams[name] = null;
	
	var query = window.location.search.substring(1);
	var pairs = query.split('&');
	for (var i = 0; i < pairs.length; i++)
	{
		var pos = pairs[i].indexOf('=');
		if (pos > 0)
		{
			var key = pairs[i].substring(0, pos);
			var val = pairs[i].substring(pos + 1);
			qsParams[key] = val;
		}		
	}
	return qsParams[name];
}