//with motools
var baseUrl = 'http://www.encontros.pt/';

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, startDate, endDate) {
	var sDateArr = startDate.split("-");
	var sDate= new Date();
	sDate.setMonth(sDateArr[1]-1);
	sDate.setFullYear(sDateArr[0]);
	sDate.setDate(sDateArr[2]);

	var eDateArr = endDate.split("-");
	var eDate= new Date();
	eDate.setMonth(eDateArr[1]-1);
	eDate.setFullYear(eDateArr[0]);
	eDate.setDate(eDateArr[2]);

	var date = new Date();
	date.setMonth(month-1);
	date.setFullYear(year);
	date.setDate(day);

	if (sDate >= date || eDate <= date) {
		return 0;
	} else {
		return 1;
	}
}

function validateYear(year, month, day, startDate, endDate) {
	var sDateArr = startDate.split("-");
	var sDate= new Date();
	sDate.setMonth(sDateArr[1]-1);
	sDate.setFullYear(sDateArr[0]);
	sDate.setDate(sDateArr[2]);

	var eDateArr = endDate.split("-");
	var eDate= new Date();
	eDate.setMonth(eDateArr[1]-1);
	eDate.setFullYear(eDateArr[0]);
	eDate.setDate(eDateArr[2]);

	var today = new Date();
	if (validateDate(year, month, day, startDate, endDate) == 0 || year == 0 || year == '' || year < sDate.getFullYear() || year > (eDate.getFullYear()) ) {
		year = eDate.getFullYear();
	}
	return year;
}

function validateMonth(year, month, day, startDate, endDate) {


	var sDateArr = startDate.split("-");
	var sDate= new Date();
	sDate.setMonth(sDateArr[1]-1);
	sDate.setFullYear(sDateArr[0]);
	sDate.setDate(sDateArr[2]);

	var eDateArr = endDate.split("-");
	var eDate= new Date();
	eDate.setMonth(eDateArr[1]-1);
	eDate.setFullYear(eDateArr[0]);
	eDate.setDate(eDateArr[2]);

	var today = new Date();
	if (validateDate(year, month, day, startDate, endDate) == 0 || month <= 0 || month == '' || month >12) {
		month = eDate.getMonth()+1;
	}
	return month;
}

