// JavaScript Document
// Author ITsens

/* Dutch (UTF-8) initialisation for the jQuery UI date picker plugin. */
jQuery(function($){
	$.datepicker.regional['nl'] = {clearText: 'Wissen', clearStatus: 'Wis de huidige datum',
		closeText: 'Sluiten', closeStatus: 'Sluit zonder verandering',
		prevText: '&lt;Terug', prevStatus: 'Laat de voorgaande maand zien',
		nextText: 'Volgende&gt;', nextStatus: 'Laat de volgende maand zien',
		currentText: 'Vandaag', currentStatus: 'Laat de huidige maand zien',
		monthNames: ['Januari','Februari','Maart','April','Mei','Juni',
		'Juli','Augustus','September','Oktober','November','December'],
		monthNamesShort: ['Jan','Feb','Mrt','Apr','Mei','Jun',
		'Jul','Aug','Sep','Okt','Nov','Dec'],
		monthStatus: 'Laat een andere maand zien', yearStatus: 'Laat een ander jaar zien',
		weekHeader: 'Wk', weekStatus: 'Week van het jaar',
		dayNames: ['Zondag','Maandag','Dinsdag','Woensdag','Donderdag','Vrijdag','Zaterdag'],
		dayNamesShort: ['Zon','Maa','Din','Woe','Don','Vri','Zat'],
		dayNamesMin: ['Zo','Ma','Di','Wo','Do','Vr','Za'],
		dayStatus: 'DD', dateStatus: 'D, M d',
		dateFormat: 'dd.mm.yyyy', firstDay: 1, 
		changeMonth: true,
		initStatus: 'Kies een datum', isRTL: false};
	$.datepicker.setDefaults($.datepicker.regional['nl']);
});


Calendar = function(){};
Calendar.prototype = 
{
	XML: '',
	days: []
};

calendar = new Calendar();
	

function cal_switch_view(vw) {
}

function startCalendar(data, status) {
	// load month from server
	parseXML(data, status);
	
	// show calendar
	$('#calendartest').datepicker($.extend(
		{
			showStatus: false,
			showWeeks: true,
			showOtherMonths: true,
			changeFirstDay: false,
			onChangeMonthYear: function (d,m,inst) {
			},
			beforeShow: function (input) { 
			},
			beforeShowDay: markedDays,
			dateFormat: 'dd.mm.yyyy',
			hideIfNoPrevNext: true,
			showWeek: true
		},
		$.datepicker.regional['nl']
	));
	
	init_month();
	
}

//this function is called from within the datepicker and gives the dates from the xml a different css
function markedDays(date)	{
	for(day in calendar.days) {
		var strDate = calendar.days[day];
		if(Number(strDate.split('-')[0]) == date.getDate() &&
					(Number(strDate.split('-')[1]) - 1) == date.getMonth() &&
					Number(strDate.split('-')[2]) == date.getFullYear()) {
			return [false,'cssClassForDaysWithEvent',strDate];
		}
	}
	return [false,''];
}


function init_month() {
	// show monthname
	$("#monthName").html($(".ui-datepicker-month option:selected").text());

	// copy title attribute to name, because the tooltip removes the title :-(
	$('.cssClassForDaysWithEvent').each(function (i) {
		$(this).attr('name',$(this).attr('title'));
	})

	// remove title attribute
	$('.cssClassForDaysWithEvent').attr('title','');

	
	// tooltips
	$('.cssClassForDaysWithEvent').each(function() {
		var html = '';
		$('.day_' + $(this).attr("name")).each(function(i) {
			html += $(this).html();
		})
		activate_tooltip($(this).find('span'),html,'',{position: "bottom left", offset: [0,0]});
	})
	
}

function show_calendar_tooltip() {
	var html = '';
	var hover_date = $(this).parent().attr("name")
	$('.day_' + hover_date).each(function(i) {
		html += $(this).html();
	})
	$('#tooltip2').html(html);
	$('#tooltip2').slideDown('slow');

}

