﻿
var daysInMonth = new Array(31,28,31,30,31,30,31,31,30,31,30,31);
var months = new Array("jan","feb","mar","apr","maj","jun","jul","avg","sep","okt","nov","dec");
var calDiv;
var calLis = new Array();
var currDate = new Date();

// starts functions due on load of the page
function initCalendar()	{
	if (document.getElementById("JSkalendar")) {
		collectElements();
		initDate();
		setCal();
	}
}

// initialize the date object to server date
function initDate() {
	currDate.setDate(1);
	currDate.setMonth(serverMonth - 1);
	currDate.setYear(serverYear)
}

// load all the <li> into an array
function collectElements() {
	var i;
	var k;
	var j = 1;
	calDiv = document.getElementById("kalendarDani");
	var children = calDiv.childNodes;
	var clis;
	for (i = 0; i < children.length; i++)	{
		clis = children[i].childNodes;
		for (k = 0; k < clis.length; k++)	{
			if ((clis[k].nodeName == "li") || (clis[k].nodeName == "LI"))	{
				calLis[j] = clis[k];
				j++;
			}
		}		
	}
}

// reload the calendar
function setCal() {
	var dan = 1;
	var currMonth = currDate.getMonth();
	var currYear = currDate.getFullYear();
	var mg = months[currMonth] + " " +  currYear;
	document.getElementById("mesecGodina").innerHTML = mg;

	start = currDate.getDay();
	
	if (start == 0){start = 7;}
	
	end = daysInMonth[currMonth];
				
	if (isLeapYear(currYear) && (currMonth ==12)){end += 1;}
	end = end + start;
	for (i=1; i < calLis.length; i++) {
		if (i < start || i >= end) {
			calLis[i].innerHTML = "";
		}	else {
			month = currMonth + 1;
			if (isArray(datumi[month]) && currYear==serverYear) {
				if (datumi[month][dan] == 1) {
					if (dan < 10) {
						calLis[i].innerHTML = "<a href=\""+lang+"/kalendar/"+currYear+"/"+month+"/0"+dan+"/\">0"+dan+"<\/a>";
					} else {
						calLis[i].innerHTML = "<a href=\""+lang+"/kalendar/"+currYear+"/"+month+"/"+dan+"/\">"+dan+"<\/a>";
					}
				}	else {
					if (dan < 10) {
						calLis[i].innerHTML = "0"+dan;
					} else {
						calLis[i].innerHTML = dan;
					}
				}
			} else {
				if (dan < 10) {
					calLis[i].innerHTML = "0"+dan;
					//calLis[i].innerHTML = "<a href=\""+lang+"/kalendar/"+currYear+"/"+month+"/0"+dan+"/\">0"+dan+"<\/a>";
				} else {
					calLis[i].innerHTML = dan;
					//calLis[i].innerHTML = "<a href=\""+lang+"/kalendar/"+currYear+"/"+month+"/"+dan+"/\">"+dan+"<\/a>";
				}
			}
			dan++;
		}
	}
}

function isArray() {
  if (typeof arguments[0] == 'object') {
    var criterion = arguments[0].constructor.toString().match(/array/i);
   return (criterion != null);
  }
  return false;
}

// checks if a year i leap
function isLeapYear(year) {
	return (year % 4 == 0) && ((year % 100 != 0) || (year % 400 == 0));
}

// moves the date object one month forward
function nextMonth() {
	if (currDate.getMonth() < 12) {
		currDate.setMonth(currDate.getMonth() + 1);
	} else {
		currDate.setMonth(1);
		currDate.setYear(currDate.getFullYead() + 1);
	}
	setCal();
}


// moves the date object one month back
function prevMonth() {
	if (currDate.getMonth() > 0) {
		currDate.setMonth(currDate.getMonth() - 1);
	} else {
		currDate.setMonth(11);
		currDate.setYear(currDate.getFullYear() - 1);
	}
	setCal();
}

window.onload = initCalendar;
