$(document).ready(
	function() {
		
		/*Menu*/
		$('#nav ul:empty').replaceWith(''); /* Remove empty menus generated by the CMS */
		$('#nav').droppy(); /* Implement dropdowns */
		$('#nav li:has(ul li)>a').addClass('dropdown'); /* Add arrows */
		
		/*News*/
		$('#news_headline div:not(#news_1)').hide();
		var show1 = Math.random();
		var num_empty = $('li.news_list_0').length;
		show = show1 * (3 - num_empty);
		if (show >=0 && show <= 1) {
			$('#news_headline div:not(#news_1)').hide();
			$('#news_list_1').siblings('li').removeClass('active');
			$('#news_list_1').addClass('active');
			$('#news_1').show();
		} 
		else if (show > 1 && show <= 2) {
			$('#news_headline div:not(#news_2)').hide();
			$('#news_list_2').siblings('li').removeClass('active');
			$('#news_list_2').addClass('active');
			$('#news_2').show();
		}
		else {
			$('#news_headline div:not(#news_3)').hide();
			$('#news_list_3').siblings('li').removeClass('active');
			$('#news_list_3').addClass('active');
			$('#news_3').show();
		}
		$('#news_list_1').mouseover(
			function() {
				$('#news_headline div:not(#news_1)').hide();
				$('#news_1').show();
				$(this).siblings('li').removeClass('active');
				$(this).addClass('active');
			}
		);
		$('#news_list_2').mouseover(
			function() {
				$('#news_headline div:not(#news_2)').hide();
				$('#news_2').show();
				$(this).siblings('li').removeClass('active');
				$(this).addClass('active');
			}
		);
		$('#news_list_3').mouseover(
			function() {
				$('#news_headline div:not(#news_3)').hide();
				$('#news_3').show();
				$(this).siblings('li').removeClass('active');
				$(this).addClass('active');
			}
		);
		
		
		/*Ticker*/
		/*
		$('marquee').marquee().mouseover(function () {
            $(this).trigger('stop');
        }).mouseout(function () {
            $(this).trigger('start');
        });
		*/
		$('#deadlines').innerfade({ animationtype: 'slide', speed: 250, timeout: 3000, type: 'sequence', containerheight: '2em', runningclass: 'deadlines' });
		
		/*Search*/
		$("input#as_q").focus(function(){
			if ($(this).val() == "Search...")
				$(this).val("");
		});
		$("input#as_q").blur(function(){
			if ($(this).val() == "")
				$(this).val("Search...");
		});

		
		/* UV Link */
		$("#uv img").mouseover(function () {
            $(this).fadeTo(200, 1.00);
		}).mouseout(function () {
            $(this).fadeTo(200, .25);
        }).fadeTo(200, .25);
		
		/* Event Calendar */
		var today = new Date();
		render_calendar(today.getMonth(), today.getYear());
	}
);

