function showAll(){

	//show all events
	var ulEvent = document.getElementsByClassName("allEvents");
	for (var i=0;i<ulEvent.length;i++)
		{
		ulEvent[i].style.display = "block";
		}
		
	//hide owned events
	var ulOwn = document.getElementsByClassName("listClass");
	for (var i=0;i<ulOwn.length;i++)
		{
		ulOwn[i].style.display = "none";
		}
			

	//hide my friends birthdays
	var ulB = document.getElementsByClassName("birthdays");
	for (var i=0;i<ulB.length;i++)
		{
		ulB[i].style.display = "none";
		}
		
	
	//hide unaccepte event requests
	var ulReq = document.getElementsByClassName("requests");
	for (var i=0;i<ulReq.length;i++)
		{
		ulReq[i].style.display = "none";
		}
	
}
function getDropDownMonth(){
var mnth = getDropDownSelected('ddMonthSelector');
var year = getDropDownSelected('ddYearSelector');
engCalendarDev.getMonthDays( mnth,year,callback_loadAllTasks);
}
function showOwned(){

	//show all events
	var ulEvent = document.getElementsByClassName("allEvents");
	for (var i=0;i<ulEvent.length;i++)
		{
		ulEvent[i].style.display = "none";
		}
		
	//hide owned events
	var ulOwn = document.getElementsByClassName("listClass");
	for (var i=0;i<ulOwn.length;i++)
		{
		ulOwn[i].style.display = "block";
		}
			

	//hide my friends birthdays
	var ulB = document.getElementsByClassName("birthdays");
	for (var i=0;i<ulB.length;i++)
		{
		ulB[i].style.display = "none";
		}
		
	
	//hide unaccepte event requests
	var ulReq = document.getElementsByClassName("requests");
	for (var i=0;i<ulReq.length;i++)
		{
		ulReq[i].style.display = "none";
		}
	
}

function showBirthdays(){

	//show all events
	var ulEvent = document.getElementsByClassName("allEvents");
	for (var i=0;i<ulEvent.length;i++)
		{
		ulEvent[i].style.display = "none";
		}
		
	//hide owned events
	var ulOwn = document.getElementsByClassName("listClass");
	for (var i=0;i<ulOwn.length;i++)
		{
		ulOwn[i].style.display = "none";
		}
			

	//hide my friends birthdays
	var ulB = document.getElementsByClassName("birthdays");
	for (var i=0;i<ulB.length;i++)
		{
		ulB[i].style.display = "block";
		}
		
	
	//hide unaccepte event requests
	var ulReq = document.getElementsByClassName("requests");
	for (var i=0;i<ulReq.length;i++)
		{
		ulReq[i].style.display = "none";
		}
	
}

function showRequests(){

	//show all events
	var ulEvent = document.getElementsByClassName("allEvents");
	for (var i=0;i<ulEvent.length;i++)
		{
		ulEvent[i].style.display = "none";
		}
		
	//hide owned events
	var ulOwn = document.getElementsByClassName("listClass");
	for (var i=0;i<ulOwn.length;i++)
		{
		ulOwn[i].style.display = "none";
		}
			

	//hide my friends birthdays
	var ulB = document.getElementsByClassName("birthdays");
	for (var i=0;i<ulB.length;i++)
		{
		ulB[i].style.display = "none";
		}
		
	
	//hide unaccepte event requests
	var ulReq = document.getElementsByClassName("requests");
	for (var i=0;i<ulReq.length;i++)
		{
		ulReq[i].style.display = "block";
		}
	
}

function sameMonth(){
    document.getElementById("calendarNavigationIndicator").style.display = "block";
	engCalendarDev.sameMonth(callback_loadAllTasks);
}

function currentMonth(){
	//clearBdays();
	document.getElementById("calendarNavigationIndicator").style.display = "block";
	engCalendarDev.thisMonth(callback_loadAllTasks);
}

function nextM(){
	//clearBdays();
	document.getElementById("calendarNavigationIndicator").style.display = "block";	
	engCalendarDev.nextMonth(callback_loadAllTasks);
}

function previousM(){
	//clearBdays();
	document.getElementById("calendarNavigationIndicator").style.display = "block";	
	engCalendarDev.previousMonth(callback_loadAllTasks);
}

function clearBdays(){
	var aColl = document.getElementsByClassName("birthdays");
	for (var i=0;i<aColl.length;i++)
		{
		aColl[i].innerHTML = "";
		
		//var p = aColl[i].parentNode;
		//p.removeChild(aColl[i]);
		}
}

function showEventHoverPanel(e, taskID, elementID)
{
	taskDetails = document.getElementById('hoverWrapper');
	
	taskDetailsWidth = Element.getWidth(taskDetails);
	
	var aTask = document.getElementById(elementID);
	Element.extend(aTask);
	
	var spanHeader = document.getElementById('spnHeader');
	
	var spanEventLink = document.getElementById('x' + taskID).lastChild;
	
	spanHeader.onclick = spanEventLink.onclick;
	
	var po = Position.cumulativeOffset(aTask);
	var left = po[0];
	var top = po[1];
	var width = aTask.getWidth();
	var height = aTask.getHeight();
	var right = left + width;
	var bottom = top + height;
	
	var dir = "top-left";
	
	//ClearCurrentHover();
	
	if (elementID != glblCurrentHoverItem.liid)
	{
		taskDetails.style.display = 'none';
	}
	
	glblCurrentHoverItem.taskid = taskID;
	glblCurrentHoverItem.liid = elementID;
	
	var windowWidth;
	
	if (window.innerWidth)
		windowWidth = window.innerWidth;
	else if (document.body.offsetWidth)
		windowWidth = document.body.offsetWidth - 100;
	
	var checkWidth = (right + 239);
	
	if (taskDetails.style.display == 'none')
	{
		if (checkWidth > windowWidth)
		{
			taskDetails.style.left = (right - taskDetailsWidth) + "px";
			taskDetails.style.top = bottom + "px";
			dir = "top-right"
		}
		else
		{
			taskDetails.style.left = (left + 30) + "px";
			taskDetails.style.top = bottom + "px";
			dir = "top-left";
		}
		
		//Effect.Grow('hoverWrapper', {direction: dir });
		Effect.Appear('hoverWrapper', { duration:0.5 });
		engCalendarDev.getEventDetailsById(taskID, callback_showEventHoverPanel);
	}
}

