//JavaScript Ajax function for the OlefaCalendar module
//This appeared in Olefa 11.x
//Contributors: Laurent Hever
//Contributors: Xavier Maquil

jQuery(document).ready(function(){
	jQuery('.minicalendar_event').live('click', function(){
		var month 		= jQuery('#minicalendar_currentMonth').attr('value');
		var year 		= jQuery('#minicalendar_currentYear').attr('value');
		var calendars 	= jQuery('#minicalendar_calendars').attr('value');
		var day			= jQuery(this).attr('id');
		day 			= day.substr(13);
		if (day<=9) {
		day = "0"+day;
		}
		
		var pData = {
				sid			: sid,
				com			: com,
				mode		: 'generateDayView',
				calendar	: calendars,
				day			: day,
				month		: month,
				year		: year
		};
		
		jQuery.ajax({
			url: '/cgi-bin/apps/ajax/olefacalendar',
			type: 'POST',
			timeout: 20000,
			data: pData,
			dataType: 'json',
			beforeSend:function(){
				ajax_loader("#miniCalendarTable");
			},
			success: function(json){
				jQuery('#minicalendar_ajax_loader').remove();
				var jDialog = jQuery(json.html).dialog({
					buttons : {
						'Close' : function() {
							jQuery(this).dialog('close');
						}
					},
					width : 500,
					modal : true
				});
			},
			error:function(){
				//removeAjaxLoader("#olefaCalendar_holder");
				jQuery('#minicalendar_ajax_loader').remove();
				var title 	= "Error";
				var content = "An error occured during the request, please try again later!";
				
				var jDialog = dialog(title, content, 0).dialog({
					buttons : {
						'Close' : function() {
							jQuery(this).dialog('close');
						}
					},
					width : 300,
					modal : true
				});
			}
		});
	});
	
	jQuery('#minicalendar_previousMonth').live('click', function(){
		var month 		= jQuery('#minicalendar_currentMonth').attr('value');
		var year 		= jQuery('#minicalendar_currentYear').attr('value');
		var calendars 	= jQuery('#minicalendar_calendars').attr('value');
		
		if(month > 1){
			month--;
		}else{
			month = 12;
			year--;
		}
		
		var pData = {
				sid			: sid,
				com			: com,
				mode		: 'showMonth',
				calendars	: calendars,
				month		: month,
				year		: year
		};
		
		jQuery.ajax({
			url: '/cgi-bin/apps/ajax/olefacalendar',
			type: 'POST',
			timeout: 20000,
			data: pData,
			dataType: 'html',
			beforeSend:function(){
				ajax_loader("#miniCalendarTable");
			},
			success: function(html){
				jQuery('#minicalendar_ajax_loader').remove();
				jQuery('#miniCalendarTable').remove();
				jQuery('#minicalendar_currentMonth').remove();
				jQuery('#minicalendar_currentYear').remove();
				jQuery('#olefacalendar_miniview_holder').append(html);
			},
			error:function(){
				//removeAjaxLoader("#olefaCalendar_holder");
				jQuery('#minicalendar_ajax_loader').remove();
				var title 	= "Error";
				var content = "An error occured during the request, please try again later!";
				
				var jDialog = dialog(title, content, 0).dialog({
					buttons : {
						'Close' : function() {
							jQuery(this).dialog('close');
						}
					},
					width : 300,
					modal : true
				});
			}
		});
		
	});
	
	jQuery('#minicalendar_nextMonth').live('click', function(){
		var month		= jQuery('#minicalendar_currentMonth').attr('value');
		var year		= jQuery('#minicalendar_currentYear').attr('value');
		var calendars	= jQuery('#minicalendar_calendars').attr('value');
		
		if(month < 12){
			month++;
		}else{
			month = 1;
			year++;
		}
		
		var pData = {
				sid			: sid,
				com			: com,
				mode		: 'showMonth',
				calendars	: calendars,
				month		: month,
				year		: year
		};
		
		jQuery.ajax({
			url: '/cgi-bin/apps/ajax/olefacalendar',
			type: 'POST',
			timeout: 20000,
			data: pData,
			dataType: 'html',
			beforeSend:function(){
				ajax_loader("#miniCalendarTable");
			},
			success: function(html){
				jQuery('#minicalendar_ajax_loader').remove();
				jQuery('#miniCalendarTable').remove();
				jQuery('#minicalendar_currentMonth').remove();
				jQuery('#minicalendar_currentYear').remove();
				jQuery('#olefacalendar_miniview_holder').append(html);
			}
		});
		
	});
	
	jQuery('#dialog_image').remove();
	
	
	function ajax_loader(div){
		var ajax = "<div id='minicalendar_ajax_loader'><div class='loader_img'><img src='/osr/icons/browse/loading.gif'></div></div>";
		jQuery(div).before(ajax);
	}
});

