jQuery(function($)
{
	// custom scroll bars
	CSBfleXcroll('scroll');

	// http://www.leftrightdesigns.com/library/jquery/nospam/
	$('.mailto').nospam({filterLevel:'low'});

	// IE6 png fix (apply to all png images)
	$('img[src$=.png], input[src$=.png], .header, .section-link').ifixpng();

	// google calendar
	if ($('#calendarBodyDiv').length)
	{
		fleegix.date.timezone.zoneFileBasePath = '/js/tz';
		fleegix.date.timezone.init();
		
		var eventWin = false;
		
		function main() 
		{
			var calendar = new calvis.Calendar();

			// set the CSS IDs for various visual components for the calendar container
			calendar.setCalendarBody('calendarBodyDiv');
			//calendar.setStatusControl('statusControlDiv');
			calendar.setNavControl('navControlDiv');
			calendar.setViewControl('viewControlDiv');
			calendar.setEventCallback('mouseover', displayEvent);

			// set the calenar to pull data from this Google Calendar account
			calendar.setPublicCalendar(calId);
			//calendar.setLoginControl('loginControlDiv');  

			calendar.setDefaultView('month');

			// display the calendar
			calendar.render();
		}

		function displayEvent(event) 
		{
			var title = event.getTitle().getText();  
			var start_date = event.getTimes()[0].getStartTime().getDate();
			var end_date = event.getTimes()[0].getEndTime().getDate();
			var desc = event.getContent().getText();  

			if (calTz)
			{
				var dt = new fleegix.date.Date();
				dt.setTimezone(calTz?calTz:'America/Los_Angeles');
				dt.setTime(start_date.getTime());
			}
			else
			{
				var dt = new fleegix.date.Date();
				dt.setTime(start_date.getTime());
			}

			var dt_display = fleegix.date.util.strftime(dt,'%b %e, %Y %l:%M%p');

			if (end_date)
			{
				if (calTz)
				{
					var edt = new fleegix.date.Date();
					edt.setTimezone(calTz?calTz:'America/Los_Angeles');
					edt.setTime(end_date.getTime());
				}
				else
				{
					var edt = new fleegix.date.Date();
					edt.setTime(end_date.getTime());
				}
				
				dt_display += ' - ' + fleegix.date.util.strftime(edt,'%l:%M%p');
			}

			if (calTz)
			{
				dt_display += ' ' + dt.getTimezoneAbbreviation();
			}

			var id = "#eventDisplayDiv";
			$(id).empty();

			var timezone = start_date.toString().split('GMT',start_date)[1];
			var format = timezone ? 'mmm d, yyyy h:MM TT' : 'mmm d, yyyy h:MM TT Z' ;
			timezone = timezone ? ' GMT' + timezone : '' ;
			
			if (title) $(id).append('<p><strong>Featuring:</strong> ' + title + '</p>');
			if (desc) $(id).append('<p><strong>Description:</strong> ' + desc + '</p>');
			if (start_date) $(id).append('<p><strong>Date:</strong> ' + dt_display + '</p>');

			eventWin = true;
			$(id).css('opacity',0).animate({opacity:1},{duration:500,queue:false});
		}
		
		$('#calendarBodyDiv').mouseout(function(e)
		{
			if ($(e.target).hasClass('event'))
			{
				eventWin = false;
				$("#eventDisplayDiv").hide();
			}
		});

		$('#calendarBodyDiv').mousemove(function(e)
		{
			if (eventWin)
			{
				$("#eventDisplayDiv").show().css({'position':'absolute','top':e.pageY+10,'left':e.pageX+10});

				if ((e.pageX+$("#eventDisplayDiv").outerWidth()+10) > $(window).width())
				{
					$("#eventDisplayDiv").css('left',e.pageX-($("#eventDisplayDiv").outerWidth()+5));
				}
			}
			else
			{
				$("#eventDisplayDiv").hide();
			}
		});

		calvis.ready(main);
	}
});