function hideEventHoverPanel(e, taskID, elementID)
{
	var aTask = document.getElementById(elementID);
	//if (aTask.tagName.toLowerCase() != 'a') return;
	
	//if (!aTask.getWidth)
	//	aTask = e.toElement;
	//if (!aTask.getWidth)
	//	return;	
	try
	
	{	
		var po = Position.positionedOffset(aTask);
		var left = po[0];
		var top = po[1];
		var width = aTask.getWidth();
		var height = aTask.getHeight();
		var right = left + width;
		var bottom = top + height;
		
		var mx = Event.pointerX(e);
		var my = Event.pointerY(e);
		var isout = true;
		
		if (mx > left && mx < right && my > top && my < bottom)
			isout = false;
	}
	catch (ex)
	{
		isout = true;
	}
	if (isout)
	{
		taskDetails = document.getElementById('hoverWrapper');
		taskDetails.style.display = 'none';
	}
}

function clearPopupWindow()
{
	var spanHeader = document.getElementById('spnHeader');
	var eventDate = document.getElementById('eventDetailDate');
	var eventTime = document.getElementById('eventDetailTime');
	var eventImage = document.getElementById('eventImageContainer');
	var eventDetailLocation = document.getElementById('eventDetailLocation');
	
	spanHeader.innerHTML = "";
	eventDate.innerHTML = "";
	eventTime.innerHTML = "";
	eventImage.innerHTML = "";
	eventDetailLocation.innerHTML = "";
}

function openEditModalWindow(taskID)
{
	document.getElementById('hoverWrapper').style.display = 'none';
	
	showEditTask(taskID);
}

function openDeleteModalWindow(taskID, taskType)
{
	if (taskType ==  4 || taskType == 2) {
		showDeleteFriendShareTask(taskID);
	}	
	else {	
		showDeleteTask(taskID);
	}
}

function callback_showEventHoverPanel(res)
{
	if (res.error!=null)
	{
		document.getElementById('imgLoadingPopup').style.display = 'none';
		
		var taskText = document.getElementById(glblCurrentHoverItem.liid).innerHTML;
	
		clearPopupWindow();
		
		var spanHeader = document.getElementById('spnHeader');
		var eventImage = document.getElementById('eventImageContainer');
		var eventDate = document.getElementById('eventDetailDate');
		var deleteEvent = document.getElementById('deleteEvent');
		var editEvent = document.getElementById('editEvent');
		
		taskText = taskText.replace("<I>", "");
		taskText = taskText.replace("</I>", "");
		
		spanHeader.innerHTML = taskText;
		eventDate.innerHTML = "This is an auto-generated event."
		
		eventImage.innerHTML = "<img src='../../images/calendar/defaultEventImage.gif' alt='' />";
		
		editEvent.style.display = "none";
		deleteEvent.style.display = "none";
		
		return;
	}

	var tsk = res.value;
	
	var spanHeader = document.getElementById('spnHeader');
	var eventDate = document.getElementById('eventDetailDate');
	var eventTime = document.getElementById('eventDetailTime');
	var eventImage = document.getElementById('eventImageContainer');
	var eventDetailLocation = document.getElementById('eventDetailLocation');
	var imgCloseWindow = document.getElementById('imgCloseWindow');
	var imgLoadingPopup = document.getElementById('imgLoadingPopup');
	var deleteEvent = document.getElementById('deleteEvent');
	var editEvent = document.getElementById('editEvent');
	
	imgLoadingPopup.style.display = 'none';
	
	if (tsk)
	{
		if (tsk.ImageFilename == null || tsk.ImageFilename == "")
		{
			eventImage.innerHTML = "<img src='../../images/calendar/defaultEventImage.gif' alt='' />";
		}
		else
		{
		    var thumbnailExists = engCalendarDev.DoesCalendarThumbnailExist(tsk.ImageFilename,80);
		    eventImage.innerHTML = thumbnailExists.value;
		}
	
		spanHeader.innerHTML = tsk.taskText;
		
		eventDate.innerHTML = tsk.TaskDisplayDate;
		
		if (tsk.TaskDisplayEndDate)
		{
			eventDate.innerHTML += " - " + tsk.TaskDisplayEndDate;
		}
		
		editEvent.href = "javascript:openEditModalWindow(" + tsk.taskID + ");";
		deleteEvent.href = "javascript:openDeleteModalWindow(" + tsk.taskID + ","+tsk.NewType+");";
		
		if (tsk.IsAllDay == false)
		{		
			eventTime.innerHTML = tsk.TaskDisplayTime;
			
			if (tsk.TaskEndTime)
			{
				eventTime.innerHTML += " - " + tsk.TaskEndTime;
			}
		}
		else
		{
			eventTime.innerHTML = 'All Day Event';
		}
		
		if (tsk.TaskLocation)
		{
			if (tsk.TaskLocation.length > 25)
			{
				eventDetailLocation.innerHTML = tsk.TaskLocation.slice(0, 25) + "...";
			}
			else
			{
				eventDetailLocation.innerHTML = tsk.TaskLocation;
			}
		}
		else
		{
			eventDetailLocation.innerHTML = "";
		}
		
		switch (tsk.NewType)
		{
			case 1:
				deleteEvent.style.display = "inline";
				editEvent.style.display = "inline";
				break;
			case 2:
				deleteEvent.style.display = "inline";
				editEvent.style.display = "none";
				break;
			case 4:
				deleteEvent.style.display = "inline";
				editEvent.style.display = "none";
				break;
			case 5:
				deleteEvent.style.display = "none";
				editEvent.style.display = "none";
				break;
		}
	}
	else
	{
		
	}
	
	//imgCloseWindow.style.display = 'inline';
}

