//-------------------------------------------------------------------
//Calendar functions
//-------------------------------------------------------------------
function small_cal_events(me){
	var events = me.find("td.ui-state-hover");
	events.click(function(event){
		var me = $(this);
		var dt = mysql_date(me.attr("id").replace("d_", "") + " 00:00:00");
		var next_dt = new Date(dt);
		next_dt.setDate(dt.getDate()+1);
		
		var html = "<div title='Events on " + dt.toDateString() + "' class='calendar_details'>";
		$.each(window[me.parents("table.small_calendar").attr("id").replace("calendar_", "") + "_snippet_json"], function(i, n){
			var date = {start: mysql_date(n.start_date), end: mysql_date(n.end_date)};
			if(date.start < next_dt && date.end >= dt){
				if(n.title != null){
					html += "<h2>" + n.title + "</h2>";
				}
				html += "<div style='margin-bottom:20px;'><p>" + (date.start.toDateString() != dt.toDateString() ? date.start.toDateString() + " " : "") + time_format(date.start) + " - " + (date.end.toDateString() != dt.toDateString() ? date.end.toDateString() + " " : "") + time_format(date.end) + "</p>" + n.html + "</div>";
			}
		});
		html += "</div>";
		
		$(html).appendTo("body").dialog({width: 500, modal: true});
		
		event.preventDefault();	
	}).prop("title", null);
}

function event_titles(){
	$("ul.event_snippet.title_list > li").children("div").hide().siblings("h3, h4").unbind("click").click(function(event){
		$(this).siblings("div").slideToggle();
		event.stopPropagation();
		event.preventDefault();
	});
}
//-------------------------------------------------------------------

$(document).ready(function(){
	
	//-------------------------------------------------------------------
	//News Snippet Code
	//-------------------------------------------------------------------
	$("div.news_snippet.title_list div.news_article").hide();
	$("div.news_snippet.title_list div.news > h3 > a").addClass("fugue").addClass("fugue-toggle-expand");
	
	$("div.news_snippet.sum_list div.news_article").css("font-size", "1em").each(function(){
		var me = $(this);
		var height = $("body").css("font-size").match(/\d+/);
		if(me.height() / Number(height[0]) > 5){
			me.css("height", "5em").css("overflow", "hidden").parent().append("<a class='expand_contract fugue fugue-toggle-expand' href='#'>More...</a>");
		}
	});
	$("div.news_snippet.sum_list a.expand_contract").click(function(event){
		var me = $(this);
		var sib = me.siblings("div.news_article");
		
		if(sib.css("overflow") == "hidden"){
			sib.css("overflow", "").css("height", "auto");
			me.removeClass("fugue-toggle-expand").addClass("fugue-toggle").html("Less...");
		}
		else{
			sib.css("overflow", "hidden").css("height", "5em");
			me.addClass("fugue-toggle-expand").removeClass("fugue-toggle").html("More...");
		}
		
		event.preventDefault();
		event.stopPropagation();
	});
	
	$("div.news_snippet.title_list div.news > h3 > a").click(function(event){
		var me = $(this);
		var article = me.parent().siblings("div.news_article")
		if(!me.hasClass("fugue")) me.addClass("fugue");
		
		if(article.is(":visible")){
			me.addClass("fugue-toggle-expand").removeClass("fugue-toggle");
		} else me.removeClass("fugue-toggle-expand").addClass("fugue-toggle");
		
		article.slideToggle();
		event.preventDefault();
	});
	$("div.news_nav a").live("click", function(event){
		var me = $(this);
		$.getJSON(me.attr("href"), {ajax: 1, snippet_name: me.parents(".news_snippet").attr("id").replace("_news_snippet", "")}, function(data){
			if(data.news){
				me.parents(".news_snippet").replaceWith(data.news);
			}
		});
		event.preventDefault();
	});
	//-------------------------------------------------------------------
	
	//-------------------------------------------------------------------
	//Calendar Snippet Code
	//-------------------------------------------------------------------
	$("table.snippet_events > thead a").live("click", function(event){
		var me = $(this);
		var id = me.parents("table").attr("id").replace("calendar_", "");
		var tbl = me.parents("table");
		$.getJSON(
			me.attr("href"), 
			{ajax: 1, snippet_name: id},
			function(data, textStatus, jqXHR){
				window[id + "_snippet_json"] = data.json;
				var tbl2 = $(data.table)
				tbl2.replaceAll(tbl);
				small_cal_events(tbl2);
			});
		event.preventDefault();
	});
	
	$("table.snippet_events.small_calendar").each(function(i, obj){
		small_cal_events($(obj));
	});
	
	event_titles();
	
	$("li.snippet_events_more").live("click", function(event){
		var me = $(this);
		$.getJSON(me.children("a:first-child").attr("href"), {ajax: 1, snippet_name: me.parent("ul").attr("id").replace("calendar_", "")}, function(data){
			if(data.ul){
				var lis = $(data.ul).children();
				me.replaceWith(lis);
				event_titles();
			}
		});	
		
		event.stopPropagation();
		event.preventDefault();
	});
	//-------------------------------------------------------------------
	
});
