/***********************************
*
*	Online Calendar v1.1
*	Copyright (c) Southburn Web Services 2010
*	http://southburn.ca
*
***********************************/

jQuery.fn.loadCalendar = function() {
	var args = arguments[0] || {};
	var con = $(this);
	args.areaid = args.areaid ? args.areaid : 0;
	args.dir = args.dir ? args.dir : "";
	args.large = args.large ? args.large : "";
	args.edit = args.edit ? args.edit : "";


	//put the div into loading state
	con.html("<div style='text-align: center; width: 230px; padding-top: 80px; padding-bottom: 60px; border: 0px;'><img src='/icon/loading.gif' style='margin: 0px;'> Loading...</div>");
	$(".sbCalChange").unbind();
	
	
	jQuery.post("/json.php", { calendar: true, load: args.areaid, dir: args.dir, large: args.large }, function(rec) {
		var cal = $.evalJSON(rec);
		var r = "";
		
		if(cal.result == "1")
		{
			//insert the table - clears out old one if it exists too
			con.html("<table id='sbCal' class='calendar' style='width: "+cal.width+"px; font-size: "+cal.font_size+"px;'></table>");

			//insert the title and days of the week
			r += "<tr style='height: "+cal.title_height+"px;'><td style='border: 0px; text-align: center;'><span class='sbCalChange' rel='-1'>[<]</span></td>";
			r += "<td colspan='5' class='title'>"+cal.month+"</td>";
			r += "<td style='border: 0px; text-align: center;'><span class='sbCalChange' rel='1'>[>]</span></td></tr>";
			r += "<tr style='height: "+cal.head_height+"px;'><th width='"+cal.cell_width+"'>S</th><th width='"+cal.cell_width+"'>M</th><th width='"+cal.cell_width+"'>T</th><th width='"+cal.cell_width+"'>W</th><th width='"+cal.cell_width+"'>T</th><th width='"+cal.cell_width+"'>F</th><th width='"+cal.cell_width+"'>S</th></tr>";
			$("#sbCal").append(r);
			
			//go through each row and insert
			//<tr style='height: "+cal.cell_height+"px;'>
			for(var i = 0; i < cal.row.length; i++)
			{
				var s = "<tr style='height: "+cal.cell_height+"px;'>";
				for(var j = 0; j < cal.row[i].length; j++)
				{
					var cur = cal.row[i][j];
					
					s += "<td style='"+cur["style"]+"' rel='"+cur["rel"]+"' clickable='"+cur["click"]+"'>"+cur["text"];
					if(args.edit == "1") {
						s += "<span><br><a href='?event&date="+cur["ts"]+"'><img src='/icon/calendar_add.png' title='Add an event'></a></span>";
					}
					s += "</td>";
				}
				s += "</tr>";
				$("#sbCal tr:last").after(s);
				//alert(cal.row[i]);
			}
			
			$(".sbCalChange").css("cursor", "pointer").click(function() {
				con.loadCalendar({dir: $(this).attr("rel"), areaid: args.areaid, large: args.large, edit: args.edit});
			});
			
			$("[clickable=1]").css("cursor", "pointer").click(function() {
												     
				jQuery.post("/json.php", { day: $(this).attr("rel"), load: args.areaid, edit: args.edit }, function(rec) {

					var day = $.evalJSON(rec);
					var s = "";
					
					//build string of content for dialog
					if(day.ev == null)
					{
						s = "<img src='/icon/error.png'> No events were found for today.";
					}
					else
					{
						for(var i = 0; i < day.ev.length; i++)
						{
							var cur = day.ev[i];
							s += "<div class='eventBox'><span class='eventName'>";		
							
							if(args.edit == "1")
								s += "<a href='?event="+cur["id"]+"'><img src='/icon/calendar_edit.png'> ";
							
							s += cur["name"];
							if(args.edit == "1") { s += "</a>"; }
							s += "</span><br>";
							s += "<span class='eventDateRange'>"+cur["range"]+"</span>";
							
							if(args.edit != "1" && cur["length"] > 0)
								s += "<br><a style='font-size: .8em; color: #900;' href='/"+cur["calling"]+"/event/"+cur["id"]+"/'>more information [>]</a>";
							
							s += "</div>";
						}
					}
					
					//update dialog and show
					$("#dialog").dialog({ title: day.title, width: 400 });
					$("#dialog").html(s);
					$("#dialog").dialog("open");
	
				});
				
			});

		}
		
		else
		{
			con.find("div").html("<img src='/icon/error.png'> The calendar could not be loaded.");
		}
			
	});
	
};
