/**************CALENDAR*******************/
var DIV_ID_CALENDAR="calendar";

/**
 * Funkce pro zjisteni pozice aktualniho elementu
 */
function getOffsetParamCalendar( hElement, sParam, hLimitParent ){
	var nRes = 0;
	if( hLimitParent == null )
		hLimitParent = document.body.parentElement;
	while( hElement != hLimitParent ){
		nRes += eval( 'hElement.' + sParam )
		if( !hElement.offsetParent ) 
			break;
		hElement = hElement.offsetParent;
	}//while
	return nRes
}//getOffsetParamCalendar

function calendar(month, year, iDay, iMonth, iYear, iDate, iFormat, minDate, maxDate){
//write_dbg('\nSoučasný: '+month+'/'+year);
	var crrDate = new Date();
	var startDate = new Date();
//write_dbg('Nový: '+startDate.getMonth()+'/'+startDate.getFullYear());
		
	startDate.setDate(1);	// nastavime 1.den v mesici, protoze 30.resp.31.unor dela 'potize'

	if (year != null)											// je-li 'year' zadano ...
		startDate.setFullYear((year * 1));	// ... pak nastavime start.rok na 'year'
	else
		year = startDate.getFullYear();			// ... jinak nastavime 'year' na soucasny rok
		
	if (month != null)											// je-li 'month' zadano (0-11) ...
		startDate.setMonth((month * 1) - 1);	// ... pak nastavime start.mesic na 'month' - 1
	else
		month = startDate.getMonth() + 1;			// ... jinak nastavime 'month' na soucasny mesic (akt)
//write_dbg('Aktuální: '+startDate.getDate()+'.'+startDate.getMonth()+'.'+startDate.getFullYear());
		
	var prevMonth = new Date();
	prevMonth.setTime(startDate.getTime());
	prevMonth.setMonth(prevMonth.getMonth() - 1);	// v prevMonth je startMonth - 1 (predchozi) (js)
//write_dbg('Předchozí: '+prevMonth.getDate()+'.'+(prevMonth.getMonth()+1)+'.'+prevMonth.getFullYear());
	
	var nextMonth = new Date();
	nextMonth.setTime(startDate.getTime());
	nextMonth.setMonth(nextMonth.getMonth() + 1);	// v nextMonth je startMonth + 1 (nasledujici) (js)
//write_dbg('Následující: '+nextMonth.getDate()+'.'+(nextMonth.getMonth()+1)+'.'+nextMonth.getFullYear());

	if(startDate.getDay()==0)	// je dnem nedele ...
		startDate.setDate(-(startDate.getDay() +5));	// ... pak nastavime den v mesici na na sobota ????
	else
		startDate.setDate(-(startDate.getDay() -2));
//write_dbg('Výsledek: '+startDate.getDate()+'.'+startDate.getMonth()+'.'+startDate.getFullYear());
	
	var c ='<div id="nazevKalendar">Kalendář</div>';
	c+="<div id=\"calendarClose\"><a href=\"#\" onclick=\"hiddeCalendar()\">x</a></div>";	// prevod z (js) na (akt)																																																																																																	prevod z (js) na (akt)
	c+="<table id=\"tabCalTop\" align=\"center\"><tr><td><a href=\"#\" onclick=\"calendar("+(prevMonth.getMonth()+1)+","+prevMonth.getFullYear()+",'"+iDay+"','"+iMonth+"','"+iYear+"','"+iDate+"','"+iFormat+"')\">&lt;&lt;</a></td><td>"+month+"&nbsp;/&nbsp;"+year+"</td><td><a href=\"#\" onclick=\"calendar("+(nextMonth.getMonth()+1)+","+nextMonth.getFullYear()+",'"+iDay+"','"+iMonth+"','"+iYear+"','"+iDate+"','"+iFormat+"')\">&gt;&gt;</a></td></tr></table>";
	c+="<table id=\"tabCalendar\" align=\"center\">";
	c+="<tr><th>Po</th><th>Út</th><th>St</th><th>Čt</th><th>Pá</th><th>So</th><th>Ne</th></tr>";
	
	for(i = 0; i < 42; i++){
		if (startDate.getDay() == 1)
			c+="<tr>";
			
		var classTd = "", styl = "";		
		if(month != (startDate.getMonth() + 1)){	//
			classTd="class=\"dayNA\"";		
			styl = "style=\"color: #777777;\"";
		}
			
		var styleTd = "";
//alert('crrDate: '+crrDate.getTime()+'\nstartDate: '+startDate.getTime());				
		if(crrDate.getTime() == startDate.getTime())
			styleTd="style=\"border: 1px solid red\"";	
			
		c+='<td ' + classTd + styleTd + '>' + "<a  "+styl+" href=\"#\" onclick=\"setDayFromCalendar("+startDate.getDate()+","+(startDate.getMonth() + 1)+","+startDate.getFullYear()+",'"+iDay+"','"+iMonth+"','"+iYear+"','"+iDate+"','"+iFormat+"');hiddeCalendar();\"\">"+startDate.getDate()+"</a>" + '</td>';
		
		if (startDate.getDay() == 0)
			c+="</tr>";
			
		startDate.setDate(startDate.getDate() + 1);
	}
	
	c+='</table>';
	
	document.getElementById(DIV_ID_CALENDAR).innerHTML=c;
}


