//ma folosesc de propotype.js pentru mouseOver/mouseout
var MonthNames = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
var MonthShortNames = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
var DayNames = new Array("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday");

var initMonth, initDay, initYear;

var period = new Array(6);
for (var i=0; i < period.length; i++)
  	period[i] = new Array(7);

var periodAttr = new Array(6);
for ( var i=0; i < periodAttr.length; i++ )
  	periodAttr[i] = new Array(7);


function daysInMonth(iMonth, iYear) {
	return 32 - new Date(iYear, iMonth, 32).getDate();
}

function validateDate(year, month, day) {
	var today = new Date()
	var sDate = new Date();
	sDate.setMonth(month-1);
	sDate.setFullYear(year);
	sDate.setDate(day);
	if (sDate < today) {
		return 0;
	} else {
		return 1;
	}
}

function validateYear(year, month, day) {
	var today = new Date();
	if (validateDate(year, month, day) == 0 || year == 0 || year == '' || year < today.getFullYear() || year > (today.getFullYear()+5) ) {
		year = today.getFullYear();
	}
	return year;
}
function validateMonth(year, month, day) {
	var today = new Date();
	if (validateDate(year, month, day) == 0 || month <= 0 || month == '' || month >12) {
		month = today.getMonth()+1;
	}
	return month;
}
function validateDay(year, month, day) {
	var today = new Date();
	if (validateDate(year, month, day) == 0 || day <= 0 || day == '' ) {
		day = today.getDate();
	}
	if (month == 1) {
		monthDisplay = 12;
	} else {
		monthDisplay = (month*1 - 1);
	}
	if (day > daysInMonth(monthDisplay, year))
	{
		day = daysInMonth(monthDisplay, year);
	}
	return day;
}

function initPeriod(year, month, day) {
	var dInM = daysInMonth(month-1, year);
	var firstDay = new Date(year, month-1, 1);
	var countDay = 1, dfnm = 1, dflm = daysInMonth(month-2, year);
	for(var i = 0; i<6; i++) {
		for(var j = 0; j<=6; j++) {
			if (i == 0 && j <  firstDay.getDay()) {
				periodAttr[i][j] = 'dflm'; //Day for last month
				period[i][j] = dflm - (firstDay.getDay()-j) +1;
			}
			if (i == 0 && j >=  firstDay.getDay()) {
				periodAttr[i][j] = 'this'
				period[i][j] = countDay;
				countDay++;
			}
			if (i > 0) {
				if (countDay <= dInM) {
					periodAttr[i][j] = 'this';
					period[i][j] = countDay;
					countDay++;
				} else {
					periodAttr[i][j] = 'dfnm';//Day for next month
					period[i][j] = dfnm;
					dfnm++;
				}
			}
		}
	}
}

function set_month(month, type) {
	monthDisplay = month;
	switch (type) {
		case 'dflm':
			if (month == 1) {
				monthDisplay = 12;
			} else {
				monthDisplay = (month*1 - 1);
			}
			break;
		case 'dfnm':
			if (month == 12) {
				monthDisplay = 1;
			} else {
				monthDisplay = (month*1 + 1);
			}
			break;
		default:
			monthDisplay = month;
			break;
	}
	return monthDisplay;
}

function set_year(month, year, type) {
	var yearDisplay = year;
	switch (type) {
		case 'dflm':
			if (month == 12) {
				yearDisplay = (year*1-1);
			}
			break;
		case 'dfnm':
			if (month == 1) {
				yearDisplay = (year*1+1);
			}
			break;
		default:
			yearDisplay = year;
			break;
	}

	return yearDisplay;
}

function onClickDay(year, month, day) {
	//decoy
}




