var calendarTitle;

function cal_generatehtml(data,elem)
{
	$(elem).empty();
	calendarTitle = data.title;
	$(elem).data('title.dialog', calendarTitle);
	
	var url = '';
	
	if(data.url.indexOf('http://') != -1)
	{
		url = data.url;
	}
	else
	{
		url = 'http://'+data.url;
	}
	var html = '<div class="eventdetail">\
		<table>\
		<tr>\
			<td>Beginn</td>\
			<td>'+data.beginn_datum+' '+data.beginn_uhrzeit+'</td>\
		</tr>\
		<tr>\
			<td>Ende</td>\
			<td>'+data.ende_datum+' '+data.ende_uhrzeit+'</td>\
		</tr>\
		<tr>\
			<td>Veranstalter</td>\
			<td>'+data.v_name+'</td>\
		</tr>\
		<tr>\
			<td>Veranstaltungsort</td>\
			<td>'+data.vo_name+'</td>\
		</tr>\
		<tr>\
			<td>Straße</td>\
			<td>'+data.vo_strasse+'</td>\
		</tr>\
		<tr>\
			<td>PLZ</td>\
			<td>'+data.vo_plz+'</td>\
		</tr>\
		<tr>\
			<td>Ort</td>\
			<td>'+data.vo_ort+'</td>\
		</tr>\
		<tr>\
			<td>Veranstaltungsname</td>\
			<td>'+data.v_name+'</td>\
		</tr>\
		<tr>\
			<td>Kosten</td>\
			<td>'+data.kosten+'</td>\
		</tr>\
		<tr>\
			<td>E-Mail</td>\
			<td>'+data.email+'</td>\
		</tr>\
		<tr>\
			<td>Telefon</td>\
			<td>'+data.v_telefon+'</td>\
		</tr>\
		<tr>\
			<td>Telefax</td>\
			<td>'+data.v_fax+'</td>\
		</tr>\
		<tr>\
			<td>Weitere Infos</td>\
			<td><a href="'+url+'" target="_blank">'+data.url+'</a></td>\
		</tr>\
		<tr>\
			<td valign="top">Beschreibung</td>\
			<td>'+data.beschreibung+'</td>\
		</tr>\
		</table>\
		</div>';
	$(elem).append(html);
	$(elem).find('td:contains("undefined")').parent().remove();
	$(elem).find('td:contains("NULL")').parent().remove();
	//$(elem).find('td:contains("")').parent().remove();
}
//event holen
function cal_getevent(calID, eventID, global,elem)
{
	$.post("/service.php", { service: "calendar", action: "getDetail", id:calID, eventID:eventID, global:global }, function(data)
	{
		cal_generatehtml(data, elem);
	},'json');
}
//event detailbox anzeigen
function cal_showdetail(calID, eventID, global)
{
	if ( $('.cal_showevent').length == 0)
	{
		$('<div class="cal_showevent"></div>').appendTo('body');
	}
	var elem = $('.cal_showevent');
	
	if(elem.dialog('isOpen'))
	{
		cal_getevent(calID, eventID, global, elem);
	}
	else
	{
		elem.dialog(
		{
			height:300,
			width:460,
			title: calendarTitle,
			open:function()
			{
				elem.empty();
				cal_getevent(calID, eventID, global, elem);
			},
			close:function()
			{
				elem.dialog('destroy');
			}
			
		});
	}
}


$.fn.calendar = function()
{
	$(this).each(function() {
		var element = $(this);
		var calendarID = $(this).attr('id');
		var eventList = $(this).children('.events');
		
		var date = new Date();

		$(this).find('.beginn_datum').datepicker().datepicker('setDate',date);
		//$(this).find('.ende_datum').datepicker().datepicker('setDate',date.goto(7) );
		$("#ui-datepicker-div").css({'z-index':'1006'});

		var start = element.find('.beginn_datum').datepicker('getDate');
		//var end = element.find('.ende_datum').datepicker('getDate');
		var end = new Date(start);
		end = end.goto(20000);
		//$('#calGlobal .date ').
		//$("#ui-datepicker-div").css({'z-index':'1006'});
		get(eventList, sqlDate(start), sqlDate(end ), 'all');
		
		$(this).find('.abrufen').click(function() {
			var start = element.find('.beginn_datum').datepicker('getDate');
			//var end = element.find('.ende_datum').datepicker('getDate');
			var end = new Date(start);
			end = end.goto(20000);
			//var start = $(this).parent().
			//element.find('start_date').val()
			get(eventList, sqlDate(start), sqlDate(end), 'all');
		});
		
		function get(elem,start,end, content)
		{
			$.ajax({
				type:'post',
				url:'/service.php',
				data:({'service':'calendar', 'action':'get','start':start,'end':end, 'content':content,'id':calendarID}),
				global:false,
				dataType:"json",
				beforeSend:function()
				{
					loading(elem);
				},
				success:function(data)
				{
					var html="";

					for(key in data)
					{					
						if(key%2)
							var style="cal_even";
						else
							var style="cal_odd";
							
						html += '<div class="entry '+style+'">\
						<input type="hidden" class="id" value="'+data[key].id+'"/>\
						<input type="hidden" class="global" value="'+data[key].global+'"/>\
						<p>Von:'+data[key].beginn_datum+' Bis:'+data[key].ende_datum+'</p>\
						<p><b>'+data[key].title+'</b></p>\
						<p>'+data[key].v_name+'</p>\
						<p>'+data[key].vo_name+'</p>\
						<p>'+data[key].vo_ort+'</p>\
						<a href="#" class="detail">Details</a>\
						</div>';
					}
					html = $.trim(html);
					//alert(cal.list_element);
					//alert(elem);
					update(elem, html);
				}
			});
		}
		function update(elem, data)
		{
			$(elem).empty();
			$(elem).append(data);
			element.find('.entry .detail').click(function(e) {
				var id = $(this).parent('.entry').children('.id').attr('value');
				var global = $(this).parent('.entry').children('.global').attr('value');
				cal_showdetail(calendarID, id, global)
				e.preventDefault();
			});
		}
		function loading(elem)
		{
			$(elem).empty();
			$(elem).append('<img src="/data/img/loading.gif" alt="loading" />');
		}
		function sqlDate(date)
		{
			return $.datepicker.formatDate('yy-mm-dd', date);
		}
	});
}