var glblCurrentHoverItem = {}

function showEventHoverPanelEx(ev, taskid, liid)
{
	ClearCurrentHover();
	
	glblCurrentHoverItem.taskid = taskid;
	glblCurrentHoverItem.liid = liid;
}

function callback_loadAllTasks(res){
if (res.error!=null){alert(res.error);};


var dt = res.value;

document.getElementById("monthDesc").innerHTML = dt[0].month;

var monthName = dt[0].month.split(' ')[0];
var year = dt[0].month.split(' ')[1];

document.getElementById('ddYearSelector').value = year;

for (x=0; x<document.getElementById('ddMonthSelector').length; x++)
{
	var ele = $('ddMonthSelector');
	if (ele[x].text == monthName)
		ele.selectedIndex = x;
}

	for (var i=0; i<((6 * 7));i++)
		{
			var spnTD = document.getElementById("calendarDay_td_" + dt[i].init_id);
				
			var spnDay = document.getElementById("calendarDay_span_" + dt[i].init_id);
			spnDay.innerHTML = dt[i]._date;

			spnDay.className = dt[i].css;
			spnTD.className = dt[i].css;
			
			var ulDay = spnTD.getElementsByTagName("ul");
			
			ulDay[0].innerHTML = "";
		
		}
		
		
	for (var i=0; i<((6 * 7));i++)
		{	
			var spnTD = document.getElementById("calendarDay_td_" + dt[i].init_id);			
				
			var spnDay = document.getElementById("calendarDay_span_" + dt[i].init_id);
			spnDay.innerHTML = dt[i]._date;

			spnDay.className = dt[i].css;
			spnTD.className = dt[i].css;
			
			var ulDay = spnTD.getElementsByTagName("ul");
			
			var aAdd = document.getElementById("calAdd_" + dt[i].init_id);
			aAdd.href = "javascript:showAddEvent('" + dt[i].id + "');";
			
			var aAll = document.getElementById("calAll_" + dt[i].init_id);
			/* updated 20071123 by Ben */
			//aAll.href = "javascript:getAllEventsForDay('" + dt[i].id + "');";
			aAll.href = "javascript:void(0);";
			aAll.onclick = "return false;";
		
	
			if (dt[i].tasks!=null)
				{
				if (dt[i].tasks.length != 0)
					{
					for (var j=0; j<dt[i].tasks.length; j++)
						{
						
						switch (dt[i].tasks[j].NewType)
							{
								case 1:
									//owners events taskType 1
									//define all elements and set common browser attributes
									var li = document.createElement("li");
																											
									var aTask = document.createElement("a");
									aTask.href = "#";
									var taskID2 = dt[i].tasks[j].taskID;
									aTask.id = 'x' + taskID2;
									
									
									
									//delete parent
									var spnDelete = document.createElement("span");
									spnDelete.title = "Delete";
									spnDelete.className = "delete";
											
									//delete child
									var iDelete = document.createElement("i");
									iDelete.innerHTML = "d";
								
									//append child to parent
									spnDelete.appendChild(iDelete);
									
									//edit parent
									var spnEdit = document.createElement("span");
									spnEdit.title = "Edit";
									spnEdit.className = "edit";
									
									//edit child
									var iEdit = document.createElement("i");
									iEdit.innerHTML = "e";
										
									//append child to parent
									spnEdit.appendChild(iEdit);
											
									//event parent
									var spnEvent = document.createElement("span");
									if (dt[i].tasks[j].SecurityID==2||dt[i].tasks[j].SecurityID==4)
										{
									//	alert(dt[i].tasks[j].IsAllDay);
										
										if (dt[i].tasks[j].IsAllDay)
											{
											li.className = "allDayOwnerShared";
											}
										else
											{
											spnEvent.className = "ownerRequest";		
											}
										
										
										}
									else
										{
										
										if (dt[i].tasks[j].IsAllDay)
											{
											li.className = "allDayOwner";
											}
										else
											{
											spnEvent.className = "owner";		
											}
										
										}
									
									var strFunc = "Event.observe(spnEvent, \"mouseover\", function(ev) { showEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask.id + "\");})"; 
									var strFuncOut = "Event.observe(spnEvent, \"mouseout\", function(ev) { hideEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask.id + "\") });";
									
									eval(strFunc);
									eval(strFuncOut);
									
									var myHoverWrapper = document.getElementById('hoverWrapper');
									if (myHoverWrapper)
									{
									    var strFuncHoverWrapperOut = "Event.observe(myHoverWrapper, \"mouseout\", function(ev) { hideEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask.id + "\") });";
									    eval(strFuncHoverWrapperOut);
									}
									
									//event child with time and shortend text
									var iEvent = document.createElement("i");
									if (dt[i].tasks[j].IsAllDay)
											{
											iEvent.innerHTML = "All Day - " + dt[i].tasks[j].taskText;
											}
										else
											{
											iEvent.innerHTML = dt[i].tasks[j].taskTime + " - " + dt[i].tasks[j].taskText;		
											}
											
									
									
									//append child to parent
									spnEvent.appendChild(iEvent);
									
									//set items id
									li.id = "task" + dt[i].tasks[j].taskID;
									
									//set event attributes for specific browser type
									switch (BrowserDetect.browser)
										{
										case "Explorer":
											aTask.onclick=function(){return false};
											//function accepts the object to add specific click events and the parameter
											//that the onclick event will accept
											addDelOnclick(spnDelete, dt[i].tasks[j].taskID);
											addEditOnclick(spnEdit, dt[i].tasks[j].taskID);
											addViewOnclick(spnEvent, dt[i].tasks[j].taskID);
										break
										default:					
											aTask.setAttribute("onclick", "event.cancelBubble=true;");
											spnDelete.setAttribute("onclick", "showDeleteTask('" + dt[i].tasks[j].taskID + "');event.cancelBubble=true;");
											spnEdit.setAttribute("onclick", "showEditTask('" + dt[i].tasks[j].taskID + "');event.cancelBubble=true;");
											spnEvent.setAttribute("onclick", "gotToTask('" + dt[i].tasks[j].taskID + "');event.cancelBubble=true;");
										break
										
										}
									
									//append action controls to achor
									aTask.appendChild(spnDelete);
									aTask.appendChild(spnEdit);
									aTask.appendChild(spnEvent);
							
									//append anchor to list item
									li.appendChild(aTask);
									
									//append listitem to the calendar day
									ulDay[0].appendChild(li);
									
									if (dt[i].tasks[j].MultiLength!=null)
										{
										for (var multi = 0;multi<dt[i].tasks[j].MultiLength;multi++)
											{
											if (dt[i + (multi + 1)]!=null)
												{
												if (document.getElementById("calendarDay_td_" + dt[i + (multi + 1)].init_id)!=null)
													{
													var spnTDMulti = document.getElementById("calendarDay_td_" + dt[i + (multi + 1)].init_id);	
													var ulDayMulti = spnTDMulti.getElementsByTagName("ul");
														
														var li1 = document.createElement("li");
																											
														var aTask1 = document.createElement("a");
														aTask1.href = "#";
														aTask1.id = 'x' + taskID2 + multi;
									
														//delete parent
														var spnDelete1 = document.createElement("span");
														spnDelete1.title = "Delete";
														spnDelete1.className = "delete";
											
														//delete child
														var iDelete1 = document.createElement("i");
														iDelete1.innerHTML = "d";
								
														//append child to parent
														spnDelete1.appendChild(iDelete1);
									
														//edit parent
														var spnEdit1 = document.createElement("span");
														spnEdit1.title = "Edit";
														spnEdit1.className = "edit";
									
														//edit child
														var iEdit1 = document.createElement("i");
														iEdit1.innerHTML = "e";
										
														//append child to parent
														spnEdit1.appendChild(iEdit1);
											
														//event parent
														var spnEvent1 = document.createElement("span");
														if (dt[i].tasks[j].SecurityID==2||dt[i].tasks[j].SecurityID==4)
														{
															
										
															if (dt[i].tasks[j].IsAllDay)
															{
																li1.className = "allDayOwnerShared";
															}
															else
															{
																spnEvent1.className = "ownerRequest";		
															}
										
										
														}
														else
														{
										
															if (dt[i].tasks[j].IsAllDay)
															{
																li1.className = "allDayOwner";
															}
															else
															{
																spnEvent1.className = "owner";		
															}
										
														}
									
									
														//event child with time and shortend text
														var iEvent1 = document.createElement("i");
														if (dt[i].tasks[j].MultiLength == (multi + 1))
														{
															if (dt[i].tasks[j].IsAllDay)
															{			
																iEvent1.innerHTML = "All Day - " + dt[i].tasks[j].taskText;
															}
															else
															{
																iEvent1.innerHTML = dt[i].tasks[j].taskeTime + " - " + dt[i].tasks[j].taskText;	
															}
														}
														else
														{
																
															iEvent1.innerHTML = "All Day - " + dt[i].tasks[j].taskText;
														}
											
														var strFunc = "Event.observe(spnEvent1, \"mouseover\", function(ev) { showEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask1.id + "\");})"; 
														var strFuncOut = "Event.observe(spnEvent1, \"mouseout\", function(ev) { hideEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask1.id + "\") });";
														
														eval(strFunc);
														eval(strFuncOut);
														
														var myHoverWrapper = document.getElementById('hoverWrapper');
								                        if (myHoverWrapper)
								                        {
								                            var strFuncHoverWrapperOut = "Event.observe(myHoverWrapper, \"mouseout\", function(ev) { hideEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask.id + "\") });";
								                            eval(strFuncHoverWrapperOut);
								                        }
									
														//append child to parent
														spnEvent1.appendChild(iEvent1);
									
														//set items id
														li1.id = "task" + dt[i].tasks[j].taskID;
									
														//set event attributes for specific browser type
														switch (BrowserDetect.browser)
														{
														case "Explorer":
															aTask1.onclick=function(){return false};
															//function accepts the object to add specific click events and the parameter
															//that the onclick event will accept
															addDelOnclick(spnDelete1, dt[i].tasks[j].taskID);
															addEditOnclick(spnEdit1, dt[i].tasks[j].taskID);
															addViewOnclick(spnEvent1, dt[i].tasks[j].taskID);
															break
														default:					
															aTask1.setAttribute("onclick", "event.cancelBubble=true;");
															spnDelete1.setAttribute("onclick", "showDeleteTask('" + dt[i].tasks[j].taskID + "');event.cancelBubble=true;");
															spnEdit1.setAttribute("onclick", "showEditTask('" + dt[i].tasks[j].taskID + "');event.cancelBubble=true;");
															spnEvent1.setAttribute("onclick", "gotToTask('" + dt[i].tasks[j].taskID + "');event.cancelBubble=true;");
															break
										
														}
									
														//append action controls to achor
														aTask1.appendChild(spnDelete1);
														aTask1.appendChild(spnEdit1);
														aTask1.appendChild(spnEvent1);
							
														//append anchor to list item
														li1.appendChild(aTask1);
									
														//append listitem to the calendar day
														//ulDay[0].appendChild(li1);
											
											
														//var liMulti = li.cloneNode(true);
											
													ulDayMulti[0].appendChild(li1)
													}
												}
											
										
											}
										}
									
										
									
								break
								case 5:
									//my friends birthdays taskType 5
									//owners events taskType 1
									//define all elements and set common browser attributes
									var li = document.createElement("li");
									//set class for number of options
									//-empty for default options-
									//singleOption
									//noOption
									li.className = "noOption";
									
									var aTask = document.createElement("a");
									
									if (dt[i].tasks[j].taskType != 6)
									    aTask.href = "/profile/" + dt[i].tasks[j].fullTaskText + ".aspx";
									else
									    aTask.href = "/myAssignments/assignmentDetails.aspx?AllocationId=" + dt[i].tasks[j].taskID;
									
									//var taskID2 = dt[i].tasks[j].taskID;
									var taskID2 = dt[i].tasks[j].taskID;
									aTask.id = 'x' + taskID2;
									
									
									//event parent
									var spnEvent = document.createElement("span");
									spnEvent.className = "birthday";
									
									//event child with time and shortend text
									var iEvent = document.createElement("i");
									if (dt[i].tasks[j].taskType == 5)
									    iEvent.innerHTML = dt[i].tasks[j].taskText + " B-day :)";
									else
									    iEvent.innerHTML = dt[i].tasks[j].taskText;
									
									//append child to parent
									spnEvent.appendChild(iEvent);
									
									//set items id
									li.id = "task" + dt[i].tasks[j].taskID;
									
									//set event attributes for specific browser type
									switch (BrowserDetect.browser)
										{
										case "Explorer":
											//aTask.onclick=function(){return false};
											//addBirthdayOnclick(aTask, dt[i].tasks[j].taskText);
											//function accepts the object to add specific click events and the parameter
											//that the onclick event will accept
										
										break
										default:					
											aTask.setAttribute("onclick", "event.cancelBubble=true;");
											//aTask.setAttribute("onclick", "goToProfile('" + dt[i].tasks[j].taskText + "');event.cancelBubble=true;");
											
										break
										
										}
									
									var strFunc = "Event.observe(spnEvent, \"mouseover\", function(ev) { showEventHoverPanel(ev,"+dt[i].tasks[j].taskID+", \"" + aTask.id + "\");})"; 
									var strFuncOut = "Event.observe(spnEvent, \"mouseout\", function(ev) { hideEventHoverPanel(ev, "+dt[i].tasks[j].taskID+", \"" + aTask.id + "\") });";
									
									eval(strFunc);
									eval(strFuncOut);
									
									var myHoverWrapper = document.getElementById('hoverWrapper');
									if (myHoverWrapper)
									{
									    var strFuncHoverWrapperOut = "Event.observe(myHoverWrapper, \"mouseout\", function(ev) { hideEventHoverPanel(ev, "+dt[i].tasks[j].taskID+", \"" + aTask.id + "\") });";
									    eval(strFuncHoverWrapperOut);
									}
									
									//append action controls to achor
									aTask.appendChild(spnEvent);
							
									//append anchor to list item
									li.appendChild(aTask);
									
									//append listitem to the calendar day
									ulDay[0].appendChild(li);
									
									if (dt[i].tasks[j].MultiLength!=null)
										{
										for (var multi = 0;multi<dt[i].tasks[j].MultiLength;multi++)
											{
											if (dt[i + (multi + 1)]!=null)
												{
												if (document.getElementById("calendarDay_td_" + dt[i + (multi + 1)].init_id)!=null)
													{
													var spnTDMulti = document.getElementById("calendarDay_td_" + dt[i + (multi + 1)].init_id);	
													var ulDayMulti = spnTDMulti.getElementsByTagName("ul");
											
													var li1 = document.createElement("li");
													//set class for number of options
													//-empty for default options-
													//singleOption
													//noOption
													li1.className = "noOption";
													
													var aTask1 = document.createElement("a");
													aTask1.href = "/profile/" + dt[i].tasks[j].taskText + ".aspx";
													aTask1.id = 'x' + taskID2 + multi;
															
													//event parent
													var spnEvent1 = document.createElement("span");
													spnEvent1.className = "birthday";
													
													//event child with time and shortend text
													var iEvent1 = document.createElement("i");
													iEvent1.innerHTML = dt[i].tasks[j].taskText + " B-day :)";
													
													//append child to parent
													spnEvent1.appendChild(iEvent1);
													
													//set items id
													li1.id = "task" + dt[i].tasks[j].taskID;
													
													//set event attributes for specific browser type
													switch (BrowserDetect.browser)
														{
														case "Explorer":
															//aTask.onclick=function(){return false};
															//addBirthdayOnclick(aTask, dt[i].tasks[j].taskText);
															//function accepts the object to add specific click events and the parameter
															//that the onclick event will accept
														
														break
														default:					
															aTask1.setAttribute("onclick", "event.cancelBubble=true;");
															//aTask.setAttribute("onclick", "goToProfile('" + dt[i].tasks[j].taskText + "');event.cancelBubble=true;");
															
														break
														
														}
														
													var strFunc = "Event.observe(spnEvent1, \"mouseover\", function(ev) { showEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask1.id + "\");})"; 
													var strFuncOut = "Event.observe(spnEvent1, \"mouseout\", function(ev) { hideEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask1.id + "\") });";
													
													eval(strFunc);
													eval(strFuncOut);
													
													var myHoverWrapper = document.getElementById('hoverWrapper');
									                if (myHoverWrapper)
									                {
									                    var strFuncHoverWrapperOut = "Event.observe(myHoverWrapper, \"mouseout\", function(ev) { hideEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask.id + "\") });";
									                    eval(strFuncHoverWrapperOut);
									                }
													
													//append action controls to achor
													aTask1.appendChild(spnEvent1);
											
													//append anchor to list item
													li1.appendChild(aTask1);
											
													ulDayMulti[0].appendChild(li1)
													}
												}
										
											}
										}
										
										
								break
								case 2:
									//accepted event request taskType 6 
									//define all elements and set common browser attributes
									var li = document.createElement("li");
									
									//set class for number of options
									//-empty for default options-
									//singleOption
									//noOption
									
									
									var aTask = document.createElement("a");
									aTask.href = "#";
									
									var taskID2 = dt[i].tasks[j].taskID;
									aTask.id = 'x' + taskID2;
									
									//delete parent
									var spnDelete = document.createElement("span");
									spnDelete.title = "Delete";
									spnDelete.className = "delete";
											
									//delete child
									var iDelete = document.createElement("i");
									iDelete.innerHTML = "d";
								
									//append child to parent
									spnDelete.appendChild(iDelete);
											
									//event parent
									var spnEvent = document.createElement("span");
									if (dt[i].tasks[j].IsAllDay)
										{
										li.className = "allDayNonOwnerShared singleOption";
										}
									else
										{
										li.className = "singleOption";
										spnEvent.className = "acceptedRequest";
										}
									
									
									//event child with time and shortend text
									var iEvent = document.createElement("i");
									if (dt[i].tasks[j].IsAllDay)
										{
										iEvent.innerHTML = "All Day - " + dt[i].tasks[j].taskText;		
										}
									else
										{
										iEvent.innerHTML = dt[i].tasks[j].taskTime + " - " + dt[i].tasks[j].taskText;	
										}
									
									
									var strFunc = "Event.observe(spnEvent, \"mouseover\", function(ev) { showEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask.id + "\");})"; 
									var strFuncOut = "Event.observe(spnEvent, \"mouseout\", function(ev) { hideEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask.id + "\") });";
									
									eval(strFunc);
									eval(strFuncOut);
									
									var myHoverWrapper = document.getElementById('hoverWrapper');
									if (myHoverWrapper)
									{
									    var strFuncHoverWrapperOut = "Event.observe(myHoverWrapper, \"mouseout\", function(ev) { hideEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask.id + "\") });";
									    eval(strFuncHoverWrapperOut);
									}
									
									//append child to parent
									spnEvent.appendChild(iEvent);
									
									//set items id
									li.id = "task" + dt[i].tasks[j].taskID;
									
									//set event attributes for specific browser type
									switch (BrowserDetect.browser)
										{
										case "Explorer":
											//aTask.onclick=function(){return false};
											//function accepts the object to which you assign specific onclick events and
											// the id of the event to be actioned
											addDelOnclick(spnDelete, dt[i].tasks[j].taskID);
											addProfileOnclick(spnEvent, dt[i].tasks[j].encTaskID);
										break
										default:					
											//aTask.setAttribute("onclick", "event.cancelBubble=true;");
											spnDelete.setAttribute("onclick", "showDeleteTask('" + dt[i].tasks[j].taskID + "');event.cancelBubble=true;");
											spnEvent.setAttribute("onclick", "goToEventProfile('" + dt[i].tasks[j].encTaskID + "');event.cancelBubble=true;");
										break
										
										}
									
									//append action controls to achor
									aTask.appendChild(spnDelete);
									aTask.appendChild(spnEvent);
							
									//append anchor to list item
									li.appendChild(aTask);
									
									//append listitem to the calendar day
									ulDay[0].appendChild(li);
									
									if (dt[i].tasks[j].MultiLength!=null)
										{
										for (var multi = 0;multi<dt[i].tasks[j].MultiLength;multi++)
											{
											if (dt[i + (multi + 1)]!=null)
												{
												if (document.getElementById("calendarDay_td_" + dt[i + (multi + 1)].init_id)!=null)
													{
													var spnTDMulti = document.getElementById("calendarDay_td_" + dt[i + (multi + 1)].init_id);	
													var ulDayMulti = spnTDMulti.getElementsByTagName("ul");
											
													var li1 = document.createElement("li");
														
														//set class for number of options
														//-empty for default options-
														//singleOption
														//noOption
														
														
														var aTask1 = document.createElement("a");
														aTask1.href = "#";
														aTask1.id = 'x' + taskID2 + multi;
														
														//delete parent
														var spnDelete1 = document.createElement("span");
														spnDelete1.title = "Delete";
														spnDelete1.className = "delete";
																
														//delete child
														var iDelete1 = document.createElement("i");
														iDelete1.innerHTML = "d";
													
														//append child to parent
														spnDelete1.appendChild(iDelete1);
																
														//event parent
														var spnEvent1 = document.createElement("span");
														if (dt[i].tasks[j].IsAllDay)
															{
															li1.className = "allDayNonOwnerShared singleOption";
															}
														else
															{
															li1.className = "singleOption";
															spnEvent1.className = "acceptedRequest";
															}
														
														
														//event child with time and shortend text
														var iEvent1 = document.createElement("i");
														if (dt[i].tasks[j].MultiLength == (multi + 1))
														{
															if (dt[i].tasks[j].IsAllDay)
															{			
																iEvent1.innerHTML = "All Day - " + dt[i].tasks[j].taskText;
															}
															else
															{
																iEvent1.innerHTML = dt[i].tasks[j].taskeTime + " - " + dt[i].tasks[j].taskText;	
															}
														}
														else
														{
																
															iEvent1.innerHTML = "All Day - " + dt[i].tasks[j].taskText;
														}
														
														var strFunc = "Event.observe(spnEvent1, \"mouseover\", function(ev) { showEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask1.id + "\");})"; 
														var strFuncOut = "Event.observe(spnEvent1, \"mouseout\", function(ev) { hideEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask1.id + "\") });";
														
														eval(strFunc);
														eval(strFuncOut);
														
														var myHoverWrapper = document.getElementById('hoverWrapper');
									                    if (myHoverWrapper)
									                    {
									                        var strFuncHoverWrapperOut = "Event.observe(myHoverWrapper, \"mouseout\", function(ev) { hideEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask.id + "\") });";
									                        eval(strFuncHoverWrapperOut);
									                    }
														
														//append child to parent
														spnEvent1.appendChild(iEvent1);
														
														//set items id
														li1.id = "task" + dt[i].tasks[j].taskID;
														
														//set event attributes for specific browser type
														switch (BrowserDetect.browser)
															{
															case "Explorer":
																//aTask.onclick=function(){return false};
																//function accepts the object to which you assign specific onclick events and
																// the id of the event to be actioned
																addDelOnclick(spnDelete1, dt[i].tasks[j].taskID);
																addProfileOnclick(spnEvent1, dt[i].tasks[j].encTaskID);
															break
															default:					
																//aTask.setAttribute("onclick", "event.cancelBubble=true;");
																spnDelete1.setAttribute("onclick", "showDeleteTask('" + dt[i].tasks[j].taskID + "');event.cancelBubble=true;");
																spnEvent1.setAttribute("onclick", "goToEventProfile('" + dt[i].tasks[j].encTaskID + "');event.cancelBubble=true;");
															break
															
															}
														
														//append action controls to achor
														aTask1.appendChild(spnDelete1);
														aTask1.appendChild(spnEvent1);
												
														//append anchor to list item
														li1.appendChild(aTask1);
											
													ulDayMulti[0].appendChild(li1)
													}
												}
										
											}
										}
								break
								case 4:
									//accepted event request taskType 6 
									//define all elements and set common browser attributes
									var li = document.createElement("li");
									
									//set class for number of options
									//-empty for default options-
									//singleOption
									//noOption
									//li.className = "singleOption";
									
									var aTask = document.createElement("a");
									aTask.href = "#";
									
									var taskID2 = dt[i].tasks[j].taskID;
									aTask.id = 'x' + taskID2;
									
									//delete parent
									var spnDelete = document.createElement("span");
									spnDelete.title = "Delete";
									spnDelete.className = "delete";
											
									//delete child
									var iDelete = document.createElement("i");
									iDelete.innerHTML = "d";
								
									//append child to parent
									spnDelete.appendChild(iDelete);
											
									//event parent
									var spnEvent = document.createElement("span");
									if (dt[i].tasks[j].IsAllDay)
										{
										li.className = "allDayNonOwnerShared singleOption";
										}
									else
										{
										li.className = "singleOption";
										spnEvent.className = "acceptedRequest";
										}
									
									
									//event child with time and shortend text
									var iEvent = document.createElement("i");
										if (dt[i].tasks[j].IsAllDay)
										{
										iEvent.innerHTML = "All Day - " + dt[i].tasks[j].taskText;		
										}
									else
										{
										iEvent.innerHTML = dt[i].tasks[j].taskTime + " - " + dt[i].tasks[j].taskText;	
										}
										
									var strFunc = "Event.observe(spnEvent, \"mouseover\", function(ev) { showEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask.id + "\");})"; 
									var strFuncOut = "Event.observe(spnEvent, \"mouseout\", function(ev) { hideEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask.id + "\") });";
									
									eval(strFunc);
									eval(strFuncOut);
									
									var myHoverWrapper = document.getElementById('hoverWrapper');
									if (myHoverWrapper)
									{
									    var strFuncHoverWrapperOut = "Event.observe(myHoverWrapper, \"mouseout\", function(ev) { hideEventHoverPanel(ev, \"" + taskID2 + "\", \"" + aTask.id + "\") });";
									    eval(strFuncHoverWrapperOut);
									}
									
									//append child to parent
									spnEvent.appendChild(iEvent);
									
									//set items id
									li.id = "task" + dt[i].tasks[j].taskID;
									
									//set event attributes for specific browser type
									switch (BrowserDetect.browser)
										{
										case "Explorer":
											//aTask.onclick=function(){return false};
											//function accepts the object to which you assign specific onclick events and
											// the id of the event to be actioned
											addDelFriendShareOnclick(spnDelete,dt[i].tasks[j].taskID);
											addProfileOnclick(spnEvent, dt[i].tasks[j].encTaskID);
										break
										default:					
											//aTask.setAttribute("onclick", "event.cancelBubble=true;");
											spnDelete.setAttribute("onclick", "showDeleteFriendShareTask(" + dt[i].tasks[j].taskID + ");event.cancelBubble=true;");
											spnEvent.setAttribute("onclick", "goToEventProfile('" + dt[i].tasks[j].encTaskID + "');event.cancelBubble=true;");
										break
										
										}
									
									//append action controls to achor
									aTask.appendChild(spnDelete);
									aTask.appendChild(spnEvent);
							
									//append anchor to list item
									li.appendChild(aTask);
									
									//append listitem to the calendar day
									ulDay[0].appendChild(li);
									
									if (dt[i].tasks[j].MultiLength!=null)
										{
										for (var multi = 0;multi<dt[i].tasks[j].MultiLength;multi++)
											{
											if (dt[i + (multi + 1)]!=null)
												{
												if (document.getElementById("calendarDay_td_" + dt[i + (multi + 1)].init_id)!=null)
													{
													var spnTDMulti = document.getElementById("calendarDay_td_" + dt[i + (multi + 1)].init_id);	
													var ulDayMulti = spnTDMulti.getElementsByTagName("ul");
											
													//var liMulti = li.cloneNode(true);
													//accepted event request taskType 6 
									//define all elements and set common browser attributes
									var liMulti = document.createElement("li");
									
									//set class for number of options
									//-empty for default options-
									//singleOption
									//noOption
									//li.className = "singleOption";
									
									var aMultiTask = document.createElement("a");
									aMultiTask.href = "#";
									
									//delete parent
									var spnMultiDelete = document.createElement("span");
									spnMultiDelete.title = "Delete";
									spnMultiDelete.className = "delete";
											
									//delete child
									var iMultiDelete = document.createElement("i");
									iMultiDelete.innerHTML = "d";
								
									//append child to parent
									spnMultiDelete.appendChild(iDelete);
											
									//event parent
									var spnMultiEvent = document.createElement("span");
									if (dt[i].tasks[j].IsAllDay)
										{
										liMulti.className = "allDayNonOwnerShared singleOption";
										}
									else
										{
										liMulti.className = "singleOption";
										spnMultiEvent.className = "acceptedRequest";
										}
									//event child with time and shortend text
														var iEvent1 = document.createElement("i");
														if (dt[i].tasks[j].MultiLength == (multi + 1))
														{
															if (dt[i].tasks[j].IsAllDay)
															{			
																iEvent1.innerHTML = "All Day - " + dt[i].tasks[j].taskText;
															}
															else
															{
																iEvent1.innerHTML = dt[i].tasks[j].taskeTime + " - " + dt[i].tasks[j].taskText;	
															}
														}
														else
														{
																
															iEvent1.innerHTML = "All Day - " + dt[i].tasks[j].taskText;
														}
									
									//event child with time and shortend text
									//var iMultiEvent = document.createElement("i");
									//	if (dt[i].tasks[j].IsAllDay)
									//	{
									//	iMultiEvent.innerHTML = "All Day - " + dt[i].tasks[j].taskText;		
									//	}
									//else
									//	{
									//	iMultiEvent.innerHTML = dt[i].tasks[j].taskTime + " - " + dt[i].tasks[j].taskText;	
									//	}
									
									//append child to parent
									spnMultiEvent.appendChild(iEvent1);
									
									//set items id
									liMulti.id = "task" + dt[i].tasks[j].taskID;
									
									//set event attributes for specific browser type
									switch (BrowserDetect.browser)
										{
										case "Explorer":
											//aTask.onclick=function(){return false};
											//function accepts the object to which you assign specific onclick events and
											// the id of the event to be actioned
											addDelFriendShareOnclick(spnMultiDelete,dt[i].tasks[j].taskID);
											addProfileOnclick(spnMultiEvent, dt[i].tasks[j].encTaskID);
										break
										default:					
											//aTask.setAttribute("onclick", "event.cancelBubble=true;");
											spnMultiDelete.setAttribute("onclick", "showDeleteFriendShareTask(" + dt[i].tasks[j].taskID + ");event.cancelBubble=true;");
											spnMultiEvent.setAttribute("onclick", "goToEventProfile('" + dt[i].tasks[j].encTaskID + "');event.cancelBubble=true;");
										break
										
										}
									
									//append action controls to achor
									aMultiTask.appendChild(spnMultiDelete);
									aMultiTask.appendChild(spnMultiEvent);
							
									//append anchor to list item
									liMulti.appendChild(aMultiTask);
											
													ulDayMulti[0].appendChild(liMulti)
													}
												}
										
											}
										}
								break
							}
						
						}
					}
				}
			
			
				
				for (var k=ulDay[0].childNodes.length; k<4; k++)
				{
				
					var li = document.createElement("li");
					li.innerHTML = "&nbsp;";
					li.style.height = "10px";
					li.id = "task_" + i + "_" + k;
					ulDay[0].appendChild(li);
				
				}
				
		
				
				
			
				
		}
		
		document.getElementById("calendarNavigationIndicator").style.display = "none";
		//createSortables();
}

