// Wolf Trap namespace
var KOROWA = {};

KOROWA.vars = {
	// directions for calendar (classes)
	up : "up",
	down : "down",
	left : "left",
	right : "right",
	// other
	onData : "on",
	grid : "grid",
	tabs : '<div class="tabs clearfix"><div id="tabCalendar" class="tab">Calendar View<\/div><div id="tabList" class="tab">Lists View<\/div><\/div>'
}

KOROWA.closeDay = function(e){
	$('#calBig.grid div.calDayData').hide().parent().removeClass(KOROWA.vars.onData);
	e.stopPropagation();
};

KOROWA.setupGrid = function(){
	// IE6- rules
	if ($.browser.msie == true && $.browser.version < 7) {
		$('#calBig #calDays ul.calDayShort li:first-child').addClass('first-child');
		$('#calBig #calHeader ul li:first-child').addClass('first-child');
		$('#calBig.grid #calDays li.data').hover(
			function(){
				$(this).addClass('hover')
			},
			function(){
				$(this).removeClass('hover')
			}
		)
	}
	
	// show close links for big calendar
	if ( $('#calBig.grid div.calDayData span.close').size() < 1 ) {
		$('#calBig.grid div.calDayData').prepend('<span class="close">Close</span>');
	}
	$('#calBig.grid div.calDayData span.close').show().click(KOROWA.closeDay);

	// if grid is not set up
	var strs = "li." + KOROWA.vars.up + ", li." + KOROWA.vars.down + ", li." + KOROWA.vars.left + ", li." + KOROWA.vars.right;
	if ( $(strs, '#calBig.grid').size() < 1 ) {
		// get current Year and Month
		var yearMonth = $('#calBig #calHeader').get(0);
			yearMonth = yearMonth.className.split(" ");
		var month = yearMonth[0]-1; 
		var year = yearMonth[1];
		var start = new Date(year, month).getDay();

		$('#calBig #calDays li.data').each(function() {
			var thisDayNum = parseInt($(this).find('div:first-child').text());
			var thisDate = new Date(year, month, thisDayNum).getDay();
			// what day of week to place right or left
			(thisDate >= 4)||(thisDate==0) ? $(this).addClass(KOROWA.vars.left) : $(this).addClass(KOROWA.vars.right);
			// ((start date + day) / 7)+1 = what week is it? up or down
			var work = parseInt(((start + thisDayNum)/7)+1);
			(work > 3) ? $(this).addClass(KOROWA.vars.up) : $(this).addClass(KOROWA.vars.down);
		});
	};
	
	// show day detail
	$('#calBig li.data').click(function(event) {
		KOROWA.closeDay(event);
		$(this).addClass(KOROWA.vars.onData).find('div.calDayData').show();
	});

	// TODO: this needs to key off the "body" element
	$('#calBig.grid').parent().click(KOROWA.closeDay);
}

$(document).ready(function() {
	
	// if big calendar exists, set it up
	if ( $('#calBig').size() > 0 ) {
		$('#tabs').replaceWith(KOROWA.vars.tabs);
		// start with calendar view even tho page defaults to list
		if ($('#calBig').get(0).className == "list") {
			$('#calBig').removeClass("list").addClass("grid");
		}
		KOROWA.setupGrid();
	};
	
	$('input.tag_label').change(function() {
		label = 'li.tag_' + $(this).val();
		divLabel = 'div.tag_' + $(this).val();
		if (this.checked) {
			$(label).show();
			$(divLabel).show();
		} else {
			$(label).hide();
			$(divLabel).hide();
		}
	});
	
	// open in new window
	$('a.open-new-window').each(function() {
		$(this).click(function(){window.open(this.href);return false;});
	});

});
