var today;
var month;
var tempmonth;
var days;
var monthname;
var Year;
var activeday;
var go = 0;

var Datas;

$(document).ready(function(){
	Datas = new Array(new Array());
	SetToday();
	loaddata();
	fillcalendar(GetThisMonth(),1);
});

function changeDay(d){
	activeday=d;
}

function loaddata(){
	var m = tempmonth;
	if(m<10){
		m="0"+m;
	}
	var f="getcalendardata.php?year="+Year+"&month="+m;
	go = 0;
	
	$.getJSON(f, function(data){
		Datas = new Array(new Array());
		$.each(data.i, function(i,item){
			var temp = new Array();
			temp.push(item.year+"-"+item.month+"-"+item.day); // data
			temp.push(item.year); // year
			temp.push(item.month); // month
			temp.push(item.day); // day
			temp.push(item.link); // link
			temp.push(item.desct); // desct
			Datas.push(temp);
		});
		go = 1;
	});
}


function changemonth(m, hide){
	tempmonth = m+1;
	loaddata();
	fillcalendar(m, hide)
}

function fillcalendar(m, hide){
	if(go<1){
		setTimeout(function(){fillcalendar(m,hide);}, 500);
		return;
	}
	
	if(month==0 && m==11){
		Year = Year - 1;
	}
	if(month==11 && m==0){
		Year = Year + 1;
	}
	month=m;
	days=getDays(m);
	$("div#calendar").html('<div id="headercal"></div><div id="dayscal"></div><div class="clear"></div>');
	$("div#calendar div#headercal").html(addCalendatHeader(m));
	$("div#calendar div#dayscal").html(addCalendatDay(days));
	if(hide==1){
		$("div#calendar div#dayscal").hide();
	}else{
		$("div#calendar div#dayscal").show();
	}
}

function addCalendatHeader(m){
	if(m==0)
		prev=11;
	else if(m==11)
		prev=10;
	else
		prev=m-1;
	
	if(m==11)
		next=0;
	else if(m==10)
		next=11;
	else
		next=m+1;
	
	var txt;
		
	txt='<div class="prevmonth" onclick="changemonth('+prev+',0)">';
	txt+='<div class="img"></div></div>';
	
	txt+='<div class="monthname" onclick="slidecalendar()">';
	txt+=monthname+" "+Year;
	txt+='</div>';
	
	txt+='<div class="nextmonth" onclick="changemonth('+next+',0)">';
	txt+='<div class="img"></div></div>';
	
	return txt;
}

function slidecalendar(){
	$("div#calendar div#dayscal").toggle('slow');
}

function addCalendatDay(days){
	var txt;
	txt='<div class="clear"></div>';
	
	var temp = new Date(Year,month,1);
	var przesun = temp.getDay();
	
	for(var i=0; i<=6; i++){
		txt+='<div class="day';
		if(i==0){
			txt+=' daydescfirst';
		}
		if(i==6){
			txt+=' daydesclast';
		}
		txt+=' daydesc">';
		if(i==0){
			txt+='NI';
		}else if(i==1){
			txt+='PON';
		}else if(i==2){
			txt+='WT';
		}else if(i==3){
			txt+='ŚR';
		}else if(i==4){
			txt+='CZW';
		}else if(i==5){
			txt+='PT';
		}else if(i==6){
			txt+='SOB';
		}
		txt+='</div>';
	}
	
	for(var i=1; i<=przesun; i++){
		txt+='<div class="day"></div>';
	}
	
	for(var i=1; i<=days; i++){
		txt+='<div class="day';
		if((i+przesun)%7 == 0 || i==days){
			txt+=' dayright';
		}
		if(i==thisday && thismonth==month){
			txt+=' actday';
		}
		if(i==activeday && thismonth==month){
			txt+=' activeday';
		}
		var ii = "'div.day"+i+"'";
		
		var k = 0;
		var tempmon = 0;
		var tempday = 0;
		var dsc = "";
		var lnk = "";
		for(k=0;k<Datas.length;k++){
			tempmon = month + 1;
			if(tempmon<10){
				tempmon = "0"+tempmon;
			}
			
			tempday = i;
			if(tempday<10){
				tempday = "0"+tempday;
			}
			
//			alert(i+" "+tempday+" "+Datas[k][3]);
			
			if(Datas[k][1] == Year && Datas[k][2] == tempmon && Datas[k][3] == tempday){
				lnk = Datas[k][4];
				dsc = Datas[k][5];
			}
		}
		
		if(dsc!=""){
			txt+=' isdata" ';
		}
		txt+='" ';
		if(dsc!=""){
			txt+='onmouseover="$('+ii+').show();" onmouseout="$('+ii+').hide();"';
		}
		txt+=' onclick="changeDay('+i+')"><a href="';
		txt+=lnk;
		txt+='" >';
		txt+=i;
		txt+='</a><div class="dayinfo day'+i+'" style="display: none;">'+dsc+'</div></div>';
		if((i+przesun)%7 == 0){
			txt+='<div class="clear"></div>';
		}
	}
	return txt;
}

function getDays(m){
	if(m==0){ days=31; monthname="styczeń"; }
	if(m==1){ days = 29; monthname="luty"; }
	if(m==2){ days = 31; monthname="marzec"; }
	if(m==3){ days = 30; monthname="kwiecień"; }
	if(m==4){ days = 31; monthname="maj"; }
	if(m==5){ days = 30; monthname="czerwiec"; }
	if(m==6){ days = 31; monthname="lipiec"; }
	if(m==7){ days = 31; monthname="sierpień"; }
	if(m==8){ days = 30; monthname="wrzesień"; }
	if(m==9){ days = 31; monthname="październik"; }
	if(m==10){ days = 30; monthname="listopad"; }
	if(m==11){ days = 31; monthname="grudzień"; }
	return days;
}

function SetToday(){
	var Today = new Date();
	Year = Today.getFullYear();
	var Month = Today.getMonth()+1;
	tempmonth = Month;
	var Day = Today.getDate();
	today=Year+"-"+Month+"-"+Day
	activeday=Day;
}

function GetThisMonth(){
	var Today = new Date();
	thismonth = Today.getMonth();
	thisday = Today.getDate();
	return thismonth;
}