function addEditOnclick(obj, taskID)
{
obj.onclick = function() {
	showEditTask(taskID);
	return false;

}
obj = null;
}

function addDelOnclick(obj, taskID)
{
obj.onclick = function() {
	showDeleteTask(taskID);
	return false;

}
obj = null;
}


function addDelFriendShareOnclick(obj, taskID)
{
obj.onclick = function() {
	showDeleteFriendShareTask(taskID);
	return false;

}
obj = null;
}


function addProfileOnclick(obj, taskID)
{
obj.onclick = function() {
	window.location = "/profile/calendar/event_details.aspx?x=" + taskID;
	
//	showAcceptedEventRequest(taskID);
	return false;

}
obj = null;
}

function addViewOnclick(obj, taskID)
{
obj.onclick = function() {
	window.location = "/myCalendar/event_details.aspx?x=" + taskID;
	
//	showAcceptedEventRequest(taskID);
	return false;

}
obj = null;
}

function addBirthdayOnclick(obj, username)
{
obj.onclick = function() {
	goToProfile(username);
	
//	showAcceptedEventRequest(taskID);
	return false;

}
obj = null;
}

function goToEventProfile(encItemID){

window.location = "/profile/calendar/event_details.aspx?x=" + encItemID;

}

function gotToTask(taskID){
window.location = "/myCalendar/event_details.aspx?x=" + taskID;

}

function goToProfile(username){
window.location = "/profile/" + username + ".aspx";
}

function addReplyOnclick(obj, taskID)
{
obj.onclick = function() {
	showReplyRequest(taskID);
	return false;

}
obj = null;
}






