var pageLoaded = 0; window.onload = function() {pageLoaded = 1;}
function loaded(i,f) {if (document.getElementById && document.getElementById(i) != null) f(); else if (!pageLoaded) setTimeout('loaded(\''+i+'\','+f+')',100);
}
function monthlength(month,year) {var dd = new Date(year, month, 0);return dd.getDate();}
var today = new Date();
var selDate = today.getFullYear()+getmmdd(today.getMonth()+1,today.getDate());
var prevDay = 0;
var prevMonth = 0;
var prevYear = 0;
var nextDay = 0;
var nextMonth = 0;
var nextYear = 0;

function dispCal(yy,mm, calendarPh) {
		if (mm < 0 || mm > 12) {
			alert('month must be between 1 and 12'); 
			return false;
		} 
		if (yy != 0 && (yy < 1901 || yy > 2100)) {
			alert('year must be after 1900 and before 2101'); 
			return false;
		} 
		
		var calendar = new Date();  
		var today = calendar.getDate(); 
		calendar.setDate(1); 
		if (yy > 1900) calendar.setFullYear(yy); 
		if (mm > 0) calendar.setMonth(mm - 1); 
		var yy = year = calendar.getFullYear(); 
		var month = calendar.getMonth(); 
		calendar.setDate(today); 
		var weekday = calendar.getDay(); 
		var daysInMonth = monthlength(month+1,year); 
		var hilite_start = '<td width="28" class="today" align="center"><b>'; 
		var td_start = '<td width="28" align="center">'; 
		
		var mmb = month;  mm = month + 1; 
				var yya = yyb = yy; 
				if (mmb <1) {
					mmb += 12; yyb--;
				} 
				var mma = month + 2; 
				if (mma > 12) {
					mma -= 12; yya++;
				} 
				var yb = yy -1; 
				var ya = yy +1; 
		
		/*---some validation code for the calendar*/
		//1. checking if the selected month is smaller than the actual month
		if(!disableMonth(yy,mm))
			return false;
		

		var cal = '<div id="cal"><div><table border="0" cellspacing="0" cellpadding="2" align="center"><tr><td colspan="7" class="head" align="center"><a href="#" onclick="if (cala = dispCal('+yyb+','+mmb+',\''+calendarPh+'\')) {document.getElementById(\''+calendarPh+'\').innerHTML = cala; return false;}" class="navLeft">&laquo;</a><strong>' + moy[month]  + ' ' + year + '<\/strong><a href="#" onclick="if (cala = dispCal('+yya+','+mma+',\''+calendarPh+'\')) {document.getElementById(\''+calendarPh+'\').innerHTML = cala; return false;}" class="navRight">&raquo;</a><\/td><\/tr><tr>'; 
		weekDays = '<td width="28" align="center" class="weekDays">'; 
		for(dex=0; dex < 7; dex++) {
			cal += weekDays + dow[dex] + '</td>';
		} 
		cal += '<\/tr><tr>'; 
		var day2 = today; 
		for (dex = today; dex > 6; dex -=7) day2 = dex; weekday -= day2 - daysOrder; 
		while (weekday < 0) weekday += 7; 
		for(dex=0; dex < weekday; dex++) cal += td_start + ' <\/td>';

		for(dex=1; dex <= daysInMonth; dex++) {
			if(weekday == 7) {
				cal += '</tr><tr>'; weekday = 0;
			} 
			if(selDate==year+getmmdd(month+1,dex)) 
				cal += hilite_start +'<a '+clickDate(dex,month,year, calendarPh) + '>'+ dex + '<\/a><\/b><\/td>'; 
			else 
				cal += td_start + '<a '+clickDate(dex,month,year, calendarPh) + '>' + dex + '<\/a><\/td>'; weekday += 1;
		}
		for(dex=weekday; dex < 7; dex++) cal += td_start + ' <\/td>'; 
		cal += '<\/tr><\/table><\/div>';
		if (document.getElementById) {
			//#
		} 
		else {	cal += '<div> </div>';} 
		cal += '</div>'; 
		return cal;
}

/*checking if the selected month is smaller than the actual month*/
function disableMonth(yy, mm){
	var todayDate = new Date();
	todayDate = Date.UTC(todayDate.getFullYear(),todayDate.getMonth(),1);
	var limitDate = Date.UTC(yy,mm,1);
	if(todayDate >= limitDate){
		return false;
	}
	return true;
}

/*validate the rooms: less oen should be selected*/
function checkRooms(){
	if(document.getElementById('singleRoom').value != '' || document.getElementById('doubleRoom').value != '' || document.getElementById('apartment').value != '' || document.getElementById('presApart').value != ''){
		return true;
	}
	return errorCal(3);
}//end function checkRooms()