function render_calendar(month, year) {
	var today = new Date();
	var t_month = today.getMonth();
	var t_date = today.getDate();
	var t_year = today.getYear();
	var months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
	var num_days = daysInMonth(month, year);
	var first_day = new Date(year, month, 1, 0, 0, 0, 0);
	var last_day = new Date(year, month, num_days, 0, 0, 0, 0);
	var first_day_of_week = first_day.getDay();
	var last_day_of_week = last_day.getDay();

	var events = [];
	var num_events = 0;
	var event_start = new Date();
	var event_end = new Date();
	
	for (var i = 1; i <= num_days; i++) {
		events[i] = '';
	}

	var dt_index = 0;
	$(".add-calendar dt").each(
		function() {
//			$(this).hide();
//			$(this).next('dd').hide();
			dt_index++;
			$(this).attr("id", "event" + dt_index);

			event_start = new Date(Date.parse($(this).next("dd").children("span.start_date").text()));
			event_end = new Date(Date.parse($(this).next("dd").children("span.end_date").text()));
			if (event_start.getTime() <= last_day.getTime() && event_end.getTime() >= first_day.getTime())
			{
//				$(this).show();
//				$(this).next('dd').show();
				if (event_start.getTime() < first_day.getTime())
					event_start = first_day;
				if (event_end.getTime() > last_day.getTime())
					event_end = last_day;
				for (var j = 1; j <= num_days; j++) {
					if (j >= event_start.getDate() && j <= event_end.getDate()) {
						if (events[j] == '')
							events[j] += dt_index;
						else
							events[j] += '-' + dt_index;
						num_events++;
					}
				}
			}
		}
	);
	var prev_month, prev_year, next_month, next_month;
	prev_month = month - 1;
	prev_year = year;
	if (prev_month < 0) { prev_month = 11; prev_year = year - 1; }
	next_month = month + 1;
	next_year = year;
	if (next_month > 11) { next_month = 0; next_year = year + 1; }
	
	var calendar  = '';
	calendar += '<table id="calendar" class="calendar" border="0" cellpadding="0" cellspacing="1">';
	calendar += '<tr><th id="cal_prev" onClick="render_calendar(' + prev_month + ',' + prev_year + ');">&laquo;</th>';
	calendar += '<th colspan="5">' + months[month] + ' ' + year + '</th>';
	calendar += '<th id="cal_next" onClick="render_calendar(' + next_month + ',' + next_year + ');">&raquo;</th></tr>';
	calendar += '<tr><th>S</th><th>M</th><th>T</th><th>W</th><th>T</th><th>F</th><th>S</th></tr>';
	
	var row = 0;
	var col = 0;
	var day = 1;
	
	if (first_day_of_week > 0)
	{
		calendar += '<tr><td class="empty" colspan="' + first_day_of_week + '"></td>';
		col += first_day_of_week;
	}
	
	
	while (day <= num_days) {
		if (col == 0)
			calendar += '<tr>';

		calendar += '<td id="day' + day + '" class="';
		if (day == today.getDate() && month == today.getMonth() && year == today.getYear())
			calendar += 'today';

		if (events[day] != '')
			calendar += ' event">' + day + '</td>';
		else
			calendar += '">' + day + '</td>';

		col++;
		day++;
		if (col >= 7) {
			col = 0;
			row++;
			calendar += '</tr>';
		}
		
	}
	if (last_day_of_week > 0) {
		calendar += '<td class="empty" colspan="' + ( 6 - last_day_of_week ) + '"></td></tr>';
		col += first_day_of_week;
	}
	
	calendar += '</table>';
//	if (num_events == 0)
//		calendar += '<p class="calendar">There are no featured upcoming events this month.  Check the more detailed <a href="index.cfm?lang=EN&pageID=116&type=page">Courses</a> and <a href="index.cfm?lang=EN&pageID=119&type=page">Events</a> pages for full listings.</p>';
	$(".calendar").remove();
	$(".add-calendar").before(calendar);
	
	for (var k = 1; k <= num_days; k++) {
		if (events[k].length > 0) {
			$('#day' + k).bind('mouseover', {de: events[k], state: 'on'}, calendar_toggle)
								.bind('mouseout', {de: events[k], state: 'off'}, calendar_toggle);
		}
	}
}

function calendar_toggle(event) {
	var days_events = event.data.de.split('-');
	for (var l = 0; l < days_events.length; l++) {
		if (event.data.state == 'on') {
			$('#event' + days_events[l]).addClass('hilite').next('dd').addClass('hilite');
		} else {
			$('#event' + days_events[l]).removeClass('hilite').next('dd').removeClass('hilite');
		}

	}
}
function daysInMonth(month,year) {
	var m = [31,28,31,30,31,30,31,31,30,31,30,31];
	if (month != 1) return m[month];
	if (year%4 != 0) return m[1];
	if (year%100 == 0 && year%400 != 0) return m[1];
	return m[1] + 1;
} 
