﻿


function Event(id, header, occasions, signUp, futureSignUpContact, contact, infoLink, description)
{
	this.Id = id;
	this.Header = header;
	this.Occasions = new Array();
	this.SignUp = Site.FindId(signUp);
	this.FutureSignUpContact = Site.FindId(futureSignUpContact);
	this.Contact = Site.FindId(contact);
	this.InfoLink = Site.FindId(infoLink);
	this.Description = description;

	occasions = occasions.split("|");
	for (var i = 0; i < occasions.length; i++)
	{
		var data = occasions[i].split(";");
		var text = null;
		var startDate = new Date();
		var stopDate = new Date();
		if (data.length > 0)
			text = data[0];
		if (data.length > 2)
		{
			var dateString1 = data[1].split("-");
			var dateString2 = data[2].split("-");
			startDate.setFullYear(parseInt(dateString1[0]), parseInt(dateString1[1]) - 1, parseInt(dateString1[2]));
			stopDate.setFullYear(parseInt(dateString2[0]), parseInt(dateString2[1]) - 1, parseInt(dateString2[2]));
			this.Occasions.push(new EventOccasion(Locations.Get(text), startDate, stopDate));
		}
		else if (data.length > 1)
		{
			var dateString = data[1].split("-");
			startDate.setFullYear(parseInt(dateString[0]), parseInt(dateString[1]) - 1, parseInt(dateString[2]));
			this.Occasions.push(new EventOccasion(Locations.Get(text), startDate, null));
		}
		else
			this.Occasions.push(new EventOccasion(Locations.Get(text), null, null));

	}
}

Event.ExpandedDescription = null;

Event.ViewDescription = function (id)
{
	var element = Events.GetDescription(id);

	if (Event.ExpandedDescription != null && element.Id != Event.ExpandedDescription.Id)
	{
		Event.ExpandedDescription.style.display = "none";
		Event.ExpandedDescription = null;
	}

	if (element != null)
	{
		if (element.style.display == "block")
		{
			element.style.display = "none";
			Event.ExpandedDescription = null;
		}
		else
		{
			element.style.display = "block";
			Event.ExpandedDescription = element;
		}
	}

	window.onresize();
}

Event.IsHistoric = function (event)
{
	var hasNoDate = true;
	for (var i = 0; i < event.Occasions.length; i++)
		if (event.Occasions[i].StartDate != null)
		{
			hasNoDate = false;
			if (event.Occasions[i].StopDate != null)
			{
				if (TimeDate.Compare(event.Occasions[i].StopDate, Network.ServerTime) == 1)
					return false;
			}
			else if (TimeDate.Compare(event.Occasions[i].StartDate, Network.ServerTime) == 1)
				return false;
		}
	if (hasNoDate)
		return false;
	return true;
}