function validateDay(year, month, day, startDate, endDate) {
	var sDateArr = startDate.split("-");
	var sDate= new Date();
	sDate.setMonth(sDateArr[1]-1);
	sDate.setFullYear(sDateArr[0]);
	sDate.setDate(sDateArr[2]);

	var eDateArr = endDate.split("-");
	var eDate= new Date();
	eDate.setMonth(eDateArr[1]-1);
	eDate.setFullYear(eDateArr[0]);
	eDate.setDate(eDateArr[2]);

	if (validateDate(year, month, day, startDate, endDate) == 0 || day <= 0 || day == '' ) {
		day = eDate.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;
}


//SMALL CALENDAR FOR USER
function Calendar2(year, month, day, start_date, end_date) {

//	start_date, end_date
			var sDateArr = start_date.split("-");
			var sDate= new Date();
			sDate.setMonth(sDateArr[1]-1);
			sDate.setFullYear(sDateArr[0]);
			sDate.setDate(sDateArr[2]);

			var eDateArr = end_date.split("-");
			var eDate= new Date();
			eDate.setMonth(eDateArr[1]-1);
			eDate.setFullYear(eDateArr[0]);
			eDate.setDate(eDateArr[2]);

	initMonth = month;
	initDay = day;
	initYear = year;

	//start_date end_date

	var divID = 'left_small_calendar';
	var year, month, day;

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


//detect if i can go back or forward with one month
	var linkPrevMonth = "<span class=\"s_arrow\" onclick='prevMonth2("+year+", "+ month +", "+ day +", \""+start_date+"\", \""+end_date+"\")' ><img src=\""+baseUrl+"images/public/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 +", \""+start_date+"\", \""+end_date+"\")'><img src=\""+baseUrl+"images/public/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);
	}
	fDate.setDate(daysInMonth(fDate.getMonth(), year));
	if (fDate <= sDate) {
		linkPrevMonth = '<span class="s_arrow"><img src="'+baseUrl+'images/public/calendar/arrow_left_disabled.gif" width="3" height="5" border="0" alt="previous month" /></span>';
	}

	var fDate2 = new Date();
	if (month < 11) {
		fDate2.setMonth(month*1);
		fDate2.setFullYear(year);
	} else {
		fDate2.setMonth(1);
		fDate2.setFullYear(year*1+1);
	}
	fDate2.setDate(1);

	if (fDate2 >= eDate) {
		linkNextMonth = '<span class="s_arrow"><img src="'+baseUrl+'images/public/calendar/arrow_left_disabled.gif" width="3" height="5" border="0" alt="previous month" /></span>';
	}
//detect if i canala go back or forward with one month


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

	if (year <= sDate.getFullYear()) {
		linkPrevYear = '<span class="s_arrow"><img src="'+baseUrl+'images/public/calendar/arrow_left_disabled.gif" width="3" height="5" border="0" alt="previous month" /></span>';
	}

	if (year >= eDate.getFullYear()) {
		linkNextYear = '<span class="s_arrow"><img src="'+baseUrl+'images/public/calendar/arrow_left_disabled.gif" width="3" height="5" border="0" alt="previous month" /></span>';
	}
//detect if i can go back with one year


	var HTMLstr = "";
	HTMLstr += '<div class="s_header">';
	HTMLstr += '<div class="month_content">'+ linkPrevMonth + '<div class="text_month">'+ monthName +"</div>"+ linkNextMonth + '</div>';
	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<sDate || pDate>eDate) {
				HTMLstr += '<div class="table_day_past"><div class="day_past">' + period[i][j] + '</div></div>';
			} else {
					var onMouseOverTxt = ' onMouseOver = "$(\''+divID+'_'+ monthDisplay +'_'+ period[i][j] +'\').addClass(\'table_day_hover\')" ';
					var onMouseOutTxt = ' onMouseOut = "$(\''+divID+'_'+ monthDisplay +'_'+ period[i][j] +'\').removeClass(\'table_day_hover\')" ';
					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>';
					}

					if (divID+"_"+selectedDateMonth+"_"+selectedDateDay+"_"+selectedDateYear == divID+"_"+monthDisplay+"_"+period[i][j]+"_"+yearDisplay ) {
						HTMLstr += '<div class="table_day table_day_selected">' + info + '</div>';
					} else {
						HTMLstr += '<div class="table_day">' + info + '</div>';
					}
			}
		}
	}
	HTMLstr += "</div>\n";//alldays

	$('left_small_calendar').innerHTML = HTMLstr;

	blogsInADay(year, month, day);
}



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

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


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

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










////display meetings for big calendar
function blogsInADay(year, month, day) {
	var blog = $('blogID').value;
	new Ajax(baseUrl+'public/blog/a_postsInaDay.php',
	{
		data: {blogID: blog, day: year+'-'+month+'-'+day},
		onComplete: function(transport) {
			var responseText;
			responseText= transport.split("-");
			count = 0;

			for(var i = 0; i<6; i++) {
				for(var j = 0; j<=6; j++) {

					monthDisplay = month;
					yearDisplay = year;

					switch (periodAttr[i][j]) {
						case 'dflm':
							if (monthDisplay == 1) {
								monthDisplay = 12;
								yearDisplay = (yearDisplay*1-1);
							} else {
								monthDisplay = (monthDisplay*1-1);
							}
							break;
						case 'dfnm':
							if (monthDisplay == 12) {
								monthDisplay = 1;
								yearDisplay = (yearDisplay*1+1);
							} else {
								monthDisplay = (monthDisplay*1+1);
							}
							break;
						default:
							monthDisplay = month;
							yearDisplay = year;
							break;
					}

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


					if (responseText[count] != 0) {
						var tMonth = monthDisplay;
						$('left_small_calendar_'+tMonth+'_'+period[i][j]).addClass('post_day');
					}
					count ++;
				}
			}
		}
	}).request();
}
//end --- display meetings for big calendar