function hide_calendar_tooltip() {
//	$('#tooltip2').hide(200);
//	$('#debug_layer').html($('#debug_layer').html() + ' out')
}

function switch_calendar(cal_id) {
	// array <calender_tab> is defined in the 
	// reset all tabs
	for (tab in calender_tab) {
		document.getElementById('tab_' + calender_tab[tab]).className = '';
	}
	// activate tab
	document.getElementById('tab_' + cal_id).className = 'header_tab_selected';
	
	// show selected calendar
	document.getElementById('cal_view').value = '';
	vCAL_ID = cal_id;
	trans_ajax('CAL101','calendar_content','<%MG_BLK_ID%>',cal_id,'switch');
}

function loadMonth(successFunction, param2) {
	var url = tr_url + 'CAL201&PARAM1=' + vCAL_ID + '&PARAM2=' + param2 + '&cal_view=month&cal_datefrom=' + $('#cal_datefrom').val();
	$.ajax({
		type: 'GET',
		url: url,
		dataType: 'xml',
		success: successFunction,
		error: parseXML
	});
}

function nextMonth() {
	loadMonth(nextMonthSuccess, 'plus');
}

function nextMonthSuccess (data, status) {
	parseXML(data, status);
	
	//$('#calendartest').datepicker( "setDate" , '+1m' );
	//jQuery.datepicker._adjustDate(0, +1, 'M');
	//DP_jQuery.datepicker._adjustDate('#calendartest', +1, 'M');
	$.datepicker._adjustDate('#calendartest', +1, 'M');
	
	init_month();
}

function prevMonth() {
	loadMonth(prevMonthSuccess, 'minus');
}

function prevMonthSuccess (data, status) {
	parseXML(data, status);
	//$('#calendartest').datepicker( "setDate" , '-1m' );
	//jQuery.datepicker._adjustDate(0, -1, 'M');
	//DP_jQuery.datepicker._adjustDate('#calendartest', -1, 'M');
	$.datepicker._adjustDate('#calendartest', -1, 'M');


	init_month();

}	

function listCalendarItems() {
	var html = '';
	$('events', calendar.XML).find('event').each(
		function()
		{
			var d = $(this).find('description').eq(0).text();		
			var date = $(this).find('from').eq(0).attr('date');
			
			html += '<div class="day_' + date + '">';
			
			// url;
			if (jQuery(this).find('url').eq(0).attr('href') != undefined) {
				html += '<strong href="' + jQuery(this).find('url').eq(0).attr('href') + '">';
			}
				
			html += date + " ";			
			html += '<span class="'+date+'">' + jQuery(this).find('title').eq(0).text() + "</span> ";
			
			// url;
			if (jQuery(this).find('url').eq(0).attr('href') != undefined) {
				html += '</strong>';
			}
			
			html += "<br />";	
			
			
			if (d != '') {
				html += "<p class='cit_description'>" + d + "</p>";
			}
			
			html += "</div>";
		}
	); 
	$("#calendar_content").html(html);
}

function calendar_show_selection(d,color) {
	
	// start fancybox with this odd workaround. 
	// It uses an invisible hyperlink that exists on the page
	if (color) {
		color = color.split('#');
		color = color[1];
	}
	$('#fancylink').attr('href',tr_url + 'FULLCALENDAR&PARAM1=' + vCAL_ID + '&PARAM2=' + color + '&cal_datefrom=' + d ); 
	$('#fancylink').trigger('click');
	return true;
	
	// you could also open a popup	
	//start_popup('FULLCALENDAR',vCAL_ID,'','',920,590);
	
}


function parseXML(data, status) {
	calendar.XML = data;
	calendar.days.length = 0;
	
	// update hidden field for date
	$("#cal_datefrom").val($('events', calendar.XML).find('cal_datefrom').text());

	$('events', calendar.XML).find('event').each(
		function() {
			//add to calendar.days
			calendar.days.push(jQuery(this).find('from').eq(0).attr('date'));
		}
	); 
	
	// show items
	listCalendarItems();
	
}

