var dtCh= "-";

   var cal = new Array(); 
   cal[1] = "January"; 
   cal[2] = "February"; 
   cal[3] = "March"; 
   cal[4] = "April"; 
   cal[5] = "May"; 
   cal[6] = "June"; 
   cal[7] = "July"; 
   cal[8] = "August"; 
   cal[9] = "September"; 
   cal[10] = "October"; 
   cal[11] = "November"; 
   cal[12] = "December"; 


function isInteger(s)
{
	var i;
    for (i = 0; i < s.length; i++)
	{   
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) 
			return false;
    }
    return true;
}


function stripCharsInBag(s, bag)
{
	var i;
    var returnString = "";
    for (i = 0; i < s.length; i++)
	{
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) 
			returnString += c;
    }
    return returnString;
}


function daysInFebruary (year)
{
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}


function DaysArray(n) 
{
	for (var i = 1; i <= n; i++) 
	{
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) 
		{
			this[i] = 30
		}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr)
{
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strYear=dtStr.substring(0, pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strDay=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) 
		strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) 
		strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) 
	{
		if (strYr.charAt(0)=="0" && strYr.length>1) 
			strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1)
	{
		alert("Data powinna być w formacie RRRR-MM-DD")
		return false
	}
	if (strYear.length != 4 || year==0)
	{
		alert("Wprowadz rok poprawnie")
		return false
	}
	if (strMonth.length<1 || month<1 || month>12)
	{
		alert("Wprowadz miesiąc poprawnie.")
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
	{
		alert("Wprowadz dzien poprawnie.")
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
	{
		alert("Wprowadz dzien poprawnie.")
		return false
	}

	var d1 = new Date(cal[strMonth]+" "+ strDay + ", "+strYear+" 23:59:59"); 
	var d2 = new Date(cal[2]+" 1, 1999 00:00:00"); 
	//var d3 = new Date(); 

	var msc = parseInt(d3.getMonth()) + 1;
	var msc = (msc<10) ? "0"+msc:msc;

	var dat = parseInt(d3.getDate());
	var dat = (dat<10) ? "0"+dat:dat;
	if (d1 < d2 || d1 > d3)
	{
		alert("Data powinna być z przedziału od 1999-02-01 do "+d3.getFullYear()+"-"+msc+"-"+dat); 
		return false
	}

return true
}


function CheckDate(data1, data2)
{
	if (isDate(data1.value)==false)
	{
		data1.focus()
		return false
	}

	if (isDate(data2.value)==false)
	{
		data2.focus()
		return false
	}

	d_from = data1.value.split("-")
	d_to = data2.value.split("-")

	var d1 = new Date(cal[d_from[1]]+" "+ d_from[2] + ", "+d_from[0]+" 23:59:59")
	var d2 = new Date(cal[d_to[1]]+" "+ d_to[2] + ", "+d_to[0]+" 23:59:59")

	if (d1 > d2)
	{
		alert("Niewłasciwy zakres dat")
		data1.focus()
		return false
	}
    return true
}