/*validate the start and end date from dropdowns*/
function checkDate(){
	prevDay = parseInt(document.calendarDate.start_Day.value, 10);
	prevMonth = parseInt(document.calendarDate.start_Month.value, 10);
	prevYear = parseInt(document.calendarDate.start_Year.value, 10);
	nextDay = parseInt(document.calendarDate.end_Day.value, 10);
	nextMonth = parseInt(document.calendarDate.end_Month.value, 10);
	nextYear = parseInt(document.calendarDate.end_Year.value, 10);

	var todayDate = new Date();
	todayDate = Date.UTC(todayDate.getFullYear(),todayDate.getMonth()+1,todayDate.getDay());
	if(todayDate > Date.UTC(prevYear,prevMonth,prevDay))
		return errorCal(2);
	if(Date.UTC(prevYear,prevMonth,prevDay) > Date.UTC(nextYear,nextMonth,nextDay))
		return errorCal(1);
	return;
}

function setUpDate(day, month, year, calendarPh){
	month += 1;
	if(day < 10) day = '0'+day;
	if(month < 10) month = '0'+month;
	if(!validDate(day, month, year, calendarPh)){
		return errorCal(1);
	}
	//document.getElementById('loadDate_'+calendarPh).innerHTML = day+'.'+month+'.'+year;
	document.getElementById('period_f').value = prevDay+'.'+prevMonth+'.'+prevYear+' - '+nextDay+'.'+nextMonth+'.'+nextYear;
	return true;
}

function validDate(day, month, year, calendarPh){
	if(calendarPh == 'calendar2'){
		nextDay = day;
		nextMonth = month;
		nextYear = year;
		if(prevDay <= 0)
			return false;
		else
			return (Date.UTC(prevYear,prevMonth,prevDay) <= Date.UTC(year,month,day));
	}//end if
	if(calendarPh == 'calendar'){
		prevDay = day;
		prevMonth = month;
		prevYear = year;
		if(nextDay > 0)
			return (Date.UTC(prevYear,prevMonth,prevDay) <= Date.UTC(nextYear,nextMonth,nextDay));
	}//end if
	return true;
}

function errorCal(errCode){
	switch(errCode){
		case 1:
			alert(document.getElementById('lg_cal_smaller').value);
		break
		case 2:
			alert(document.getElementById('lg_cal_smallerToday').value);
		break
		case 3:
			alert(document.getElementById('lg_cal_room').value);
		break
	}
	return false;
}//end errorCal

function start() {
		var x = '<div id="calDate"><\/div>'; 
		var y = ''; 
		/*if (tb == 't') y = x + dispCal(0,0); 
		else */
		
		y = dispCal(selectedDate[0],selectedDate[1], 'calendar') + x; document.getElementById('calendar').innerHTML = y; ev();
}

function start2() {
		var x = '<div id="calDate2"><\/div>'; 
		var y = ''; 
		/*if (tb == 't') y = x + dispCal(0,0); 
		else */
		
		y = dispCal(selectedDate2[0],selectedDate2[1], 'calendar2') + x; document.getElementById('calendar2').innerHTML = y; ev();
}

//startup the calendars
loaded('calendar',start);
loaded('calendar2',start2);	

function clickDate(day, month, year, calendarPh) {
	var selectDateClass = ''
	var ct = nextDate(year + getmmdd(month+1,day));
	if (ct == '') 
		ct = nextDate('0000' + getmmdd(month+1,day));
	if (ct == ''){
		if(calendarPh == 'calendar2'){
			if(selectedDate2[0] == year && selectedDate2[1] == (month+1) && selectedDate2[2] == day) 
				selectDateClass = 'linkColor';
			else
				selectDateClass = 'dayColor';	
		}//end if
		else {
			if(selectedDate[0] == year && selectedDate[1] == (month+1) && selectedDate[2] == day) 
				selectDateClass = 'linkColor';
			else
				selectDateClass = 'dayColor';	
		}
		return 'href="javascript:void(0)" class="'+selectDateClass+'" onclick="setUpDate('+day+', '+month+', '+year+', \''+calendarPh+'\');"';
	}
	else 
		return 'href="javascript:void(0)" class="linkColor" onclick="setUpDate('+day+', '+month+', '+year+', \''+calendarPh+'\');"';
	//onclick="selDate = '+year+ getmmdd(month+1,day)+'; isDate(' + day + ',' + month + ',' + year + ');return false;"

}
function isDate(dayVal,monthVal,yearVal) {var ct = nextDate(yearVal + getmmdd(monthVal+1,dayVal));if (ct == '') ct = nextDate('0000' + getmmdd(monthVal+1,dayVal));
//if (ct == '') ct = noMessage;
//document.getElementById('calDate').innerHTML = '<h2>'+language[0]+'</h2>'+ct; 
return false;}function nextDate(yymmdd) {var x = dA.length;for (var i = 0; i < x; i++) {if (dA[i].substr(0,8) == yymmdd) return dA[i].substr(8);}return '';}function getmmdd(mm,dd) {return (mm > 9 ? '' + mm : '0' + mm) + (dd > 9 ? dd : '0' + dd);}
function ev() {var ct = nextDate(selDate);var ct = nextDate(selDate);if (ct == '') ct = nextDate('0000' + selDate.substr(4));
/*
if (ct == '') ct = noMessage; 
document.getElementById('calDate').innerHTML = '<h2>'+language[0]+'</h2>'+ct;
*/
}
//var noMessage =  'No event messages to display for today'; // message to display when no entry in array