//SMALL CALENDAR FOR USER
function Calendar2(year, month, day) {
	initMonth = month;
	initDay = day;
	initYear = year;

	var divID = 'left_small_calendar';
	var year, month, day;
	day = validateDay(year, month, day);
	month = validateMonth(year, month, day);
	year = validateYear(year, month, day);
	initPeriod(year, month, day);
	var d = new Date(year, month-1, day);
	var monthName = MonthNames[d.getMonth()];
	var today = new Date();

	var HTMLstr = "";

	HTMLstr += '<div class="s_header">';

//detect if i can go back with one month
	var linkPrevMonth = "<span class=\"s_arrow\" onclick='prevMonth2("+year+", "+ month +", "+ day +")' ><img src=\"images/pub/calendar/arrow_left.gif\" width=\"3\" height=\"5\" border=\"0\" alt=\"previous month\" /></span>";
	var linkNextMonth = "<span class=\"s_arrow\" onclick='nextMonth2("+year+", "+ month +", "+ day +")'><img src=\"images/pub/calendar/arrow_right.gif\" width=\"3\" height=\"5\" border=\"0\" alt=\"next month\" /></span>";

	var fDate= new Date();
	if (month > 1) {
		fDate.setMonth(month-2);
		fDate.setFullYear(year);
	} else {
		fDate.setMonth(11);
		fDate.setFullYear(year-1);
	}
	if (fDate < today) {
		linkPrevMonth = '<span class="s_arrow"><img src="images/pub/calendar/arrow_left_disabled.gif" width="3" height="5" border="0" alt="previous month" /></span>';
	}
//detect if i can go back with one month
	HTMLstr += '<div class="month_content">'+ linkPrevMonth + '<div class="text_month">'+ monthName +"</div>"+ linkNextMonth + '</div>';

//detect if i can go back with one year
	var linkPrevYear = '<span class="s_arrow" onclick="prevYear2('+year+', '+ month +', '+ day +')"><img src="images/pub/calendar/arrow_left.gif" width="3" height="5" border="0"/></span>';
	var linkNextYear = '<span class="s_arrow" onclick="nextYear2('+year+', '+ month +', '+ day +')"><img src="images/pub/calendar/arrow_right.gif" width="3" height="5" border="0"/></span>';

	if (year <= today.getFullYear()) {
		linkPrevYear = '<span class="s_arrow"><img src="images/pub/calendar/arrow_left_disabled.gif" width="3" height="5" border="0" alt="previous month" /></span>';
	}
//detect if i can go back with one year
	HTMLstr += '<div class="year_content">' + linkPrevYear + '<div class="text_month">' + year + '</div>' + linkNextYear + '</div> <div class="clear"></div>';

	HTMLstr += '</div><div class="s_all_days" style="border-left: solid #012F73 1px;"><div class="text_days"><span class="text_days">S</span></div><div class="text_days"><span class="text_days">M</span></div><div class="text_days"><span class="text_days">T</span></div><div class="text_days"><span class="text_days">W</span></div><div class="text_days"><span class="text_days">T</span></div><div class="text_days"><span class="text_days">F</span></div><div class="text_days"><span class="text_days">S</span></div></div>';

	HTMLstr += ' <div class="clear"></div>';




	HTMLstr += '<div class="s_all_days">'; //alldays
	var monthDisplay, yearDisplay;
	for(var i = 0; i<6; i++) {
		for(var j = 0; j<=6; j++) {
			var info;

			monthDisplay = set_month(month, periodAttr[i][j]);
			yearDisplay = set_year(monthDisplay, year, periodAttr[i][j]);

			var pDate= new Date();
			pDate.setMonth(monthDisplay-1);
			pDate.setFullYear(yearDisplay);
			pDate.setDate(period[i][j]);


			if (pDate<today) {
				HTMLstr += '<div class="table_day_past"><div class="day_past">'+ period[i][j] + '</div></div>';
			} else {
					var onMouseOverTxt = ' onMouseOver = "$(\''+divID+'_'+ monthDisplay +'_'+ period[i][j] +'\').addClassName(\'table_day_hover\')" ';
					var onMouseOutTxt = ' onMouseOut = "$(\''+divID+'_'+ monthDisplay +'_'+ period[i][j] +'\').removeClassName(\'table_day_hover\')" ';
					//var onClickTxt = '';//' onclick = "clickDate(\''+divID+'\', \''+ yearDisplay +'\',\''+ monthDisplay +'\',\''+ period[i][j] +'\')" ';
					var onClickTxt = ' onclick = " clickDate2(\''+ yearDisplay +'\',\''+ monthDisplay +'\',\''+ period[i][j] +'\')" ';
					var idTxt= ' id="'+divID+'_'+ monthDisplay +'_'+ period[i][j] +'" ';
					switch (periodAttr[i][j]) {
						case 'dflm':
							info = '<span  class="table_day_future" '+idTxt+'  '+onClickTxt+' '+ onMouseOverTxt+ ' '+ onMouseOutTxt+ ' >'+ period[i][j] +'</span>';
							break;
						case 'dfnm':
							info = '<span class="table_day_future" '+idTxt+'  '+onClickTxt+' '+ onMouseOverTxt+ '  '+ onMouseOutTxt+ '  >'+ period[i][j] +'</span>';
							break;
						default:
							info = '<span class="table_day" '+idTxt+' '+onClickTxt+'  '+ onMouseOverTxt+ ' '+ onMouseOutTxt+ '  >'+ period[i][j] +'</span>';
							break;
					}

					//setting current day
					if (yearDisplay+"-"+ monthDisplay +"-"+ period[i][j] == today.getFullYear() + '-'+ (today.getMonth()+1)*1+ '-' + today.getDate()) {
						info = '<span class="table_day_current"  '+idTxt+' '+onClickTxt+' '+ onMouseOverTxt+ ' '+ onMouseOutTxt+ '  >' +period[i][j]+ '</span>';
					}
//taken from calendarClubSmall.js
					if (divID+"_"+initMonth+"_"+initDay+"_"+initYear == divID+"_"+monthDisplay+"_"+period[i][j]+"_"+yearDisplay ) {
						HTMLstr += '<div class="table_day table_day_selected">' + info + '</div>';
					} else {
						HTMLstr += '<div class="table_day">' + info + '</div>';
					}					
//taken from calendarClubSmall.js
			}

		}
	}

	HTMLstr += "</div>\n";//alldays

	$('left_small_calendar').innerHTML = HTMLstr;

}

function nextMonth2(year, month, day) {
	if (month == 12) {
		Calendar2(year +1, 1, day);
	} else {
		Calendar2(year , month+1, day);
	}
}

function prevMonth2(year, month, day) {
	if (month ==1) {
		Calendar2(year -1, 12, day);
	} else {
		Calendar2(year , month-1, day);
	}
}


function nextYear2(year, month, day) {
	Calendar2(year +1, month, day);
}

function prevYear2(year, month, day) {
	Calendar2(year -1, month, day);
}