	calendar = {
		months: new Array('JANUAR', 'FEBRUAR', 'MAREC', 'APRIL', 'MAJ', 'JUNIJ', 'JULIJ', 'AVGUST', 'SEPTEMBER', 'OKTOBER', 'NOVEMBER', 'DECEMBER'),
		currMonth: new Date().getMonth(),
		currYear: new Date().getFullYear(),
		calData: '',
				
		init: function() {
			this.currMonth = new Date().getMonth();
			this.currYear = new Date().getFullYear();
			
			calendar.loadData(this.currYear,this.currMonth);
		},
		
		loadData: function(year, month) {
			month++; 
			calendar.calData = false;
			
			$.ajax({
				url: '/getCalendar/'+year+'/'+month,
				method: 'GET',
				dataType: 'json',
				success: function(data) {
					calendar.parseData(data);
				}
			});
		},
		
		nextMonth: function() {
			if (this.currMonth < 11) this.currMonth++;
			else {
				this.currMonth = 0;
				this.currYear++;
			}
			calendar.loadData(this.currYear,this.currMonth);
		},

		prevMonth: function() {
			if (this.currMonth > 0) this.currMonth--;
			else {
				this.currMonth = 11;
				this.currYear--;
			}
			
			calendar.loadData(this.currYear,this.currMonth);
		},
				
		parseData: function(evdata) {
			calendar.calData = evdata;
			this.drawMonth(this.currYear,this.currMonth);
		},
		
		showDay: function(day, x, y) {
			$('#eventsList').css({ 
				'top': (y-5) + 'px',
				// 'left': (x-150) + 'px',
				'display': 'block'
			});
			$('#eventsList').mouseleave(function() {
				$(this).css('display', 'none');
			});
			
			var tmpHTML = "";
			var tmpOut = "";
			targetDiv = document.getElementById('eventsList');
			debugDiv = document.getElementById('debug');

			for (var x in calendar.calData[day]) {
				if (x >= 0 && x <= 31) {
	   				tmpHTML += '<div class="dogdatum">'+calendar.calData[day][x]["datumSI"]+'</div>';

	   				tmpHTML += '<div class="dogkraj">'+calendar.calData[day][x]["location"]+'</div>';
	   				if (calendar.calData[day][x]["link"]) tmpHTML += '<div style="margin: 5px 0px;"><a href="'+calendar.calData[day][x]["link"]+'">Klik za več informacij ...</a></div>';
	   					   					tmpHTML += '<div class="dogopis">'+calendar.calData[day][x]["text"]+'</div>';
	   					   					tmpHTML += '<div class="dogorg"><b>Org:</b> '+calendar.calData[day][x]["organizer"]+'</div></div>';
				}
			}

			targetDiv.innerHTML = tmpHTML;
		},
		
		hideDay: function() {
			targetDiv = document.getElementById('events');
			targetDiv.style.visibility = 'hidden';
		},
		
		drawMonth: function(year,month) {
			var mydate = new Date(year,month,1);
			var firstday = mydate.getDay()-1;
			if (firstday == -1) firstday = 6;
			
			var totaldays = mydate.daysInMonth() + firstday;
			var rows = Math.ceil(totaldays/7);
			var totalfields = rows*7;
			var out;
			var htmlOut = "";
			var dayHasEvents;
			var day;

			htmlOut = '<table id="calendar" border="0" cellpadding="0" cellspacing="0"><tbody>';
			htmlOut += '<td class="dan"><strong>P</strong></td><td class="dan"><strong>T</strong></td><td class="dan"><strong>S</strong></td><td class="dan"><strong>Č</strong></td><td class="dan"><strong>P</strong></td><td class="dan"><strong>S</strong></td><td class="dan"><strong>N</strong></td></tr>';
			
			for (var i=0; i<totalfields; i++) {
				if (i == 0) htmlOut += '<tr>';
				if (i>0 && i%7 == 0) htmlOut += '</tr><tr>';

				day = i - firstday + 1;				
				if (i<firstday || (day > mydate.daysInMonth())) out = '&nbsp;';
				else out = day;
				
				dayHasEvents = false;
				for (var x in calendar.calData) {
					if (x == out) dayHasEvents = true; 
				}

				if (dayHasEvents) {
					htmlOut += '<td class="dog"><a class="cal_event" id="day_'+out+'" href="#">'+out+'</a></td>';
				}
				else {
					htmlOut += '<td>'+out+'</td>';
				}
				
				if (i == (totalfields-1)) htmlOut += '</tr>';
			}
			htmlOut += '</tbody></table>';
			
			var target = document.getElementById('fields');
			target.innerHTML = htmlOut;
			$('.cal_event').mouseover(function(e) {
				day = $(this).attr('id').split("_");
				day = day[1];
				// console.log(e);
				calendar.showDay(day, e.layerX, e.layerY);
			});
			
			var mesectarget = document.getElementById('mesecName');
			mesectarget.innerHTML = this.months[this.currMonth] + " " + this.currYear.toString().substring(2);
		}
	}
	
	Date.prototype.daysInMonth = function() {
		return (32 - new Date(this.getYear(), this.getMonth(), 32).getDate());
	}

	String.prototype.trim = function () {
	  var s = this.replace(/^\s*/, "");
	  return s.replace(/\s*$/, "");
	}
