﻿/*

This class generates a single event - laded from eventid in querystring
This is used when linking to a single event.

*/
var SingleEventDetail = Class.create({
	initialize: function(id)
	{
		this.id = id;
						
		this.details = '';
		
		this.containerEl = new Element('div', {'class': 'cal_listview', 'style': 'display:block; left: 675px'});
		
		//header (h2)
		this.navHeader = new Element('h2');
		
		this.backBtn = new Element('a', {'href': '#', 'class': 'page_previous'});	
		this.backBtn.update('&laquo;');
		
		this.navHeaderSpan = new Element('span', {'style': 'padding-left: 10px; text-align: left;'});						
		
		this.navHeader.appendChild(this.backBtn);
		this.navHeader.appendChild(this.navHeaderSpan);
		
		this.containerEl.appendChild(this.navHeader);		
		
		this.detailsEl = new Element('div', {'class': 'event-details'});
		
		this.containerEl.appendChild(this.detailsEl);
		$('cal_wrapper').appendChild(this.containerEl);
		var base = this;
		
		new Ajax.Updater(this.detailsEl, '/assets/ajax/handlers/event-detail.aspx',
		{
			method: 'get',
			parameters: { 'e': this.id },
			onComplete: function(transport)
			{ 	
				$(base.containerEl).style.left = '0px';
				bogusCal.currentViewEl = $(base.containerEl);
				var startDateStr = $(base.detailsEl).select('span.startDate')[0].innerHTML;
				var eventStartDate = new Date(startDateStr.substr(0,4), (startDateStr.substr(4, 2)-1), startDateStr.substr(6,2));
				bogusCal.setDate(eventStartDate);		
								
				Event.observe(base.backBtn, 'click', function(ev)
				{
					bogusCal.btnSelectDay_Click(ev);
				});
				base.navHeaderSpan.update(DateHelper.formatForOutput(eventStartDate));
				base.manageTags(base.detailsEl);				
			}
		});
	},
	manageTags: function(container)
	{
		var currentTag = bogusCal.tag;
		var base = this;
		$(container).select('ul.tag-chain li').each(function(tag)
		{
			if (currentTag == tag.select('a span')[0].innerHTML)
			{
				tag.addClassName('highlight');
			}			
			Event.observe(tag.select('a')[0], 'click', function(ev)
			{
				Event.stop(ev);
				var prevView = base.dt.parentNode.parentNode.id.substr(0, base.dt.parentNode.parentNode.id.length-4);
				bogusCal.currentView = prevView;
				bogusCal.setNewTag(this.firstChild.innerHTML);
				bogusCal.setupButtonState(prevView);
				bogusCal.showView(prevView + 'view');
			});
			
		});
	}	
});