
var now = new Date();
var Months = new Array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var weekDays = new Array('S','M','T','W','T','F','S');
var tableAux;
var tdDays;

function selectDay(dayValue)
{
	if(dayValue<10)
	{
		var zi = "0"+dayValue;
	}
	else
	{
		var zi = dayValue;
	}
	if(document.getElementById('month').value<9)
	{
		var luna = "0"+(document.getElementById('month').value*1+1*1);
	}
	else
	{
		var luna=document.getElementById('month').value*1+1*1;
	}
	document.getElementById('birthday').value = zi+"."+luna+"."+document.getElementById('year').value;
	document.getElementById('calendarDiv').style.display = "none";
}
function IncrementYear()
{
	document.getElementById('daysContainer').innerHTML = "";
	document.getElementById('year').value++;
	drawSelectedMonth(document.getElementById('year').value,document.getElementById('month').value);
}

function DecrementYear()
{
	document.getElementById('daysContainer').innerHTML = "";
	document.getElementById('year').value--;
	drawSelectedMonth(document.getElementById('year').value,document.getElementById('month').value)
}
function changeMonth()
{
	document.getElementById('daysContainer').innerHTML = "";
	drawSelectedMonth(document.getElementById('year').value,document.getElementById('month').options[document.getElementById('month').options.selectedIndex].value);
}
function drawCalendar(){
	
	var calendar = document.getElementById('calendarDiv');
	var tableContainer = document.createElement('table');
	tableContainer.id="tableContainer";
	calendar.appendChild(tableContainer);

	//declararea primului tr
	var trTop = document.createElement('tr');
	var tdMonth = document.createElement('td');
	tdMonth.setAttribute("align","center");
	var tdYear = document.createElement('td');
	tdYear.setAttribute("align","center");
	var tdArrows = document.createElement('td');
	
	//dropdown pt month
	var selectMonth = document.createElement('select');
	selectMonth.name = "month";
	selectMonth.id = "month";
	for(var i=0;i<12;i++)
	{
		var optiuni = document.createElement('option');
		optiuni.value = i;
		optiuni.innerHTML = Months[i];
		if(now.getMonth()==i){
			optiuni.selected = true;
		}
		selectMonth.appendChild(optiuni);
	}
	tdMonth.appendChild(selectMonth);
	selectMonth.setAttribute("onchange","changeMonth()");
	//input pentru an
	var yearInput = document.createElement('input');
	yearInput.type = "text";
	yearInput.style.width = 50+"px";
	yearInput.value = now.getFullYear();
	yearInput.id = 'year';
	yearInput.onkeydown = function(){return false;};
	yearInput.onchange = function(){drawSelectedMonth(this.value,document.getElementById('month').value);}
	tdYear.appendChild(yearInput);
	
	var tabelImagini = document.createElement('table');
	var trArrowUp = document.createElement("tr");
	var tdArrowUp = document.createElement("td");
	var imgArrowUp = document.createElement("img");
	imgArrowUp.src = "../arrowup.jpg";
	imgArrowUp.setAttribute("onclick","IncrementYear()");
	imgArrowUp.setAttribute("onmouseover","this.style.cursor = 'pointer';");
	tdArrowUp.appendChild(imgArrowUp);
	trArrowUp.appendChild(tdArrowUp);
	tabelImagini.appendChild(trArrowUp);
	
	var trArrowDown = document.createElement('tr');
	var tdArrowDown = document.createElement('td');
	var imgArrowDown = document.createElement('img');
	imgArrowDown.src = "../arrowdown.jpg";
	imgArrowDown.setAttribute("onclick","DecrementYear()");
	imgArrowDown.setAttribute("onmouseover","this.style.cursor = 'pointer';");
	tdArrowDown.appendChild(imgArrowDown);
	trArrowDown.appendChild(tdArrowDown);
	tabelImagini.appendChild(trArrowDown);
	tdArrows.appendChild(tabelImagini);
	
	trTop.appendChild(tdMonth);
	trTop.appendChild(tdYear);
	trTop.appendChild(tdArrows);
	tableContainer.appendChild(trTop);
	
	var trDays = document.createElement('tr');
	tableContainer.appendChild(trDays);
	tdDays = document.createElement('td');
	tdDays.colSpan = "3";
	tdDays.align = "center";
	trDays.appendChild(tdDays);
	tdDays.id="daysContainer";
	
	drawSelectedMonth(now.getFullYear(),now.getMonth());
	if(document.all)
		calendar.innerHTML = calendar.innerHTML;
}
function drawSelectedMonth(year,month){
	var tableAux = document.createElement("table");
	tableAux.id = 'tableAux';
	tdDays.appendChild(tableAux);
	var trNumeDay = document.createElement('tr');
	trNumeDay.style.backgroundColor = "#7F4345";
	trNumeDay.style.color = "#000000";
	tableAux.appendChild(trNumeDay);
	for(var i=0;i<7;i++)
	{
		var tdNumeDay = document.createElement('td');
		tdNumeDay.innerHTML = "<b>"+weekDays[i]+"</b>";
		trNumeDay.appendChild(tdNumeDay);
	}
	var daysInMonth = getDaysInMonth(year, month);
	var startDay = getFirstDayofMonth(year, month);
	var numRows = 0;
	var printDate = 1;
	if (startDay != 7) 
	{
        var noPrintDays = startDay + 1; 
    }
	else 
	{
		var noPrintDays = 0; // if sunday print right away	
    }
	if (startDay != 7) {
		numRows = Math.ceil(((startDay+1)+(daysInMonth))/7); // calculate the number of rows to generate
	}
	
	var today = new Date().getDate();
	var thisMonth = new Date().getMonth();
	var thisYear = new Date().getFullYear();
	for (var e=0; e<numRows; e++) {
		var trAux = document.createElement('tr');
		for (var f=0; f<7; f++) {
			var tdAux = document.createElement('td');
			/*if ( (printDate == today) 
				 && (now.getFullYear() == thisYear) 
				 && (now.getMonth() == thisMonth) 
				 && (noPrintDays == 0))
			{
				tdAux.className="today";
			}
			else
			{
				tdAux.className="weekday";	
			}*/
			tdAux.setAttribute("onmouseover","this.className = 'overDay';this.style.cursor = 'pointer';");
			tdAux.setAttribute("onmouseout","this.className = 'outDay'");
			tdAux.setAttribute("onclick","selectDay("+printDate+")");
            if (noPrintDays == 0)
			{
				if (printDate <= daysInMonth) 
				{
					var anchor = document.createElement("a");
					anchor.innerHTML = printDate;
					anchor.href = "javascript:selectDay("+printDate+");";
					//anchor.onclick = selectDay(this.innerHTML);
					tdAux.appendChild(anchor);
					//html += '<a>'+printDate+'</a>';
				}
					printDate++;
            }
            if(noPrintDays > 0) noPrintDays--;
			trAux.appendChild(tdAux);
        }
			tableAux.appendChild(trAux);
		}
	document.getElementById('daysContainer').appendChild(tableAux);
	if(document.all){
		document.getElementById('daysContainer').innerHTML = document.getElementById('daysContainer').innerHTML;
	}
}
function formatDate(Year, Month, Day) {
    Month++; // adjust javascript month
    if (Month <10) Month = '0'+Month; // add a zero if less than 10
    if (Day < 10) Day = '0'+Day; // add a zero if less than 10
    var dateString = Day+'.'+Month+'.'+Year;
    return dateString;
}

function getMonthName(month) {
    var monthNames = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
    return monthNames[month];
}

function getDayName(day) {
    var dayNames = new Array('Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday')
    return dayNames[day];
}

function getDaysInMonth(year, month) {
    return 32 - new Date(year, month, 32).getDate();
}

function getFirstDayofMonth(year, month) {
    var day;
    day = new Date(year, month, 0).getDay();
    return day;
}

/* Common Scripts */

function getElementsByClass(searchClass,node,tag) {
    var classElements = new Array();
    if ( node == null ) node = document;
    if ( tag == null ) tag = '*';
    var els = node.getElementsByTagName(tag);
    var elsLen = els.length;
    var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
    for (i = 0, j = 0; i < elsLen; i++) {
        if ( pattern.test(els[i].className) ) {
            classElements[j] = els[i];
            j++;
        }
    }
    return classElements;
}

/* Position Functions */

function setPos(targetObj,moveObj) {
    var coors = findPos(targetObj);
    moveObj.style.position = 'absolute';
    moveObj.style.top = coors[1]+20 + 'px';
    moveObj.style.left = coors[0] + 'px';
}