function setDayFromCalendar(day,month,year,iDay,iMonth,iYear,iDate,iFormat){
	/* iFormat
		0 - YYYYMMDD
		1 - DDMMYYYY
	*/
	var date="";
	if (iFormat != null && iFormat != 'undefined'){
		switch(iFormat){
			case 0: date = 	year+""+month+""+day;
			break;
			case 1: date = 	day+""+month+""+year;
			break;
		}//switch
	}//if
	if (iDate!= null && iDate != 'undefined' && document.getElementById(iDate).disabled!=true)
		document.getElementById(iDate).value=date;
	if (iDay != null && iDay != 'undefined' && document.getElementById(iDay).disabled!=true)
		document.getElementById(iDay).value=day;
	if (iMonth != null && iMonth != 'undefined' && document.getElementById(iMonth).disabled!=true)
		document.getElementById(iMonth).value=month;
	if (iYear != null && iYear != 'undefined' && document.getElementById(iYear).disabled!=true){
		document.getElementById(iYear).value=year;
		document.getElementById(iYear).select();
		document.getElementById(iYear).focus();
	}//if
}//setDayFromCalendar

function hiddeCalendar(){
	document.getElementById(DIV_ID_CALENDAR).style.display='none';
	showSelectsCalendar();	
}//hiddeCalendar

function showCalendar(obj, iDay, iMonth, iYear, iDate, iFormat, minDate, maxDate){
	var month=null;
	var year=null;
	calendar(month, year, iDay, iMonth, iYear, iDate, iFormat, minDate, maxDate);
	var offsetTop = getOffsetParamCalendar( obj, 'offsetTop' );
	var offsetLeft = getOffsetParamCalendar( obj, 'offsetLeft' );
	document.getElementById(DIV_ID_CALENDAR).style.top=offsetTop+'px';
	document.getElementById(DIV_ID_CALENDAR).style.left=offsetLeft+'px';
	document.getElementById(DIV_ID_CALENDAR).style.display="";
	hiddeSelectsCalendar();
}//showCalendar

function hiddeSelectsCalendar(){
	if (navigator.userAgent.toLowerCase().indexOf("msie")!=-1){
		for (var a=0; a<document.forms.length; a++){
			var pocet=document.forms[a].elements.length;
			/*for (var i=0; i<pocet; i++){
				if (document.forms[a].elements[i].options!=null)
					document.forms[a].elements[i].style.display='none';
			}*///for 
		}//for
	}//if
}//hiddeSelectsCalendar

function showSelectsCalendar(){
	if (navigator.userAgent.toLowerCase().indexOf("msie")!=-1){
		for (var a=0; a<document.forms.length; a++){
			var pocet=document.forms[a].elements.length;
		/*	for (var i=0; i<pocet; i++){
				if (document.forms[a].elements[i].options!=null)
					document.forms[a].elements[i].style.display='';
			}*///for 
		}//for
	}//if
}//showSelectsCalendar

/**************END - CALENDAR***************/ 

