var currdate = new Date();
var displayDate = currdate;
var linkeddays;
var linkedevents;
var ajaxSettings = {
			type: "GET",
			dataType: "json",
			url: "index.php" }			

$(document).ready(function () {

	renderCalendar();
	
	$(".prev-month").click(function () {
		$(".calendar-loader").css('display','block');
		prevMonth();
		return false;
	});
	
	$(".next-month").click(function () {
		$(".calendar-loader").css('display','block');
		nextMonth();
		return false;
	});
	
});


function renderCalendar()
{	
	var fdaydate = new Date(displayDate.getFullYear(),displayDate.getMonth(),01);
	var feb = 28;
	if(fdaydate.getYear()%4 == 0) feb = 29;
	var aDaysCNT = new Array(31,feb,31,30,31,30,31,31,30,31,30,31);
	var fday = fdaydate.getDay();
	if(fday == 0) fday = 7; 
	
	var startpos = 	fday;						
	if( fday < 4) startpos = fday + 7;

	var code = '';
	var i = aDaysCNT[fdaydate.getMonth()-1]-startpos+1;
	var items = 0;	
	var nextrow = '';							
	while(i<aDaysCNT[fdaydate.getMonth()-1]){
		code += '<li class="other-week'+nextrow+'">'+i+'</li>';
		i++;
		items++;
		if(items%7 == 0) nextrow = ' clear';
		else nextrow = '';
		
	}
	var active = '';
	i = 1;
	row = -100;
	while(i<=aDaysCNT[fdaydate.getMonth()]){
		if(jQuery.inArray( i, linkeddays ) !== -1)
		{
			active = 'active';
			eventKey = jQuery.inArray( i, linkeddays )
		}
		else active = '';
		
		if(currdate.getDate() == i && currdate.getMonth() == displayDate.getMonth() && currdate.getFullYear() == displayDate.getFullYear()) var row = Math.floor(items/7);
		
		code += '<li class="'+active+''+nextrow+'" id="day-'+i+'"';
		if(active !== '') code +=  'rel="/kalendarz/date/'+displayDate.getFullYear()+'-'+(displayDate.getMonth()+1)+'-'+i+'"'; 
			//'<a href="/kalendarz/date/'+currdate.getFullYear()+'-'+(currdate.getMonth()+1)+'-'+i+'" rel="#overlay"><span>'+i+'</span></a>'; 
		code += '>'+i+'</li>';
		i++;
		items++;
		if(items%7 == 0) nextrow = ' clear';
		else nextrow = '';
		
	}
	
	i = 1;
	while(items%42){
		code += '<li class="other-week">'+i+'</li>';
		i++;
		items++;
	}								
	
	$('.calendar-days').html(code);
	$(".calendar-loader").css('display','none');
	$('.calendar-content > .content-layer').css('background-position','44px '+(11+25*row)+'px');
	$('.calendar-icon').html('<img src="img/calendar_'+(fdaydate.getMonth()+1)+'a.png" alt="'+(fdaydate.getMonth()+1)+'" />');
	$(".calendar-weekend-selector, .calendar-days").each(function(){
		$(this).css('opacity',1);
	});
	$('.calendar-days > li[rel]').click(function(){
		window.location = $(this).attr('rel');
	});
}

function nextMonth()
{
	var day = 1;
	var month = '';
	var year = ''
	if(displayDate.getMonth() == 11)
	{
		month = 0;
		year = parseInt(displayDate.getFullYear())+1;
	}
	else
	{
		month = displayDate.getMonth()+1;
		year = displayDate.getFullYear();
	}
	displayDate = new Date(year,month,day);
	
	var success = function(data) {	
		
		linkeddays = new Array();
		linkedevents = new Array();
		if(data)
		{
			$.each(data,function(k,v){
				linkeddays.push(parseInt(v.date.substr(8,2)));
				linkedevents.push(v.slug);
			});	
		}
		renderCalendar();
	}
	var params = ajaxSettings;
		params.data = 'menu=getEvents&month='+month+'&year='+year;
		if(calendarArtist)
			params.data += '&artist='+calendarArtist;
		params.success = success;
	
	$.ajax(params);
	
	
}

function prevMonth()
{
	var day = 1;
	var month = '';
	var year = ''
	if(displayDate.getMonth() == 0)
	{
		month = 11;
		year = displayDate.getFullYear()-1;
	}
	else
	{
		month = displayDate.getMonth()-1;
		year = displayDate.getFullYear();
	}
	displayDate = new Date(year,month,day);
	
	var success = function(data) {	
		
		linkeddays = new Array();
		linkedevents = new Array();
		if(data)
		{
			$.each(data,function(k,v){
				linkeddays.push(parseInt(v.date.substr(8,2)));
				linkedevents.push(v.slug);
			});	
		}
		renderCalendar();
	}
	
	var params = ajaxSettings;
		params.data = 'menu=getEvents&month='+month+'&year='+year;
		if(calendarArtist)
			params.data += '&artist='+calendarArtist;
		params.success = success;
	
	$.ajax(params);
}
