
function isLeapYear(year)
{
	var bIsLeapYear;
	bIsLeapYear = false;
	if(year%4)
	{
		bIsLeapYear = true;
		if ((year%100) && !(year%400)) 
		{
			bIsLeapYear = false;
		}
	}
	return (bIsLeapYear);
}

function yearInLongFormat(aYr)
{
	if (aYr <49)
	{
		aYr+=2000;
	}
	else
	{
		if (aYr<100) 
		{ 
			aYr+=1900; 
		}
	}
	return aYr;
}

function validateDate(aYr, aMo, aDa)
{
	var arrMonthLen = new Array(-1,31,28,31,30,31,30,31,31,30,31,30,31);
	var isDateValid = false;
	if ( isNaN(aYr) || isNaN(aMo) || isNaN(aDa) || aMo<1 || aMo >12 || aDa<1 || aDa>31 )	
	{
		isDateValid = false;
	}
	else
	{
		if ( aMo == 2 && isLeapYear(aYr))
		{
			arrMonthLen[2] = 29;
		}
		if ( aDa<=arrMonthLen[aMo] )
		{
			isDateValid = true;
		}
	}
	return isDateValid;
}

/* funkcja formatuje datę do dd/mm/yyyy */
/*
function formatDate(controlName)
{
	var delimiter = "/";
	var ctrl=window.event.srcElement;
	var text = ctrl.value;
	var dt = Date(text); 
	var delim1=-1, delim2=-1, loop, da=-1, mo=-1, yr=-1, bIsDate = false;
	var errorMessage = "Niepoprawny format daty. Poprawny format to dd" + delimiter + "mm" + delimiter  +"yy[yy] lub ddmmyy[yy]."

	delim1 = text.indexOf(delimiter);
	if (delim1 >=0) 
	{
		delim2 = text.indexOf(delimiter, delim1 + 1);
	}
	if (delim2 < 0 ) 
	{
		if ( text.length == 6 || text.length == 8 )
		{
			tstr = text.substr(0,2);
			da = parseInt(tstr,10);
			tstr = text.substr(2,2);
			mo = parseInt(tstr,10);
			tstr = text.substr(4, text.length);
			yr = parseInt(tstr,10);
			
			yr = yearInLongFormat(yr);
			bIsDate = validateDate(yr,mo,da);
			if (bIsDate) {
				text = da.toString() + delimiter + mo.toString() + delimiter + yr.toString();
				window.event.srcElement.value = text;
			}
			else
			{
				errorMessage = "Dzien lub miesiac poza zakresem.";
			}
		}
		else
		{
			bIsDate = false;
		}
	}
	else 
	{
		tstr = text.substring(0,delim1);
		da = parseInt(tstr,10);
		tstr = text.substring(delim1+1,delim2);
		mo = parseInt(tstr,10);
		tstr = text.substring(delim2+1,text.length);
		yr = parseInt(tstr,10);
		
		yr = yearInLongFormat(yr);
		bIsDate = validateDate(yr,mo,da);
		if (bIsDate) {
			text = da.toString() + delimiter + mo.toString() + delimiter + yr.toString();
			window.event.srcElement.value = text;
		}
		else
		{
			errorMessage = "Dzien lub miesiac poza zakresem.";
		}
	}
	
	if (!bIsDate && text.length > 0)
	{
		var message = 'Niepoprawna data. ' + errorMessage; 
		alert(message);
	}
	return bIsDate;	
}
*/
/**
 * Funkcja oblicza współrzędne, które posłużą do zpozycjonowania 
 * okna dialogu z kalendarzem
 * zaraz pod polem tekstowym na datę,	
 * a następnie otwiera okno z kalendarzem jako modelessDialog.
 */
function openCalendarPage_old(controlName, datePattern) 
{
	var x, y, par, dialogURL, dialogFeat; 
	par = eval('document.all.' + controlName); 
	y = event.screenY;
	x = event.screenX;
	dialogURL = "/Lib/Calendar.aspx?cn=" + controlName + "&dp=" + escape(datePattern);
	dialogFeat  = "dialogHeight:160px;dialogWidth:183px;dialogLeft:" + x + ";dialogTop:" + y + ";";
	dialogFeat += "resizable:yes;help:no;scroll:no;status:no";
	window.showModelessDialog(dialogURL,window,dialogFeat);
}; 

function openCalendarPage(Path,controlName, datePattern,event) 
{

	var x, y, par, dialogURL, dialogFeat; 
	par = document.getElementById(controlName); 
	y = event.screenY;
	x = event.screenX;
	dialogURL = Path + "/Lib/Calendar.aspx?cn=" + controlName + "&dp=" + escape(datePattern);
	if(window.showModelessDialog) //IE
	{
	dialogFeat  = "dialogHeight:160px;dialogWidth:183px;dialogLeft:" + x + ";dialogTop:" + y + ";";
	dialogFeat += "resizable:yes;help:no;scroll:no;status:no";
	window.showModelessDialog(dialogURL,window,dialogFeat);
	}
	else	//Firefox
	{
	dialogFeat  = "height=140,width=183,left=" + x + ",top=" + y + ",";
	dialogFeat += "resizable=no,modal=yes,dependent=yes";
	window.open(dialogURL,"window",dialogFeat);
	}
}; 
